From 9aedd869962f660578d406441995bfe99a8221c5 Mon Sep 17 00:00:00 2001
From: Alexis Nasr <alexis.nasr@lif.univ-mrs.fr>
Date: Mon, 15 Jan 2024 09:00:59 +0100
Subject: [PATCH] commit original

---
 sablecc/sablecc.jar                      |  Bin 0 -> 406885 bytes
 sablecc/sablecc_thesis.pdf               |  Bin 0 -> 346444 bytes
 src/.gitignore                           |    4 +
 src/C3aVM.java                           |   67 ++
 src/Compiler.java                        |  215 +++++
 src/Makefile                             |   52 +
 src/NasmVM.java                          |   66 ++
 src/SaVM.java                            |   46 +
 src/c3a.cfg                              |  113 +++
 src/c3a/C3a.java                         |   87 ++
 src/c3a/C3aBooleanConstant.java          |   15 +
 src/c3a/C3aConstant.java                 |   15 +
 src/c3a/C3aEval.java                     |  385 ++++++++
 src/c3a/C3aFunction.java                 |   20 +
 src/c3a/C3aInst.java                     |   16 +
 src/c3a/C3aInstAdd.java                  |   27 +
 src/c3a/C3aInstAffect.java               |   27 +
 src/c3a/C3aInstCall.java                 |   28 +
 src/c3a/C3aInstDiv.java                  |   27 +
 src/c3a/C3aInstFBegin.java               |   23 +
 src/c3a/C3aInstFEnd.java                 |   21 +
 src/c3a/C3aInstJump.java                 |   24 +
 src/c3a/C3aInstJumpIfEqual.java          |   27 +
 src/c3a/C3aInstJumpIfLess.java           |   28 +
 src/c3a/C3aInstJumpIfNotEqual.java       |   27 +
 src/c3a/C3aInstMult.java                 |   27 +
 src/c3a/C3aInstParam.java                |   25 +
 src/c3a/C3aInstRead.java                 |   25 +
 src/c3a/C3aInstReturn.java               |   25 +
 src/c3a/C3aInstStop.java                 |   27 +
 src/c3a/C3aInstSub.java                  |   27 +
 src/c3a/C3aInstWrite.java                |   26 +
 src/c3a/C3aLabel.java                    |   29 +
 src/c3a/C3aOp.java                       |   24 +
 src/c3a/C3aOperand.java                  |    7 +
 src/c3a/C3aTemp.java                     |   16 +
 src/c3a/C3aVar.java                      |   24 +
 src/c3a/C3aVisitor.java                  |   30 +
 src/c3a/LoadC3a.java                     |  473 +++++++++
 src/c3a/Sa2c3a.java                      |   49 +
 src/fg/Fg.java                           |   87 ++
 src/fg/FgSolution.java                   |   51 +
 src/ig/Ig.java                           |   61 ++
 src/l.cfg                                |   32 +
 src/nasm.cfg                             |  210 ++++
 src/nasm/C3a2nasm.java                   |   59 ++
 src/nasm/LoadNasm.java                   | 1117 ++++++++++++++++++++++
 src/nasm/Nasm.java                       |  172 ++++
 src/nasm/NasmAdd.java                    |   25 +
 src/nasm/NasmAddress.java                |   26 +
 src/nasm/NasmAnd.java                    |   24 +
 src/nasm/NasmCall.java                   |   19 +
 src/nasm/NasmCmp.java                    |   23 +
 src/nasm/NasmConstant.java               |   28 +
 src/nasm/NasmDiv.java                    |   19 +
 src/nasm/NasmEmpty.java                  |   18 +
 src/nasm/NasmEval.java                   |  410 ++++++++
 src/nasm/NasmExp.java                    |   11 +
 src/nasm/NasmExpMinus.java               |   34 +
 src/nasm/NasmExpPlus.java                |   34 +
 src/nasm/NasmExpTimes.java               |   34 +
 src/nasm/NasmInst.java                   |   36 +
 src/nasm/NasmInt.java                    |   18 +
 src/nasm/NasmJe.java                     |   19 +
 src/nasm/NasmJg.java                     |   19 +
 src/nasm/NasmJge.java                    |   19 +
 src/nasm/NasmJl.java                     |   19 +
 src/nasm/NasmJle.java                    |   25 +
 src/nasm/NasmJmp.java                    |   19 +
 src/nasm/NasmJne.java                    |   19 +
 src/nasm/NasmLabel.java                  |   28 +
 src/nasm/NasmMov.java                    |   22 +
 src/nasm/NasmMul.java                    |   26 +
 src/nasm/NasmNot.java                    |   21 +
 src/nasm/NasmOperand.java                |    8 +
 src/nasm/NasmOr.java                     |   24 +
 src/nasm/NasmPop.java                    |   20 +
 src/nasm/NasmPseudoInst.java             |   28 +
 src/nasm/NasmPush.java                   |   20 +
 src/nasm/NasmRegister.java               |   57 ++
 src/nasm/NasmResb.java                   |   21 +
 src/nasm/NasmResd.java                   |   21 +
 src/nasm/NasmResq.java                   |   21 +
 src/nasm/NasmRest.java                   |   21 +
 src/nasm/NasmResw.java                   |   21 +
 src/nasm/NasmRet.java                    |   18 +
 src/nasm/NasmSize.java                   |   20 +
 src/nasm/NasmSub.java                    |   22 +
 src/nasm/NasmVisitor.java                |   47 +
 src/nasm/NasmXor.java                    |   24 +
 src/sa.cfg                               |  127 +++
 src/sa/ErrorException.java               |   23 +
 src/sa/LoadSa.java                       |  547 +++++++++++
 src/sa/SaAppel.java                      |   33 +
 src/sa/SaCheckLinkage.java               |   42 +
 src/sa/SaDec.java                        |    5 +
 src/sa/SaDecFonc.java                    |   34 +
 src/sa/SaDecTab.java                     |   31 +
 src/sa/SaDecVar.java                     |   11 +
 src/sa/SaDecVarSimple.java               |   29 +
 src/sa/SaDepthFirstVisitor.java          |  386 ++++++++
 src/sa/SaEnvironment.java                |   33 +
 src/sa/SaEval.java                       |  465 +++++++++
 src/sa/SaExp.java                        |    6 +
 src/sa/SaExpAdd.java                     |   26 +
 src/sa/SaExpAnd.java                     |   26 +
 src/sa/SaExpAppel.java                   |   25 +
 src/sa/SaExpDiv.java                     |   27 +
 src/sa/SaExpEqual.java                   |   27 +
 src/sa/SaExpFaux.java                    |   28 +
 src/sa/SaExpInf.java                     |   28 +
 src/sa/SaExpInt.java                     |   26 +
 src/sa/SaExpLire.java                    |   21 +
 src/sa/SaExpMult.java                    |   27 +
 src/sa/SaExpNot.java                     |   26 +
 src/sa/SaExpOr.java                      |   28 +
 src/sa/SaExpSub.java                     |   28 +
 src/sa/SaExpVar.java                     |   24 +
 src/sa/SaExpVrai.java                    |   27 +
 src/sa/SaInst.java                       |    5 +
 src/sa/SaInstAffect.java                 |   22 +
 src/sa/SaInstBloc.java                   |   19 +
 src/sa/SaInstEcriture.java               |   20 +
 src/sa/SaInstRetour.java                 |   24 +
 src/sa/SaInstSi.java                     |   26 +
 src/sa/SaInstTantQue.java                |   23 +
 src/sa/SaLDecFonc.java                   |   28 +
 src/sa/SaLDecVar.java                    |   27 +
 src/sa/SaLExp.java                       |   30 +
 src/sa/SaLInst.java                      |   23 +
 src/sa/SaNode.java                       |    6 +
 src/sa/SaProg.java                       |   21 +
 src/sa/SaTypeCheck.java                  |   32 +
 src/sa/SaVar.java                        |    6 +
 src/sa/SaVarIndicee.java                 |   27 +
 src/sa/SaVarSimple.java                  |   24 +
 src/sa/SaVisitor.java                    |   38 +
 src/sa/Sc2sa.java                        |   43 +
 src/sa/TypeVal.java                      |   31 +
 src/sc/Sc2Xml.java                       |   48 +
 src/ts/Sa2ts.java                        |   36 +
 src/ts/Ts.java                           |  147 +++
 src/ts/TsItemFct.java                    |   30 +
 src/ts/TsItemVar.java                    |   20 +
 src/ts/TsItemVarSimple.java              |   22 +
 src/ts/TsItemVarTab.java                 |   19 +
 src/ts/TsParser.java                     |   71 ++
 src/util/Error.java                      |   21 +
 src/util/Memory.java                     |  224 +++++
 src/util/Type.java                       |   30 +
 src/util/graph/ColorGraph.java           |   38 +
 src/util/graph/Graph.java                |   83 ++
 src/util/graph/Node.java                 |   55 ++
 src/util/graph/NodeList.java             |   10 +
 src/util/graph/TestColorGraph.java       |   77 ++
 src/util/intset/IntSet.java              |   94 ++
 test/c3a-ref/add1.c3a                    |    6 +
 test/c3a-ref/add2.c3a                    |    7 +
 test/c3a-ref/affect1.c3a                 |    6 +
 test/c3a-ref/affect2.c3a                 |    6 +
 test/c3a-ref/affect3.c3a                 |   10 +
 test/c3a-ref/and1.c3a                    |   10 +
 test/c3a-ref/and2.c3a                    |   10 +
 test/c3a-ref/and3.c3a                    |   10 +
 test/c3a-ref/and4.c3a                    |   10 +
 test/c3a-ref/and5.c3a                    |   15 +
 test/c3a-ref/appel-param1.c3a            |    9 +
 test/c3a-ref/appel-param2.c3a            |   11 +
 test/c3a-ref/appel-param3.c3a            |   17 +
 test/c3a-ref/appel-retour1.c3a           |   11 +
 test/c3a-ref/appel1.c3a                  |    8 +
 test/c3a-ref/appel2.c3a                  |   12 +
 test/c3a-ref/appel3.c3a                  |   12 +
 test/c3a-ref/div1.c3a                    |    6 +
 test/c3a-ref/div2.c3a                    |    6 +
 test/c3a-ref/div3.c3a                    |    7 +
 test/c3a-ref/div4.c3a                    |    6 +
 test/c3a-ref/ecrire1.c3a                 |    5 +
 test/c3a-ref/ecrire2.c3a                 |    5 +
 test/c3a-ref/egal1.c3a                   |    8 +
 test/c3a-ref/egal2.c3a                   |    8 +
 test/c3a-ref/egal3.c3a                   |   11 +
 test/c3a-ref/err5.c3a                    |    7 +
 test/c3a-ref/fibo.c3a                    |   25 +
 test/c3a-ref/inf1.c3a                    |    8 +
 test/c3a-ref/inf2.c3a                    |    8 +
 test/c3a-ref/inf3.c3a                    |    8 +
 test/c3a-ref/inf4.c3a                    |   11 +
 test/c3a-ref/mult1.c3a                   |    6 +
 test/c3a-ref/mult2.c3a                   |    6 +
 test/c3a-ref/mult3.c3a                   |    7 +
 test/c3a-ref/not1.c3a                    |    8 +
 test/c3a-ref/not2.c3a                    |    8 +
 test/c3a-ref/not3.c3a                    |   11 +
 test/c3a-ref/or1.c3a                     |   10 +
 test/c3a-ref/or2.c3a                     |   10 +
 test/c3a-ref/or3.c3a                     |   10 +
 test/c3a-ref/or4.c3a                     |   10 +
 test/c3a-ref/or5.c3a                     |   15 +
 test/c3a-ref/parenth1.c3a                |    5 +
 test/c3a-ref/parenth2.c3a                |    5 +
 test/c3a-ref/prio23-1.c3a                |    9 +
 test/c3a-ref/prio23-2.c3a                |    9 +
 test/c3a-ref/prio23-3.c3a                |    9 +
 test/c3a-ref/prio23-4.c3a                |   12 +
 test/c3a-ref/prio34-1.c3a                |    7 +
 test/c3a-ref/prio34-2.c3a                |    7 +
 test/c3a-ref/prio34-3.c3a                |    7 +
 test/c3a-ref/prio34-4.c3a                |    7 +
 test/c3a-ref/prio45-1.c3a                |    9 +
 test/c3a-ref/prio45-2.c3a                |    9 +
 test/c3a-ref/prio45-3.c3a                |    9 +
 test/c3a-ref/prio45-4.c3a                |    9 +
 test/c3a-ref/prio56-1.c3a                |   13 +
 test/c3a-ref/prio56-2.c3a                |   13 +
 test/c3a-ref/prio67-1.c3a                |   15 +
 test/c3a-ref/prio67-2.c3a                |   15 +
 test/c3a-ref/rec1.c3a                    |   22 +
 test/c3a-ref/si1.c3a                     |    6 +
 test/c3a-ref/si2.c3a                     |    8 +
 test/c3a-ref/si3.c3a                     |    9 +
 test/c3a-ref/si4.c3a                     |    9 +
 test/c3a-ref/si5.c3a                     |    9 +
 test/c3a-ref/sub1.c3a                    |    6 +
 test/c3a-ref/sub2.c3a                    |    6 +
 test/c3a-ref/sub3.c3a                    |    7 +
 test/c3a-ref/tab1.c3a                    |   10 +
 test/c3a-ref/tab2.c3a                    |   14 +
 test/c3a-ref/tab3.c3a                    |   17 +
 test/c3a-ref/tab4.c3a                    |   11 +
 test/c3a-ref/tantque1.c3a                |   14 +
 test/c3a-ref/tantque2.c3a                |   22 +
 test/c3a-ref/tri.c3a                     |   71 ++
 test/c3a-ref/varglob1.c3a                |    6 +
 test/c3a-ref/varglob2.c3a                |    7 +
 test/c3a-ref/varglob3.c3a                |    8 +
 test/c3a-ref/varglob4.c3a                |    8 +
 test/c3a-ref/varloc1.c3a                 |    6 +
 test/c3a-ref/varloc2.c3a                 |    7 +
 test/c3a-ref/varloc3.c3a                 |    8 +
 test/c3a-ref/varloc4.c3a                 |    8 +
 test/c3a-ref/varloc5.c3a                 |   11 +
 test/evaluate.py                         |  473 +++++++++
 test/fg-ref/add1.fg                      |   14 +
 test/fg-ref/add2.fg                      |   16 +
 test/fg-ref/affect1.fg                   |   13 +
 test/fg-ref/affect2.fg                   |   13 +
 test/fg-ref/affect3.fg                   |   24 +
 test/fg-ref/and1.fg                      |   21 +
 test/fg-ref/and2.fg                      |   21 +
 test/fg-ref/and3.fg                      |   21 +
 test/fg-ref/and4.fg                      |   21 +
 test/fg-ref/and5.fg                      |   29 +
 test/fg-ref/appel-param1.fg              |   23 +
 test/fg-ref/appel-param2.fg              |   26 +
 test/fg-ref/appel-param3.fg              |   35 +
 test/fg-ref/appel-retour1.fg             |   25 +
 test/fg-ref/appel1.fg                    |   21 +
 test/fg-ref/appel2.fg                    |   32 +
 test/fg-ref/appel3.fg                    |   32 +
 test/fg-ref/div1.fg                      |   16 +
 test/fg-ref/div2.fg                      |   16 +
 test/fg-ref/div3.fg                      |   20 +
 test/fg-ref/div4.fg                      |   16 +
 test/fg-ref/ecrire1.fg                   |   12 +
 test/fg-ref/ecrire2.fg                   |   12 +
 test/fg-ref/egal1.fg                     |   17 +
 test/fg-ref/egal2.fg                     |   17 +
 test/fg-ref/egal3.fg                     |   21 +
 test/fg-ref/err5.fg                      |   22 +
 test/fg-ref/fibo.fg                      |   80 ++
 test/fg-ref/inf1.fg                      |   17 +
 test/fg-ref/inf2.fg                      |   17 +
 test/fg-ref/inf3.fg                      |   17 +
 test/fg-ref/inf4.fg                      |   21 +
 test/fg-ref/mult1.fg                     |   14 +
 test/fg-ref/mult2.fg                     |   14 +
 test/fg-ref/mult3.fg                     |   16 +
 test/fg-ref/not1.fg                      |   17 +
 test/fg-ref/not2.fg                      |   17 +
 test/fg-ref/not3.fg                      |   21 +
 test/fg-ref/or1.fg                       |   21 +
 test/fg-ref/or2.fg                       |   21 +
 test/fg-ref/or3.fg                       |   21 +
 test/fg-ref/or4.fg                       |   21 +
 test/fg-ref/or5.fg                       |   29 +
 test/fg-ref/parenth1.fg                  |   12 +
 test/fg-ref/parenth2.fg                  |   12 +
 test/fg-ref/prio23-1.fg                  |   19 +
 test/fg-ref/prio23-2.fg                  |   19 +
 test/fg-ref/prio23-3.fg                  |   21 +
 test/fg-ref/prio23-4.fg                  |   25 +
 test/fg-ref/prio34-1.fg                  |   16 +
 test/fg-ref/prio34-2.fg                  |   16 +
 test/fg-ref/prio34-3.fg                  |   18 +
 test/fg-ref/prio34-4.fg                  |   18 +
 test/fg-ref/prio45-1.fg                  |   19 +
 test/fg-ref/prio45-2.fg                  |   18 +
 test/fg-ref/prio45-3.fg                  |   19 +
 test/fg-ref/prio45-4.fg                  |   18 +
 test/fg-ref/prio56-1.fg                  |   25 +
 test/fg-ref/prio56-2.fg                  |   25 +
 test/fg-ref/prio67-1.fg                  |   29 +
 test/fg-ref/prio67-2.fg                  |   29 +
 test/fg-ref/rec1.fg                      |   73 ++
 test/fg-ref/si1.fg                       |   15 +
 test/fg-ref/si2.fg                       |   18 +
 test/fg-ref/si3.fg                       |   20 +
 test/fg-ref/si4.fg                       |   20 +
 test/fg-ref/si5.fg                       |   32 +
 test/fg-ref/sub1.fg                      |   14 +
 test/fg-ref/sub2.fg                      |   14 +
 test/fg-ref/sub3.fg                      |   16 +
 test/fg-ref/tab1.fg                      |   25 +
 test/fg-ref/tab2.fg                      |   32 +
 test/fg-ref/tab3.fg                      |   35 +
 test/fg-ref/tab4.fg                      |   29 +
 test/fg-ref/tantque1.fg                  |   26 +
 test/fg-ref/tantque2.fg                  |   36 +
 test/fg-ref/varglob1.fg                  |   13 +
 test/fg-ref/varglob2.fg                  |   15 +
 test/fg-ref/varglob3.fg                  |   16 +
 test/fg-ref/varglob4.fg                  |   16 +
 test/fg-ref/varloc1.fg                   |   13 +
 test/fg-ref/varloc2.fg                   |   15 +
 test/fg-ref/varloc3.fg                   |   16 +
 test/fg-ref/varloc4.fg                   |   16 +
 test/fg-ref/varloc5.fg                   |   25 +
 test/fgs-ref/add1.fgs                    |   15 +
 test/fgs-ref/add2.fgs                    |   17 +
 test/fgs-ref/affect1.fgs                 |   14 +
 test/fgs-ref/affect2.fgs                 |   14 +
 test/fgs-ref/affect3.fgs                 |   25 +
 test/fgs-ref/and1.fgs                    |   22 +
 test/fgs-ref/and2.fgs                    |   22 +
 test/fgs-ref/and3.fgs                    |   22 +
 test/fgs-ref/and4.fgs                    |   22 +
 test/fgs-ref/and5.fgs                    |   30 +
 test/fgs-ref/appel-param1.fgs            |   24 +
 test/fgs-ref/appel-param2.fgs            |   27 +
 test/fgs-ref/appel-param3.fgs            |   36 +
 test/fgs-ref/appel-retour1.fgs           |   26 +
 test/fgs-ref/appel1.fgs                  |   22 +
 test/fgs-ref/appel2.fgs                  |   33 +
 test/fgs-ref/appel3.fgs                  |   33 +
 test/fgs-ref/div1.fgs                    |   17 +
 test/fgs-ref/div2.fgs                    |   17 +
 test/fgs-ref/div3.fgs                    |   21 +
 test/fgs-ref/div4.fgs                    |   17 +
 test/fgs-ref/ecrire1.fgs                 |   13 +
 test/fgs-ref/ecrire2.fgs                 |   13 +
 test/fgs-ref/egal1.fgs                   |   18 +
 test/fgs-ref/egal2.fgs                   |   18 +
 test/fgs-ref/egal3.fgs                   |   22 +
 test/fgs-ref/err5.fgs                    |   23 +
 test/fgs-ref/fibo.fgs                    |   81 ++
 test/fgs-ref/inf1.fgs                    |   18 +
 test/fgs-ref/inf2.fgs                    |   18 +
 test/fgs-ref/inf3.fgs                    |   18 +
 test/fgs-ref/inf4.fgs                    |   22 +
 test/fgs-ref/mult1.fgs                   |   15 +
 test/fgs-ref/mult2.fgs                   |   15 +
 test/fgs-ref/mult3.fgs                   |   17 +
 test/fgs-ref/not1.fgs                    |   18 +
 test/fgs-ref/not2.fgs                    |   18 +
 test/fgs-ref/not3.fgs                    |   22 +
 test/fgs-ref/or1.fgs                     |   22 +
 test/fgs-ref/or2.fgs                     |   22 +
 test/fgs-ref/or3.fgs                     |   22 +
 test/fgs-ref/or4.fgs                     |   22 +
 test/fgs-ref/or5.fgs                     |   30 +
 test/fgs-ref/parenth1.fgs                |   13 +
 test/fgs-ref/parenth2.fgs                |   13 +
 test/fgs-ref/prio23-1.fgs                |   20 +
 test/fgs-ref/prio23-2.fgs                |   20 +
 test/fgs-ref/prio23-3.fgs                |   22 +
 test/fgs-ref/prio23-4.fgs                |   26 +
 test/fgs-ref/prio34-1.fgs                |   17 +
 test/fgs-ref/prio34-2.fgs                |   17 +
 test/fgs-ref/prio34-3.fgs                |   19 +
 test/fgs-ref/prio34-4.fgs                |   19 +
 test/fgs-ref/prio45-1.fgs                |   20 +
 test/fgs-ref/prio45-2.fgs                |   19 +
 test/fgs-ref/prio45-3.fgs                |   20 +
 test/fgs-ref/prio45-4.fgs                |   19 +
 test/fgs-ref/prio56-1.fgs                |   26 +
 test/fgs-ref/prio56-2.fgs                |   26 +
 test/fgs-ref/prio67-1.fgs                |   30 +
 test/fgs-ref/prio67-2.fgs                |   30 +
 test/fgs-ref/rec1.fgs                    |   74 ++
 test/fgs-ref/si1.fgs                     |   16 +
 test/fgs-ref/si2.fgs                     |   19 +
 test/fgs-ref/si3.fgs                     |   21 +
 test/fgs-ref/si4.fgs                     |   21 +
 test/fgs-ref/si5.fgs                     |   33 +
 test/fgs-ref/sub1.fgs                    |   15 +
 test/fgs-ref/sub2.fgs                    |   15 +
 test/fgs-ref/sub3.fgs                    |   17 +
 test/fgs-ref/tab1.fgs                    |   26 +
 test/fgs-ref/tab2.fgs                    |   33 +
 test/fgs-ref/tab3.fgs                    |   36 +
 test/fgs-ref/tab4.fgs                    |   30 +
 test/fgs-ref/tantque1.fgs                |   27 +
 test/fgs-ref/tantque2.fgs                |   37 +
 test/fgs-ref/varglob1.fgs                |   14 +
 test/fgs-ref/varglob2.fgs                |   16 +
 test/fgs-ref/varglob3.fgs                |   17 +
 test/fgs-ref/varglob4.fgs                |   17 +
 test/fgs-ref/varloc1.fgs                 |   14 +
 test/fgs-ref/varloc2.fgs                 |   16 +
 test/fgs-ref/varloc3.fgs                 |   17 +
 test/fgs-ref/varloc4.fgs                 |   17 +
 test/fgs-ref/varloc5.fgs                 |   26 +
 test/ig-ref/add1.ig                      |    4 +
 test/ig-ref/add2.ig                      |    5 +
 test/ig-ref/affect1.ig                   |    3 +
 test/ig-ref/affect2.ig                   |    3 +
 test/ig-ref/affect3.ig                   |    4 +
 test/ig-ref/and1.ig                      |    6 +
 test/ig-ref/and2.ig                      |    6 +
 test/ig-ref/and3.ig                      |    6 +
 test/ig-ref/and4.ig                      |    6 +
 test/ig-ref/and5.ig                      |    8 +
 test/ig-ref/appel-param1.ig              |    4 +
 test/ig-ref/appel-param2.ig              |    5 +
 test/ig-ref/appel-param3.ig              |    8 +
 test/ig-ref/appel-retour1.ig             |    5 +
 test/ig-ref/appel1.ig                    |    4 +
 test/ig-ref/appel2.ig                    |    6 +
 test/ig-ref/appel3.ig                    |    6 +
 test/ig-ref/div1.ig                      |    7 +
 test/ig-ref/div2.ig                      |    7 +
 test/ig-ref/div3.ig                      |   11 +
 test/ig-ref/div4.ig                      |    7 +
 test/ig-ref/ecrire1.ig                   |    3 +
 test/ig-ref/ecrire2.ig                   |    3 +
 test/ig-ref/egal1.ig                     |    5 +
 test/ig-ref/egal2.ig                     |    5 +
 test/ig-ref/egal3.ig                     |    6 +
 test/ig-ref/err5.ig                      |    4 +
 test/ig-ref/fibo.ig                      |   35 +
 test/ig-ref/inf1.ig                      |    5 +
 test/ig-ref/inf2.ig                      |    5 +
 test/ig-ref/inf3.ig                      |    5 +
 test/ig-ref/inf4.ig                      |    6 +
 test/ig-ref/mult1.ig                     |    4 +
 test/ig-ref/mult2.ig                     |    4 +
 test/ig-ref/mult3.ig                     |    5 +
 test/ig-ref/not1.ig                      |    5 +
 test/ig-ref/not2.ig                      |    5 +
 test/ig-ref/not3.ig                      |    6 +
 test/ig-ref/or1.ig                       |    6 +
 test/ig-ref/or2.ig                       |    6 +
 test/ig-ref/or3.ig                       |    6 +
 test/ig-ref/or4.ig                       |    6 +
 test/ig-ref/or5.ig                       |    8 +
 test/ig-ref/parenth1.ig                  |    3 +
 test/ig-ref/parenth2.ig                  |    3 +
 test/ig-ref/prio23-1.ig                  |    6 +
 test/ig-ref/prio23-2.ig                  |    6 +
 test/ig-ref/prio23-3.ig                  |    9 +
 test/ig-ref/prio23-4.ig                  |   10 +
 test/ig-ref/prio34-1.ig                  |    5 +
 test/ig-ref/prio34-2.ig                  |    5 +
 test/ig-ref/prio34-3.ig                  |    8 +
 test/ig-ref/prio34-4.ig                  |    8 +
 test/ig-ref/prio45-1.ig                  |    6 +
 test/ig-ref/prio45-2.ig                  |    5 +
 test/ig-ref/prio45-3.ig                  |    6 +
 test/ig-ref/prio45-4.ig                  |    5 +
 test/ig-ref/prio56-1.ig                  |    7 +
 test/ig-ref/prio56-2.ig                  |    7 +
 test/ig-ref/prio67-1.ig                  |    8 +
 test/ig-ref/prio67-2.ig                  |    8 +
 test/ig-ref/rec1.ig                      |   33 +
 test/ig-ref/si1.ig                       |    4 +
 test/ig-ref/si2.ig                       |    5 +
 test/ig-ref/si3.ig                       |    6 +
 test/ig-ref/si4.ig                       |    6 +
 test/ig-ref/si5.ig                       |   16 +
 test/ig-ref/sub1.ig                      |    4 +
 test/ig-ref/sub2.ig                      |    4 +
 test/ig-ref/sub3.ig                      |    5 +
 test/ig-ref/tab1.ig                      |   11 +
 test/ig-ref/tab2.ig                      |   14 +
 test/ig-ref/tab3.ig                      |   14 +
 test/ig-ref/tab4.ig                      |   14 +
 test/ig-ref/tantque1.ig                  |    7 +
 test/ig-ref/tantque2.ig                  |    8 +
 test/ig-ref/varglob1.ig                  |    3 +
 test/ig-ref/varglob2.ig                  |    4 +
 test/ig-ref/varglob3.ig                  |    4 +
 test/ig-ref/varglob4.ig                  |    4 +
 test/ig-ref/varloc1.ig                   |    3 +
 test/ig-ref/varloc2.ig                   |    4 +
 test/ig-ref/varloc3.ig                   |    4 +
 test/ig-ref/varloc4.ig                   |    4 +
 test/ig-ref/varloc5.ig                   |    5 +
 test/input/.gitignore                    |   17 +
 test/input/add1.l                        |    4 +
 test/input/add1.s                        |   20 +
 test/input/add2.l                        |    4 +
 test/input/add2.s                        |   21 +
 test/input/affect1.l                     |    6 +
 test/input/affect1.s                     |   22 +
 test/input/affect2.l                     |    6 +
 test/input/affect2.s                     |   19 +
 test/input/affect3.l                     |   11 +
 test/input/and1.l                        |    4 +
 test/input/and2.l                        |    4 +
 test/input/and3.l                        |    4 +
 test/input/and4.l                        |    4 +
 test/input/and5.l                        |    4 +
 test/input/appel-param1.l                |    9 +
 test/input/appel-param2.l                |   10 +
 test/input/appel-param3.l                |   13 +
 test/input/appel-retour1.l               |    9 +
 test/input/appel1.l                      |    9 +
 test/input/appel2.l                      |   15 +
 test/input/appel3.l                      |   15 +
 test/input/clean                         |   14 +
 test/input/div1.l                        |    4 +
 test/input/div2.l                        |    4 +
 test/input/div3.l                        |    4 +
 test/input/div4.l                        |    4 +
 test/input/ecrire1.l                     |    4 +
 test/input/ecrire2.l                     |    4 +
 test/input/egal1.l                       |    4 +
 test/input/egal2.l                       |    4 +
 test/input/egal3.l                       |    4 +
 test/input/fibo.l                        |   14 +
 test/input/inf1.l                        |    4 +
 test/input/inf2.l                        |    4 +
 test/input/inf3.l                        |    4 +
 test/input/mult1.l                       |    4 +
 test/input/mult2.l                       |    4 +
 test/input/mult3.l                       |    4 +
 test/input/nettoie.sh                    |   16 +
 test/input/not1.l                        |    4 +
 test/input/not2.l                        |    4 +
 test/input/not3.l                        |    4 +
 test/input/or1.l                         |    4 +
 test/input/or2.l                         |    4 +
 test/input/or3.l                         |    4 +
 test/input/or4.l                         |    4 +
 test/input/or5.l                         |    4 +
 test/input/parenth1.l                    |    4 +
 test/input/parenth2.l                    |    4 +
 test/input/prio34-1.l                    |    4 +
 test/input/prio34-2.l                    |    4 +
 test/input/prio34-3.l                    |    4 +
 test/input/prio34-4.l                    |    4 +
 test/input/prio45-1.l                    |    4 +
 test/input/prio45-2.l                    |    4 +
 test/input/prio45-3.l                    |    4 +
 test/input/prio45-4.l                    |    4 +
 test/input/prio56-1.l                    |    4 +
 test/input/prio56-2.l                    |    4 +
 test/input/prio67-1.l                    |    4 +
 test/input/prio67-2.l                    |    4 +
 test/input/rec1.l                        |   14 +
 test/input/si1.l                         |    6 +
 test/input/si2.l                         |    9 +
 test/input/si3.l                         |   10 +
 test/input/si4.l                         |   10 +
 test/input/si5.l                         |   13 +
 test/input/sub1.l                        |    4 +
 test/input/sub2.l                        |    4 +
 test/input/sub3.l                        |    4 +
 test/input/tab1.l                        |   10 +
 test/input/tab2.l                        |   12 +
 test/input/tab3.l                        |   15 +
 test/input/tab4.l                        |   10 +
 test/input/tantque1.l                    |   10 +
 test/input/tantque2.l                    |   14 +
 test/input/tri.l                         |   57 ++
 test/input/varglob1.l                    |    6 +
 test/input/varglob2.l                    |    6 +
 test/input/varglob3.l                    |    8 +
 test/input/varglob4.l                    |    7 +
 test/input/varloc1.l                     |    6 +
 test/input/varloc2.l                     |    6 +
 test/input/varloc3.l                     |    8 +
 test/input/varloc4.l                     |    7 +
 test/input/varloc5.l                     |   15 +
 test/input_err_ts/double_dec1.l          |    4 +
 test/input_err_ts/double_dec2.l          |    4 +
 test/input_err_ts/double_dec3.l          |    7 +
 test/input_err_ts/double_dec4.l          |   10 +
 test/input_err_ts/fct_inconnue1.l        |    3 +
 test/input_err_ts/mauvais_nb_arg1.l      |    7 +
 test/input_err_ts/var_inconnue1.l        |    3 +
 test/input_err_type/add1.l               |    4 +
 test/input_err_type/add2.l               |    4 +
 test/input_err_type/add3.l               |    4 +
 test/input_err_type/add4.l               |    4 +
 test/input_err_type/affect1.l            |    5 +
 test/input_err_type/affect2.l            |    5 +
 test/input_err_type/affect3.l            |    5 +
 test/input_err_type/affect4.l            |    5 +
 test/input_err_type/and1.l               |    4 +
 test/input_err_type/and2.l               |    4 +
 test/input_err_type/and3.l               |    4 +
 test/input_err_type/and4.l               |    4 +
 test/input_err_type/appel1.l             |    8 +
 test/input_err_type/appel2.l             |    8 +
 test/input_err_type/appel3.l             |    8 +
 test/input_err_type/appel4.l             |    8 +
 test/input_err_type/div1.l               |    4 +
 test/input_err_type/div2.l               |    4 +
 test/input_err_type/div3.l               |    4 +
 test/input_err_type/div4.l               |    4 +
 test/input_err_type/egal1.l              |    4 +
 test/input_err_type/egal2.l              |    4 +
 test/input_err_type/egal3.l              |    4 +
 test/input_err_type/egal3.nasm           |   35 +
 test/input_err_type/inf1.l               |    4 +
 test/input_err_type/inf2.l               |    4 +
 test/input_err_type/inf3.l               |    4 +
 test/input_err_type/inf3.nasm            |   35 +
 test/input_err_type/inf4.l               |    4 +
 test/input_err_type/mult1.l              |    4 +
 test/input_err_type/mult2.l              |    4 +
 test/input_err_type/mult3.l              |    4 +
 test/input_err_type/mult4.l              |    4 +
 test/input_err_type/not1.l               |    4 +
 test/input_err_type/or1.l                |    4 +
 test/input_err_type/or2.l                |    4 +
 test/input_err_type/or3.l                |    4 +
 test/input_err_type/or4.l                |    4 +
 test/input_err_type/retour1.l            |    9 +
 test/input_err_type/retour2.l            |    9 +
 test/input_err_type/retour3.l            |    9 +
 test/input_err_type/si1.l                |    5 +
 test/input_err_type/sub1.l               |    4 +
 test/input_err_type/sub2.l               |    4 +
 test/input_err_type/sub3.l               |    4 +
 test/input_err_type/sub4.l               |    4 +
 test/input_err_type/tantque1.l           |    5 +
 test/io.asm                              |  205 ++++
 test/nasm-ref/add1.nasm                  |   32 +
 test/nasm-ref/add2.nasm                  |   34 +
 test/nasm-ref/affect1.nasm               |   32 +
 test/nasm-ref/affect2.nasm               |   31 +
 test/nasm-ref/affect3.nasm               |   50 +
 test/nasm-ref/and1.nasm                  |   39 +
 test/nasm-ref/and2.nasm                  |   39 +
 test/nasm-ref/and3.nasm                  |   39 +
 test/nasm-ref/and4.nasm                  |   39 +
 test/nasm-ref/and5.nasm                  |   47 +
 test/nasm-ref/appel-param1.nasm          |   49 +
 test/nasm-ref/appel-param2.nasm          |   52 +
 test/nasm-ref/appel-param3.nasm          |   61 ++
 test/nasm-ref/appel-retour1.nasm         |   58 ++
 test/nasm-ref/appel1.nasm                |   47 +
 test/nasm-ref/appel2.nasm                |   66 ++
 test/nasm-ref/appel3.nasm                |   66 ++
 test/nasm-ref/div1.nasm                  |   36 +
 test/nasm-ref/div2.nasm                  |   36 +
 test/nasm-ref/div3.nasm                  |   42 +
 test/nasm-ref/div4.nasm                  |   36 +
 test/nasm-ref/ecrire1.nasm               |   30 +
 test/nasm-ref/ecrire2.nasm               |   30 +
 test/nasm-ref/egal1.nasm                 |   35 +
 test/nasm-ref/egal2.nasm                 |   35 +
 test/nasm-ref/egal3.nasm                 |   39 +
 test/nasm-ref/fibo.nasm                  |   88 ++
 test/nasm-ref/inf1.nasm                  |   35 +
 test/nasm-ref/inf2.nasm                  |   35 +
 test/nasm-ref/inf3.nasm                  |   35 +
 test/nasm-ref/inf4.nasm                  |   39 +
 test/nasm-ref/mult1.nasm                 |   32 +
 test/nasm-ref/mult2.nasm                 |   32 +
 test/nasm-ref/mult3.nasm                 |   34 +
 test/nasm-ref/not1.nasm                  |   35 +
 test/nasm-ref/not2.nasm                  |   35 +
 test/nasm-ref/not3.nasm                  |   39 +
 test/nasm-ref/or1.nasm                   |   39 +
 test/nasm-ref/or2.nasm                   |   39 +
 test/nasm-ref/or3.nasm                   |   39 +
 test/nasm-ref/or4.nasm                   |   39 +
 test/nasm-ref/or5.nasm                   |   47 +
 test/nasm-ref/parenth1.nasm              |   30 +
 test/nasm-ref/parenth2.nasm              |   30 +
 test/nasm-ref/prio23-1.nasm              |   37 +
 test/nasm-ref/prio23-2.nasm              |   37 +
 test/nasm-ref/prio23-3.nasm              |   41 +
 test/nasm-ref/prio23-4.nasm              |   45 +
 test/nasm-ref/prio34-1.nasm              |   34 +
 test/nasm-ref/prio34-2.nasm              |   34 +
 test/nasm-ref/prio34-3.nasm              |   38 +
 test/nasm-ref/prio34-4.nasm              |   38 +
 test/nasm-ref/prio45-1.nasm              |   37 +
 test/nasm-ref/prio45-2.nasm              |   36 +
 test/nasm-ref/prio45-3.nasm              |   37 +
 test/nasm-ref/prio45-4.nasm              |   36 +
 test/nasm-ref/prio56-1.nasm              |   43 +
 test/nasm-ref/prio56-2.nasm              |   43 +
 test/nasm-ref/prio67-1.nasm              |   47 +
 test/nasm-ref/prio67-2.nasm              |   47 +
 test/nasm-ref/rec1.nasm                  |   81 ++
 test/nasm-ref/si1.nasm                   |   33 +
 test/nasm-ref/si2.nasm                   |   36 +
 test/nasm-ref/si3.nasm                   |   38 +
 test/nasm-ref/si4.nasm                   |   38 +
 test/nasm-ref/si5.nasm                   |   40 +
 test/nasm-ref/sub1.nasm                  |   32 +
 test/nasm-ref/sub2.nasm                  |   32 +
 test/nasm-ref/sub3.nasm                  |   34 +
 test/nasm-ref/tab1.nasm                  |   50 +
 test/nasm-ref/tab2.nasm                  |   57 ++
 test/nasm-ref/tab3.nasm                  |   60 ++
 test/nasm-ref/tab4.nasm                  |   56 ++
 test/nasm-ref/tantque1.nasm              |   44 +
 test/nasm-ref/tantque2.nasm              |   54 ++
 test/nasm-ref/tri.nasm                   |  214 +++++
 test/nasm-ref/varglob1.nasm              |   32 +
 test/nasm-ref/varglob2.nasm              |   34 +
 test/nasm-ref/varglob3.nasm              |   36 +
 test/nasm-ref/varglob4.nasm              |   36 +
 test/nasm-ref/varloc1.nasm               |   31 +
 test/nasm-ref/varloc2.nasm               |   33 +
 test/nasm-ref/varloc3.nasm               |   34 +
 test/nasm-ref/varloc4.nasm               |   34 +
 test/nasm-ref/varloc5.nasm               |   52 +
 test/out-ref/add1.out                    |    1 +
 test/out-ref/add2.out                    |    1 +
 test/out-ref/affect1.out                 |    1 +
 test/out-ref/affect2.out                 |    1 +
 test/out-ref/affect3.out                 |    1 +
 test/out-ref/and1.out                    |    1 +
 test/out-ref/and2.out                    |    1 +
 test/out-ref/and3.out                    |    1 +
 test/out-ref/and4.out                    |    1 +
 test/out-ref/and5.out                    |    1 +
 test/out-ref/appel-param1.out            |    1 +
 test/out-ref/appel-param2.out            |    2 +
 test/out-ref/appel-param3.out            |    5 +
 test/out-ref/appel-retour1.out           |    1 +
 test/out-ref/appel1.out                  |    1 +
 test/out-ref/appel2.out                  |    2 +
 test/out-ref/appel3.out                  |    2 +
 test/out-ref/div1.out                    |    1 +
 test/out-ref/div2.out                    |    1 +
 test/out-ref/div3.out                    |    1 +
 test/out-ref/div4.out                    |    1 +
 test/out-ref/ecrire1.out                 |    1 +
 test/out-ref/ecrire2.out                 |    1 +
 test/out-ref/egal1.out                   |    1 +
 test/out-ref/egal2.out                   |    1 +
 test/out-ref/egal3.out                   |    1 +
 test/out-ref/err5.out                    |    1 +
 test/out-ref/fibo.out                    |    1 +
 test/out-ref/inf1.out                    |    1 +
 test/out-ref/inf2.out                    |    1 +
 test/out-ref/inf3.out                    |    1 +
 test/out-ref/inf4.out                    |    1 +
 test/out-ref/mult1.out                   |    1 +
 test/out-ref/mult2.out                   |    1 +
 test/out-ref/mult3.out                   |    1 +
 test/out-ref/not1.out                    |    1 +
 test/out-ref/not2.out                    |    1 +
 test/out-ref/not3.out                    |    1 +
 test/out-ref/or1.out                     |    1 +
 test/out-ref/or2.out                     |    1 +
 test/out-ref/or3.out                     |    1 +
 test/out-ref/or4.out                     |    1 +
 test/out-ref/or5.out                     |    1 +
 test/out-ref/parenth1.out                |    1 +
 test/out-ref/parenth2.out                |    1 +
 test/out-ref/prio23-1.out                |    1 +
 test/out-ref/prio23-2.out                |    1 +
 test/out-ref/prio23-3.out                |    1 +
 test/out-ref/prio23-4.out                |    1 +
 test/out-ref/prio34-1.out                |    1 +
 test/out-ref/prio34-2.out                |    1 +
 test/out-ref/prio34-3.out                |    1 +
 test/out-ref/prio34-4.out                |    1 +
 test/out-ref/prio45-1.out                |    1 +
 test/out-ref/prio45-2.out                |    1 +
 test/out-ref/prio45-3.out                |    1 +
 test/out-ref/prio45-4.out                |    1 +
 test/out-ref/prio56-1.out                |    1 +
 test/out-ref/prio56-2.out                |    1 +
 test/out-ref/prio67-1.out                |    1 +
 test/out-ref/prio67-2.out                |    1 +
 test/out-ref/rec1.out                    |    1 +
 test/out-ref/si1.out                     |    1 +
 test/out-ref/si2.out                     |    1 +
 test/out-ref/si3.out                     |    2 +
 test/out-ref/si4.out                     |    2 +
 test/out-ref/si5.out                     |    3 +
 test/out-ref/sub1.out                    |    1 +
 test/out-ref/sub2.out                    |    1 +
 test/out-ref/sub3.out                    |    1 +
 test/out-ref/tab1.out                    |    3 +
 test/out-ref/tab2.out                    |    3 +
 test/out-ref/tab3.out                    |    3 +
 test/out-ref/tab4.out                    |    3 +
 test/out-ref/tantque1.out                |   11 +
 test/out-ref/tantque2.out                |   32 +
 test/out-ref/tri.out                     |   22 +
 test/out-ref/varglob1.out                |    1 +
 test/out-ref/varglob2.out                |    1 +
 test/out-ref/varglob3.out                |    2 +
 test/out-ref/varglob4.out                |    1 +
 test/out-ref/varloc1.out                 |    1 +
 test/out-ref/varloc2.out                 |    1 +
 test/out-ref/varloc3.out                 |    2 +
 test/out-ref/varloc4.out                 |    1 +
 test/out-ref/varloc5.out                 |    2 +
 test/pre-nasm-ref/add1.pre-nasm          |   32 +
 test/pre-nasm-ref/add2.pre-nasm          |   34 +
 test/pre-nasm-ref/affect1.pre-nasm       |   32 +
 test/pre-nasm-ref/affect2.pre-nasm       |   31 +
 test/pre-nasm-ref/affect3.pre-nasm       |   50 +
 test/pre-nasm-ref/and1.pre-nasm          |   39 +
 test/pre-nasm-ref/and2.pre-nasm          |   39 +
 test/pre-nasm-ref/and3.pre-nasm          |   39 +
 test/pre-nasm-ref/and4.pre-nasm          |   39 +
 test/pre-nasm-ref/and5.pre-nasm          |   47 +
 test/pre-nasm-ref/appel-param1.pre-nasm  |   49 +
 test/pre-nasm-ref/appel-param2.pre-nasm  |   52 +
 test/pre-nasm-ref/appel-param3.pre-nasm  |   61 ++
 test/pre-nasm-ref/appel-retour1.pre-nasm |   58 ++
 test/pre-nasm-ref/appel1.pre-nasm        |   47 +
 test/pre-nasm-ref/appel2.pre-nasm        |   66 ++
 test/pre-nasm-ref/appel3.pre-nasm        |   66 ++
 test/pre-nasm-ref/div1.pre-nasm          |   36 +
 test/pre-nasm-ref/div2.pre-nasm          |   36 +
 test/pre-nasm-ref/div3.pre-nasm          |   42 +
 test/pre-nasm-ref/div4.pre-nasm          |   36 +
 test/pre-nasm-ref/ecrire1.pre-nasm       |   30 +
 test/pre-nasm-ref/ecrire2.pre-nasm       |   30 +
 test/pre-nasm-ref/egal1.pre-nasm         |   35 +
 test/pre-nasm-ref/egal2.pre-nasm         |   35 +
 test/pre-nasm-ref/egal3.pre-nasm         |   39 +
 test/pre-nasm-ref/fibo.pre-nasm          |   88 ++
 test/pre-nasm-ref/inf1.pre-nasm          |   35 +
 test/pre-nasm-ref/inf2.pre-nasm          |   35 +
 test/pre-nasm-ref/inf3.pre-nasm          |   35 +
 test/pre-nasm-ref/inf4.pre-nasm          |   39 +
 test/pre-nasm-ref/mult1.pre-nasm         |   32 +
 test/pre-nasm-ref/mult2.pre-nasm         |   32 +
 test/pre-nasm-ref/mult3.pre-nasm         |   34 +
 test/pre-nasm-ref/not1.pre-nasm          |   35 +
 test/pre-nasm-ref/not2.pre-nasm          |   35 +
 test/pre-nasm-ref/not3.pre-nasm          |   39 +
 test/pre-nasm-ref/or1.pre-nasm           |   39 +
 test/pre-nasm-ref/or2.pre-nasm           |   39 +
 test/pre-nasm-ref/or3.pre-nasm           |   39 +
 test/pre-nasm-ref/or4.pre-nasm           |   39 +
 test/pre-nasm-ref/or5.pre-nasm           |   47 +
 test/pre-nasm-ref/parenth1.pre-nasm      |   30 +
 test/pre-nasm-ref/parenth2.pre-nasm      |   30 +
 test/pre-nasm-ref/prio23-1.pre-nasm      |   37 +
 test/pre-nasm-ref/prio23-2.pre-nasm      |   37 +
 test/pre-nasm-ref/prio23-3.pre-nasm      |   41 +
 test/pre-nasm-ref/prio23-4.pre-nasm      |   45 +
 test/pre-nasm-ref/prio34-1.pre-nasm      |   34 +
 test/pre-nasm-ref/prio34-2.pre-nasm      |   34 +
 test/pre-nasm-ref/prio34-3.pre-nasm      |   38 +
 test/pre-nasm-ref/prio34-4.pre-nasm      |   38 +
 test/pre-nasm-ref/prio45-1.pre-nasm      |   37 +
 test/pre-nasm-ref/prio45-2.pre-nasm      |   36 +
 test/pre-nasm-ref/prio45-3.pre-nasm      |   37 +
 test/pre-nasm-ref/prio45-4.pre-nasm      |   36 +
 test/pre-nasm-ref/prio56-1.pre-nasm      |   43 +
 test/pre-nasm-ref/prio56-2.pre-nasm      |   43 +
 test/pre-nasm-ref/prio67-1.pre-nasm      |   47 +
 test/pre-nasm-ref/prio67-2.pre-nasm      |   47 +
 test/pre-nasm-ref/rec1.pre-nasm          |   81 ++
 test/pre-nasm-ref/si1.pre-nasm           |   33 +
 test/pre-nasm-ref/si2.pre-nasm           |   36 +
 test/pre-nasm-ref/si3.pre-nasm           |   38 +
 test/pre-nasm-ref/si4.pre-nasm           |   38 +
 test/pre-nasm-ref/si5.pre-nasm           |   40 +
 test/pre-nasm-ref/sub1.pre-nasm          |   32 +
 test/pre-nasm-ref/sub2.pre-nasm          |   32 +
 test/pre-nasm-ref/sub3.pre-nasm          |   34 +
 test/pre-nasm-ref/tab1.pre-nasm          |   50 +
 test/pre-nasm-ref/tab2.pre-nasm          |   57 ++
 test/pre-nasm-ref/tab3.pre-nasm          |   60 ++
 test/pre-nasm-ref/tab4.pre-nasm          |   56 ++
 test/pre-nasm-ref/tantque1.pre-nasm      |   44 +
 test/pre-nasm-ref/tantque2.pre-nasm      |   54 ++
 test/pre-nasm-ref/tri.pre-nasm           |  214 +++++
 test/pre-nasm-ref/varglob1.pre-nasm      |   32 +
 test/pre-nasm-ref/varglob2.pre-nasm      |   34 +
 test/pre-nasm-ref/varglob3.pre-nasm      |   36 +
 test/pre-nasm-ref/varglob4.pre-nasm      |   36 +
 test/pre-nasm-ref/varloc1.pre-nasm       |   31 +
 test/pre-nasm-ref/varloc2.pre-nasm       |   33 +
 test/pre-nasm-ref/varloc3.pre-nasm       |   34 +
 test/pre-nasm-ref/varloc4.pre-nasm       |   34 +
 test/pre-nasm-ref/varloc5.pre-nasm       |   52 +
 test/sa-ref/add1.sa                      |    1 +
 test/sa-ref/add2.sa                      |    1 +
 test/sa-ref/affect1.sa                   |    1 +
 test/sa-ref/affect2.sa                   |    1 +
 test/sa-ref/affect3.sa                   |    1 +
 test/sa-ref/and1.sa                      |    1 +
 test/sa-ref/and2.sa                      |    1 +
 test/sa-ref/and3.sa                      |    1 +
 test/sa-ref/and4.sa                      |    1 +
 test/sa-ref/and5.sa                      |    1 +
 test/sa-ref/appel-param1.sa              |    1 +
 test/sa-ref/appel-param2.sa              |    1 +
 test/sa-ref/appel-param3.sa              |    1 +
 test/sa-ref/appel-retour1.sa             |    1 +
 test/sa-ref/appel1.sa                    |    1 +
 test/sa-ref/appel2.sa                    |    1 +
 test/sa-ref/appel3.sa                    |    1 +
 test/sa-ref/div1.sa                      |    1 +
 test/sa-ref/div2.sa                      |    1 +
 test/sa-ref/div3.sa                      |    1 +
 test/sa-ref/div4.sa                      |    1 +
 test/sa-ref/ecrire1.sa                   |    1 +
 test/sa-ref/ecrire2.sa                   |    1 +
 test/sa-ref/egal1.sa                     |    1 +
 test/sa-ref/egal2.sa                     |    1 +
 test/sa-ref/egal3.sa                     |    1 +
 test/sa-ref/err1.sa                      |   18 +
 test/sa-ref/err2.sa                      |   13 +
 test/sa-ref/err3.sa                      |   23 +
 test/sa-ref/err4.sa                      |   33 +
 test/sa-ref/err5.sa                      |   39 +
 test/sa-ref/fibo.sa                      |    1 +
 test/sa-ref/inf1.sa                      |    1 +
 test/sa-ref/inf2.sa                      |    1 +
 test/sa-ref/inf3.sa                      |    1 +
 test/sa-ref/inf4.sa                      |   19 +
 test/sa-ref/mult1.sa                     |    1 +
 test/sa-ref/mult2.sa                     |    1 +
 test/sa-ref/mult3.sa                     |    1 +
 test/sa-ref/not1.sa                      |    1 +
 test/sa-ref/not2.sa                      |    1 +
 test/sa-ref/not3.sa                      |    1 +
 test/sa-ref/or1.sa                       |    1 +
 test/sa-ref/or2.sa                       |    1 +
 test/sa-ref/or3.sa                       |    1 +
 test/sa-ref/or4.sa                       |    1 +
 test/sa-ref/or5.sa                       |    1 +
 test/sa-ref/parenth1.sa                  |    1 +
 test/sa-ref/parenth2.sa                  |    1 +
 test/sa-ref/prio23-1.sa                  |   18 +
 test/sa-ref/prio23-2.sa                  |   18 +
 test/sa-ref/prio23-3.sa                  |   18 +
 test/sa-ref/prio23-4.sa                  |   20 +
 test/sa-ref/prio34-1.sa                  |    1 +
 test/sa-ref/prio34-2.sa                  |    1 +
 test/sa-ref/prio34-3.sa                  |    1 +
 test/sa-ref/prio34-4.sa                  |    1 +
 test/sa-ref/prio45-1.sa                  |    1 +
 test/sa-ref/prio45-2.sa                  |    1 +
 test/sa-ref/prio45-3.sa                  |    1 +
 test/sa-ref/prio45-4.sa                  |    1 +
 test/sa-ref/prio56-1.sa                  |    1 +
 test/sa-ref/prio56-2.sa                  |    1 +
 test/sa-ref/prio67-1.sa                  |    1 +
 test/sa-ref/prio67-2.sa                  |    1 +
 test/sa-ref/rec1.sa                      |    1 +
 test/sa-ref/si1.sa                       |    1 +
 test/sa-ref/si2.sa                       |    1 +
 test/sa-ref/si3.sa                       |    1 +
 test/sa-ref/si4.sa                       |    1 +
 test/sa-ref/si5.sa                       |    1 +
 test/sa-ref/sub1.sa                      |    1 +
 test/sa-ref/sub2.sa                      |    1 +
 test/sa-ref/sub3.sa                      |    1 +
 test/sa-ref/tab1.sa                      |    1 +
 test/sa-ref/tab2.sa                      |    1 +
 test/sa-ref/tab3.sa                      |    1 +
 test/sa-ref/tab4.sa                      |    1 +
 test/sa-ref/tantque1.sa                  |    1 +
 test/sa-ref/tantque2.sa                  |    1 +
 test/sa-ref/tri.sa                       |    1 +
 test/sa-ref/varglob1.sa                  |    1 +
 test/sa-ref/varglob2.sa                  |    1 +
 test/sa-ref/varglob3.sa                  |    1 +
 test/sa-ref/varglob4.sa                  |    1 +
 test/sa-ref/varloc1.sa                   |    1 +
 test/sa-ref/varloc2.sa                   |    1 +
 test/sa-ref/varloc3.sa                   |    1 +
 test/sa-ref/varloc4.sa                   |    1 +
 test/sa-ref/varloc5.sa                   |    1 +
 test/sc-ref/add1.sc                      |   44 +
 test/sc-ref/add2.sc                      |   52 +
 test/sc-ref/affect1.sc                   |   66 ++
 test/sc-ref/affect2.sc                   |   66 ++
 test/sc-ref/affect3.sc                   |  106 ++
 test/sc-ref/and1.sc                      |   48 +
 test/sc-ref/and2.sc                      |   48 +
 test/sc-ref/and3.sc                      |   48 +
 test/sc-ref/and4.sc                      |   48 +
 test/sc-ref/and5.sc                      |   60 ++
 test/sc-ref/appel-param1.sc              |   78 ++
 test/sc-ref/appel-param2.sc              |  120 +++
 test/sc-ref/appel-param3.sc              |  246 +++++
 test/sc-ref/appel-retour1.sc             |  106 ++
 test/sc-ref/appel1.sc                    |   56 ++
 test/sc-ref/appel2.sc                    |   96 ++
 test/sc-ref/appel3.sc                    |   96 ++
 test/sc-ref/div1.sc                      |   42 +
 test/sc-ref/div2.sc                      |   42 +
 test/sc-ref/div3.sc                      |   48 +
 test/sc-ref/div4.sc                      |   42 +
 test/sc-ref/ecrire1.sc                   |   36 +
 test/sc-ref/ecrire2.sc                   |   36 +
 test/sc-ref/egal1.sc                     |   46 +
 test/sc-ref/egal2.sc                     |   46 +
 test/sc-ref/egal3.sc                     |   56 ++
 test/sc-ref/err1.sc                      |   38 +
 test/sc-ref/err2.sc                      |   26 +
 test/sc-ref/err3.sc                      |   40 +
 test/sc-ref/err4.sc                      |   62 ++
 test/sc-ref/err5.sc                      |   78 ++
 test/sc-ref/fibo.sc                      |  248 +++++
 test/sc-ref/inf1.sc                      |   46 +
 test/sc-ref/inf2.sc                      |   46 +
 test/sc-ref/inf3.sc                      |   46 +
 test/sc-ref/inf4.sc                      |   56 ++
 test/sc-ref/modulo1.sc                   |   42 +
 test/sc-ref/mult1.sc                     |   42 +
 test/sc-ref/mult2.sc                     |   42 +
 test/sc-ref/mult3.sc                     |   48 +
 test/sc-ref/not1.sc                      |   38 +
 test/sc-ref/not2.sc                      |   38 +
 test/sc-ref/not3.sc                      |   40 +
 test/sc-ref/or1.sc                       |   50 +
 test/sc-ref/or2.sc                       |   50 +
 test/sc-ref/or3.sc                       |   50 +
 test/sc-ref/or4.sc                       |   50 +
 test/sc-ref/or5.sc                       |   64 ++
 test/sc-ref/parenth1.sc                  |   50 +
 test/sc-ref/parenth2.sc                  |   64 ++
 test/sc-ref/prio23-1.sc                  |   44 +
 test/sc-ref/prio23-2.sc                  |   44 +
 test/sc-ref/prio23-3.sc                  |   44 +
 test/sc-ref/prio23-4.sc                  |   46 +
 test/sc-ref/prio34-1.sc                  |   50 +
 test/sc-ref/prio34-2.sc                  |   50 +
 test/sc-ref/prio34-3.sc                  |   50 +
 test/sc-ref/prio34-4.sc                  |   50 +
 test/sc-ref/prio45-1.sc                  |   54 ++
 test/sc-ref/prio45-2.sc                  |   54 ++
 test/sc-ref/prio45-3.sc                  |   54 ++
 test/sc-ref/prio45-4.sc                  |   54 ++
 test/sc-ref/prio56-1.sc                  |   58 ++
 test/sc-ref/prio56-2.sc                  |   58 ++
 test/sc-ref/prio67-1.sc                  |   62 ++
 test/sc-ref/prio67-2.sc                  |   62 ++
 test/sc-ref/rec1.sc                      |  258 +++++
 test/sc-ref/si1.sc                       |   74 ++
 test/sc-ref/si2.sc                       |  100 ++
 test/sc-ref/si3.sc                       |  120 +++
 test/sc-ref/si4.sc                       |  120 +++
 test/sc-ref/si5.sc                       |  152 +++
 test/sc-ref/sub1.sc                      |   44 +
 test/sc-ref/sub2.sc                      |   44 +
 test/sc-ref/sub3.sc                      |   52 +
 test/sc-ref/tab1.sc                      |  238 +++++
 test/sc-ref/tab2.sc                      |  296 ++++++
 test/sc-ref/tab3.sc                      |  372 +++++++
 test/sc-ref/tab4.sc                      |  278 ++++++
 test/sc-ref/tantque1.sc                  |  168 ++++
 test/sc-ref/tantque2.sc                  |  278 ++++++
 test/sc-ref/varglob1.sc                  |   66 ++
 test/sc-ref/varglob2.sc                  |   74 ++
 test/sc-ref/varglob3.sc                  |  114 +++
 test/sc-ref/varglob4.sc                  |  102 ++
 test/sc-ref/varloc1.sc                   |   66 ++
 test/sc-ref/varloc2.sc                   |   74 ++
 test/sc-ref/varloc3.sc                   |  114 +++
 test/sc-ref/varloc4.sc                   |  102 ++
 test/sc-ref/varloc5.sc                   |  136 +++
 test/ts-ref/add1.ts                      |    3 +
 test/ts-ref/add2.ts                      |    3 +
 test/ts-ref/affect1.ts                   |    4 +
 test/ts-ref/affect2.ts                   |    4 +
 test/ts-ref/affect3.ts                   |    7 +
 test/ts-ref/and1.ts                      |    3 +
 test/ts-ref/and2.ts                      |    3 +
 test/ts-ref/and3.ts                      |    3 +
 test/ts-ref/and4.ts                      |    3 +
 test/ts-ref/and5.ts                      |    3 +
 test/ts-ref/appel-param1.ts              |    6 +
 test/ts-ref/appel-param2.ts              |    7 +
 test/ts-ref/appel-param3.ts              |   10 +
 test/ts-ref/appel-retour1.ts             |    6 +
 test/ts-ref/appel1.ts                    |    5 +
 test/ts-ref/appel2.ts                    |    7 +
 test/ts-ref/appel3.ts                    |    7 +
 test/ts-ref/div1.ts                      |    3 +
 test/ts-ref/div2.ts                      |    3 +
 test/ts-ref/div3.ts                      |    3 +
 test/ts-ref/div4.ts                      |    3 +
 test/ts-ref/ecrire1.ts                   |    3 +
 test/ts-ref/ecrire2.ts                   |    3 +
 test/ts-ref/egal1.ts                     |    3 +
 test/ts-ref/egal2.ts                     |    3 +
 test/ts-ref/egal3.ts                     |    3 +
 test/ts-ref/err5.ts                      |    6 +
 test/ts-ref/fibo.ts                      |    6 +
 test/ts-ref/inf1.ts                      |    3 +
 test/ts-ref/inf2.ts                      |    3 +
 test/ts-ref/inf3.ts                      |    3 +
 test/ts-ref/inf4.ts                      |    3 +
 test/ts-ref/modulo1.ts                   |    3 +
 test/ts-ref/mult1.ts                     |    3 +
 test/ts-ref/mult2.ts                     |    3 +
 test/ts-ref/mult3.ts                     |    3 +
 test/ts-ref/not1.ts                      |    3 +
 test/ts-ref/not2.ts                      |    3 +
 test/ts-ref/not3.ts                      |    3 +
 test/ts-ref/or1.ts                       |    3 +
 test/ts-ref/or2.ts                       |    3 +
 test/ts-ref/or3.ts                       |    3 +
 test/ts-ref/or4.ts                       |    3 +
 test/ts-ref/or5.ts                       |    3 +
 test/ts-ref/parenth1.ts                  |    3 +
 test/ts-ref/parenth2.ts                  |    3 +
 test/ts-ref/prio23-1.ts                  |    3 +
 test/ts-ref/prio23-2.ts                  |    3 +
 test/ts-ref/prio23-3.ts                  |    3 +
 test/ts-ref/prio23-4.ts                  |    3 +
 test/ts-ref/prio34-1.ts                  |    3 +
 test/ts-ref/prio34-2.ts                  |    3 +
 test/ts-ref/prio34-3.ts                  |    3 +
 test/ts-ref/prio34-4.ts                  |    3 +
 test/ts-ref/prio45-1.ts                  |    3 +
 test/ts-ref/prio45-2.ts                  |    3 +
 test/ts-ref/prio45-3.ts                  |    3 +
 test/ts-ref/prio45-4.ts                  |    3 +
 test/ts-ref/prio56-1.ts                  |    3 +
 test/ts-ref/prio56-2.ts                  |    3 +
 test/ts-ref/prio67-1.ts                  |    3 +
 test/ts-ref/prio67-2.ts                  |    3 +
 test/ts-ref/rec1.ts                      |    6 +
 test/ts-ref/si1.ts                       |    3 +
 test/ts-ref/si2.ts                       |    3 +
 test/ts-ref/si3.ts                       |    3 +
 test/ts-ref/si4.ts                       |    3 +
 test/ts-ref/si5.ts                       |    3 +
 test/ts-ref/sub1.ts                      |    3 +
 test/ts-ref/sub2.ts                      |    3 +
 test/ts-ref/sub3.ts                      |    3 +
 test/ts-ref/tab1.ts                      |    4 +
 test/ts-ref/tab2.ts                      |    5 +
 test/ts-ref/tab3.ts                      |    6 +
 test/ts-ref/tab4.ts                      |    4 +
 test/ts-ref/tantque1.ts                  |    4 +
 test/ts-ref/tantque2.ts                  |    5 +
 test/ts-ref/tri.ts                       |   21 +
 test/ts-ref/varglob1.ts                  |    4 +
 test/ts-ref/varglob2.ts                  |    4 +
 test/ts-ref/varglob3.ts                  |    5 +
 test/ts-ref/varglob4.ts                  |    5 +
 test/ts-ref/varloc1.ts                   |    4 +
 test/ts-ref/varloc2.ts                   |    4 +
 test/ts-ref/varloc3.ts                   |    5 +
 test/ts-ref/varloc4.ts                   |    5 +
 test/ts-ref/varloc5.ts                   |    7 +
 1163 files changed, 31448 insertions(+)
 create mode 100644 sablecc/sablecc.jar
 create mode 100644 sablecc/sablecc_thesis.pdf
 create mode 100644 src/.gitignore
 create mode 100644 src/C3aVM.java
 create mode 100644 src/Compiler.java
 create mode 100644 src/Makefile
 create mode 100644 src/NasmVM.java
 create mode 100644 src/SaVM.java
 create mode 100644 src/c3a.cfg
 create mode 100644 src/c3a/C3a.java
 create mode 100644 src/c3a/C3aBooleanConstant.java
 create mode 100644 src/c3a/C3aConstant.java
 create mode 100644 src/c3a/C3aEval.java
 create mode 100644 src/c3a/C3aFunction.java
 create mode 100644 src/c3a/C3aInst.java
 create mode 100644 src/c3a/C3aInstAdd.java
 create mode 100644 src/c3a/C3aInstAffect.java
 create mode 100644 src/c3a/C3aInstCall.java
 create mode 100644 src/c3a/C3aInstDiv.java
 create mode 100644 src/c3a/C3aInstFBegin.java
 create mode 100644 src/c3a/C3aInstFEnd.java
 create mode 100644 src/c3a/C3aInstJump.java
 create mode 100644 src/c3a/C3aInstJumpIfEqual.java
 create mode 100644 src/c3a/C3aInstJumpIfLess.java
 create mode 100644 src/c3a/C3aInstJumpIfNotEqual.java
 create mode 100644 src/c3a/C3aInstMult.java
 create mode 100644 src/c3a/C3aInstParam.java
 create mode 100644 src/c3a/C3aInstRead.java
 create mode 100644 src/c3a/C3aInstReturn.java
 create mode 100644 src/c3a/C3aInstStop.java
 create mode 100644 src/c3a/C3aInstSub.java
 create mode 100644 src/c3a/C3aInstWrite.java
 create mode 100644 src/c3a/C3aLabel.java
 create mode 100644 src/c3a/C3aOp.java
 create mode 100644 src/c3a/C3aOperand.java
 create mode 100644 src/c3a/C3aTemp.java
 create mode 100644 src/c3a/C3aVar.java
 create mode 100644 src/c3a/C3aVisitor.java
 create mode 100644 src/c3a/LoadC3a.java
 create mode 100644 src/c3a/Sa2c3a.java
 create mode 100644 src/fg/Fg.java
 create mode 100644 src/fg/FgSolution.java
 create mode 100644 src/ig/Ig.java
 create mode 100644 src/l.cfg
 create mode 100644 src/nasm.cfg
 create mode 100644 src/nasm/C3a2nasm.java
 create mode 100644 src/nasm/LoadNasm.java
 create mode 100644 src/nasm/Nasm.java
 create mode 100644 src/nasm/NasmAdd.java
 create mode 100644 src/nasm/NasmAddress.java
 create mode 100644 src/nasm/NasmAnd.java
 create mode 100644 src/nasm/NasmCall.java
 create mode 100644 src/nasm/NasmCmp.java
 create mode 100644 src/nasm/NasmConstant.java
 create mode 100644 src/nasm/NasmDiv.java
 create mode 100644 src/nasm/NasmEmpty.java
 create mode 100644 src/nasm/NasmEval.java
 create mode 100644 src/nasm/NasmExp.java
 create mode 100644 src/nasm/NasmExpMinus.java
 create mode 100644 src/nasm/NasmExpPlus.java
 create mode 100644 src/nasm/NasmExpTimes.java
 create mode 100644 src/nasm/NasmInst.java
 create mode 100644 src/nasm/NasmInt.java
 create mode 100644 src/nasm/NasmJe.java
 create mode 100644 src/nasm/NasmJg.java
 create mode 100644 src/nasm/NasmJge.java
 create mode 100644 src/nasm/NasmJl.java
 create mode 100644 src/nasm/NasmJle.java
 create mode 100644 src/nasm/NasmJmp.java
 create mode 100644 src/nasm/NasmJne.java
 create mode 100644 src/nasm/NasmLabel.java
 create mode 100644 src/nasm/NasmMov.java
 create mode 100644 src/nasm/NasmMul.java
 create mode 100644 src/nasm/NasmNot.java
 create mode 100644 src/nasm/NasmOperand.java
 create mode 100644 src/nasm/NasmOr.java
 create mode 100644 src/nasm/NasmPop.java
 create mode 100644 src/nasm/NasmPseudoInst.java
 create mode 100644 src/nasm/NasmPush.java
 create mode 100644 src/nasm/NasmRegister.java
 create mode 100644 src/nasm/NasmResb.java
 create mode 100644 src/nasm/NasmResd.java
 create mode 100644 src/nasm/NasmResq.java
 create mode 100644 src/nasm/NasmRest.java
 create mode 100644 src/nasm/NasmResw.java
 create mode 100644 src/nasm/NasmRet.java
 create mode 100644 src/nasm/NasmSize.java
 create mode 100644 src/nasm/NasmSub.java
 create mode 100644 src/nasm/NasmVisitor.java
 create mode 100644 src/nasm/NasmXor.java
 create mode 100644 src/sa.cfg
 create mode 100644 src/sa/ErrorException.java
 create mode 100644 src/sa/LoadSa.java
 create mode 100644 src/sa/SaAppel.java
 create mode 100644 src/sa/SaCheckLinkage.java
 create mode 100644 src/sa/SaDec.java
 create mode 100644 src/sa/SaDecFonc.java
 create mode 100644 src/sa/SaDecTab.java
 create mode 100644 src/sa/SaDecVar.java
 create mode 100644 src/sa/SaDecVarSimple.java
 create mode 100644 src/sa/SaDepthFirstVisitor.java
 create mode 100644 src/sa/SaEnvironment.java
 create mode 100644 src/sa/SaEval.java
 create mode 100644 src/sa/SaExp.java
 create mode 100644 src/sa/SaExpAdd.java
 create mode 100644 src/sa/SaExpAnd.java
 create mode 100644 src/sa/SaExpAppel.java
 create mode 100644 src/sa/SaExpDiv.java
 create mode 100644 src/sa/SaExpEqual.java
 create mode 100644 src/sa/SaExpFaux.java
 create mode 100644 src/sa/SaExpInf.java
 create mode 100644 src/sa/SaExpInt.java
 create mode 100644 src/sa/SaExpLire.java
 create mode 100644 src/sa/SaExpMult.java
 create mode 100644 src/sa/SaExpNot.java
 create mode 100644 src/sa/SaExpOr.java
 create mode 100644 src/sa/SaExpSub.java
 create mode 100644 src/sa/SaExpVar.java
 create mode 100644 src/sa/SaExpVrai.java
 create mode 100644 src/sa/SaInst.java
 create mode 100644 src/sa/SaInstAffect.java
 create mode 100644 src/sa/SaInstBloc.java
 create mode 100644 src/sa/SaInstEcriture.java
 create mode 100644 src/sa/SaInstRetour.java
 create mode 100644 src/sa/SaInstSi.java
 create mode 100644 src/sa/SaInstTantQue.java
 create mode 100644 src/sa/SaLDecFonc.java
 create mode 100644 src/sa/SaLDecVar.java
 create mode 100644 src/sa/SaLExp.java
 create mode 100644 src/sa/SaLInst.java
 create mode 100644 src/sa/SaNode.java
 create mode 100644 src/sa/SaProg.java
 create mode 100644 src/sa/SaTypeCheck.java
 create mode 100644 src/sa/SaVar.java
 create mode 100644 src/sa/SaVarIndicee.java
 create mode 100644 src/sa/SaVarSimple.java
 create mode 100644 src/sa/SaVisitor.java
 create mode 100644 src/sa/Sc2sa.java
 create mode 100644 src/sa/TypeVal.java
 create mode 100644 src/sc/Sc2Xml.java
 create mode 100644 src/ts/Sa2ts.java
 create mode 100644 src/ts/Ts.java
 create mode 100644 src/ts/TsItemFct.java
 create mode 100644 src/ts/TsItemVar.java
 create mode 100644 src/ts/TsItemVarSimple.java
 create mode 100644 src/ts/TsItemVarTab.java
 create mode 100644 src/ts/TsParser.java
 create mode 100644 src/util/Error.java
 create mode 100644 src/util/Memory.java
 create mode 100644 src/util/Type.java
 create mode 100644 src/util/graph/ColorGraph.java
 create mode 100644 src/util/graph/Graph.java
 create mode 100644 src/util/graph/Node.java
 create mode 100644 src/util/graph/NodeList.java
 create mode 100644 src/util/graph/TestColorGraph.java
 create mode 100644 src/util/intset/IntSet.java
 create mode 100644 test/c3a-ref/add1.c3a
 create mode 100644 test/c3a-ref/add2.c3a
 create mode 100644 test/c3a-ref/affect1.c3a
 create mode 100644 test/c3a-ref/affect2.c3a
 create mode 100644 test/c3a-ref/affect3.c3a
 create mode 100644 test/c3a-ref/and1.c3a
 create mode 100644 test/c3a-ref/and2.c3a
 create mode 100644 test/c3a-ref/and3.c3a
 create mode 100644 test/c3a-ref/and4.c3a
 create mode 100644 test/c3a-ref/and5.c3a
 create mode 100644 test/c3a-ref/appel-param1.c3a
 create mode 100644 test/c3a-ref/appel-param2.c3a
 create mode 100644 test/c3a-ref/appel-param3.c3a
 create mode 100644 test/c3a-ref/appel-retour1.c3a
 create mode 100644 test/c3a-ref/appel1.c3a
 create mode 100644 test/c3a-ref/appel2.c3a
 create mode 100644 test/c3a-ref/appel3.c3a
 create mode 100644 test/c3a-ref/div1.c3a
 create mode 100644 test/c3a-ref/div2.c3a
 create mode 100644 test/c3a-ref/div3.c3a
 create mode 100644 test/c3a-ref/div4.c3a
 create mode 100644 test/c3a-ref/ecrire1.c3a
 create mode 100644 test/c3a-ref/ecrire2.c3a
 create mode 100644 test/c3a-ref/egal1.c3a
 create mode 100644 test/c3a-ref/egal2.c3a
 create mode 100644 test/c3a-ref/egal3.c3a
 create mode 100644 test/c3a-ref/err5.c3a
 create mode 100644 test/c3a-ref/fibo.c3a
 create mode 100644 test/c3a-ref/inf1.c3a
 create mode 100644 test/c3a-ref/inf2.c3a
 create mode 100644 test/c3a-ref/inf3.c3a
 create mode 100644 test/c3a-ref/inf4.c3a
 create mode 100644 test/c3a-ref/mult1.c3a
 create mode 100644 test/c3a-ref/mult2.c3a
 create mode 100644 test/c3a-ref/mult3.c3a
 create mode 100644 test/c3a-ref/not1.c3a
 create mode 100644 test/c3a-ref/not2.c3a
 create mode 100644 test/c3a-ref/not3.c3a
 create mode 100644 test/c3a-ref/or1.c3a
 create mode 100644 test/c3a-ref/or2.c3a
 create mode 100644 test/c3a-ref/or3.c3a
 create mode 100644 test/c3a-ref/or4.c3a
 create mode 100644 test/c3a-ref/or5.c3a
 create mode 100644 test/c3a-ref/parenth1.c3a
 create mode 100644 test/c3a-ref/parenth2.c3a
 create mode 100644 test/c3a-ref/prio23-1.c3a
 create mode 100644 test/c3a-ref/prio23-2.c3a
 create mode 100644 test/c3a-ref/prio23-3.c3a
 create mode 100644 test/c3a-ref/prio23-4.c3a
 create mode 100644 test/c3a-ref/prio34-1.c3a
 create mode 100644 test/c3a-ref/prio34-2.c3a
 create mode 100644 test/c3a-ref/prio34-3.c3a
 create mode 100644 test/c3a-ref/prio34-4.c3a
 create mode 100644 test/c3a-ref/prio45-1.c3a
 create mode 100644 test/c3a-ref/prio45-2.c3a
 create mode 100644 test/c3a-ref/prio45-3.c3a
 create mode 100644 test/c3a-ref/prio45-4.c3a
 create mode 100644 test/c3a-ref/prio56-1.c3a
 create mode 100644 test/c3a-ref/prio56-2.c3a
 create mode 100644 test/c3a-ref/prio67-1.c3a
 create mode 100644 test/c3a-ref/prio67-2.c3a
 create mode 100644 test/c3a-ref/rec1.c3a
 create mode 100644 test/c3a-ref/si1.c3a
 create mode 100644 test/c3a-ref/si2.c3a
 create mode 100644 test/c3a-ref/si3.c3a
 create mode 100644 test/c3a-ref/si4.c3a
 create mode 100644 test/c3a-ref/si5.c3a
 create mode 100644 test/c3a-ref/sub1.c3a
 create mode 100644 test/c3a-ref/sub2.c3a
 create mode 100644 test/c3a-ref/sub3.c3a
 create mode 100644 test/c3a-ref/tab1.c3a
 create mode 100644 test/c3a-ref/tab2.c3a
 create mode 100644 test/c3a-ref/tab3.c3a
 create mode 100644 test/c3a-ref/tab4.c3a
 create mode 100644 test/c3a-ref/tantque1.c3a
 create mode 100644 test/c3a-ref/tantque2.c3a
 create mode 100644 test/c3a-ref/tri.c3a
 create mode 100644 test/c3a-ref/varglob1.c3a
 create mode 100644 test/c3a-ref/varglob2.c3a
 create mode 100644 test/c3a-ref/varglob3.c3a
 create mode 100644 test/c3a-ref/varglob4.c3a
 create mode 100644 test/c3a-ref/varloc1.c3a
 create mode 100644 test/c3a-ref/varloc2.c3a
 create mode 100644 test/c3a-ref/varloc3.c3a
 create mode 100644 test/c3a-ref/varloc4.c3a
 create mode 100644 test/c3a-ref/varloc5.c3a
 create mode 100755 test/evaluate.py
 create mode 100644 test/fg-ref/add1.fg
 create mode 100644 test/fg-ref/add2.fg
 create mode 100644 test/fg-ref/affect1.fg
 create mode 100644 test/fg-ref/affect2.fg
 create mode 100644 test/fg-ref/affect3.fg
 create mode 100644 test/fg-ref/and1.fg
 create mode 100644 test/fg-ref/and2.fg
 create mode 100644 test/fg-ref/and3.fg
 create mode 100644 test/fg-ref/and4.fg
 create mode 100644 test/fg-ref/and5.fg
 create mode 100644 test/fg-ref/appel-param1.fg
 create mode 100644 test/fg-ref/appel-param2.fg
 create mode 100644 test/fg-ref/appel-param3.fg
 create mode 100644 test/fg-ref/appel-retour1.fg
 create mode 100644 test/fg-ref/appel1.fg
 create mode 100644 test/fg-ref/appel2.fg
 create mode 100644 test/fg-ref/appel3.fg
 create mode 100644 test/fg-ref/div1.fg
 create mode 100644 test/fg-ref/div2.fg
 create mode 100644 test/fg-ref/div3.fg
 create mode 100644 test/fg-ref/div4.fg
 create mode 100644 test/fg-ref/ecrire1.fg
 create mode 100644 test/fg-ref/ecrire2.fg
 create mode 100644 test/fg-ref/egal1.fg
 create mode 100644 test/fg-ref/egal2.fg
 create mode 100644 test/fg-ref/egal3.fg
 create mode 100644 test/fg-ref/err5.fg
 create mode 100644 test/fg-ref/fibo.fg
 create mode 100644 test/fg-ref/inf1.fg
 create mode 100644 test/fg-ref/inf2.fg
 create mode 100644 test/fg-ref/inf3.fg
 create mode 100644 test/fg-ref/inf4.fg
 create mode 100644 test/fg-ref/mult1.fg
 create mode 100644 test/fg-ref/mult2.fg
 create mode 100644 test/fg-ref/mult3.fg
 create mode 100644 test/fg-ref/not1.fg
 create mode 100644 test/fg-ref/not2.fg
 create mode 100644 test/fg-ref/not3.fg
 create mode 100644 test/fg-ref/or1.fg
 create mode 100644 test/fg-ref/or2.fg
 create mode 100644 test/fg-ref/or3.fg
 create mode 100644 test/fg-ref/or4.fg
 create mode 100644 test/fg-ref/or5.fg
 create mode 100644 test/fg-ref/parenth1.fg
 create mode 100644 test/fg-ref/parenth2.fg
 create mode 100644 test/fg-ref/prio23-1.fg
 create mode 100644 test/fg-ref/prio23-2.fg
 create mode 100644 test/fg-ref/prio23-3.fg
 create mode 100644 test/fg-ref/prio23-4.fg
 create mode 100644 test/fg-ref/prio34-1.fg
 create mode 100644 test/fg-ref/prio34-2.fg
 create mode 100644 test/fg-ref/prio34-3.fg
 create mode 100644 test/fg-ref/prio34-4.fg
 create mode 100644 test/fg-ref/prio45-1.fg
 create mode 100644 test/fg-ref/prio45-2.fg
 create mode 100644 test/fg-ref/prio45-3.fg
 create mode 100644 test/fg-ref/prio45-4.fg
 create mode 100644 test/fg-ref/prio56-1.fg
 create mode 100644 test/fg-ref/prio56-2.fg
 create mode 100644 test/fg-ref/prio67-1.fg
 create mode 100644 test/fg-ref/prio67-2.fg
 create mode 100644 test/fg-ref/rec1.fg
 create mode 100644 test/fg-ref/si1.fg
 create mode 100644 test/fg-ref/si2.fg
 create mode 100644 test/fg-ref/si3.fg
 create mode 100644 test/fg-ref/si4.fg
 create mode 100644 test/fg-ref/si5.fg
 create mode 100644 test/fg-ref/sub1.fg
 create mode 100644 test/fg-ref/sub2.fg
 create mode 100644 test/fg-ref/sub3.fg
 create mode 100644 test/fg-ref/tab1.fg
 create mode 100644 test/fg-ref/tab2.fg
 create mode 100644 test/fg-ref/tab3.fg
 create mode 100644 test/fg-ref/tab4.fg
 create mode 100644 test/fg-ref/tantque1.fg
 create mode 100644 test/fg-ref/tantque2.fg
 create mode 100644 test/fg-ref/varglob1.fg
 create mode 100644 test/fg-ref/varglob2.fg
 create mode 100644 test/fg-ref/varglob3.fg
 create mode 100644 test/fg-ref/varglob4.fg
 create mode 100644 test/fg-ref/varloc1.fg
 create mode 100644 test/fg-ref/varloc2.fg
 create mode 100644 test/fg-ref/varloc3.fg
 create mode 100644 test/fg-ref/varloc4.fg
 create mode 100644 test/fg-ref/varloc5.fg
 create mode 100644 test/fgs-ref/add1.fgs
 create mode 100644 test/fgs-ref/add2.fgs
 create mode 100644 test/fgs-ref/affect1.fgs
 create mode 100644 test/fgs-ref/affect2.fgs
 create mode 100644 test/fgs-ref/affect3.fgs
 create mode 100644 test/fgs-ref/and1.fgs
 create mode 100644 test/fgs-ref/and2.fgs
 create mode 100644 test/fgs-ref/and3.fgs
 create mode 100644 test/fgs-ref/and4.fgs
 create mode 100644 test/fgs-ref/and5.fgs
 create mode 100644 test/fgs-ref/appel-param1.fgs
 create mode 100644 test/fgs-ref/appel-param2.fgs
 create mode 100644 test/fgs-ref/appel-param3.fgs
 create mode 100644 test/fgs-ref/appel-retour1.fgs
 create mode 100644 test/fgs-ref/appel1.fgs
 create mode 100644 test/fgs-ref/appel2.fgs
 create mode 100644 test/fgs-ref/appel3.fgs
 create mode 100644 test/fgs-ref/div1.fgs
 create mode 100644 test/fgs-ref/div2.fgs
 create mode 100644 test/fgs-ref/div3.fgs
 create mode 100644 test/fgs-ref/div4.fgs
 create mode 100644 test/fgs-ref/ecrire1.fgs
 create mode 100644 test/fgs-ref/ecrire2.fgs
 create mode 100644 test/fgs-ref/egal1.fgs
 create mode 100644 test/fgs-ref/egal2.fgs
 create mode 100644 test/fgs-ref/egal3.fgs
 create mode 100644 test/fgs-ref/err5.fgs
 create mode 100644 test/fgs-ref/fibo.fgs
 create mode 100644 test/fgs-ref/inf1.fgs
 create mode 100644 test/fgs-ref/inf2.fgs
 create mode 100644 test/fgs-ref/inf3.fgs
 create mode 100644 test/fgs-ref/inf4.fgs
 create mode 100644 test/fgs-ref/mult1.fgs
 create mode 100644 test/fgs-ref/mult2.fgs
 create mode 100644 test/fgs-ref/mult3.fgs
 create mode 100644 test/fgs-ref/not1.fgs
 create mode 100644 test/fgs-ref/not2.fgs
 create mode 100644 test/fgs-ref/not3.fgs
 create mode 100644 test/fgs-ref/or1.fgs
 create mode 100644 test/fgs-ref/or2.fgs
 create mode 100644 test/fgs-ref/or3.fgs
 create mode 100644 test/fgs-ref/or4.fgs
 create mode 100644 test/fgs-ref/or5.fgs
 create mode 100644 test/fgs-ref/parenth1.fgs
 create mode 100644 test/fgs-ref/parenth2.fgs
 create mode 100644 test/fgs-ref/prio23-1.fgs
 create mode 100644 test/fgs-ref/prio23-2.fgs
 create mode 100644 test/fgs-ref/prio23-3.fgs
 create mode 100644 test/fgs-ref/prio23-4.fgs
 create mode 100644 test/fgs-ref/prio34-1.fgs
 create mode 100644 test/fgs-ref/prio34-2.fgs
 create mode 100644 test/fgs-ref/prio34-3.fgs
 create mode 100644 test/fgs-ref/prio34-4.fgs
 create mode 100644 test/fgs-ref/prio45-1.fgs
 create mode 100644 test/fgs-ref/prio45-2.fgs
 create mode 100644 test/fgs-ref/prio45-3.fgs
 create mode 100644 test/fgs-ref/prio45-4.fgs
 create mode 100644 test/fgs-ref/prio56-1.fgs
 create mode 100644 test/fgs-ref/prio56-2.fgs
 create mode 100644 test/fgs-ref/prio67-1.fgs
 create mode 100644 test/fgs-ref/prio67-2.fgs
 create mode 100644 test/fgs-ref/rec1.fgs
 create mode 100644 test/fgs-ref/si1.fgs
 create mode 100644 test/fgs-ref/si2.fgs
 create mode 100644 test/fgs-ref/si3.fgs
 create mode 100644 test/fgs-ref/si4.fgs
 create mode 100644 test/fgs-ref/si5.fgs
 create mode 100644 test/fgs-ref/sub1.fgs
 create mode 100644 test/fgs-ref/sub2.fgs
 create mode 100644 test/fgs-ref/sub3.fgs
 create mode 100644 test/fgs-ref/tab1.fgs
 create mode 100644 test/fgs-ref/tab2.fgs
 create mode 100644 test/fgs-ref/tab3.fgs
 create mode 100644 test/fgs-ref/tab4.fgs
 create mode 100644 test/fgs-ref/tantque1.fgs
 create mode 100644 test/fgs-ref/tantque2.fgs
 create mode 100644 test/fgs-ref/varglob1.fgs
 create mode 100644 test/fgs-ref/varglob2.fgs
 create mode 100644 test/fgs-ref/varglob3.fgs
 create mode 100644 test/fgs-ref/varglob4.fgs
 create mode 100644 test/fgs-ref/varloc1.fgs
 create mode 100644 test/fgs-ref/varloc2.fgs
 create mode 100644 test/fgs-ref/varloc3.fgs
 create mode 100644 test/fgs-ref/varloc4.fgs
 create mode 100644 test/fgs-ref/varloc5.fgs
 create mode 100644 test/ig-ref/add1.ig
 create mode 100644 test/ig-ref/add2.ig
 create mode 100644 test/ig-ref/affect1.ig
 create mode 100644 test/ig-ref/affect2.ig
 create mode 100644 test/ig-ref/affect3.ig
 create mode 100644 test/ig-ref/and1.ig
 create mode 100644 test/ig-ref/and2.ig
 create mode 100644 test/ig-ref/and3.ig
 create mode 100644 test/ig-ref/and4.ig
 create mode 100644 test/ig-ref/and5.ig
 create mode 100644 test/ig-ref/appel-param1.ig
 create mode 100644 test/ig-ref/appel-param2.ig
 create mode 100644 test/ig-ref/appel-param3.ig
 create mode 100644 test/ig-ref/appel-retour1.ig
 create mode 100644 test/ig-ref/appel1.ig
 create mode 100644 test/ig-ref/appel2.ig
 create mode 100644 test/ig-ref/appel3.ig
 create mode 100644 test/ig-ref/div1.ig
 create mode 100644 test/ig-ref/div2.ig
 create mode 100644 test/ig-ref/div3.ig
 create mode 100644 test/ig-ref/div4.ig
 create mode 100644 test/ig-ref/ecrire1.ig
 create mode 100644 test/ig-ref/ecrire2.ig
 create mode 100644 test/ig-ref/egal1.ig
 create mode 100644 test/ig-ref/egal2.ig
 create mode 100644 test/ig-ref/egal3.ig
 create mode 100644 test/ig-ref/err5.ig
 create mode 100644 test/ig-ref/fibo.ig
 create mode 100644 test/ig-ref/inf1.ig
 create mode 100644 test/ig-ref/inf2.ig
 create mode 100644 test/ig-ref/inf3.ig
 create mode 100644 test/ig-ref/inf4.ig
 create mode 100644 test/ig-ref/mult1.ig
 create mode 100644 test/ig-ref/mult2.ig
 create mode 100644 test/ig-ref/mult3.ig
 create mode 100644 test/ig-ref/not1.ig
 create mode 100644 test/ig-ref/not2.ig
 create mode 100644 test/ig-ref/not3.ig
 create mode 100644 test/ig-ref/or1.ig
 create mode 100644 test/ig-ref/or2.ig
 create mode 100644 test/ig-ref/or3.ig
 create mode 100644 test/ig-ref/or4.ig
 create mode 100644 test/ig-ref/or5.ig
 create mode 100644 test/ig-ref/parenth1.ig
 create mode 100644 test/ig-ref/parenth2.ig
 create mode 100644 test/ig-ref/prio23-1.ig
 create mode 100644 test/ig-ref/prio23-2.ig
 create mode 100644 test/ig-ref/prio23-3.ig
 create mode 100644 test/ig-ref/prio23-4.ig
 create mode 100644 test/ig-ref/prio34-1.ig
 create mode 100644 test/ig-ref/prio34-2.ig
 create mode 100644 test/ig-ref/prio34-3.ig
 create mode 100644 test/ig-ref/prio34-4.ig
 create mode 100644 test/ig-ref/prio45-1.ig
 create mode 100644 test/ig-ref/prio45-2.ig
 create mode 100644 test/ig-ref/prio45-3.ig
 create mode 100644 test/ig-ref/prio45-4.ig
 create mode 100644 test/ig-ref/prio56-1.ig
 create mode 100644 test/ig-ref/prio56-2.ig
 create mode 100644 test/ig-ref/prio67-1.ig
 create mode 100644 test/ig-ref/prio67-2.ig
 create mode 100644 test/ig-ref/rec1.ig
 create mode 100644 test/ig-ref/si1.ig
 create mode 100644 test/ig-ref/si2.ig
 create mode 100644 test/ig-ref/si3.ig
 create mode 100644 test/ig-ref/si4.ig
 create mode 100644 test/ig-ref/si5.ig
 create mode 100644 test/ig-ref/sub1.ig
 create mode 100644 test/ig-ref/sub2.ig
 create mode 100644 test/ig-ref/sub3.ig
 create mode 100644 test/ig-ref/tab1.ig
 create mode 100644 test/ig-ref/tab2.ig
 create mode 100644 test/ig-ref/tab3.ig
 create mode 100644 test/ig-ref/tab4.ig
 create mode 100644 test/ig-ref/tantque1.ig
 create mode 100644 test/ig-ref/tantque2.ig
 create mode 100644 test/ig-ref/varglob1.ig
 create mode 100644 test/ig-ref/varglob2.ig
 create mode 100644 test/ig-ref/varglob3.ig
 create mode 100644 test/ig-ref/varglob4.ig
 create mode 100644 test/ig-ref/varloc1.ig
 create mode 100644 test/ig-ref/varloc2.ig
 create mode 100644 test/ig-ref/varloc3.ig
 create mode 100644 test/ig-ref/varloc4.ig
 create mode 100644 test/ig-ref/varloc5.ig
 create mode 100644 test/input/.gitignore
 create mode 100644 test/input/add1.l
 create mode 100644 test/input/add1.s
 create mode 100644 test/input/add2.l
 create mode 100644 test/input/add2.s
 create mode 100644 test/input/affect1.l
 create mode 100644 test/input/affect1.s
 create mode 100644 test/input/affect2.l
 create mode 100644 test/input/affect2.s
 create mode 100644 test/input/affect3.l
 create mode 100644 test/input/and1.l
 create mode 100644 test/input/and2.l
 create mode 100644 test/input/and3.l
 create mode 100644 test/input/and4.l
 create mode 100644 test/input/and5.l
 create mode 100644 test/input/appel-param1.l
 create mode 100644 test/input/appel-param2.l
 create mode 100644 test/input/appel-param3.l
 create mode 100644 test/input/appel-retour1.l
 create mode 100644 test/input/appel1.l
 create mode 100644 test/input/appel2.l
 create mode 100644 test/input/appel3.l
 create mode 100755 test/input/clean
 create mode 100644 test/input/div1.l
 create mode 100644 test/input/div2.l
 create mode 100644 test/input/div3.l
 create mode 100644 test/input/div4.l
 create mode 100644 test/input/ecrire1.l
 create mode 100644 test/input/ecrire2.l
 create mode 100644 test/input/egal1.l
 create mode 100644 test/input/egal2.l
 create mode 100644 test/input/egal3.l
 create mode 100644 test/input/fibo.l
 create mode 100644 test/input/inf1.l
 create mode 100644 test/input/inf2.l
 create mode 100644 test/input/inf3.l
 create mode 100644 test/input/mult1.l
 create mode 100644 test/input/mult2.l
 create mode 100644 test/input/mult3.l
 create mode 100644 test/input/nettoie.sh
 create mode 100644 test/input/not1.l
 create mode 100644 test/input/not2.l
 create mode 100644 test/input/not3.l
 create mode 100644 test/input/or1.l
 create mode 100644 test/input/or2.l
 create mode 100644 test/input/or3.l
 create mode 100644 test/input/or4.l
 create mode 100644 test/input/or5.l
 create mode 100644 test/input/parenth1.l
 create mode 100644 test/input/parenth2.l
 create mode 100644 test/input/prio34-1.l
 create mode 100644 test/input/prio34-2.l
 create mode 100644 test/input/prio34-3.l
 create mode 100644 test/input/prio34-4.l
 create mode 100644 test/input/prio45-1.l
 create mode 100644 test/input/prio45-2.l
 create mode 100644 test/input/prio45-3.l
 create mode 100644 test/input/prio45-4.l
 create mode 100644 test/input/prio56-1.l
 create mode 100644 test/input/prio56-2.l
 create mode 100644 test/input/prio67-1.l
 create mode 100644 test/input/prio67-2.l
 create mode 100644 test/input/rec1.l
 create mode 100644 test/input/si1.l
 create mode 100644 test/input/si2.l
 create mode 100644 test/input/si3.l
 create mode 100644 test/input/si4.l
 create mode 100644 test/input/si5.l
 create mode 100644 test/input/sub1.l
 create mode 100644 test/input/sub2.l
 create mode 100644 test/input/sub3.l
 create mode 100644 test/input/tab1.l
 create mode 100644 test/input/tab2.l
 create mode 100644 test/input/tab3.l
 create mode 100644 test/input/tab4.l
 create mode 100644 test/input/tantque1.l
 create mode 100644 test/input/tantque2.l
 create mode 100644 test/input/tri.l
 create mode 100644 test/input/varglob1.l
 create mode 100644 test/input/varglob2.l
 create mode 100644 test/input/varglob3.l
 create mode 100644 test/input/varglob4.l
 create mode 100644 test/input/varloc1.l
 create mode 100644 test/input/varloc2.l
 create mode 100644 test/input/varloc3.l
 create mode 100644 test/input/varloc4.l
 create mode 100644 test/input/varloc5.l
 create mode 100644 test/input_err_ts/double_dec1.l
 create mode 100644 test/input_err_ts/double_dec2.l
 create mode 100644 test/input_err_ts/double_dec3.l
 create mode 100644 test/input_err_ts/double_dec4.l
 create mode 100644 test/input_err_ts/fct_inconnue1.l
 create mode 100644 test/input_err_ts/mauvais_nb_arg1.l
 create mode 100644 test/input_err_ts/var_inconnue1.l
 create mode 100644 test/input_err_type/add1.l
 create mode 100644 test/input_err_type/add2.l
 create mode 100644 test/input_err_type/add3.l
 create mode 100644 test/input_err_type/add4.l
 create mode 100644 test/input_err_type/affect1.l
 create mode 100644 test/input_err_type/affect2.l
 create mode 100644 test/input_err_type/affect3.l
 create mode 100644 test/input_err_type/affect4.l
 create mode 100644 test/input_err_type/and1.l
 create mode 100644 test/input_err_type/and2.l
 create mode 100644 test/input_err_type/and3.l
 create mode 100644 test/input_err_type/and4.l
 create mode 100644 test/input_err_type/appel1.l
 create mode 100644 test/input_err_type/appel2.l
 create mode 100644 test/input_err_type/appel3.l
 create mode 100644 test/input_err_type/appel4.l
 create mode 100644 test/input_err_type/div1.l
 create mode 100644 test/input_err_type/div2.l
 create mode 100644 test/input_err_type/div3.l
 create mode 100644 test/input_err_type/div4.l
 create mode 100644 test/input_err_type/egal1.l
 create mode 100644 test/input_err_type/egal2.l
 create mode 100644 test/input_err_type/egal3.l
 create mode 100644 test/input_err_type/egal3.nasm
 create mode 100644 test/input_err_type/inf1.l
 create mode 100644 test/input_err_type/inf2.l
 create mode 100644 test/input_err_type/inf3.l
 create mode 100644 test/input_err_type/inf3.nasm
 create mode 100644 test/input_err_type/inf4.l
 create mode 100644 test/input_err_type/mult1.l
 create mode 100644 test/input_err_type/mult2.l
 create mode 100644 test/input_err_type/mult3.l
 create mode 100644 test/input_err_type/mult4.l
 create mode 100644 test/input_err_type/not1.l
 create mode 100644 test/input_err_type/or1.l
 create mode 100644 test/input_err_type/or2.l
 create mode 100644 test/input_err_type/or3.l
 create mode 100644 test/input_err_type/or4.l
 create mode 100644 test/input_err_type/retour1.l
 create mode 100644 test/input_err_type/retour2.l
 create mode 100644 test/input_err_type/retour3.l
 create mode 100644 test/input_err_type/si1.l
 create mode 100644 test/input_err_type/sub1.l
 create mode 100644 test/input_err_type/sub2.l
 create mode 100644 test/input_err_type/sub3.l
 create mode 100644 test/input_err_type/sub4.l
 create mode 100644 test/input_err_type/tantque1.l
 create mode 100644 test/io.asm
 create mode 100644 test/nasm-ref/add1.nasm
 create mode 100644 test/nasm-ref/add2.nasm
 create mode 100644 test/nasm-ref/affect1.nasm
 create mode 100644 test/nasm-ref/affect2.nasm
 create mode 100644 test/nasm-ref/affect3.nasm
 create mode 100644 test/nasm-ref/and1.nasm
 create mode 100644 test/nasm-ref/and2.nasm
 create mode 100644 test/nasm-ref/and3.nasm
 create mode 100644 test/nasm-ref/and4.nasm
 create mode 100644 test/nasm-ref/and5.nasm
 create mode 100644 test/nasm-ref/appel-param1.nasm
 create mode 100644 test/nasm-ref/appel-param2.nasm
 create mode 100644 test/nasm-ref/appel-param3.nasm
 create mode 100644 test/nasm-ref/appel-retour1.nasm
 create mode 100644 test/nasm-ref/appel1.nasm
 create mode 100644 test/nasm-ref/appel2.nasm
 create mode 100644 test/nasm-ref/appel3.nasm
 create mode 100644 test/nasm-ref/div1.nasm
 create mode 100644 test/nasm-ref/div2.nasm
 create mode 100644 test/nasm-ref/div3.nasm
 create mode 100644 test/nasm-ref/div4.nasm
 create mode 100644 test/nasm-ref/ecrire1.nasm
 create mode 100644 test/nasm-ref/ecrire2.nasm
 create mode 100644 test/nasm-ref/egal1.nasm
 create mode 100644 test/nasm-ref/egal2.nasm
 create mode 100644 test/nasm-ref/egal3.nasm
 create mode 100644 test/nasm-ref/fibo.nasm
 create mode 100644 test/nasm-ref/inf1.nasm
 create mode 100644 test/nasm-ref/inf2.nasm
 create mode 100644 test/nasm-ref/inf3.nasm
 create mode 100644 test/nasm-ref/inf4.nasm
 create mode 100644 test/nasm-ref/mult1.nasm
 create mode 100644 test/nasm-ref/mult2.nasm
 create mode 100644 test/nasm-ref/mult3.nasm
 create mode 100644 test/nasm-ref/not1.nasm
 create mode 100644 test/nasm-ref/not2.nasm
 create mode 100644 test/nasm-ref/not3.nasm
 create mode 100644 test/nasm-ref/or1.nasm
 create mode 100644 test/nasm-ref/or2.nasm
 create mode 100644 test/nasm-ref/or3.nasm
 create mode 100644 test/nasm-ref/or4.nasm
 create mode 100644 test/nasm-ref/or5.nasm
 create mode 100644 test/nasm-ref/parenth1.nasm
 create mode 100644 test/nasm-ref/parenth2.nasm
 create mode 100644 test/nasm-ref/prio23-1.nasm
 create mode 100644 test/nasm-ref/prio23-2.nasm
 create mode 100644 test/nasm-ref/prio23-3.nasm
 create mode 100644 test/nasm-ref/prio23-4.nasm
 create mode 100644 test/nasm-ref/prio34-1.nasm
 create mode 100644 test/nasm-ref/prio34-2.nasm
 create mode 100644 test/nasm-ref/prio34-3.nasm
 create mode 100644 test/nasm-ref/prio34-4.nasm
 create mode 100644 test/nasm-ref/prio45-1.nasm
 create mode 100644 test/nasm-ref/prio45-2.nasm
 create mode 100644 test/nasm-ref/prio45-3.nasm
 create mode 100644 test/nasm-ref/prio45-4.nasm
 create mode 100644 test/nasm-ref/prio56-1.nasm
 create mode 100644 test/nasm-ref/prio56-2.nasm
 create mode 100644 test/nasm-ref/prio67-1.nasm
 create mode 100644 test/nasm-ref/prio67-2.nasm
 create mode 100644 test/nasm-ref/rec1.nasm
 create mode 100644 test/nasm-ref/si1.nasm
 create mode 100644 test/nasm-ref/si2.nasm
 create mode 100644 test/nasm-ref/si3.nasm
 create mode 100644 test/nasm-ref/si4.nasm
 create mode 100644 test/nasm-ref/si5.nasm
 create mode 100644 test/nasm-ref/sub1.nasm
 create mode 100644 test/nasm-ref/sub2.nasm
 create mode 100644 test/nasm-ref/sub3.nasm
 create mode 100644 test/nasm-ref/tab1.nasm
 create mode 100644 test/nasm-ref/tab2.nasm
 create mode 100644 test/nasm-ref/tab3.nasm
 create mode 100644 test/nasm-ref/tab4.nasm
 create mode 100644 test/nasm-ref/tantque1.nasm
 create mode 100644 test/nasm-ref/tantque2.nasm
 create mode 100644 test/nasm-ref/tri.nasm
 create mode 100644 test/nasm-ref/varglob1.nasm
 create mode 100644 test/nasm-ref/varglob2.nasm
 create mode 100644 test/nasm-ref/varglob3.nasm
 create mode 100644 test/nasm-ref/varglob4.nasm
 create mode 100644 test/nasm-ref/varloc1.nasm
 create mode 100644 test/nasm-ref/varloc2.nasm
 create mode 100644 test/nasm-ref/varloc3.nasm
 create mode 100644 test/nasm-ref/varloc4.nasm
 create mode 100644 test/nasm-ref/varloc5.nasm
 create mode 100644 test/out-ref/add1.out
 create mode 100644 test/out-ref/add2.out
 create mode 100644 test/out-ref/affect1.out
 create mode 100644 test/out-ref/affect2.out
 create mode 100644 test/out-ref/affect3.out
 create mode 100644 test/out-ref/and1.out
 create mode 100644 test/out-ref/and2.out
 create mode 100644 test/out-ref/and3.out
 create mode 100644 test/out-ref/and4.out
 create mode 100644 test/out-ref/and5.out
 create mode 100644 test/out-ref/appel-param1.out
 create mode 100644 test/out-ref/appel-param2.out
 create mode 100644 test/out-ref/appel-param3.out
 create mode 100644 test/out-ref/appel-retour1.out
 create mode 100644 test/out-ref/appel1.out
 create mode 100644 test/out-ref/appel2.out
 create mode 100644 test/out-ref/appel3.out
 create mode 100644 test/out-ref/div1.out
 create mode 100644 test/out-ref/div2.out
 create mode 100644 test/out-ref/div3.out
 create mode 100644 test/out-ref/div4.out
 create mode 100644 test/out-ref/ecrire1.out
 create mode 100644 test/out-ref/ecrire2.out
 create mode 100644 test/out-ref/egal1.out
 create mode 100644 test/out-ref/egal2.out
 create mode 100644 test/out-ref/egal3.out
 create mode 100644 test/out-ref/err5.out
 create mode 100644 test/out-ref/fibo.out
 create mode 100644 test/out-ref/inf1.out
 create mode 100644 test/out-ref/inf2.out
 create mode 100644 test/out-ref/inf3.out
 create mode 100644 test/out-ref/inf4.out
 create mode 100644 test/out-ref/mult1.out
 create mode 100644 test/out-ref/mult2.out
 create mode 100644 test/out-ref/mult3.out
 create mode 100644 test/out-ref/not1.out
 create mode 100644 test/out-ref/not2.out
 create mode 100644 test/out-ref/not3.out
 create mode 100644 test/out-ref/or1.out
 create mode 100644 test/out-ref/or2.out
 create mode 100644 test/out-ref/or3.out
 create mode 100644 test/out-ref/or4.out
 create mode 100644 test/out-ref/or5.out
 create mode 100644 test/out-ref/parenth1.out
 create mode 100644 test/out-ref/parenth2.out
 create mode 100644 test/out-ref/prio23-1.out
 create mode 100644 test/out-ref/prio23-2.out
 create mode 100644 test/out-ref/prio23-3.out
 create mode 100644 test/out-ref/prio23-4.out
 create mode 100644 test/out-ref/prio34-1.out
 create mode 100644 test/out-ref/prio34-2.out
 create mode 100644 test/out-ref/prio34-3.out
 create mode 100644 test/out-ref/prio34-4.out
 create mode 100644 test/out-ref/prio45-1.out
 create mode 100644 test/out-ref/prio45-2.out
 create mode 100644 test/out-ref/prio45-3.out
 create mode 100644 test/out-ref/prio45-4.out
 create mode 100644 test/out-ref/prio56-1.out
 create mode 100644 test/out-ref/prio56-2.out
 create mode 100644 test/out-ref/prio67-1.out
 create mode 100644 test/out-ref/prio67-2.out
 create mode 100644 test/out-ref/rec1.out
 create mode 100644 test/out-ref/si1.out
 create mode 100644 test/out-ref/si2.out
 create mode 100644 test/out-ref/si3.out
 create mode 100644 test/out-ref/si4.out
 create mode 100644 test/out-ref/si5.out
 create mode 100644 test/out-ref/sub1.out
 create mode 100644 test/out-ref/sub2.out
 create mode 100644 test/out-ref/sub3.out
 create mode 100644 test/out-ref/tab1.out
 create mode 100644 test/out-ref/tab2.out
 create mode 100644 test/out-ref/tab3.out
 create mode 100644 test/out-ref/tab4.out
 create mode 100644 test/out-ref/tantque1.out
 create mode 100644 test/out-ref/tantque2.out
 create mode 100644 test/out-ref/tri.out
 create mode 100644 test/out-ref/varglob1.out
 create mode 100644 test/out-ref/varglob2.out
 create mode 100644 test/out-ref/varglob3.out
 create mode 100644 test/out-ref/varglob4.out
 create mode 100644 test/out-ref/varloc1.out
 create mode 100644 test/out-ref/varloc2.out
 create mode 100644 test/out-ref/varloc3.out
 create mode 100644 test/out-ref/varloc4.out
 create mode 100644 test/out-ref/varloc5.out
 create mode 100644 test/pre-nasm-ref/add1.pre-nasm
 create mode 100644 test/pre-nasm-ref/add2.pre-nasm
 create mode 100644 test/pre-nasm-ref/affect1.pre-nasm
 create mode 100644 test/pre-nasm-ref/affect2.pre-nasm
 create mode 100644 test/pre-nasm-ref/affect3.pre-nasm
 create mode 100644 test/pre-nasm-ref/and1.pre-nasm
 create mode 100644 test/pre-nasm-ref/and2.pre-nasm
 create mode 100644 test/pre-nasm-ref/and3.pre-nasm
 create mode 100644 test/pre-nasm-ref/and4.pre-nasm
 create mode 100644 test/pre-nasm-ref/and5.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel-param1.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel-param2.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel-param3.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel-retour1.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel1.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel2.pre-nasm
 create mode 100644 test/pre-nasm-ref/appel3.pre-nasm
 create mode 100644 test/pre-nasm-ref/div1.pre-nasm
 create mode 100644 test/pre-nasm-ref/div2.pre-nasm
 create mode 100644 test/pre-nasm-ref/div3.pre-nasm
 create mode 100644 test/pre-nasm-ref/div4.pre-nasm
 create mode 100644 test/pre-nasm-ref/ecrire1.pre-nasm
 create mode 100644 test/pre-nasm-ref/ecrire2.pre-nasm
 create mode 100644 test/pre-nasm-ref/egal1.pre-nasm
 create mode 100644 test/pre-nasm-ref/egal2.pre-nasm
 create mode 100644 test/pre-nasm-ref/egal3.pre-nasm
 create mode 100644 test/pre-nasm-ref/fibo.pre-nasm
 create mode 100644 test/pre-nasm-ref/inf1.pre-nasm
 create mode 100644 test/pre-nasm-ref/inf2.pre-nasm
 create mode 100644 test/pre-nasm-ref/inf3.pre-nasm
 create mode 100644 test/pre-nasm-ref/inf4.pre-nasm
 create mode 100644 test/pre-nasm-ref/mult1.pre-nasm
 create mode 100644 test/pre-nasm-ref/mult2.pre-nasm
 create mode 100644 test/pre-nasm-ref/mult3.pre-nasm
 create mode 100644 test/pre-nasm-ref/not1.pre-nasm
 create mode 100644 test/pre-nasm-ref/not2.pre-nasm
 create mode 100644 test/pre-nasm-ref/not3.pre-nasm
 create mode 100644 test/pre-nasm-ref/or1.pre-nasm
 create mode 100644 test/pre-nasm-ref/or2.pre-nasm
 create mode 100644 test/pre-nasm-ref/or3.pre-nasm
 create mode 100644 test/pre-nasm-ref/or4.pre-nasm
 create mode 100644 test/pre-nasm-ref/or5.pre-nasm
 create mode 100644 test/pre-nasm-ref/parenth1.pre-nasm
 create mode 100644 test/pre-nasm-ref/parenth2.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio23-1.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio23-2.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio23-3.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio23-4.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio34-1.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio34-2.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio34-3.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio34-4.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio45-1.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio45-2.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio45-3.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio45-4.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio56-1.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio56-2.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio67-1.pre-nasm
 create mode 100644 test/pre-nasm-ref/prio67-2.pre-nasm
 create mode 100644 test/pre-nasm-ref/rec1.pre-nasm
 create mode 100644 test/pre-nasm-ref/si1.pre-nasm
 create mode 100644 test/pre-nasm-ref/si2.pre-nasm
 create mode 100644 test/pre-nasm-ref/si3.pre-nasm
 create mode 100644 test/pre-nasm-ref/si4.pre-nasm
 create mode 100644 test/pre-nasm-ref/si5.pre-nasm
 create mode 100644 test/pre-nasm-ref/sub1.pre-nasm
 create mode 100644 test/pre-nasm-ref/sub2.pre-nasm
 create mode 100644 test/pre-nasm-ref/sub3.pre-nasm
 create mode 100644 test/pre-nasm-ref/tab1.pre-nasm
 create mode 100644 test/pre-nasm-ref/tab2.pre-nasm
 create mode 100644 test/pre-nasm-ref/tab3.pre-nasm
 create mode 100644 test/pre-nasm-ref/tab4.pre-nasm
 create mode 100644 test/pre-nasm-ref/tantque1.pre-nasm
 create mode 100644 test/pre-nasm-ref/tantque2.pre-nasm
 create mode 100644 test/pre-nasm-ref/tri.pre-nasm
 create mode 100644 test/pre-nasm-ref/varglob1.pre-nasm
 create mode 100644 test/pre-nasm-ref/varglob2.pre-nasm
 create mode 100644 test/pre-nasm-ref/varglob3.pre-nasm
 create mode 100644 test/pre-nasm-ref/varglob4.pre-nasm
 create mode 100644 test/pre-nasm-ref/varloc1.pre-nasm
 create mode 100644 test/pre-nasm-ref/varloc2.pre-nasm
 create mode 100644 test/pre-nasm-ref/varloc3.pre-nasm
 create mode 100644 test/pre-nasm-ref/varloc4.pre-nasm
 create mode 100644 test/pre-nasm-ref/varloc5.pre-nasm
 create mode 100644 test/sa-ref/add1.sa
 create mode 100644 test/sa-ref/add2.sa
 create mode 100644 test/sa-ref/affect1.sa
 create mode 100644 test/sa-ref/affect2.sa
 create mode 100644 test/sa-ref/affect3.sa
 create mode 100644 test/sa-ref/and1.sa
 create mode 100644 test/sa-ref/and2.sa
 create mode 100644 test/sa-ref/and3.sa
 create mode 100644 test/sa-ref/and4.sa
 create mode 100644 test/sa-ref/and5.sa
 create mode 100644 test/sa-ref/appel-param1.sa
 create mode 100644 test/sa-ref/appel-param2.sa
 create mode 100644 test/sa-ref/appel-param3.sa
 create mode 100644 test/sa-ref/appel-retour1.sa
 create mode 100644 test/sa-ref/appel1.sa
 create mode 100644 test/sa-ref/appel2.sa
 create mode 100644 test/sa-ref/appel3.sa
 create mode 100644 test/sa-ref/div1.sa
 create mode 100644 test/sa-ref/div2.sa
 create mode 100644 test/sa-ref/div3.sa
 create mode 100644 test/sa-ref/div4.sa
 create mode 100644 test/sa-ref/ecrire1.sa
 create mode 100644 test/sa-ref/ecrire2.sa
 create mode 100644 test/sa-ref/egal1.sa
 create mode 100644 test/sa-ref/egal2.sa
 create mode 100644 test/sa-ref/egal3.sa
 create mode 100644 test/sa-ref/err1.sa
 create mode 100644 test/sa-ref/err2.sa
 create mode 100644 test/sa-ref/err3.sa
 create mode 100644 test/sa-ref/err4.sa
 create mode 100644 test/sa-ref/err5.sa
 create mode 100644 test/sa-ref/fibo.sa
 create mode 100644 test/sa-ref/inf1.sa
 create mode 100644 test/sa-ref/inf2.sa
 create mode 100644 test/sa-ref/inf3.sa
 create mode 100644 test/sa-ref/inf4.sa
 create mode 100644 test/sa-ref/mult1.sa
 create mode 100644 test/sa-ref/mult2.sa
 create mode 100644 test/sa-ref/mult3.sa
 create mode 100644 test/sa-ref/not1.sa
 create mode 100644 test/sa-ref/not2.sa
 create mode 100644 test/sa-ref/not3.sa
 create mode 100644 test/sa-ref/or1.sa
 create mode 100644 test/sa-ref/or2.sa
 create mode 100644 test/sa-ref/or3.sa
 create mode 100644 test/sa-ref/or4.sa
 create mode 100644 test/sa-ref/or5.sa
 create mode 100644 test/sa-ref/parenth1.sa
 create mode 100644 test/sa-ref/parenth2.sa
 create mode 100644 test/sa-ref/prio23-1.sa
 create mode 100644 test/sa-ref/prio23-2.sa
 create mode 100644 test/sa-ref/prio23-3.sa
 create mode 100644 test/sa-ref/prio23-4.sa
 create mode 100644 test/sa-ref/prio34-1.sa
 create mode 100644 test/sa-ref/prio34-2.sa
 create mode 100644 test/sa-ref/prio34-3.sa
 create mode 100644 test/sa-ref/prio34-4.sa
 create mode 100644 test/sa-ref/prio45-1.sa
 create mode 100644 test/sa-ref/prio45-2.sa
 create mode 100644 test/sa-ref/prio45-3.sa
 create mode 100644 test/sa-ref/prio45-4.sa
 create mode 100644 test/sa-ref/prio56-1.sa
 create mode 100644 test/sa-ref/prio56-2.sa
 create mode 100644 test/sa-ref/prio67-1.sa
 create mode 100644 test/sa-ref/prio67-2.sa
 create mode 100644 test/sa-ref/rec1.sa
 create mode 100644 test/sa-ref/si1.sa
 create mode 100644 test/sa-ref/si2.sa
 create mode 100644 test/sa-ref/si3.sa
 create mode 100644 test/sa-ref/si4.sa
 create mode 100644 test/sa-ref/si5.sa
 create mode 100644 test/sa-ref/sub1.sa
 create mode 100644 test/sa-ref/sub2.sa
 create mode 100644 test/sa-ref/sub3.sa
 create mode 100644 test/sa-ref/tab1.sa
 create mode 100644 test/sa-ref/tab2.sa
 create mode 100644 test/sa-ref/tab3.sa
 create mode 100644 test/sa-ref/tab4.sa
 create mode 100644 test/sa-ref/tantque1.sa
 create mode 100644 test/sa-ref/tantque2.sa
 create mode 100644 test/sa-ref/tri.sa
 create mode 100644 test/sa-ref/varglob1.sa
 create mode 100644 test/sa-ref/varglob2.sa
 create mode 100644 test/sa-ref/varglob3.sa
 create mode 100644 test/sa-ref/varglob4.sa
 create mode 100644 test/sa-ref/varloc1.sa
 create mode 100644 test/sa-ref/varloc2.sa
 create mode 100644 test/sa-ref/varloc3.sa
 create mode 100644 test/sa-ref/varloc4.sa
 create mode 100644 test/sa-ref/varloc5.sa
 create mode 100644 test/sc-ref/add1.sc
 create mode 100644 test/sc-ref/add2.sc
 create mode 100644 test/sc-ref/affect1.sc
 create mode 100644 test/sc-ref/affect2.sc
 create mode 100644 test/sc-ref/affect3.sc
 create mode 100644 test/sc-ref/and1.sc
 create mode 100644 test/sc-ref/and2.sc
 create mode 100644 test/sc-ref/and3.sc
 create mode 100644 test/sc-ref/and4.sc
 create mode 100644 test/sc-ref/and5.sc
 create mode 100644 test/sc-ref/appel-param1.sc
 create mode 100644 test/sc-ref/appel-param2.sc
 create mode 100644 test/sc-ref/appel-param3.sc
 create mode 100644 test/sc-ref/appel-retour1.sc
 create mode 100644 test/sc-ref/appel1.sc
 create mode 100644 test/sc-ref/appel2.sc
 create mode 100644 test/sc-ref/appel3.sc
 create mode 100644 test/sc-ref/div1.sc
 create mode 100644 test/sc-ref/div2.sc
 create mode 100644 test/sc-ref/div3.sc
 create mode 100644 test/sc-ref/div4.sc
 create mode 100644 test/sc-ref/ecrire1.sc
 create mode 100644 test/sc-ref/ecrire2.sc
 create mode 100644 test/sc-ref/egal1.sc
 create mode 100644 test/sc-ref/egal2.sc
 create mode 100644 test/sc-ref/egal3.sc
 create mode 100644 test/sc-ref/err1.sc
 create mode 100644 test/sc-ref/err2.sc
 create mode 100644 test/sc-ref/err3.sc
 create mode 100644 test/sc-ref/err4.sc
 create mode 100644 test/sc-ref/err5.sc
 create mode 100644 test/sc-ref/fibo.sc
 create mode 100644 test/sc-ref/inf1.sc
 create mode 100644 test/sc-ref/inf2.sc
 create mode 100644 test/sc-ref/inf3.sc
 create mode 100644 test/sc-ref/inf4.sc
 create mode 100644 test/sc-ref/modulo1.sc
 create mode 100644 test/sc-ref/mult1.sc
 create mode 100644 test/sc-ref/mult2.sc
 create mode 100644 test/sc-ref/mult3.sc
 create mode 100644 test/sc-ref/not1.sc
 create mode 100644 test/sc-ref/not2.sc
 create mode 100644 test/sc-ref/not3.sc
 create mode 100644 test/sc-ref/or1.sc
 create mode 100644 test/sc-ref/or2.sc
 create mode 100644 test/sc-ref/or3.sc
 create mode 100644 test/sc-ref/or4.sc
 create mode 100644 test/sc-ref/or5.sc
 create mode 100644 test/sc-ref/parenth1.sc
 create mode 100644 test/sc-ref/parenth2.sc
 create mode 100644 test/sc-ref/prio23-1.sc
 create mode 100644 test/sc-ref/prio23-2.sc
 create mode 100644 test/sc-ref/prio23-3.sc
 create mode 100644 test/sc-ref/prio23-4.sc
 create mode 100644 test/sc-ref/prio34-1.sc
 create mode 100644 test/sc-ref/prio34-2.sc
 create mode 100644 test/sc-ref/prio34-3.sc
 create mode 100644 test/sc-ref/prio34-4.sc
 create mode 100644 test/sc-ref/prio45-1.sc
 create mode 100644 test/sc-ref/prio45-2.sc
 create mode 100644 test/sc-ref/prio45-3.sc
 create mode 100644 test/sc-ref/prio45-4.sc
 create mode 100644 test/sc-ref/prio56-1.sc
 create mode 100644 test/sc-ref/prio56-2.sc
 create mode 100644 test/sc-ref/prio67-1.sc
 create mode 100644 test/sc-ref/prio67-2.sc
 create mode 100644 test/sc-ref/rec1.sc
 create mode 100644 test/sc-ref/si1.sc
 create mode 100644 test/sc-ref/si2.sc
 create mode 100644 test/sc-ref/si3.sc
 create mode 100644 test/sc-ref/si4.sc
 create mode 100644 test/sc-ref/si5.sc
 create mode 100644 test/sc-ref/sub1.sc
 create mode 100644 test/sc-ref/sub2.sc
 create mode 100644 test/sc-ref/sub3.sc
 create mode 100644 test/sc-ref/tab1.sc
 create mode 100644 test/sc-ref/tab2.sc
 create mode 100644 test/sc-ref/tab3.sc
 create mode 100644 test/sc-ref/tab4.sc
 create mode 100644 test/sc-ref/tantque1.sc
 create mode 100644 test/sc-ref/tantque2.sc
 create mode 100644 test/sc-ref/varglob1.sc
 create mode 100644 test/sc-ref/varglob2.sc
 create mode 100644 test/sc-ref/varglob3.sc
 create mode 100644 test/sc-ref/varglob4.sc
 create mode 100644 test/sc-ref/varloc1.sc
 create mode 100644 test/sc-ref/varloc2.sc
 create mode 100644 test/sc-ref/varloc3.sc
 create mode 100644 test/sc-ref/varloc4.sc
 create mode 100644 test/sc-ref/varloc5.sc
 create mode 100644 test/ts-ref/add1.ts
 create mode 100644 test/ts-ref/add2.ts
 create mode 100644 test/ts-ref/affect1.ts
 create mode 100644 test/ts-ref/affect2.ts
 create mode 100644 test/ts-ref/affect3.ts
 create mode 100644 test/ts-ref/and1.ts
 create mode 100644 test/ts-ref/and2.ts
 create mode 100644 test/ts-ref/and3.ts
 create mode 100644 test/ts-ref/and4.ts
 create mode 100644 test/ts-ref/and5.ts
 create mode 100644 test/ts-ref/appel-param1.ts
 create mode 100644 test/ts-ref/appel-param2.ts
 create mode 100644 test/ts-ref/appel-param3.ts
 create mode 100644 test/ts-ref/appel-retour1.ts
 create mode 100644 test/ts-ref/appel1.ts
 create mode 100644 test/ts-ref/appel2.ts
 create mode 100644 test/ts-ref/appel3.ts
 create mode 100644 test/ts-ref/div1.ts
 create mode 100644 test/ts-ref/div2.ts
 create mode 100644 test/ts-ref/div3.ts
 create mode 100644 test/ts-ref/div4.ts
 create mode 100644 test/ts-ref/ecrire1.ts
 create mode 100644 test/ts-ref/ecrire2.ts
 create mode 100644 test/ts-ref/egal1.ts
 create mode 100644 test/ts-ref/egal2.ts
 create mode 100644 test/ts-ref/egal3.ts
 create mode 100644 test/ts-ref/err5.ts
 create mode 100644 test/ts-ref/fibo.ts
 create mode 100644 test/ts-ref/inf1.ts
 create mode 100644 test/ts-ref/inf2.ts
 create mode 100644 test/ts-ref/inf3.ts
 create mode 100644 test/ts-ref/inf4.ts
 create mode 100644 test/ts-ref/modulo1.ts
 create mode 100644 test/ts-ref/mult1.ts
 create mode 100644 test/ts-ref/mult2.ts
 create mode 100644 test/ts-ref/mult3.ts
 create mode 100644 test/ts-ref/not1.ts
 create mode 100644 test/ts-ref/not2.ts
 create mode 100644 test/ts-ref/not3.ts
 create mode 100644 test/ts-ref/or1.ts
 create mode 100644 test/ts-ref/or2.ts
 create mode 100644 test/ts-ref/or3.ts
 create mode 100644 test/ts-ref/or4.ts
 create mode 100644 test/ts-ref/or5.ts
 create mode 100644 test/ts-ref/parenth1.ts
 create mode 100644 test/ts-ref/parenth2.ts
 create mode 100644 test/ts-ref/prio23-1.ts
 create mode 100644 test/ts-ref/prio23-2.ts
 create mode 100644 test/ts-ref/prio23-3.ts
 create mode 100644 test/ts-ref/prio23-4.ts
 create mode 100644 test/ts-ref/prio34-1.ts
 create mode 100644 test/ts-ref/prio34-2.ts
 create mode 100644 test/ts-ref/prio34-3.ts
 create mode 100644 test/ts-ref/prio34-4.ts
 create mode 100644 test/ts-ref/prio45-1.ts
 create mode 100644 test/ts-ref/prio45-2.ts
 create mode 100644 test/ts-ref/prio45-3.ts
 create mode 100644 test/ts-ref/prio45-4.ts
 create mode 100644 test/ts-ref/prio56-1.ts
 create mode 100644 test/ts-ref/prio56-2.ts
 create mode 100644 test/ts-ref/prio67-1.ts
 create mode 100644 test/ts-ref/prio67-2.ts
 create mode 100644 test/ts-ref/rec1.ts
 create mode 100644 test/ts-ref/si1.ts
 create mode 100644 test/ts-ref/si2.ts
 create mode 100644 test/ts-ref/si3.ts
 create mode 100644 test/ts-ref/si4.ts
 create mode 100644 test/ts-ref/si5.ts
 create mode 100644 test/ts-ref/sub1.ts
 create mode 100644 test/ts-ref/sub2.ts
 create mode 100644 test/ts-ref/sub3.ts
 create mode 100644 test/ts-ref/tab1.ts
 create mode 100644 test/ts-ref/tab2.ts
 create mode 100644 test/ts-ref/tab3.ts
 create mode 100644 test/ts-ref/tab4.ts
 create mode 100644 test/ts-ref/tantque1.ts
 create mode 100644 test/ts-ref/tantque2.ts
 create mode 100644 test/ts-ref/tri.ts
 create mode 100644 test/ts-ref/varglob1.ts
 create mode 100644 test/ts-ref/varglob2.ts
 create mode 100644 test/ts-ref/varglob3.ts
 create mode 100644 test/ts-ref/varglob4.ts
 create mode 100644 test/ts-ref/varloc1.ts
 create mode 100644 test/ts-ref/varloc2.ts
 create mode 100644 test/ts-ref/varloc3.ts
 create mode 100644 test/ts-ref/varloc4.ts
 create mode 100644 test/ts-ref/varloc5.ts

diff --git a/sablecc/sablecc.jar b/sablecc/sablecc.jar
new file mode 100644
index 0000000000000000000000000000000000000000..a6187d566eb5524116975e8e2ff324eafe1762c6
GIT binary patch
literal 406885
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

literal 0
HcmV?d00001

diff --git a/sablecc/sablecc_thesis.pdf b/sablecc/sablecc_thesis.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c76b634d006c34214caf5df1587f598d652480ed
GIT binary patch
literal 346444
zcmY!laB<T$)HC8zef0SJWnL~L1p|frq%1BQ8!mmH)V%bP3<Wa-b1r?i%$$<cA_aZ7
zoWzn;m(=9^lvFM|JFeoAqSVA(UM`Q$oM7Ml+Xg&)e}})&VBWfjKYCMN<|~%Bv(h|l
z-duS1z{=~9;zsLwo)i1^RV^dUc<d%DJ8@k7)kiyiwPHEtwokDKBrbY3Y1Aw}ZK_;&
zCQvD8(lVK+%NrKe8bszu+$w+YJhj36^6%$4X1lpR&v#tX*%d5ecqq8>Q~Lu^|M){5
z1)bsF{cq~@hrK@jM)ka0O~JOPy4sp^*Z$@2o2R$=y<&L9)_+3(PR!S_e0VZ*(b9rD
zd(>yB#2AQVvxY@x{rLOFqF_<$Qir9RL_SDAJtP}&D5>?phZL3RU#G6jW_~+aM8B){
z?v?5L?tEw6qH>L+r>FMpvMoIPz7ma@eF54md1cp%Y_k32o%5sQ?@nQemtyD4UFo5t
zf6(^ArkD`-aQVmirC)C!nze0p)$2KjLmpW3Z)ORzIa-_DwfL}*O5m$$mp5hDYR4bg
z;-~*T;h&tQkMFLZmHnPOB&K&5&rmP@Tz!;vigxSo=9jC^{nC8b_C5IO_cUuc(`#9?
zA2ENPV941T^PtG0E$Gp|H`;eS6p}BB-CoF{D$;K{yY5EVvd{LewodDP)4R-`$V_K<
zpC|0~_rRl%vqIl4wAYCe47y`=W0l3PA9)t<5|*e3f3GjzaVhug`h{7&XC;2W*ZF!Z
zap$D$SJ&P|8~<uZmOL0$pl7r6iP6t<_S?@F32Z<A&)xIC){No^E$w`-&M&9Ga{c<b
z!M`?d_1}YgcQSW&hHaRkprHQZ(yB_M^sFfw98pU(cFo%#IPJ$2?|cQFoP2l5D+}Mv
zahVfwFV^|GyU?nOrM7wE?2rE6m%i}l?7fuA51I!UOeS%&bEW2`KvEir1xlXANXayy
zC_gzkwL~FWKfuLJK|dt5qC_E<OW!R&uS5ZqjNJ^)6-*Qi6oR<)-HZ$sOkqqT1v41a
zSiu~|G*PesGwtlS^j#}T+=ELJOH#q+xCa|5Si<D&>|jnY#FAwU4b2US$TKBj-o>{q
zc=r7c|Kai0W!1fDeY@|LrC0Z+eY^0*!F$V@Fs0auUa#u+GdOB(o$Z(A)Nw>wp5g!1
zxA$t#oT}aS-f#CFAHK7R^AF8e-@N5!c)OD3s;v8GcbC||yZ86=jJNL0CD-5InD3q}
ze(&~*-&|cq>orbK5>pA7s6Ka*j{l}*F0S)$?$_!%y(i(D4sVcZz#)&%4DwGK_qzOS
z<V>2#W&dW;Vu^E!Z(YAE{oV2`C|}S2)FQUzyZ5cXo#>xj@&Dhog-RdK&%ep6`84p9
zh~zZ~xy3uQZiZjH9ibmI!PQW~`J5m3{MOGN`uCe|-<kA9V@kvh(PNgP>7|pJ^b4mw
z@pTldwvB(HBG$7x?}qSWF460`9X>kKT@TcM7Rmkou4T%EGwOXk=LLV9c=>G83&A_H
zmP)-$dXyFOQ)7}w-m594Q^Es^UfWvT{L2`(^ZA-I_q>=n4q2|tUDGBV=<b>uX4)Y1
zX_|kDrNd4)(HC)2E2lEPZZ}Dnf132Bq<7Ytr@J$1G*-OUo0*VrddPZl{i?&OS8o^9
z<T}vx;^Xf%Pri$$-krN_^7^pzcTUaof6%zwYF*K%Nptud*1kD-_{Pzyy%rg)Z*3Z8
zMXa}bCx7pp5=)RA%k1e1ljjuiP2E@Jdeb0WW8a0fc6awyRq&L^p7O}&)2zsSQZw^O
z@T{qhzZLpkTR8nxd@8!+PvDm*Ud89L!&8=>diS|6eEo&e`4SOtEPi}B`}MvP|KB6M
zoH45lCupyd*|RwK&ju%6J*I>TwZIl;+ua?3^#xBQHza-i^eUwxC{XmxA>A!azcp^2
zjtug9>8p{G=PVy5dxqVk_r`_H_ivn5f3JAHbj$TUp4#?d9=SU`b9w&!5Ed~{a7ez(
zz`T2E1LIzaq9;*5b;L4vzS?N4eSPMkihZ-)oZsmRe%SF<q}H#AKkk%qalY6w@uLmR
zIiGCIFPOY;6<8<U{p!;(&gZ7a={t%_%Pbe%^8F=rsgqyy_4>am9uJn-8ZY3Tw9zRq
zcEyJ+XLlZnY~zf0C}Y!Nc|+0U;`eQA!J8+ue|dQH;BsjWrz-uGhMm&P)^|VNeIVKH
z6P6c!IC8?WcwV>LX6u9U6IzdLD=(A2#lbx1@0@3Q8Pfz`2lLEI+843kWm%-Ozkd+t
zn?jLIMgLOWWraRy=`8dPalE)>lUiF=mEZo=r&LaNA2=a8f87SL!gYr>{p1hU*poi_
zqRT<Og4d3GN;>A{^({Lq7ybC8vvSinHKzkn`%iSg7eDj3^VJGPxA>G|)37sbb{WqV
zOTWE7kuIImXX4NrUOG9=T;fyJYc7SAat<xIzHBx<%kML2xb%y%{`h*?sv{tNd*5Y~
zkX=WYI<;_fpTGaEqULYv;w=^>?oZS5&UfB?D_jx5@{j9dOvcAt9$%+kF}HBO*#5W&
zFaMl=ofG|FMpjKlqh_LE{f`^%3%@j^AH2YL-1YCPoo2E5X6rV$IrMy9wbZw1k3@gb
z>W^iCXXd2+3(FDQb!)fN{3dD77b`La4(_~=ap>qm8^hxNx7p6AFxaR!Z1;>7e|KCl
zkhQ^Be^u>O72nr&az>gTzu#`p`@WxnnITZ_*;`PNhFZ=Vl2*`~C>X*^S_1_`Y(*{U
z<twOY29^1svK-nZF*G+fA)<Wk36Jc*W5!cAKi=@g=^GAi7oR$>KO49}qifO4?K#{P
zwx`@0kI(zTVfKID5{;j?astjYn^<{tJ^4QI-`95^e(k;BUbyFX$%I*=sfABIa0eee
zogAjIY}1>Ha@!A&A3yw>FMs4?p~W1_$3kJRoj-lIovyX_chQ42A#8c~_qHzH@Y!(V
z;S%4}X+MPj-}zfNK}YzZN7Bc0ufH3u5O0#a(ERG~mDS>tI)fJf>OXmVmF%U>L24`C
zT13s6cJhbiRMxBsan5XRPnIx#y&YcQ)xG5HvVyPI+COW}dA=-SZhm3;8wbI6O_g)b
z1fSuM)cGG^Yx3>v?6rTp&Su3=T&DTd(>wU}a)qC>U+><w_4<PLc^AIw{fnQ?mM7qK
ze%svL?O*1+eA3N(eV<>STJu}?`o}uFr@4x4xYfL$=6>xv_`t<d^p2ow&|%@@bwzuZ
z{ul55C#aeelfQ1IoAuYkqpzdo3scs-E#D`idiqP!2d^WoO6;4}USzNOwy|o?)XNpG
zcOT!kD{l40Qr*28Ct~8h82;S*X`atPanT=Bmp;Gq;>p^%^Db=`)7qKSb4s$k`{J@&
zynM~C`RiWY@)mUtG%bsJH~q(hLwkaGo24Jgn?!MU?)2dP<}S#0Z7=tE#q4YAcYgi$
zDu-W5!C#7feZ!ZFmK85dde;>)TOQ7@o@&sy&F$g*=<lVUo*lTw?WtmU`cqEbep$23
z7V+9|bGAO??kG|#-RLE8Cq|toZuTu%CoZ)wYgW9H|7G%c!jFG9xgJcOI=h_z{_Txb
zhu9t76dNSJiM3sH-{5W$!?*9Z+pHP*g7!Pe%@Iv&lYi*+oZ<OIwS?XLTK`T@OBeHb
zUewENam&H2RWrh4=Es!GheoZ&#qXL-4xJWb_n5i)^h*gNhYf6RmDhWOz1#a}-S%U5
zix+;JC)gscT<$rS@r?Mi-)+^~_V1durYXB6ba9%;O-AED&oeIj4I@6BYHc~6d7N><
za`|V5vNd;}g`J!dBX=vWV}^0?nTxM#_dNKz=FYzBw>3pS1TsJ9s;^-wH2TK)`d{PW
z9PW3f>OMx^_0u8}-3)8IrtSH;u)yi6+m$P9hJh2^W%Lwmb7I#UsTIr0i`{e0*1pvm
zvXF)Mfj~~;r|k9<J6fKo<#UGV^c|VetiWF$$#nR^&vjp$_ny78V@dr%1&fcryj>1_
z@jBYZnxZ!8clCPFwEGQ86L-}+>T~hMt&x3uC*eb<+jIp@e^Jku%LFygtiM_Nl7&ks
za>0WotK9t$NdHi>=lD2z)6t8y`<AZAS=G=xFKFs|LH560cecry&TMIKU%6cGfUxDd
zEwZ+$yLh%d))vS)<JlToJv*f2z%~=Mym<#3%NKvKwS9c+>6gmcZcHcA54KAS?y{RM
z!W^IPu;~bwbC85rj*)ctyi3(}8W9UmKX>KlZCqr2yXU%+yZ*;hGao)ZA1%Asb&B0q
zm6gu@6G9ss$~hmuwGHLpJ&&;>>16EhjOPItBkI@B7U=7aoh7q*^}^Tt7%R3atUFe?
zcx_5*+?$HcFY^wb6TQx8roUYCMATN79v_VeJuZ`l9cq7C&8_EW7~RjDdgjDZ)}3t(
zU(96kw1PbD#P2T5-=vu?a)N=m+B5N=PRXQ?5pQhy{)MmRQfv7pG4}(DS<PIH*b5f^
zvzNv27;(?qcye{q=R=kJDiY2f=M+;|1^%0*6>r$_Vcj;9wYOINwEJPdy6uR;)aS3g
zc-51aetX{1$8=(j-nSJc4W|^}*fp#1-*{fb_c<p_R5&^Mo@&iJ5${uO(eD?(47uI-
zaq7*hR*OE*ZQbYTw#z;1px~?p(GgA03O-zE{w{SrZ{gyZJ@PRL?yPHPKF>M1P?B%e
ztjvnmkKOSO`_|+vkyv5VJz-b5oT%MDjfV@%XKz~f(AwjTz?KKcy6r=SRlW--#UE;o
zeQe$%J+W!6LFHCO!A=*2$!Ys09b03)AW5`YH|2qI$P@0APYg5LMUMWJF43Bo%f)uY
zHY0AU%!H(`d`Ytk*KK=qqU<WqzDQAt4a?f?ITP4^AKjM6wC{nwsMw4*w`y7CdF>1n
zYo=`}__I`N|I=BqyZgnr&*9+?^xp5yEvn5ip*R1xbLpukdh;$HHfVEtk#l*?B}Z+!
z#8sl#S}StCFVvo?@x0;S$(fHoTnqWV(A$)K`j4HyPrD|Vi0rNj|Fdwxq+iijCx1HD
z)_Oz0KQX!Gl&dj|f>tEY=?AmZSot1&|8Z$&^Yf?IWEt;%So&i_S?i@^yANG5Nr*{Q
z&N#f|E9ZhkZ=(M^U&{4iUgObvmW`%gO{ae-xA<Ac+R|TZ-a6%*wFl1*=DNarK{0y5
z(mH=buIjBjYcVzA`{o<Rj~+9>o^<^6#2ZoKr&JxBg-m#iEz{KPFZpmD_Tq?Z3+3~=
z{dI!H^MEhAcOR~2;$es_-Lel$)eY*$<U_mig!@P)G^o0b43N5Mu&Ue4(txO{+k5hD
zGoF3#*MA6nw?<^*mCrkFnw;C_skXUn(lSr}nC@*mwL9f(ALZ58GB!<-&rGwjlQ`0?
z@PTnj+`4sfd(uw!oDG|;J<p|b;`yW>mXnSi)j8{`a;aon*1AVGzr8w|bTaL>+>5Kf
zUS$_-p2sa_vz6^X-_}*zdb1|V{rVZd`u+jy@_UlqUIoqfWHa{~%WYJ0d>`MuyK;tz
zQpD+Prp%W-4c?^uc3F~jcE?@8zYC3}uYO;)_-V9dS=7X@(pSUgX03moc*=FdM=k58
z9gb_C+whmIjXOQdCnb8~o9Hu>!nS4e3ia5{Yt?zwI%92|W5wSc_s=_TFqL&X?$xpG
z@QgDSYYjQVSh9`F_AWl#_D}lGH_4YaFWNU&sYzQ-_;I&t;p<sP<fH$}ZVkQuy73H`
zn9FB_{?iFB%`F$WoO`@r`PMbE$E6gc&u{p}>ePO~YJ-psH=FbSt?$@1L@!vXGIY*e
z^?ie{(xrs2&z}8#@0}D}r~H~<Xi`#C(R{HrQpqB{lG#40k01OyIj^CGxh2^nK|4!X
z%r5@UGv+47=7XIY*?(4Snm9#PY{RBAok3IOwq$xX>fE^as7$hJ2Z!;wyqqTs`D<6L
z(4VYfAhxDO<5I#K(PhjZHca8)x@+%JR#nc9wP!z+m)mT~Rg>=uVVM2Sf<smNwnnI}
zNB3U!<-VSdwRhiG7eBhX)z4?Ga>Ws2zFuZWf5WwM{<FMYW(vD&aJWi|CKOg(Q%ww4
z+>zbAJX>eWf?pp$|LWZQ>!bXu_7tHzCYzMswo0yckKOGhdAv3F>Z*^O8QWFvWrjaW
zp8SEKUw)bAhZWbF+jT{ldS5Ki6SeU={iZ(kk@h_Qlsi{-lSRaZ#5_F$_HMFR!Ryw(
z#_Rj*jqe#lZD(4?G^_|aH!)Z7M}ErdDyeXju$0}QwuU9u8@-o0F(ru^S{%KZb20kL
zIdAUdiQ@lC1lPWM@qUTNifWxnCq8rfD@-WOKXGU(_e>FXf#-MCx+-p!1X*TGdVIx&
z@k@-O(EZ}eIUBbrm2Xq}Tsyt!+a#5cj5*qoVtb6|UVi<bd!o~YL`Oa8_Y!>@B(t|0
zefhuYqVsak&&_kI|9<As*lg!@V;OJ1;h{C`WwRzNlg!#&`l7=B?3#y{3bf=GuJN+`
zsQy=@wwH0<>5XesmRDtNKk4#;^|0AvzEZd656aS?YXz{_D*U@}$>zdc$DZpM>T{)-
zK1;mf_f?K)J9#yNYlqB*iLa+zI1o|Ry2_(4ch=r@xi=GBC#Y9%`d71E;ZbyfVQPhx
z;kla6HDMciJt_*WGjW(1?6`D;i8q4#>LIob)0(^gJek$M*vCTu;P##K-72f>db3_k
z4$ONycghYodwz9h`=kHgl;jA_i@MXW{jwV4JI~1t7tA?1YO*7OOkDzx1zb#(si@Ev
zN|omj4Q>7X%j)0#e>{p$8l2xOe?GP3W!{xW4jJRQw;o3y?&D5)`AvyAb;`z-a^8{l
zH-sFd&Kc`1QqtdZt7J0&s`3{P_x;*YuP*KS^W{9fZO!45`bS@y7Tr;PqU5!3&Ghg4
zEKZx*N&CIyHB6OewVkkUYJqP5o5_|B&fJk@{&aBWV?n(~x{Eg1EMpg7nx)D8E_c?0
zB*%uR8S6e?<@nFN+vxE>rRLO-W5Uy<QsuL*to^{S_$|M+^H$NqBa{BD+19(pU~gvT
zYMy%OH>Xx@GhWQG!g2rWb6fVU^*rk=cw(iBia~U%zL|A$(JuFfz0>b5xSp)L_d(nx
zl?hues#^!Yidy+0E^GB;c3vB^<&2-*>`Fe(T6cH*rmzVzfrqNkYfU<Qj#qnY^{m6U
z@;Y8EzbxR>cUj>2OlEn3?YsTHZ@to2um6AI4aMF&D|=hg&I+Z?7OjzaXv|u1X+y%B
z%^}Z%4^L~||DfTg`q{Xodd3r%ZF6S6HMI?Sr&{@@JZ1BSN9nqmFCTpikLa9cz`lTk
z`5;&1H=pL4kK2!kyo%nrecs#KZ!g$qW*Jwj%Kg^k&kLxl{(Nxn^7oAMHWfGCV%*fg
z-}%>H?#8y3<mUnt3#uK}3hS;_6&BvA`uIi4p)r5?k0;73FPiUJ+;!#Uc-dK<p7T=s
zZO=<nc9vR4#)Z)mu~V0|F~8m`!|*=)>ty$DEnKe|IzRJk`sgXDer5Ie+sw1}!^a12
z?kt!wi=(35Z?|Q8#KwH@MIq~}xlILYt})jxp6j}?P5qw2-1RFLRUa^xdv+`QLe-O<
zpFO_Z<ekj^Ejv`Eoh`-glX9ECvfAOBQs+B_)*N{`RV*-2ZF6X`=mBy0o;&g3;s3b|
z80P=sYQn5$jSP|MxB;qWkvr+|YSx&DT2`lTBVUt&K->4~uD;wwt#Q#_;fsZ0b7Oj#
z7dj{iv30a<-@f%(+wXt&<tNJvCd>^Kbc|tlDp+lL^6;O)DU-5WT_kxdWqc=0mfQ47
z&0{}H8L!QYjbELE*RM^l?wqx*_zvq_38`JG|9E0|dq?ce+OIp2ckkybv4^}n>So-$
z9J^RZP4#rHV!d0Z3YQ+QQ0%8mt6n(YKhs-K^g%R%A%ama5=(G{#uxI5ZPgeVA;x$~
z9(XVU4G+Vtf(EO(xg`<7x+E+*f3|^0-ShAd8EOx29B+7N=sSDW)g`{XmrYEo7j#bF
zSk&22^0w}8-$w5hlh#dF<u`j6v+wiV_cts(=boIyu2+6po{uHu*rn7TTcgh<nNMlz
zGAOxxDe>L0nRE1a?9MElziv*p(Q0k~f=im4x7_>w<<i4BYA+Tt-^`WoFqHCG$s9ZR
zrSEOio2x$89Bee6^n9;+aqR*lp}eYBKYENfN~ManrYP+BGW~Fdju21xdR>OA@4Wb(
zE=9i(aBwyd`w`SG{=;nh$J$tLBd;cpFsYxpp|78oFT6IpNaI+$Mgr%__f^loFwZJJ
z?;qi!XXDlr8vI%%Wp8w;<)nwrJ{AjRew%UTVA1JJfyB7JEw}c}Nzyncp&Y*Igw@t#
z1_Be;$DQ%Kd#9>S#K_53KJ&Kzv{=0zs*P=JY`^;XmvJhnB}jB+>Kymb>6h5Texz|?
z|Es!BzK>^ADV*f-p8Iv*3#t9K>m@!NJAS#z_jje4xA;7H?~hv^d|%q@b8DWi#WV?>
zzc2l-K3kg>|E=iQ((F&OWAC49EcmF#(%BKnw2Q^ANwM#sfO|qsmRaP~|0m};HIzFs
ztUh|&^1J1Qj*k~bA`BL6)jjE%=9YB%%I>VSqOzVLTPgxC8BF?;7M{{O@ypG>+X8dD
zx8C@)DJ$1(`Kn;wnc<bUpK2%D9AEA?^KZ%ZtEtygpJjUbJ(oLPI7iQx*TilHU(O!A
zs5i?++w|s}M@FXgS}ssw{V8U~uQ7GmYPEBY!HIW5nEx4F-nHxVp@thpL4OZ3pSu=j
z?6c<XqlIrnI$2%M^VB;`elqpK@rK9Dye>EPIdgIp@6p{f+v#jthfbr5K*diBVdwYy
zZ#b^j#vb0e;`iOFX|jjhWB%pWen>gf^V`w=NF4jBAm6ZvZPr_Jk6%zK+H{(GwcqU(
zk+FH7ogxkEGe2h~@68qcyH+^h#ri$z1^pXuHQ(4JbMV)Sd5z2F8Lyrkx-Z2hBDH_b
ztBIN+yVKuK4L>Y#(co6Xt=Sh;g#P}`Eo*u_Ylq^zBc2KWIA3J{)Vp5(De~1H(FBIY
z&NpUa$-c;gd8Cz=6lG=5ybW4bwzMFoAF^ip>7v_aB5mKRxO6*xI3N2J%{)~$%TIjX
zjLAAyu^WU|87%YQ_1x(<-;ROLLs3ci<kq*6ycLWe9?tpvpP~M&c=&c7otH-c(;YR>
zEr}8O{C@TnPaV-%t)m8sH8bCfrR<E2*}HrB>D=^NKdU~bAKB<&sM_N4{pkIvaccw4
zL<;S_yfv>oF8|HauDsJ;<r-o-y#`%NE2S6j|8!qG<bjTH@U!dOO{zT|&;JL^`Dl`K
zqD*XEG0)!QuE|q&E3&D)oEUaCFF!4h@llk$QuDIaY5Om4&HeTv;cIDZ=7WhAfp3%+
zSjxSyWnN-);cW26+rM{;Oq;&;5Bp><^HW!Kze@H9&(Rd-OH(*>)3?rO(IWdVlet+u
zgG38oS@*v@?$o-_<gUTj3*}}ZtV$PenaNEM3EX(q+2?v_qEM`vDa(Z`d=ICu=N3D1
zw`oPc63@d3mmPd(+P2i01+S~VTNaSxy0`Jz4+g#WrT1koS4D1dRuEef>UUYo;JbtT
zmv0G&7!-F_-rBzFwU5iL_=d;kv2O!&y!kt>PPA~>?3EI}%^p6>^n+1T<+5`h+Lp+8
z)b5wO6u4xs;L=79(XT>({->U3HtKn6VEmcS>x}*HCdpG5POa0jlJ0+UMMPuS96M&M
zBZ0|+Hx1J|{FX`tEtRZwo$^G+%Sh$vhTEcV!@pNGMSkM>+p?L<T-$PMtB87&U#?@5
z?j1$H#f#n^klwM<t?-<*n_j0vkV2gJHfxo+kvG2G+S(f*ak!v-+q-b(Sv=)g-*+39
z@3`1hlC+^*E+$@f&t=79KUp`5H%@<&f9z`CvyXMr=4<~g{PSo^$4sdmIsP+>HY{Mf
zapm%p48`)?$2v*H5z)r1@*akQ=R?yic5i2uNDFExDrx;5#(8)iN7}o)d-YG9$_hz6
zzF<$vf3|gBmjB*9XBS(J<36vo7n@6$nAG;Fq+V93J#Sob?A3*@XV?A7*O;#y_Fafe
zlH<F&$od>{BY{(uy8{x$w`&LoM!)&8|C;%%ZwEzky?W-TT30U$c-)zE=JoMS+P{yf
ze~l`Cx{Xix-t4t|+S=v6EUvxo7AI(#Vtcr2ZfxC-JC6Mq3WZWkZyh-sy#BRsWPamv
z_D3ozVT^^JY&WXdxQLv03}IX}!}&=u`@4@W4;ha)ojGyy=5x!w+tXzqWyEe1>)WS)
zfbZU}?&|Net<C>Gxg!&^Z&pRsYumeT{=JGh*cR}zbN%Xz+V}FzmX@wt^l84#wOgeZ
z<<BI(QGFDmo_;y9aMeYnIL|p+E5a6QvdubmhI9Vze3OjASxH-`X!;p5-cL{Kd$Ca`
z@Ly`-Wc_`d1`IJ?EEh4$BxB@J3i_2v##rW!&CH3J)|e7{GViv5z~0x|B`Vw<ikj<=
zABmi>z_mBRfj^T!Yt4=<UCj%V6#o9=6W1@5G1<zP>GJXH9&_%}FctObK1+0T<%EuP
zOf_2ip<ivWT4<N>sn1(7gl4UqG<h|vcR2HnqqRltCg*fQGs5^p&lTxjOqw&T)bv45
z_BxXw%YR{a90c}pI<;)dJl0|M;PaiG3OwmOL0w``zn7ZMZd6`(vDo$>$F;J^j4qCI
zDtC8VzV{Kxmb}1LKjp-M9-04)_wOjQ%32kiR;oFkxw!X(N6s}%+l-ecMXhqb-)W~N
z#csdXsMhwn`NeAUL-LCinR*`_+bm#cY>~kev-d&pnJo_Hbt{hudDtduvfjx1E98AR
z;Qjrwf46?wD(^Xa@n{<BI`1=cUVje?nV0l2ak`XXaB-(%l4Z}rkYb+ce4idQ@!h=9
z+A??B(_g78+BdAM=2+eR+W&LEc%rUY?Y;8V`*IQ%3u%Q-=RUNwYWJ?+Hl-e^Eix-t
z^lb5GW<4**6n1`I#eZ!b`;yw6y&GS@E)$hIRVLYUJL}EsSDO2NM9*`&u6tm1(VE>C
z<n9Qmz7_n}SfOFmpS)@2QJwUb!pUiKGPdd;Jkt33*6*(-J0uLsl!`v<Ca}&rwzB{8
zkE6ELiD!xgRv)!zzx0N!C~MZHddms>yLr2oKKdPe;(t2V*Sg>CKUUA0`BvmtQtlGR
zMcYk_E1XwMc+XuorPW5KK~?BY_|NuZfoI;yhE8~VURQ?I@c#Cz7kvNjwP#$JaADHz
zn>(G;8N%2TEMl7rS!+3NvdNq;ZrpP3VZ!Q31_q^{ck~sewJ*5iQ0B9bc`oyb(o-fq
zvBCe>B{iQZ<YT_gKb4ttUUtfM-Gj|#-Z~j&_Zt(Q^7J{S1!Z<@JXFhhAvpH>jvq5)
zL{7>xvN1fFk{6F9hZ&RIN1~+GHwMi=V$}MkL^R;Hgn8#bb^|TUcwuqq(B{u|GF3Oy
zX0vwP(OJ;Gq`gzAdg`r7iYISAxj$XVz3<Hl&xS?c9IrIb>A&w@^z3`i$FH+ix2WH&
zQWV*GPL1c^#V2P}Z+U5L_1ko}Np<$o>+;(3a-ueDt||1+JGISw`lYO(^&hKZ^Z0x(
zE~`(kcghh=F7~r!d711!ncH{k!_H?-MazHv*xnL6PtP*Br=~gM(1bGaZP6zAdG9#(
zd;ga9HuJsl)~VTiVU@$;H&G_v7G|E#YVLdOJhePER#DBvH-p(?(|c|=(`AnF^&9pH
z_1$>*IQ37}$wq$59SfQ*nEqaD`Fq}oU-0So*Het`5Aj#Vz1c0tdFf#766c^)mL>(o
zvvR-7`R+%)3T!zj5Eqc_vuMw<JHO|teNwf$;eChe{mQEk4zDn7E_q`3%Y~tb>-D2w
z-`}s*pSjrQ<<77A+1i#hI&Vb|XkT49J$T>pGu1CS{7pAxO{nX5yk+j<_@2_Bt9Q>U
zi80++7%uhxT4~K6PhXiU3xD^h1y!D6oYr)Wq2J$AY3o9#pDvRATaEtv3NKb@n-lq8
z)>CJ>+m4sNggti{Kc97Gh2nw3o!hfcBpa{Ul_Vd%VfDm!do-QGU0yw2T(w<)yT&ZV
z_UnGJt-o^%OIvGCt@!e*Xuh9A7vmC}rZ<1tCcI*K5@8hi$|CcS^Udj}Zfy70OwgP4
zP2gdFK*50{KMn8Lh<tB9`>eyV{^WL6rE60-s|7!btnQ1r__!yaL2L0JHNP|oC!4Ti
z`|@^|{`5J{S+U4^iotaGg0hJRHa>4~So}OBZ1Jh!ysqa;_C3DoCvMc#Prd4VxA>R#
zrDvtPN-jBV)ct+*#RiG*0aN6e<~8*cTUzZ)^{YQ|Cv&-1)(wk})xr1W1ooYn6|nVo
z;+6}?KZu<3G=H_&Y3|7*M}0)T-aDI;^snD%UDE5bOA<Bz=REbf{K1e{gMV$>r48bj
zcl2hog<ZPy&~DvMx$LYOK4!W3>*H4G*?iwNGpi~7?d)CeJ2yAC7hIXW{Z#^6(TRpc
zwn@PU)3;U4*m(RPW9gqsMw|Sn*FJ3)<(Io3CMk7TljGKcihG9@SJ=LDEq8JJ%dMCY
z#4kRxkJtQWqfTn_?@9Olt|p3@@z*Fn5GdJoJK&l7cI#tLb}ko9Qel|p7Q64oWr-%O
zwEMk<_m&y>h2B3mXV1zW;W*ZoFyrbSw(q2_TTCcFx_;h+T|d?5-F~&hc}wiwBbC;c
zZ%kdUPdR$IP=I~LQ~g}Y<GzuNzxAfIUq~-zUv+5b&A?vH8z=jibU0EDI%}Rx40iQC
zB+{fju`MC)A>+>HV$z@cb3U$TU}i|(-d}*FU_$QVlT`H^nkg8A`Z7UW`pE0c3@sFl
zLGvzPVM_&LP`?Ajrf49-1bK)FIuK!GVMatb)-%E1|A>OX(f2i6eFX{A8u?mRfAmi>
zk$bZ3W5Cwv?5ylJS$}>w9ki_!5PIfllwY@J^NF(QHwvD7JmAB;Hh-tzZm%ozg0l|_
zef)9EME=IRS8_i$sL9U15qGEOb)eSmNfCTY-6W+h+WP&~l7CdX$^5FEpwp+5-$EBD
zDzwkJ!0=10|3<gUQm3_BcT`V5wPn%&7k!V7)}OSyJ8kEcm9yK==XnHADUNCgSyFt`
zcw?i0!P(B|KFp#)KdL=N*NAHrmv1gzeQTXTYJz$HqX&K|+y8z{z4>6Cc9{C*kE)ur
zwR1kb|7<)rV|V7ML!CRfea&_)b(r?AIm+QKTUOm-Q`K7x2XE@$T(rh<!`g>W4z}xt
zf7E@fy}RR$djlgw%Z|J-%*0@V+#n+<F;Et}$Rk?N*fq2?CZ==RBOW{X_Kvr;^{w}{
z;;(aQdQJN><H;=VTd!l)Kl)g0p3UyIDA)8?f$LAR+wt)=p3BPC&6PeM!NAeP(4oK2
z^3L9><(GT!$@G<Xc76YyviO1eg0Q1%r@MC;ynJ@y?#i<--(B^e|K-^eM!S%5{)@La
z@Ab*M^Ui0UYt`?kAFl6K>HVyfZpbr9LSUtl&}V_#7u((3FIybgr?P7O)hj%<xpiOl
z1ar6aoz_t{WLh-CggLjX<*3ZLyxrc$!e4Kz^skE+E#;`W`|g4K)I(bzp17a&LhpL!
zvTfV!W8a>vbek==-?QYaQlXTGM{eK)<4c!TG%~l;JABHIwtDvR&8>AW{Xdq4X9(A_
zoNU;*=dnde%Jf@rO6G{975@+vvEO;GcN?qRT-WKZD;6GRvx<5DvLMFNe0lNjGbZP4
z)@9|~{&W25cL%crRb__~+|@t1J(sOac_eyexA?Mc(tk`2FJgGJWnShJ9fiitWlO$4
zWDgMkbL?B{Qn%%gJ=OGodQ27%OrL$vUt!tf*3%Yq+-{dXVNc<><D2ohx90eb=nL=X
z9W1}?<bK$qcbhwx%y<5jE&DdD71$TIe0JKluN8r=Oj=)xLOXaLOrLo0L59o2w(PbK
z=RQXBulV=w*#q~bm$|N&r07rIwo<2UIs5O+F0T30Euy^ROIEG1h<-Fd(C&NLZh`1?
z;mN`Vsf~h1D%k#4?s`$Qt>a~lliV?r3;N3Jxli{z|9vV{OOI8Yd;0IZ@bcSMHj287
zzqjxI|L4QaJ-VOuGcwt}AGpu#Rq(&&hxGEuiKndGV<w&3rkW(Jvv&)x$MM8BZ%ho;
z3p&<a_e&D}JKH(5qW1FJ`nx@ilMi(?9aUJA@bT~YpNC(^+f7v6p*6Ex;dR!erV`h#
z-*FGa3SONweEKHGdamR;ixZ9+mnU;JzF(2`)`u<VH=DR&q~O-878U0|w77CLs@tSW
z+?EpNwE2+8_44|*v@I{6Wj&a^UiWS4{zuz$_q<v3X6e$+9~x4NRMIrkPTMWbN!;jo
z&E&*%vCVENS}YFsK65rOIQRG(KiQzCSpTBf;ifSI&+(IAd3J4Jx^DVY>V&Vow}k%{
z-Gbj%+l`hUiin+ZwBo6PX_kCSN8rgE2DwFNPX9<xs^AJf_bqHsB+rZ+Jv>2)^^cl5
z&+JQf*XDH(zp`OM_LNYLPu!Ndf#u%>kMkUtxEeL_%#+P7v-bK4JQi}#I6YBPVdKF|
zQh%D778a-6u>Z8PzQ*BOOt%a}$;_4Zi7O2PCeJ(OrY97pQzx`a#P@V>)aLtZR9M$|
zsaHR{D)l)hKK3@}`qcQMC65Z<+<z$j{t|2b-;~7Wo3@ihth)j>$?of&GW%}Mu}f?Z
zqjoP1o*B|<yRy&VqB~cq!#&00>leH|t{YMQ<Hs-YXY+EaDn38!<>BA;;Gtr__dEv<
z1GbuQvDqr-8_g{F_%F`i-d_Lre&%6`877}{CcojnG3VoviBID<@II;hvht<&_6*;<
zTE5EB|F^Yz9y~Pbxocldtub!{qs>`4&E&<Cr~0p8UVXc@(oIo9z(9vxbL->i?Do@V
zJ2hK3bh&t3@DGt-?l?RBW|i0;zittxd(N6!E1v~jT;`JLGXLbS{Ot?u9beC1@Wb)j
zqUvvzUnC!@^7;A|W_&W>ORQSx#B!z1vrqcDV4IL;gT?a)l|IX#IPY63#9-tv<0m#>
zYE>4)L4ivSLieZqRa?Gw-7}NWNo87B{G6W_-;wzB?0&fW+xrp{^&T%%%KTYdL$5UG
zdM~~>C2r6DiL+PDT)ywr${3kvE7%*B`CoKzOFa58^HPMURMX_7CAZQJ7%!i?X01?m
zS)tKqFP*jSZ){ak?6_5bi)@KswYgC}<R6nVyT(3^tvlukzLe&=rG2Jg-&SE&rU!@K
z9@KqZXE)t`%9%o&4T)>wGNvD0s2##*$i=~OqMu{UF@KdiT}DZ(A1+Cg;%{!``ETuY
ziDiW<%Os_Kx9jJoOY=0;%%9+}dO^r1sRdJ8pS~_#v$8ztk=)F()%O+CU+;64UmUk&
zhs*=H|7Y|ze`uK$%CYy}w)6AWdp2+Xq4_w@Z1R-3zgCCT8?5tKx=$o>OUUPHnQ)&7
z?=GD+sv9(Q!W#Bzs5%IyFJ9Wgw$(e2F(!IdP+ZA@hpQ_)3-z-0-*-!K@=UxDE523d
zQI?I_lzqQrT<4$n)!tM0f~6|!h31lin5<i~wnzP2khykti?Pna%r6pqJub7{>NT4a
zIPvxCyC!cQY|b;y<hgu*PHF$`YRPSd`@T=Q=s9OrQtILrD-vy9{q)QbOEvX1&=1jk
zFr~=usYQ_J3-wEBu`HJ)no`o9e2;fJ_B!-<!(@3wHpzu;U%KQt7Mx&RbfmXG`b*)=
z3p*Ng=Elky3#>R-`aQ<!t%~@}BdjkZX6^h^yTE0+*l&#-FE7<r)|1<w=Rb%)ba>T*
z@Cc=M&KZ@HA56=Wke!_R?3tO%%Yr@IK0T_IpP<O28tbC3Av5X6gm+U~7Z~3E9<%$g
z(arxGXJ6osUr@L1@E@lsZ22rzH50Z-@O#cXbM><0*@fw1MFsLlLQl`1{Q7Q3D^s}s
z^}@OwosW|@7^TL%<2~!l<LKRO9GYh|qwCZZH;vx1e@_d($1}1qgk;`Tz|xdJ?s*0f
z+@FB7_6E5DX+*6hv?ictC|XC@$i%{kh!$i`cx3V89fEb=*MEp!(R1`+?UUSNCv%Q{
zR0+<`4bn`POAwm0;j}YrP;z#C?Jp+JllL@3J9!se%rN=&<JaS7ul_FA*vYrv{Pt>t
zFQ-lR@;y*bkr25aDfZJ*BtHMv>IYTjU;iy{|4?Pluy^G;xxLMA%fq&=eOb1;RH!9x
z@vggpZ@27^O3!?m`z`H3>+{el)m;DmRx5qUOEA;fTe!aR=9YH1?Yo@Y0(+Oeuh@70
zk@<&Ja*}Zso5B_+Wl6l<DAgavZ@xNzwsk<Z?5{w^SN}w}yyjn=dG@^u-<6K;1Fv=K
zoF{CLIvlw5S?1N1&rDu4iucxRmFk(s>wjducBxECzvTIyulE&e%bvgRw&2iA&)fE#
z#mlcP`S9%gg6A3g9`BuKsdYZLOPG7Mn&+chr{6c{`EI=y%Nt`DeZpjk-kZY3jqSgV
z@+g1KJ;~y*V%gifOR}WWat?0DeDs&gXL6M|SL$RZ6`SX;51B->bp-ZU+i&;3^dK{+
zW`T|8&qlk)=X~xcoa36{BX#gfn7whK(q#>9{XKof&s-B9>^S&jN1#~q?Ixf1ezoDN
z&#vDfvuw|t->H6azAhmxbraODXGZ?=6q^|TJ8{xt`|8>Hd%pHNEAb^%haLEKg@19=
z;YXz!3m%>G>bJjZJLRT%;QniWuKCs{^sky3ebD;R)@zAuucoBe*+hlD4!e0jY?Go_
zQGtiiyPcXw`+1HE_1`<Z@vw5y`|g!*v{;|Z`yF0!n=zfcV%w?m+fVl`o!_?fHXm1W
z<lenfKMu?_nrj{N@%W~&2L`WJUbL8AS+n+ELC%y`0Y%lsg&%%}J}BMOe^0ve{N1Wu
zr9$q{w_n?KS=p*~N|pSq!u#^&)i=V@?iGkUzWJXuF-WrDzVP}x6VKPGPpxSC%I<XR
zu;-*R-93t~4XbPv&bPjQySw~H+=N6u)@1_P&h?7BLht^O5;0!2j(3?XYoVwp=Z?*b
zOpYp_$@-BSE4E42|IOLF{dse`AH=-*>Mt{Cm(=yWrjwLkswNztdHdlJkvS<l8!ofn
zsuR5U%QeyJsJ7a{qoR*@Jm@}J`0|)_>U;+k{#E-j9j4zqRrYYD)LJVqd&6Zdd)uyu
z$EwbbihZb9eRbx-rz_Kq-~F7zbx3aV`y5-ZEWuwI@z?S~mufO6h!(EyvcI+=Cr<Xk
zm8hFhpBB7rPpr+j!cn<C_1`g@$W(tD0o?|s<wEzjD(627;q*>;c=%q(hZ&Q*CcM$P
z|3AikBj-vEmI{M)L0?}hhGZ0dO#9(c`Rs4E7yAq*Tjod$WhO<-s>(h&H$NktQ>}+G
z?z~h;x%Bx^y`r>4XFZ?Oj2U@r=lK}7=bTgAovNmi?*3%w%8p06haUBAZu^&^ZOP`m
z^<vSEO}9=ia0>n0q3!<gEWevn`PR58-a8F^Ho58*CA@ha%=f!O>T7QQ&h^*Ccj|qd
ztWZ?5ELo+|;o--B!87YWe_Yr3z0toxM7H|diRUw?DXA}K@;Budd#bYS_<`aQPnBiM
zts{CTdTXx#aJXpZ$7_rXYv**I6s}6=64HAo_A_zb#!EqEEABDoKlpq5#>bAIZ0zwN
zTiZ+iYVB{1-fjKac4^Y#*WY}s%8Ncu>eOdisAb8JQL|lH*)%?=g5l}kMf>`hI%HnG
zthA9iD0GZ*W#M`jFF~Kg`{z!pF4Al=c40oe_s6UU%ajT@e9N15&Iu20bv03IpI@2z
z;Gwf~*mIN2r&>%Q%c4{`g<YKre>{Et_<p~sB>!=lfEba)itSu`x*blq1X>GhSXy!G
z)1ms0F`qWwj-I#hPNR<eznwe(|NK~Nen!3VMfc&lic2C!Q^GzS`CV1LyYj<CzrFp(
z1@G=Sp|?@@gXM9zNppAQv)%i4=2NO@&D}Q~Vi%;;gBOU@XE6uLGnYSq#G&S%S{{`V
zzBVmX()XEM%JE-mMF)g~qf=)|CSMBwYnGV4A@=OD2}1iPXYQ)ovf{GID~_Z?6?*3^
ziq5S6^Td~9_reDn$^kDJN;^Cz1sq#oZfO^opuX_z2dVwbQWbxEWt=Fo<B%j@@86up
zQvn^1_~RKnT-P)(Jy+ICKJevPuUJ(|UBD9iOU!Q`EibGQlWLZ1U+EBgMKAbzuZY=4
zLyI!K4w=;lcI?eapC&4jb}iXnU+3L63Bg;8^?!7ZZhGDNVs{$j=`tyWE~&f0+Aq_;
zaDVp|-Zo<z--U_{?YbW&GD{yz9=*%K^=VS(tKyY+HuXJfYL=^i5Vxl>@xs!@sm1F>
z3Nws0vdUbWtSkBZsi91e=lX7*^Fk6kKILpU?7Yg%xm2b@m6d_Nby|16QR5V8wn+s6
z$7AxjnHHG7;-0Hj>7IS9euC%0wnd3Y8iiaJvT&U%Snwd3jUm?8{e+y6%Bv|Yo7FaW
znlP@i@8cD-p13qpWdGLWjn)nG_6P5sH1n-wy~o*}mlvi@-p!F_+Y?hJw%+`z%W{ME
zpchidkMvLOk#<)*ykJM)q$B;0cxE4S*Z*?(suj<|?LTkYGO1npzvfiSgh!Q6>+W_=
za`2Iz$g#vn<mg6+V;XJZrdyYt<49B7e%<G+;1(HPn<*vn+U(4ZXTl~feSCs(W?V&j
zhPJx)8Agv>(UMRGkN-`gYTw^|J^gsE+@~+MbMAcKATm$<!13L6{WcpWcxf=Pi>^Js
z{=_03=glg7d+Rf56V@=CnNr;#zM3t#N$b$&HS%fc7EJyNz1WTzf6?ZiU>TIhw7p`M
z^={Q;JdZS0%NwR}h^bD{*J<)~nq&QHX9L5M{^PMuhA#C=jopziN)9uooj<o`dEUD=
z%X!O_#Di46bBnYbzt|KboAjX4zB~Hciq{68lo@89J~5}SN&L(LBkAyn!jk_#AFl2`
ztn+c-fyD274i%_2D{(JOn7K#bXo7sl!hF+1>0(N9oPV+&=pR>lx8j1xqK}ateu2H5
zj~FZ_UF2LeRfS{vTG7oGp?MozHGi_qd9H9!cMV$*_trv>Eamradu#6RO=fy;lX>M^
zm_ozVsSL6_R&y$QO^rGFZgX-72*3Ela`oGh&6hq*)k~VViy=e!NJE1RYpBddS)+(8
zt{S(W7UWDRwUym7-~RR9g-g8Ms+*_3)2t9a`Ag%NL;TXMfnh7!W^i^+S9M@oQL}88
z%R`x+oyLErT;7;1;<(V<<MqPU;+vf-)?MPhd$DOoUxdBN_O3H*S6VkJ1WQETT>Y@8
z)k&s}TY&pcpXbN)SIS4W6^mWjc6DpxmA!c;@$!=$Wad~tT=J=<WTE|O*2#>G%Py_m
z!Ml9(m8s$p|CSo-`+Pkob86$$dj(Q%cazwKMc>TTxy{IYN=hK}l8*21vI)zV^0xMf
z?Cc3iGYpkjrZD+OW<cEX*7zx$*Ch0vEPiZ1d-Xr71jAmo!Y7zbQB$&KHw{e{OhF@$
z;PFdpHAPL4r-GoPT}DPm#7ujZghv+N*&$eWeSN@F)j4b0pINGWRy+M#clDGUt$Ayw
zoc_ezcH~UL*<_~))27DH-*>=yn%7cC=8Of>cjM)2w(qa{t?0Gx@aw-HwRrw2`L1XF
zA#B9+>GfT`Pt6+p?wN-l{QC0M+x+>5UQcGNijS-PIO`nW?A$re;>w>~<PqyUv^!^8
z;Iq={8^iWWnmO1T9^d$WmT3OFsj<Z?zb+`8R>>Z!^n1JepU_&<&nphf`0U-G`?<~c
zLFpO8IZvCS=UrcA+xu$C-?P{M%4Y20{j1SFeGmK5{Q94)GZxKVzKUzALn#03+*uX%
zuZnJz?Y*e$C0TN`X4kb|oya&zD@jisf$cTtqjXOA1QtD0`TuX#j12a$*Smw)&pNh6
zeM|g<xl>b{jwp1m+L!-;=_tFSfc|3U3FoCYEVZ=z$h+Ynd*bpyx0bD|bYDvR<h^>w
z%2u6Qv%+`Iq?^8LtLK$g{ImX-vB6rmiP49-|E}8Z6SpVpHeB?4Wy;91Bcb)!;fz;Z
zQ=;SYmnYXO-TmBeqf3p!dW+Ae&b;`kVVCmX{KDMEsjByuh8^DcS};G7M`vnUMAm`>
zEcpqx{%PO#S@)D>Y@NE(L9|axE~i}O1E-1U`d8mlqSjW|g^F3e=@$I4j*q7-<==ZZ
z`*WvOiPgp*S;Hoz-^Q1>Vwv)KrpTAd3M*be<;d<5QIMW1c=UXZyHLyRvR=3KC%1%@
z@-n#eD#)_T;d^vIe-g_i#)S_bGG3Hra(F%QgS>(34Z&-wRSXA?h>QFDJ9<~|WZLuN
zj&JnrH~4#*Ms3OHkbAgsT1Z0WErS>HE6kdN*S@^Ea9XhY+P00?5BW%P9*dScai(yF
z*Nb+;gy+)AGt;u?Gd_5kx#syFBYxW=x7SnurTu??{^4Ii!8z6}&u5muc{S_MvxyHG
ztIKR63g*3x;^y#an(%Q+YPrN}b-UATFWZd$4Ie+)lXh%zR?h?Zv_EzaR<*vC_P?so
ze*V@MpP*}XmanE?cwF*Lhe`2#V$;k?3m2vTcyuq|4);m3Z-;Fjc{|JhGrMij6ZAgr
zf5q?0V3m7k)%XsYGyYk>kTG4^zLU$2`%nD4t!FQ-SJ-pn=}gy$wfCMV#xPmkxmUOI
z^*Q0=&EI)WCcatj`0Bv7%E?Qo>^-38Ipd+|%Ii(NhQ}WsdOPJ~*ygR13eqRG1efGQ
zsGs9lp~^4rs-|yY{rJ=qC(gMVpC_kmFFIJ@Hr;i?bgu?$K_LZ;PFs#iUDMm&Es4yJ
zS-v{)>yqfZs~vYtjWM<565l;9-1700DKBo!jXu#c#m?!yeDH>cf@}`?H}2Q0ie3_P
z;c(Dg&uRHfEF)Pt&%CqfJ8z+VwCTV?4eK*|r9Ded6pN+3Go29CY{FDu<oRmti)|uS
zbN}C6S~st*YTl{k%WE85txo8Dxwb#3U#M#T-_QIi3l7-bbTs#=U-6ZHnZ)!1-_PAx
zms(`TVx!G#q|-m;VMBeU$`je;y_*HL@7cJbye8+;<x|aGE52>m{dmddV|B0CFC5|Y
z5q&Cij`6A5(PNx-S{<x^dG2-2Z=Y!0c51nG&*}re`ER*xHVLbo-g!zR-g#xL_JrS&
zYUZ6a-Ic{+qQ46bI~UF4%6qeL*Vm%-?LthmxHDXyDXTnToZB_IS)2dBa+O01rk}lj
z^rUHIRM4E)PnH=hZhPOZcYNjF#X4NGH=mVnGSI9nj<t%huADO2h9MwACiT_!xgGmf
z+_N%`P>Ohw_<2vc&$1Mbj}w=LoG8p$xV`bw-y_E7csw3<7qq-)KkRpW<)edqd&77y
zuTbj?Nk6}eT|Us<E$D~i+})E;tET<V<>P$xSV6kW{7v@UC8;N7elrR(eDsGyTTEc9
z*@{_$rz$6S&Di?pv(TmfX}7CtCn-%`{8BIAyXv39hZlD&(p<niw|v4m&22kZD+?am
zC*r?ZD`NiS7#{xCrd{Euw>)}iu}vu4B3jga)ep}p7T3IzTV`B~cp+cG?z)w2v+2iP
z=j$sHXGX~H`7Upk7*Jszk-F%RB-_fk>33I}{(tP2XMUSSU3<2I`O^3sD;7qU`m8JO
z7h1QpImYA^v(&4J%_pjDf*<J^y;Dt(oV;kWP21*)4h`Q8c9eW|lj0Cp&ORQt>BT0I
zqFbpMFJ4W}UzMtVK-NOGq_*0mT~f!h_D$89Y=iytZ#z6_u~@pk=|`)#V%Dm!d)G5d
zn6Vx>5bIUi%D>@yQ_9U(OFLIHEznidYO2)I)z$Ia9du25p02m+8?7LtrLl2;Pd+)I
zc#&z!v$o$lXG|ZITJPS`dcC&%SktX1`!X+e@Gvni2|IUg@n@x&%bfiyWOuqRWIojK
zsUv6mCVkzW*!yqic!&iQy}EeCG+S9A@~aBRy_z<W3#UH`?qP9!AXv??bp!jo=5G;_
zjQI@85%=6JJYw0qSj0~MJ#}N#<FZ-5M9=OG`zVuLpgl7ov1+56Oyzg;@BiyQIK8q=
zP8a<%p(FWuNrYYSwO+}U2KI;4)de1G?sj%QW2^iwEb6My$;*vRT#UbD&SbuE6V$ES
zym^i1e!oKvO5R!0OVnduZo9I+<?XyE<9B|MVcHL!?>?RA{x5098|QeQEer3oPu;Tk
z(ks2y)l-%S$M^I$JzMG;9Fu)rvwUqvF{95Op{2#rXa6>pNIOLP{Bc^W^6y6T$vY`t
z(?15y+*r>pb42rXgO7W<%PN~orXI;3h0hDwuAlLXtvG7So5_|Z12Yb>b)S^YOK_j1
zsM~Yt@fR88PdghQzxr)(AgxgR$UXOe2b|cHf3R<2nf~$TiQR|wcbD(d-?Y9&?V$}r
zjQ)xbo6NP&zF#T(W5e&xMJM$=MXL8-+xn6%ZvW#OS4{mKf0(a&FM0jBgw*1VlP;Y#
z4HS|o3N~_F_FZcCs<eaR`aeH33vLQHFJ7a?%XVP4Wx&6y(h(9dQ~xYBogCbDH9bH_
zEON@F|9vcp2WLP0rvB)ZU&n+nm#gpe8WSEIXqVU7mwi$B-2v|XH;!ItWWVln^n%fH
z$HKYK>f#)p-;Aj={Pt%5yY>I{4>0J*Ke5Ep5JR5l3m|1okZR+ArpVLXu*R2xF)=G*
z)`UkF-`)jkd_C}f9w5uD$Pg#*Kj+BS<1bUBer}no!7sq+?V%C$bZOuD_3!n>7UX3f
zGd`IjqbGJCseJ$5mtTv%y_(y>ET<!%K4-I%XA{Ri%Sqe^yDYdbg>3LRk+5^N>%p{d
zubwIMo7rACUGz=!PwhT|NV$7w7YCem75i5{?}!7VaAv}bb>_Lw%Wt{g`tjZ7d4X`*
z`t_a3RaSwkc3l(wxK7@#=GW~A(VOW}>ks{W{#5pr%*1m_Nk)$seEh_lQFPbr?}gr{
z7s@`j_5}T&)ideC!t4FXzF*j{eqAt8{7J94PPdVMhH3g|*E8K8$~HU~GfE43a<IvG
zqPNxN&=mziE!kIeuSn_oeA;j+rR46r%*9Ioq;{Tnsn@xkxZrla<i-PM_T{eo(8ZB&
zwe|k2P0QEX``E9#^=BnpQSzkLRfR$FRa?!rN~%44U~+*atohx#HJ?uJZ`x+Q>#Z4E
zz{H@I?GMz9dzz0eRncdx?wpa)u<^+6+soG8K5P8xf@CL8eq#0lZMGBhJlH=PudUi_
zy!BOv;g&D9Y`?qiMfHaXv3PZcSw^lZ*0L>4lQ_`lS<l?&y(Oz#-9_r&+#^y&Syyx1
zwq87Qk7<d}5$)5g55M|v%2V8IkrTD&PfNGT8ee+>*F%i~qMT~(O=s?Xy!h55WNz)h
z%(ZLQ@7q=T+H->aw`Diyoai~cyZY~2Q5KVp-%ph+FTW6}uxhQQiTJ$+%?E4D51#v)
z@v3W2;I`d+S1Qh$$(^pJIfpxJ$)#mRfi|a_Ri^1Yl-VpXNleFQZ7Ty?<O`LQ|NEs5
znEN%iEY~?FG(~uw(!8_N<NJg(lUV0};>cB7dVkOC&npf@CHe;JEmOPlOFC_Fs_-9&
z9*GZMjdkTh`8U3K7_KL<t%bGeLDEwX8EfM-$0*$k4KktCGanhYH^_aTay-}k%L%VT
zbG3GFTb|2uRL*#JZLZw>LRF5E(`BX$Og<#U?BY45%wb(8c<7e>wU=izHnWTWy1no6
z-$S#6WL=#)u8R0<x%GcZ>x=ur-2Sh%6=Xf@kNy&Sr!wJpv(%SL-rmS*e(mdJmV7DX
ze{<4`<yGM7#4i>0+ZMY|7P95d|M$<~$nM|U|L-~=e5#b?Ud7IxQz|y{nD4qcH&kw#
z(w_f+|H-eOu>RSWJG-AH^ar&t2HslG{MJkRjgle%{4*Ptp51ph^U+G#YfW2k_Pl-J
zl4G^?w&wNRMUzXunI8Ie^tuC2;q+$>wb8+as%)#gLT;KR<RzVY_*}WRbD@@t;I}G;
zL)$Wb{HnTjSty8~|3t@~MxE<FGcLZ|bl2pW|Lylj0{1uD);~OPdxuK?<bcQX0{v!R
zO!afGI>>q9^`-9b-&cQF?b?5wy?0~c!QR_#KUS^csgg(*`t)6*xUOa5U6nPBwvy?p
zua7t0NO;Ea`3wushI!j|U0!8xvbs5_;Dv`xSkBcyW`9gF+{F@>&RAsTmTc`iHC1a-
z#S!tq=*>BTTUDRgFJ9;uzI$Qgy1E_v;_6fiC+nv3H+sz2q{mqJmro$X+PyO3!e7?!
zeY#g~>}GyvIn#Z?ma{$!PHmIV;dY2TzfSn@h5#Y%tmIU$=_fX9%bYB#o@vb3RONs3
zoA&1CrP-$$JZ!IAUTGM3mNDs7w!1O6kLT-Kn<i)OczJuH_SW--ua{-5nsE1>s&Cv8
z%hQi%%=#leBWS_i+nTKV;^Xf<X00g}`2I*v-u=;{P`APxW@ZeD#>>y&x-hN4dD$z5
z;M*I;Gqnz1f6Ndl#9e20{~@b&fwOf}Nn2BAD%(yQTTz|E?Z;&1luIsH{yyo#lZ8d`
z+RUA7R$r$)`f&L16QPX@^cpXD&Z~a0xhG@`)A{=44c3!Srq)Y39<|(ZQSATfglX5r
z*M_JCYp>-IkzLQP78tkV=gn1b_T}Y>XbKxVk&V8yh56`p<4Bia8y3-XI#ti>^+NV%
zWNk7&n(%6t$0ts{lX<Vo4(^jP|66$ayus4yyFXYq6mRrpF;_@jcHza>ZV^$<`DvCD
z-KH!%A+uo4ZHCS20WS-Gg}S(Bf4=I<{;zGf-L#`Ctn{{TTdWwp`q;#E?NMI#!cXH^
z1HNo;)cTfsp{y!?^`&!XHYv29d}N^asOgxixwPJ+9&6Ep{#jB2Tf_X={+gZkuiN)j
z;*t7q)+(bsne&cpQ~u914~?+j%5(c#Sm~S(=h}Di$fizza8^Fa&MaVKY)oFMzcZ^`
zd4c7R;wH0X*R<{#s!5s=T!{xN&s8Yqaz0+Zu^{q$(oDk>N)cWjA*-s(4%O{uQOSGo
zo{z7dQ^}g&-f<=GJ@)x_?vAF98#&V=sw$^!)Db$Er}n8s_S)AskKcS1`YQURhAHdW
zx6(xx`Vk=xAA2pjFa3yk{C@U{))XZ%$BBoRFNmt|-mjiyZU6AN)v4c_AKxF6oz3|0
zckstKs*#T-GdHujhTKZZ=hmH~d3AoL_sl0dCoi94^KP;(qjkpX?%Q5}rfJ*>HsG9-
z!FbMBO?RC}8{@yWd&}>KILOqg96cUbzf87YQao-(m3{mNj=J)Bu6+rfg1?>px1}r$
zm=U0IEhXZK#BPhfulVE^t(*M8JN-k)(tG0R=N>HZ_{fyL=KT7TR}OFOVzGDkNr`)*
zWiy?N^+n9gKS7c+UY!fDzVo|?@2ulRdE4##8n$$By?=1^PLo!yvsLMRrH49tIkz8G
z)(HjuO!fGC;X%AiC%b;_`8%Jpe;$mw{Vk#D<HyS(?R?rtzN=es7CSL12}wNS(qh@T
z+UdV=0>hK7apG9oFQDaaut`M1?H5A@Q}{wSBL!2?3?yhE$<SEA3^XDIW+M$SA)V1?
zh_r@|YE2(A<i%akrjMbe5izT*mV}?2blXf|@A>c-lengKWxVswJNGCg$Zm;E(NBTr
z3==1?@Vjcn$Y{sUzvmESJj=p+rB?<+FWau)Uk~MPFV~N2{izj``@KBz#q`WwT%Z}y
zgELZA>vaE7=nB7mId+59oxMLk+QrEJvVLDH@a*+l_6dTjI?5ls1;p2EyMO=htG|Du
z>Z9@>seB8GHvV|`cKi&BRi#s^<v;pA_Ik3l?7`Z*Rn4n+J<Y6tR+$=dIcCQ8YkMuX
zM78iuJ8mB^>#f|KSC0JdcYnV24O((<?_a6w#ph3$E)(CkIPU+pzmg`mTk1lN{P|X#
z&Og^`ZpnAmPfI6$KlpCOg4YRmdY7$CeYs+0hR<(>KZ}l8ePF8*x9yuci@zl<wR7#X
z&+K<!`SI>5GfH^BX-azg<3C(;%=h}Azh7q>ZFB0tK3m=9Y^E~bN9~0t*L~c#;@Ib{
zkCp7Xm7edoRkBNpr<(n&*wO{Mw{(SmAM7v}xEQrBh*>7d;`!;LeBrb2oWI1hHhNjf
z@AQPj5+|9@&tp%H-lNLDckkPZuN(<X#_|=*{C=F6YuQsK;`eFxtE#jWA*WBDli%{|
zcLtkc_EotO^SNfa`uE$8PMjdq`1h@xdj$jE!s|`*bscYoWNgy#zS}!hs`~7i4C^Ou
zZyr{J#GVz|Dg5z5##O~Lg+Z?!%hfNR%4FhQ*IfQ)p=tfAS>`T})!WiH-!rKxIQ&8X
zy25Iw+0G}P><oW+=TSWGt;}}ykCCsIpKOsho0rh~T1tLeilL;idy%G4`iE|}>nf3l
z)*ZZh($qrmx<aIMMPXR)*#pHULTg{&t!UVxH|fgluK8wv<}KZPWu3g0D%Vj*#xmxI
zvaI0~ie(O4%#=}2jz0XG%`c*$g;~^W%@V~9zlqa@*$P4|QtmA%>%I3T<b7Vn-%np>
zTUtbxb1HSpit!)3e0$^S7PXBAeD24$8MLUd+<4Z}P`UJ1py?iqO_hZ=I~^a3FZ`Z=
zp-@}rzNC+BpwZHKvx0uGeokho+_G`bvyP`r{I~5ksC}oPQnk#ors2lwI)`KfW^R^s
z_sVSD{G+PW9oV(CZ6@_sZ(s0T;X!7{r0CD9vlxtvBKxMk2#h-OXUUmo90z>ZS2$i^
zE_&c2S^a%_S-|`m_tt&BvN-o_{gz+%sw?-`?ynP3Onee-t9o&6oA~!xB~mhN9}=tO
zIAuF#+Z3MiO1s~(R9@xh)Jb!c1+}M?+<ba-O4sj?X9~8?P042TJ{H=2S^Wjq`F9%~
zj;(VLdc)Gb`Rwyqhh&P*%FCt)TAC=v&V8t{BlcpR=dzU6#<;LOi&7#tyji6=VeR7=
zmFM!=or+zZ5*}W8xJ*v{<HF@q2SQiJe0}7t^JKlPe3VVex!Enh{!2+jd!1%=X;}5)
z9Qz#CcYZ4C?+S`?u5L-c!01ytD~R9!#D0$%%L<KnwzBT9n7eEZcjUo2(r0thuXcBw
zns;s)W9NVK51#feC*~<BbzZ#frSUCCf3lxN{#520%ZmiK4^7B__x1s=r)pxO^|8(;
znj#gJiQkK@P48dN%S&lu4)MDycx`gW1E!xpSqjb{KJz>C!PUuOU;b#6M7c&JRBu^j
zUHN)uQQLe5n-6+9?+SdkZ?krE-k5Rbov-&zTRoMM$Cp-1?rkZWQS_giWy?;zsY>?k
z$^zSaTh%q%8j|x03ohMc=VDAWnp4&CRmyTllaut_;OR1P$3GjJH?LAR6;(+$UAD5f
zOMxruEVuiv4+_TndW`(v>^=0!r0m8T=c^Cej7u^(b}jgLXU5Z|F*ls1hb~LkGxApQ
z_n4!gGS5-k>(Hi>&u2u1oTdx4MjAY@5>qH&rB)-_wEjZ#v!stpnImT1_ukiFH_?>!
zk=8>!^9Q1n9B$ov<CDD1j=?Oph<TFiy7P1HFFZO+#pbb7!o#q3eZkP@(^7-X4<6y2
z{=IpML5Okxf-IX=%M%|wuT;7(x%XD~i#2k!nIefswV4U(<q4me+&=z(%4*&%!Ld%9
zwd&<<&NC??w>RWg-zz+Dw`Jpev7@0*H=@O(f*2G<U*0Ns-_Lu3wd!EL#pEBH&rY1+
zPh4;~f6EMkNi0Pzb#XyrQ~wHF<mr4WyGWAjaY<|TWxqvDH{+M>U1{*>ZTBIGR3XRH
zVjpK}oLQDJD=1;or`bxCm&-%A)0Y1Cd!m$mbiU<24!${lTskf)N{`z8cS*IM@0!7|
zJ;(S%E=!QszqxOx%`~0L9p}xzGB4&(`;yOfIbl1C6peO^Wy-5{?p}Fla=XHZe>*2H
zE2~{ty?Dhk>!VS&j)iQ;gm>r3DZkfsUy>Q~IXqGQ?~YgPbu!1fUFx^JQSK9cEjKl!
zv+za#g(D5xm2KCKOtkm)_DTGu%r2rA?C|l}In&Ro)?Y5G+^A%KDP?zl)xw=0W~yJ}
z-*uGVV8hMJS@zGhGMax}-ZUdyNKYzK`u4v|la%`tia)DwRX@7<>%xMsj4nI+xz0sw
zF#gH5Don~L>DK38p?_nZedREEyXe#7DO&bI%~cbYnHKGw%~4!5<!PbKY4IB$W_;hq
zw`1|DQ)M@PHkZCE7BHCSP@FCkw5TI6;8&^`Ggp&na6r~y6OHi9hvKQ5Zq0kQN2Kuc
z;cxHsL2IkpBadRXL(Gt8kO;R!kj{Rk)*O}@^6D;VTf)e|#E^*PR4w8+^KKveb~k>Z
z`zy1g9o;$w@-?#R9uM_4u!^|eX*V>Tr1o&pX-T!h{rl3TClv{cFqx!3(<y%T=Fk0i
zufE<^i9Wje?nAA<!&>LV1^=-0Tvl1Ls3ugzQ$qD+*7Z2o)sL^fF6aOFDueOf)o^*H
z<m<C_`kJ?G?^}4RCQALbgZcR#{Y=+C|MZ-D{xxrsmEDh`PZJ(JwfS<~aqC*Siv8F9
z9|t~JeQV~v$-OTlwg~<EE_?5VNrCm=`2Rb9b6&Z9Br&MzR=&e&^IyiVugs4=d*rq6
zERln6t++D&-{h%%UZ~hv@z+f3an1oIg{;YK8>dUOE7a}ne5}G>w|nPJTaNDS>UZY1
zL<Sj}2G;!GZC$<a)<4cNjl~D7uD;bhR9NtWU0-pQjgUL*k7m`L!&d!Ge^)qu%#gnG
z<?T(AjFl!@iPs~|ds39`Zm!*4c|qCx{)dyzW%?yO-5bt$*E@G?ThsJCLGbvmxl=U0
zAE|RLfB5rWbg?rNqj;EWRpN)Zn7!@0gFE<At$Nx`dL1Mb=KZYM&i1nELhM>eO*N^2
znQM6JWY1hIS;ZKqP@`&+lK1Gp(~|`or~XZt<7`@(oKmWO_P|+w`wcB_rN;whO;_&!
z&Htj?an_;N{ktwpxa`nwj_S#&wDxBAQr6~hO}(tLgLz-%#gs6S6^{&jC6yK{Z7|Tv
zyP5F!!HG0ala*g4FZvPlTyjrIkc1NZ$!&}h{#&EWuJ3>I?%m`MudnmJx8^Q9*2q(L
z@}hP0ds(IC-=CBml3KP+Iq4afWc29Ttampu+5$yG);-jn!5Ug+BzvKvYcZQO{~qS{
zlOHoLC_P@o=58M1SpPtIlmChB=Pb8;e5F>rZsJFU*zAtt<hk{E^*<&~p35bw5+j&z
z%k5VDFurR~|Av>5?oXCpn0>!hWJYt#?#~|`kAL6wu7B>qJ5@3JXRY?0`Z>1q&evz}
z=I(!a_I9aE=)tegJR{e?nfos*%QgJz1G}p>|BvnxIcVLttF9u(ShuRYs8s8deBEC6
z&G+xzyMJ$glH1YlW}XSl8NPfn6}tRHdy(3F1s1!FGIxvA8IAApuG*}y+*Qe}WLB)y
zFR699ry95qeK=#C9d&s{qxtCvjk@BZ4AWefu6VX+lZLEEnpK=*IES`x(6(Sf$8+t0
zE`M@fE!=)yKz{AlGo?Scj)pq+-ueCB<%ZGmyga8hLarN{BQEl2@t4@H*Nu?tu%FbM
zxZk`#a88lx<{Fjvi;K7zrfQulbMW%j60?}d<2ym(d%#&wA)B%i9+^L-!qvRjoV;_M
z6*Nw&{3P2~^<*C7?SAH|ksN2D-c5M>=<9>+>X#*se`^&v_<;Gx_sN+px1NhM9NUzm
z*EaD5YscpwS7yw5Slj<pUfIkqE+T5j+ePbsx*RuLU}hITEo|bA_f_hR)hlgRa_TG*
zPFPkx`Nq$?bClK=-PfG7uPS}xl{aq|2`-ELa(2eiV&xx>+V>|JYrdFiF643e+a-t4
zf_=(qf~p@H4_+)f#iV+r?|S_L^K~nk7|!;dSajxpSpfg7Z@k(ZM_jeu`gFP#Fodxd
zZ#6rTaF5Ntc=|N9ZC~eZKEb4(#(E*#gvD~>+}F3yRy;G-(OhGev*E(yT>*d71XtYZ
z<GudLD~IiMjOQhx-A@%NHpPj43^?)N$~?#aN+%O|TCRjw2iSFgI$7`V!(>)ke*Bqm
zPtjvL<?G(PlWX>ms5PE3CF9biAL0EUW}Uxv-tx#slaFz?XLanJzByE?sc~<~%FR=}
zJPUl2Lp;lmRip<cNk8BH;;Zx&>$596(l~j77wc`m!ZWu}d8PnsP`vK;D+d!dM$P#9
zGx1GI*Rtmux=ug$=vA2=tKqUaTC`hOD9pXjk7>p`8>=rYJQ3Shx$P4U{#{+^Zps{1
zu>XwBh0B(ERz-NpED(MFSE9+F<@KU-Z!7N{mHsTzZ7MWXeEQT2zgKjGiJo5lfb~!5
zrH|hX4(K>fImg}5vt%ES!u4}pvnOA6&bHD$q?Yt!ndGm}2?Z&0vL#%;UT~cE^NIJR
zJI{S5J!&r0WomwQY7x&A_4&(gr^>rB@iktI>00Ei&aJF?{-9Fwly0uPy*IiH{z+cR
z%5eE5Q@`Qm?xW1-PCas7xb%}vUS*!<sqQJK6Q@M`1Xi1V<<XLlsEj_F^LhH*6Rihw
z)g~7E>WM`*&VHYM)G7R2kB;B+l?u&n#Z1o=RXr|0=q_AdSK{NmPMPWM9LYm}4s4yb
zZ{>%@pBC+M__EjZc%eYt50hl2>Q^fpqs7)q<VMeFP#0aUuE=@QvGb5ff_PNyo*Dhm
zwx|Y`=^K9aQMlQm&>9k$I)}gIiIjfE>-E9!q<^WVKKi;?YVxNC&BwbB=xCPTO~{g;
z7IH)Bh5TIk(_Wj>yeGz~P5%G0x^cp%gTFq>y?He`DJs%=DSOq|KOa>Wo-<y3=34ND
z2YXKIFIc}RhKrdaqgtD}`8rSHeJ0m?3;w_DPBIIdrq|25+wp(B$(IQ_J7wMo{9dFL
zp|<$eoWLg!Hq9ws(eZGhFlXH&m1DLw?2VT0$^Lidd<+n3cs{ctIxgh98{0?!H>@xI
z*Sc?IP<UFg)WT)K<@l#Bq#uU{9Vu2+-R)z_BN4UM>h;mT&L0-$OP!MpOy=5o^S#?0
z!~TkS?d$IR*EnmoZpTfr#JIejHxJF&_<P5T!-Wz@I~V*rt#O`p#TKC{LS`SfJ(#pc
z<j!&LZ5lq?<d*8`cOSAj$0Ew5l^7x#X2S2H-F8WZ@AHbNr>PNPH?ywCv9cE3dAIJL
zSOUY}Cz@}uG-Axi-4ShwXwVoUZ!n}<;|4Tp0~_XnHg3!fiJ2lg6Xp%N0b<|p@Qmdr
znAf~W{CROvyHqr{$laA}Wgb-pGNy&I-4m_fw(0$^ouYc%b2jhY35?b%izFuf`q8Q6
zd~vDsMbSks<N_ZBH_j7W{DNERZjec7+jMiDvs&#7nJj%=T8iXZoepVTxHQp3tx(14
z?4r$ybuNn>ntb0so!n8pVQ1l_E0S>yX9B98J9IcOFm&}CsWEt_*s1CMQs~0j2a}(j
z<5*t&w91LYMtk#9BW?dXx4&>HF+NZea+TXr!*sg%`ed5}>1mQF%*qj8y{BD2T6J_=
zmGonIUkN{nPZAp$*@RzDdb9Jx+sx!QZ==<JAJ2?eJABSNV!hpSxy<RoD?j;0iu&vE
zZw$Sg8`fL@)#~CG<qEsC-79^wdycPr&DvCClj9@Fe9n2n7R%%v)BidKscg8=oG-L}
z=B<F-O+SwMzL&jlGA`6sywpzqaqF*TUY}N6X=Y=Ya6o8*T!G|6o7ExgPgp+j9=g!f
z?{Q}F_oRG-HWjYJb04ss@VP2=Tr-Aks-4`efcUpNPxClr8y@+(=lCU;91gqf_YUw?
zKc1W3-CCHZ@29(OcGaru$5Q64UB;c-bME(s+$HZW)Yxtf+Gw<Tt^eN6g21izVXM|$
zy^`^KRY<On4@c(Cc~i8iEv{O>zux2jZ_dYmwlXt6p5%LcQc%+WUsGY7&#{jocT;D(
z))p=J745Q0=law3?YgY_{714&b`=ZUcX?^;kYv@sv+(7Xjl!ST{pL2|pY`wb@;|c=
zEn?B}k(XCXXAZyZKkNO$g_Abv{<kRo`i@E9e?4Q3-|mgK`ES+<Y<Dgz7hr$b*BSaH
z`G&bM>#rJ}RO9xwCz>W)U{Dk5?-1E2cTBk^@Qm5gdHxLZ1lg{?<z6|vH7w-xv)-(a
zzp8p>uJdHvp7ea{%>&Y=PJ!WW6=xopu1`z5%)2*S`SaKNEC(eU=S*PXONwtkyzuGs
z<qXUW`_78xVacta(MwpKAl&6JP%wuLaZ<E1)EwKGrG+t3+cv~w^KYAdxVzu!gtKG*
zR;OBT-CYas-b!-4&f9TslC6PI?&_^e9Tv@EiT?llU4^@6*)GM7(kFK(ey=@l{`A$S
zSc&S!@Vs!x2jZTOJbxq`a1`0|JL~&8$G1%kmkYmid#&F6c-DJ)3_I3@U03>YeYS<i
z(c}H*N;@Lgn+MM5j9uU7ewBaAs*u}dZ4YjLWvesQ3o5)2?HsUv^+x$w>$6=Rbq4CJ
z+x5J~<ae9@qI|7okFPwupm=_7>YDg9|F!HJf*c*aT3h8$bA)Ks$97(S{poX1VmzDT
z;yA%m8yU5<WTq#@JS#|?WBl&3=Ik$r&n&$1GWC*w(~Lm7MP`9d*b6SGeF?UZ`nLY)
z{QZA|;wGBzmX>sp;(d|xn>Dw)+j>Lx<#z=WIj&yYQXQf@>%qj#HB-f>z1;q|(PCTF
z%#GKXB`hZ|)c8K@TmRjJj-8f9)%h<1lGpBHJS)s!|GDGI+o)b9wTS_H>o(q7QmJOa
zQBZtAXG*5l9nK@M>t8Pma^rt+)1tr8O664mPru7*Ew%o0CzTcY?>x+x@5#%Kz5J?o
z)r6m?EppbZdCISFPu=vJi0b=ml?<<BVoRPpnQ}(oNcw{q$E6$nib_F}zXJu6cXWTy
zNtyS|L+q!KUxVi_qm7nDyh;0NKfj!Ny47<dJ74;1<0E%EZV2w(r)6n>>{&qc_jwbh
zt#Dlbm2EG7;ls(^N%BejF_R{GFB6y^Ec2Yx^{(m8!?(;%C2e?XHE}}w2WGQl{5NL4
zeSGEYUxQQXWn5gbrUJ7Jt?Zckwf?j$dUb1;q3`ue>uzd0cPOv2<J&W9vV2G1Er9}M
znNs_0(wAknZskgtQFr_6EN6jF8r^<P1zznM2X!8(95@<#Kk}c~YpF%HoXH=fy)`yp
zXUVY+clgoc@`Al|k99^#m{j2}fsYmj3tkjUJt$Fi*NMM;aeLmh!psM&HcEa|h!ONR
zn>ZmYc-O0G6S(Xr{@CTm@J_n4`ofmr*RK{-xvCxKmDZegbR(bh=Is7i#xuV0xqa6y
z2%PIGx|C(>ns*)!q8XD)`0lRUuq@{Mh62Ys$rpIpMB2K~aQE1)D)Hw3dza_w<GKHq
z9N73MIaB+{*<ZKMznJ9k=bLuT!hbv7A3e>@67-ROt^Pry=`8a!=CbVEVNjqKSRZN|
z$8cuymy#qcy|`F`{dEm1mam;Iu77>DO*ePp$#(y5M(L3Xe|5alOV_VVNh&+Huzl~E
z+cz~B3YJInCcT<9ZM&Wt<1?XtP2ND?19$FOd?}ddu-@9-D*Qp@q%>}}+FagWuS8eQ
z?oL1NvG9GAtP%J5DctOx`!D7OXdQZVB-cH4mF>*zK55@_ho|MX52yIn96r3}=hwu9
z`zFzoUbsX|WAX58SYG(Ko@vJKJ{F7g-|HB5y+3$kd7ka|)RS=@)8aagZip`l<TyGj
z!;N8P4Zp(W8>Y98Z3>&wb#1cllrt$;a*s-A*)!-UX+&OG-Ppe`|IEAvlY>70&AYQj
zAkh6>--&5=H7zFI-SJ`0?N#q{l%|`_ymfNxj;fqk=f18dzkQP{E}4E(DT!rfV}4~G
zV12PfGOBssRH+<s#t(JtWo6B#Z!_F8i%ovXEkC<C&$gWLSK-eRnpM`Kyz<AV%bC}Y
zy_}k^KQEGbTFcywRw=g~R%@m9%2X!Q`568bPdheC&UtpjtaUl%yK~DHul->t@^WXJ
z@y*DSvKiZN8%?u2_xWqY!ru!bp9V<A3x7J9AfkVpNAD}M&-rtLSCUrj7d`zhqT}t2
zuyvl#6aF7gRAA|9j!!%NoI6LnMaV3v-EV0IkKh%R4bPY}<k%Zr6&Gcyxb{TFoqd&6
zAGr3SN~M#L!iEr`X@?^cm5&D+EELHSoOq5Wec3YKZ-z}}E_ceClb77AtUP2Bby)8<
z`|*$s=VxXb|NLULJM*!{T%JJdTj#781?F6iG>B#?6BoOwl9{x&@%QE2(<hmxMPHS<
zAQGsTJ}b<AMr44_{IJKBvuczKbMA3mZ(pW;C*W0Fw4eB=Ym=2evWwYNh}<+dv|f~h
zu`0ObLh4V~LUSkP<+9)TEK{HU>tH#1ApWpPDf9XxkrmaG*X|YD(rjF~;`YHW39(UU
zozK*Z_%Roo#sxk};E^~ISR1qAV#&4~Ck2~Fe|p~saoFDeKapXHJbzoe`n-pQ_3M9F
zxXSlvO5HK~c+hW!$%Tu4uVeg=v=zB+I$2SE!#U+D%V(R$Q+sq5F4^1upFiNfUG=4X
zW$*VoRPC?6Uhla+jy3M_S|(0?xtTv)AIOF$>ix~EjEG%(Z%Ravv(~f?+4nbGQr6($
ziWln)7pa>u&!+3&V^LAJI*InUiN6YCE>v^GJJ0xG=qj@B`kgkZ@-mlJkL^2|4jZX^
zOxjU2rD0*Yh{eRUWdbV<)&v?hMpd;ZuQ|}U`gLO3ts{{feS0G9)&KCH?|h$r<imoV
z-}ZiY`$P5rDD|#UV{uJPxb4j(+k3y+auuK3|L_Jz1`WsD)0h>#IcZ~y$n%;co(Dp$
z=DInSu}DJ`OEV(IBDaKl7T-1#+4npAg-4lEYxfRWS@m}+k3FqBt!$6j2B^3!T<E~-
zSoQOJt+d9;P0P<-y2#kif8h50_T}cQyRTorSR{5XY<9OnjEJWZH)vY($!3#YF-MW}
zVY|B%uEp&6_qEs}Tj#>+SC6{Gx2?7BpS;vOM^t#(=jVaXuAb8SQz;~NFW;?9$~0n$
z(D`>SdscnP70}bZcP;Jm*WE=I<|exBTo!!S;=@|cqx;^hHR~;?wfOvkecp*D%6Ff+
zZvJs=*80C&e=)2(bJ%rCb9es1#auB;4+G~^TASuPUF7QbaADz&Ne?v6@i!g3n>wLt
zdg<DW>;j)(JYV>oYn$W!_u=8I&)0~SSzW2ik7U|$_DI#0T-{y8`7fr<TD*GIc0aS5
zyMM8svANay*!5NB>FkrI6SbM6PdDz|rqw$qnZ04hpFK%UZx`%7yr9ZCYVnoo{f=di
zG6kC~jlZt6s`g+|5520sDNa_$-LO!k`junoV~3v|N}eJcPJ3xFyf}4q+W9Hhj22&d
z+Q9YU%wD-|KE6sW>a*na6*Kl!%NV3&oPI6)%;{_YpVY5@+f(aP);Ssq#OuVV%oABJ
zqVsObvT2)l*RC!*wctsj6~oqBANL(}%Ac7w`M@=u-o4+MjonwfNL#vQot_(DZod8A
z_2~Zzk9M2OufJHeQGspk@3^Z{IgdXaYD?XBxyNRu?!6g#MO8+e{%)?CYXW!iz56!7
zI>V_?cC*>yg;yMJE=au)#Az1xOzO4&8@4q&HCmP^<|(A^5dEP1Eh=~8u^3B*z-#4p
zNsUJ~IktE7e^UzluId>vU36W%ZnqP|f!vKhU7oS;I#@JQ*)-u|&9fc9?`(f@;ZCKA
z<I%O{KMPAgYew1F*l_;e*tS~xglOUW?Wbg#qWll8*>yK=`;})aUVJT;Fjf-pR_f)P
zFw@D#?+`~)l!9D6<A$A|gS-4>JWE`hz9}tp-=KH-rjfr`<ebGaZ(f{<|6BV-jHR2&
zh2_oj*?rMEi<#U!@|Id`d-QxEmscFy-5ky2ARh+)IgVGq@I4B=;MSM_w2FJh1$)kC
zTV6&zy>is@ww3$$3-{_jKQl33^XTnXdA8Pa%lPSGol!<dOWi|P{yh-ZqPafXiRI4U
z!!LxFH1+%vnIm`Ljm6sMV*1_xlZ>WHdh|6nhdNB(o8%;rxXF%hp&6@0qg?}Is8WH&
zHisK;Ray@7uqg8e_FpRFFFHHVcE-IgP7{CLpFPFf@o&qm#4go3B>~kBd!2*bG*tNX
z@>gBT(veuQ(V}qe)vBBsPb3sn6@3=9%=JIFE2JgI`|$3P?=^NicJBFE^14;zqzqe6
z(cM*=AAVjs$~^DyjuU&Ujs!e2lyrZ-{gA;^gKsQHKOCIgH>vE>4}r&tS^PKb9B*5m
zF_^kX_Z{yK&&Z0M7vJu9p1%I|O5UQXlDaLT`&lD){XOvFO`r1SKsUyDCj@7t#O&{L
zZeN`8blHag=P!Lev1g9%v0amQzGI)5_;ka^J3La)FC21?xHG%X=2OD{na&$}?F`F=
z4&A-ZC#5F6;ohz3^VYrRF|eML8W%sy%|q)yj~r`4@1HNqvyb1jIGq?~ekRI)vwclK
zPWE=k<b8L7!!{n7tdb@)<BepGqU5g37lBE4pIHX%Q1mzuxxXXT>}0CidEpfuVqFuN
zdA@S&QFY~$<8a`&b5=WO^^n{5z9KuDxtlgiuiA#Ft&=x;grBjT^=sL~0Ld#4e?9x5
zIrkaAz=@OHOy=cFGG7@5|MX<2uV(vdaAvKM*uT4XG|L@>X6imtc*HGd^I>;vWuI%}
zwiBP9%#P;!e?&H2yYuN?<|O8|F8__Dpa1)|YjRDM<>ZcHp6TCek84B+Ph@bHj>|Rw
zHnqd9?n0pOnX`*zCRN8VtlPY$QtCzF-K44s>li0*`RN(Ja&GQ1)#5_W^RIZ#-~U|w
zRQPzo!YrP!Svxuv9k=i7%lc>X>YiDx`8!?hWgm45<Cs3)J9A#0`49gxHqB;@s=6h;
zi88)TNz<Nm?}@l%67`_Be06s{iv&ZRp&tj9I*qiUCgk-wh@mE`t-~?5KpOah4lfy+
zn-g=Y_8M_;pVoH&q5e-&+P@a0zD(qgyv3*8l#~(kCh=yoj<K1vr-_H=#_zAok6WMG
zG<gwoki>?*^5c&`?)!QB)1z0(bNn8i{Pb`UN4L&gmk-JseV;t1sU}WYGC8$a(AP{n
zeE<EUlY3b!B4hu^?lFIA;@k8*H1gs1i+=wj>zq2dCrKPnG@Nfek>?m^jjP$oAVD#1
zb@LtlkB*l7<o%}F^vyMqQR%^i?*%8mK7aal`b!<(O$(+~XX+g4PFTx%{Z*g9w)=0F
z88d7toMF>poD{jT&%8D_bgAs+D515p4kbm;+VpCP;*_lNTJd?Yscu$hKS-^(-oGU-
z?_)zrV@>hSaP835eCMqMqWl*>Xgn}?Vs_}%xm&iZD|vh{{c0|!*2~W=N=p(IqqpAt
zWxGw;W2?^9*x*_0xwAH{onuyDZnt@R(c3(Uhf^onsII-)kaO&pLs)d>-h&pZwPkMk
zJ~vG+?YSCIpBu`1iu20?7T=F+{6bqKXS+4HpWb!t#0Q@zd8e(*mu_5jcY~Jak%!?e
z-AdotLoZi~yx2DRcV1d*cIfhXOYR?>rRyZfx&L6S089KK$<HGE))r+3eluJ?c0N3H
ztLdr>mzLB?hT1iCFFaCzNOx?yyCTf1*^8Mee^vO_oI@{jCW;=syHYiQ**dP#lvTpz
z<u##&j!ymej$hsOL}kL-%cVcNgZ*|VyBuR|onSsQI^n{D@Y$wmj7@Wwt<O0<wRpme
z`PLi;?(7Snxk}Z{c~*Eq+F)AdmWdg=U7yLAt}rgknzS@!ii-Dvkls60|CJWCsAP6}
zS_<?}doX?0i-PvP6Tcb_^ppe)E`2L~uGdlWO;tlPiSgvhA31wBh4Sxle>;bT=VRjO
z+mC*~bI5XTbX*+xsYghz_|%7qi{G?Oy;B_?<tnnyKSlJ6kA`T#>KF@wMZvu_tB+lO
zaf_8Dti{kq{GfSm+bva>ciG}byx|K~r-*vn=-nxeU!VDMl?jvfE}@OiY-^t067FN4
zqFbB4K7aom_K$z3@HbCb`r(YBP5d-{W$nG0SNG?vI5>4%PTjiT{QURL?jhQ}pBMUF
zSfv%6<@xc&rX4GuGB0*Kd#_@ClE*T`c9o#*soiRKc^}1{DDriEbFs+f;U}ICo1;$u
z`p}gr7d<~BQ>Joi=Ea$twyyInh;&rZI2e+CWQD_hA+};(LHWAhe<m7SJN~22AjdJx
zdy|28u#q&&wNBT^23^8xf4x-p^Lk`HET8K0+1Yglhu*7$+b`z^&d{-WnG?>k_JBNF
zpSAVd9dF&OoWAo+PKx={{QE&nw@JVMRtvU^He$_U?+*pbI;P24Uu@O*7ryLKM#<Ne
zE|2Yf6@yRDmd;xmW3_5?+rwun4omg=6TT*tGzXOBESsX+5p>odu<&kr-*nrvS6BAV
z+ACD$Jm1^(&2JgEnGH<&oWEa&y<4BR?_cLxWtWf^<|~aetX?JwD*C>e!)>7<nDlzq
z1Gd|~S}g4PIT5Er_uu4cpMEtb<VE|UN;9EV)82H7uh;Z^Th8sp{?-4xO<Y*}s=Df*
zrDmRg->_e}VKqI6b2;aQ1?3z27kJO%nd$JwS*@Y}om|oJZ614Do?H!36f=9=QLcRZ
zx{VHR2}8JkmvFL^W78!E<!u)uX6#G}T&wM7dU2=N{^)xa^9&X`sU4iV%r^F?$MlZ7
zJ*^tMTRGPL>I=(bay$0%f?*fSM6ORFO)ocoWVm(pYNMyr;$GDoz8)Wz>M%BZU3@gk
z(f57Uv`1NHUCR`oggD%9@^nkA$eUa9&$geT)n-!qojBfTCXMEs2csfwz6d9Lz27#E
zgW+n|qJw9@?^L+m-1G5+$MT%x$xke18nFAd9h_dwYwx<j>BIN_#|-WdnX2!3pV|=h
zUg~8wkC5Gu#`m6$g*I=O+njb$vN#zy{c*<R4UK{?Y?7Dq{@OP6nh@)4c_FsG*Sl2%
zMT!GLtbMB0cxV59T~sjb+IrRNhTP988^sGQKVqt`jaA+vah7dEhUw&$7Tcc~IPBPd
zziHm24K}&ITRz91a$>l1S71TFHl55rI~>ZN3djUV$H+c#yy791`{}{D<r3;{9g5xp
z{d*VuklP{6<^JK1)M2~TG0!XlXZ>(YRDbdDlD)U4x7RG67q%4&_m-(F=gayP;`8jw
zEzf7gA+q**LRDK-*X@|~>xaP>*LT`GovmXZ?PlaTTJbtc;N9gPPZHDCNV9}VwOMY`
zH~KmG_q7wVCNWGuKFhMI%^`eYf~WF9<8UUXob+F(__G8>Ua~J&5vmO7j^AZ=D6YXh
z#Guk?THBTTJ3Sb#)_-&il=}Y2dex$n`sQ}Cue03QQ~mtD{<1Hz?9+CoAGch}=-78@
z@BJ6)4D-);I?aq~ac$e2WTME?WziG=Gi6?TrJ~yDXG$H)KJWNXcmHRRV91^J_&JuU
zoV0Oh>{U5UW{oUB8^vKG<nU_UgqUvV8gbAG`ybw|zpyssc*>7uH)g+9nVWLw_>o;l
zZ4aoZ7%ub>WqAAI{ciq-B~Om4T;}7C&=KpdegEnD*Q2w)2kz<+dwte*3Y+IFeWxEf
z60NIU=N)&HQ1AZwPbnrx|K6W6Y29s74@yfv-t2Cwc<CNEr}FjOE4^{QJSSFOuifsW
zbbiINIs@LEe{uCK?MdGQM5aU@<2Ur+Kbkrrh1Kqh<PO30OTP3xp1sCKmEYT5Z%>?L
zwbe(yndOoqhMVH{@BNT>v{rlldj09I^*3L?tl;Oh?8h6<v^yu=*;dunXGE<m2(OS<
z{Z`<lUzghCyZ*=1-wQKeFS|YO-sPH&i5vfDaGtV>{gJRN^pJj&orCc7d+v=r^3x){
zf*77H_@%pNNBX*k4A<?lN5a^=?R}M(^Uvpv%4*9pxUg-rPK#kssfyc+&UI;91miy%
zmOEehlhf|O%s*kv>-mm*>X^mi)<*cS_#IuM>>@LL;qh}DN`9^Ay%XIv?|Rg>v&^<@
zBsOMm+x_jthkeUmf4#s}%9${;@==_$s#Y_LYQdIIwU74(UfNgsJofIo_tSdziAP<V
zZp`~`x*f-F*RW&nLzQQCs(3${yqIYhW8cXOwysi}tN+P3TrpvmmOUW5=+J5FV^_|`
zN~k`0Y{IW-@yk~JOM=eP6F+sgn8`UCT*xXrWN`I`$DNGqV_Y|vPhHT`$h|=AP4t69
z3sY2OnODBsJ-;DdNNvHCts-`<9N*punm^dq6{(iUGbN{lOOwH_<bf&Uv*ycJbq+Kf
z4=W4ebT&M!lUaLoPl1=@WB+qACaLopZ(~{0zdOxDCnwV3>};=yMb+Z5E<x9Susn`5
zZ7JPszeQ}F>aEp_pB%J(YEqcfx-4bk*_2fig_3KhRBRDrJ$)w1^Vuq)1yKgG(v*10
zVp{JyC4JZ`x8R!6$*&cG{Oyya*e2{<QQolVl(T=)y)Aze^L=w%t-{vUD3+;zcb)t@
z>z>o0jJB3TOd?0+o<s%D{Pv>Q>9)Zd&+8XnN-ez?*LCjR)+&ZcrzHv)kJVg@kkY-)
zD=#~Rw{`i!)k~`we&61~>=ZWL^yx40WuFb)&TE>=#Au|O{h!ctHa4_5=yB*dmWbZo
zlGW#RSf*S!wn$ETbMlK<{a?>6*OYn}!`ti6_3*1{nEa7*XJw9`JHue><h#I2e&;0l
zg#lA^qOVFUmz<EaAji*RZX{!d&i=5xGbdUNlyA$P$XL0crhn7z&oytfgZ2to$mi^N
zow#58)s7g~drP@vPA8w=+B)gbtn+5&(ntRuyIWvsRF>CMs9L{qu9emf{@;lL>lT<F
zbDT8&%6i56?#pqqY^oD($L)2C4C*kr{voKtxkfDfAh){hJO9(>ZaV5}O;>hHPH~cd
zyVF+1H@9=glRfI`7hK<&w#*TC3evUd{P6i&@SHOo2^!nd4QKwSQ8<zQ_kZWh3wj^!
zXvNoVfBDGd_)5mcp5HbKaeB`^QdOciWdD=g(DaBm>)i$?S)s03mI7Io0yEfZwrp?9
zw|aSAh=ud`q+dNJHLfNZyyeU1ufF)Re}X1k3)7cK%eFhurX1tG!oH$@(v;4%{v18;
zrp$ez)vfYYcwWY&9J8;2mpTu+)}2~@+3Ek`ufO*H($`E5cbqbNZp>yaVLu0jg>Jm7
z|FCHVUq5o!d9k$fX6>9~oq`G0hM$gID}PXSZ#lzJt#7(w@6z|MzhyZhIpxZec}I4#
z&%U>^I_82hL+{>1*`#Qfg0*b98+Iw*=@mR|etx<Cj0HcIFmA9;=AYTUS=EBcyT*RT
z$+>y|a?ISV3!W!zcAH(8&fb1~Pk7Dt?_3fOF7jMD+AjO0%cLZ<`d4@3{Y5JFf4eQ8
z&S%;AxbEa0)@=Vb3^j&pCnj{2-<kX8DNFjKA0M<Mo*BFESMi_e>ZkNVAmB&uYwnmI
ze^okW21efM=rjmebZ2)`@pU04!MeH&tfGr678!4I=wfVgnsHC;ob~&+zf(n~-4iu`
z+;n=g^o4zedC%6le&6;x@JgEJDWfBPY^T3Gd-d${Tye|3fU8?h7g}?QtTPwC<9_Gk
zO=FSdlak-B|MN|&Ise~!zLsIPTfnl8o9jOEZ@Kv8X2y|kucB5Jwisj@PSoH1>*h9V
zR*{R}U-cZ$%yvHWC;oe;ZeeeKsr;82lgxhnTi(P~-+x|`@nejyv(~o_cj|upT|c{=
zC;qe1%bqXkW{XxUALwTLcj>*k-HfB+r)(B)*WJ18RQCKTU7zGd!fz+GY2KMw`}nGg
z=%MR1X>V6;eAO7?^m(O(|Ib$5#do<Rqfa((Jki&=vxBMWbh+v8wX=KI|1{aR@7YR=
zH2o<7zCs_Ib|h$Yo>J%u>&_8f<8|WX-&S$g7dy&dch|E@Fes(H@xiRMEs&>i3C|uQ
z9|lN+4!8xj0b>KA4q(X%Jz4bFOknS4?TVHlK^K9T;?EW*LzZbxZ7wN(#xQw8i=jBL
zV_(eAUtgGXw=ItmlX~&Cbn(X@nc}(sLQ>Z}x@#BYb*)lP{e!s6)I+mG3j>!Jd6w>Z
zy;#N0W%l`KQTZB`f4(6*Z`C$SWF9jVigezga__I4ZRg#K>#k)^?YjKw&d#={C(Eu?
z1Zfz)`&qCrBJXT*y1abl<Kut#czG8dlQ(7+zTA7b@#yB+{W>?pFVDAn?R?{5?2Y|w
zJchS3H*Ainy<6L8b<Jzp)U+knw`g6ST42Y)wzqE0Cm)IH3s0_Jpb@I~ZSvNX;2_SF
zI}1Ku^kIK}a}C4hjq15)15Wg<+PK=qrk(kHn)i$ay`0+%zjHTOo%{T9``KqTcHaFb
zQ}3_&<RTNZJ?ii+&s(#2H3M^gs0+^a-cg{fHT_kQX3^GTOZZoB_2a&1bzkS6^_v-N
zF}5PF+79n3u1n+2VaxJ)?rvx4tNiuo)@{6<AxAsCBBz@;s64Tn=qV>|HQhDx;TMj-
zWifVrG3$&Y!&EIaSC)GEO`3b<sODs;wn=j$LOeyEhiY=WM$TjT;Zz(t>oHH2*1|JK
z?JpnXd1r5&yz{-)m%?v`Y4c9<q;&nPFj1eOAhBYNfTn)=+7C5{l&3#6cz$2p+_635
zdrpQ;9N*;~Jh=w4m2=l{hJC(x_YgzQp4CfgW=C#*nYroSrx12=<3A}IB;|bXd^vp6
zcvf3Fdp5)Bck^PWb)~)WU-!7?<nFsqKQ{VT)I3P|!Junx-9F)=YY^wrTF#XxI5f^$
zd|5kFW)F)?N9z@XLgw{r=O#)WR&-`vxOsh_!j%gwpQP1y1zZYB-O$#ga{KP4X081$
z|7TdLoIILnRGa_oEANVI9vkae(L=>yw=EXzU$Zdt)0#tXc4_6mJ<@ydx0~V~)7O>U
zC+{3lDp2BAb$xh@O<0VtY{TT4xu?bWZ_nN1xI1jRXq3pFnCkY~+A??Uv>tjZr?u6^
z^YIs<H=Ks9I~9-V9#lMNbd&ep@1oE?bC<o9iIbvVuMzs|5i{xPA*bVA$69x$zI~*t
zy|S|4fNS#ywplLcyz{p%azA-`YuFu$xNjD(G)#`Q7u3Z?x!+kc@k0BzHuHe;4xXaY
z#9hDL+qw!l#m-uo+<kQT?sC^1X%|`+mc0LyCKmOe<(ZMuhWq`B59(%$|2dMlCi)`B
z$9`FxSLZ+cXT9+<dd>-*iytL9wEkJw{hD<ocS(}CyGKN+YH-3WJFnF)aoc0J^x9pV
zZkM|4bmLrYCF^NZR;30#FI=0l@N)H{f0i3phj>?<C=5NxB{AhiVRyXCn>U9!triF;
zwqM)(C{T}q?e&f*fkSgoa`Un$Y+b|cTN!bQ!$)!F=~c^IoR)U*RDIgdz|0W;+NB&z
zxklQ+BJyMz_A-tp8~-e@4LF*a5i{V}Bko&%+w9G|_=StNgs*-yUFF@hExz}6y}k5f
z+Lr}4wygD=78IB@>+df{7EN!z&2PUhWn*MIV!q(@*;j9QCku9){T4lc$>w<=+kcxA
zn~Z{7XHIi+n|)cUn{V}Y`TWR|4Gj6)R`33CcVm@|&-^v63zO#6+^mTzoGF&-n8Z<%
z<dCv#&WznZcHL5II$AILD=(+K@AX^W?^y=ZvX;v1XP+3a6|nfpk^Pp}%pyN;>e<ez
z|7ZcTe)o@!=GV4#$m%5KlpC?whHSehwBxN`f2r_{TX`#XU+b3XyXx>_`L0YG^*<sT
z#V^m!Prf@_cJ8Zbb?uAQ-|t@bGN5t!*3CNI*L0pP?J#@q_;r`<0n?+;XWcf5^q$rj
zxxhN`yp*P3_}`Yd{-Kv`F0Z`hS9RdzOUC^V0xrw{$}$gYR{S?}W7omVH)}WM&ncQ6
z@1TDB;@;&)q&p36@?E%DX7gq1P5)QBG&Cv&Ssg-rCsYdZFWLGfT6o+0Ie+f%aP96i
zsYv^zsbCjc@x8j~&AgV5=PKRu=U<(?VR!rBoO9D`WwS5w3T>IPpoja+_o{TAB$2%h
z2b`bkwM{A6QM_QH<W#3M#T#U`c1@k{`sME7jP`30-Yt3WB@efXTcv+|x90WLw``J)
z8{YCB$#ZXKPhzs@&tKhsY)|#{UtOH7r&F|2{6w7<!g>OfbWIj_J=FBR)>9~2Z`QtX
z<%T57e)~TMenfbg9#p(KCzN52xxks=yVuGN%sP15yx`Cjryp4|yMj$aLO!lM#hPYm
z!g%V_?;n4Co7TtPRbRMgbG>%{#MG7NxPrbFFEaYT_vd-&R3Gb5*?X&Z=SZclD&<sq
zSekzL+3P<iL&RrwluvK-oafv2&^Vkk!`3|S+KdD9Rk@2!9PzOhzHan5WSLR&#|*;?
zj>K~cCx3P1zy7;<@~&goR&=>$f7sVPt*9#J%*k+G*L{ZeHS-0u_L==&XYOKAvTm`$
z4*6=2t^auEIvFbS-1KVH-cWNV_Or`@b9d5xn*P4Ha{5TqwWF8kh#o9{zWT<8rKeXd
z?eChBdg=JX>!&qRbiOaqR`TVXQzW<J&4tCTF4tYeR|+WZD$^9b<Th1N?QVIFLy-8o
zlOC~7%2hUD{CfFq;;Y0QpVdx#I{nnA1okgEuUjwne{WhixwP|FuF2bJm#!sRuXww6
z|A(3)u9Dub3)$y434OlsJ|-*N|3&!P$9t{I)NNWDRW7WWX*z-1%X^OG^t%j~LPYLu
zI<}?#;f^i7OE%5ODfaEkIV}IaR{!Ge_+?QauHT8*vi&ZsnZuFcZgf|d<Avz|8+TOC
zCCp$wtuEP~HfjI2WoK$7k7-W2=5(-YQMz1dUgQ!9ey>@VA2*ynZv0k<yZJD8<*Bbn
z8osjZddG7nMf~+$?(YTbmiZ(dUAoO_b*qlp^$D`mj)b)|vI$n*+qO=sU*)dMn;7;G
z`GEG{w*%(IOnWP}XZg$@=N~=&zrP|;UgyX8ZgH&*GcK*o;!iF$IQ?nr%1Msz<n>QY
z7d`#y>5Hk?Plq{{y$*j}c9Ac`HgStlgY{X5OBbitd|JO>M6P{V?Hmd5ug~Vju%%~4
z70E78V71IUW947`v@P$<o~-rnw_f1f((>1${hkI3@BaID_*!J|M>T!Rd+jU{#xWyy
z!>)q{Cr_-YIVIGReO}1p*jH6&bt7y3+fnhkh2OvMtc_OgK48gOr1(wyjd^$WwRU!G
ze_g9tr^8n^_iv0oD04?ewL)~7gvzunQxzU8pK$wBL*|TGx32W7`t%2UN$&RCQ=sSn
zG^9B{Zi(Lfpfg`z^hKGTIkK(j>xMHMY*MXKZk#Xc+`Q$!boj<)uGL%-YiFP9+p=`e
zgq6$AF8qAjA)fcL+Ga7Gvx&`-J2oth)jra6Y(K|*PLEw8PbX~I#eMGFYU@Rb+Bf^>
z1yo<WvXXIQ^fq>pz3N`}_r=fV#Lp26x1ayx&*kImh2+gPIM=l7_fPn9ox`eJZISwo
zAB*f4@79mp61{OnU)T=DL-Hntf^)<6w5&9mJNxR}SGQ`HeY(J~Mfy&pi$Jo~S(9}W
zC-|ir>hGO@UF)&Z(@E}8hkFX+r#vrQ=xnty=&U-MUw4qt&pI*P%ai;MPcgF)wbN#p
zVYp$zzM#YnZ}-m9N?9fJ=BNT^&jXu>o$X62AFMOtxB8KB;C3{JYJ1YEtm%>sFQfjH
ziFnNuEqN@EXIovneB$Da`A1I&GhMn^%b+;pcUb3%N~YGZleI@mRuw<|<3Hg*N8=|h
zr8TOoJ_|f2=>6v~VE9-fzlkd~FQvGoC^az`!~%`4S&%dYXsKWcTZw9jYePPAU5vaT
zA88jpO@<6DjWA~djm(HzxpD=xa^-~RzR%$gI8+apz3&dv3txI{o@&|CgnLUY9YkC%
zx;APtZE~CZWdHN8Yzw4STq{q8@NGNruI}%)_qBiJ^y+3kd~}^jd_Gr?McUD1$AXUw
zcl_WLzrH!#zE<Vvs<{)BV$XD3>(B`HaGh{z(~jANi4&GBiNDE{p5Si8mVPYgP=Lkf
z!f)S?zPW0Bh$~1ZFO5y|<N=15ANpPrNpnPlj9fbP#L5#Ma{betwz>P${O{?-Zl|ll
zOJC;}f4lwY`pw%%d$O80Oi|wY*K3to_%REP1iP@Xe-ZIXhh}dL-tZ&k{d?KB@8x&D
zdoREHoTTJ@PVL3UF^a3cSlAS_8JV`UUt)fEP{=b$|ER~|{0%=A)nu$$TYM~{GIG~~
zJypy1+BmytO^Ewrp?yEPT;bEH{KOOk-e~bU@8hy-eQ*4HP`=2PB~f&{-g&2*Um4%)
zdW|RjSjxX6mF1Ax>*nbDCt}n}ZdA>^=PuA_@oVkuH+F*8Zr@?KJNtvC@Whs7P8V6U
zMZUyLd3|kJ=k(WVzQU{`8%%r`cL>XE+qT<9+i^<Q;i$}2Q)RFIQtUrB;dy8rTkWjl
z0^c*`oMm1w2|0A?1<&IX4F?w+JrFALoUhNEWTE7AKvarzO|7KP_OqK_y*gHW_+HTj
zkCh$m--Xv`R0`bOyOQ~uad5vvbfEFJl0`F>&Rhv!ux0iMk1~N}Pf`xl82YS!W_5Vw
z!@~8auX-JhU-V7Y;_YO!1Ov6)9!FPUo%X30CC^N}!0Gp}C*hCC9Iuv#wG%{mre1mc
zMSk|KysY=HiZ<uUmwm0<;&d=!a$B^kjP%jDa{paLUAeXts7x)A*nMQi(uMOBf^Qm`
zCExzWu>X5)3|HrS_J;EYr4};r^>;YiOc`AFT;O$6VY)43yT1SR!U>san>kEf{w6!`
zVX<GptkUq<fnCIKvfrb{(<ii-XdF2pRUsx|8h8AbcSlD}AM+=}Co^xbEwAaFd}!u3
z?EtTav$lq|DeTuhCaNrXo&HF(p)Z5!=7pNS4-|h_L^CIB)^mQ)BhGg-St4kLDx2wX
z-bXVQ{QW6A@8G}4y8r+F{P|Nm$tUKF;<YQe|E&+)?zRy#_A}WsyTCfI!&+*=H3vy?
zK9jzGB0Cr#Tn=!)wxa&8;LrBJ=eG;g3+&q_RX+2p?ppQa+<zHfHTHtS98NEVg-1LO
zE;+EHNmc3YuXSbX8C`i!F<C`bMCNV@DA4F*V|M?x#vsl2JXi9y6wZymS{sd>>o^jk
zIMS1UEIG67@ge~!jyWyYYYUfoM#kpqga<`3?VL0JtmT7?=U76H&OBhJ_~EoE!-w)<
z)79-+tp6$xOj=OlcR-Wlp-fQfpVyO3{uM8?c#+_!b8D4Ar)%`Qc8|vq=eb`0nDjU1
z{W%uBxoh{VIagr$@9y1Q{9*6p%u1!NuR5n6S8ZK&^Gbn4KTBxf`E_x&Ijdx4o-SEa
zzyJQ#Txs^j2Tg9z>D1WtH|G7GMOnr5(Xp1hcbz%EbE%uOoQBAYn=$?^8|PH5Id<^C
zg~^iQL65{Zx%#)h<euun_#yD=^~_Vp)-o)Yy3=m2<;MSy``<0w*XyId+wC@$chfG4
zHNU+s?{U%FaAmoqki)`^ca(lRK2+OUm9d3wc6(>T%pJQ=-F@lIcjV;GF1Ht();9Ng
zXaC#wa#iW(ys+k#*LGM2^tAPrcpP+%ynnace}c_~tle`(IrCV8Sw%M7<3GQ%Wm6fa
zse|J?vn~haz^D4=H%%LU7o04br8IR3hxc@)AD8X!TI%GQf7>oKYe$D>=Z=@|$CDF2
zF)qH*w&>&o|3-xqijR5hQtpV@Z?HJXA0}wO!TJIF@hb;kG5$Hz*y$Uk&mOqtjN%bZ
zOI9bJ2?u1%{)#z$Q*IBa%98h3v+|Zq*TSH`8>%uFr@!aEzT^Gd-u+d<=BwYCtug)j
zRPxh`*5lohb074`9+MQkIN>f!W{!~`k4=(?%+*_(PN^jeUU`PUYh;+L)ZDN%Npi+v
zYn~#z83kpZrnu-geEaoL&Chk?cZZ;F&Z#q%n=&U=-tR7ye0^j46VI+4HmXMP8D7?=
ztv2~wTOuNUm|gTU7OQ^u|992Pf9GtiB+e|mz{{U16m>f9@6LNRybAf}?pAi_OyRWA
zXlZd@v8GD-Q8UNiwWt0*THdnb_&vG(5|YN9TUUMBG5^qsf9GZ#nJ2$6BW99i<B=nh
z3CI5{wy_z0cRQbJ?bqttqoTB8*Q~avQ~4sVE;8Thu03^h#U=HO*-YEkAFJ(LnweCn
zvh)AzBYY31{8cEMcz?y$aH&s9Su+&QIJ{pI+@iam`_Qr`uS@#Or{^DJdh&a5YX6P-
zOq{GU4dsMvR_yxM_s7p;&ZC~9&&z%*2rc59%$_V1SRl2`_xAivSAM;m;x(nMEV^;d
zRn@;!e$^IUI-cU9b$rujTZIyv8FP$V9x5HP2zvG;;!wpCsqKL}-czCyFFH+;ICi@G
zlQ@T5tKqA<aNXTsH?{q1EJ{qy56^$){y#7_e!X=^$<~eg7Yf(hxUuhE?#;BL>kiKR
zb!&ZT^#AR#_wVLkGxv8~!6&&T+N{~I`kVQab(^G;_<Q~Y-#VZB{@U(soA36fB;@Q}
zqj=YQdXk`k^69I;KF{2{>*MKbT)X$|Wf$GBXZ5bP>stMy0^;=Ys-NAM&3cSy(Hyam
z>};=TtaTdPJ%<a`9C{AwEVW%E%-poHRJ@1JVd~SjRi)9}=l(a`@xxgnb)mIMrpKKe
z^K`eVr*k*2*|n=s@Qe51XU>lgSxt{=ysj6vA?l{b&Vt<Q*K=)dHeB1bw#>ioq1>d~
zH;fCSqqjet)NlG?_cms=hpFk?<?q^_yKprA%@u<t?qHMC4YA2`=4F>3KC@ACe(%i|
zY9JKo(H7w0@odw_>(7H6O+{E_mNhAQ_4>EwexG~IT+Dmc)c);X_3E8jc;ZZSpZqN|
zJUQ{etJE?>)d|nCa>9RF&3E)r$?>ob-F8^NeD~rtjSJs2UOB#O4pT%QuTWe6+Ct`|
z_YQj4oX$JYIIY^@-`OMThf~BtOjD2hTQ2Xjitq_pH^X)IA(52T(g(I~sQB8M*KqjH
z1D3lSsh+I91)TN^jQ+Ok`#e~?Z5MYu=f{Xs+3kznPqqXdX}r`Jpm1XO<j%QYbNnO~
zB2U|<2;B^Fe7CaH*Y$ecy7G%Beq793EdTYrs6g@EU-7r4|8IYuKJ7#Chl}CoEcE`K
zepPqy)8zj}{Dr+qE{`5R)~v0lx>u!~GtGtbbLKY(?~3`#ap#HyG^Ac{wh9xuBF5UT
zo4bJZk~;gmB;H#KpKNvTIl06ow8c1WWBrbkXN5OD-#X#%?VEEvI^zFW*Bn{@`SZMg
zAtiFhqoSAoy)}oy+A)ETeNtVl!gt{Uo+TGNCbYcx)!?((BOyUZq{U*3tl_UIPxdsp
ze%Wd@&sR;LL_b;D&r9t~@U6D|lw;zmpIs$II)o}UTBT0?iqPG#-s|CkzNRB5-}ves
z{ayJ^OFjAK=Rd|bXL(3{v+0iam3kF-cY5kmttSt(PB*9?R(5p}v7N+NXTiK}Z<+p`
zN;?LI=;UcrC(nBJNcG@DL6?7lZ8sB*N;GCp|6qQZQ$IDp+OyZ>{8F_&C!Du_>Fm-D
zuRO()60=;BxnQ?$b5F{;HGjpM8Tpta86`6^;&TFp^IY%grTrI8V90xI>IQ0&qqfa0
zNm@N_qF@O+5j2QP-_2CP5;Q6gVwx#ff`-*VOmhWG(2-jpriFqfXc!B`L}|w(&+sF+
z;}P=)$YW|WX~r8GfO;69u8EBemp*jr-^kFIm;tsU;irpkpAfzKT6+ig49Ra_ek&ed
zIcv)C$xAjFmxqZ>U<oX6adLG~wvL~FnZLmym}#ZY&SfD=Qg>gxt3Gf0{p<FxNB!kz
z#%wtH>s^!KqbX4Vf0imPE?a1-KBfC;Rkfq|?C$w>e~*aG7JK~l?9u0srmuhc?c>6z
zbuEFc>RCVEf3+`E@psQsntQDBHNW`Lr$v8{-hcK;NVV<rmXKwtm-RJIh)m!2WcQAZ
zH}%A(^AxIa$g|C{dZf|*V-`p1-XBLrmnK!+*?4M>=b~2W)v+<pA7w6|#1lSc^BWJR
zsdmxp<yLHr3wK?&dBYo>xl@(eR&Ia2MsuRqo+Y0h?M_Y#3k-?azawhje614=KI@Oh
zu5)S95nNugJ;pG%>-86%_JbKFa(s_ZpFVwL)59pY8E+f!`mn|qx*kb7+Ij4H#Q&H-
zt6%-Q(zGE)od0amQQwPyo*)0QFMC==tzUlX^ZCnmtlgEhe{Ff`?W^X6FT0F(uHLOx
z`{Rn~?M>Pzi&R^+?5_Pb%dP$PeChgI>txK19M7G4Zsly*m!+?srnRi@yd&=xUtK@>
zgZa##vlV+zt=wN&m9W;++g|<liN;Mfy0vzfrk&ilt-|}3Q%6bpt_ICRBJcZG+8&w0
z8v5}-+ixy=i=c~(YCde<bHnW4+ig`H@}=J!?#S<Y)MQa`uQ|ch#vmuBO!vtrckM8f
z@`)T%B68IN4D&hD7O2}Tag8o5yl`hJXMWc<_d8#2Nb)E<%<tQ9c`v)r{w<qaB%VJl
zzI4?3XQ%b+yN`osW$n*h-)zR8n`Un?)5`LQ*s5Yn9#dh<4F@kVh&TmJaQ1onV%nA)
z>}MEb7x8V_U483r%XZDz5+-l+BLbaRyYKD#x=er8{Z(h4&AAbG=gIYhZ4aO2{+z)h
z`XEkrOW)>xN39=THE(C_SSvGA!|G@k=b~j^r+D5xhzbrBIJVRyVr%F7Z%bF4>{0#^
z@6m10)bnt${M<+XoYJ;TGsx*=NH`tw`9Q6W^7TZ9j5UAsU3EUR_)Fb?ZX~_Ii&ySR
ztZfBX(Cdi9aayd0x;3SBHhQd5UU238*Oq=sp_Y%#wjo=7`p*0kZFoyN`fl2;!Xz~p
zPRG<man(!a&)8Hea#d1`+qU<0z{Kdd8irHy(|dN+E!wklrCjZq5BlM*o4+duzF9px
zZS(5?(Obh$e|f04PR0N0;cd6C@AhTmFFwNeV@u^clST1W^&t{G-sZ(EB4NU8VV>&_
z{ywlyN#CfCLsLez@3-%?0+~nVXYW4}DXgmEwlD2oV%O`F?`Zc<KS)1TWuk=2siu#v
zyEU`)V~(WWGKpd7-|?EaRQl}YH*))qYU=p*vOG7~`Fp?4JmVu=pUpmsTs@*?c5vY@
zsi4a|PrNj)_;G6<h)O)(vA=Gz{z28p63Y#Qr<&`zNdDJ(ocuxkztEqT?)<&F^WLwn
zof<r&m#a0hV#k%1Y!~<atezLRWBsSP)UNvN^^d*GOK}~mVOamvSsz7~%zI{jgd;X2
za@7-te?3i=VU~?&7HzE!+<D!$SJG*zl(xgh+bxrR++Cx+Kt;vrgz-V1#!oyhttl>r
zrb|y=HJT|Oa--a?gEh(K`rW@BN|L%V3!TM{PN#JGIcM4iw#@sIxkd8M%awB!?RP$U
zKX38GbA=2CXXj2`<=CE(uYUDGyU3&45$Wv9KQKSJQYGK++_2yGXx+}+HdAM>I_sS)
zb-ANYJzaLK-QA1derC1KVD^(MnzY{8IH~wr`WFAnM+J-8|E*YUrP6nO*D7JvzHJM1
zqB#^VgwEKwGw!*ivB%A0`9X@8{WI#!tLJ{z%Tv2P*C%1$q9BX+1$S3Q&r#+&XR@y~
z{e-N$yq4g(CqJh7rn!Cz2$RiP@uJm6+re!b%gTo)|CHl5q;GqivGxh)?WIjCeEz;I
zy?0kh>C3b8sjjD6cSS6a>ueETFZ}Mi+okiavsw0>oGqqgVVxi-S+v#1gGWAdN%0Q0
zP0RM5{1sXuS0R7zztx`Z!@qx>7e5+*iAieiPk!V4mJovt45@Dq_I#bl8}rN|U*}2M
z-9Bv-#RqKL+Y0Wh&$}G?<If72<7zI+lD7rr?->bh^7^E(t!(+xHp4aC4O2GjskLyQ
zGYD&#8^W;Fa*?&U(u_ODd+mj)nOCl;Q~t(&b3gO9eZM|7#LRF1>%my3_wAI>!Yk!R
z>cUF;_X<}yNSr;N!n<I5k<zd43u;frr(gQ#%cb&Sslt?x_EJ?ZmG@guHnIJ}esMqh
z>#bGXulq%3tgP4FXt#60WaGkaYxCWE?9F%YIc=n0yime*<8le<)Iv$FsNgHRcdf3q
zRuh?h<<?@Spih^t&Eqe65zlfeLcz7g#`uIG8^80}b2X1ohw2;-6{>!r#J=&i^3Gbf
zzyG<fR{lEFx#Q6U-^V(2aZgWJo_TZZ*PQ4TMUB6BHkQ`heJK=_VX;c?etF3BodKuh
zZgsizeXYHF?3mIQ{VhK%8@hd#22JF6bn%7yzS@t=l`;$sHAS3*h0k&R^|RUVK5x^b
zi;GkZ)qRY#Y%gz?QR6diUwQFP#-{mu_v|^t9U=H@k+}Aai2?}=oMwOPSJmCMBDgp4
z(CeKy7Z>v0UEnasB<T|GyIK1VUv*gW=Fy6G^K<tH9d(S(yPV;`n;)R@zko^0-F4+1
z>9boxw(RI#9`8ImzitJe_?y2~KQcal33&H7<?C0&bK7(8zNs>pd^K!N^Uj(jb%E!~
zJbi@P91g3@IdoLu<6+G%;}@qaHTv{UE@Szjn%@7uYLV~ybk+w2Y+u;*IShmsKS-84
zKartPL1;tG8gqZn`4Y=45(^(p7Go1JwsGC?`<Z3muIFleQVsk2=N}EO+OS&okSv4$
z@_VK)SL<2ny6wF@$xh{y#(rhLZiPA-&X!~@lPTxDjo1vIhW<;f{b<j~#?Za)-a^c#
znV|vl0>uDAr>`Tm%~0A~$Zag-u~NFWw~$+z(Ds(0p%GC>nYK*#UaxD(+xq->_!WVu
zSFiTS2diYPR8{*jS5eJ`zcGP{`JbI%PWVo(vc7ju-c6pW->3bt>+Z+L$7Sth-~D+0
z@Z6I}ANL>L{rLNF`TtM)_Se+?_?TY*=kI>``ah3<{J7T_bmyj%^}oNKN9Wsqf35$2
z*5j35FE8bIyhhLP;EnSQ694~w{_cO`<C~50_kT;AoANlY#v+UVc>TX$Kc!iW|NVXF
ze&IjMFTqe=fh+3AN|=no>-(PmO!rRD{n(*6m-E_L+xdnv7k?Xz{`-1b{Y%-hsGs}`
zuWnwRZS;RmhQQ_Xcg{U~U3k{_ZA-0@RQ=yiJHwVGc6F=SFZ%cN^Yiz1`+t7>`LKN9
zp?mxOzI}Z6<*hr0|MYiNxt;LUGq8Q~`1XEH#R=Qv|9-!I|KCr|^h2DV?Ug0s+xN{=
z<o&t+PQc%9x97gU@j&^>Ld^-MijEjhdt6;!b>>I;{D|Lw6r2NMEQMNr$+XWERM=Xy
z<??>UuV+{~mdgB%IWEh{^n~x*tovLMyA~gE?%A;R1K*;6v{Nq?JR~ako^L+y@?`T?
zLz}*{(SbHvS}ZS>Yqq&I{$_c~VZ2tl^-f9169dt=vT2J#Qg-+*IN_})RBITK!xD9@
zu|`WtMmFRJ6Fcjq?|dRj%N=58b^VG{otJ3z;76~+Z3{VnSBq#j*W%!dVXlg9k`up~
zUMe`&)fKbs(cIpGUmZ;>lDv6;*UU4T)nF%jI?P7)ehC|g$&XU)0%gsB>&udUew)Xq
zFh!2Tq@`55ZxY{0|KN{&B7C{72Y0wCu8S@#aeBPRZ9&8~rs;bYC&j3&ka@p$ieJ3y
zx!EjT-@_aNH7*oRXOda$Dxi6xaH>PVtwkS1UhME%sPkM#Bu`K1SuWF2>vL}Nb<dn;
zY5E@L*a%{Yy!yFs(}Dx5g`TA{9o=ovs1zvi*r+i{l!YrfMor*LXybL=Gp9vvO<L#X
zu6$-UOH+Ad!>um&!{>Libd}p_i|X624|<Vpr!6bjAD+3^RySyu-qGJJOv)3J;<jx)
z)HrwPzkoG~4>-SmwsM+UJAM7M^{yTpYp#1uJ$jy-yXz01^5nTQxK=!zd&zL!7lV!0
zwbov^xkKc=6i1KS#6EBSd7tiiEj6y;oL0@SyiD&=S}4QOPoY|=UxIYvmtH6>*__w#
zXl}1pVN}z@Ra=f}=+v$}y!K-FW|qTc+FWiAUp`L#pk}gPnCJFVRky@f-my*Tu`hx)
z#5{AlS@wmcg1ceDV?TpAv!_Y4uGPPsZR*~>{PK$xmARJJ@5VlS+4S(|mzi$9A)F5t
zBlO&k@jkQ5ex}86=+A}e3-;`P>?`5ARrfm^$5+J&#?5hueyrGe+TzUo@9(7Qqi<A9
z3FxrQVCZKn>(yrP*H&51*&wi3L}#f{vMrlqfc$KS6QNwwP8A5dos4I7$oMCAW$8S1
zorInK-VDK&_3Z^~8=97GQi)pVdpaVFf#KQA<M-b`{P;}i;D#xstO^ez6AwO$>b!Ji
z*}@eqm5=lfwi&!h;S~b8qbu3T{ABK~le=8{D|Gb_a&>GuEy2@J&k^RZfVF9s8bgZ?
ztM-A5?FGKKl^K$zGI0kiZ`FBhU~hZu?r$B}U0X_}I@k^@YIvMl%j8<3AaG^D+6(iU
zrXKJXNf)p<rWn9^S<P|6EUz7xO<1B2edyn`BjNexLrqVg)}&jhG*8$hqS4}U`^!Ov
zC+!Z3EK!FneJ}ic6y0=4eV>nbAZJ9iPNTw=nJd0;efI0*<I~xV`MERAHgQ?)Zcvq|
zb#-^-V^hpwZO!(dX}3sd(tS=AMU&<Ui$!$aa)w_ps!j2}z}jTclM=h=xjsv4ErZ<M
zg9;DKbQ={+(gi*wZ%oLHVqRLcWmddENu$D($|v`{ORC~#H67}kwS4jl7Wwj~i;6*u
zk}lYp3w(IDDWUS<y_N?(5;GQXbJ^>BG7+9Cuv$dJP(jhxI+AtnE#6>*TX#B|(o%)A
z4LQ%eES+br$}n#oH<$hS1tM0>0gDB6E_3G^m?l@9c1rN;4`aIcI$*-}uqOExojEDa
z99c}2zrIYke#gtMbMdQJon_{{DKq8%*zTGschPp*%NH9hW?ff15#RJu_Su)LrG2c2
zEy5TDENnzH7$2}bHsPDv@G`a0=>U(r314wlQM?cTS&juZEZmK|w{)ya^pjtF`{iMy
zD-5%yGqpB|t1L*>x%{!|aYo$j8`Zx)aGNryEpXsmFe%|jt5ZhE(})E}4z#S9XX5D4
z=ybqHbXoigmNnmWZU`)@6Uk@dGHY2NXQr^=^+tvL*((=k$uEmv(eh;J0hJ#w#ig0J
z&03bJadG@$N<27=&BWGT)|t1FQ6s=9!Kv_8B_q?m%@GOh6Rt3`H~bQ4DbFl^@^@ZN
zva`cMDJEv8OP_cet}RUvW~w^g*1**IK=Y!XZT{ZN*1fE12PZbqU=hpV2t6&#Fz<2Q
zTD?6^7lkW@yQX@mEofh(n6Rj_Mwn?=2k(K8<_hJ%g8F=1ZZZou&2n>ekiRJqut9M_
z|C-qctPejvrS`1Tf9@O?PDMKwFAg6Eb%^Zb91hpLHymaxWoC(7TkkOA>wBRbj+0gs
zd^}z?inOe_|7Nzp)!Do)kxq^cew(H&pDnOOS({<kM23V}H&qRsGukG`u!w22xG){g
z%xijO!n8n|lObzLlP||ntBF1u*E;9S<6}CUmB++&&DY>S!7S+oR=o@oewRPCmUEg_
z8_ap8_QFq@W7%bcgObk$8Lyg2v1~ZN7GY<6|K{}_n^^ssE~o!;-k_MG-TPPZhQOq$
z$NmYdiA-<^*feF%;j-sa_gxyyl9+vFCpM%R3pG4eTQH$Jq9JKF5A&=~7E>5<W6p)^
zrZA*k&f-*Y+$!K{V4L>MTEWBX>12k>NfH86&HGtq@EvA2>!5PLNMhdmp2;UZZ~a(Z
zr}llrv)7M{_C1p=+V@n~CVp!lV@IL#1eU8-DhI!asjZ0ZQhAZvqu}yd#mG_g2+up;
zri3SkcE`*a^5-1+A#tC<<n;uGy`4K5Jl_YhDW+;h%-d(~Xv*(-VYh^1z*%RZfDMW(
zo+)xxNh@=BdQVZ2s6FEw@YY%AQ25M{zs^Dd3j}7lH>Mi!82pl8bGhrlrWmeS@cveT
z@D(#xkk%P;hgn2&IF=nZU}TkUdZjq2p^4YgRM6AmV4J`i<&z+}Y3CmlJ}CU`!nW6U
zC#TL0fm{FbHYYe6oNeROxFO)PIgyFWjOB99jD{xOgC^2yN7fsyoYkq)vfgNCxwM@5
zS*4nXW)HQuf6Q83#JuO7+xGP8+c`55wi)?=3`o;H4AKhYu5u7s6UP=`@N37M{H;bd
z@zT>j>n?uy^VSdB`!joa&RswLv}Sex!=J0TJsGMxcz-PFFO2_c*ybSQ)1TOM^Mt{{
ztdtG2FT)fudp4vR@DyCDo!4;VtX~?_x{tgEvQi}${OV^}Q2peCNJ+#mMT1Ekk2B<?
z8*ZL5U_6`bY!E%uVRui|VRZ&K^<w4=)>8zcrZt&z^EkY}!C>-vBEy$H-U9~WY9>bf
zlP~0yCo;`)kNh05SR`V0#uHg-2g6G<Z2Ho*dwC4@wsM|4r7Y}|pU70zzNzz*z?#`7
zwlK|V7h+<*;^r=N!Oo0DWJZe@+oBw$Qq2hSK%+kM*HOj?wn(UnypA$H_(ei(K`SUu
zu5>k}+<pB+Acy0k)x?jAHw2nWl^#1U5Rl3Z-Ym%picyhGf~qYOmLA|)IH5m>W7kEI
z0;PVYtL`ig`N=E`H1g#*FYK0JG^jo1t{L#{0MqI8d5^s~bPQ_Sl0$aOcpCJ!aaM^l
zvz(j!(B$o}Yr8JTwB%Uw3U7L7(v)D~yV!ej>2gMgB_9{5e_{hA&;^q<6sPF0mT_dL
zNIL}0o6bBz!@KRGiPob?b16m#`I`(^%-k3*xMf8$ylA~?pro)sQ1x{Bj0q+41sS#o
zs<PAss~qlNVa#2!wYA~Bx7eO!7A8ARp_?5-%)%wgLM&SZRoian$1<t5xiM`KRAu`v
zki(Io?9G$#HIPf>(0|VLlVZG!q<7RWf00_fyz++B2gV+~1LhkT7vE~A{oiWYGUcaB
zn%KWZT>8$6UBMHC&xgnwn#J%OJbUBpgoVm|yvp|&+Z2-$PhJo_-geZW#y^fnOQnzZ
zE%yThm6(fv=IoIW`EV%U&zvQlOYbxCIiKS?QRf%O^Yi57ZpELLp2q%rnPu8o12hXI
zu8Cgsy(P`;-C29+(<H9m;+Xq07AW^Ip4z~m&$CAP8iVgtmZ^n(<_r<8=N|LkoVUPm
zdFA%UI*Myfv^i#*IVQ`rHL`DN+re|IlEL7(`o2v~JB~-!FyE1gaEg;;DUk7h5#`Bp
z#5V4kbb_&qpuoItp5|8{m@Ie%8NvjnD_%7}(Ay~5vfTRcg5aA>7Cftx0!5B&O*H(`
zAkD1Zk=@K!$Nj)SgrTTNQtQ|@^#i?%o@UcF%V{rL$66qvHBa&wv-9fwhO+`LjvBvt
z4t_6hcgW{ZQdq~?eUSZ*#IBS%rjB>F?6YQhwM^mHL&1zS^84<e6ZhO+7Z&PzNUuRv
zVuwQa<YP1YSX2MAWJul=bFqnO`^crx)}ftLm5}k7*MWz#P@r^SgLK=i_YLZ8Ca(4#
zeCJ{`v=SI@Xm>d7;%AI-iea0$!kxj;gI$GTHHYRbMUMFUvQ2H$5iUB8VKZ;tmu0#r
zz_g*Qf@Sf&{njkp6OQ!WG|~|kE!g(rw2PSF^aM*!#`7#X$|g7GoGdx&$@rW%cV}fs
z&xMjwwacfbvKB~~Tyjo1k~*R1K0~`A^8uqr1`G1cAJn8p|Fm*(%kZ<kEVwqAS*DH4
zL6e_n?L9_5=jMr#pUw(RsrX;F?~~gBEvN4Dl0GjC8J@MZ-E+Pl=_14AW6E$LDp`49
zgPxYt@B5ORJ!R4baTiye(`88zRrK~ZPcXaJ@VTo^&5vQ4V9|EP3pLUA&r3_Cv@qx>
z%Q^n|^-e(K&H*E%Gxw}F7UwmT9#T5-NOkj37Lzts18a^WGZ<Fd7(DsMmN7$v<A9OT
z8zI4fY5omuE87@!lt2G|J!6IE_w2(yQ)h9UFuANL8~%A718=b`V}wHtTd5$!vkE5r
z)5lE?pOEnQs_t;O!I$A$e`d%O39nja6P}+e35=Z&bM7x*Tx-uLwT*{qLxaGBH&!l%
z3O?mWSGjOp6L6X{?}bMTuSIqI;eBo#VG|{MFZOLa%-NF36JZrBDyw+p=cKk>^-Lx?
zdsz}>6%RyCU#zrDI#JVzK}W@KreKlCk7DI>yIyrviK=$qY*SgBXLhJ%iF3}X3{Rb9
zti3H^`vjNymX$oxDpF#~7dS1gBd#=$J!wH?_(kT4X3ZBCh`jv1#)fUd*=-)y)7Rw*
z+~Vo}lKpNM+k)1ZCGy_>CLMg*T(@tYea<MoW44#8d`D+m(30q)y^;<symxq(its2M
zW_wpYNuF)t%E?QYZoJLwa9YFrxKMkIa+SlxluWNr3e6XI&Rr^bqSt)k$*D^rKjfJu
zHcXCo^Gf4+Ay_$asj|SMGu%!tF^9hTad<Bb^bb0#d274dmL8R(UL7g=7k2~+Zd!P-
zBgUU2dQy<`5zmPNTbGoYyp0xKG;K*AN8-I%0^3wdMcQw+Rk_`mbVX3n&rq@D+d7R>
z7mm+2daC+@JT}grcY%A6(9#J>#=<I!TzL<@x~_^SD{h&z$VacmB6Vx{4ihiKz~`2l
zS|Pe#x`EZ!+>HXvZAFHG{HA=_w`F5|S`6N0oOq;g^odEeQ${s+kZ;)aD)(%zARiVB
zaSNxAfE7*i)A&;S53prSN_RNWJSAwer`>ns9g|j7y2?iNwBGSh`{TLa$8>jqSm2EM
zp!*!F9!!1GC3k3lg5s(tOBe1>h)~Xvsp8V@Ejx07W%Hy7%WID6uzy&xsC?pwls`tz
zbD|y}Y>ia@bJW<dD8AhH%adGx&OqHeX44y{+<&jdcyjywbNf9i#iVqCe*bFyl%M=0
zWSRA4@#1A`^|t(eYxyR;C%d8bY-zS+&5r3)TW+sU)YLhD`N)Nj-aN0a?ldm`Tjagv
zqiA>cPd&$u2e}OS@rC>2HWnrCFL{3c+p(F+_NnJ5x0R;K{#ELXI<$>l+v8qgJafdd
zPPH{Mr$1z6|GLz&vs$OR%sKP4+^Sjoj+xY6KV>DC_TcJm4fZpp@0-)rG*0ZxcKxs^
zJt<~)&b$ww>%ut$?*1+N=el>JO<AJVro7KrHoQF;JN3)o+w)fYO+PCleC1PB_-(`3
z{QSb|<j~ZZdl7bf3{IaHKi_q<^m^CzwfPFmrk~Y*cYSwR-ka_6KR<u|eEj)(d%IhS
z%zt10FRNBLek`c|_s8ezC!YWR`}*^5`~ROF-=BZX>E!+s^*?4ZuJpd-_Tj$p;(y;B
zf4=Xp#C=n{H7j$I(v?%jQ8E)ZUh)0^@pe6n$}%(GfA;p7EGBzH`RZ%_{qqc2^lG2d
zy2P09w|92*Dw==$_?6r5?-M?``p5QF7qxy*o2*f>ZS!rBV2KMayB=|bu{th};4yBV
z^n_R7gG|oXRi3jxd|xvuL#;(iFtMehd`ocKws5x<6|>LJ3H~E_DpzH_M}L;(s-oMh
zodUnktvHoCUE1l$x{hV9`)3vz#|XOa%ABy#IC3Rd!rNt;FYg>O*lO5xbhg^M;^s#u
z4qv#z@{nf%tIWb5#dG^s^hRCsX)-X5Y&pE*L6gsdV?nZ0B@Z?mDEj5U*m9QP%t5s^
zf^xh@9Mzjk9DcFIYRs*)=~!jtB<7XAjNjwH0`AmJ{uk|TWyDWyHJa;xaMBTmNR7>v
zT;FuuN@5$&Enjffu!-Aqn_c<+<d&Q%Wuk|JPI5$Qy)`p8(O{V{_fjNByIZS(zxPvt
z+JqLJsb%`IQf8AZZfef1&Az@t&}rJKJhdt(kCg%-mXxrf$_AY!o&sV4iEVGD-1Yh5
zyR~0%QwZPVb?a76Y`Y?4JU9QXN3Y`6BmQ;_zO%*S&!_plKHv7_Wt7*p?-P!!*lqUc
zOu(ZT4jvnC@|kZslWN{#>TJBl+wxe(E%CNv(ua<0%}iHx(R|0`lI+yAp5u{6LHnC+
z7cF`$-2OPtv7KO{r1Nyq_UvmJCm!+|lsas-)_b^4pt;xUwjAprm!*qjW`E&znse{P
zhR>W0nX?%0L@axG_{f65Y9@i^u$sxo4zGQjAaUY>I)kA|%)#EwS^Hdgw%%u4HbZ;Q
zT?3{$4Tb_2)fo(3Vh;A^${k-ReD(PHlCs*T^UQPN&gahKe=t`t@zJ~&MpyJ3G<!D5
zOEj@7w25Z0ZZYobUg#ApyDTrw0aUeLsEb_seAfGtxYv2L=0aft&$M)JDxUyV&P~!;
zpBRo@cqE$;mFj4}?$RaQ1_`&l%s%NmBrbhmFkU1ha>3VLKO-SjrE&Kz#Rzka10~Zo
z<tLmpFc&!ZX>*<Z^M}(EHC<JX-gDrYrOllXqJ7xcmE~yag`W5Z@isFX<;--Rc!tX|
z##fef%mOtNP8TuiI3Cvau2j&7XYdXva4fs)!eV-#ahig%fM!L$N>kYThV&+bIqysM
z)z|W;>!ph1iZO0vk@R)kZ*I+$su3XecZ2zv{D#vT*1dSyn0WI9L%X7*+U6JSrx)Y}
z9nfZe?QX1P5x!2RVdk9a%Qt&;oWAf`_JM(kjqz0WwvV7z(z=e5%x6M>_&01bvg_`$
z;933MhSAJfNHp{L6pQfxG561I*|5s2vnS#}jMfJh1-7fdRIDBuT?u!H-mBi(w}U5l
zA7dVms*OQU1^bMzDWw-wtUjH3z?{dku`>M3CvJ!C-(3MQZM){bWHxgaQ7x1-iQrC{
zc8w$4J#bPun|wiX#^K#b>pp(syfAH%TcFVNg-6U83^OjdO%(br8nv4{LG4Dj;_kj(
zhCdp%v2|-CJu=!-#cpAy(`I0EAm;Tk;RcD4Uz`_&kF&i!!eApOzixWo@mh!I$B_*)
zB-*xaXDpE6f3bkk>yb?OPUZ(6D?ZBZm=?|&vfFD7qp5>ioW!Qb2VU>U=&+pq`|H)c
zdmooxv}*60URhgfE4QZjMMd}Z>siwkdcGH~D*JK#<JG;jj1d+(4H8H8@D}h)U>91j
z^PeJH;d?d<o=1sHA=evUSNQI?h&$BG_!->5o){y)?s4XyM-^XcZ*1LXb|A5%ps2uT
zLw4ii?5){vtn6I$W0<ETGRiPBF&zG$cwKKhV;^t#!kshAk^>H$3|PKRlj(}Ox!3ml
z4dQK&mOnZg@Xx<u=bNaqM+p^m^OO#MS#m`7nn{qo<15KsOIH}3{LP<K6Is!GHjwvK
z#^=wv$vyQ3#w$5)`iKZz_!{Tv%f4{4!px&=E#EQ@whEl73T6@7(b88}s3*)(!Cc9j
zE_LBcLd^{KFh-Ar7KN61a|Axj`^xo4U{++o`32e6v^^dxg#2?d<n|NvC}>k?xU<HU
zNuf-4N6UmWCYnr~JWdZ?+&ABAX!yP*yg-p<^F0y8icS@$WMRwCKP=^LGcM3K`6i&u
zqFACo(Mf^d(s_Z)=^v^sSyN{-UD(06U~X29(lM!)fITK$iZhRg33?PLy1c%@)Nrn+
zN4lFsha=8*8-Jr9lc1J$r?<etR)ak*+xQPUO5Cy1vhH+T@K3#odtnu;W=od%6D1M-
z$xa$&YV6xDobpTBqOO>-*;%h4SA{{rSookS%WV&^yR^0DUFKM5;kTJ#+e91w``RuA
zoC|M@?&P?;?!>`)aW<<XS%l_v3p6}7;ZCqV%VgpA`2+9z3ct-9eV28b9-DMOusEya
zvRsb!fy7y+mTalbkB#~7Z%(}v;gs0;*tq+_k26Xp`n@lm3lu}ZRGK5h(NjWa&d2u0
zD|z@yu|BwQhUtdcW`>Wub=WSi6+ciY$*5u`$p4^c_0Mgs3=MK?=Q#-Ga0jwnPkym?
z@(rhRrW^;hN-&D3cQX~px-l$k)M!XIFtWFts`2@3p{cz^tH$TEAIs~u?0r1<J;;bs
zh6P7wI|$~y4q&++-IB0BNaSGUF&(FmT7ewf7&tmvZ=Ov4EwP_rQgG+n<UdRXYn>VA
zxSwIVkuRd~Wew}`tKl364g04H><K@kbmQ4Vj=THn^qX?!x*pghi-7`}<+<!;j%~FX
zPCxY~Z>!gE`eY<2Cse_v%<x=xGsCt<hQttEj`Vy7r;0i0T>^0jTOU;Q2zV4I?vPVv
z5sKm1)~><CsmF5LMPy;k^pk&L)jpTc{8Gbq`l0N1Eg_a~#;$^gzUH(a40|NxQlPja
zO}VAe_O?R7SvQWqRofgN%<2`mWjpz>xwPVx_ePnsJC&ZiH>xb1U4F-yTOj7{GuizN
zXWF}%Zse)VliihX=JJ813#8@F@*aVh&4Nw8rwBG>n>lS@?Ru~`^#j}U-qk<v1-m_)
z{Wz;G=daa$neflfJI|XRzyFih=ZRVTvAZm0-vs0f>W?=(_}5p++6D5+o%SAqJ?%XE
zp6w|#y<dI&M9u9+kpspOj7#2cda*Z!B|-WE_lkGHZ46gG%CjnbU-43534i1CBd4Af
zGVbt~RGd&5!|^V7*(a^;$!?50^d%W5luIZcS;Lwx#xh}#3D*G=dDf0NDb@$Gx&@l1
zyD9E?=hSlO*~N1<Z7W#sDREUFXT31jWLx{O+0)$^cidBIdG$1qW8HR+#yyWCSYo!=
zu{>8|t8YB>m?M$#O?#ixgxVMml^p^n9C}>8tYdwyB&Rd&3|~@<L&KZs9)Y&l{%(+e
zW=;1{w2)(-9qSqJwwQPJU&S2)U9l6p6YNVw6hZl+@9cqtPg8H1ZDu%UoyOQS{lu)T
z2Y3}X_U~wUBFX#ZK|9N`evO9DJ&_H0yS_46te?SJP{Y=vk=3}7P4I@D@wP%`7C{R;
z<9iZs!~2vh+%|KZ(|%U@`H98Zito1yXSo*4NfVS=F6i`SPTGfsoqd;WVm?jmJ;I?_
z!_gzq;^0@*a$)E1jsyISJx`ccgdJpR*cJYzXIZguf8RwNhfSMzFnlvkV?5zjWzF!U
z^`fDY0*{!5-DZw$=Q$KM^hzjRn5$&rwuB=^Il11wWM6z&LjOkAeL^hT1eMtoZ-6D-
zc)r{dY7}%%VZ7NP==@J0h9gDUjYl)9(a~d%&nJ*N75&Lh3i5_Y9Q|SvEk6@h7WgX5
z8z#+YQQaYM!lO^(R{wM71Ocx4ra4bK5(Rfn_f$05t#-RVaO(kuEgnrt*CB<`i89}9
z^0wKHjslLKj5Ozaq+QfHv}IB;=cJ_>&m@<fmTI2vrpU56DgKayye0F3AjvmI$G)_)
zUUohAa^<><#x|z4Q696MtrefC8gNWpUAv%tMvK7I2Q%hXlvs5b?oImqg|*8-_lcKB
zdRt=EGgd!l!{y)Wgf$MC2zdN_XCPWz!O7#~=;+RF$Z2|?rOUv;yK;R?*Y-`S1{_-_
zFW~iFz_HCia9Q&V!zJ$AJWk1untY1iW;+NPg(crSpL{g>x{yT6!P7nmRYdlf{A6<F
zn6aW(Fjd-|;Y({9TT+_?i~j<S#WxfKW~KaLQ1J_P{=b1?%k^_RX5BaNthEnq<ql&}
zSNO!vrIz{TX~d5k)l3R1amjgniZQGX8h<)Ne4L)Wd&$`lP$_>QHeom4p%qaDia!5m
zs1^(C5}GrgfvI$Umspa}iA6Sy0xOuqN(5K@W}aYwjQ79;eIMbC3@cxKWS(%-S*xmp
zRbl$1LS}`grpz<eiLD+@dtKKHTrOakq$2dAAyavCqin-B#T)xCgw0ysdq%BFAnO`a
zvx9Z)1vek2&^;VHPRR!km`Ji%ZCAQ6{pON5?pr5JCO12*b!K5p+_1oGvcg?|7Pf~E
z6}Ye6=FI4qyC1%i;j-(p_3|x2(;xhBntU(#f{Twsm$yOfe}#^OT_^U;$!Ym;%%kbA
zu)~6CZ#VIo+ZQ)quxI(LKFj1|j~SEs7G{U9YL9=5&${8^CcTm2XYw5elYdT!ZQi}V
zr~cuf_`#Vhj3Q?))g6@MH)j)+$rmtu++&s`6t$Og)*TI_TPG~u-Eh$OsFqQ*`ecUk
zc|+T>@-0`(OQcQ|-|;(Mad<PU@4He?-XkgjT@eL7%ePIvU^nlv5!2=1J)E;*HVFSZ
zUcBSQi<p!17MxVIU)XqL!}ffIB~`*Em8mKw0s?Ph)3?MHmV{SoseTa%cr!C2hGTug
z`&!?7*_^Q|#~xqkJ9Yb~R^Ks&{&OvMOkK6AQ_t^J&-nDJ_l2^;jq|Ds8UFD{J2P}<
zxCvb@Y?Yb$`KQ*m;;R+cm90F_JfD_gXTJW>jY$W)UaD@C(aliFd%FHn#^he>LKkb#
z^D{sGOH01xD)oF{S>83lzYHSnD@*T9>G&%r@;k`N{C2}zo3EcmO7hwmf17H2n_6Ob
zg7LQ@N8j_y4|>?%Y~Qf;cfk{hG;`m#Im?@8dmhN+><SLBXuHYdSn#B}z?$R6`ykuR
zmODzAwwVOH*;(~M;_N&7$2#s`8=3eyHPV8aj!x`q*Q)sTUoyk)_BZFFtX(%l95$}q
z%D!rCCWG<0k{D)(iIx{`3Oa1O&Z@yxpE9pJU{1#|`I*Ztk0!5OaA2C@T!n>7Z{<6;
ztlxb3yu;zdq6G(XrJ4JsH2hfJNpXCTv3(w;{PvbaMV~|A8q<&4cx~JZW!5VOr0|u@
zQx15O#?*Bve&%xyk>g3ibJIVxR8B~;uW~xSM_ZOZDCan@kjRuTed?Om9vggfQs)%;
ztkRgYJv1P|%UVwDg^l{6;su{|9IJ2hJFTCyp|72@>czwjr(V9OnBh>kWO0#bxs8w8
z=J&m~ZkIS*zV6VlmXqbPL1RMwfyN|*CYc)k&Bb3$>KNsY8lO0@ywz#STb)k_PiIt2
zdbP33>Vv^H26Z{7AJX+R6U|T5w8qyR?Bsj#fOl1z$*)#97v6KR{9m|ZuSu1xJF`E)
zJNp4o;RF4c7Tv=;m3Y+`JXN{>ia)LN-=)lJ9XAT2*rL6^crUD&(zZ^Z>+toOuWQ@a
zJ=L0*{y|ISnUK<Yr)!~1vfW$139WDluY0EdnZsOT@sFS04N|)Dn;-mNUNeEYWYv=W
zar3{eOIqXo?!syZb<V1#pEE9Bzt4SDXU_uTw$uqF^S<h@mZ+STCFK)lHr4)Htm}!b
z3&Rw@eqQ%w?M8FyYT18>o@cz1pUS!aOj6sikH?(PPZ7IUTd$va!F}?PI~J>BbT1UW
z%!^Zz%d{%^{<z}71D2hqYOg59by}=`wd?q-uWAYBWPbm-w!1msra$K8y&3X$*4eS=
z58te~{?BGkuX*yKndbXG9c+x#{di$}f~x&7cbiu_#b<cm%s+3vK6{=>U;FiY54Ne?
zd{E4_zrf6*-Rp2=n9M!yue$g2??z|%ho0H=K07u@I{R((-#@>8eSY0PKmJN9^Pk20
zm$aTcvMj9r_s{R)2Oie{`~UU#|9_u9uU~I=w&Y(^{h8D>z1R=36aLFBf3@F!zfp<2
zRk>vKxi?EYzek0ASN{|C<DzK6|CNt}uJTxRn|_ddwQ2k9HSst06f2x(J7D~zxnlb)
zdA?7MZBy$j*H3!7tyiJydbokPfnn;IrnBp0VxCS4wp0n-SUjn=VTB-TJA)+CmbEpt
zapmU|7J77h##jbOeaYFo=UpB1@h0tFy(Kd(9zWhXeaYUGUETUNkL-J8c?wuIZFsYv
z^`rlew8}!+t#@k{URp6H{bJre1FKih<nR5hVN?sAA-QYa!ClwIXS8z%24BfZ)O%<z
zc8_Jhl1q$cZ|eUmcO*Lfmz%x&96BpEEAS<Y`@ZJI8^2`>an5~PIOV4m@8_?LN7`&Y
z=P3D3s+(?adD6+f$!_Cxo*U0?npZpX_ObpJ(V6cov}WTGgYAl)zRpk6ZcmouJh5j=
zc_3eETu=q?WShAjCG~zcMCH>A{utjmYIXa<@q3%D&FP&W*(g!+r046!39l6Pg)d~6
zd1J*o??Z=*Y|+^Vf*Ju=oJ&>BR!eR>vW4T0Lh`}oGcU}xc&~fDb;&W${Hg5LSu6YH
zZM9#>d{MTZ7;)-=iHF9bX}fMbNr_gur?xA0<B@OARsQH~e9`9U+^ON&WGD1>qst!G
zNev+{&y{Rak$-qntZ4W8$@>Z-uXOB~e#C1H$JcA+h7qeieboEZ=3mku@`fYqL0Mgl
zqDRxS?R#Zal=-jjy{2gA92Zct#e=VG?h(fdp<^w62OUrRtN6yYfBwdAk9j_JoqhB9
z&7oy0%u;OZ-}7AIoFtOMeBnswsuPC&529^n@eAGOn-|~sWA)A5ySZIIcWS6Q`%aNt
zA3giT<KF1QT=wg7!mnoSFAlkUiDO@lVSGgLV)NZa)$zKgxBBeaH*58dj<}QIJ7ad`
zhMQ`yYdpVRKys(l+V=JDycM4n&2)A=8KEf`vBK@aW`#)BL+*XQ4(6ZmyP2rzbn{5x
zi^cb!m^xH!x}#n2Ih6In&dq0Jf*)*AUc2y_P3VJ5?c)3<B7xneL94Qs9b}Din6T!z
zsZS2?TFLj9W=gpRcMGx3t7$8pF!9*#<4ws7Jv-+93fk$MZFJ1VzAdAIebJty2gS>i
zqU837G+pVk5wsLFe67jUYtqH`gHg{!L%Z#5@A5#aE9V8ipPw|b@8YT5SEIK$C_7Z?
zO^9A{sPv0n*tWz4vZhRz)O&VRAL1~m&Nwz<b5?@YU(fy;o_{kHzUtg_+?klyvZ?t~
zYfWcd-Cwh2u6eU_ie}dxN_F`fVzf{1#~JM%3^N)3G@W+JV(nMj{n)2Q@rSx?{GNWk
zJE0NPaaSB=rvw=<dstcMcg1v~=a&NM;H49f{KzZXE2a7@_#;!d$Fl3IS03zlY!^#W
z+rEFke1yOI$*=nSd((3rE-BCF-93+E_c6l*zXg~2x5=*W>^bz0w<b-eYNu7zU(flC
zHbM6GZ#T2vSSlrCdgb!L{F@S`M?J61jm$Q(F>{#P(Q{+7SFhV+GtGu3zlaxa?3?&v
z73bbrH~-L_XHs_i{{Cl^y*JU!zh9$Ps`y3Kt{-Z8#uW<#a{saG9TwK<e=9hBVSQVk
z<(FfH|EJuucsD=l#)XXOcKy7XAHqKToOw`tF-Oh|4&h7lIQM3m-QD}xJzgv^rtIpn
ziR*XwiqCiNH@O&4DrRfMdP2U0h0`Q`lCt;0t;w7J*;*cw+;~bp{=aC}6d``|$**Th
z>6*-w&NPgE;eCNA@5la~SL<Tm9ohTtblLM;Vs^Qn4DU_18*%uhRtilOk&?<OpKV$5
zuk+uIN*U8ldkz;UYv(=Vp7)sl`}2LjO#E{~*2Owk?|MDI?tB;jd4svHR%E3}Ch0U^
zGhO@mMBvlO>$qDsKD%4%nX=lW=7nLwqT}xx?Q*wpZ~GXNKf6Y_Z_b+H_*L7oU1Pdl
zTr15B59d`|wX|b~ROsCM!S8na#+Dt<3~2jO^W8S&_RgniS3~M8i^9|P+Dg9B%vN7i
zdUMUUr>71U+2rn7Y@E-{>$dH}^G2tVBMSs-dqoy~O^RC|n6GqBN7b0^{RP|P_W?0S
zc1rZ-F3ip0<~<@N#Tu>mbDzKp9hO(&L7Mz=CwLu#^{gw;Ur3L>yGeRW=Q~N?`OLHS
zaQ{hJZy;;ds>Q<O$&+<!%kg)ryzl;g+O&4g{ad+D{_p#0otN?OFz1ZBp9@Ppzt8ab
znD^^`9_x+MulgQLJGyuIso7hFIh!K4U%2<g>Q_xX>qm{5FI2A0d9vimE%~skx3{jY
zowOrbKW7hLiL15C^wOjQzauU#=ZoNbxKLj?onhnaRfUtJ)n2W-bvP=mc1^~GUzdHh
z?6jV-YS!C(=?S;r#ze-S6JL39@pfsibkV~He;4sK7m3<RPf=YPl<{<5f#UIkr&8OQ
zOa7|&?aEEPk^3)!!{k%tYnx}PZ`6EU9+u2`y>jj%$@?Pgl7;hn-<AAZRCGaKgDv6y
z6y4o&T0ET(9slo`()q`9g7_nC&c?P?AASVC*s?0%%LSH5seQlAR@SU`yZG#y!1<IV
z4!Vz;W-Z<2Gf8v1#VsQdTfvK=q0{2iK6UKutGijS)Zk;l>Ur@q3zFCTJ^apUm3i@&
zCjVls>kBiVJ!D+*xbCiQBj1ADry(WDQY&8Un<MQNJ4={TUB>Qpkv5b1=9t?C85fV=
zT~xcmv+D5jyaz|O>fD=lHLs>miRJ6<hMhWU{m(7)KY8DsK1ryfA*1_(zrwohcVoma
zHrp4pZ%H%x`Q-Rzp?^-llr55;-rW~jHEH6KK-U6Ko@5I}bye0!@q%uXQfg%C+xJet
z*Q>r$f>pxK&*3DOHh<fd;EnrPB^Vw%y4qn|=?vOc2HTGnKxn12v4WuiZ0{M;HZ<f7
zXGRL9phG9Xo6m??=xn3_+rVaIqF|w5pa9ZnWUgRn01>yd<I;DnC~*%iNi0cK0Bss`
z4>nYQ*kEVJWe4^X$o+-}Al)DqND*|Uvyr*60TFkb%nA1{zU?No?{)ZwZ!CE;A6GI@
z&}R4U+*_!*ZpztP-7}eaoK%to0vIk#`uuu(brl<n!_A;=F-C2lU%dSH>-D^MtG^yS
zZSJIhB&oJq(Iohmp2eTf&Ic#AZk<%PQtb6%*7!Giar^#ii0$S(_WIAGV3nCM>sltL
zRozZ&cfMA3+Wy*mhZQ_dtlqtf3r$L#Qcvyh2zaqPW3T=+?Zc&4YFAG;>iebh{`4LH
zuWt?C_piO3xairmeUi2BZl$$fpZ2v+ZPl84vYY2l4=*#Re$y8jTDw^O=;7GtlGu&B
z*@qvVS$R%e`(O$a+kc*2PkC2{*nC-idmF>STc0xAw>{#Q%w2S>*X7F8cIzF-m=Car
zJT_tbJa<p*ZWEhDmxC9GcrW3+ZFX8*!Dws2|A!Z@tgw!o&@8#aqHp~s8PnfIZ^GVh
zUVQ!OStG#(=MJ7`Ynl6Ih9&QhL%cmkKF7GVg+4g;*mYbf`ulvcpK<1)DU+UT@h$oK
z?`+!1Y1*njUzXjmlz$ju;Mm*{8+L8Q79q1!S--^iB^{pfF9`lP`{J!|n~*K{UraxI
zCI8EY!*iofzOZ-QA^7*rlFQG<7*4EmpR-ffEat_oH>cUYHe}~rEVZ!szIl>a%#Do=
z%a5}k@k$HvN~)jN)obd~I<wL|tttCcUdhXY-&h_#__5*3tZ8i>DNbsQ!YdXD32Ut?
zS@5W*q##IBUnFOaXQ&hVN)P1;R*NQjHMp&myQtye8!2<Uaghsy#evq(40W0<2e=(J
zq_ot2xo&uSoBJ1)m6Im9oGp3fDZh7a;RH@cZJCJa3A;M$Zn<3k+?3hx|0RBZlHB4w
z9>Hl#O0QgBdD{Bo@0lx%&w0xkPd+qr#>p#B?bUMLh*W+(e0zz<%&lofw|||yy(IP0
zvBj_LT-VpdbDdorE}xz=$!Ezu!3kQ=O1jp5IS|;l@4mR+YmvsInG=NggX%K+A2q3V
z)|{Cq_%Q98#zG16vZQ|QD=s@7TK&VnSWKA0n6M~+pUBqxlXtu9d=l7tQ}UlXbHawX
zM;AR%=KJc(-R~Gy8vNG8*z>{3?v=_Gn_m_i7}z96ojxw{rIx2hq(}Y!;RYwx6635%
z%Vcznd<CbiTstBBkz&#73H(hbFDGpE;hi@3_L;+%-q&gJF&-^tC_cP&PP?@EGs_Im
z#fpra3=B!fUU=>~dcT)p^^Awt7Ea5mnqfBQbY@&b$;=~;hcohKcpcgN#hWLsuYOtF
zsz|2U$6wXXx^J&?LS2a~VzyPJI_ow6y$8J<?2L?SYQ8wHt9c{EIrESr*G^SW=0&eg
z-Ut;4In<M{^hinD_*ca=HNA?$N9R;$9y_XWCFg^L(q&8er}Ep+yB1D+FK@kd(Sn9k
zM-CNR@^Ss&!SpaTiQ!@D^>UNPm)eE&)*fJIQf4{&;z)5&C*%K>0`Z}Rx7UA*>|M&8
z^X^n`p;*$(4_24=O%{sX@nn5+;PZPm%XM__%+vI`xSOf|sGA=T`$7HKsZ2_KyB|Kc
z-@yIo(1`_^(eJ+L6|y{DkWhJK#|+1bqUZK3_+9w_53i)qq2rkhj0Zzc>@1Q~TUi$-
z70CH1K(AzyQSSViC81g~Tg#)DH!KoeyoP(i*WZtHmfxyav3s{&_DA0?UK3?@mzT!Z
zrku;XI`g}$g~Z0pH%W|36jhFgK6>4^;M|K~^V+sKWiq`Fb?=zx&X=!tvD$d!rbEq<
z#~w^`-<_`WKYo$#Q%sqL$DtYP4=&A9%>KKetaao2fC<TIhqlDtmU(|??YfxbMLTYa
z+Pba(?YgMY;p)dU;RQYH^HkMB=GLFPY!=oc_pE+mgHXU*k0%?g?|OE}7Ea$9`Chxw
zJt~G*?2v@+m!&_oTEiK8JChy5W5jjM<P!Q?U+p`!;PK%<sk%?KXUNR5*slCJ+FqF9
z3$sZ<mFH}ih$pxA=&bN(5LkHmke^FNf?dB&L1pJ&hj#&Oy!r)ZeR+9i6Awg5vReKP
z{B@Rn*57&NE508v$=q9KVDWPLtjTp70)Fv|mPDV^ig<sz`MzYBY<|Ha?f>7DPu+jE
z<;$<fvo5~4e(&_Rs5^__9=L4#mxXWoS3Qn%Rp}>x-S_zR{q<~q{rjmq{=dG&@Ou6F
zkA@Q_W<TeXJ9;L)^qsfEI+>7o0j;B7IhbRV<cgmZ`oBIHroLmDYZs5igx2Jnia$JE
z)0aBg-??yo;Y&Sd{hg;}j8~m1ysTvYKI}GI=>GMYv+bJ$rQ10gU(V+LvDLqe=U>jR
zeU@t!e(kAxxZt#Qqg0{KnH`m~Gd5p}>UFpjby?M7?#1QSb!Gad>lFDc%&pd`9~a$u
z@vQZ+hgS|*{4p$y-}slWynpUv)?3prKEE*G<AEp73Z_4`{hQIfd)te&9EO%T$8`kn
zbRXiKug&vgDx=fiYbCb6@-@qJZry6WXLe4*#$tzcyUMNY6MQcQh@NRac+zI+qDPEh
z3k_SdU9U|QIFWbqcFW~t_7#(v9X8)Ma&dj!hixU2k0ZW5bn|d@5Xs%C|8H(mtZ0yQ
z20zDk*QvHF8V|NNJF&;j|MRw7Ui(Zom&`WCV23m2Q5Grj96K%t+S<-~T3Ps9|Llw4
z)VJ$04)2JYyXB7TX4xbb$M9>FrFVoRWQ076CB*z5#!Zcm(tEu-`Tc}PFW#+Nx$lu)
zh}87s0f+oQ2sNa66$mfLOm57W$1Q7Fd||>O?s;8{v^IJynts^jM0$;`){Kw*l6yYw
zK4fph7xz+FnQy}UR8biQrbEGVm<?~NsdzA1{onL<p2N-evQ|8CI=I03;DXB+WMlkR
zOJvAA3CLMHS1Vx69kYEKvfrJYZm_-hYf*tRk8`TCr=S{}hkp9jTc<W$>5D)4;_I5H
z2{9GAi{_uRvVR)w#^<YW=IMf$SIaof#XlP{WZkHUVx6P4e<2rx;YJn1>$jJNs4dDX
zUn=SE_ET?{Rj^TAlxIh4r0J^G+9356D-t<lW)&D8d-=<U_45|CpI445Om*fin{?{r
zkFP=}E+v#5ops!t>&IckplsnN6^}Z0A9=%)kUH<Dzm`4Y{=4W*?jc9-jppf$U&1=)
zt*T(s6iej1<zjgJWW%GpQr6hjp)2aQ?45h{u};X}d;89M&d+^px}<Evn?qmTPx^G@
z$)6jSlJ53PDO*>jyo*uz@trZ|#l;27I1ZO@KJtsl=@zTVwM1o=mmS(U361k?C8Oh$
z9>)a#4*qGkc){sdwu37fYPK!UE9-8Jdu6<K_epJWz6oKbY%eEl+{XH~SmLcx@2Tit
zL25#rJJ0j)Ha2Ivx}@BlV`AXzrEmHFtZ?q#w|CE;IlIrl5{SJ}dhUd7=#G!S-neD{
zyDvRe=9hlS46lQUdaD^FoV%khzdvv1P~danGIy^+rPV?1$6?zZvh@FH`(V^^C_#0>
z=_@a%gt`c-H&m^c{4h(^$v4nqrqU9wWq016uJK<vGsvWTz0MyVRY|{{&)J{N+Y_dd
z*7jhJRkdx9?K_wHNartmTlbe6{C>{#;dxf!eu0{gw;x@Wui3a)pu33iZ`39aVYP#g
z+qq{td>5+=6PMRtcdcUY672^s3p^+3XQ;TGs>l*snZPEu_3J~WpnEU>PiA#tH^?}9
zQ0f3r!hr_fZ5u8aZ#Q6B*?*0LZJUgPtw_O(83&?{3gkQ2<}&)oOxqw(>g97zk5zM9
zLusmGj&Oo$<P`4JSqsl?Ww};zEaA4IPV$7}Mm=LzvAP2bm@KbfkdX>vU}R&kNMr56
z)_e!Ggkg<dg3WhI4tOJ?EpMP;2<sdeVQJSB-;_5*-hK&d${U#&5Y?2A?7wXxRQEpq
zp?j5ZamA|{M-wjC&ek#FC=(Y>j$8J<aa!tjqfJ*PJW=`ketVbescAXO*}K_piFB84
zc(uBj|MhP9d#7s@#b4i@JH=*unc@R|ouxrG<}Z~zMZ~@IueDomym9~Uhx7hL8{fab
z@we!&B#VYHOM#+j!TSG&$Lo|XY0T!HE9_a2n7Dq&?`GSa>0z6Se%}AOzQU|GJ$N>o
z;r!)EEa91MD(BZONwhw{&nPCPY$H>eMdKQN@ncKZOCL9DoZ{B%rndgpp{@nq0+~xI
z)Xwz^mfZgud{sX@O8VQ@RnxV#BYfxQX*#s={y+7+aog{20hd-~?c1^IR@>W!t7p|t
z2nnz6<LmkESt&Gk%T2x1Ma`4_#Jtuiay;aTU)Qto&E<_1yA~ao-NI(}W$#C|OS{&r
zcD}k};gP)wb8qvex*G;QP*%LiuXTAzc7;=z#osqa%WO3c@p4L^NZxrhxy9P%^1MHn
zzT4bWb`d?aZc`2;-*$o8^ItwbR-WANEs!O0yZl`NgKqxE%bT_>%-zH!rn|-}%5G<x
zbl=W%lT~AG|F4N$HD&5uZrL~d>(+H%kT<XGJZLm)tM#qlKW>ZuO)<AR<ag&|qQm{{
zwjBm>Cj!j2+zIP<Qaiel&%JG0-Rb=EvK38s9Ev-%ZXI68yXJiCYticaLK_=r$aNpw
zELrx(J*Y(d*7kqWGfIpqQx$dIPoLQ$!O@oIB^2<U?|f<JJTKpZlqBWrGM${~gJmZ@
zxoe}i)GJ?giO4sx=@$%p@5d}DY%p;sop#jBczt@Iaj5EoZ%+lg4o{Xo!5G{5uU&&t
z?ZW&W;nQ~~KK&)<#IoD<X<L_p@Fxf7v!~S?`2*J|7$`9Hg+1J!$sW~mK%hvez{&Pt
zP*BwbFUL6_UJKk2a@c)0jG3d1BWU7cm-hQEx(s`sPSbe5kMY*Ff7}}U|Ev6)<ZfC=
zEY8|5zv|k|W&4;o_FRw>ERemea(-1Y^Mlnknyu^CU;W^+dfgrQ?CVFJFWP>&Ygc`K
z+Fa>d>*kyCr0z5l)Zbkxp!{$m<EiwG{*ybF?q{E*62!IR>)Z?aJ*ReDNlPp`{8{C=
z-3htY3&ww9zxXfaJwJ)%2aA7${Le*;-mFsM?YiP}UgpVkFP~GX>(*&nS|04-efPYZ
z&HPtF{o&Gm&JhlWma9%nmY=}I<@M4@;P!>)P(FsM=?V$))(uIU=ihTIwiRprAG74U
z#L4$1ndKLk75}ZObGG$;9)9I##mVhc$`_htP5oiA;A;4(wEcQDiw>H{y<7A>Dd1DM
zetX(d3y}@;<!=6&=XNac<ou55wyV8AZt6chzw$w!70-1w#hMF2T|5P<l}zTWIe!j{
zTt7W^%Bdv5gGPBb*XOO=c=q6u2N~(T()!+SE>C!-Gw1ggra=2MRUfAA6byM~^SIMs
z$tP#$Kg?5wBEF_JsxsEjo4Zpy>eRMZ-O2ae+cs2Z{BGQ~;M<R=3uVoVm3)5hzQpUU
zA@$|y?vFPXBrt}zY>uCH?Sg1yi}b^;KwAm7@Gt6Rx~3+E(uphhei<%Wzadacx5-%1
zd)<lFyMcOZ_7;Ay-ppC%v8g2~qTf~}Eb7IF3l;k>9)D&rfp?$SZ%H=qdf}|f_hp6r
zR^h_Ct$#l~E6qQnyUxhaH9>F1nMVbZN{cVG$ey^b|3%bI{eWS%d4N36ZyrP5E$g^=
zg<jjpt&H7lzpM6U^+}CxmG4I$yjZ@%`}#$p1cs@L7wl`4p8derkx%W!l(W6h9zR~E
zb3&8*h1NZu?Da?3&L`M>xPFnpa^dPb%k(<W{ucFI91+grp0i;+=T>zwp=kN$Gs`#e
zIcXP#N{2pJVz|9|KHHWXzk&tXu70_rs+;@f&capN^LahxHaW&baqX4SyySdWUa>xq
zv*moT^dFJAjNT9Q3Y<(W0`~mjU<jC$8xt?Oex*}--}IMW3|Tit_HB#XwQ0ZMKN}WT
ztDQ?dmLIe(U`gxD?c8Qo_r@VeSS;X7=A))kml^*pk`J=@2Yva?eUV}M*TU#?_d>Y1
z<K{T5PTL_-e)-1Ddw%n~FKkbJvif$Kefl4{_&0Zt3agy!(U-RV-6J?_oBBNUGif#1
zTesGqYh6_+)ZzR_*LjUx{G10Sub(pXr1v(ZKR+AhxLvcIX)pKY7w><Z>u_LR#OWBM
z<~)&Y)6(VZH}|wT+nxPjAjr&A_}nXM)|6f5^Kzth*6e7yKGEMHob}R-l_r_%bk6vn
zJQ8iUFhr=DvFrb{F2$TUrB7@<_0|jTpLoMIB~eCUb+3?m&!cx6k8}0hejeewlrO^d
z)H(aGz+WrRD7;^iG@)zZo#cmYCi9u1xh3`{y*T*2mcMUig74>#n(dCW8_yPGFTX0e
zY4Mw~bq+J8{N+(=>(;TIZPQyn=}!6F{6PH<CT-1~qKA6weoemp;BV{Hn@`@H@8a6d
zaW%r_^WVp8iRJOvg`EVxnTYeB{r<pO(4$mfgWNsEC(A`|R-1iEI=XzJPUivtO%vqb
z+?T$umj2GT=!|@R$9zql->Oor9E)eQ`X9Xzb+OsyNEs)?g?-O2bN=_f%s-(#H+H+-
zqsIl@f7<^YzZsmhG;v2ugl3*%cs}phoidL<C#H3KCbU@D^(#xgbJ%{|`FPcec^el?
zdHh+`s29fj!fQu1Tio9Kj_RV_1r}UoSEq$FJUabIdU;Y+;<;Fv_E!cw7(|aL&s!;J
zaDM&a=l2$_W_ITDpZNc<^}nA5ak&N_`viRRl@%ZRh!knGtH%fY&Gu$G#rnEtq1>&9
zPk(0d9n3b`KXpRFU(X%>2gT%y*GcLL3(9LgTzc@CYJB>qHBV-<74w~C4s3pZR-r=Y
zj`8bb&$;LCdwf9tPS>648-GOE=L@kM`>Ofwj{$$i`oA3}jxxCw`<*X;4DRI>Hto>#
zo2%c%9hc`><NB-ecfh&dyC2?^*uZ(q^SkPr1#29H{nS6~R`2)`-Ri@)pQYB9wI(Z;
zOTlkHcWq+mmb0dbdG3J=udoz$^*y)wK2t?(%O#`dPHEh;Kk9scZ>eT{<wIWWchE@`
zRk|NmVrk$RBA<Ipuz`p3_=y3!Z`#n%1k16#hNc!owdB0}AMX&{_kDdqUQyW^!Ij_j
zieC7r9n{-!!@1|I;<-lMi`&dLrE~;+m+1cUJ!E57)mAA+CT2C)O<iCAtorf%@#W|H
zyGqo{j(?skP$zeMH$$C`sL(Nuo2s2(m?hu!ZC{>HUis_K_Wj*=kJ?l&cUbcKasB~k
zw<F3QiW9`&^wn4XTK;`$*s+Yw_AN$VxvpMVa>YT+wCex*$NnCY0;$i~l}e_V-;KXr
zD^szw@c56W3;xNT$8D}osj>ddklEZ}{!u8F`LC1R%kCNcKXw!gbk1iu-2COS!J^ai
z125QoUzNuH=-V#q)lQFtj(HupclsYg^`2i*FU@UMdH)J)<I|MtnkG@Y>P6<#{7f0&
z#FIYNk0n?3n@>4*U*5st{mjaRo-<E|e!XVF{_u1~`~OG}sgUi}Yx8HVJNmfrP2|bP
zPv(XdKAHLI(u!Lj>hh<tXRe4^mVf@t`56zxOvR(#uAim8Yxm5jC;vr#JatEC-_*Z9
z+y%aO95I@5&!201{C9=Pi>5Bxdv|qI`IlC{cFz~3%-*G!w>Sjt3yZyd=F73Us|=lw
z|5<zT%_>PQo06sLcgFZElkr`CcJ7?mFS}G$&OLZ}%A3Fa+IK2DQreOpJ7|?mty*ci
zZi(D1hH@`ny*CCyAGm#6cKcj=x%pj5aD>zbRj#i$*yXqxHv4Z7ZVobd+j*=_#qZdJ
zEj+wdq0?*Pb{<YS$A5_J>`%_gA~n~q@Xwm4_0^$r&IVq?iEBFxJi{OSdslt#ilAT3
z#3h@L{EE*ojAX0SYUAaTn;}{H_;*?wm%Y*DplQr^Sx!9*`uG2k#xI@H@V$MU{EwX$
zRCp_NNed`*AKvLZ?>d8+ieJmWLU)!em7*1_=cc|4FOc}@s33EcW23ND<Cf;aq^KK>
zQ^mFK&z*4OR)lo=tye*oOWUHP`P!#1l<&WEYRZfsU&F4Np4Dn#wPU&zu~gVzq)0Gh
z*Xvt-5@G4fUe8>A`Qg2-ENqk2f?xQ)v@Z5;e72EWtoQc9G~bY1@hQdKH#Z2Sg%~gN
zkF~u1{hXBYqcsK!Cp}jxyJm@1Z4FcPXSa4ssrsSz`{0rqlUHG)dv@_j?Do>ivi>uB
zg4yJjRU396@Z#CvEaW2Kuc30+QdsitjOE%ju6i|z<#~eJwkIZvgt{d;he)2}4SaiZ
z+A+bV#ez+V%M4Nqs`;k1O$+dpN$>pn@hQvI4R0O#r==e-4V$$++k2v1?oF96&YYw+
zlPK%TM_Zns+4pIurCrUD(^XvMvKKdL-B6bOXj^$Hc40<D;+bQz*PaJT1V8B2^4ogm
zM$|Nq6X*VU8Ebd>9Esp~pj?n@a?`{>uI_#8f~J2Bl~MhN))XyH%)4GXSzS0jMfs59
zR#_1?M>(I2?Z>v~95R;{J#*d9O<ee%ywiaXI<YMImy4K!<CA}%x7?C{{f6qT9b8*B
zF#mkUtn))qm+@t)F5^lL-kGWQ%l2kjxEAhhe;qYTYHerR+nI$APFO~q@ZB(Bc7meu
zH<ma1dTsK%RLtKQEsNh87yUhFadYL2xcdhjRwitCC->#*R{iEiyY~X>JGXM^MMWR-
zsPj}U&Q~l|)V32mrfIjw$>7FD3$BoEp=m`4$|v2l4ry_ov@z+t>0`-!_glfvT^2K~
zZ6i+|pLp@oMB}e7a^EtgZ8qDbAr*X%$@A%~nFj^7++I+@uN-o%=e?BF^))(iI`R88
z-~0%?eq(aoHm^lT`iuOm-v3TLEa-5i&-eVq9*L%;1wtvwclS*!$TX>*bWu{{XGxn~
ze9ZbuZC6(J++xz*!k_WmB>BA8>&POR-)2XjUkb{R{JFB^yyfp{e-@oNxbK$JMz50f
z|9`E$Q2yH|QbXeKW}_mmbE$ntRgBN*?_z9E?7y15e5tKa1^=r9KRSgSR_)Q6)hPDn
z#EqjjZm_D~shq^{V6B0$%F*oZv#vTq8;YwxG5naQ5|MKCeTBley2_uvj~5H_Ye)SO
z=H<1qeEa11vg_h^=kEEj<$vQvjR`-SZm&PU;?29MGIE3EN4c>15f1%d4%cTq{+w=Q
zH*@N@>RV}N|8FRYeBiAqw(#d`JK@id<{f2uY;dl-dfP?Q!&#4Fqu)F#Se6kHIQNd#
z^OryNxb_y@HB*dyGeK|WDn6ZaTpS?_Cj^`finTwqdt!=?_Aa~IUURDLZ_7AZ=9He?
zv-{P9t4x<9el44p@HOFv-=8yk*DnxlyKwzX;KhI~<%<-zIaI}&yx6R5=WCIEwYw$P
zNJ;SQjtAn!2Uk9AVt3Eoxc^M?3;nnM&Tvedbh7IflabKAaL#b;d%6pLI`>ZKn9td*
z##r;XNNkq-ikU~liUocJTFpB=J#R*Ys@1+Fd+)xnzGfBljG?snNWj@&Z$(dTG|g1}
z_~BI2-v^Tlvi1n~3bozaT>IzAp_5&Wa?kF}c;r&Q`+8{L*RRdzMCY>2(9E2?YqJ6W
z_FqdG5)M0>FZ=W8sMcQvF89t@?e#gUl<luhQBGFpI_2`sL3@3aYS*0X&}q90U0=s#
z9`1d%x%$ag4yB3hH;$|oJf77QYn$qDP%0_NZ1s&jS*7Lq2I5CIzrAYAI)7=f@&SGa
z?rr}>ZUyX?3%;eZR^q3UWNlgC+@rOn7umH!VuWwp@A>DwetDh6R8P|{Z+*XtvKik0
zS*F^Yy5dOk#C?*tO`EfB#jMagk@LCdae~3-MH&^$O;WyU3Me|UGfrd(nEIK4ZQp7J
zxy#Q4emL&27E^e8Gwb@x(oYH7Pqi8@nB2|b<lw^)x_e{vrf=JORioA?9zQ7|FC1%L
zFmb}hFJ4Dj?`*gsoo~zH@-F>m#>Isz7j&6EUG`Slp8rY3C4=l}mjs*UG*$hxizdml
z7=7JbAo=u^>F2J+pH{tFW1(N*bm-0L^7}iFd3#M#`~I1wSntL~9Ts1viEkgBIbXD*
za=W_!lNZz1A7B2T%Yfn5>GzMYwYxwgSws)486qF`g}tq1M7_~5&^fO#r$I-@3=NG;
ziD*;Rg!$$_HWS$UJN$=-Zqhmr&nYE$-fin<i&k*x`8MH=<HXF_(ve0kr!)T5rdufA
zENVK$&Uf<S?3w2BU-DlceQsZ}E9CUovV~K0Hs?ql?sr|fRp)X|X3w;Ze$!qbR*HKk
zHh;hUs;B3g_pB55f3&ZwMDJYSv@WfvrJh>frn)N%-_CpCd27e>2-R)db+zWdxN!Zh
zVbsBUe!te#-HH}EcW$@%^&P@>-`qaLigfE9j%x6YE-#9Go%*G?wx98+$b@rCJw;nK
z|Jx>T{Nd8V(k=f=MK?~%ocHmsZ2ZUV8_!IhvTojyjs2S<O4Pf(eNU&E9E<2Y)B8^%
zduqz2hSO6g?edTiGF<g*>#dvR4w*B1rp;$HT6CF3>28>FaaCWzYS*iId5cUp^|-V5
z?X?bn@Z5Jx>ZJYyLO;5TKRT>oIUzYcXX$p8788@i#Ya{uPhYic;q6^3_iVRIkotIm
zIrxB(<&L0EpGlP;%%@G7q^r7gSHvOSs6(a6iVABO7<k!pCYqgaWstm@zWwgBjo)})
zt!DN<zRK;w^?+U0-2bFwyXwCMEP3(km++5UN@>g1XNi9Ive0nyU&KD~eU{GWD|zoe
zEE5RW_AvQ*ChPV#=MF}*<+Vqzi|StAa=|l0MI_HAb@ycNoOewx{#5fXo1iBm?L24Z
zoJpPR;-3<PPdKl2kXvC`sjydFpZO)DaI3odvHfRFXT6eqbZVkcN$zL2<BPpBN{Xy@
zuwKk!Hmtmz<GfY#V>-9<V}^VCU0a*ZH8&lxG<nY}>KyF5_5c38)BUsbW}G&#&e-~H
z7TYPSCv5!_rDD|g1#~VxD#Gp`9mQO$AyDgh`D??quLpB2w|dQ7zBw%Nz3!$Ukr@ir
zWk<3D3)~zsay3>gTJo~<(9?B~qneyQd~ciLlok8w$c=C3wn_ibOVY5tRM=jlyfx(e
z!Fv}rWtvMdUVh{9ok?_JSG>T}RnA`wejH!9U~0(AuOR}ySKqODaP|lmFr72rbJkty
zpWD2g_s%veJy{thG;|*L`b^g7u{F!qrza}zx0c=HF%4>y`f{$}*oiBq3$mkm*p6zR
zTp|68cV1Yoc*A|ZyALc|-+Z5P;B=0Tk@7wk;h(Hl^4!*QK1J=_y>pfJuQ_35_s=X7
zes^5msNrbS)!b<Fx#e&BrZD|Gx^d;zXNitmKeg;%oLPThH)DYF|M!88oyYdNrO1`b
zE9A6qlZzL-5tN?s@jAcDRfe#SCr?YTGoAhA=^KBuzJKr6e~aDal?3`leWtFDe}0r_
z@6zs#GuUSpBy^l{ynAVyaPy;70jJ%Uq?wnSFO1bJ63)&{Xp5QtPTZjJ<r}`^$CCcP
znh+TO{oRSrM?_5gkIh+Ru>N_0YkkwQ>uq*l^8cmq=PXXz!rfhPs<-QT-}~b?tG?#1
zoS<f??D+kvWbZV$KOC1QRZUjbNe!G4In};xrq}=eL&6d5>zztI3(oem{rkM?SKa@J
zS@S0eFZEnJWvS<(`vH@LLQh4Ao?bJ-b>^e_0SlA=Jo*0h5vU8h;pp)uY(**Z!W@EK
zSn8FNMp%xTHZ(T0AflXH5+2!q+f1PD`}z-yL)M5+-1Yle9=}S)1t#qU{JU!x=-vuj
zyn4};v)`_lw;Au+<SDoyBEeE-Qt`*x{h#=MzB_wf=}vcT-A&K?-N`$@KkRpXxcs+<
z=Ux+z@0EK$f4_crcD&q?e_0Oa&hK`A{%_eX$M5eHJ(Sc7{-3%3HsytCrc;{7mb3#)
z<RgvGHCu)L`giZ_f2Q}7_HsW=4NU3Z*m3+2$DZXv{kB&5(jSzU8sG79zI1bHr?cXn
ziO(cWrBWYG;q`0VSITc7_IT#k!@jpY4(>dE&RM_1xnS=9A5%Xt=}%_NttdH{dw1$o
zU+FWx#^-HY8cX`7Cq@N|TwbaF^{KX^Y>o>1#3~`JQUL>&Cn*}yXTnqZe9y)QF^7iE
zYE<z##+7zq?!viy|5fW$$A0LWwq^OoH4#fQBAzM+rJJM{FI^kM)GzjFcHTRUf2wU)
zG`))DdN*=Dxu1AM!t2HHV%E1uO3cD*_2$<I&J%sws%^3UM@JTyh|u$>x)k|^@{SAk
zUB2MdofY-ke%h~@W?RIq?0>5*PP??K(Qoy<>+5%2+$&Y`P`B~_!)1rkL|gj)T?t*4
zli_rfS84eg>ry$7PQAi8o41^5Gdriw<-0K~H#~b+>8;8-%kW=)W;fRa9#|nA8mceR
z8QU{G>ab$*=9l)LH>#HGIpoDJcGHk$eL<J77O$2lZ_F<7Su=}nN#sA+qb1-w|MbJQ
zpiK=-bD0B_Te2s$v0T4nw$x{HY4D^&2U;Va?^)RP%V}9y*qUJ8-t|%~51PC?lC$${
zBpH6hgv|VzJ)iA&0Nc6SjlSi{{sK9@&+;BWcpj&0=eZ;Fktjzv>ykquCYs!5U#&cI
znpb!0qLV4LCc>}8F1bGAOkQLwH1QkL#0sZ0m+D6KJIw+Giyayo7d$#(A<n+@x*Ol)
zCo_J&wLd9(>H8)X1%2=HT?`ycUT=NKC4DKd{idsN*p0BJDn*e?naAgeRQP-?k*(p2
z+M!x_Rd`8&$)0B2u3Oez>Q9@zN(|12<uvc@EnT}+jwjY>@lU30GqxqnzcoRUBRb_p
zX>h~=hy8o=tM`34ugU%E)9;t}gx0N4PkNC3^5}wt;ml=fx781SH=5|<f2^8q%e#xE
zyY@&)RJ>v~bG!YoELT`>?e$aVDx8=1Tx@$Hs_!IO9VEni(6TJ}!kX8&v)5-aE!>~k
zcwfp-E;m2>#MauT@aKnD={}gJoi_RY#BF{2-;c*{?@5{$leci^mR(x6W~IDg|8(T!
z)dJ>w>8*AFlKdRE^R>RjXh^2K7D<^PuyosB_NXmKgq8?Y_;sm2|NNfmg>8n2S#1fU
zk-G7hJeG>1&mE4<{QTh(&nw}RJGpf;rknn~y)E&T>cbQs?PfdkwZ|@OIT)*9vCru9
zD!rg8&zwvh?#=lt&rDp{wr6UNT>Xr|^levtuB`aOw58^U-paS1r+U6KGvUm?&aHgu
zc{p#&w&t@>?aj2!JRKYsYN&-UmG3>KtXR>y^gnmc<7;<h4G)N2`m*z2ZQC8bz%ML;
zm*d!!Dl+%0y~}Wa8<mu<W+j;aVbY`HJZ>uCUJQr)niG!7d??wqt(V_XWup!QyG~e&
z=JkwA(~tFR+jsGmw7JlSXKUY`$TCyub~-pMbAk2YO7;su!oiE5UHYc7W`SU*?$>>F
z*6c~!wmHf9GVJ^@Q|{E1`z!+2<}JucG_h6Nur28)Z}wvzyCdgj9hsE-Y3GyE^TV$x
z)Wuz#H`^$f*^9~LS!!Xze8))-ly7`y{bSV_FDd!gVj`2_m*9QB!y6bGX1b+WVJYa1
zkf&`47W61>W^)D5Kp}YTC)L`?Mj#{6+sWn@#FhWvpz?p;`}H3J^^#n#9G+C1ZN{&n
zdx7coqV^^1QHyfbs&*`ya`xZva|LZx73Iwgt$Zr&Pxd^2{Nn4sXHR!q#CBf&SE1~(
z<MgIb7I}ZykTu(GTl73i*_xlX=<3U7Pk&o)w2GYZ{`74BgNb`PKRc`xJ8ogHO3Ewr
z;-dE%Ia30^GN0vdURN3YN%romxYJVNN-r7`r?JI{+|0LH+^E0dz3uVE6MJ{L2c_@Z
zG-30bnf<APmwtWTwmR^W{qOz-@7-Do8O!!CZnd5;_ZaJ)Fq4&6%VQS_W$s};tF>sJ
zL!5H;{>ki9f5~);h<=mVrTn&M&Z%`fUqpqvtV^wydg9so+IQZYroWO~k0hsOs*463
z{HwoU`kH-f57v059p3v@t<!^}Z)=`IN%f+uQ_Uw_v6#+2)y>qqGb`%O&7BDkIG3vn
zc@+pxe0N@8!O?Zw?_3DfuUq&kC7ns{bJ-=XULS{kp{dq~r>$}-7j~MEsBl1Bq{BWc
zWp4Gs1g<kYoz2}>xo2=0=1Tk8M5n&JV{Xi+epO33_S^%zr5DU|cWrxEvZz>(sUm6G
zVUO#%nIg{wR_^&|)qk@1`rZWNXrsw4%!ztZ)4Cb<7Tt;4Cu|uWt+DNAmT<eL+Jt-t
z#nab+>u+xAIV3x$&*RlS?wuaVbGsYX%lzsS7SZO}9@~0T`)J+X+rmdHxj7!6v+0Q}
zFqCz(+jFVZc~*mPSMDF<Q~Rchs0mql<y+dWzjWlAz_okQ7apH&FBOT=&=akW-dbib
z<<ADEuqFEq54XO$DEUHf>eGZ7KNl-}bz3Pf`6Kw^49OYl0qZx_Z8#?rad8IQcen3*
zPiv|C+W7n~-~0Q`Gxr2uyA;*X$@A@BoH$d^TyI&{3m2TscAoZbbo*<avAE*uR)42?
zzxZ~A95KAjWMbBp_JV)b&XB2J!)0RHQYBZq-sTgVtaDsv;jCFVOjp?#7yR79EF+;U
zck+K6m!jAQr!Qq^^k;KMI~+Kgp|NE3mW}_d4d4GdXEDRe)#--rvxkSL=Jn6bRB_(3
zpyH87-OexnB>FU&|10agF)!b=eU+V)*mBO6+81lr{pe!9lDcGCzt5y2AzKa3y=I?w
zeQMLo$!SgTk~R;sj;Xp$3OLE|vD2N&oTZhA&tn?foSzzJ#Ec>pCYrq2v?pvO*M<}x
z6&u}{x=E+6r5dbT&T~xZX<(SBW1!!u1HF9<&#h?Nbk3F0rBC6uDYwsQ+hvk$A2f6(
zrL=94^S=D&qA=GIx1c$?y0JGS&IUDZ;bl9$JvO4CW?SaLSdZx1tjxNJ4IIbzp3HPq
zW170rMSI$(FPk49HoGFUpwVf+XBSVB2&?<7X~8EpJiXC1BUg9Z0|)CXJen0#=DKLt
zF*m;8X@5M)%tQ6?BB_--O)svsxsr8KYYx-@g-idnC$Od8$d8zHZ?kdmb=fmbuQcv1
z4Zl+_Yxu*%dSalR^vcgw*Ir*)Iq|yeao2kWrx$P8`~HSn|5H!FninrwRGwz|n?Km9
z@vU#wR;LdgEanS#e2w4{sJ^SA^Vee09e1fm%d3|z=zRHMuG1q=L+KEokGZd0l;13z
z&DVTD{U_hk-bpciZLG3wb(iL>N}A3ZW_9E~BU>VO-;$y>bqD(ZZw~2oa*1#HzBC*x
zDTp;a7jx^-i`}xje5UT5y@~N+#%#9>dLKWomav-ZaNt&Yi^=A1L0i>%GmLD1D2JG&
z<fd0yZY%b9zP#k$mFsi&^UCGU%XGY(y!u6KY?^YAmfopdpWkv^+Wdg;^8ats#J=oE
z*O5?@pUMC2lgq<%s~)P`&i*f%;`(F~-^sLs7Yv*GW=@*Qe}2KCrPFNpg{Lf&)mvPC
zqu97SCX;oF`Q*~g&m^P{-Z$ATdh3cR-}aX2`))nd{kFe9ljDWQ{(h6A_m5lj9^!cR
z;r9<sk3$uE1(|;AFW(tFx&M7tY2xD8yn{bx{S%)1*W`|01#9@fO^cOlRXk?P|37mq
zP;Qx$a_&D9xj^sZI`=HE98P39eq-ss9rkUqFN5#5MxQ(DVOLh_dsjBzd*R_yu}2%v
zH$ItZdwJ!wX}gxbe*YzNh8AOun%(;NL~rI^pDDWc3>*3P-C*1P;qar0bLZttEaPcy
zefmasdVk%-gu_#WCNR${QQp;mN259+X!ZLa^BcK0z6jJYT=Z?jj9pS5bN583y#5mY
z^UC@YpX4v?|KGmx>Wsf@d-kX4H16K-?|4S;XDpxY{#9~JYV`{~WUr_==D5MwDr4Cd
zo?nmF>MwIOHmv5J>>hY%%8RI@!sm<_DxOZZc%;&Ii04#y_4Vq6)7Lm&=}+Bz>R0ZJ
zru9E<{+S<SKH8A5*6xA6Sl6Yukw5Qqhcs4c%&FX#XZZKrr0ttG2<&!s;NQnP^Uv!<
z#Xirau{&<7t>ep_))6bwnKV^2aijM}p=OI?U+Q-6|LNbr$WXoWB{Q~Ko&1q7n$+r8
zM!$^B%uR^s)x8P#?U&ifyZ8J070LaL6ICbvI;CqZEp4!2y3c(c`D1f8+WKuj{-NUW
z{`u}+p-Wd~rGFP;Ie6g4(JR@Vi%z(II?2oTe_!pLy*0J3+xq>jr%&#@$v^L=%X>Di
z9Hys@&IU3YztnwCOlSZ3{rh!m^F0T@oo_Z({O}>UpzKF(#qV=`{}1@{A3itPxUR!a
z`n<`UkFq{|k{*Znr2MSU-<ZujA){ywhu@PW9L0eu(&BrS=IvEDn0!_!F*(=u!8(S6
z0g((5(MkE{Dv!NhPJH3xvGlvzro`CEJ^r2(GlCRdH?7~@wNT>Ayn~vPWWJ@la;=<u
z<ZO{)&u^|tt5P=|n-q2Knn1Wp%GSvz4g7jL7AG(FFfem<?f4pZV#d^Nrp`EB@$5-!
zcXwTlZ8fc)xJNPk`T^sQ>>Sx@CzP5_EK*pwLyl8&_tp8c&VMaG{XX;izoYM_AAa{#
zd%k1$;r3XAg18+`_6?PXoF-_oS@gHao$K{dSYWDmxxnJxx9#!o`}yVN`pWOi%k7Vm
zwR^wEb0N=lj>fZxA6~!v@57JtzxDk;UEXTS!Ckj0roQU$+jlkleyi>O`*uUI@?PDJ
zEXONz-TyEjOlPl4_7@VD6gwc+BJ<^+>-!DgWaJ*VT}(SNORVpG{`-6L-{t3BbMM>A
zI7{)VTw=+^h#O9lE=GD!IW5ngm~$k>aeV>j%<{$%&E>7K6Bsr7`LeSc*ZN&osnl9g
zWX|&EMdwjfw<(eiZX2c=$xJ!a6tGnN)PzaFM~>}UHp8b$CAh|x_qke-O6aV`2A0oR
zgS0o_Z=F=M#bJZhk$*Znq?Eq?TM*%1KkIzQqNR&GICoCXU$RDg>67T6M(nOZeO(Lo
zTHLW+^e1bz!%wv-Wd}I*Ud?h*OAl+wKJ0m^YLb%W71KxT4E=r!TRZO-X*1*;5Be&k
zuON7>s>Qc6%RGH@_Z-=t?4xrm<9@ic?0KglH}g~16>iZl9Mkm}EOeu7rx)sVy%JKI
zy5OGCLYE&(O~RhVmO`1`CRuaK<mdhTc4qs3rTccd-{wBAKL2~$#E8n0dGGD2w{#wR
zdo;6=@!du)%jD_PA3tjSS@V7U?yp;BaByr-5tyg0Yos*SYU7HzCR+UMvC&IzPu-(g
znaCD&Zql(sx2|lik7|}Q?Dq+oE51l^mE7bbN40ML%SfBFRm+FTRajA6>~fvOpBr!Q
zD+nAu`}pVU!!PTMH|_q}$yKu9@QPbn$_LZk6P^5wjf&+PJx*syOso`N#dA;h%>wR+
zevN{!B9b@T#3nn7wZ6Y|K=R4vN0TyC+y03hSy`ss-8frh!@^UVe_FKM%Yz=WA4%Lc
zIs8bryb}B2qnb%us|8!S+>aU*1zTte`8IaE77UrH-5neG^QJOuQ~&SHHYvidLIp0(
zQ}@v1W_Zf9SJ~r=nupw^!(r^*tJ4%Ve4X{=HP?<-H$9I>S*-Prn~l1TXTDYnT>pq?
z!h+cxzu3?7F?N+{DP2)zI?3uCnzoqRnPsz*sc_3J{u8>3m3L;bCog4OvupN;Su4~R
zI<1-IIFtS4lr0;j>@>sggii=+HdS0;@ly7~qk_Ojt=gxFPcEgh+{{Q*GU|KakaJtA
zI8m7It`ehU@yenFr~Z3;9N2u)w8+y;UvY=a$*zz|c@rmYvzk4B=btlA|8wir-+E*1
zKmGl;+`}6`y|B5v?{kK5zjyKc4>mlD+}6H0{q)G~@5OxVLEjhD?yfH^ef#I0jDNYm
zfB1X8e6h(B_N?PyAsWsta%3r=<ynpsGm`SQ=q$?Lc4ALA)0W_f8;<kVqzK%}Ro!5*
zr`LX`{>o=vYYLB@4GvD+cH|m=k^YCJKU8Nl6>zP+GIzbu?X7A-A@fQ(`uwlhb1&JT
z{F^mMd-vuyoZ-FPEP9_0$zL%$oiIPvEm!-b+DAW@ozIKZ?{z9Hb-m@t@-yt#z7WIt
zP5Db>b3{M?Qd4N->$;;^-n1*AZe`ZTwbvwhW*ymcrAljW$@Hl8>W!y18b%h|F}Fyc
zl*`;x+1PNxZ|wual+8>VcX7W>uiew3z$p?Po1Wxa6J-1;Nb{wT67TkVLVxE!EiGYe
zJhf@xS;5o?tS-A&F!kn0FW9)=cVoJjUGS&+_DS=v?LPPU?DE*#0c-YHo;RPr_vVpD
zk2IY2`)#vxH2(Bcecl44-#HE*lUJAoY8#xC2zJu1eU>>_SA1^ii&OE8@6Ut;H)n0Q
z!<@27|MI-c$4<RWUnXtzvCJlW+2v<nyq5(U6|DGQUw=RAugz~uS@U}-)iLdBYOXwf
zWbjX&UH9!gebyA|&1WxWzkjmeA#c#H${)fzqglHa)_F;+I~drZ_@|CrX%C~Ip2Y4c
zkA2^4YrJ{y*YfaL{87gr8f|}lSn0@$^PQ~Q|5yF__u<FWOy@k4l*$b(TXZH~PtV=Y
zdN<X@&$#K`)Y{xRDNXkho6qdN5VQ4pY1u1j#Rbc!y}4~s&>j1J_mj#kwf&7k7dI$d
zE!<ua?eR&dO2*{6k~N3gvs3&jo<}n!7p<N2Wsjquans4?6Vhiks8-c@KUf$(Ib-*?
z(lxWBW@a|%e^M#D{O;xMoA&S0S{_zPsxgZ_Pgv5+zUBPmyrP5{gPnJH)~qX-;?T&b
zA3yQvSAO|zldKPHUm?BZy8ey_<~j~;5gFR+7cXgvR$R`<xLe?rmCaM>^+$B>_cFfy
zz2aw?;u-A&i!%=AB>q~LE>kY7)IVLK?WEH*cApvNGwvV1`{d}3q%TEVHtaesv7>ay
ziOd}-Gr#9a>fLI|KEsxrRQOW!+JwF&8D8hJK9X+SMSA`s8S`aNN*NWdkespqwV>>2
zjv$`$IXVhzcR9bVejM?;vZUb7-d%^zE13#$8+Dx03d)n!+%qvDYL!rLxAWVoj7dV9
zR4&`Dmgz1%rCzC~=9+Wm--NjvPuyA~&!ME)*80KundT*?#uyPX#+APWHyvC0Z@0st
zo%eDY9X>A%?@wSlaoIXJf?1j4dS1NC%CPp$YI{2ZdaJyj?ec8NdLg2^c*)F3+kQXT
zqtwB2T~csUu*#yjm9Cq<xw;um=Hs+*T;h?}p6sD=SM{$)sqpGULM#_gE%92luHl!U
zqg|czrs%nTj@G&D3Mrnmzs=aed%>u3R+Qk4!i}Pe7bCN@7vC(7F?zOrce}oL==Ce-
zRjrEl?=)XKF}VH8xkDL?J%wz_<es!zeB0~!{a58tkIs$ezW0Okr6z9N+#`1Eobf!v
zuggw$xB0}GalfwqQy9#Ce+|zg@7S*Ef+>40Fr5(Qcx>HyDMEQUpX0{{s~)w06sPJ9
zVp$wLT%WFG-gkex@NM{l=LYlYCpW&_EvIPh#xkq>>9w;=Rn?8l=AX;Bf8*ku8Dc$l
zX3VRj|11eKyeH{*uPEYK;N0$n*8dk)7|j#(Q}uKxI(Mt3MM=46mf)1->(A?XzEn-P
z7kok>u6?g)<*q9MLA9dm&b{;M)>d57nk;w9^w#{iNey2+U-1@BeOPd3@7?`XKYsk)
z{(E)y`%`kVfAzz!PkH<A+wZ^E)f?`;+i!nOzW@Ha_xoNS+Ot3V0=T;R7yb9w-<J<h
zA75SGZf;PkTP#%c==$A%-`@Rw`R|#VQsvyxW3ko3PnK`5HVeO=VfI^kqwenYC*3#x
z%ipzn*-l@Hj(fkopY%;;e9UjLto_^;V_Va?a<jUbHl1ZrW_!5o<@)!x`5Cue=AIO`
z`_}TSx2G<6)-q@Ly}W1aN3T!m<#kkRTP(XI{bSzWy*JkI8nA85zaxKL|LC&KwF1>E
zwoNUG6aVq!Uuwx2?cD|Txr+i8%;uOfv4`#O#g$Ka9$wpX?Qmdi=Y!Wuj^fFU6`70Q
z1&Er7%*xd&{QbpE@$k&7NzMOu_zE5TY<1||XO7v^XIeBQO?u~6TjUq9y<_#}wO<w~
z@|#SH<|_Ao)qJF0dizP^y?REs4cvYgpZ?FgZ6&)=ZS<3s6KfxeXKr71-C~orutC4O
zc!$UAB&P$+hqm5&@=TKVu<FXAtMV^IPAW)kySFXz{qM<B<)`kxYG$}kG?vY4Zu|Rw
z@0UO0ZUxNW^~_hcvMj)|u)JXH>q<+vKR-SmKEfiyI3b_ozuu$&p1YNAFEUWS_0BTj
z$)qb=<{7DYPm=IGG3CGa#qEwu<N~S#=cWb*#`Ll|zLLIWcP~UrIcf!G+?(SW7az#P
zsLCar`q=;B_y_y>uicCnOlvNyy>4B@ywT?N4E<T<4`VL<QJwBBedm)>;QjN;zOm1w
zQiM-c-iu)j2yrer`!DY2oMW@LJ*%FaJ*y=6*Ui&KQ-bzAu3K1_+P&Mvb>Hzt#qHs(
zKkqF(+Bx-W@T7I#mYMT@_ISiUKb!kD#ePT2<XpWvxs1J6&v?$7dEq46`Z*50$9gB%
z$u8NNWU|A)`O7n}Q?efEGbOG(TH&=KuQXFyYDt38&Fx#4v1oct4d!0@RloSf+m|WT
zR?iNV?0t4{XNdEpU$$F!RxI*MzJ2(nT!~B1k}?~AsW0okv~T<8eP^<#9@FR2t{G{8
z=_<cC^7sq%CTRv4UMpW{tx+tQA+C2Ka%V%e3Y&b<-9^_^_uUJ5c+Ti}d_+k=)VsYw
zg>5sR6nRxS-nr5$pBudYh|_HG<UaA2dt$_bj|B%kE_GLYw5v-~jpNp}?!@aif~HIF
z@hN@o_$+7T?<cCqC%Nr9VJ|qvbaDNDp%=DWCnvl)Agcc(dSa2tqc^{1>02oNX<InU
zIPHw`kFSot{b8+65m8GfZO~q9d8NR!Wbw7IsaN<{v>mj&{y0?WL_zbfPOVK@)9x0r
z>Fv`z6RE~_@tHu{&H6K*Emz)@u3PE9b<UqNpT3?rIP+SBucd2H&U3C5yLsiRi#6wG
z966{gyKc*jB2m_DH)gW;aZJ6HWb6BS?ferDFSvfGwlVUkF8}27F)%;H(=Poa$ETA=
z!ms_G=j_itbNvyEv>55)Q%YxMYPbJTxh%8GWA0twB};$2Zq|`2+2ix(sxs5nO4X~9
z`L%ndue9*iKdf!<`7wIJ{pUw#o!T6k`YY?d`T>T^srp^m`pgzc%U($u2`4oDsqbcF
zp<rkP+V%w+EjKn$Ff<0ua|VHqLLl;_1Y_hi#jph=78d42bfLF|N9I31Az1f){RL&w
z2-`Q^?)RR3QtCdM$M8B=jo;+vw3!P%8keNm{I?5@y{a3OZSC0P&~U>&Huh_1>DTtZ
zXLnntniXxX-!n02%C)?pA0Gp>RJ|tWZ}RC3d3p9<#pFCb^Y?W-r_Vmj^0>D4v+B>Y
zw%bdu=9Wh-_k6r>*`+UU@9_O?@wT$`&->l~cl`=YRo|r=LCjg-<~P*dxn)xLquiqW
zDu>NAwRb;VUSEE~YG@xF#gUu(VEwPQFK7Ju*tINsu6}%>dT`0y7r&Epp5OfHa_d{T
zn5S;Zw8<x)IEU6-`|p1HZ@#(pT9<jN&-!tNW(57HF8vm^?Brdu?I#W7)}PtzbV}iM
z_NRy6cdw6bJaq5w$p=}=TTY(1YBD8r<H;apoe0Lff0Hs2w^?gW^?kRx{ao!I4lT#q
z`s>P*O|5N;^Cs=yR($<lrDC7Loo8MvLMDH(zre3~qi&x6^PghsPo4PR$V8lX3FgUi
z7jC{6TxrC=<*P+S`GE{8`!{}}y|eFcyQXqgv4E%F#Zj@T_2rhkj5Ak9PkH0dy!!Ej
z@b;N2n%B&=PuRu9bVBU*+=-c++-IJOJE6a7>e)$IUv8_tT)jB^->H3*B73T{y!%3*
z&%5i<$h9xz(6d?F^DW!X%;L%x$)CHba90}ZN!Nc?*%NN@_wK&7a_Q4pmhWAmT~4oe
zM3&mCGyLef8*|~i>PI`Hlj%igg)O_9JmXffbERD^n)WtC@zR<Y%iCK8EO?9p!hW2b
zv}^UU&ak!(moHC$`0&{ARb?)F*KjGdDDbOKYWOL;Ab8poqm^f_yL-7x3UeLa`>BJe
z?q?N?BF{3OcRQLmEY$ZGHO4#6SXUU-rE~1bcJrx!EK>rk*T#LSt6O)MGj^lcr0z8V
z2ZP?nn>+sL+H=6USg`evfaH?TMm9d&+oW47_8$#iG9~BOi5aJP11C)G*zw$SS!h5-
zbMCy-x~4fS&;NWVj<>LljP=!#36|b3TI*18TYk^V-}@CxjulGebFwb(&a~ftKXA?K
zx;*ZgG0sWujP1r^n||mUCVnz6zPyi>D>|-OX|jIPqac}o|F%sN4_w$S`dNE}MvKlD
z?hO|rKiMtG;XJf1=$qxPTc#WxhYsIzKl_R`CE<~`3LginLBjllHw@gS?e^}8*m|tP
zv_<erAZxCi@`@Kt+*cYLK8hZ0PWffOKw)bBw3|xRqRjh_tu<)S4!wS{L2pw4``s;i
z#U<-lul5wx<y~%RW?J0V_wQfb|K-Ke^^AY~pX)u@zf*b5mG$%Y?$PVo)e^Vx`P$dN
z;*8uTaBO(c)WUJqXL`)RY0@lreQsP@lmBhvT((+e>z5p14oeln`LyGWb$3kks9%s9
z`u%M9bk=3}a`r4J6iv-@dYroR<1Y&t{|oWGSF&o0?r)EBIw|Gn{z5s?;_|WM^Gl!q
zTP)`@mGzGDl4IL-Z@64KYqMpm`$Wx`9D9C-JbY3e(Rerc>Ib=Jl6B7&Ru%?VKXAQY
zsB5l&SN7GOIXo_QPW#{Nxt93H%{#oRF?Hf@Uu&nxhgVuPGUlb8JfQ2qQulbrxyhFc
zx<4PY=53qibMy&Ur2DqO7Yq`1qD2k6+mBbjdEK!3?XJ%zpSQMg^G``Ocy{FQ(Q~%v
zOtNlq-Dfp%ocd#LHvjX9o?8O~)TeGd$)8c4!TZE~UuNU;v%d~5Fq*i!qV>v;uui+s
zZ4ql@%wO!(=n4(y<P&q<R+k#E_3Y;dnv>J#RNh<c?A|xGLnFwZFV_9)jc~;$v(m~x
znY&Fq*m#`tcdho@*5@XC|4u&9wmb82r3efEp0<<U_FNIWC=eg5ru}2niBn5f{cLJD
zI_p-|k+mm_cF8xid^!B@mtjD7qw#Y;(cJSji_bIZ&-w6e#a-?wu7V>KihalQ8u-I^
z)k~*!vvHb4YK3hPeDb(LF}~UK$ZPB6b^;YQdEfrFVqGoz-sy7a{B$3uTj|TYyL01K
zH(uAwe|V(Awk>YEZT}sYy)r!~?>k)E(f;}21OExmvhk;wrn=AC;&@2d(^N1fN>?P*
zICq_mJJ*Y>=4+3S<eRRDdciSwvU9@nh22icjOm{O1QK+sM2<~&SM?F|)$(&Tdu(B(
zzi9b-?pE_pbq7Sw9mt;XVA+9Lix$jjd}-pK{E@pq?8}_^S1-N&0w-)c=q4ht_*~P<
zO$<McGN-Jcai+KNIBUJFsbiUl`7ynU7qdfG?_rs7YQ-M??3brAn^Yb;K3|=2KSpf+
zPgk?!btxtJS3=huyBwVJY=Y`B$D7@%$<-BITWbQN^soL2iYnDv8zrf?R-^g-;@b+l
zQvZ6-Ia+;aJJ-P{5lXh+t1dn%Wc#7;gLg*h{cmzfD<2shDY+7PKuc`L&E>gSKg>SA
zWi>K*yS|1o$=^l$&b9>yGds8pTpW~7Dm88R>hLj&)$)m^(~R}MxON@ve16ejvR=>v
z4$TcMvT|nO6JF{X@0N=_HTlMp(2r|fCxunU2%Kt=I~B6!WB!?Hj-MQx{q^IYnEm9r
zc6sZSK4<xFPWP9FRA^0|`R%Ph@0J#I?vm}>1YBQAuXmB$!)5<I|DWms1_e>SD_GhQ
z#>ls~lGKhcr1dIPW8`T8Xd}YJ#MF|AM#P)&(|vbN2=4hF{$Yiv!JVp<YmawL(sgLy
z|7P}}c|-d|o2uOHTjm|is=q&x-|VEC>d%z-i3aV8iz7oLBPUJ_EbREPyT1I#$D`*9
zE4~+W?CjsTRgq1KnKz_T$Cgj^i{VnUJNISp$sJOt|6ftqaoD@(pGC_=F5dct3m>*W
zysDr0L%i;nfsBya!dvY^l}o0y8&5F0cBA3KiNl=lWlx_FuY3~4(wWFJRrKV)dyDrT
zUy+<7W39Ms#<9HlOE#L-J{J;QuyOe&CyCFu&8OzfHF|bLdr6<*?}#(e?l*rYJ+*tb
zq06jwBin8ND~6iAij$bumbmYjq^7u`wwZIYqH2h%grkQ+DNnD6qk&7;mL-deBxb8E
z>pz-yPVl73lAC8F8x^HoT+IrPajLMcVx3bca$}vs-Jr?Zb*sHw4$W|46I$M(-Xghj
zd-LbTca`dHEI<5udHejncKQEY_l`XL@vWg$pu1ps5_{%^<|j=BD|@E=F0irQdf@o%
zhPTTf{&@D`)ya>a`OOV&e|~*;`7r-}nfO!r7PB6*T?~}&JOA-yclF;V-)i<<ZLj|O
zLI1e(91ghyR~gpHC7n+`x^BngmQ6BuBR*6$zb#Hq{NXS4y>yG<{bmMca{=K$5pL3L
zkL5ca&19|m_x7--{JVGUye6#Q-Z%S56dh{0!GAiif8pf|$NI!uKAwMgIZmci*<;4E
z!i3$&`;A`SfBtvbgb4?&3WUtu*YCZ@+No?<`PKDQ*O92b+mg~16r?M3Ii@YtUhsX5
z$NQ6~*FO3)jpIj5g{k2=iB^3Nqi;<&XFlf2Oy*ePaWXfsU{hzp>SSI6A3?p$z`{9t
zsk1V4H0qE2PuV(|>ztlukgnX7@Xk$E{g&FVg;myRUy!P<Y*lJ*nRoWI_L3DH>darS
zuI^cN*-deQuH>O*+QLmtY2N&trIVH9_#9hPp2@PDTJ-+M{4b`F6)g_G^_bLDxh=K?
zKD)tC6F9Zu@9CXy6k7g=-Sk_k`{;?4>^-}^CC%=yY=hp{d+z-{yYPAC<Ig*CwXQMF
zeO`N>F*fzl^H|5S_CqHe`%|w<#MxF_t$J6#=Wo&Om!5~tw3VH|Gu1x*X~csfM?d4B
z(@#<z8X2B%YSwW(7=BcA!qM}F=_a3^g>H<AzWsHP=cKewXE$4gY}pv)+)1o5KeHzL
zIL-=|_L!Bu*XyYF>$CBB?diWhNX7=r`<36Wvt4~sBx6NFP`uj7iLR4^W^-6BP3hKg
zi<~6ZpsLx@X%e2DJxPsCs4acEdCF=vg<PF&Gq~p|T+F(|+8;3I>XpN+{uAD`1+(V!
zc0Axbq?e{v;eCW9-*O}8Jt4!&=$6NywsG8i>bp(UXL0O3mWL5Gjs-eXjxN@J;>QrK
zI^DXdDOKEavbE!`^NWhyEq&b|7pZ$}o?NhV@tox$JMM5kn%z{Wdh-g?Mk(<n!Lf?s
z6H6FHjxc{wy6>1!ZELC4$h2kGh26RVX@<d-HyIyH)(zK-uI5llRV<rbzI@)dyY6;&
zpFa8@KK?yC`B_+v<YwQ4Rugs#>NDL;N!TyyzvNj<W9@#?{g!v_UK~E`=X^|1sBeS8
zGtGP19*fPNm?*F93I4oPZu|Rg!P+HJVIFR-9&=VS+eBV^dg^uA94(HJRaU}=YaRr@
zdb>a4xNe_;*9JA-^rBqfdG|A=;{N}8Cw+H2`_^R|#b&vgqT(SHx-4(5H3cLEebDhJ
z^xLkc$zZ!C>dB^CvvzIEc*ng^buU9qO`&_Fx=FOak+-j_3eR^Q*H=BjYdha1RKWbp
zVjlBA^S+)Aqesg-Y|hSiIIzzCWpeNRd8{d?Uf$k(AkFO8IUS3Hf9G@_ZQ5tcZFFjF
z?QdZNjhb|^KO)Z~6aHj==A6MPX3XW^o2k0HD$&E>=Zt+1PS4FVJ@&rEZv{`Sy2VPS
zTP%O<<&D-w$(lx8kX>}^hR$@gE{7ZMc_g=rEPTVtqtPqE`1iss7Q_B&fw4t`5eik4
z0}sSaY}!+CwD6F&-ZK}=qY1@kd->8jtlL9XB&$|UT(DcSar2AtGg9{HtP07NFU3v@
z8b}`Q-e&!<qOC5puPfwfh1;ejd|m1u0u^~v3LQ&t%NjYK5th*K*dDU**{&Al@1gT0
zdxigc2q+2)v;~}uDvH0F>G0&%CZ?-KN7r0ubo}*6Hsx#P^5WY{b(5l|THjJm59j*S
zbKud`PcrtaKmDote$wOzn{{ufgv1Ko<IjIQIl8y5sM_xK+Qe$-9V?W7*oGz6<X5?A
zEWYI<E4la4>Q^&@uay|3xW$~XIyOJ|?)Bx?yVu(M-sQpd@WH&crf%oNonBf?A1qaS
zVxs)Hvr)G5wwzHvlXa2a>dF8ijk|o4C(eCydh1t<O$E~De2;{#E9CI->t49@M)BpW
zx#t1}=5iz!=xJTFjkZ<u$?TXM`YSBmHDYb&oT9eJ5lSn%=Y%hI_<tzegMUv9_w5sV
z&s|)Qk*$BaVy{=Kf1KFOHwW)HEz^2><emF6t<;@=D|4OoCm8rm{(mAPd}*rdjc%de
zDZ6dm^c}8M2BwJdmKa=L<6+!7!B6R|+qbmr#rIT#+MHb1o4X&$x@9xx;+I`YDW4ax
z9nE^D$RnM(G<J%SPRfU^7anHccka5rZ3gSf4_~cM9i6kgV9CjqZxqCP=grvaIwyP8
z?|zmVl?VU(8{V5gKKJ?D^TOLPF|H-^%I(~@oILu@*QI0Dgrbk$F}MHuK6(6h`fcCv
zodKIYl&>p1S*G=+;E9Q{?~B(uujiCCRPwBGKVNFfZ4=9wnBqOJ;p?r}(H&Egb1W`Q
zxcIYj#hU;7?x#C)x@9l&v)(>o`nB}^clfTQ+t086y?}rD?%eb9qu1TB(C$+V`I`K^
zd;RPQH(%;{v54ua-*bKzsNu#{Y0BR<Gi9y8&%>*)u6?O=kY&Q89a+4bcXvBFvv79q
z>DzoK`RSyHy*(>Ws4ocCi96O2Be*U9NaACYX&#q+xPtVT-g_mbDB~Z0j%UdvUAeiZ
zmQLEY{8-#I&C5zQ8*48FF-E<MyJ}m0H`r{IXYQ9J9oIb?rz!1iDw*w`H7_M({)#XM
zHuoEc4j)~5=%3(}8*c>GX|i6@blCVsR6-?^>reU1H3r{Zx+?OtSZq>UYwjy#`5F~&
zstxa0^&yb!{<m7k3YE#<x`HQo>rN1wqUn1_^R3d|_bxjZnx5F1GqGr5{iNSc_gwYf
zo?Oph%`r(<ws2Rjp!$N+NA6*En?9XCdJ0^ptpB{@?Ys3#R_CkdD&Kljx8K&E<#|K=
ztGepC;$5{D+S_v{w`IR_3_5t3&EXQ8yp`f|$xOdDow?WFf99|$Rs5CI*T*!e<j_H@
z%h$EnM{fyf*^y9aDf-P>C)?+K{zVpTf#lHLO6^<D9sg|Yd-(PJ`?<o5`>uFpRoDuy
zXuGldmZ6c`BB>=oVqsEO1G;0`PVCIPs?ZUAm5X~hTe(|8UGjY0UEznH?q$7_7=4b*
zY>7-b$2yTpNiS!+uh$AWx1S6PTPLR;c7)-~x_u9Aa;~3!?y3`V<(YVLwtKAb%9Z7B
zUq@#DPkQyRebwxmO|xE~aO(D+eP1!&$D8}UwbovZr0PWz9Qt-RZIIlS-*v9Wae-c}
zEH~@5#c2;a@+Ln>3y|2&k+Jl>?`xm?xzjjAdouYoR}_AZ2=#r*C$MZalf~uE?*i(d
zGShB}{p9~0y6MgiUYGYjx#U-_@^EfgUF7ZiXw^>Ns}@t8iyAdO($2WL1|`3I|5@s8
zjEmR2le+DeC)lJN^w)>KuoJ!T{ut*+_mqDfXa4)9?9+KSb@9`~dsW4ZTTfm5;JDCI
zWV^K7B8w##I3GSth<k9qx<BZC*p~;Pio4baGd`St>2<K`-sgg=td_p>owBc5y{md_
z5p!gRoXD;h3S7ULcO5yYGRN6SQDuJOpQ0USmwN9OK6~=@lvx#<F7~u9<Yu~dDzYc8
zy~x4NU-9i-We>-%|2TPEe@XjX;#ECtt!}dHa7N0b-4(GiouRL6BnvtMn6h4--e(ih
zZam|rs%YBwB|P8W1$#KMepd3kT;$Z5@=A7zj;7+-%WrgcmNpBWc)|HS$#qWP9gCgm
zm*)Q7;{R2>vcs@s$&8f`b7Yq{Fs(bLdn~DL1xst!6)_QA&b5WcSHndbq@DcgS4Vu%
zd}k=$<+VhF=aEQ@%fTr|UAvFU%yVL#_pep@*`L#aR|Avs&jmedF}i-)vq%1y{K;8`
zdie)8wd85mE__&LlvQ`TyLb;%)u)FHX{7~+8}*a7|I;hiH;j3-dCT8@v5VKRN||@B
z_;%6jr3BZs{*L{6i}t6j>nN*?y<2ITF>BpokySs|sZLJ5Ao4-SCHmG5t(DtX@F}=V
zoYr#v#U2x@3)}}%XZBrC5!&S}^4#aTgUOdq?CHy9uygpGVcl5d7JvGgk4qx=%95O&
z_nZ_Lh~zzP4C0x>SzKbO@`d-*6S1?L0SR6gXD|kE8PtA|F`E7^WRZD*L~t$l-HnQC
zlERPgv^c|mF=u*C#suzzF>JjITXl9WT5$G)jq3C+*4dBb@)!1ep5!6jHly{&>^1pe
zZI<7QLP{o>OKcXfP&_j=My$>9@h3L5?FF;B<FzbwdG3FEz@vL4qig$fsoERi7uOin
zw6C7dp?6_t>d)BKY@Xga@6LqX=(|(k<@}|7E!UR_4<;4<Hpz8dUqn0>IQnb4ac$vE
zIpu$;;-~FB2Srbz(xc4Drdl3P7XNwqZ>G^yox@Xq1U5GJPc%HX#Iv8F_ju5z*7+-<
z9xZ+JhsDCqhAHdohb{j-SDqDH&$cOcn$}nO7rjmLkBbhx*JRe~|M~FBjjL8XLi~px
z>#r`AQN4FrD>N>-%<^F>*S&wcE_J5Q{&wY3`KwyP^R0h>Of>g(b5BiApYPwk)%nKq
zi(Si3FTbzwc0zdjRjUgdr^jwOv`biCE_8kQi!<d_pMw~eGvp@Cw%Gf>smt)r@{%Wi
z>&%`OCVcFBd4!4A*?m@IjT1wQ=c`iv%G0Z_Sv{?fTdOQunSajbmgk=Bdo(JxZdN_>
zTI%x2X)nuni7(tT*Ou$}x@Z3*laF)z2#M$ysh7Kb_!V?9F8!Qxk;z%>Cki{WxG!Jj
zedr$KtFC=>qi+3dwfAvex1UNX=bk@)Y@2R%JKqzXWzXI|&gxyi>+Qd9p%u@BfA7*X
zH-7FQYx8Tx?MYVhCk@KdgbZ1>{9wv!{FF0Ic>9@xT^G+K$DNQ2ew!g!wY)6hLi?qy
z#)?77Cq!A~J}-OwV6lpiEpzZAi!Tr630tSCw{-pgo+x{qF-dJg_TKEyTf5t?wdsd`
z>lL4CTfRrhn9K6$1mV(C%Z;829RIlB`vc4O92wt#Ru*UYM9xb4`sMr)rzr+KzIL)M
zMT=kToO49mfMd(|OxCXOr|;swZ{t!tD|h#LXQl`1`7<r*vrT$hR5yOMoBigh%$uzV
zJbsGuzql996<sD6FL-}iGE>~0_!F+znKE328TS@`ube&YG_xzm#>T{T9lp-h>Cr7g
z^4bD-uE<Oldf+};@ZS2>8edKb2q<#}-jiJ=P%D#@sw(wj^4{x38qP^BMUw-%F3Mj$
zCp1|@_KNgc7yh86*6$(vqg2jMooK*ZbL7;<h6U_=7ae=f<{j@oH1BhdR;ECpq2k$9
zF<xl`xku$>N={Zr{fzVMPXFd|+3McrCv3}qok%U~eJC*bxkwn(qG#Pxo-Nxr=ezzk
zSua;r2V3!FReRfoMbF$;NR04f3$M2dDRn;Ku9bEo?d6;WovWiK91Wi!>;L5Y4e_N%
z3c}YlTsASQ-WsENL@xfp*36bzy)4Tq7lcisPKqo`7phI1u%pi~YHjYj2Om2Ubi25>
zdIag+?R&MjOT5zil}cv3XyQbcFYm6HdzRF!zxTQIVMM&*o#UQO#ydN!TaM`mRL!4V
zl~5zP$naCZX~o8BXZ3`KX{*;aKlR_#_UnS!&ucf%ynAxE=+oX0(>1Mb2dt`lJNt>*
zw=9;|ao?)>!r6ockBUz`t!?>KYk9QilxBbT8cDzCk7;FDUEOoCeXcDxesiVP@m3Pg
zqG{(>Gw7?%zh|t;c6Y+8ean@NWG>&^&&0zp!&}UcD>W~rxTGjGF&D%F?SwEiHY0ap
z3VA>Y+v$EN6H~+=^=FJcQwAMIGPE=zW*DglzDZAjOGJCQ;bCW?rDByHlhraB<Q#au
z9F!J`>fRj|)~<NcQ_S;!b-Kk8olMy+{A}(|?tDHw;n~62qWt&RY<>t7h!u*~aIx^$
zahJWX3|KR7Z>4(E?mE>bqX<q_$^J_U7n@$1aJ~xFNt$-_=8oWAn?N>oC#LfuTIW<g
z?1}!nC)T!_H_c_k-q=(fZxM?F%!^vQB&P>XP%(VGl53l3MFso*w{=^&|DXB({pZ}s
z{G^qKlW+5HfBJm>wfEce8xxfyMRMZT9?GrGpH;W_?*^fs;|JXgI)CrpV0qPinexNu
zJ5(ON>xvgVDzP^F=GEWw9?!pVa>%X@-hZznqTeXoKF0Ul>rESZY^Et6PCHhxs;#w2
z{qpBUe|FsSIC!+;PmbC>vF^w3mmj}+|M;Hh8T<K`%iLA%`#R<EvQx8vTOKdX=ucKl
z=G@x&rI77+NbBm=>yvt8Uafw7Dau;!2?y)`IA^|vOwx>BuiuQA6Z_+J?B%j$3$%6w
zEu0j&_Jr!{htuDBG0L5raA-a2oM{R{LSb_w1dhfibR4qZz0Kln`=-4dyq|yG2z+v0
zzIrqF{yWcpFMRvYahk~z{;mhFEqmhywEkcC7AgObePw=UB#Z8oEyu4$PT<<6c>Y+4
z-_*FWT7%fPTa-Pu(!Vh-=u2GHThM)G`ca1M;!AX9EqCgUxcz9-%54_hv3;N49Db^?
za(is!vR=EbeK$*=#oj-Yof_TxhWX8(8f)i#tB)LYmphlcT0Q(|{rCv;ja!}SEOU;F
zt?ipKF>Tgqg-e{l1|E#-c7G_XEPs`7N%M{IvbrsC2k-cJaQhtBSTyf*^Mt#lm9fqt
z4DUDZ?Dd!tHpA0*<t;g{1EEt=5+`40TWRvf_j_UQ$^vy~@9fAKY~R~IeQPW$Qs40G
zq2M#2jyI>X^%mK_eJ(1p>SX(*D;Lwa&uo7;XIk?0sKo0N4XQ4?wAQZ;ewg}8M$~63
z5Bp<v+bOc^**Ii<!`qa;trXM=y!qeL_f(6(ksaKp*^1^)lJvF^zs+cG%utptu#vyy
z*1cU{uUy>8tJ!ym{{ZVp6(#QY8&@uVT(Ql5#wsNtmsgKJh#Y#%^)~uWy3g^+9E?A=
z#hv;#t(@`GmnjQAo=oL<x#_)spGvWX^{rJ|6Q2j)ymRr|zSa<vqe6in7zCsWg_ave
z{+m$WQgu{`^Zrxwsg*y4?7u9YGf8TG$hjcViBi{h$(<B*S8;dw!v2Yi@p$Yt<-W5S
z-_(z=)bhpdD_=CDFlMfPkHo)>KR;h6=S6oM?)s78b)vE{)2(@mzIoCUo2$QN&YTii
z*1Y<!ZQU|4=^bwsEBvCEiWB&@S{@Pc-Yl5(_hnmv{aWQ?imC~%&cTt{2K_PVyw`GP
zx+c&3xW~Nh&d#k5oU>N$H1QMPR<ZGeq+XTS(xh8%qDyKo$^<y9jmhwT&U-BKkg$B|
zy|3PZtor7E?=SL=p0U*T>1I(Tr|G$KKjzq+S>3+x&GScsUp9X`d2G)yrJ7z#yV3y5
zH^HigyF+h3WiedJVrsYMz$IxV{bj<f_ERtHZjr5!T6&YmcJ9K$so_`BD?@c>eOxP@
zWuR7cy*u>Y_b}_4J2Q_pr2nuuRJPyo8M~E~<9n}{vvqH1sBKYTk1Jz)v?+I8a=K{8
zTPcPsPkrNmu1Nf>DiybF-QN7A*|&Am_}(*~+sM0iN3Ln&a*H>IoYx&on5ZY6v-Nz*
zy)Dk~s&A-CJYNv}G==lg1*63?WR7kKO{}Rpqg)+-?f9#MndUPTmv}7a=>B%`?1s&4
z3#PSN^06yj47tw#L(y=_XWq+S&G?RHo;u*g%$aymvYGGbhbgaPG)j_Q2JhXr^wtC^
ztCM%F+!(lgH|P7S^ab>A6mAvH;8HrLb}Zcc^)g0<#cy?j7;LwPaZY0AI_z7{8WL~C
z;VM@ts3gU_kiWW|@pZ+n9etU__a~`W-t0N$-Z?Y)%-$0jv$E#?YG*TYpVPMCE!U45
z*1_AZ8qG+QeQQ5&t)%y+E2e+Sn(jxQSMMo)T79ofc%}B;SMMcxw2IF1-G2O<E8}RA
zjF^?Ayuyy`=)1c*gq6QvH{P>sQ^c8uw9>4`g*@y#Vq)2yR%HB~AkWUtld^E)f}Qz(
ze3cC>;kLCm4jp(^^KH%2$=@Dkwy)W?`~AoG>_wSp9$K%Cej$JARv_Qv2X`+U?^t%8
zUEDBW-|aU6QuB*82fA%O_3^N=;eR%cW9D;@gl+LCh`*9p@b#_w;uF{HQdge)=l=Hc
zjqCTm%{lVZZpN|=ra!h7t-QPc)(6qP_Uo!Wt>Ud~uYBrUvACpYX-3C2y9K%uQ<8+_
ztuL=EmbxWXbJuyLyuss*Z}o03YTY|EQGNN*zGY`ErY^ZQeVI^^lEIR)zdh3W_i`lz
z>wG3JEp+f~`23VHRrW<^a!pu6-sPNgJ7%2KlDzpnyElKLiXHdCZSGu`o`14pR7jG$
zmS(YIUi=luB_E!AX}$4$@6CUH^>@-#J0d6j;ELeClYLQYp?1+9eJ8P(^}O?L?>Sgi
zTdOF3KTt6Bh{Zq0St1)h8n60pzA=BU`~O4d_@{NB)2?{`gJY)kq`Ez+otx^JJA;&x
zW&Rl)Yxt{k$i8u*PXNomu7BDG816;=+yZJ^pf@r=t5ZPD4bV*-glDY`6wDzjSoGac
z_JktMU}0-;5Z}fyLEe`NZ(|r35iwOYC)_*#wuQjH-{CJ-=wwafpEzmP4W^r0G`Bg3
zvnJ*6d-8Yrs-L<wN%3UmpWkyIPS~`>!gm8B6YtB11@rFnRDMZ4ws^f@|2w5~LhBZ_
zdwh5iUGj6X`|6v&^~IHTWu_}>EuI-5`Pit_M=N61%na+xHtChie$DkgKUw3f$n*oo
zHcO3pZNxX*i*Nq^yr8#3?6qWv0hh=F!9XR(w8;j^K3i@ym6?CoA8}6a@n-(;@c8cE
zk6yj14!(ag^*U4N_Pe`k{#3C4Rxe&V>BpiS_ik)9jyR!n@8bD4%QUy$US#=m=MSz+
z&zeqVeB^Zbmpr@ZZ%CN=k+^j^SEs(dWTsoZr~7`x%kH%~!6oyw`*;6}k5<fl^mJK9
z^l$BFvBB%VonE&_J8FO3q8laKRwg{Yx9_J%XwJM_n^d*qp5HHjy6nxof{FVY_wL@B
z^6r@3tu_hE%R&4$mg;?*cV+En<K=7rZ)d+$`18k!Gi3i;N8Z^R`(ycbj{mJkj&1w;
zY@c{}RoS<nznkt{DsvUzV>Dl`{-X2lMVZar2d2CCxa9u(ufP8DpH*HHo_}7n{<iZ}
zKJA&SN+M1+r8Cdla5>zlV5gT@)6=NkLEn}<;hb#LEwpf^XN+z9vFA_E?qe+1ESR2j
zvVC%;kxn%0zIK!7cPrB-bnnajvv^I|S55(b-P|X$4kbs-dVVp+XtKJ<0#-JcWj5=&
z)-Hc#TKm?vYr|P#UH+%fwk2MEQdr5P{_^_*y-Qu1N*k_x*q!}GRQ%-P*oRR^_*2Wh
zLjo<YGCb$0beAe{WZQS}i_K9F8JpvbcBX$zIMw%VNR8E1WOp<dc>iXKq_F_w8Rs7s
z@7A%UscJA!{J_Til&3BK=E7}WN@5G2>|j?ZzrZc=C!=%k2c8$xm(Tru@xRc!2OoFk
zseSkVb5dbX%+crSk{T>=U*CM&c;lVfx5Gy~FEqQnV&arfpI>|DprEeLAND$vv^t9^
zmlO}X%$oFlfnV#fJi+^GPabtN+MyFZ@1)@yv)|V?S6EIelw~S0wmsYUBzWo^9{07~
zsp00rM~$Xsy=1-D%j$HbSdyj5b3eQE-j+ExL>@=JQ?02<3&?V^s%3YzTO74`3zL7d
z^5=>6;vyY8AKsXKimUm`!JvSOni-6@UoBhuHi?(fbyDyI*^43-7s7+0b26lj`S!Ec
z-uhd5J>oZCSi#HY_4<1%pPpK_NqA%Q?YqBpa@1!wTCQiGDS!R<JJ!vH@-?PM-yid9
z7I=OzQ{zE&r0n#Bs_pyL68FD6r};x!P?PyX_3RG+r+*DOB_}J*Xq;g%$uOMr^2;mo
z_g`H#^kgnpxM^@%gej$4Va?GSuQw<^mcD(_pXEqL-i}W*8<ucO3fUdo@<AZzw=jdE
zY;EqwBQNd?MYDE3(`Pxw#^bKqexdDV%Lo4Qsl1GKU$W;fJk6Y7Jx|c%=arLA8lSF|
zs=9kHBr*E>OC2?un&97c^hUh9l;jR;*0hzy%U1T@72C%ddwJ<K^Oe6h=^p%7z9jr*
z`N{YV8#h_!2<~WCy|86&dPQ8|y05Y|4>$|T_!}0UV@+@C&R92t<D7N&n)&`AtNs=$
zoO|_l-JKm8kGS0J_1C<2<q+>Y<9SANTc6L-x4NcrIZ~02&K!EX&ytBZg4yl#pMaM;
zs#lc6ER=h^OH6=QkZbAnJdr*YIW^m`U71r`M0GWpYcDN~2n;)yF!Q9c_){H|&I;~1
zkF`~TJGsJnULEYO=VA~!HY2e}FRzd-;KBsCQ@m{6DvH7xj(Y4&Y$uPoGwslHeJxi}
z$lqA*d*<uDk2Su%{bD)uFX;WRGV?t!=UVd}!|GpQWs=ESU0eFO;x-?7^Pwd0Vy`OC
zb=R$5c7Oeqz;;$nAbv%|LjF6&3`?cgoJn$Zdu0=6{&kv0zp!Q1!YEPRM@@}CSKfMS
z?V_~wvHXpRHrLOwid+6_ekY{AW*$du8#|+)V#TS<x0b)2`^-4`{FX{bb%y?#ioNze
zemX9{f+SyLgmjp_xmR%`v$Og>TUwO)w%g{SZ$%TcbEUoeOeG}^_bg}ky~QqEb+(iJ
zQGM0M1edS(njWrZ-7Tw`cx>_fxpE)&+Fum7x$MZws;ENF1uhcaGG+VcSk0)L_1&4-
zORsGAS>cI$s~F-!xfeg!c3`KFvD3=t`o@L2+yAbNJut`e%08L&5J!dZo9s?U9sT?c
z6hz(eTyejm@l?(nwdB(#r$2M{SUg!9KZ)!89Frc#ly66Ze+r&ZSQv6CxscO1^PAZI
z<7e!ze3+^F;O5fAs@vyMj@?YWYrntc&Dr8dl`c~REP14)_&lZ^th(@`uiTAMRZn=r
zG0VqpfwPPGHB)2S&puX{5)|$K`_5E%#V6kv!44OM88yXCC(G4+I@eUJed|EDaF6~z
zyI%$syHgGoE#&)r=?2SzgEo@q%xrq~UzH0BepunlE_}Trk7v;X(V1Ur+1wUP+ai6&
z!R@>8g$oM~^RVnrS=Sh{?ApYp5cBIDXZjyZHNV$5!#!&4eCvu7Ccdr5m;YU0m$KTc
z`IpJuh7frL_NonEE_=>USi<vlvh-7<Mvc~;%uS`oHqA*>nfYtUAJEp*mU--%SQ-*0
z$O}~oHYAJ`3{61mWkBm<4UroaMo3qZ5k9ER&_V$`C;>LcQo$J1m;tdVY=f904ZJ|x
zAQooCoY}T!nz#RB1A*i3e~Q>yb?hp;7wPxLY2t*4g{qh2G}<q;T+4|&wRnqD&3D=3
zejYc=yaV}H9R6Ydc;@`MJ{r3&Y3y<nu~qic$yy|SL}QoZcYYDqTR&d)Ev#H>cx2)+
zpZ<WuPJO34UR!Eh&3Pq!-?-ZUQZ~<N#kQA?X%eZw*)ra3dEaO@?|>N(tH0Ee0w0YA
zrA$NaBYnO(T&Fcd%-i=TEW7(yY0h8H=Ns)d@rsLAhT4C;I`f}EOmo7Kj>abLfR9^F
zoUU?qIi%xrO?3T<&MWNd)-928N9S@(k~%WUGu<;HG)QVnVwh^;+0Q-}H8Sg8S#)1{
z<r;IPn^S-FFB`6ID?R%w?eSk9L?*Y~YM#{n%<!S{%!HYrJtFw#wT8<4$+>iV$DE|p
z16`R3flou~-#;m}nWng3yijfJ^oW098;zWPPTrd7_cU(q3XRGz@5$GfoZTI$xGy@q
zbk3wbD?L}wT_tqR#dxvr+u0v@Z|1(|E1G*>&9`)?)`GqF{wzQE@Zz^xrwvB)LdrQ8
zoO=*3ZKKVU>r6uXPWtXlQu_4%)t#eX7kzeo@?3F3WlZ;@<rS;mGbjD}XQyIr^Lpl&
zZ4F6s%wAeX?-o7E+0Ab|)$EIbPVV3N4>x^ZbjQTgmNUKdUee3|f-!3r7c@?h-*7@U
z%HUr8`tA<f3EVC+tfyJyzlBu&&X}(H==5EmZToDh)C8&|gjW2s5LfNL_ueyI{{6?3
zi`NS^USQVulzXeV>1?^=7w4a~Ed0l}$Q(Ru=&M`2;HAyq8Em1}%OsWe<!&#In%U;a
zxp=~n4V~wC4A;E>*m8chP?g!j^vO5w-<p?r!`i5u_oS;(;D%W{7v%`-2ucuYm-3ph
zQdQL3Q`}PG;1kQ3Hm~JcvWERP0=DhYUsv_;--*jj>Nc~TQ`hw#))8uJtv8LlR(<=h
z(6P07Mm$%2H8+P{5`D3+_3F0DmAhWuI5B<q;U{s8?;N+d7-WCXtt|O@w7P7f`YD}L
zHF0e(S4LfUD7A7b*FOJATeoCCjDIa6{%b{Oz@LdaHG3JIR~!yV<uG_8nds*q<*IRo
zukcUp64mWHWD?%ZlG|AjB5m!p>e1a5yYy%KSnfKP`j>f2(#GReTC&bu@o#Gu7hc+W
zaqjGme=lE7v0He?d7Hb<eIaov>3LOa{&5*FoY?vG0k%?yv@ufTl7?{ULSZR_ZM4+T
zkeHrKPgr#RZ8MR&@9Qu8a@lU^JaN~?!*ZMSbc5Dp7;<YESo5zrd&6rjx5_S0gE#x%
zPiUXC_Qt_3g^MRG<<HNZf24_DSgeL8qCnn2%23dTMUmT%wL4mDjrw%?XNenLswD=n
zOb$qy@=?R%(u8G^LQ^Ks@YFIk%qU}STi(+)k>$+Cl@Ub;&ZzHyKKb-_0X3dayE%7w
zu&5khnsSKafTvF~+cTj}w-4m+o2BEiIPCsaH~(})f6w6ZXX`5dlvd5IXF1SwS>wci
zhLAwB(rh<{TPwC*)~&T&;Cw3H?fsX>jC1zaF@|2v{;TvN?r*@B75z#@T1$@1IQ#GR
zx(LOBt--PFk9P0M>6)82|Eb5nna{opyCuuXKdpVU*!a|fITPheH*O1Z@(K;{HZso*
z%oW=nrrw!l{yQjqS+w8pJ?D3-FRR^jOZ*JCQT?kPz0AGlTNwYRu}_S9>fbxJSHLB7
zMpG8|X5Ft7=G5gx-7R&E-CMhL&b+>NpM=iu&E9HMcaAGG{tioEXh=Ze)=OVfW*uL_
z#{aKvK{{*5uZK6@Pm(!iG2`Es?1F2bQt#*PKWOxC>D6DXCw#BI;Wde0y~+LOvV$SZ
z#JBkyaz0GbS^kZ^+VFGcJd-1-or`W(E!-gJ7j0m^D&DDM-EXxW?#<$fo^EI5zisL-
zyK1s~dHO}4)vNN@tHZ*V8|Eskdb4ur`-TJ+`#BpJ=U>0E{?`7wi()BD&t&aZx!$jR
z_eSswxBur?&5L&RHNREU<jcJ6Me^a3n-|u{RnFyaDPOQXnaib0TEl?Rdx~6Q)mewe
zh9VJ(wvb~RA3Nw5>8%uapfbti@gbpyO?&jsev3U*Opt3*%a4t3@DTnY6wG$zWXz#?
zOLA^8cnC72OMGuQHTzHGitEx<VvD9761cM5l6&E%6K~U{9zXfKc3r~E%2^ZJHP^_b
z92dS}qiydyb8icKZuoRRDdFb7{~dTrthx`)sA1iIt>n!$xzF>a>GZ5xbo<p-Zaw!E
zpAWuOOWwbu{v(IuLgR?9rCZC2#RYqJ%(gyrI`qd+KB;-F7yjIRpz!Lq<j-{nKiygo
zeRb8;#(Rpqb!|c}hfZ8y6m|XDzY7bUj){kD@Dz;;&Dx=>@oj5I#Jp=pdX2_fsn`6^
zZP|VE{^N;-vpTk%pSb9}cENM!(&#g%)uTc>K6F1@r|qwK`ca@ai?4nGcYBEAyDj1}
z=@E>@ZN6I`S8dt#Wrlk|;C;m%_qMN)c+a%qNv~rwci8s(v1h*O>)D<-^>o^|op*0+
zop`b!e2q><+o27rMsi-;|356VIN^C%GIH_Lta-|1Pw)A~t>&?N7`yRSa_BkVz^eB0
z($}H29nOt69`0kiAMa-Q{KrA&e6b0hPyQXtZ>d)MyLI|sv15Own9lbv<Bu;9(tXF>
zRq)`FpmNI;&xhyrB!$oSFTeBo=mZhL{6`!4D<U_3SzeP6DD!;p`yB4p>bZ}LeeyNm
zmd~C4-%n)W5}h+m7K>;0=r{}M+4_UFKB=g0GsISUg4#>u4gMev_!uIN4lzV-gHi2p
zFjFjJLY9`6#2gMbCEPb(#$0Ic`SmZH`IIHIKF>ZY^KAnEaf1yT1pOZ|1o1_=mZkLM
zIER^?+kZdYHEg2oCzUvf&gJt@CT)Cmb@if|bvI_byqU6W`{bF;A1}|JY<hYB^3U;S
zzubQIkzfDqmuHWU`I%on_AAv)&*$WH%c&-J^A>3qNA6Lojun1vq@KSq?T%>g;aSsX
z=a<bs?qAR|w`{$+!9*JwgW$iZ%(`X8X9{oKJ+#~WM}GNM%lmb|zaBlh`Sky|xR^aV
zs{eoc_3EE;-QNEd|9?HZy#F54ek;pvyFB}l7mps@{=Qv4@7wiq<G+tjuHT(*Q1a}V
z!P|YmnX*%KIyOe;bV^$9&Pw}!y**o}G_(5Wy1%vM#s7c5{rZ>p=i^h~eqC<g{kmU1
z|K9%Jv&!H5nWr5)RJF4EEoUy*pZ`Bje7^s3<KzAMetv%!SG-EOzjKYX;q7fg`|mt<
z|7Wu6vU}D%pZ{-J{mb&r@4q)`w2e*n%HDNs3fug4)20lsja|W6Z)1|4%-J^oTC1h1
zwd;(nZNk<2YKuNU>$he(|5&c>oT-(9+p4ffIZTo(Z$A2Qe@}Juj9Wbs|K03`nyPER
z9^d=u`~LXwKTqS|ztgwBdVlxs)8+Etr++`ez<B!G;k&=h%cpOzkz3@@!+r7mwtMHM
z-F)gg(f0rD-o$Maf1K&Q8{_nJ)7%&5@6PV+EjxG4|DaMq<tMYVhPyOp*i=g|+x`0N
z>)wYm{`_DrvpuZ0%5uJLR^DS~rjSP>GBb`Ieaf8F#3Rtu@s{zyl^Ki;c7~=Z3ac3P
z^uw<0;NgF3q@O1#xH+L*qWs|INtZGtJBmd!+h?1kzn945W8&nVzg0oy=DG<Mw?&S{
zI&^6+e#*MqSIVD#(xX$(j=ywM!uPL?cz1EaWz&R53EeOMIZpXL`~MuH(sDnG=M%KO
zgmQEfKPfamtf>0&Y?Z=Ad6hpkzpr+du5cFLcHaNohtJ|7kI%Qn=A4fg`ZGDmCqgO7
zI_1;@l?%EJW_4DlC$u@`{CrmOIN6OiB{uo+o+*3clzndP$eFOo=%<jQR?-CT)N?D;
zoYovqjdf}f6o?mKn=d8wpjBUPS+cW6@V*A&G|7pq8$Tr8*=q4)y4&gQxqDZ7Sl1Yy
zkSKJNWf2lq?|3g7-r;&`TB5ijYwA_qYVLoxjOO@xc%6Q*P^pUh?o#v6(^9;)u}sVO
zw#|4a?-D6d;vq9#v-AVUqnFqB7;ZjzHsa5IrAaY!=KR?5_Z{coy04EtBOGQMs|mg+
z@hho{Jh(XKl_ZyOo$+*mbLT(1WG(pY(zQ2!_sfF<GnYv^f03$h=it7ySz&k8vLi+3
zm&x2S*5fM++u|fQG3xc<b<5bBpDvR;{L(j^ji2@9_6f0nmnH3VclNv9(Aj*d>#&CW
z<Id%BS$ESri}szJx8ma;aixRjC)LYyeGj^L_qOB3%Q>s9ep#>w@d-bd`LT>ow{Bz4
zj~K!0SES}%yRu4ibE0+PIYZ+~X`4e-qS*et@mR+b=$oZd^qE7!?Ec&(bFEm7PP-L2
z==3qhb1B#L9W+i-?sh)7=iu2Rg*F@~KR?RkJ#}T1z*Ljp0TU&(lz7`!<}Y385v;Vz
zpuu_P<c05o(vECAT#(AAQ^~4c!L))=HSe|DU7MCeicbYzm$!XUynM02qI34NZUuJL
z)Qjh}pQJFZKfHm#apN}W3;9+J*G`u|S@rh!#O{ROj9-PNuQYFSu+3o$Gv9G*kKIvM
z#q^~g&WgLsGBI3CxnSP1x=ZQKHdCwBzSTxgf)6}-?#^Y_5;ij?izj&2T*;&r_jOq~
zRkk|woOF{&o?%mAd&I!;>SqDxzj=mN-itBaz3-&Lp22gKIZ{EctMMaS_}5o?-`2&6
zG{1iJD(cUTuxj7f&Gj3)7gyA1NVNVb(D*T@L*;PPQ{%1^$EJ47;eGq;(2R;kskLue
z<@YZ2C~jc2+o2w&ZgEv?-Tc6)6?r@KT%#g_Vx*R|9=DBCzU1WWtGCqKTVd_SJOQCu
z|83^qozl|2cbRmkCzFd#pOessOCNO1^3Hj?KB#nFwS{H+Y_YB_Ea9(~EWISOC(}v&
zlF$c@wbO-E9j~QJ|B14=P%m&Zl;!$~I)?*~Bhpo#7d^Ffy0tlAzvC63i4kq0JL7gs
zPB>r1v^JliA}4caj{BF)fD6p8%*|GC=eF*;p(7L1l&x6NbFn*g;||uK%eS)?E8b09
zCD&ekZK{9{NAht+vxFC>c@jy?<qHZsT!SXQve=U2q@=xTOR4LYudnrF`LAs16R6tJ
zC;4hYpOWIXPx1mQPF02b<TeDJc6fDS)pBOdGMUYyD9QGybFEd+r;QI==6jz0<QlwY
zp=T@m)aUE%%rDBx##N{FWy^`KdH!(SI>#ukUk9JF$5bg_6L<FIC_Hh^Ax$Z9s`8x<
zrkR;+D?Ao-DIU-fUD4{lRoHv7<t}5!Wp?U<_G&)M>Oy9jeY$CR*89;;k++lExfQNm
z_1t=8+3bzh*Jc(co^7gd`X|}o@KGpfNqXYN6Tx9$WVc@UD$-ElTJ?U`F%=V8{+~-4
zSpM!wiq+NR;TBt}E`1^2Zed;m!$r?!c?rxMM<1=3cfoGG*{dcU0r8^;e(`PHyy$X)
zV_H!4yER60mme|;PZqx^SatuTj@`Rk;fYyBS2PtombnE!pZs89>S5={-xxQ^3$(C(
zbuF5fyKW)#)L))oe|ODx(mTE3koi#o?z*K4rR>UA_IckuD5g=N_SN{-_p5GuFNmJ?
z-nwC*dvNyhC5yz*35fLS=lYy^u`BI=LU^x!+r=HLHq6Kt{LbY)VV7#3Xq)BAYi-ja
zqIUFVcP6fI{@AZ7R#Y9C*~uyrB%`epus+*V+{<;zyd}?=ejfckX%_c~y&rC_ea7@@
z^2(X~rs7JR4<fR-ws;*BkUJHSB_d%yP3qVWiMF7_Gv+@I$oi$bRIMSTOJagomim_<
zVeyp49U5%c%2$LO*dOY4)#%XC2lBqj%%anNxxH>J-SOJvb)Hz;HQpmPHy%`ae{)?_
z`Jsv#;cKOhOCrP8O3Q36ySi)T&z+&K-99&G^{kb?o3FY08m~%g=xezN*KB_4Wp22;
z$>d?(E|XX97ApJ|+qC+Ah|c$n6ECF<3OA%bRXBA#+FbM7A%B%@{;2ZY+cW1gw$1vY
ze|}}*{$EXMvVoBgyXDoa-nbU5l&PL^Vz<ht$tmB<o;uafQsG?rp*t>LM?*-D>D5xz
zMPJO4Z7;8Qo$YJ9xFgNKJhScUrcDm~;mcMu&-Im<7TM0G5+3^I&m_+!pSeAjJiGOi
zwT10uV|-Id-N|+5^f%u5sk&Ty|B-|D68IO@^u#Y={JNw4&motHonODG|9gG(q~tM2
zp4PPAcTY;b_{Oq7?xX!*k3GL<Kiu&AnZ^5G52jzZJy%||V~;e)BHxwmDv56KVX2%g
z`pYKfI`Hp%^O93&w{7R!C-c$^{dP9EUC&yjJTH27URT?!V2L+ElRkT#&2YJP#NPD_
z*Dmk;mD5axigq0Fy8HT8vB3Ssx166}DkzVs-nVE^^t5^6KArDhe!qN*?bo>lCxWY7
zubdaJSN5GW?|-}E!OuF^B$*COHJse|>tUCogO7})kk0jR_623z)<`@$`{qoSBHu=D
zWoLyes_P|~RCbFxvn^5cG|!Z~y6#!j`7pZ`^<6JSOQzoo(#=+RQqVbd*Y!m^>jmyF
z=4q_bVY_%>N9O5;RUsb(${JYi3k%Qt*Bq81CNt~B^z9lvrly7!MNjK90`u-JY6&&6
z-s&W`Op~Yh-1h5i_tt$(xGHs%-(!yOs!3@ZjuviwTx&J)rs~cA8{^)372UNmxE^j%
zpuk#Q`@^a~rc874>Fw*DYFXbd`Sbr}E`tm6oVgdR3bs@msBkph&1ks4{??YbXix1^
zYmDA4&<Q<WHe>0-ecKM(9QeL-x$&FdUzwXfu*xmAj>u2sRhxA-`NiMgJHJeC6n%49
zEpOe<yZKSKy}5)}db5_<1TE=|;Ia(#byWP6sc5~Un`cq_rk?i6ojem#mhMtJE%HEN
zZ+FQRR`E|OWc9uU#@`WAJyGsDwdj1{$v-7x*8CIti{?Ll{;7ZYB*(XmjsO1&$@_nq
zbL*n|yo@dG{x*wMH%`2`?K4ZUT8(I!NrRKG+GgjKOGGBm(!6J7AHR{2d-77o8_(xR
zoN26o&AI6yZ^8t>w08@nME|n<p292Fr2j$S?!hAV)CDq&9!qOVWIo7FzJE{n;X8BN
zg$WxAgjf?B1ymMIkqwX0;PB4mW;HxDWnX~6CY4E(%Q`vca<jU&{Bm-P*tRjCV6s$M
zN{jkw6~^+38ee>jK9&ge30^uBT_B$Cb^Z*S|MwQd12Zq*o~>iQd;!mtNfB2%AID$1
zP|+zXa@yzhiF?6<xf3|5=QMHs>+9I|c4CLn+|3bcd&0K(9nJ7wa(dOgn_a&uryL0j
zIbX*b{X9KMTinO!639cHYcmA;Y&UN8DwoZfJHK;n%mc+;%}@EXqYJNZ)X(8f@Y!}w
zb-VfOux(+w7sF?@y{gMxe_m|=J0)jTUdE)C?(>w62ECrw#u;T%P$1qeRQ2q^p~IGU
z3>>!EGd*3D91_vR*uDEm(OJIZHrs>NzWY?N@y#J?HxKUogRy%wZH=XE?g}4cuw=ZO
z{!=pgb>W_zzaKrG{1G_I5^t{fO5W+p`uqQWsmRZ-7yP~bzTMZ))lYicI|DQ1SNnt+
zlwSUJ?wZKS*B@QHUK?&X%B{Kf#I)3Hj-7AbUX&HPyy)VYrX~~J)Nt;&XLo$|Z{Z04
zv*ax^k1Kbw>}?jF4K^)rw$A@t@aK}Kf$WqCE3-V(Q^ZojcYB$9^gY<=oqy}&!@92c
z6|t8USw+k9SN}M@x<vC);X&)ux{+&^t_v!UPCqT{`DvL96C*?K7N(Pv1YR86zc-n$
z`|Fj52dmy$9G?BD<4}0Tly`}H+rwsdl?7II#mos4x*)S{9=n-m=H+!&?xjYjcX^-o
z*&AT@d!q64X;)IOu4bCJawk{wSGTWC@5Rnewd(Z0^O<G+xr}wIL=I}tTK!|*T7QW(
z=3MO8tUt2kuTx@)f1v2c{#sUNqQw!%)U%;?=5-#in{BdZ`mXy+JFoODda`kY=$7Z{
z&t_yCSa$xsOm^w)hJwDWS_kZ#la<Ub&0;_9@@P$o)$t_@*BufoT4O4+ZpY2IwzH<W
zMqO*Nb02J<6rrBnV01aMJ^RzAbGzE^rAOyirSDYj4s`t`@Ss2BQqJ6uyjxxSuVwja
z&+1gN{jptGQO9lShlG$W<2gBkt?NH%+&x^yKe;63q(Gv}p;Bq7BNKnWXN%qGmUQj!
zGWAJzwkn?AC-xmWy|Vw&nUfQ&4!)cy<~QTcQOzmyELVOi@Y~EYL0DhZIC9yFBJtMg
z^EA)d%w;;qk@-+}N4NRX^t9&X)rTY!1itH?_E-HoWzpZ}g!qbW9=lHNG<`VR>|wm?
zh5dh-Kl&NJ+goAJlQe%lQ=;9ymwQe}SiP5YI#KKDw%ztH_uQv?R~tS!-Q8JacQnC8
zeb*}WDKCn=7o09<-L>p7!*qGs2cJH0EbYqk@($i)vU<wK)4wOPM1QF5<KTOnH#xfL
z{}z?5GqIg+mx~wOva!8k!OT-|_vsJK9R-ZspLBO!P?y@Y?~nig8#V1=g};CNyj;()
zE&juO^S>{*mp|KEG0S1@*=qh<2g9D7@UH1Fh~zr4Y-LDi!3>qD1&&@ldvYJHl@!|g
ze4fkym*!JDDoeDKjrVAnW)y{bPJX)SmfY?OYx556{=jp3h2)$h%a#<uh0%|M_G!O+
zIZs)<&g$}0#x|8ZPk%_-&3fSR>&Nq}&)qA3FFN`>y!Gh$PyfZ8TWaJRPKwXefAjhJ
zbAyN6OK)x2-#*E5huV|}`PQGZ5529_(KvYjl93nJyW7TIE_3@?RWH1+($ffRjSpZt
zZ6-D)=R#5Tls|%#QuhVF`Lvzq{J(pJyONcZO1xtZl^?aeTm0mZfBG()12Zq)o-JeV
z-dQ4(p{`K$b;o+8FqaMihKK2nho_fkvB@*Nyl*67HR*fEiY1#jZr9X5Ug5st)jp1?
z%GuxiC!f6-;HVX~v2$_hoiB4_J*JzQcx+Z`VLY$D`d_S@`^UhaKUb}N{lZq)LEFr$
z=)wJ}L$BKnWb}{gNiS>W%A8g{NBzwC>-;<i#SM<UOxSz)joQU~WqV)UC^nXyabTU|
z<)bl0yYClY_ueHiaal;r@wwSX6FqOLRjrhFvCvInET5?PZbr(Ziz+gQl{Hr`J$cFF
z`_9v<mNvU{jz83UE4Tn0)_SkzDNBOG`jh9o;y*EO^u51CPkR>i@A`53|Jo_F!F#vA
zzxu9X!h_YGH6Ki)95O;D-|Ud#_MXslG1NjkIw@MBM@Q7?+1_arPVQ0Nmbm6n!;Q;L
zXVbi`KD<BKY9JB$B4N@=e}&r;OyU(C?-F)4Z}R0^xmI<TA@9c>H>OX!b1$dr%=RkJ
zzt+O{j~Eq%esbc8wiGUXrFz0bXm5c0BIWSIjf;ZZ?v>10b?xDIhd0kB{!kNpe<Hnt
zebW`=Ih&6P%rEl|Q#n7`^5ut<>qHhrSFqm~xn6R7BA30*rl*YOdhXqO@<a1J!#3~9
zHw1%r=dWwc_U-r<%KC}_!|U%;>)%gWJMT94vhDA;T`s!acf@SX)WG-eH^{tQ+EcwQ
zR+RZs>S<AX69whNpDtW9+9n*3J3VdlarGGuHRThN;tS^K{|-IGxc@85O#|MFUA4RG
z7BJhqi{$p7G5^K`#e#!87iHI!8?1Xc;o6%^wYQ6<%4E!^MBP{}WOV(`y*E)O#ok~1
zby}78f==Di{d2B=jQcp7OL)!t>j&CCE%;HXzLR%--N_>FX>2ZWVf?FCT@>j0<nsGl
zRmBp~pm$Y85AK(>h`VI3@vC&LVkmW3W^s65y6c+E#^W#eu0`vJ1{xLSJf9?e>Acn=
z{hfPnZm|oJ{C#>`$PuF@?lPT^Q+=k#v7K^AjL=#X;kK^BWW$33;qFPlQ|~^yxF(mU
z|Lb}Vu4!EndL<FB*S&Vwcv3V_=Xj9d(IQ>ZiDLH-njba2Te##9e}7J8L(Qb$GWM%G
zSVLCNaFPo>^5R@+iUZ@Hm9_u;czf6@qnPDg3m9^R4jN8bl<m81;{p@i6IRl9<mGjy
z$*gngjtUH4XuFhQPGp?lo|l1}SPm8?gm6zSa^{$s&$Y4mxMD|LMaMFB4++oL8}$!N
z`j#HQBush<Yedpcv4pK*ai^GcqW%coIZ}Peu=wENnfh!JG5b${y38r!x<ux=b3$rN
zum4|@i+_1`{+)N|Q)GwUpGyANOK+r~-dm*oxcbo=`vWr%bLTGpHeXRFW7(>^A<L|u
zuoWLE<K0~ydb;ePq`vOPc1@{QmG=HyP3C%^N_EJ*-6rsQ$>)n#Hk4}%Yuu^&_U)41
zYQ|J6xBG@$*d8Qq3trI6_RHjS;+?is6WyTa7Y-j)dLhvLCE7{Q<Y3r|C7u&(4qy6G
z9jv-GXw?;l37-0``4ejl=S+5LdSs<rwuxtv)cOaJ(v6M3s#h&I_2qKaw2M~@xDQ`(
zSWx)I*kqEwlc?)@`!B3Dtn+HUjn3q+($EcNd70Rya(+RV5m&rna|!!t)esl%3*jcq
ztxp8IeoU|w6YSL~dl19>T21t#72ncOC&gdMxwDwsR=j+?O0uoM)XnW-WQVu&!V9aj
z%^zw^VM^1TayX#rYG;?h8ir+7Wg@43zpM7t2$|#4y)Ymw{;kK1%Qr;z+bk>B#h(6h
zWX_)FikF-&aBh4$iP0+a>#SX+7q;@Qc8_;7zpyaQxbc%vB7@749}jm=Ijz8AKI`M$
z`4#^a-v?e|ny~8HlLMgK@_<c&<#VD1L&FoUx~AHFbsYjVjqNY^rdewoQIhAHzd!N7
zXI+kL4Y$4OHh14vE}uHD)!gc(`{G{yB<qN)(-O<4Z~nAlxA(@Fw%D0$$Bo{+3;Mo^
zQP*w%w8Zj|+z*G}AE^DFdZTrz-02P6r^BWvnnym{Be}aqjrY9W_G1t2Zn-t&J(R5p
zj=3!BuJz}`iD~Q>##PmmA3s0*F0WN4<K^{Y*1Y+*{(XEcZ}j5dKYq3tlM5G?z31EU
zbV7W#ljFfHYN00Yj&AEO7eC#^WO(ChI$LJKq+0&_jd?%AY-YVb`Qg!7Z|AqR;@;b{
zWHcIfWT(q%XzVVnXk?1ma*dVij+4lbWe$zjd?G&{HZt)~$gi9KcsZ|K#A@XW%p!k&
zess^=^Y51m$B#eVfBwJyzb1TlU#dCZndjC#H-yg|y%??jT|(9(<3@H*Z|Sw0kIwyH
z9$nM5i@%(`FHe4(OJIm-<e%OzH{_L?>zb5)>py%{ZfF<&@1KGH!H)t9G?H1KR6Qzs
zpSAfP|E)7_L02y(dMu5Lm^`I!R=#KRg;nRe&p70=J-n{O<Ekxp#JlX#e2p`ryc@1>
zcp#9ollk{E;f!WU1!whK1NPqNhWQHfw;XiZz$&)L^2WOZOXu^QbbV*_>`vZ$*Ttvq
ztoB}4KHIER@Y4<Uy&AIdyFEH}a#I7&Cv-giWF*J9IGAnjn&}5_T~1qd=|+LdRk1s(
z**_^}F&A@&?{ob1IArTZ&oz8P;>*k|Z0bW^y<wl~-LU&Z`SiZF4c=Cvbp_vFnQ)x&
zT#`Mb;qQZjg+9MD@2Xv2$K~o}TDW&*YiW`Dtz{WvSGb;8xh*N&wPV7`GoQ<ocd~Ia
zc?W-CTh27&(Y=&>h5K3-6---1dw=h+zTj`^__eL!m5i48BnOSNl6({LuS&}_t=%AS
z_HZ4i<J@HvUwH{0Y+O0fNY~XN<W69Fj=1cu_kw3u9^kX|US4wUV&xSc)k({CD2Zi6
zZ`Cm1KjoK}FmFwo(dpTfbxREzB24|;UcKR2aG1j@KfY8ZJ9vXvXpc_waVw^5{pEZa
zF@5ZwO42ub{N}1_&(2TUTi85}dzMPn3iByllCOE&1P{H4YWTf8Apg(pSH03(Vs<d=
zs+Togm*zhx7SZu6VRy5Su~n~>;l+E33dOy5IW?2dD9W-Q{#SNc&us7Psgn(5MVNJJ
zbGjI(nJh}uU|H^~AR_ed;sJ&3uEt|~c51SD#oiTR)>)d{#W<}br%N$nOXhDq_qEmE
zp1ohb+wKFy-K6plzIDFkZ)SctY#S}NAni-l^vCr<JVkOG2Jb`;KQQ~FB=qp>XK@d9
zj*iF6=iApe*8O0uuYFwq*X__l<ynjzN6sH-QH_0d=K<sC3~8H$le&kPmo8e$E5|u?
zl?$_1c)p;V$>(nz{Vi&R&p7xuT@iZdIL$=aW|3=L#@kKdG4uW|{aeD`%>F`bcXR%y
zY%3cZVLtxz(+)cuSM5FhF}PxZSfI9jK;*5nA&OOR*{goKWPLgx&UQ5X*KgMk4)>WA
zDizOa&R;Ljz$yCfv+RTn!63JFtEMdQ=bP9dm(>(t@$KmBhr4)wJe=;LG-HMA+U7Xk
zrdKEa{Z$iPH*JHGw{$W8H(mD&e48Dvh~7$+dr{tI{N(rB%Uy@UGA2Ar*xeGAUE(##
z#p7^f^42*2{@j@>l|e~fE<8Jfb>GcJ${YIl1YUYf3u2PJtkNm=vSZ_?OTi`!e)b5x
z@L=!Tby0BI;~OtL_Gd0u{`zI#MZ<_Gefv(od@-*#@^y*weXa|-W$gE#TrW93kJJ9n
z=BJEVZtKe}>*ChFG-MBd8<@9xt4Q{9C5`V>E53g^cx%pz*ZuwHiZkb}nUi7O@cEq0
z^yBy4E$5vt=?YrC;Qn;RSv6d9Mc)^mO^eX6b1Ai`|4@7FK+<16oo}M20>3NVFFTTC
z$a#E@Shpwh)jbh8_q&f~x4Px>ZS&62S$1EUU5x#RMtAPXuX&R<MBKb@u<uEPnqlR)
zJx@*7-Q>BRu|VokWv*nu@TXPx71!@``us}nnz^jts$}M}s1<!*k3=rCdR4xnZ=X}M
z3Hxo;Z?7V_{n@l-z0D&_uc%(%?OR=X#@O+~95Z&uZ_TsT_#~{DTy3Uv=UP<aRNm79
z?<S~vuWej<A)u`#RZ}-@rAC*MR!+F@^rCqei<h1}qElm~)0rO0e_?$@(XNzP1x>8W
zFKN8k%@uXd@zM#~$xEjeSV%@xR5av$^uD3CfBEmPF+Xn3)9*j;c6zpqy>?&ayfx3X
zwDd2PEKaFkqV+@Dd&2$&9t)B_t~L55{eRE$#OvK0<#M8@cx+TJ#qDC-TEA$S-8BQr
z*yJZd&lDv8nyvL`Ugu*Q{7dB7rCc7T?%ij?DqAeHpRax#a_x&*NXhIe3SnIOnakyT
zd3&yJ@jQ99^_aM!gXdiJ=v6%0Ynz)>R%X=mT)NgG-MUV@?_<x402BX`jw!zF59dy7
ze|yM$+UrdWm6Owgwww*rW?s*4v22MZ_Y3J@-CY|K?uD7iIZtQ*d(AkdJwh!=%{t}A
z9F5=4t(^B~w!1yl*2(+4;ePXJ-j5BO-EUOZ@jBElT|P<E!zk*f=|_i7&OPrRCIuVt
zZ!vSaHLdkn!<k4ucCECqMd5Kv*q%H*QoOLHsb`kDjgEEX{QMgQ58k|*)-%uK+!MY(
z(S8nLcN%m`KCR%>@HYO*`O8y1gJa);Bs2EgvMSvs&YFwZg5>k^GneG96^k$0dt0Tl
zB}!Ycmep&P<l7SMnM~P@`Ab!fHwmm0Vfrh{!M;%a>`9LB366TjeimOgd3V-mYsjm*
zADWt#VsvO~*T(M3>=x~-9+@qN6CRYCADYTC(?D6|OhQ1zrSs_xOsQ(_8V<*%MIB}m
z**&d^`R}&&D7IS9;spJ*>N*+`Fjq-%P2q30y~rx={Q13&lBCFmf3Gi!*XMn=$-KYG
zeoMYY)csrLI_~#xmAfrJ8U6d%m-g-bVset(zRi76x&7PR73*`~T2Iuud29Rm{CjfE
zuF)&re=>VLZ>{j}hxgXlI&A-;nlt(S<-b*We{#-GKmOb`@BGKh-+Y^TzpJur`TpL(
zzehfE+0U=*`M+c;<jC~@{&M*9MTX8Jn#={C_cp3+PP@@A*_&eeBT3S<B+&Ad>LTu^
zt!W1v^dht#pS{TH{cMf(t}~l1r0y2mb>_3v^tt;kq%vAf`=k-n(zMjeGiG<lWS!&8
z?M69&3nG54kp6R3NMq4%rrslk3A5(y{gnFAa@RK*dsp#O9WrJ8dMgeeT>SF1{GZRi
zesU|YwN}h<I1+#VNBsLNm--p4d+*JEVPCTA^vaBcih%Eyr;jat`Q3aU@0OOGg+ji|
z^VWzuD{Onm`DFgTWnuEm_O6^Nz?(O9X5FSQ{L>0!PHp3S^yNW%`Th-C1PeXIR%Xb}
zkGv+DbA8v+%D9;q4u@~jv3t*2T{quxu|Si@H9IYvLqFwT+`OFb@bG-N+YwL+eZb*9
zGe_mZLn`yvpBH?z{_`G-yUZ+`GUqWW{CHQ&%%QU~kD<|H)p5xW425CE3?5bsuVt}#
z9Adc|#o{q*^890rPHmHv9ZnSWa7;*;XwEhJi)3?r?W=-qhZK*bGem|PG^~l1atKos
zQP7TL6YzZg)olNHMkgiamzL5@yVlAES;@#8I1tWs=(P3JL-LJJp0>{xSt(gLz0mU0
zX0=q?RfW~R&i_|oVxH=$wzN<nkbTLem6u(dlU|?naSQ&lPtq@=PAF=x=UI6LGwYfE
zejYniB4er}VdOfa`9rVpJv&`y7q_Ln&lrRjFE4GX*;gB-_=1T)Q1(rE0B0wU`My^=
zvztl+62xDd#1`$nTfA6d?SBdPy{E0-?Gd&%*&A(Lv$xRV$k|O93A@EY&wO4qdG0=q
zbVj|fDE{7QuS%}RUg~O2etYd<!P^&#4zEAH7P|KMy6e{C>tiDN<9}|F%l9vu{P?-8
z-1{r9o#*}g-CDEveA0)@Ve_L8rbIBmyd&iC{Nl5=-Lj3f7ag9QTpO1a^(Hyrbc6o(
zp0u#TOgu%(tn9C6@7&1aH1DayiKprkzr#4T9dI&Xzb!kXw!~v$;?<YiFD2yn=5A%%
zboX7Q&wdlD83Hfd*?#e=G^#%L*zfXU&cwRR0NHyluD@RTyti&|Ox4X7*EN6i)@`_w
zyjWgmW$qVlv8DHKE&USR*IW0xVDWvf3p%fbwq?hL$gYpMaZ@{9Z2pojRkI&2|FXK`
zl;2NB*R%hFX2+brptspR?dIW#3)UW8UrIcW?>-#!|F=db^BwkG(%+&E{*lwka9nIq
z&HG`C7VEj7qc+DL>C~QoHfQVkqc^uYXzY}^VJ^Et!#hdgsq0M>SNGqHpLS~O7K><k
zrf@GISts_3&%}+~a)%<K3-{jMY`jgbd1<t3_)#8)e$g{-H@2>F4q#Z3pR;1|>eeaI
zYgeQ#U8#Ceh)1fF&3WZ?PQDgfhxc=Af3>QHZai@^Avb>}uT+eoTF?ykUC~<@SZ}K_
z-M;h3DJ10;=j)t^sLqEg6Jrm2TVp-z{#16`TgIseGxgS&->h}JHtVUC=&iE88s}^O
zdUxMHe@pz}<^1!SuV%jY+3N1~EsgWsxz9H*1fOQ{@b|a)z&M@#_$>YQG`G#1OeN>k
zCfHVTo;s>IEm&S!;Y`j#Crhp9i1aIcCUWZ1mqfT{xTRlC2(Xy{KYdSB+3c>y7k2Rz
zpZ01+-F|%CHL0=X5WC6gcV1mx0&AlbAH26rKUOw}Ltyn2x$0xakB#|1M>-yL_;ORy
zd&6Xg4s#YcXGOvADFPn6>Mj-srGk2T99(!-dfD1AU&}dA6&n<&vUbfq!JomCnDRoq
zLP`{Vi8w?rw+sCu5Tc@VFXe#ay?Tcu&2#!i4KH03yR~5A+lB)+>vJZUYWvnI#_il#
zfA4Y8kF3tiY!Q?GELl+hnp5OO!`VmbtbWJe6*kodEtq}5j7NBOQ?dLO4@130e#c)=
zh**-;t0sGbeea1`x8^GBP2zs0vm})3YGC`!&YHfE89SdZNv&3&zlJq3PW{u#TkBFM
z_-pMH^LsK`O8TtzPnPnRSDyLVF{*0a`mQj)!OeC3?#ccaZidfS|HR30ih+NbXQQCo
zVyz_;H#oW{N1bU4IlKJ8u0_wDU3%1hDcQQnn*I6JMIM*LPX7p9>$jal{>GkpPv5bA
zDs^&@Jn_-mq|Z?C81D^piAKS&IrGaD?l<{x{n{?;*xA=$?9{oAaZXpI)!}{b%@23%
zTX_41=$z_Af6tyI(Po!qk$ICe3<5Q;d6sh}Kflp>!8QAc(&TO04nHiEr4kMvwoz7z
zKQLQcbNy!HPn88nm$zli_)x-K$`r%O|48R?M9rr)*A4mFZk&8E;V4&_`MHTgHX4a(
z{z2yi0_AuYK6zk~{qBPI5`(wLZgQS=?0&Z)U*T}8qUj!)S?(&o9@>T--V@BbqvL)2
zY~`%YbNjDHS>^YA{;-3kZ$tU+`Y*@o#C<;5e|Ovdmt*M)t=saqeVghV^|`(npa1jH
z;YiMQx3(+A*St(};@)#?7LdF9Cb0C+w+|aW#uY~0|5tT|x!<VOBVoz8XR^6r%fI!{
z-@jkx;%Dc$4gbo%vvF>aDO;$szbvovSVF)w<$tx0=55-u-}c7*<?O;%|7z+i_wBQ@
zt2O?U*U9Oms1yF@W4D7v_KCc29GfCLvr8q-<m_^$mG3@0{UkF>dagF(#%reWvt+Cm
zZ*lE;SELy^;mWR84)%MuxvsmklW$qcPkGrLdC^?kT8!qpDrf%>nCRHI%Qr#y(dxph
z!m>{f^xtRVVc<Ev-2}_}KT{*5jSd9&Y@qDZAY%QWkpgIOHh4RRi2`UbbP$(*h>?P!
zDP-dZ@q0o|O>jHYGdD3k)kz^1bfkJ}UJ7V2Bg6s_3$&-zFEKY&K|jQZOFyKtAXP!%
zEkCb>OFy_YsRYag2^w?h2c;J0mlh?b7AqKnZ3DSFKd;2eDZfG?TGvoP*U&=2+(g0D
zJeCV=f^T9;QD%igw1J+1p&@7$rGWy12~v|;R9xbmkyxZ)%BAm<2xVIua_PI~CFiGP
z=A|nbnwlyYC<JlogOq^+A7nQ)#KJREN-~NSqK!dH3=|;H$U?!$LczpH!31=z8c56t
z6p{uCTp%$cund?4NugsiLj^97n3<u1sUgAykdUc?g1M=JnIQ;)jpi~n1E~Nny96n~
z#Kz`eON~Je0TUo4P}dk4E0}@Y1#y&t0+*46g0ZoJkulhTh6)BC8a2K^zJ$dWC_)tA
zp~R){l9`s4T9ldxikoOteRl&>1w%u9cLOH{eRl(A5a9wMTonv0^xX}O6pRe@-3?6@
z^xX~3K!iDnumBO33dUyo?nWjGT*j9A?nWR9BanoVrGkmMzPpi|g1)=40f;aJ5k?@w
zSi#g--`yBwoH58aV{-*F3w?JJ69q1PcN37XiJ5}Ak-oc$g@U=6zPpLDg1M!>y9vlF
zQv(GHBYk&MkU^%#3KpjN?xr9erXYh%LDrjstT(k(ur$<nH$_jwpp*a$6R@XEL4h5_
z1@^k3DKtNUg22!elmNjpE((Tbpr`<ITonw>K*0^-7#b-Unt^gVm}9D72#z8!$4tS{
z43xpZ9CHOjGf-@RITi|rW*}#PIhG2BW-u2RnJ5^V!CYVj(gSk==)wbYm<x<76%5T`
zE--RaFf@m`z}P^+&>WOVKt>xIDj1r>TwrXZU}z3=fw8fIp*hS2#-<8}<}eo+n<*HY
z!(3o&u3%^mbAgG8f}sV>1tz8nh88dvn3yRTTEJXjVxeGY0ds+gvx1=o%mpTH3WgRi
z7nm9-7+SzwU}~gbXaRG9sj-5g1<VDeAbVggFf~&!w1m09)Lg;P66OL^3k5?<m<voT
z6$~w5E--acFtmiYz|Ia-QiG!25FF(o7N{VDZbUOQAZFdOky)rgfI+Z<S)jqD5ChY2
z55p%~PmGM%xTG`~G&lGZ=}n)kKE2K&puzh-vyT<4g|<Y|%j#cRQ$(gNE2`Y3A@lG4
zy&v;uK9pBh%lgCba;D(QpZSt2BqVMB*UL5Sh_T(tw3C5}hvC#kb79PLi@<3U-PM*v
z?R)7r<ZE&eaDD5s>><Y))-#8MSha<&xNr%twP}co%GeSo%)Nf;M<ogU23gh*v0@jl
zJqfK(f3|<B;_f%a_qikaDh(d>x>rxy=NHS@^euDmVhhEMNiQeQcsa*qkHltorJ0{U
z7TgLlN?gEl?*Q`-CcZ9?ola~vjn(4OE8fg<daPic66l+?W2O9awk==&EuQ=S+WzZ7
zSHnz7eYcir^!TS<&D$a2uRDinrjy*lB8J;5_Mdt0HA`*Fl70qehS!Yyv#^8&C`n+1
z1ToiN_CP}-SqBsp*5U>SgqXrqR&++s$au<l<&x84(^l4{;gc!^_b`@;w7lP>*SYlM
z>VIdR?4QW_Tc=V;MMt@B*&hBEE=E^Yo-fRC->sb5wMX~#ggr~oojiTbnD0ce_P#mm
z*@KGDF*4q1RR6&AO2)S<Y(X(2yGDa_02BX$OHcl~&HZL_=)t!wQt1gfFZcEQOTMxF
z`8ob&hpx?hbt@ypZKcVp){UhXIk!aV9<T2BTK>yDO5@fA_Xb9W^$ELuF~b5}E}@5o
znIRG9Iv5!Sfzz^4sDW9q!PXE+S~d${a7-5NfF<P}O&b}f?_&>`;eB88K;*#*-uEwu
zFI=+1Wa{b5t`GnB|N8&m{zmfAxAJdpOV-~oH2$+9F>S?)gtQGB33(GL57ae0XZX)Q
zt?k!;-Zvay9lo(oWBbi)#QsA%M{Yy&m8P!@U(NolNVelM;ht`*U|z7Zs))6Skwt=`
z^+19b7O#TxJDOK5iHUV1!*GKDgCK)o1H({*jZlvovUN#nFlbJ2fo0kW=a;@`RGZ5*
zN0evh7u#A<uP(3Poi?!||Nj5~A<y!{*QlYv#>g^2?_tr`CtOdMI1Ct^x&QQHaVDrF
zLUX2}5ivK*7#W2bFgV3JvnnUE279-PIInZkQ|?$G8KP!6{q)Jn-u5ypTD<QwYn)m7
zUgW`=gcD2Ozg!&<6f*17)0c}r{QrOa|9|;^|Nl$$@csW^FVl1D|Nr;w%K!fVf9m)`
zUf^c)1$l*4><i@`zR0)OHJn|r*f3_@yqLxq21Ygpm6laov3LYjilTYM$e5S{C+ECv
z-XRA8)(4#$6PDdn-e7KUOkw$EmnIQ$56`L0EM8qMo_jqsgMM-B<mzaeq%E=3<8_Ii
z&i*sbhlGTV)~%jfyV?HnMEPGg+=^bSuZ%zPYn5l#YsKkzDk5K+Tz_#>eWe?J*wu_*
z70;7<Kkclq{~eK4_df7DLyiiA67v=%zFrUctseYSwethoq6)TXm5Fgx7cpFmOzgc`
z-aa=tPC16@p8Gc0`LeZ-a<-_mxgB<XRj@4Skw@8+)!7N#Qny*AM*df}KO*<HyJ_=L
zu48kKN`-g+-K8R}94%}qTr%zT<bT`-4AO7zi(v^dP*sB-Vur*V<Q8+@(2F@xfb9XN
z82_?L_ljc1n`>q-xa;Jj5X}))$>5v0Fk`Q_Wk)z?#F8%@dQX_n=XD?d_s=_wLoD9V
z*x>(}H;0ym-Kfkvdgj^mZ!=zR7PFikJUd=io!@`g3X|R2m9FQU-ImsUJ3Be>?v2-{
zZ@aBts#vvPCWF!o*HbQYJvve!M{oJp@Z#HxJK~dmFUbGG=l;)SfsjYD)C-0`7aHwW
zK8(n6;mkOqd{W?)>|03zP2LI@`$O};*Kbq5ld(s!Rd-jAKsKlKKI6nGhx;Z@oLv(7
zaxQ3dsr{*qhp_|_s1bk`NQUNSM3h)-&Kq(a3gBT&IOupn(ZsxBZRo2d0ird{3nsG%
zxU;*4%gXG!>C9QxcZ>VVTi$-V&*HaFUUabYU{ZWpdNVoRNTR_0Nw0r3m(xnyDH3bS
zMKXi5`J94`Ury>0OaA8h(o&v(x$a9&>*wnxt&0p~h)#Bh`^?loOFAQ5#QESnZJw~b
zj$B3`SPVTJ+%>%1n)Y%mV@ZFaz$&?;Swdxj;>BM_zqi&q1p9jb;xJ%vKXau7i_bwV
z9(12u5>qn7oU`U@3J_qupeUkpc>_y2Gn?SSNk{yZT06t^9CUR}qL?>sDDjpsKP04~
z%k%iDqoa<W@qKH_(;jL@UsO9(dY(M^JhOS3#iW8;W#822slIuuBC&b9)6Bg$)Aa1B
zPe!eqetY8N)(lscY17))wm!^Y^ADBX@@mJ|+$F2#x2=wfbTHhJw%0QF!4jdR%L0YB
z8T*I@Slwt^e|MGRTEBare|>&eS#n43=7YYF7MCeuUU_+o(kr5s4zbHu%=|E|o{5Ly
z>5DaAu>=RG&4(5oMn=Rm!*VWc^gC=I!1iFZQOK^P`3>(`1Eic>%)D7uj1&$YVGeL(
zTV-^6&rJEF{SyqGpUmGZ?Kn~5-Q=2YH_P|!o3wUI(M^xr-sQ@_+w6C|HQ70Jo&DQA
z`#$GA_~m-5?=`z`@!slPQ`=rY4D4$^Z!Y(a#bJwsQtFydr!?Z2wR<bq`bejmoDO6u
zuTv5&dOBxj9e15ZxZ7jdL#&c5^R96?iPo5|dth#S@b;1&E`2gw_k_-IJmdcu|L4;g
z&S(zS?iX8r2AtT;;=>ld^RgCy<Vz0EX!Wy)o}cg7(sSfHv;F7o49pCDXD_;72`vkx
z-a53=YGgu8wh6hg*XxLbz=4mvn(t<$#XnH^&9+nI*fWCy`2;RUZFz_FTLQM2GIGaj
zAK&ZojyEW8<C`7En^&uG{<)#3Q@?E8nOXO%a@VapTg<vX;IxWN=W_8I+XC#`>=*3e
z4c6HH-8$Iu=DnHUxA!Y=sc!Dzd%E%N9nG6(WV?4d2X)sLDXw}E^yPF+%-Pb}K6?b;
zF7L8@)Uv<mMu%<n!Fh-ME*kTB^8M~x=-IniO#KqO<{9xt+7~u?t^70JY{tp5m}8PJ
zCU+H2VAfA@w|q3yOz@AA^r;_{ol5T{T$!wB@bU(0l-cxcii`E{EVf!I<#o9r;~`@m
ziv+{#Eyc}P!VgQM(a6A<h+@acIK&`;Au*VnHP{$ZDF+uT+-Eq#>Z$U)$g;BNWxMu_
zS;a4_8C-XM!E8QAG%Wb{|Nnpc1{326|CmL899Q_?-YBne;KTp_jAa~u8wH*ICpKL8
z@4$61r<&ug0{=q(56&;x1AZ}EPf2ULV4q;3-14v4?SJwC|Nrb!KHjq?{C)B6Z{sul
z9rZT@4?kousgZgUc!*c5uYSQpZZ5Tm9nFs&<plK?R4}=-o7_Y6DLky4L@)yd+^0m#
zf`;bAlt@OV;6M@fh6jo;H+rB%6yOXL2Zw*`Gybrv{{R19@xQ#sKjz8*6;<qKyg9CL
zUU}mGj}!MBo;WY@B-!95kBX$kjEf!}7CyYo;(R`T+|BOwk8!g7#1s7qpA3a6C49Cu
zdzKZP*ziAj#sB|}|M@kJ{5ZJqI6tSSUbz1{2fYRcW`?-zAG5G{9ZPG{khs%G&N*@&
zG7w<B5P4qJ%G|?yu^w~iK^>OZN`}&xP8Uo2FRiYa9H-np!D6x)kJv7w3GBu*Ipf!_
zSkkrr+Lnk*OAlGUn)N!!tJ32BhK(!ymSl%mzgv{Wm%S?Brmd~~dhJ`hjWUlX*-0uK
z+upgx`&Wv_zGHXvjL+Tle`CaLs4|!1!|Mz3>1{s?%YPNy&we7$mJ!L{RyxT)Y159a
z6-PjQCeKy>1+aJ*TdUNRn8uuuX@Eh10ZWoFBK->&vrf>Mz&*+1+|!~@PcHF?8yG&n
z^qrxr=%qDApVz>^;Lrd6|Jj>uCj2>^z_0S(@Cx(E{|XNu`u<~?EPwDxy2>ZR88$p>
z{mm!K3{LVX{r~u%z3sgGzxo3kst){Tm#E?SWACuUhIz&lc)NQ)6F)Z=A7X2+S`gDe
zsJV2|>xh8>!v#&-B|Mw{HXeP(zbiGidh-UY8_f^q{b9JfnBDcfX2p%g`?qY6Px{VZ
z^=6@ppPKASF1AT~Je@p@G{dVFa<6(iGj8td<4p56#suy8uyB4w#i7#PpL_MD&$xd<
z<Js%o-mwXB_g`I~zFqfPxYPj)E#4V=96{y|M^DX3{dq0uNovKNi&BTPm%oa9)n0ME
z<!Z&zCD&dbd3~bG#dtk4x68`wdMA9AM)*FR9cY%}&wk#;Il%k+Dwo;-cO%DBrH-~I
zS&uGKEIS@J@r2tu11_~H{-T7k`$3CmX^F;md|N&<Loe(3R1Lw>PQk_%%cuX;wR&K`
z>0`X*(M?^hGv!wNeo*s$;&q3etgGgK@jURLv{(9%Py)l1fC?cjp^UAGYeGyqin(a(
zb;LpBz(?~X9DCCGC+uuU3AUJa=v9+u%hpc}S(ytn=Dyq$X0={$b#Cx7j>_Nrly)UP
zm_D<`{;*HhBeOUYqf2IS%YNK>Agvbp^ySq0s;Z;0-CvV^c(0Z3>HGSwK)CYKz2p7g
z&x_~eE3+t_3Sin`e1SvuqR@}2OPe^>-PHfL+~{|&<&<=>yn@87!SyO%!a2KyL{wG!
zj@B<v`1I^bYxANvK4(`?J?S{LS*tySZ{=sL88RW38P86=xtsWS+Ovom!3OCD)8oCT
zhHbvRyV-i4<<8B!H`sdTynAEw*N$!Pj{Hr}J$B@OWb|j^VQ^q5XuuM7SX#bD#>Ax1
zH4``HH9PRM@!xHD(&~OdKY(%7y0>jE(waOIZ)x&RC^>Us)!c^{D@5cPCq4{0Zf56t
z^K`-dueYCXuAe8h=A)pz6py~dypMMdh_@U_((Ov~6Ms>)qECV;q<Y%ISNGyKHm<UN
zaQ^#y^)LAzB6l7BoYfPznEp}HSg2GtL(lT6m&;{`iP>(8?EO_zXS%KFIQKL3qL*QO
zl*rPO1xpQlx@xi{vk$HKz<HSW;_DK_-{BG2wfet)Uw^NDx$wHlA027krMlY|Ze6-K
zocoNxX7!n=*Je(vnYcJ*Q>5SI$#u8iH^lPG7l<Y>7|UwaU<orb%w~_FIWb{&<icJq
zCPN;E2OZ55j=JyI<G4QN>c#@C8;%!Fg1ZaP?=8NoeD_6wo|>&dVR6xm>uP^JS40PR
zhP4%&%)Wf`k!Y-H;mU=1GWrqhChSF`vwBl5UfHc0X_Dyu{r2OYL{|ob)Vfn5mYuBM
z1*AP0%acueugI|}zgD{aBmedzbNlyA_4{qEc-{0{{ku%*nVYMAR@C|b{(rfqsV$ZM
zxwok}TWKBhyN{{|7+%+WZpY$pb4-6584}ann{r_<Uz33V!vkd=mF*umzVJ3M%6bL}
zOZt?2V!U$Eaq(swss2OC21X{f@7HA<IJ>YW)BFAUh#6;|?CDynDfVp6V_t5{(<$2G
z%eBKym$~0d-gPy9Yy3=^%T?)e-=DL--pbf8p@VIk$|fI|Ckx&@5&02Q_(3RRiKcDm
zrM@Fx-}T?xcv+r(@YyoHg?GxmaJG#MpV*bd<8?I7-JfW3%tX2K(yQXNjvdPuwkOOw
z|F0(@>_Ixq=DuGigtdftQ?^JoO@AuDH;M5{?g`xji37g9>^0m54F179mRLdvYlE1W
zlE|mu(C=^nPg|^^%cn`w0`Uy37s3*|LmZTtg?wZfBqUdydebf;v6E3o)$)|J(=i_Z
zpBtkyBKJM~|L63#Mbm;KPkE|#8%JLI6!DS!yzQ1BHR*EmDz6q*>VKYfI=g#k%-uMT
zqp8)(v%kI;-afrau~|u=M9J#fl-?!Ih7*smIWAswU9Ll_!SQ~>#fc@~<R@QZ<kB#0
z3$QR^czEK%Y_}5IfQJT?Puzaew&!y2zwBepocB7{Z9n>?fnUiY>E6tf+kR|&B$wHK
z-u{Vv^`6@v56_GI3lo;AH*nwJy<BqN3B4DK-oBh9dmvo*{zp)2AnD5)Pb^`Fr7>)1
zOw_0$sNHA4mK3aD6bu<LG-UsDFa|!1wxg-j5;R~q1<Qcp!bV1p852()`_KR6zu|V~
zlmE~DRrs{grlW>K&Hh&NiTOKD{8#w&|AYenhvpM(WdbJ;@Cc<PO!$BP>8q2XCs+j%
z7-EfiiZML{o|Zss#2Oh8Q$*yPvCTT{Akg+uu<eG==G;{odIBjMnI3vQkniYf2!6`2
z&0E}zbI0wkCpYcuJRp7}sP)72n*w)K&Ia!>uGuziWkjXk(Q8TRn{<C3*mlWc>Z|XY
zZhqeL^igci(WBjIde2_BPKnvF{!`(fJB7PNSeWl<FjpzH&-l$Y_jM7AxG3+34!4*8
z3p`_lJ@gy?-wb->!l|x$`L#jVub9r>OO~p4!q0WSk=N)Ivij_LZuT*IUpXoN{wGXx
zO)gJR>}wNbD>i-*dOH7)?g0j)6<vR@gbKFyEm4CFYc5!G9dZDTMG1;8J1JPEui#nZ
zxXK~Kpmo7i_5g2g*Vj)nHhz+_bUG#Cd`xm;!`xP#8lBD7*7nx2yFIRHlubTzR;aw^
zW7DRqkNy-FStL(O-Z5QUV%^f7#BH%VBo5a+&b$7b^YhZj>c-`68B>Bfr-UuEcWex(
zc4BqnWR+}~(#9~2O^k_Y9ZzM9^e5HMEnD|F*v|dV`oHVHYkCz^?a$t;nJdrvnmQ^*
z%AHB5ea5w9Bcpaa%b6Xg3fuJ=*%;g-FYd(>9N5~wM70h}&KPnXau8v;Ais^{Pg?(m
z|4fsPgdWin5cN@nOd4FY+W0AoQD5i-)5h)%DKU-*k3BLqK67K@k));5J7l|LPn$ht
zzP*n>S+Zu<*?F7iEZ%y<&b?T^c#5w2q=G5>PfBdwTg>O0!<3~JFsU(X%jMh~Qp;~$
zS-I>*)2-DXSW6k#$=z$Re-YkzuJ~zmS9<1$H9T@tkL?ZHarH_o@5DS?_Y|u|B2T7I
zt<N&4nD)6Vo{5K{(741JO9)_T9~)W{Q=`P317{P~2ZCBGm){7Qh;vNZ!>Ks+fW3ey
z+wM<{bEaqty@_gy$!XS8ddz*}F59)=HfDM~?E9Ya8r%HVS{hNg>d3y1+R6Q0`)~G{
z=sf+oEwcXOj)zIAWk-(gJ{Hp>F1&I_#<NX7Z`KtVi~bNPU=g@_afi*7=8tR7^X-xl
zxFqZJseQ(mSK<@(tQM_4{lZjEwfswQ$inRPezCpv(;vU!`R3eJr;x(F=#218hbiuF
z7sf_e?ES`OlU;E#oso@U-<{klETMs=9cySrOzi<0r4L|8R91$M(K~yi^?W6wig5LO
z|9$-b|M0*6?8aP7T?|J#n;-xGzw!V71ON6n{@u@bL7;4co0Q^$)piE|(i0{;hxd3^
zEbe`c#Sd88lZJ){#0+T|g@J}N$n}H#|Ns4e|FeJl&->;-?~VWe6aN2C4_G9B=D$6f
zyVoi-n_+P`);1k6De=w(a9(uzFLd%yei5T$b+a!A%i5L|55$_n<Q#NaMc=BNym+ay
z*Y?mf&1pT-ds}@z&Pbe*bjm3;erl`MvsY6-_nwXyd(-i_Rr~NS0jV|Sim9=0r)j0<
zZhKW&Kkw!mk$cT8-i99P7gP%_328WKN3UWw_WYvMXy=z1CR}r;#F9yU!$Ma51l3!|
z+zU8&9jm|ouf3LK_JY`+_Z|UWCaSw8J=prtww^_T;Vr}IqgZ^7rB!EWLCknd4`}S$
zL4frFuUKPdQOjIz4<TWuFz&#EB4D5EimVm>ko4NOs6{te=ck{EuT^5@QTeu?v-K?=
z_B_{2KmBlS@UFlxj~NAaetzLv+Fku~L`Cvdm+iQ--eT#FTOS|)+Y_)g?T2JT*j0zc
zCI-cdzdW4Q|7Mum*d(2iZL&3?_b*e#-4l;Q#8=j@d{|<9FyixK)3DPA%MQ41nBbRR
zq8RsqamoBo7bC9o9ku?+l&fV0p0c!hJ%IyDAYf^@8CnuEOR{8wEvRN{RaZ$#oMr3u
zjcL*m`76jJaaHk_lDNalOYS6{u;8Ag)~m3)hS@m(UUIpW*~~eC`wS*8-Tz!BU*l?d
z`sepAN{((i^hJZoXZxk&Tkfp)>C4<|-2eM?)74uax<$%Y@$LxaEm)hiVJ4GC49|ps
zIag*W-OgYVoDd#(LT`%dtBb78ANV=iUxe_#eY<r@pwiBDA0Dzc)<!oiN$YZO<8oOt
zt7-4S{{;&j{xwC)o$r~=#s5Pvfnnvw181=W2-emZF$d!sZ3-}8a8~AKO@>bwN=)Eh
zG^u#!9GjhA4mWD;_+s0zDCU<R<2kOjm|yeuajCj4T^Tb^kL!Pb{fhs`|2h0){>}K4
z?HgMia~az|`5c}<^$}bRKidDuAFKaXFY*8X|HC{--<TY6_*~EM_Sb<A|LvKZ|I{PK
z*4|5%EynbaC1{xjT8qrkf|!wgowK%lO`sOp-GB)`hXrSFOZ?-R*u`Qx@sNu)|AJ{^
zQn|4`t=A9DUSod1kNb}d$I;D4tta19c{t&?O_v3y<;e>1ixVG(EP9f-$u=M`Xv0H`
zr3s2No03eQb~F{8e119A|7p*{=$eo=x6B)>j|rRKd0P8`Rs8)yaliGgVy75F^=uYg
zYnXaLBmP~*4^4Nr+7=dN$8FZ7c?s2)v*zjBm@IpIVA1c`r+ib23@27EGg?sTnf;5~
zfWa@SWHpvhz}5mYCMFa>RSbM0*cmeBtlY6+rJxH@Gr_<A|3825g@we{X2IY8>l41T
z|NYPZ?LYsG|MCe5X$*_)6CAS^&##|h|39(jPk-ZIdFKE1Y(M|=e)})~2T|oHzbwtb
z;wNm)C{tpJ?lXO$yerZYe<SIs>FrxjV;!#j5!ooTs0lp5xphmx7U3@$mR@}mK8a2$
zbk<X3jyE(u8ve|ve`adXv!IZob3cwfjS%ZDw2a-!_on~jp*rd8Z(r+FC4X<2eEe_a
z!wq7aY%NQ~dYhw4_~N<$CiAtit#!_4dv147Wl~%)w?JrGC%@+2iz-<S*D|;=Rx#u=
z$^TG4z|i?)$ptLF#M)FMrhDW9ZY&D0Ubxx-DW*@P8McNst^m!nfYNW*HEC_{^&%TT
zNKK4UDARO0HdjUCaQ)H$290j=rhKMsQtrujGA*1QDBsVxq<5Ry#c%~Lo85}mwT`Z<
zHM0Uf3Y}kmTJDh~m!OzZ>54L==_j;jTvF2Ay5^05*%jMWQawveR8}mRc0}Y%d!_Kw
z#CsD@s()6}dUE#BU2CuF$tr=S3BMBEb)|T2Ua!y5NL+X3vHLy7&l1-@h$b+!teIVp
zB_Oc0l8g+A=~}s*Hw1O9STBe&aWA_lSeCDFGi+j>qo0BnliyTk6+K>0kF1|;`zBe%
zIxpb%xGUy#zut^-^M`4XX?B~ho}2nH#Cm&ufqeAONw41bE{%JizEWEA-VMd0#_>y6
z^s{fDx~Q_y{{DXTOu4y+`@9V#d?cNk5;g|(Pu&*5%f!$;GwxR4*R1qvs~g&Li&p2^
z@Ge_=dcTXZfU<z{qJQfy-rRa->wn|REep<hOZmRov8uLbhtuNE7C9FS{ZGxcZHu`s
zXXImYb<+P`OCGR4T{$s)C#L~JsPX0#Si%QeOUB5Mm<qimEHeMGnLyq5^&g^FC_L*D
zDK*t-dUvs`n<-X-?biemM&*l}q#}(}swRv4{W$mGgnee+PW)0uZN+uQPkujrbN9T{
z*`qZ(XPumpK6B3T50ybjj@q2{o+tjYX6MYKpVPj*n;vbLueM<N)i-^$5wF*pCU5ch
zG-c(B^-uGSS320Ko4Qz;27L&6x}xoGUfhEdpYk{8?#*SqV^Z2~)7c)PR-tEXQ*zwy
zdxC24nRT~0S566?ct+B)pjA%gjbu5`N!#tQ?jd*muI7Dee{<`z_48I`>C3YNZy(g(
zUbRKVW=+QPF#ED+huQsBKfTox*U5Jz>qf8MpNf3~F=8icehSW+=aYJSA^UBwDQn)o
zd|%^`bjywV%Z{w~$qTi5Hyt@xn%=a7t$s?6BjcOp)|bQkLS;;TW=yc@Vw*0({I8ZL
zoL&4vtcIhHYDC<*8{)CHFOSW+ruI<Fdx3#~!0t~v^=i*DH9Jd>*O}fm^GZ%Trn%x?
zwt(l){Zcp9UcKhC{Fti#rbC}g<LAqX?a|nrP$$XA(yo5FK09`rmPc!ogJ!7GO?eKj
z6OT7+zCG7f#Bo~fvI(2dFPrHRaJm0dZ<(0V(^fD4RdJ=a4(e*&{9HAIXJUWI>#c4R
z>T+doCG5WRm-GJncWTx-x9WX-vv<q2$8K(Gb&_CUieAmg_F|I|L)q>&iH^OJbC&Ij
z-Mg)}`FVHk-i4>if6oZmek$VWQ(m>DA#cvF5IDy_wM~!d)b8sF9UreKw|(^5QhBrN
zu*b0kPg^#Z+%<W-JH^(`?Aw{YSl+Uwu18l?<Gy^&{p~x>G!;9@M#=0*VJLI%W|s6~
z%4xZ{a!%#O1g7#1Ll?tn!PQ&;g=lnqo@8CW;L*Bwm1|bKQ!Mm)de3~xw#75Qy_%|Z
z<4WGPx!sc54_p!+`5Y;EyJ}CdhtK+wu>Cde2V6Oqo<7awE}R?2e8b?{dV>_E)#a7^
zp|PRXEljS}Ij2<*r9ZqNID?ZtVx}ykn3w^Bb6oWK|Cz73?_6IS{$t+nXCgD-|NrS!
zw2-Cpa!=LfivgQLQr@`#Svo=5e6m~?v#Ct%ulxq)+Ffmp$;Xn9l{~((e1W0$+{1ZW
z=5$)Ain$+?wvxGVYgv5(lb_VDI%~eKeQGDpmU5`xN$g@Sd&#FP^xj}*leE!tYo9_v
z-IfWOzlBtp+B|utO9=P}PBW0%Q_!vX?c;+pk=yR=Q(LNG+0f~;XQCe0mF1rgo&Uid
z!}Mw1toFG4p8jL5vfn(ErZAe_o~0$sBDZ0;zNWGGb@BWa1wtwUZ$5W7PugZ@Ev!?K
z=wJ}@?)$(0`FG9M?(NrGe_qXI;V%yNb-a^Uq)*!l&07@m^N*Uv)V`qRpm&ap&P6vK
z&3jkCm&W>g&!?Pft!=Y?YM-iaOrP6lR3534c!0t1Qj4sPX2s>zR}JdcyBAJ6VYFPa
z?Ud@4Ul#?Ar%D|6ke{br!FBk6{jaV&*R)@-?=O6|r(4(WM72%C?5X!k<9^JWdG?xB
z@^``9TH(IUX0lq{oZO2OH@RK^v!>K<`GMu)y@yZRYb{LmTRpc>G_UsC;h)(`(|>>W
zs5rC3d&!~cozJAd=gX)iU;D^ue3V!6&S9@f+a^ta_fYtJr&rAUgVEa>%G<Ner*V`#
zxLovYJ_9pD@yDMQTv*CN<h~7P;eBvwi9)n~fQy@gen@IXi2`W-etuqw0%+AO?rW~7
zb-b~W0k%e{nK?0C{3+qL^KQEd)P4_t(HkP1`|VhCm)#P-OFQygLlqiiCAMst6zQ?V
zIjDo_$z$uyo3-z)IpQWzykobq^>pL(753A`^X<57g*QKa=9ICl#OCpb^PNr0H(N~W
z@ivWqr~f0T`s1_p*@m~x6!gQz%@?K>?Gtcvd-&8j?)mC#SI*Wf6q0@RRI2qJ+uHcq
z+h*2B{_7P#{x0d@CXGeio?FCE_nf>DS0lX6N_nEkA^Q)4H$$g9`oONc=IpC;`f7C_
z56ZlK^!{6vT{MSU@P^-VZ_JjdGM`H-5S~yl-~4FSz6pXZ1@TkLuPProIaMNuCH~G!
z`D<H}Y<$_D`9EX(w><Gcgv0kfCg$!Z&yupv+<mi0G$t)MSKNTb)ot4Tg|j~IlYhE8
zVZycq!7n1a*8F<hXdM^!_U@{Ew{z!gc8t%RQN4VZ-Zt0YtIAJ_Cl_cvc-M5>z@jha
zx6GY$nXI9|zul{uBDd4WZF6gilt5~5>D>G8&pcIC@LN@o?G^ldt)q>X?7K4)9k`-b
z?@?K3w)3`_;o3Xmx}5)~9bMJbq%N@V@~p$&{8txT-I9=af5T5FZCSnND><~S?uh(8
z9=q|UU#O~owQH{YffZ*;GWz<rX3koq_0g7VHSgNPjmKmq@7&(Q_IpnG!bhDoTaEfJ
z#QSYF^DB<MQ?$@0*URMMCEoi1=RThQZplA4h;`BKos1tZvgL&dI0WWZOGxfGv|@9_
zu~<nZ9zBtqeSg;b8~CVbn(XBLGvC=&^`u2a^RZ9Y?)7!eHdHlU|CR6c(oG-ketkN%
z^exx@%buPOPT20`bKJ5cbFt~Mm*w7~x+Vhm&P~|3{)Lp1OECl6w4+aZJF*+)c%wIG
zNN>J<<CXiv_GCU)^L$QjM>&J|Y94tx&6Ta6(tlR+d)|L;Z6Ne=!x0u)g(<dN0+N4f
zwSsM48nv$6+T)QH(w3&cWyIX%EwD_x`*`CmQ*OU4Mz0tnB-Ld;hHT-tbF}evH_*>H
zt(rLbeXjJ;#K3iDKX%S>T^LaENK9(Wy6&3SCRvx|UVSR7(_8o|o%3%>U!}hEtC^my
zohp@g&aay0;c6QlHRrsJ%(jV#g+Fn}uILy0`l0Sr`1yw|o=abBnoz$i!)lth(*E$P
zk3E)7h<k5wO?V=AgYjIiS$E!K@fn#g`AVN$6!FFD*|XmgqO+E_aGjkjs8x{K!ex`Y
zSmu==OTZ_Aj>$O@@@JFZ$XHzsOHp7*@~V*dlE&A^%&v3%>GC(iDP^J8|9sWTe^b=*
zb8|X>f8WD5_a-Miaew0X=Y7KQNG{V?{j;@YL^rNBv03e#-N|;uIoYgT_M`;6-E6tl
zm%QGY^_VWv`T6+Jl#h!47Ue`qh3}nwuW9+l2%f2mTR059PgE2BaO-AeO7jVZb?vkM
ztdaUWi|b-<=#BH`dfVUaQRZe$aF{XOH9K80FH+suP?cAD)8*y-ZUS@mN#1G=nU?V(
zq}r<gfi>^;soGUfyJs!t=aZk>%zn>f>X(D+f!FUWu$6q@sm;^Gb4IkceNHd8$)`!n
zG-CaPMO=$yTYR5RX8rn+M_K5VKZA&WDSv?Ck;y#O5^35p&zbH0x61uKvrK$JS-(bo
zEn|`M-03IwXe2H9A!A;#s$t2)!y=Zv@hgr$e9$3%!DX+R>5iT+dr$1BdL-5&7xhw#
zWun72MuoG&@*iT;W^Z?SZ9eaSrR%Z?E&o5Y_Wc$C%zti*J?(g@`sdljKIfUURqk;t
zQ5VWP&+x&GMY{5L{DR<=Gl%o}8;*A>2Yv~%|8zO_&i$!gmG>qd$#$y0^5f(3t52fO
zZZirJ%M*K=RUVPN{-N|26VB#Og277~f(%dmy<o7F<)W?EyguFI!d}}yOssjO>3{Iq
z>w|uQZ>DEWF`8&N(M~@-YTkqDq&C@_fZfY#j-_gLUw$&(l<%*3TfUye+)e@g*Lq8Z
z-P0A89Z{|_vMcPok+pF18&2C_n>^;f5Vx6;?EXS!W=RW6OQAepj6&NvuVelK)uwLq
zA4D$KIBwZBd7bc@>zZfXzI<gdsc~Kq8F8|O^GDH7(KWl8to@ayrQAI4^x#nqcWR8i
zdWYxA))b@e_^_;%k1n=MI`wx~@Z`v5?|qMA=7%3YbbIsULyuSK?(y23`Ovhxq{=LN
zg2cnk+ax~6i>wwGk(;xfXYr$TA42k9Y|8m@`@p1gDIIgQZ62sv$vdt8@I!a<?v1%S
z1=ee<{?>DM#!;<GPOSy*ch;{vv#jmBN0395OoX;q<gAxBi}?3@ui46fy8Az?1cT+f
zi=~)VtdRlohyvMFtRdoJ0VC?wwphE&M6DK|6Mi@Nwwplx_xOe8Cspj;dB+<_wk`3@
zu&T|xGhM1p@EfC7%E_rNjV6EZ@2;+%q?+udet5?2+qZAuzI(fW{=IYR?ea^$wV3ap
z$8qqI!551^J6BGawAAX`A`c_Ispj$iJIakM|NMxoFy}q<{Pansit^c4Z*DRzHJ-cD
zg(Y(5p-!G@!IJEE)!v#e%e|8pCiF7PirLJ$d-t(58Pld837<WCw^H%(vxk?N`A!Z`
z{Vb)C`QnDlg?qDJ9{nRc>+ne#)rd70=lt|v@MNZ@+2slBE0#VkPCG9mF|+NSkHJih
zC)>o%?B_{owBGT~<?Ql8iI8~To!Xv;M^leqosrsI)l`)bSK6DLa&^n(H0Lz^&&7IQ
zjGW_c9V|_pF<IA2*IBLd$ypT*$&0-2<u`p@=1{qyKds1pcE?K-rQD{)8!hJ?-4tH3
z@q_Vv!~e7E85cPT?m5)R&i!BHWc?3uarZ5SR#OuLa`HB7zdmUe|7eEjmfbDWw`EIn
z`G4u3DZ=?u{{7YXzdQcPi29a)EiY?)&U*b|-D|ss(z%uC&lIC2O%i9Ww_Y9g)Ayd;
zMz@AtR*OOwu6)ob{%VS=SHdivHIBxL2a@-H6_m*~s1iAtu(S8fOd&>9fdGxh1f%)O
ztX3?u`C)bRuiXQeFFD5+Nhzf{O%$78JAH!5<w%W14|w?!H>~mMFjw07_q5sR?&f6e
zdHhC+hDisMJ=Kr?f5(6H;?19oGLomt&y=fjSxOiPrXDGoYAO&ojcNDQXDJ8lZoFP|
zLrm<-E9=08`z|br-d-Aa?}DTIse|)Z_ce)Us2y17y!h|u1M)xF#SJGcw|i+)U3F}g
z&7}+WAKb-%t6RSguX|s3^3aK;M|F=huhb8JR`uk4T&~5BXDiDBAISgyEw|yQ*HzE%
zz*!Hv_Uo)$v1<MFn`=*osV{NYzi)S<tXf92T~BMyn#XgOupK=VC^-9e6UW87Hq&nC
z-Fm}#eUg^ih3#MCdtccX-u%QbJ%97+Lwl;-yZ0>os4tT7%Dvoi-??hX+^254;@GZ-
z`daeui<De*Fx77HcD1?fdP}3uDhEw+XI4!#44CAb9<}UXrnB|;;Oj3F?xk3!S+YBY
ziSJywQRaimiFqD9>_VB7tJHlK#9EzNarN7Jm$zYVSNu|0u2yb6<ypUEk@N&BtGumZ
zMi!-OA_Hyw79QPqtWP!8%W`9wu=e(hIcxUKf6VlIr|t3;s~*l=bL_0a-It9QepK&$
z|M{C(w$cvHcbjaPl3tzPy~>pLqOtk2r-DCk<eznZz4+CKrrQMq&f!fxg)9$Q%cX-B
zuZmuDXX=ajvIdGX?<q0dex9>@2V>=;)u#&CnM+p0JpN^r7jq#fLP+f~m$lHg+ebx3
zX6?J0*rD;1YmFwSNsnl61XJr1N!y3NUbOyJn#Of??s7L4^M64S!Mj{y#X^h2-!EF*
zveM*c{riL6YMC8XayzChQ_<wwb#|X|#)iffnz2r&Smc~}8KsvLGEX%8w3Wqw$veq&
z&7W7^zAD?|(Wd3VHF0B&{FEbE_dBg_PMz%a{C({P!_M8s>yJHWd7SvZ<&>(^+^wN^
zOMcy0q_{gPWlq_)M+aX7l{sIK`msdUOfc-qEsJ|?$2KWVdsf)HT*Fx~Tx1LX(eqQS
z4l3Ec%MMXge1Ep;@}rmTQM=B)a<W%log}s_@p-Y{quBVBTiBm0$mK|S=0ArwW6tWo
z=h&7X{XN&ss&uh#zkldGF{V4x*RJgNE!TMRTQ!T=yK0uS04;0rr5AU|TLiXzxqbW2
z*%QvYFHHO|&UVedrLkG5{YlH+@5KWD1?%P~JnlZ8JL?X!#+SOUV&ZqAeOsni3u}sS
zKfLTw#1Wvo*EB%DNX>TXjGB3S=Dt5TeOjPU@)FrATjw)gt;#($&Ed23p&Md64|dJh
z5u3A3f=yfC2Xjm3A^C+R?3dE{mT=oKy>*I>kr8-m)3CSj?$i$|uVx-P9jOv~s9EIJ
z>vNpT4vG8gG99#5T`=v!*}L0&Js9?7=C}O`J6HZ)swtC~-(aHWi9-@Mf_d{?`m^<B
zdZhYSUVD6Gh0fv-AzQgWf6tz5H#-|Nm+wiN(bj-Zt~;k0iYf2>|E5Iy$F_$~32V3|
z%Di`<R*i9Him-YrY{lO9iet&<h?|oS8lIY`sp9-H%*WBXl;eUL&z_h6C+12TOBa5d
ze{;(_6HzUN*zg}qnU1dAwf%;?xu$r3*(GnLH_vLfTiYDj!|D>SmiO#5vlY5JrE}Z)
zco^TjPn}p_y2H=;@G6IXspU78U!T2a!PFPw5%)_a@(sJ%mX&v3l{=rX((RDMv<G}*
znbwi%r*}C`5Nl4fpYF@8@aL;>Kq+@i1(U?u6#<ujw_ST;cwjo8n_5Tu@uLz=t}pjJ
zd9=K<wCe7gDxrjCnJH!6Ri4XiU8c_B*ty$oaUxIbTDx!Bd<P3c`y<#FSV)Q$Y?6Is
zaYgxc_%fCw9UFvgN}pOWp3}{0HH_c+T$Lqi@w0-rH^ZJDlT|o#s{QT_u7aj{No<|0
zo7|Jq&sXsoDZbqywYlVm4EHP3-fvS2jM`40*8SBSdo0w(NH&s7{Mg*57W>yTUgkG)
zoFt}cVw!rI`Ro)A#jnEpJ`t0$qGhHOxjv6)WMf!=<;!YpEe_-XV1g|U69r3<deAO^
zT-R75H9lx^tC5ibwjo&yQ(~rFri8<8y5`t9Bko9-hwWXZ_P5pCI#nHwwntnYZ}+Tq
zo5tgrHz}$9&$;F)s>g3G(vX_yT=e7YhuQ7-&$x%nhdl7iuQQ)?Y5viT;s@-lrv&}n
z>{IEv=#N9|y&7|_J!fCMdffZPjJN0c>Wgb{%u2HFWKMi_^7_x`7k^vo)U^Dc?|89X
z|HER1FLE}L74_BI<C*hqC&j(%O%eH(DKRl`X;MD>q$~WPmpr>Jo_%rlkBrV83BH8R
zp!a7|{>h&0ydm>cy&~&hp31tnUB*|Y2YtG<HX^sQ_r=#$wo(fgF({<i7H~aC^ZF+x
zle?wNvY<D!{l*e`ZT5Am<}aMRluy>t_(yuNMoGJV%jruRFCTKJ^4OiM>+Lsli<G~=
z)}X(7-^$EStCmFfB`DkbOkw>kwb4)1CTmVbFzb6!;|ulMmd){5tRQM$6**&je&r>J
z%MUb!XR*3WTj@1XSLMX@0)c0_`#4grc%DAE^45l*CXO3;z6h}tnB-R$=YDIA``GH&
zC9o{zLdY)$vHxj`$@em=KYNKEy__O-YGy>orl#hFlNOowzhw*;6Bc24q?o^b&y?-F
z-Ph7scbu8Uzdk_rL+4Hx=?^b61FqI=F=lOb53XU5ZcEyCR@%w>KQlwtmG8{|Lw?T6
zW7!hj-0bq^^EbW=rZ%hJ{n&kZ^{%X%-z}Hy5)CR=fA6o_t{>nl)qSGh|DN^7#gR$(
ze_x$2yK%nO(;b%TDjP-0Lk(v#Rd>Bo)Hm0OmaaKxlz(tro9pa9?Y0+oO-`tHFZdu?
zcWqD7%L<JPwFWUA&XG^Pf0K#olwOr)Sb22)>>rT|>}hqcJ_+p>`N5~p&oX1_r1G4|
z@21+auQwJ)pL*6dVRz0Vf&2cp6CLUvEd5w?rf{M|Qed<6GvR{5()?4?6}H%NFghye
zh)HI?o47q)cB3>WM@{Of=>3ltTzL9yf%&r|a*{tBWumT>FK64?vLzy8@17kk=Zh*2
z&YshBV|w28XRVL7Gp(4zGV#Y`Mzf!K+ZW!hHlO#+vq{L+<k(c*dW%OVOg_IjWYPLW
zn2$;Fu*hTeZCehSI5f}Iyy&0E^+)l(TcXphhs^tI741?^=$vdbJsipR?W`5Mub<Jj
z&3kq~l9}2Rve#v)$fGMOBl@f>W|Ry3b}rSpCbs*S#G#9Z4ly?tn9OHc^h9woBb)vN
zM%k5%BF|6!@88*dx;wq5qvorS?4}*wBBzskf|uHwnDuC8HXeD_?C^#&`O)oP=C1pa
zCNoAByFQiWN>Ad<+0D<vP?x=0NT%Spvrzb+Rnfs&%Ov0aa{MVN#;2-!Ur}(`h3`i^
zO**#!R7rmOeMZ0Gf`dDQ96lXyEQ&G9o)^T}tUoJls{HLWDt^0Etb7FAd1h1_ZC`Du
zEv>w;S8(+#w%)ZXw6zv$zuo55`1#PgO&eL1bNg)ze_rl4+aP4mqV$b<HFw+#DVOMv
z+rtk@&wu~(!JOpnS$|w+e7qT{bN2M#g?o=|)J|5=SyhxgYnr<C-6GznR!-CJeGj#H
z;(Bn`be_heTQm7fPo`Qlszy{=O$&@RQVyKq9(>#DclgOod4)?mr)h23Dl#qLJoD6e
zv62ryhnw=22VY8%_VVHi&b#&Y>B*}5GAvWfbr-f7?hEzp3oyKRT=vZyi~r{$zTUNd
zd}Eh~s;&6JBRe~GzN=DvbKvDtcKwcn!Bb;DC!UgNI<r8x&?&#$bWgfx&8$<N&3f#s
zqUJ_7Mz8p`LptcYfkOyS<_*LBD>S;^f1M`O5oe$6w=k#VZqfDV!2CpRHx5r{K5n=5
zue&Y_c!$o=3iMfFbg?>l&hd#2*<WXc_n&%rWMkpuqkA5{|IpcEo5ks={`Fp-=5?P>
zQ<#LN9}AE88(a`@nrRttPQzJusenJupF0xQu<<uuo;+*S3R`A<E3Mg_;@klb5+;gy
zsTpXjVgL2a{qH_e_2zx1QzgGQttd|R3eHw3ZJ)k~Z%W$4r^`+mB!ypHcBWoxPLy}x
zz0GXPLpysd`#xF!&V9T6;rqzfAN0~?^Dh0#yfv$)?{VU)gUqsR#(FP$UT%H=@&NDt
ziv{ZX=6AMVD0J4I+a!48sKL1%<~~P{?$#H#*_HH@$>#Ph`L&1D^gaBedRM%TI{a=~
z>AsV<k3QkQX0}gm^EdG;%j%}J?O*@(lG%piAJ~3RF8;dr(XV+Y5^L2bC6uH(PUkgT
zlCCA&@@2Qa%(w5)UM^f!y<cTlpF)F5`_XNAnUVI|zt30Y+&=V8nJ4PvowD0|U$q6F
zo$bAf!NSVKMK`M0-M{Wl(rO;P|0!9<d2dpqtM`P@d-*0dbbff!Lx(ck@5bSGUZf`8
z+qZT9lax!!E12d@SZMh}tIewFto)Y7`MMH6X5@A+Jo3$~?)K|lM>S1v-aocyVKk%G
z9=o>lCmB~C6YAsBtJ)m$C;PqSn`z7BR=twnRF$`q(Y^8g=9E9hf40`!zO=Lyo-=Re
zPGbk&qwi+@G=62x-0!|{&d<g(dn`V0mYj0ou1AYt)sMe5UqEvL%n?UsVQW56WljL8
z%|OKg3oMInj0}j{jWI|3cHU#NZ+GJtnxA$(^GVI?(1O?!tCI;`@Ae((j!g*S5t&_f
z<<um_lf{`E|L=SLVZx#}D*CPh-P4Qre}0?x@$cL#ogQYtTLspf+0=4)ems|E<jT)S
zBu?%KIr(hIgOiCL|NgF?D8m+!zpcCf<=s^RncE*_?vFYhv~=68bt&`g9{Mdy{?7g`
zr@HyK(cblP(!W2SXQ|q-_U-D6d|TGO*qpoS;QTAPwa3-HpZK}_=?`6Y`Bg&r{@gl8
zQHzxdrk5)jxpM9`Cj8ZUtRV5PN5_FJHFD)Ah8txLHvZ+)X4I}czFd1-ZmCKf!|@)&
zlTikd8cy%Ot=_6->bTqWg5>tdDBdq~-|cOxXluEdl^ZfK??fNpql=tR4z7OtttX6$
zJL{mb<nOJw`nHsO+Ie;1KbgwK8sVD+^FvZU%bti^EHi8Q?ROPc{blaEYwycux>l^>
zkx6)ZWp4c0tF52i@6;^*x^g>z%!~D<)eD-dmgwJ<2%jpx!0Kx9Re_^V(<+@;-<vlp
ztNX>|6MgI3te4#3cL-pvOFn+_TZ!Y5!q9%^*!lkIMw$E9vZZ@YKHtGyV8|WgGFO-<
zYe8*+e2B}bQ1A5TW$C{YZ+|uGdbL%jNQg!JJnKWDj5jZ~Z9mSJS+CZ7(DUj7UoPXt
z_6Y|#iYHcZaD6PWF?9)E^81{8_?Ma0oZDWUkDXu=%O|^|{PXWeWz3m><^I(-KKWt$
z(5HB6jVFu$znL|EdewKgdb~<e3^^AvGsX3oQJmWG)(dl{#`vqBeN^|c>~oMW<AFsY
zd;uS2vQHh?klq#hymF0Dl=w^WJ+IH5?c266<H5PicKP{175n#SaV<)4nqI$OW5Zcn
ziS|v#9h`C}PAmQ8oZI|nap6i2k1&R%l@kk?k`@Ltgm3rXR=!ff*TXErcFBXy+7B&-
z-6r@vcyQ5aNyF?#XC^&0;x@8h(_y!C*_<;?N7kQR6e-E^-*$D3WXl8>hf6-0&V9?5
zK5(7nd01u5+{+8Y)?afvp|e*$mj8punbmJOG+qQ5a_GA!IBfB^=Js;3xf07gD{YZa
z{Q>`JdYx~C$`d}_UA|22Sp9{(pJ_jjeS9qL_sM}HnQ5k!P>#F$zh9RluAVK=Pjf9P
z>zi;?<<Qwn!Z*(zP>jgoE_&}N#_xU0$4IQfIcB<jh0<QznoaTk;Zhcp1b<HYA1_?L
z$n;yN^_2|m^D0V{!cq=C{U4`hml+Y4nPJnOb1re+r;;ko`@fEJ{yn>SL-UR}Z?>s@
zbA+><7G6@ka&cX`>b?(eMc=Pr{B}R%`9Z(*j!CbdG-aGwE|c*lJpBDaPrlC$JWQz(
zA8p>;3wylt`=1SpkG}ui|F4&O=DojFzvJD~_ggJms4>MU?#S%to5R$aryLTyob*WQ
zZI@ZiJ;x7s*Rtqep8tY@x8wds>z~cF79CGzx6PYnZ27I5hwJg%EB6HseO$IwnrXsI
zgMh01*Ij9h7GG?2PMO>=w7T~4Tzc}nY(KYU|0|sW?@ay7t<%()*eP@O`r(i-g+__o
z69S@cJ-aR1c;ZNM?CI|IeLt=D9B3<<+p_LLv6lFRz}xRGT&uq&JBvfD>Gy*PF^60(
z35CcUODL9`llbXELSi9{gZ-xi?@Hd)p5R><oW5+&n=1^$)?1snFPwkur!zmNxa-rq
zHyPWNds)01HtHR=NWSAU@n?tYok!;v=0zVmX~ZS`!>lxW{Ua%>ozoa?D;zYRE*CO2
z7S5}DmBw0bSkCe8WcrR(-{qQ0oL3%x5WG-Oq@w>&hOWxxM@qUizl{!l3KX^|o^@dR
zB7QBGv+Z1M36%<;5BjFri1bO{`nltH>KZQzb&X{EyI0zq-)7$HR$e>rwNLmxGY^(_
zrnyVEZ~oQ1Bx}pGX-mJ~wmKnswO8cfnWt=Z$pyQXPyVo8aL32a7ViyN!O{JOjAu^k
zzGKh-mD?N2xb;x5_yO^X59eO2<$iWidD2Fi<z?lj&5M67p0H(pN##*>>FJZXPL(FF
zzWcyE`hRKv)PR$Pg__^DDfNCh=IZ!xw;JyerM;^kT0S@yFZb-3&b5ey0+*ZTZm1NB
zf8KTAQ+IMp@Zt**)8jr(o!oP5{RO88y*~vaUB|Chgni1akTU3=%NF_0_)<mc!v~_N
z581x++6gDtF>&9jcs0*nOM6)s-}7?^BIUG1W5WKWB!wm)*mYctL!kR{lreLYef4cG
zVcCD@wl5C<WBuANDs~^wRoCD}!dev@I`%dAmOF8Lcwm0({QP(pnYbBU^ZF+U<$WnU
zQT@xW?z$A)>wrn^zb3Bub?lp$+p$9*HaP8Wo_SAcmf?aU`>f0*(zMJ&o-e3=9J6LY
zqfe|UzY-(Y*YM9eytcfX)*4Q?wV8h*F5`4s*6A-!d*)na%TnUs*Ytdj$3gLkuVwcG
z{~uN<%wOI0hI8x0zT}|E-!6Qy-_qz{+Y)CQ!2Ebgjos8RcJtK^JHB%{G)hKH`NkZz
z{)~rCOjY#MkbB<76LpN!{eAKta!+%f6PeRi6F8OO%y-otKR<~i*zyXm(mcfa=hoqp
zwa*_nol^F_wAi7~`Gr<QyGaSdaxsybq(<8WwPl~~1^ii6F>T?)PbcLH#1gdqi}J!P
z;?^DByz&d{@`Oq4?2r4WAMMzD$7gQc%St<Ly#-Ri%qOP0?Y%Qse;4aMv*yhy|Muju
zXnW`1{o&Q?SN66>B7UKP<VUp_i`xndcLpx;m+8sAE>nKFIc$=o*K#2{oy?^!CwDYl
z&pg-_^!T<>sASZ;vdusCGcYs!*KB!$rCno)ytaVgun5kv5K9GPP%8v9UP8TwjiC|d
z&Ot*<qP7KW3BQ|v+f1PTe0<`Q&Rc3>BA&G+HyXD3w(+@Iuemq*E_-BRj_I~1o<)=2
zt-mkZKSg!v?OUSG0<V9R?m2&7cD}Cuycq7S0^LvFwhGu>uM#{sU)gnv?j)6GfjZ)+
z54&!;5oh!B=h}!I>jl%F9_@;?6={Ebk7c2cX|N6NJ>7c7X&aMg7EDz?kpJ^hlP&MG
z_l25^mUb+cT)XB*QM=5hj=N^R6|M;0Hvb;Fcj?Z(l?J+T6E^=orF(e;ztS}pgL`@3
z`wp_TFWYbaE&BWsLC*72_Lm5^6rMV>ZB_Oz@ANf0m%iV(YT`n_o44L(e|vqPxLB%#
zgXi&-*S{8-uSn1k6*r1(X*xc0OSWt6<B;!3AMVJm&Z@qA#K6#h(?O$Y@5?o~R(w9V
zMZWXR>So1NGhWa5s59~3j>gr_osSkL6*_hKUJbCBywX0P^vJfY-ww}Tbm!)K-tEtw
zCVtZC6;C{~RVb`;yGC-mm&1~Va~njK?ld=&$^90_{P4=(c@nnw_V6fl%(4zH_j8$8
zHQ8tTrrVV|FE@w3ZC&_$LiOa`vTu&NC(bz1{4H!>=LTa>lkg}DzuT6}&*-m>*r^@0
z=?VXl+^t<1XDS7l_{D73C@X%n=Wtze!}^x^rFBy~GXCiHw$^-q_j{&J;yL94Q<qui
z9-lWp?Xq=eugLZPc}oPE;)37hOHJ<y-pC^U%UCDn&&vQ;rnO6y0xq9(HSQBSa6<a;
z-#Mv5yHhrHu(U1WP0w8N@A_ixXJ>Vnbo(u=WNNc)|Jk*7rC_qrhI=2cD9_w<`jFJN
zJuZizNxtShv59d@!yTTLECJ0gr#?N<bWS*D&URDAM(G~z*}EJ9w7xB$#>cF(Hn!y9
zI&Tj3xgHG{PJMiLJ8QRT?(;7XHp(?#Jk>el$cFRF%I}8OUOf}2^3bV6GpJ5$rO@2-
zN^Z7YGxjrDY8IcDH&zOcV7;KT;EcjzbL9!a#s`ihuq`m3KF$4+*2ym_5<eGPC%^Rz
z-aB(8Pb9|)wPPp#T29KIxas<{g~vHOYFU<iirMzW=Szu-mCm&3UsUUvA0G9cyTjzG
z#~q7jm2+wuI|DDgUZoeq`S*vc=*3mbcOP>SvRiJ`c}1n{+UwQk*QZa>%vLv?5SNsY
zpxX9+xk}qIrCvK@jT=@EE_ZObp1B<3WAw@DM9W#p4NJR{)4GfrJnmjRaoumJ(6?<j
z-kkmXe9H#Yt(m!JHyviOf6%e4P1w}vMJA)=eW9C=zZ_TI%CnhCirMa{Gi$D9|HtLe
z?Gh&~{O~)-`{Tj*oA<ZxtCpDlF~qVYX^s>(?^N4)KbjZWdPT;{$fR=H)>Q8|3H5es
zh+hz9e)}swkBu8+<$mL}%H6h)LRe&5Usk(F&-!|Lt>wG!OLuk@hwk6JETYbtBjo0T
z@HZtTYPqKu8A~k5wEC!(XLKbwX;0cM^%+Xj?>zQ*7Ebovy|bSs{MG8%BlGuGnr1&;
za4U7+fjQE)<=SS=v%J1M*!;il=jrR~<M!>Fbyxngk4l{3rem4>Y2ltvtYf6^NW3r&
z$-N_`rd7Ara_YI88%^a`J-c#o%Vx_8mC0f=(<ikt&8pQ^PpI77wq|Y@yQJ-u8_h4v
zd#9fGw&cm9Stp7gowAtKuCr#ktFL#nSD8G^LSDlKzuWemU8b*feCvXh!Lfe}i`=yy
zWo;9io%qOkfhf!7`2D$2R=2IEI<G!-qcQpAhF2bMyY<glI9}ekfYZA4*|#m~yH-8-
zn{E?$*qSM5=^fu*jh$AzZ=^jwxI;sp=|p?;qaf8UEy_ak3kugg+^G72b9<BfthTn`
zBexc^Z@II+W@XTupZi|yI=<s?XL%ye`$Hza9V>lrZnI=b)GF>;8NzsK#~VHEp1qq6
zxG`U{2>!%#Vn;s92@9PUpP3##wh{<DSEsa3`ap+tjPSl)kIcT9)wM^T-pIG_=I>iF
zb9S-JI-GK6?};24=5KXM(nTSTbLA%-znm67RfMaxey;58W#*~*cRnQW9kgtTdj8aa
zvHeznPq5*!`UfV@tn6)T8NU7Nc<<jJ!^y+&ujJpEhCch?$L#VJ#-*`kk8bac;Ss&S
zz1Y=h;nuYM^LE``rt!Yc_$cqaRk>PBQ8#@3=iQi-<)6y`^81Uj6yB)k7f#eYeCu7~
zBUEYf?A)WtvR`*^+xgy2Db9AvvloYgyXWk!F+TIhpXura<GQI1&dDsftEWufcj8#<
zsaVgFvaP~ve?AV`y6tmgpkaS4gY{GE4d0KpH-+=g|Ctx}k3q+M<^=7^eRo@DoKlro
zc>Cg7sY^GS{?0ud&e}F7<@vl-F2(5!E7`9n`7)*EbZXpMw4}{h_15D`XX~oj%@+5g
z5;y*A4v#Fn9c`JwUbg#3uJ6s9*RTAwh4)x+9cR!xx@P6Z4=Z_Q-I<@}ptNw}gpW%m
zZ^*aKp1m?z<;mF#4b=xvJlSU0an$AQ{nx8Xz6!n(fBrHgan31*e~z1(w>eGRa-x0m
zevus$wIt`ZtYeYR$cX)_-nIS2PKkMZ67Bt6+x(vEo|Tl_d`14~oL{#WPj0$DalzW!
zc!jrJEPhdpbDkz8P5vyiOHIeZ#dCs%&`qawo71AxWYmQB{LHHSIGur+LAgaP5nJN|
zc_{_?jSIvo586z$7-HFdXk=tS%-Z)g;oilMcL?r#9sa>%sm`p54^!uqnay5%^VH*n
zyKihS2;~&&PUQ0JP5<=zv#HbrZ>juAUOQ75ST1DL{Qb&2f7|Nc`#oek5`J$IQqr2F
z((&>6E~RtLCQ}1-LO0m1ee|HT^#A8(jyUTt+jn10j#!r}Ru`#mrL#KuXN}40UZ2Ms
z^6zCFx?(aV@$s#H3C~?`d|j*QUoMeiRkQEQ<1g!P$1j-VG1n_oC788!TYX&X)}Oc5
zZ{P20GHv3drgZtklV9@ldh&eNS$Ai1(${k(H97ZpO#3=PXVUp^Qr1iF@n4;|^=5~S
zSCMFri^|0to6CIf&b+&H{k|K%uX`tD?$GW(-nZK#qfW5H<BsXMV|!v_mHq#kMqQ4-
zHS0*q8ugQ}Pfh+fY3@8h?Qj>(Z%*5Nyu?08ng=<xg+9M^`R1ZaTWTXO$62qxa3t~Y
z-CZwv_22O?ovn9w)x}A{3)kK>U0?cDfAjK<4Xyq6E1a2kEdJ_tTItWjrRHmeiwoFo
zjyi3hYuzmH_-}ZF;H{G^pJ#74>iI5lw{k^9w&$z8Gp;!ZOKrOQa`WNfGkL0a*IxK^
zy!idTU6Jaa?}VLMevk8EV6@=dm&d%?_@_TV_vdpG+nl9RnT3z1ag__)EbrVHXw|hj
z#ci*peZ=RSJsUz@+U<L$EQu?s-4ZbIntbK8Nt5oDpMN5}M*8yiyBDXdEoV9Zz%t@Z
zxRuwBBIfe#*9?W3q^I2Z>Y^_-?@Xsa?KT%Pl^8XHve#kpR&guVoPBZn-j;Lbb6f6i
zd}H<4?3P7CS^3Lf&sfARUub95v75EtCFa#GWqz3#tCoE|b^c{$=>KEktx@$~64LqJ
zcr1zBFmd9Qovt!@6AT~SlPe6VP_yw{KflA~j#<9TRhNkW=3nQFJu=@T`Ra+$Z}}(o
zU#4AA*}wSR|LA|ym)+X@WBRL(86QOK*8Y`bzW!JvJgaG9y0hY(c%``7#T&mY>|VBq
z^Yp$=k;@YDx2;}xxwC824OO1yr{;X)+OmIYK#oIjz=_lI)TOONw02q+S$SKpNT1QN
zHhhm&ucxb~WwO9g$sO-Z%n~#9^1ju1q}8<|x46>w!;;&t?!>N?emBo;=L!2y-w!>%
zxomE<nAS0Q)%C6-VJo>=12{U5mhwz0VE?~8(@8U0DB|qiV|P>CuiF{e1i4v7KZ)sD
zT)t<=n;o^^Uy5(MzVpQs@9;1_9hN1@sZmDCe`<E0YxS*-Fy>@5c~Y@7hGWO)fZhEI
zzGg?y^D|qWnAEPd%v{!g+MO%U?#3nlX1_FZ5#K)XL+N2(R{d&tab@>={oLYD+UtIB
zrJvwp{~Mnh5S0+Wr1SW_d91yqJpv)`Bh!qNE^WJdujIb1R^KE=`8#F2bMJra5n1_f
za%E<edv4@{jMLMuT)VYgd985U6sr*a8;2_z_dA<KK3Zg0dS1NA_w^a?IZqU{w>><6
zI4+`D;<&dv`=hPR^DmkhwHwdAyZ1wb&c_=!7;19c7-zeNPB<j{&oM^-%Zy#!DF(aK
z!woC)3vXAas@ZSxo0BfAf8|iI<Rh7eE2;9v+bUm+arJa;kPWO+kn($LvG<Pb^4eum
zfsK-hF{Kx-=zTWVUnin)^ID>GymZLd?BgqiZZaDlWBcFJFZ5*135ogfJ9>64TjO-d
z!+w)jT*~$}hd%A-a=c@>E$8C(1?dyL_I|!9e&bpBs`E#}t(70W*v6*0b?d!8=UuUp
z*LQsT<Yy#j6cWdiwE9<$vgVI_>n2MS^8WX_Vs`qD=4Xxg8C?HPv}s7@c6rAf@Qt%F
z35>Nh%P}nw?c8#_>A84<%1nQGLEqetjZr>cZN~%rbh<3V^Ik@p`W@c6c1hpMovGZf
zHZ9Vca&3zD9g}%Yryhrye`OPMJ}KCKoHdLg!bdAw-0sEI=}Q)S?PEIf(D|$O){?9G
zYbBKVpMMr{Oqh87<TJZ#n$kV{zP-ErqwDqyrDtC08<%YIw_AJs@8wer&W|pA>S#3V
zRA#VRD*kt$fHTVl*NCslhoUSBpL+fJ-=SQ&#Pw5rVao}{G}Zg*(fiZQ_r$tIezRUW
z+b>^5!%N*r_?wo>&0G9$Z~B?Xh8v!JaiJ}mZ&K>tEVnS7JBpo?9<JM--2ds6lEXcH
zZ!OWzN6stS-hRGtwbHgoeo;<GH}h@J7nYsNMegYaPD?tNDcZF&#UW0m^X{WvonDK1
zP8?*}5T9tiu`)#H>B~KAzkO;H46O4SeNNAmKU~qNS(_x5^zx0Xo3Wi+(z)rLDjOe)
z`CGj!IeW5G>-+DnRewI6c)Y6Z!({D0ckeZxQ03xoRp&@+`Od#k_QtmC&yy}Zz7z0C
z(QWGPyGQLT_1(8S_SRkA7*K7z#W_m+O}4<+^>03Q@SEjXsxI?ezvpuD*8pbTTj%GA
zKdC4veYb<%^=#gYxaBqsDb@0icG|}8V*WnQ+wbR|OM-iJKe}Y^UA=jgbDo)<b%Db{
znXbFGS1<H6RrTz-_VIwmyDo`0K94<8G&jC9yb`#pZL_lDzb{*D=FXJr)XsQ*@#n1h
zVYAL0xY)C_cAGx?L#K^vKPRS7c+ltmcy@!w@dDY|#`PLIC0G5k?Y9-b8n9g3RIEq#
z{DPXao)bHy4(w!}-=F&TnLOi)Ha6{R9)D|?x^}ajXS;XrX1a&azuFmLn=`+&wl>w<
z_NE<kapm}RwC;a3>!Bav)A!FU<=uAO|8}U%pPu{r4&Syb^p&h>DsPbfqg(OEl<%9i
zV93E!O|r~yBG{HsJ@Yt2Mn0T>wSV-cJt@(u9hN&yMZdRbEZU*a-KpXC)#T5ezHlck
zmpVxi%UMZV^io|`y?<F+(wHy#u0HZ`Cd2Np<-Z){e6r;=O#c0NEL-3D`q4_ybDqWL
zCT}Rd|8e^A4_Ci@*Z4i}+Mb7dH?5zvM`6xO4!I517ny#q(r77d_&s@Y*xs7t%0Jf@
z@co&+&H8OlqR(8zaHT0?hr~FQ&bPma<GFbE_p}lY@fDg=j&@gf39wD$JhiupF-%gC
z=kvel21bS_PdWRrHOP>cln`!^87Y{;Ms;wG{2(>XEEJ3_AU9UHQE?CmWF-0yY$Kv}
zZnlKw<}Y>=`1dY8@hNw=^fjH+uU*$(+5PR7_1EYLT37r0Sk@;?@d!RBp7iWrb$Xc?
zPu{G}_8;CD8UH?`{o8J?u6@<Nm@}8(`f$u+Ie4daf8(Lv=ZP;0uTTD5Vqg5ceDl-%
z>q&LjnfyNA?AmKzvhDG4Lu;|SeF1eDyQ|`D(qjX|r*9Lk5PV(ss`Fl2uam&W+%S`;
z!iiJ2vXz>4ivDg7dK;R$*l7D)7ne8XS2b3f7FoMCUB8*T(ynGh{-yH=P72=XZhWop
zu(o!C?1iw(jb*L#v#s85x$|i;$H~+S6Kp0$F~6D4zbf<Xm-jOnrcdtNx<==qsNg2~
zkAfSfzBQU&X5rws``u%)I`i;fGfEh%mcFvO>Ju6smL?hM=l}ZVF2yg+6F1h)>tH$a
z>+~+eHd*KMj~yj4UtN#AwlaL?=2dy$A}c%JHwc`5ZQHVS_o1&h{8qGH{uLK`>zv87
z{}ZO>Z&QxZypcOI^t<r<Yd*%_6(Za#<O7N<-vm#LxYoU)wBk(gzKoYMs*Ox8X`Gz2
zb+5shq<2n}?mY;|InbLF9Z>LCcw*s^c%L`>B5rNcoTQl79Qa&aSbR<R#4mxrmYFi?
z{m~TtES0+WUqbfI4L(&phkndBxFF1Mwf?GGJ}08PmzI9@(){25D|c_@tQYIsv`T*&
zMMX^BwP{*_Yj<GnyqS5sbE4LSy}!EpQtGvL%O34zUcB+p-h?Y@+SA@~y-3phyICwW
z&3v)@N;$*cAg>qS)-3il7Tn<bRqFYHElXVw2z$DkKH=1Qb;SM9?+%u*7x~LiTq$Hf
zW~y~2vG>&L-K#3pl7u?u%Bt?rKeYW^k%~y;7xj~GUR8f_e3<hk`DET#4qltEmFs`G
zI-d?o-Lb@0!qDO;6Qi8CE@#F&1KFg98^3fUneJtn`05--Y1;Z#)?d$+9kOT<6U?4n
z7HsQwa8)PsA)f9@A-orZ|E<nhf2&<5{8m-UvPywXi*9L5_Hj6Tqi^qpCDGo~Q+xCK
z_IgVP*?qa!D0E=f1HK0qOi^FL<_Esc=Z&&C-68%_rRV;sj`Mc|=A_0)Gp#TE?DgJ$
zb3F%3#gl3~mJ5d&sytUPTPziDy3T%o<^F$vf?Kv4_6XZ4hO_kTdS_~6_+e5*Qy;^k
zm5U4cU#e})y(`f--)d53NO^`<a>d>_J-suLp|@9_`Jof@uKlvs+U)_KC)oa7=(@r7
zL5^dHX24yAckUBC&2KHr6aOIlV)xxX)@31W0v0bmxwkZGCcE(a^3MNYThiR~<bg(4
zen@bQ>{{chkXIhFEPLip`?k$@uewVM<DbN5?)n|~1MSo1uZmlzZeWz`XD%Q4DTRac
zsn_&Mjh8a~C7*sdFfK^tP2H_Jk-N)G;coDcZ%G^XD40CixA%xnoBB+}>nmnFZ?|2?
zzf|w)#ghzIl+9-9*L+(p7Z>;b|CH+&_Vu1Bx^wGg=QHnbYi3C?zjt4L;INq}Z_@v*
z3!fjmSI%{(KTfl7i`#V<o90g}(aSc}`2SA6@ggCkRZ#cQywLJfC%&t#=-13<EPwjr
zA2V~nX6YZr6D7)?<&~Vf*USD*B36>m{Jf`gjoD$%1&3PZ&iPfi_*eF_=M&GeESq#i
zJliQqrC@L8bH_7}j~riZI@$2j57W7SwGS|Oy?%ZOTiFdNieUvI;j$a){v{(U7cCKe
zxss6)@>UJ#am^N{#2h!gBrG=nmVrp^^YE1Xg`#SWha5uXzg_g3bt^YZ`R&4+&C+=X
zayM+gq4_)D|L-|5))tJr{Dg%J&uu;bap&{6&t|W9^$#83-mCHU?8zFdZ%ls=21=aS
z^RmRH>Eey<YkLnwe`}M^bIRBJYT;G2-7fn1qJX~#Q@-3f|A1ZO$);a+Z|l45Ud?dy
zIHs&$Rc|rrj>am6$BP&H$%u0+xSu<{XV2+~CjH4hUY&<m&;J_tgSk%QLHDn-XO90&
z`};nt?A3GD>MJWG&hI#M(`8DGVuVLir}w_C3RUXYvJZqB?_Krp;iQu0{E&k`KIP6_
zb|U|sw(o^bIX=O^+7F5uH6J%rUw&nHQ6Og3BA+Q5-@Fsg$^ZWTWulPUiRnS>-er6$
z;4KM!+~@zr^6|eup-pF2mtNi7Hu?XR{&(>{dZ{xvU0N+_I#XLg(ED6n<4I=rl?jPL
z?OmRaywpTg)RLarb8T~QxMTb6dw~2m=KB|tt7beZSlr&GqkE>Iux6F$4IgXHDN`B0
zr`%1??9u0}(a%&%-v3Rj^83$Mul@v!d^gq9zG7dzOMmIcxoS*P-6!-$879AS-jkP|
zv{re}+=pR%&TNuhs;0O4gx7*2%o33T8@@T|EjimLWKo?ybNdqIX*W*ZNxk;<G_%9K
zsJMo8%nvwcL>VZY$#C3xayQG?$(tuh7vBtRI{a--uA_lMURLPpB!;gW=e}CqC1}1?
z=nxxw-b1sZ$*L<n^jGq{3^}v*^tl|7tc$S<tG|nRs=pRVUz4-zg6Lz_EyfDMw@eKl
zS7sI&yii%VGEUxzGq-u$ng=_In6FJU(JndtqmyOc>e+qvx6M|BsG6KFmGArbB=%v6
z`z({=%RGbDoj&vB%uliP_m1zBx>T_`+0{SzLYR=IUUAXh<+EP%$jZ+T>*CoZ8tUD;
z{a~@gX12#M^WPYpN!TFI#=U)uUTx|efj4(wMV|Nhf7@8^W$f}C?$}#LuAU5FdVNT@
zVgKd4cPC~&E{JH*;(iySESsG>BdYYq@?TG?eH+b6E^hFy|5a1_^;wW}+rcL;$$G48
zq1PAXHoAobuE}(pm#^wpx%Xzq^3$Rd7^j*sYv1;t9k)IHi+c9NyRU2|er-DW@MuO$
z{R=lm&h&-mGbSY1t!F;=S?iI_tG|K?3=2Q3=fYAf7$HxR5iS-C6wE<0e&C5ZSg}At
zSpZrT4J(6uQuESFG88N<i8)TBCe(ZKZ8ILwK$%8rR@;&l*9$ji8c&`%Z;c=SZQBCf
zTVZbfYh6@#|NY9!QM7i+%)aAn9E=~@+3jmHCV$`Wc~&L+eCHLL>#D*ZI9G|7YI`4T
zJr!xK))YJG`~1F1v0)c(2Y;H76_?7c89GsJd!fnc>~A;f+U96Io3clf>y+oJ^DDFB
zrqB4K_}6%KYSw1wxT!C%rmXVX|HyyCjp@%1ewqCCL&VZ|Qg2=tmpQBt{y%-fuap>j
z|1T+alTB3EekX|s{qCG3bM|t=`}Z#mX1v@qvzvEEs_zc%dm(aL!%G5-bw#v4&(WU1
zU=teo`)NJ*)zovT^XkKO&hxp(*2EX9UHU)e?$_4`m918^g)d5AKN-sF{DZ^O@Aj@F
z=Pi1dUiSpv|M0-u?e<Z>GDE#xEqn{AjD$7)uk1~@8)n}B*WU2JtgZ5Kp5@n5@9Bk~
zy6+#p`^z~Wb?(-XUZ3~N&K=IV&!{)&ND3QA>#Mp(rx4B)PJyq|r#2PxiayA3n5FQx
zTXH`8```;6hK@R7wlXQRPyXBT)mi+}$xZs4=l8MSac*_{RTj2&S=qh!wc4Khv|n{e
zwH@2u_VD5RwdIaWO?h@)NVd#pz80t5@Kl34=dE_8z21%`rlAM7ux#JTe{}KTE37)r
ztR{7uNxb>m5C6JbCyG7SXXf#Eu9W+?b>h*ym#I7N3)sv{i+2@|`91Z_WZo4gY}oYc
zA1AGt?Kw+N;@s_$L;ua4-y8h;x=sGY>RFTYHfD8MOl=Oc+WUIfyhnMzm05o29h6R7
zILB$$NhOXgM~>Y6X7l9$tDVF9(@yIxoII+e#kceXx%lipTgfbE$s*RdY@w3y!%s7>
zzMIxFuWA+J<vk@ApB&o6_9*JyXQN3+V{4Bel=^SuBf$9Q7Sq+bruXRy)AW59_@BO!
z-k|Y&uB{E%HPuO9bsWQ{E_xI?akF9I)(6`^Pmr0+KktQTVJPFAu<BJxzNgx{*;Ymt
zaooCm`~1%Utp|>4BZ7;st}vI&w^`gFb6uwFz4pI~?qh8$)Jmth%-LMe!fLIg?YP)Q
zSwP{EjBL&NK*PhSY)rfQp6n6iUF6Qu-Tl`&W{E??vk!7>Hk2&Q$(zo!`R+Rbg_y^#
z*$XliQerRqF5W4ARE}Hj{O4!k%pvwQ6Zp%I+rRoX@pyRBi@L+JjlS<y(LMgodHzG$
zVDnq%@!W6hdj5fSLM)5;^a)#uVX9!D0L#RLOAK6{K;+&YtR&HQGlJdZNJ61vj^rL_
zp<-xkLCjH1HQ~4O?wASG-d}%VaY%~jB%#vGK$hOyEW80G4Xj@d@-ex3zt_6v#qBA5
z{O_-M4+Ex`zELVLQE5NCbB^VceY$4r@1MLeIj(SfppuW!Q_erdi$rEFzpQg+(GBfB
z>4$I4*WZu#&bN2aTXnX#zEs11@yq7iDOvIC^Sk(^McXr{ZITpQD>*~t)~uZ$?b#-N
zIbC<a?bgR%bBpvmB%ejy-s`ty@5VOnnUD6?Z?n+p{QEJ0UnO%tSIDc)^6O7bJW;<u
z@^BS@>E#V3J<sndcXFETzA9Xu`1Xx&_OGHhcLcnZz3<9u$4`%!DlQfMw8CP>y+}><
zhwH41Jr3PI6_7eH{14xJ_Tb*q>xbf}a_@Iz(K>yTQ>aaNU%`%5`K>*xCzVvT9_yWX
z<#eG@LuIX5ZtA><S%(zYTF#ljT!lM4Jw<q`z?0ekH?DbidM{_!`qf4*iE~{19!`xe
zn(ew`@|@{;f0P`q?yhb=q4#>lA)Bk`rEj=dooQHGTKDhH_7l6rR!IK4tvG#V#mx$)
z?^BKAw(a)*?BF}a=U?p>H|y*#Z@daJz1yA6zS3CJ*Ydwyp@wPZxj*l0=AC=2&DN`J
zzkbJ?S&i+g^=TH4>t+=dtlm~q@*&JEv8^teJ$~NtcOA3BQ!g{jE1dNs{#@y1X%D}X
zM!vl)FWuRv+@0KYXjRl9jr}}}dH1Ygm|=1H&%=$fr{AkEYkMy`J2~aaLV=4ZPp|!d
zyK4vUjm~ywUjr3)jU&76TCeA86MZFC$z|!b^nq`kU~=Mb-OK;Z-I@A4?Fl1a!a}FS
zV{)QK+rD`;^iC6>z9qTArEvG{BgsuR6-@6Xj=$FIIi<8<t;MT}cSNf^J39XBD@M-n
zW-oj4xa*Uk(4B38BBv~>)Q*JcNO(N$Ve|=Ks=7{QW3H_A#W$4>UtibfKHw}Zx<B_j
z`@Puh3uaX5<j%i+wXa;(Iy*W1zOCQwIktY9Eth1Y``?{Dp<j1v&F0+2jsmlsJeLRj
z<1{+?W#*YLGkxmbXG^>9y27#PXI<8=dxw%-*T3XG<EC|H<;z8<G8c<o;Z)tcHD=zr
z9W`&ytdpCt>!9gW?u2!$(xE4VxNpqJYRpXHwJv{g;ukZ2)|bC8N^&=bY|;{A^WNyh
zE;7?1?8`PSpOjO_-~awpp;NeKTIYZ5+81UUZGKm#KXA_%{>Y~7#c=BE$uF;4ANHEA
zZ`}CglbmE{;k*@5%F2RIjm-kyOYgt8eg4{}tJ4;&+&BBjhqL;@8ka?7+5_i&5Iv(5
zdyp$ubh%~x!2+EdUMsikJ~457SIcjO&YE350XuG}O3K8sRPqRkMYLb)ule_9seZAf
z+llqIg>EXV3N%)x-EUf|*KDYJJy-9~xt`R!JBp&$tW4qM_E!4d*f)27M=Bd@P-^dX
z=KkroZ!bC`yS1ux!^IhnADzw5{t;C_WY6ysQ>Y|cs`kh|J!$Um)n1##w%X-7CoHqS
zw)VD7^vjt-yCz<pXX;g{5L;cI8~<YNBu|OoIfrL7Mg=YFyI-<p*JHi;J~s|toM`fV
zLVI??r!#9$oA=C_^PX>#xb-&fuD5BsCg>b4`SbSd1=IUs=WUOx--?~#a5ppW;ZM!>
z(Ah^e75bkzDIJmXkg+i#XolaMj%>RH>knRDveWj=?DnedGA7mkR1R?dH%k7qyh11P
zOSGd}<cbxNAAP!8-de=R*`1%4IYUHWPj{nc6YuX+-*mVC4{Vry@9}%)Df_FGdI}HQ
zFF3eo|DM_Yhi>OC39pvEU0}o;Y*BE8Ik4sQj+-(0_io+i%&IbenwjRG?&)PCQ)I!I
zt}-X0@{d!;hoGb1p0jeOJrdh*)~3Dx&yoYK3)Gf{W>qbI@-0)#W}1?f%<&8UEpwRr
zmv;ZLXJlhInD2EDTP1=#EJuDNg49bjM6OV%wwvD=OYhZ?xPwYd#7^fuHv8~y{RiDE
zhpu&9+3gs(;CAk8rlWF;qN7-PT(omiE($zNyS)BAPy3>$3F2&PDhuy9pF4l{+2i##
zw?E|;-}s>8w>fF{f%DBaE4R5SK5|)d``Hf9ZGWFV&i`I>JGx<Z+2;eFB3!D^xt@FX
z>!Q!9?r)hhH>#~NPFvKn*F`fuYs<y^XXP_ieOOiz^W1W#(uJ8qp)sNvFB@Oh)yz4|
zEqC|%o+SH6>gne9&hRc$-JLn7<9Nw;iwx`kPb#;YZ$Fo_>F(!<5P?JbD`vC=EQ{EZ
z^<j&0SGxVVAb$B5HJ=|Aow>N)_SW4B)w^r^gLF81UH9GX-tj>7=D*;+i5fSfx18TJ
zYp&X5|4$WHlKop8`~F6LJ0(=Lt*b#jVUL2L|BalEw5y(eMc;%bXom2t>{whoHRa9e
z#IVPFGgJ-cPu;G;o;|0(x+r(5m?aNe=pMJ~iK-QBjB;~ACZ|g*I=xPLf$4#g#IxV#
zp4b_0;lkmiu4?^r3A^p@k_U!4(+^v})?K9)xm;n5j%LK?H42&wHN2B9F(pY`Gp&<#
z@=AYUJ!@veW?Sby`TrigeA1&~Dd^b$r8G|AfzXD6vyA&ii`G70&n;QQebnXp&V=#>
zp-)V$Pn6wT=y>jn&yw(xYjfKBE~po=Pwe{p`jypQLGC1L-d(M`%8!)oWMiAET<#}t
zo5IxEAkemX<@5C7dHVnSvff;IQWe<IQX?E8y5arY13jE|Pgz-}UlZMJZmlK3^Zeq{
zZI5!qyE;3aQm31##`w)MTzT!w;(zB`j~cS>(?4>Fhk@tS>RDy0U(Me*CnEj&gOwT{
zicBF{4-N{Hvgle(^j*rz&~{>#W|`OYnHtk)E|_#MW%oI@1Hb$-zs7T(S75wVA$Wwn
zRnR&6&gtcjwZB~E7)1EFZ=0gLf1b{Pm2uh1?dInfDoZZz_I}d(+Q~}9=-1nwWl`Np
zS3??JJYA>OcfR!DXQeKqC#+HC$5$$st#>p1`AmD-lZ%bvwmck9BfOWcOzzlV!tjd!
z-7diuE7~gVeU<jGuw8g$?zXjaHZ*8%HLD8Yda-@6lG3+Dau>Qy)-t7a{#;}2+LIb}
z`PV8=!Rf^T{+rgF?=aKgN?|Au&d9gDCHZdMk4Fz>f5oPT8}qzSy&HOJ#e!o|ytR%h
z;bJysFK<p(3B0v=?%9j|OcV6aviQ8e73J(9s1#z)a&0o(jyd{F)3r~ra}_6~?^w0Z
znC)P*iRUz{>jl11)nP7Elxwe=%<Md{c#~L&&?5d47olD6YK}bjd^~%)+8x(cmG9ry
zhPF>DWuNw9-{mjw*p_!U9(pap_hLn6!o;WR3ilZPu{HQP{n?#GK6~D1|5NpUA*t{2
z_xXAuJ%^CkXB!wlmY=T^OgCK@sBpTjV^;lysTH<`bEh1sO4#rG=fk4i>Ncg;9jXDB
zjx#-V5&H1_y$s9Wz0F3Sjl;}Nvsg<kU%Qmqak@7nliy_dh~ozL^wi3px<{B@5UdD}
zZ98q@eQC9bwe`EDb94XX?e>1eV>a*WBjIVzF&i_|i_;Ufva~9k6!$dRzgTqLSGGe*
zswW&|ue-k5=H3((cbs$mHp@5trET0Qr&-ee6>t6--@wSAyzS91ETytBX@dbK3Wg@o
z2^&MCl9+mvH^w02VO<Sa)85>am;r++;nDfG%|z<HufH(+#hSE=i7qQ015IuQt+~<0
z@X>(BQ&2<f@rtdf&XZ;@dHwJAIYrILkjZM!4?4CNKP+EoGtZyTzf$BwLY?tL!Kr~l
z20x0O&s|dRWJz^m`~0<q_4LVyzl-H`q$SRaPv#a1wwzn2msAv%zs&fg=f>zQPnTsa
zlYcHhq4Lp;;#o&GrslP`?exf;rSP76(^~VRC1Rgj_8j#0Ii;!GD%+Otw0r9MTgUni
zE&g!gM8d(I;E7Fb_RQ1&G9G6Y`?e%JH*OuD&fPx;WX-!P+)7OzZr^M1zu<h-5wAyw
zLZ`0(8Xe=;8TayQqwUAD0iLHWT?y9TqmsD(y6~2VPp`!0ezR@vJ9GWJ{PO&p55MMH
zT#&A;p7G#NK*i>(-Jh0S**d#Cr|jz0wBKb%UJ8B`PyQ%>*Xc*q3U~cui}TFqmzF+#
zo2s(pp}>ijBGGD#1=}P1KYOq`2ese(9@2m6Ri2^zt6wJn-~E_rU00#Ci(wJd5zbi+
zm!%7z|NQDTe~v?phv%%jW!!a(Pb_m2pK7F3nYw?!%>Tk$N4>KuHD_rG>!vA85_xy1
z*~9Bpa*w#uvd{j`H}4;v9>D3lS>cetW)tz0(7Jg|Y*I(LF4=@wWPh$+eeCSAZL9JO
zrzI}$PPLlrTIlp|P0g?U%Qe;C7d&Kfx*BV|p6m46Hz{dn8BVrvKfU=drS2csW>)pL
zYu9a+oz}r6zU0=8pJh|^&xje%vRo5cAAj=UCNqtmSsG@F-I-@ju>BWZFhy>r#xkFi
zeQVZK$-Y^zk&UT1-bhZj=<rwfvQCM`F{czBbuBxiVx%<R*yo7StYe%4o>H2Ly3GRK
zZhhrz8P$qTaekP_WPAR_%Z8f`Wta507Vl|{WC(9a;rP6DuOD-!ciN%P4!e_d=P_n)
zdBn`{Okl%G@%|^*eWRHV^c}sBnsD!0l=*_fBUcXGZd|x8zcke3-4sTNu-c+><sZ*h
zUu83Y_l+?l^zh-f2$lZm<8N~E-iR9qC$IF{{&a<C<h7qwbFW|V*f8<b%2yMtt|{>Q
zb@2p!w5^DXoO)I0xujM)dz&~PSFh^gjlv@L-g_OByDHp!N@>UZUOAEC@UoiOW#Kjv
zx8hhD_zrGgE$c6klzdWi-}wx;RaKXoHhg|p)5rYKNtkV^r-Q+YudA8^EweTDJ-?Z3
z);+mrPSTG2hJ0JAYfoy!0=^yTy{&QmcIZxxxp@wK76+c^72JDpVfNjfZ!X>9w^@{v
z?_T#IXH$zsvZs`XWH8@ZUbfUPIoqB{hW0QEGOsr<xw_2sLBNu^OQ)n>`aJV~iL_bR
z(&byv&3(VFSN!3H#$Q!e6wdB?C3tk&UzzNwx=rou%|V&dxoVm9vaEH3H}mt&O*fuc
zDYt3Yt!G=q|83;7+@$?gd3Nx6zIA1F_M-o;TnyX&b?diIeJ8OXskDd37oUqi{%X$G
z)~lLzFK)@Tch9w{l;-gBe-y`Qnz5_xYTFan!W18idpi&4_TOe$9d|*lvF_vovvvP^
zxDMJf-%E1sew0yfI_Jkr$KA@7bt%u)EzV>YEZUlPx^?dQPgy%pPnTL`*n0Y3ROF#;
z(-*xj<}kPYq}_R4bla1e(mxs<HtW27ow&X`K0DoL(Z>~Aa$eWY-TF-CpkUzC(w^J5
zWnQ;?oXmaqsW|(xt=Qs;TV|~Ci_Iu2jdc{LW1L~LH<?Sh`o*LhYu_E}acV29K4)zc
zq_NB9C5waGmkvgLvGUojhHTn>i{AN7za0L}>%`&qm<uMp^U@}1*}2?F>kKSszT5JG
z?=Sxf-Al)=e`I|=ovV3oN6;5jLCq8Au5K!yZu{%^@AntKuV?r)NxWhIp|$bPJ~&kK
z@8{p}OEbYF$!JIO@%Rtb1s^A}9&KSyH4rpf$R)q%!dkDHY_B^zKIGh5zeer(<i|gg
zXG-&11?lDTw*~&0@{(g|$(oW|)h=(Rh-oeR=wPF<#7OIa)_Ls~cFX#WPA|M~{M*>G
zXSLfi0TaKgr{5YHd<xH<^@C%#?e0y-_>QNq*XXw@et6q2JlD8ynu}$-Lv_l*n#Q}Y
zUYeY`pdOfcdlqxrod>K6Dx8m|GOhc2XCdo??sFH7rb^v-)8WjR7RhsehL>T@Bb&IV
zJ10zFZjfZ}nNfM)VD+7y$J`h{-ALk+{hGTk*LOV+zl7s%k6J%YG3ogdUp}ADIJjVk
z!|#NupZk|(x>?B<UB4?cFHLsQD*pL*M4kMZobK%p%(*UnJf-ohWD0}v)NSF-PqR0_
zYI#|`_r}&;8=`-4-;2M_-?u2nI&7zHZd_&2{E##API_#Je0?-6a%z0($DlKtSmIKW
zZsh)z*u*1b=);?&Z!ojqk#T`~=8l^aT|O#kwx#Din`Qg5=?ADE^@+Xb47M8E6lw5_
zU_Z)I0em1mX!PC?*SH)~MNXqG6}Is@3kzaS`R@t$?0@VcvhVx)6BivP9}2zquz^iN
zfMcPcaHq3*d)D$xhL3Obiq8;xwEy$AqMYT+(?vAbJ-vGSe)#%*ckkEyZ0<C#+H8L>
zV{Mnp&6W?77xI1foh2nYD`T_${g&D7v-Rt1mYeh2_I!VOHur(ujnBz%<8sRbrPvRj
zJg9K8>DD*q{v6vK>oz)n{eCTlF?adFlX4Z`^{#Bp`LprAWGScX^pK;0JhR^H-_IHI
z_S`zjUvK}NpSf$I*X9<@Jm#%;RS!Jt)tz`d^Qdl+TCCyjN20Ft!mn;FTE|pvWte=_
zFf4P{FXsNcW}MAp|M`+FLvo$3?DlBxs@i<{)DuC@{5LmsRi&rSI%B+xTgrl)t>OH+
z(B#*<bvxQCZ+|Rb>$c8k&EJ;`Yu`(Sgm0En6m{%0>J*f}bCyNpO8WBTsp%^+kIlNr
zR^62<#=2MgHrwN=M<3Z-nqdB(NpNwnSnvvuYQuMjA76@CJIP{RkL&GCEPuq<+|%rR
zj8;EeIPGI8+rdXA8cgrE-<ExICbs^fd%BjV%9ci3nYaLs$rk?2bsNquOuyUrphDhD
zcvhrFzT<i+{wD{OJM(|<+oeADbJE)4^DS=!`Sz?STxB$0XnuiWN^O?Uhiq$$XEt-*
z9FPk6q?>zri;>#tii#yYPQIG6{10>5oLiRVvC8$D)70yGog-ZtGaH`@zE;_xE`8^u
zQuBW86p7aote+gd&HNEFS6l1scNv!zB6m6*9<P&?_p|V9Ue(yN+Trx2k9k)=e4HP7
z!mM*4%OQu7%JhQ|@7Jmq-QH+7f%Uh(!&CO_JI+mt7uqDmpvCj1*1lw$Ohp)z&)4kt
z&CR8H_v(MAy{%iEw7*(fMrMcDUpJ$;zO03Zw)|MLKxo=C#&)hPf6|%GF{vmenHfnJ
zv~P=!Q)s?(YsuWs#`=vNFS0lIFsC(LzT18<@X+HHoj4}<g_l+?3e>z*Q#4)c49lDo
zS8DWvC#w~AGj2(H*E4xRv90(t?OMsJ{(FuZFfy08xtsgWnUpu>fLh4ULlON6YFE#P
zsI5y%ee_*;s-$!3k@?XxXH1FFRWlV*^9h_~=aZ49a76jZmJ5+#El$5#PWSKYD%e{8
zioINnORLo8k<^N3L5KET?mShx%|&aEO_1jNb(?sCH#jx0+}F<Z-fcX!{Uo<4<BH0i
z%`+aaboGAuDoZ10@}DXdi$66l113g3I$C^h-IL$Dm^h+Tm+Ni1>A2Z$M#{gm2hkT&
zw3@PO>v;cdIBR;>tc3Y+uIVWUEBQG`4mziwPrtqQ(ajcb4|8rCzw{j`e_Gj_lcTTe
zPBj*12>6w>tW)G4>yn3N@yB*d<a^juVDNhWk4@X;k6fKQ`GS0{x1!dPdu{8(-tn7T
zGwgL);&VrME@xew*BrP1|J->FwU!y5dOlHocJTp!p*Qui=fB^m7t}P7`;{&CzufVs
z=>6;um2K~DU%$Y*=g61GZhq?j|90>>d{~oPQDF7p?eC{+_ioBtr@u}rF#rEHx!<RY
zzL;*jd|{@3VQr<=x8?QG9bRH)?WZJaIX`_CUAMXaK11b{s)CBWc^lH)4{nrw6fx<%
zO-|Z&vD~|?>FJv1Gqp6>LwrwbhhFw>ZZKxbTU5MPC-xv`a&}Nbc9Y6?;{`WUFXZXo
zp1Y|yU?KaOXByub#8M}}n76zo{)4T<`9m3X4_ddf{k=P_LX@Z9;o}WUJHxM+Ca!mp
zIFQTwZ=!aFqE}6@^~-35`Ayf~f3rO}{df!K?mG83hy1warCnNfa%r=+=%MNFp9OxM
z5m#{K-qMq+#G7@qJPO$5#6{#~zW=$$WOr!G!&2?|bn7p2c^luXn?KJzT%s-Pn1I|t
z|D&7pk2CHO7cVfEV?V+i^Co%{$Ks9K`HfO|6)(6y=llLgq{ctp^y^^{=Ykwd^%+~H
z$@-bbtlr6)aewp74el8yUET$qaNohxCVXkxgzX+ln^F`RpI=S&5In}%^s~^SwmE-6
zg!t+5sXJ}Ddg?_!zFcL!VasZBK_S2NN&a69Kg{U-^V&4xYSoHOhpxZAHEI8`tO<)c
zdoFqIS~Kfo&zGQRS@#nuitViPL>%9y7;O2Y>*}pICF%SbFQYAOq7^#2$EzZYEN*-0
z?N}A~r|pNQhnD55oc}6so(k-#=AYElY$00|vS=4KWANs)`;Mfw@g<2mKi-t*eSoob
z%TdKi!g+C}5<j2#u<)k~Dw=Gy^UmAYWo(?iab49MOXX*YKR3U6W%7-yVa0`HhX;aX
z5Bzq@v#YIp;_cDV{BmL&yXC$!$<GRwFyAjcd&rbA_MOeUD>FPcU+?c>ztru(uvE7&
z_IjC@-da(gw>ytAS+bV>&3!xB>e5bzpcJPwnFb&KbfsTj?eTc^iZy&J`=S)Y_I*>}
zW(aS&@p<oRcZRiQ+G3kmy|HJC6zMsWY|e9P<7>SY^HRBQG_&s8RPeZ|$l`bA*^Ik_
zPFKG_u6^$%e?9403(v_{vrh7@)8G9{DDt7z!D+|ybAIjG_)N@r_N|Ye`js0c|0ih&
zy_t5HxBq~n)|H=XCl$>fpZ!-Oe8e#A?d-p2|1<G0Y-cr+#n!YSZHN}B-9Wto029z+
z1GE7EBV!YDE`7JmoRZWc1%0=i#FA8()a3k>R4zL^uHurS)Wlp~E|1PR;gGF0zr!_l
z@=T2?{K?>9V4iL~yNGY)%AO$0HN^`wJ<{5gwklYD`}6w?w}@xv@<~%xp9y2mFp-Kc
zum5rR-^1hclec!7|9<Q&)82Y*Hpf4g9_7s^H>vbYD%osr?=t)H;r{xcGWmYCCw{+r
zIQ>EK&r3Jv*WG$|DTcjX`+RA&QzUD>y!7q-|6BiS=S(=kb}?;wi<YL@Z~McS`s25I
z%0+zV6`%3o(XO|ABJCTcUad<_y*j1#e3I_{BAH#qmRCY=nrt!Qzx64H-{x17+0jQg
zy3N%j;&lD@?&e<ipYe!NQ{isq^#`w8`1qXKXXn1LDm^<;><V+;=Lc)$;v$2$t&!9h
zH_DF<{Wk5mUCpnCW6H7?)tRTVj1K!XHe8F<cayf}x%RQ)zQT0gO;_16%=^;HE`I(i
ze;_eBOoB6F?WKxMoknve_%#b2zHgVL@mTMN?Cs{#+N+kQ_uuS4+Ot*OYw_fy%QuVL
z)AnDA%#6LfKw#s`yH^8mE#=>CE$ezvcwW%V1=5BLt2o|NSMD>BP@BrG9zO5<(!<WL
zO*E?KeR9)yRJvaEtySiy1>3hxWj&m&>z#0TqvR8J-D;sLIp^*FX`JXacFUX9vQbOH
zkb(E$^8WYJ-~PLAoWQ(FF}Omc*`c{kSAu8jx%3JyJ6k!vZ0?EQ#GGVqxh`a!y+Px<
zLXDM@8)MF&ovlTT;(m!c{SJvV{P2`>oAlyA{=Cn5`w#Rg{M&BD_2F9*Z#ip1rsC0k
zw?dg_8(i;<Z=Wuw?P&PULih7W{V!7v7{r~PzFCy_y->-Lh?J<{`iW0F5Bj_g+%b9k
z3YEtX+=5m-NR^53{P*Bisoo=nCrbRkbP`H+cNZunrah3EFKH2UYT9-;#e?$pE#VHr
zZHa8j63dO+1Y0}(f2Hh_oRsg(ekxCz)m`lR^7tm<#WN}kre&ubU3fCNK7ESL-5WAD
zwu;+v=R1Ah#8xNwETO~K{-5}YRu{v{O$~4D<8x1c<v;gs$rC||2i5N)nw$3>D_y%H
zEODV$)R`#0Go|0IZ!8O2Gj&hj2cJtDCwo<`ZJ(T|=hR`l*Wp2_^BS*XXR2iw7Or}e
zIw9`Jyk`~1S4?eVl6X^d`(x~BM{AK{|7Md-%N8pAy!Ls~$s4*-7gQE3{A}BopW76Z
z+@Eo|;P4B#pMjs)7c)ku7fQXkDX;voU7wxf;5o)$P8^zd8@Gm*?`u%jFJ-p%w_1Hs
z*u-&*!le1Jhp);_4O&@!^P8mi^(VT!mM*e>>U}g|AD>Q%u4(y<<B5z9&2%yk>avS>
zT)npM@3owOYY%etAGbH#Dl8J2x?$SZ<xzZ%#_ROB7Z}v;4wWijXLmLCW{vv9aL?lo
zI=3hD1os|h>@;Xen>+1%w4Q<7>fk(EC*Cl(KhB)*Lmk7dJK1&ryKMg$z3p|FK&zEk
z?b{im|6J#--f&{suK4QN>%+c1y8TREcrL?D@yImB>#EPx{N{8<&NzNLMucgKrkcZt
zwfqHYJYl`dIyD-vEq6KMnBtd^>S=1lBz&%zsd$!wz<Y-BZzZ!WLT`n(EzmIRH+qpc
zx0&nk^h;aY=WT6i>G^%%Xj!I|lhBWX*xA~$L2T(M53B>tPx%BM&%K=UXxGYpMX?i3
zpI-X&*ahFC+e5g$F3<Mr@_HI*JKy}9vZLft)2T-**X2~Noc-qRpG^y<DHy(wdUG;U
zO#i+8)mfdJ=T-6<#je@6d4AZ9$ohoN&oawSntnN4dzwk&?RggOlbK(9BiK{F<bL%m
zS~;a$_^tfgsWa{{8qBHaWE2*gnBtQlUA;{=<>#xi$0<xFC++ZB#<aZc)AvIzyQEb&
zYje2PYOv3AXO&@%XKoPOe@*zOd(&yx^Uvj%&*GX~Q(0Xuq}{|<{$%~0&>opKwNIy6
zPEF74o8X~kxbL9D^t#m(KR)KttAEFB8z%JZt-->VKV(zXc)$Ojt;@57@2lO(5A&wx
znx8P@m(g&%{I^JQh4!L_U7mFh9T}a@-)LWW)i>#M&?ljVtRbuo+qks4J3j^`7KXbg
zZrhVlz3_3Bn=F^@bFB}rm+e*A`0%z1WBJki<kN93SuH9uKTrFJx2}9vx@Lx}fOkxk
z#EXOW`Mh63H`d>N7g&A!T_UH@o05IDuDc%{4mXx+s#_T$VZr6F{An6nRc=#O;dZTK
z8@APb+PTK{nfgh_+xPVP(|CB;B_lPi*4m#6yVq6PC&ct;%~4sFQ%@G>?*8~?*IYTJ
ze@1g2Fui7aD!rlk!?&9$lRCZXpR9T2E-*XFZrY{|8p}S}<|@=437eC~e$9_{V$6*2
zvr4<0%H(YP9xIs?7OqcLlM(uJ&-0Ds*Zps2{4o1jn$lkQXjST_Z#OEx?GiOUl9#6L
zIio?%LrL*^{o-|T`C;h?9Vf}Gp8Bj?`Ju^H-C3-bAtyODecYFBTPU-)ZN{-RN7x=^
z-Ql`?uwk};uKf)m&ILxSrTj5gyZ_de{@nhag@gM_`Y(37lDyKtnHgI?U9aDE;PlRi
zU$P@s2B@!`|HI<u9;rBH?^dl|+tgwwsXxuSe4CXfADk?^<aq^4d(_YCcYgo={cGV2
z?faWH++BA@Y-at-um9KIOqDVC_Q9xnvU{T7{e?jn+@}7U_q5_*f125ZjHfSOB_7v_
zD-8FpQDslOS>*81Ms?D@bD!R5>^vMcN%EqCkjqi;rJv;*URP;Z=4_oW>hES0XQnVI
ze!>siK0Y<8e~eQPZmx3N{_(0<3s=YW2R8E^c|}udI8MFal{&5Q<%KKkay5VU@K?@|
zW?8Z+C;k5E&r3HJ_|KZB`B{tW_!<rW$u2e?59WTivB<7JA9X@iUg>|y5z9{{F>9E`
zk1%|>AKY;u;D$nGn6+vB62?tTyV%0nCxqYOoHoZg{jXR_*`4ikS$_xp+V^+Q(Qj!y
z!e><2tuB7qGB+}e`O=g>mWMR2?`6DXd)`Juf5vWASE0!}Wal+Mf9qR&;_(~5xDR5@
z_NG=>7ECCf5pelb$f`6gy&r#-^e$(gvC0&vT+y8}k+oZC_7A1*jmrfVoVfT`cE=v$
zLa(2GzZ!4It}FVMvGRAaC2P=klMVO!<vVm2g!DPLa|RwX+_%xo;mwoh0m6k>HwG-q
zzSy|?*Zpo^k^8(_rA~?c9`Og}Mz;G`R5FJ0c^7U;)NEywKAN`JH-l^I&H3_7OAC+p
z|8D=!VZh)yW%@}hEk6_FNpFIKN`^F_1~M^58svga1DO~Qvxa<1`0M=JW&;1`?LTzi
zZK>&E_ODriESb~Gq`THRu)J}O;o0JHJ1h0%f+uRO)Be|%+XPK}oOa*=zs<xwk8SI|
zf4KeV&7)e4w1aCR=CU%Le_ZkG@cBuO5}#t0Y*yjiDety9sruRZYw6<hc}+KWvG3A2
zpLa9gOFLh#m2-7<Oz^e0rh>2H^2&Q{W3zYO^{U?Vc8{e_=-v;^3$<>^SnblBUYa^{
zn%tZJ3cuX+q`$tCy_@@VTi*4O1>bvL#aG66*&mprpjiBjk^k{cn<q;1ME5t%n_n9K
z_VmJcQ31w$MrDP4uU!oPSnM|_VluFpzpzI~sjPJWV(I*X&YRAhO>8&$`c>B6&7XdX
z>*w(k9XsYPbvKer2|f7r#Q7q&C)vfhbyfW5`tD`@yJz_~PkO7=zCD|6rQ}?HQ(e92
z_1CnjB@<t7E$#09bSJ9p!|BlIy<eUwoxE|(CCFuG=Mn+C$y;)4=ih8t*_KzLZ6#$k
zZD~%*{nhv0o@!iSeV$>_$`{3%OCqLi&6+x`S?avTHIM#{$NEE;&y5J+dHYfQUD3zt
zr=s!dAHOd*JC$mm5y|&r#*`4%<+ZN_GCgc<=6U?%-*^5xAK$CGfLv3-bXL*l2kam2
zs7n7>^!AbQLm$rvC%!ur>f8A`Yz<?s)w^-1`oSD~yXGtJV{;!~mXA<dRMZ`+eRR=>
zl``Kt{@HANv}#pd+Am|anteqcY;PO?#jl$E+s~=Z(=fFzE^%4gq-cW<K^{T=JKERt
z?f16p_#~HoUi@`Y1MjDQp0fn19QGytSkV^mliPifPifjFmpyfh*Ebrmct-yf`p%QH
z^{&Fk4+TeRZFEx%S8Hqxv5!-Ix9RXD%N55$><|9>o0pzfR<%H=<I_)nhv*z1#Xim6
zLfO?C7pA^?ZJH(IE*KNKW%blIyQgJL&hy|=(fH`@IOX~d<A9Ab_FXF5Qub`;`_k>@
zF<<taFVp*7xP7{|b85Se^ux=}F&h*eVpbSuq)IbsvPWCzYF~=DT)2JZe#OOAw|Hyx
znnaRk9bk(4WO-onuj}v5HdS(jY03tB`82URvb_~J`1Px2>BCI9ixV@Ob9R0>_g3^Y
zudVU9`Oo=YzL=&P;W>f5V!wsvb<XpLa~4^Axy`4$hq?N5Pj2e#B<}c4l2h^+v+mon
zue7mul8D(9*xIbFx8!WE$wgx(g_P;{Y&x04D%MSr|5nFd<ZASrFPbBy(VB_l#6&i^
z0=9d$eXcCQt)I_Guz%V2@uEfFhX{_>`&!%68${<FOKK{$Zai^~Pe9$jwZM3r)3oEC
zUZ#pOzZVKNPOP8!&m=*EdsUq??-_-{#cwQ(O0TF+Q4OD(l(;JB)uoUAlfx8Cy;Q8u
z$f_t$NSvj=?C?U315-0M%~lcWvu)zZkZNM!b#OCz%FeajlC5^@W!u7%Fy^Z()-F0C
zb$sasd#UMsSHJu@5__#*|81ka+!H;|I2+!D^VPm_B$pgvS6=r1QT5L=(c902ok{vq
zrMY#RN+nB&oKvc1s&LYZ)A#r$n{||WuMT@%t9+cXbb09g<i8K{B)Sdmt9|^<A>8Fw
z@w+LA;eHe2yLEX|iyXX^d;jQck75i={#*8Mn%P04S#uWM3Au1D&X!Y3M!Irm{RH;I
zG3!k%R2uU>l-XPCk!^h|w%Q<xS=4WGV4|YX>J0)0{z3Q3@4skBGkts^N_eHH)w77o
zJL_+M)DjFgXI1B_K54k@(2*?{(v#+NA94M8qHaoCvs#Ihl)B@=X+6Bbe6hbz+{tS{
z<!PWJa#Q5timCj*MNO5vn$;d?6?*blwpS<c3NGEUJ>itPyoK54o%vFau4S>-ZqN<Q
zzjrvR{H{~KmZAAtbEi!f&ntyy?hkiybv#%5Lcj3X=9mZbwbg`5E|nI3ThGAEpnSAk
z4O^{(Jef~+twNI{P)(5cwZbYGGc#gtVlD~y?!Rp&u<!l)4->tzT~)sN1d80w4N^Iw
zctGlf;%w&dMY*P%QaXyt?#ADjJm;}(i?oD6yz$|OHv1(1?%Y}V+tF2f=dGOlB|P0K
zk**&euk860I%}0dP}Nq;J1(p5p1r;Q{nM=H3Hvnj_jPT{zW#P4=QU52Sr2YM6F$}L
zIghW~ge`IQ{)P?Pqi^5dwnZ=EwT-ZU<0+T&EUg%^M}`rHZ#_~HcYYo&ySD0e+djSa
zU+kN17(^`B5|U?6iaBAqb#1HloR_bk`TR*Ow=gTsWb-!XuYN5WJGm}fa#hUaNu~j}
znsWo6CA96zZZ4G(Uv&ErhrUczc4qnu-`Cq>>pz6NQ)JlsNkj1a-SrL=+%M~jf7TM!
zI{8hYo@I9ZdLPloo$lVH?wefm+tw|w{(kJ@lD8RK_$OZ3CKIuD+EwZJWhENo{;Mab
z=4Dq+aa){Q=yUY#-!`)-qw3VmdI#+}%^n-<^u8Q&Olz97Iq*}v!t_P&`3_87a%hXm
zq$?`P@7Ad;z7)qEwB6<V;%)v3Msr_<`=~t*IG!W%@${V(qbY&M+?TEWQINvJZ9D7N
z*-KX{C+*G3c0V=q-lVM3qZ1hpUT&xtUV1bw|2(%5*WJ7uli#Ka9&7zo84=lYC4#$T
zWnVJK`DKj$Ng@knlLW3lp3&j_d_BXh<owgOB0Dk+OoJy@NBr+fF)jUVJ7eu#hP>v6
zGe>lD_ojG@<=oo*^LWm^1>gGaBxlSJT;A1jv;Nrmq>mxyymQ~>bRXNg#pq4^%uTZ=
z1^8<gUYB_Ou1ETw{q%1y9+y1Zq2%-Rg}L>_AG2TUo_@YnlC9ceQ`7=`RaY6Yk2aco
zX<Xm>j_oSlCa)pSllzxrQpAjBN2Vm-lJHaJ%28W&QA4Y8qP4+q&u@2TA3t{QZezca
zCBKM!^$gLvM-gF>$!gP;Z4P#}t4pkpb<TDV5^<4ij^h1Sa6RW$(c#WKh68JE%eouC
zwx0QB@=hD^ds<r?oM+wfow&#2u}#ln&U<GBFIq6{cqINp;>?xDZteBf8>Yt3Yz|Le
zTgvDrm$Tn=-dVj<JPj^(tjC&n{QY!sv0>JeixH<=CixyaRG6BXX_;5e{b0$~^M_d$
zdYzx|_jP&s64Qpg{Hzk<W{t9b4I2BjayGokP43++nkD*F{Jt_bgIbpGQu}1Lq**@`
zSf?GFu>0p8CEgnst?$WAmH9S@!)|5tZ<mMM&$y1Skr6D~8kVSKT=n&LdUGJ>l}II_
z4`1*6(p(UGO7c&iP}!Mx8fT_R$rit{?l|SL>`}Rl(8tmj`)*&Wt$u#oe829(_|{Dm
zl+9<fMDsMnc&>0#Ov!Aw;jq5lr@33bOU^<^F!G-6hIHM}8yprK+rF%%S6xLnfB%9*
zXC?`H3oX-J&GIz+TUdtLBpvs}B9lAmC)}cIzkQf-LS~Ab*}s$gj}#X?caw;}{MLTg
zEZ--3ON=!ye4lXDjZysW1Jj9TB6r@EvD~P((q#V5ukuXUEC%M&>hBf&=5v1WlBuBX
z3*(dYX-<#A+kDLD^$W$ntX&i!9(>hx&ZZapy8akno!x!P(BW9<n=2x>n3D~d7JSu}
z|7uu#ep%uoH}473>DK}h1$*OI?mpz1!tr>`jO#f$QyDJ&|6J<l$>F%-gF$eJ_?6RM
ztFG*^ShdnZ$u!zskl~lv52e*s+n+J4c#*Gl_Q;jk_|j0nXZ+U^Vr{p1O3Pb*R)1|U
zFR1gD{f?cPJ9w`piY?!K+<&e@#>!7UtCj4!!sHUIqJEwUu6%XBYcJc0W6$mc8~uMA
z!g_vRZ2oH2_1ee%diZuYs>}-H3fP@_Zu{-$$;k#z>5sIyTi5Mu+PyI&ewOa4%XSZs
zpDSx?xZwD_Yt6^P>rU!za%YnYZ#$@F@z(WbaQc2!%CjvywkpBzet&{{cx2A2pkLb#
z>Xus-rN6n&Yx7Zn%{@TroQZa|wb;oi(q(sScQSgJxT>u=t6ZZnbJEcr#^Md>V%+z2
z_H911Y2^c-8^)C~iy9}%y^St#J;M3m+q(9ko?pM4``m&T@^`mraRvunnX_W{(&WoV
zb9YLdtM}D8a`C}>qrL0<Csy3L-n-XgqS0wN&g)D6ClpLuroZ&@yM606w15AsTf0a=
z+P9Cb>!(Iei2Qyz!=6%=yy?9?r#8qwa#>}lvqCXZquK50qT`!<PdYE%6rP|y`{%(#
z?uumzTXS!g^es?HmGBG9%oF(dHTZ?o(x-YmKjao|Su~UF&GADMo+QQ{S$+1Q+Y!lo
z|LTfAgHGjiey5<0t*S+yVjpBxE%G*GcvWj;K*WfCOL%ntZ7ZI-^Xoq>-fOl>Z(2^i
zM3?C9gu~}5Elx*oX4el4=I@lf@ov|@-_Bi=l6Px%E!wE!CGzv5vg+M6V&U^$r8+Z8
zw+l3hM!C!Us|o&KW8`L}7rMntr(#QVOzls_MX~H}ucj4B*Z+!^>#Lrv6S^$<Y{;kL
zue>2%>o0BCVz40pYoXwN-?06GM?8;2s;PG7J-%9dwUJLZ>DQ+nOWx@{ES#P2zd$2e
z$TsY+t>@`kZmVMN?uZnt-xjyyeQxyh+ONm=eNE$ZuGZ&0y|ZK5B*}@Ek5}nNea~dA
zt8M(BpK#-S$L1-kUkE02{OioC|CF&?AW&4d#e|`=r{~cc57&~0iA||a{K~(N_8&d_
zN@kHoAeXseFzcc!>G!MG`A>_Q@uSwjgj-=|%)+^cZdbZ1u(?}Ymb-gTt}pJ{b*CF8
z@0RX<X>@Rh0b_N6?6+$_j-F*?)=bD{T=;yJ<kAE7nkJ{Y414yxkoP;os_Q$|;r|I+
zr|@M>oR$~oEYoq<iND$-d^V&wKJ2%7@Osh5l@Is+v;A7tnYU6Wii=~n;`8edz8$ry
zbpH?^Td6U@f7%Cz4?j)Vn8TU)w@4N<RIfi4FWq79U~||#gEvsx<kg(im6fi_ey7x=
z@?{N@-5O6v&YCEE@3Swnq-*i2x4S27w{bYSMD8hjnueOC_{WQ>$+siVxb@xau>M%#
z|A@D1_O92r+kO3=^}HYcet5h~s=PP;Hv7`uo_&WIo>hFlaDJKX`C_}1#bR?@A3qd-
z^sHxp<qQ3dE(^876MAOmW^TH1?dkfxZ&x@+AKJ2b_O%D+cZfyqUy+{?RcZ5X{)(IP
zb+$a7xar-2kIWKWA1=JwbT245y?XufGQBnT8m_iX=c{<hz+&=Fiofb}#8vBfEq}hV
zuVWchlpWl7!e)u?><rSC6g3KUILY~Uy65v{7p+cyex7<Jd`h?R5ij>?J=*oT@+Ws5
zeD8Sai%Mn|yU~_i&MyTwyj?o~tvavziGA4~kCFn*rt%t?eW`t6lkAqBa4ID0L}=C{
z$rYb^5|tKA52&5AR3PYh{KqHOH>?7gg!m43$#_5R7rVTEwruNj|L~>3$99JQ6%{?9
zGeIP3?%j&L7b<-ouyZQ-?%8^G+1fhQ)0YJ%GE0SS;0|Toec;}+z9;kZ{{8h?`^<yu
z)~5WZ{i&uB53kC`ZW0bKR$6#6Hs3pCqecev#Nz>0x$HZ=uCN^Z&VT=Z^zo#*6aGk?
zV(&0p7&c+1LD0K$U+$OnFIK!?)cSaKukE)bjXlk5lb+R_v;WM?v9s^KLZpjW`~&r`
zoE(#0mp)QuK4nl9pY;5^!6c@4v$L|dUr{_=vL`e5=5J2b+Bw}SZ&x=@_f7Cf=3+i`
zW9!qz%2U<h6N3y=vu}5q-G9{3`To{32PJj}GmRNHUhO$NJL|0LuENIjlSYq^sZ08C
z-Omk<zVwsZykb#c_|cdv0Y+~aucqC9U=p6gX8pS??$Q$dj%2e%#UaTPV{DHdwr1Tq
zr~AjG6F(V_PL=3>&Z)O%_H@r%x11xd9`W2!SXdwSbFr^M(F5aG`7u}9YNl`0HQ#Y~
z@B6uvT28s_2-n(G<F(+l=`k;EQ`1ADa~>TLnZd<oD!i`2E`IIP5<_0Wj|&XLj6QJW
zueZDJGR;53H&p1_oW8w*kruMEAM?mnTFsddm%q?+tqr@RK{|`%b>kBW2b|f2y`>_K
zi}&5TW7F>QVe)o^sUp+Ap8Nh+lmCjM+ov1a9ICrMe2-#w_j|U!qW<q<CEo83@9^|<
zh4&rnnm_Ztdc_w1tLZ-4l6qH*-v+GP`$EXod+CFBQ+=6Q96Tf+sXS!5Xkot1xz{<f
zazn?CppWdwSuB&9T3+P;UC_U9#?uATR;y=z%HML~`Tg57XHPhI{;u)Ey&vw~pVR$t
z?}Tc>1O?uGe;@sO|K*wP4704V&w6ZUZE7`>qT0nDS+{HMVfHC}w5&d3RWVDbaMP;F
zmZ_X9p)LVa9|}I;SanVyq_;@wiEz`ZfJ<q+&+M4FlU;ge^7DDi8f_UC89ljPI^QDt
z+Q%5t;GLDR!kLXrcDptBcx|00r`K97&~sAqooK49%(oY;VnXqycddmIGjDCGU9|C<
zT=eZ;eUZN11<bGh_A1|z{Z_qO*|%zk#~kbFy9(YnU7uXMGNDzOzkdZQyWO6^&m3~*
zl@oWR2hIBJ{Tejs9lk_J7fa1)iag;=jhd4-M^2g|FVu(EqNYYf)S^A%cl&Rf@zn3%
zuhj3g@x`CN7Y`e3iM7trxRx|Mk$<|KMxS2c`HjqxFJu4zo~ZQn#=hGDEFBs_i!@#x
z=ieV2A6w5c*>y+6{rJ{}I+sfX5A>fj&=89hJE_nm{`zs~h8yv*|I4KHzS&-Q{pyw9
zp8BBU!HcJ_w(xh=n*4P7SNR1-NmFO~oZ|ViwtlbB`suINYjAmpoUrNgC{h3C$eXF~
z%lUgph=vI7_N?14%HL;v`uBFee1n(Q!dtQ%vu<DZ6JmV6rDdj3?cH~s8_oNQZL~hm
zI?HXmDRJs4BW<zO0nc20rXARsIiqWS=8b*3KAI<OzP>);qL^vcpVc4MTfeGXcWdoz
zt<AqGKCLc_ntDPfO}%6N6Z!QFe}a$c>~a*8nC<fNNW^l%lJv>SGRfA~n$rU({QvHG
zuj4K6ej)n@TGLY_^};5eNwC~|brZ+KPpdWfk2vZsj;T3p|I8$6X4w0>rbxjCQH7s=
zLVrt~oHBx6Z@aYTklYm4G7gc|FYc_%FD-xP8KiuqZ<p(~&~5Lc9;7eb@t#NbMn}Av
z_i}?dGLe#N-<+ysy5n}Pd(USXhea00!@C|iZTU6vnfhf*=kn)W=b2u*osruy#Z#>M
zk6m@ga&bAUe+S$5RoG8haC-j6$VY3r16LNWuio_PhNQ1sea+{O>w7uwD$NLs-OYJu
z%eowYo)5<Nmsm?Ht=eq(CZtSIL8oK6U)8g!m)END`2zm1_;<y1AK`53XB6PRYI36Y
zrt^ZO#;0o3@142$ZmV!dtZ!23w!4Do);Ms!Z^({iNMCbr<EOr3%kt#sWITUvd*}bt
z=gUQyx?gWg4>ehQaiL+K(Z^?Hx}Ce;)+rs5do?fYr*z1!^uFmKvQ_7@w#a<Hl2UQ^
zdh~R?#aAMIUwv7So39X<scc(QljWB(CuPd4&Ldam9B~k5UG~h{W8cdn(Y6KUwGV3k
zR7$qb;M#hyQt6)Qs`u%Vzn(6c&+<U?gpc26cAkpMveQ@F@SccLsp5OSifxJNRAzRI
z6&{zpubop2e_y(~cN0hCoi>9rin{#_-K+g_)Vp4lm4%p^)y(OL&3b=l{?yG3t+$WZ
zJ)T(hb0*)+BN1ww7kx2g`=;)wcrMqOKWa(_3zN{vS&<d2GVb9AUaCHuGpl6-OVe@Z
z*oUv>E9Sm3T_14dX6EWwYzi+HM4iw%r5<thSi&mrE*FQDFR#WuRw-jsERGL$*<#|F
zu=C@BP6_7hP&P}4Bl)r~y=y8O4Rh^-FKShr`ILV@7x0~lCC<nD@Y~FNjY)C$Z)Y!7
z-1Bi?VH`)U_DiGEInSrB<z)^0zQO09D*M{9Birvb?-%paOxj#jqsA(EuIOU6oz$D+
z#r3jgVzXFl-@Lzf=U=Qyyvm{nkz&OQC#yVUIIhwuQQJ3XsY=XF+v{ihj$X@eU*afJ
z@hfeKP!``F2fot&c!p^|3a@Y7Gs*kL>B`fUQ)kV-^PI0_+4oTY;>Fr$SKPRGsapKd
zWZ&MpMRz7}t|^}G&UmP@A!TnU-+umt>Zp_nuQNNJ+5DM1ZRhl5ItH!oA!^Oei;b3U
zdgB%G(usk6)jm}=UK#hJENLN+PCr@H@nOs3v%Oc@7MwIcx+vIbPL$o`gwj_pZ#cH@
zn_{Bg<;s4cH=bc@Ia5Pk0h2Ggf!66J=6f9vD^pg@X1sP+$nxJbJ&`+2(^#h+yS!6g
zd&%48d^Ydx;)@qdDmm>?;COtC#X7y41=BM=EzlSH{57TjVV7HC!;<``R@Xar6m`Cm
z``F)aJ9j&8imki+L3xFnMZb^l{iN04G%YB5=58I?Q<>=^rwsIKvc7R`Jh{lmZcEBO
zm4yD;Kfl^XNWIhGc;e30YQojAG4kGp$m`c9+^ouGxYckp^J7eFLA!>_{i!Q=JAGLk
zzGLgD2&K7`&6|Wn8*bfD?r^zm`|WY`{`ys4I<s@7oCKY+pP#vJ&pT)5$wr+8!m{RH
zzT7G}@MF<|15OT}OVxKSI+)J;#7DJ2xU{9FCsnO;ad%q(UV(!N{CB=xRP;MmwdQ`n
z_T`)Z-an^%AcVp6q^gbHQb(RW)hn*+)jzo6s?g_W`0im;a^@?qqpotn&)hg`XDEdJ
z7M5Z!aJ?xhr4YvW<nJ4i*VhaBO%BKRY)DvQB&25RsdBmI$2Ny}x22z-zIkohr@F;Y
z`Tm|Y*)Q_u)!yilzBc!m*}AW_8>IGSEIv{HVamH^^#}pc_N6?Bk|v66(h$xObq#uS
z^ZoVk|6B$PfjuTU*lJni2|a4mvea8~W{SL^9#*qj8WB^o&Or<X2kIq-F1e>$<*_|;
zqTDS8!wJsY*pDsBE&W>HsX6=Y`uBS@>?et2Bp#5NbogO`-2I-qJNIgTZ`KOS+IsiC
zrs(y`eO?dLmjqd@)84DaC97@~oBMlrO6iW@-==TRD*fP)Uta!x@%G7um#ZePR{E9r
z_xQJPftA8yGmm<OD&+qb{$Q)3RV-(5*{0JkkN3awKhw{7S;rmw*mApeTvC<qjr;rW
z^Y_<p=WAFzzT4~Nuq7(DBxc2=r}_PB*&n(}evEM4Jm2@a?PsL`50Q%{TlRdi=*f<C
z^Pii`H|_hJzu9?nbAQxW8$5m?^?Jq}H@S3ur+`~qpY7^+ts{Q*zQpr~Z>E0Aob%Lm
z!>M(~_l_s*+tVPvVU6#qM@sG2S4M<uex7@$qF~v3&xxBljy1}KJ-c}EL9zEm-fd;)
zW^rEC-hAT2rOvAgyJY{Qw9S1wQ&P(EC>v8_d_@rFzwl2glS=<8aZI+cS+V`Hpa|pP
zt_PXDeQKW))aw?kd%SB;ox*Nc@r$RoN2?roQymvkR+e0!W&Mfo%n_x+3!x=}k#o{m
z+YKjctqe=JXW?ti^YDA1ocL>AmU6kf=j)_?f6Jf5>0iIuFVtn*C&ek7*Qc>}UCmr`
zs_W>!wt|xmE99%YL)gr|Ufa)L)toS^LcCe{JKOHf_oTm{IsL*$=IqNWw)amdP8OJM
z+<d=(o%s}_8Yh;;@wXl-^yKE>G`gMdu(jNMgS5p`twriRl?&}B%+I-gtN*mtFL~Ej
zT+Py3UA1}+@5qTg{ULGh+f?Rw7x&-6>DAT`c!l#NIXGw88+R+RFgU-ovi5E>cy}PH
zkylB)@8{>m5$8=jPXtvMYDHe3!;r!?M^f&a@v-gev^fnd+J5#%?|tk3g?X;&rXAAk
z_Lrj*j0#=)Yu35XeJ1-)e!WVFR@cRUtj!k}X)+2$zC3d6)>bB;Czm51{eGFjo)%Nn
zdD?x~I|Uz(#dE*Di8(P}X7dW3$S<?D_%o#_dhR-$G3%J)k%um<=b2bDzcBuBKE|KN
z`p&#!<pQ>IoXclyng2s{@%Bwlev1xF+U@WnrCfNKsNX@G9hwUt{VDHZ;#`tm*Z6Q^
zmt^>~NiHX+>TpP;JX_Ue*Oz-ZH2r?r<Wl~NhkyN^z2xqO23|Ft*aiO&v+nQheag+Y
zz)pDXk<eLjTKz9-mG_*>V)VWCaU0)~o&S__UMYzd?{YUOoY;6#(bFKMWZ~j<wLCw$
zHlP0}^{OoN-~ZLoUj9nfzd8T3I<DRH;;YK<dG0!rVdp#;?`QZPtmu5hq&Fjx;rN7W
zK_BB2v=?kJD3*QJaDIc@$s08>&jSuGh%nt#6v}F>S!qzDH>+`y%IT#kDIMW|478u8
z*QZ2^X07o&#JWIXw%3v)j4PE^OjY?Km^(pjO2P@DDyE~HZEMb+D7JreI;2eTeNe7Q
zmCW;XiBgwV+4A^w8;Q4W?+aDk%hdWX_pa~h2d;<1Eq8A}msH6=mu1Sn*G|@P4<9AW
zm$=H)c9P-1&MQm@P6;|C>Pu9J7<^GXptPs^>}fvHH`TQgZpT-~-}e%2G4oT=(UtN)
zVeVP<bn4Q%2l*HRPjJn0l1*tk$fIe0^Rli{+MhS&9p@^vr~GWYqPJw0<Lf6nU&I0y
zOWhMM(b;(3nEiLt>qQ5yp9}ch{`|J5+xf+%e5Fo8KE@HJW_L|!6kFO@I6Z2Eub1B1
zCz}`idSuv_ce=2H-`DBwWvdc*FPW8BpZ6VMW-d>h^2AfcU7_WC-NDwq(!UEDKWx}u
zc(Ufhh59#7?n&P_HV*GRT6$&XGDX?OjP|moOYM{2%$c3BOsP|Dk$k$yJhA7@`=vtq
z6CF|tof$ljUV9w+pJ(0snRQv#J0B*nzqY7IxLb2?MR@9qtoMPRs~;~9pI`RPMSs`7
zM*{D>_ix}{b>b|K>V-y|HJs{M-z@XKwb>~*L_O%4!7Kjd!n1jcckIesnAj*SujFjr
zdtGV5t%3*+{<Ck^#zamyw##Yn`J1e{d?gA8+Y?OkWX&VvTKrc{QJh~>_AaV0(n{>c
zg9~XK?Y-UeSks#7l^&nmdRgS$R->|GvTq{SHq7uAzQVZUe8T4X>>2~6={xS8zx>9a
z)G(radaYf~yd}q%cOKzR?UT2>miT>+?W>$p*O$smmRQF%FdUkwwbU=_U`V@1!;=|v
zxpO~E7moF-e)o3atp)srHQ5W?ckh4h*^zbr@>AW&RV?BY9)+h$eW;T1-*c>b(jAWk
z<ClBpOn5G!tfW|MrFU*q-DIZ++CPu{^|}>OC{(rJ`+`d)PXbKdTsh|V?2qI28Jk;p
zK5*=L^V(N%I%t3I^aEj2L`vo^{nIA7#lzw$r)&K|bJ3*|oG-hqwUsqli&q@`a-?zj
z+MauDOBy_-#2=iqY1f%FwSG76q1?}+;`)gzLic7YReZFf?Z7QZfyxJ(wTlmYJ3aZq
z-3wdhSG<%n@miP@6y3IF-u3B8V(TXI?`n8;Ciw?5<F@n%EeZ_t;~l>Ly*Nir`<=!O
z#~_A<@4PJEJ=y%C&@;I0$mvOU^zWFzm8qJOE75*0s`$c{!q_DOCMUaAhFmRNv??_2
zXejT~J^Q;qu{?fr_1imnMm7eMoDZ+CwKI_Cb;)jLP_c1=yrdr5xUjS!X6(BLe*WDH
zkMg9pC2>~_JtzAZU!HvRW#VS`bw{_(44UNLe>bPTma%EmUcXB>BZU<hIsSZLthuj}
zZ-3HeYUbw|C+4JA&gA;hy-37L7jyvLrDfhORUY^1?w$N%(0J#~Wb3dGS(~Q@iRNrC
znJXD@_Wi7Q$I5FnCS7-RH1y;#oce6nkqPB*-uF&Blef)F{7r`0swDp(!sTziPc~n-
zU3Zo0?EYyjFIluB-rfyY{JeMO-3ymbe(+emkU`zpugqm<(z^Yfn~eGI)%|ejGXI-s
z*#0B&@^ODTcAw`zA9ae0ybLQ^$~g7@LoW8)w=bTVkuuG5+xN6tZ(6!IUOtf8C&|L|
zeUqThJ%%MOzUN(^U=YQBanVnQ>h%AIGXygB-F#Mgbk^dx_a8JiiEx^kRPn03+md%n
ze?pk_r~JC+Eu3wO64uV`{Vc2{xPQ@}IdOOSt{N{$5YF>bdKen>nDv<PoxBBqQ#YyX
zu(X;zuSZTvz_C%~`NHD=>*mj9k8;1QS6w~1W?2Jgf_G3u)YR$9Od?6MXI`67ZBjJ1
zH)iUr9Z?^5ary8zt;*6nZKPXrG<E5OHEV8|-2XTIjsxeq?2@3EbSsO(l3S;Go~O2L
zSs8X~&6)FG_*t9hp1d`0$<K_mHHC9GFa7>*zV>3qcUFry)=2M~{CP>|W;0gz(nPCS
z>qO_CxOPE^yL*Ph&hBuLdON;_brTMo{Lq*?ZK8+Fd9G(_QO;KnJW4Fww^Y~J+U5U=
zzZEQ{k4kRIT)&`w`oRv_6IRFGwa;v^-D2~Gx%~H!&UsbZ8aE<jUrmgATc*nYVQ+7%
z$i@jV&m}_)W3Il*oRMN#lN7Ab$o(ep;G44rrz=C(#@*<TJob;l_)BQ^@umy6-y3^Y
zpLw3)w^{c7g>ySIrzV^~S3T*`73HUQ0>T~ZE#0nIxj7irz2MJ&@zZ0fZYAgEf4jD{
zNj*C0n<sZ{Yhc=mjp|3MuJ5$_#H#jp=l&{bH@O)$aWX6O4!#%t^ES)-ho8-p&l?*f
ze@Xt^&oJSB(81z~OV5AsSW>^N{JT=F@XTE%2i={!y23wbly+WfiZ7Y}X43bEvcVzK
zm~Mr)uT$|nHLF`HUhd?<m%Ap{-}@Dm8uL_Zt!emHEBoM5jgZKs&4*lS56#~o948jK
z`Q|02>&Ex?Ul8QkJab-K&}EbMvlhLciZ+f0{|tHpR`y*<-BlVb{r%W`9;;bNi<x)a
zcDfQC%dfu9y7Kl>k>y*@XFKqUtu)=(*mUT?UO%=g#}f~7_9rQ*tto$BR-ajW{`$I(
z57+nTZDvsOlsv@mApYUmb<2hNf^{qY)-&-iJatiX##UM(PmK{St#EDNrO7!+W>^Ot
z&4}5E(-VGn`Ykho{hz}>R2kJC+^Bof?0Cs!-&?`))33`-l4%iKaOB1nqun?E@B6H3
z@a4ijTZ4HM-9G=EeKY>r=I#AE=RN=YH7_hBGg9m`&%c&4o2&9xS*@KqZ+-vfoPG26
z{{1oK{CCC|rN+PK*vP!eEIFLCQfu;*?)9(lr?vX6-j!tPGf667rex4(%gUHFB}O+E
zS4Xa}dD;HH<m209#c59}cNw*XaCB;IVf2306uKu`B-H58?$Vh(?CmX{eCPNMy)Hkq
zNw)sBuLS$;4wF4)CHMac@HPvJN=x6FHq*D>=I69It4kjpzMFjAT7SjqZTD-pryt9F
zA@2RaRIg=9&FN>SZFI9t<M*>au6JF0O3LQ`q+dl-du;#bo!fVJ)0exKt0Y4o^UJTD
zylkuD4u$W0WhtvRE-H1-xBgdP_T!sqX2M^I*zKy{)%0(z-NSzIW377C@4h#2|9PIZ
z31{d0nXYr4_g939?Cu?^&JSiY#~t}0lJQS^*}ON)O8NQ!6!Lv!Tkh7#7~m{+|JnPM
zYAd^aw6=I1G+V*dk@V?Jv;6PGjsMJ6&Qa1``Ay@@eEYhnnd{f^y!lf7Epz1tk<+t#
z=DguZy|c7?={b|9%L6hP(_~k&2_M+X=O?Q6c!~A2eLuFjYWcIdr`?U8e!X+rat~iU
z%fwE3*X_MB9E^8^3f^6bviCf-(49H%!0tspf0P!d2^bkvJ_};YYEF-zxi5{`ZUx7K
z>zkVI*>*>-y5L!Vtn0DL<ewEq_ivje%$edRSDPNaVx5)0!PVBCF0C0|TtU(Dvx+&^
zoH5F0KU-hOmUSVS@y0ayo0it|*wyO-9PdQMsa9X#d9d$I;?y@1eho|(6PN9Fie4AI
z)SFF2O)y}}s^GQRY*UQRil4S&KYcCaU_*MnSL?xczkA0e8XlCl==v#h|9`Nh+3-L6
ziIB8QNu`XNmab!%SY<H3Dl+_muf2?+n8r=3H@nUiH!l!*+$fY~s*<EV!9<PwWw42m
zJ)fC@BE!R${om)5{A>x{9=qIU)?tPR>wbSansi*Z)$;Aa3)|BTjjo48e(`o=DwGln
zxMjQKLkG{{yatBJ{U<#42+I|fT;Y-t+`s$sGl$;S#|oBv^?jY4&ljq2Z?VjV|92c*
zCw|Jlx%bD%3-dqrT=Xp7aCaWBp_?4jqo!@Q3RLfTsHaJ66sn8o+h=L;()IV+WW7Hn
z;hIOaLMscqV=knMrifqkc-?br;s@_@e#!se+&wLQCjQ)mg{BX(E+1$}>@PXU$!Jz;
zD#V}}!_izG`}oI{_YoGmI5<DrRW=D-ye!CI`@5~lc;_wW+Q#GeV~q8xulOzwt7?A4
z_qmY&Zxzd36D6aWQlZmIE*$d-ydFMt!3w7HdIl_aE^qx?H1BN1PWhP!S#9?i-QLWa
zo}nn_kl>p+Y5Bak^Cye;m|4tg4EMfxGbwbEV1<SDx&!;0S`P>DsLffcka63)VEdW{
z%mqnIGCV%-Hl#-GPF~d5B>%T!+KiKyJuW6qD^J@nRvGPL*z?cHVBQpqIXP_hk(`g%
zg8dTq&QV~^Won#R_e45w-|xFGp4gld<54zgweeJM?w!nb?#NvgtyOwmYchVm4|>R&
zVYKg&!H46*U*+yTILrO~hHTkWgI7}p-*8=ce_?t#_u*4dHonbZcB~aql<EItFy*#t
zgRt-#neuSwiVp{5Jhfe=-9)XwOqSMgYh`h~sL(Q>!Q;Ns%esg!T#r|MRay6H-GvFp
zauxqsjGU&N+4E`Bx$A1X{yk`4R=R!NYLo8WLOuCHM|W@dcX@})#mo28t^d4UWyTcN
zVs1V?@j@o2CeN`nmWaLeQOlQ}TJHbYW~Fy&bEb^gtcGTjche+yFSJ(*-T1n^Z++0_
zuE(!9%goB>7Y47KQOIMe^VQ%}^X!ZzXPMI#pRU=pCg?!Yng^zAEKI3q4p$mYJd`2(
zhBJ+^r%10`>FnuO$2<dixY-UYTQEhsOzdEUVoEWyqb^J2cc%Hd8gpAbc6l+SdbqIs
zuSo4!D9*UH>WBAHUKYFF6^#GtXE3PAeLUXHDy)+jUFi6%?8RT!WfMFPn_s@XERC(5
zRde2K2btf+3PE>YcIkf*VP2GJ%e&}(WB>QNy;`NAOCQc(UihYP^R?Dprhi`~T>5OU
zQ+{<(Q1Ge<-3upq51o(Qn3bD!u;ONt;&R>h^VF8ra>*!WB^{XI#&W*Wv2XIxt))k7
zIPyd{wuPsJnx%U^U2Ssu_0E--rMjfejvo=pc-H>)4X9th@1nqfrKUBb%J?Jo`UPgD
zST;Bq8;~;S_&Z#}GSGEt#}tiD-m1(?VkcD{t~>C*mfIn=_u4w$To=pP3OD}WQ%p|@
zzQw+wk$=gF%9=lE7S8`SM(z3Q{lt4;Os@DGb+1#YT=uhy6osZvKfOr6Q)|=HR~tO0
zU+>;tAOGR$*4Cd{n|Gwh-_|(ia<pyk!IKAhcI$Pyo_zIU|5f#ZgWM&7DwUCqf3LQ)
z?l!32Ea@Y=Hjhc5@=#@`(DXOq8>TOPW5*PHudMU)yB+H<Ufs8o*Q{M5RW|R=S6}I$
zs{dCOu8^+1TUM4~wxYn`+N<nK+iq#r<lo8`iCb@aP+YS~I5OzzoDcQ0nfi@qiiB?L
zsZ?6U^Raq^ltX0sgsw=dPtx@UN8gn%GdGskdKhH;R>}9&Dyf~BCzfS4e3yGZd)fUr
zypr4F`*xY{xH!>)|6OTy?WC1w=k`y|%(mG!Ik)gg!LH8btbUH0RJMIRkjyG+WNWJR
z=~GF}_s|XRw7OEy<t1o#KC%&hQ|#SzWODgq@dG>LU-Km%EV*HNZQ-*nQ(e8<Pg?QH
z8(w*Q+kI8V`N8K`EVm?I7TDY>OiWMHoVB!bl?L;{$*lX#*gl+T>J56h(R$JH>(1Bz
zn{A$@mpt)_km~+2-iFBsPFApAdy};MeNS|V!<DmEpMJeOa*%(!Zsg`zYe5qMhL-nT
zd%sIMyeh~{H8m{!c$e?lgp%Wmh2kkUwr781d)FqSsmecV?{zWt<vp?P?+xzBXf@7~
zFs=5^(s$bZ;itz1x#&vHTQg3rZ)rQBP_X`U*)Eli*)pfpWzKP?@n1G+<dtNrYc)R{
zy8K;MKHrRU-wT=xpB2fZ|KfA`a%}0Rb5BhVNNsPMEB8V!r@6;`$F|F+eigGG9dSxa
zOuKba=w<$~XePI>xd~4?rr*u~G0E%8uFEVcTC7HwZd%@Xxo>0aYXvdQIO7`;%Wd+r
zqduokSCsqn?!aNO<?qC{YrG3nXLU}K{P5gC?j(2AaVEv9t7R^{y4h&|@YVFz<eTji
zR&RW^%4m7kho6C#daAi=Z^r1ZKIV4u+|`t+{h>1Jn)Uk@_}8v`{k9=nI``}j`LeEy
z?yMJ%6x&@{;@`l!>J;ne+>5S19;k)LRj;~ew^)UnD|_?x@apE%!fCRH_HMft5r59|
zxA`gy<&&O*dgpSbggqHpFF$%|?3NPnp>WA;g-;vSnC&w?C}q;1DXO*L(N7J=yFKfb
z`OO!<W8SyyF1wfww}IRjU0XIMhmPf&w>ieSaX((H!X4EYEaRV6v+vTXyiTr$>HgVU
z_HA-ruc-Ri#y7sgdupf1<C(Lo;wp*?&oLaI6(q5?a=W#<^40~NvK%2ZS=VorS=C!+
ze#`N-foDy@uVrQG!J=Z~Oa0<_Lk<6M8K1c6;8S;6m^C@SE&2YVZEDj}4qevtzHqR*
zW?S!(Yd<P;X6qlX3|>FUsmJ#3<95sNmnTHMUx-bXvdQC$Y!m$>Bg46#-RZrx<+t~H
z8qRP{Z$6j0kN3m5O)I)Soj3cb(x~%PX|hdB<*s5sLr3Gq|G3w4U0<0LDKf`V|J(XF
z^-Z}^d*x@Fcrt6>JNw>(V+H?tvp?(&YQ+`I=V~6#`Ouf>^7wthrv~>E!mR(*p4A%H
zZK;zC`e|1&pCx483U&`yjsNGj^x7|UGX1~Y!~S!m&B5g=cHI;G-~H@q)%kqAP070T
zP;#y6^GmMU-mB;HU0eLadCI4do%`$FB-Xs|2$s|{`p+(u{-MDmC{8zZYKYeH{r!Ia
zX@2j|Uwu^1$i~2;KgR=Gflt~%5Ykx&v{}DlhGihg(8QRS?iBdSP&1x=&%-Oesg#?=
zcrJ;X9elgQ`sK!NKKzCJTU>6RdG&DW6JI0izwcQ&Jf_Vt^R=FPrbUFKK|xObf&8^_
zdArsuL7i*6S1Slais;t-c%1uSdA9{$tNf{>yLNpN|Gk>uetpx?ea(NZ_V4<Bjs3Rn
z`qUW}{oX&W&pFj(=eu_M(u1{c=FV7}|Kj(?t$Tm&_*46r`;Od^lHL1v@U?b{y^ap}
zy>;UPb*`lRRIkb3m))pX-E1eNk`}kQ_J+<}8xK|`AJxv<!;eqAmdl+lZ+1dW$0Kjr
z8QBBgoAysSQJVf@pM37@>27!KPOAOzO=GU-nt8kLg)FlC`sl{3UHY$kzxy>8yr|wO
ztmfLkYq9Tf{fh08_Y_pWZd-eCe*T<)ucxcc&5f+JeEBWswD+~^IWOmY_@8!qy~6U>
zwLjy}X0liAnx@<J@8BZu@747>*ZK8%RX?drc9jUUVoi};x-zJ7dH?Zk7cJFZH)^n-
zb&m~}yz^6TgTtq=xe;;dp08@7mNj12c_?@!V_r$A&e`f8UBTzSx#;$~t&RUUpYd5=
z$yavg=WAc~ozB*ov}<#8bdyYtjj(vuecnKa$Le{1-<Zr=y!Ly5eWsgMVR3o))Tux3
zt=tyx=d;E1Vh6Vwd#w1G>u;7x8GXN0yL$DhEnj%oY&jUdbE<0ZyLplM&ac;HeqSb^
zneqFVwZZjJ^9hen#2T+JQaxnB)=<b_Jn`9)H>OMaR#rcgSDM+OB6CAgDsai3_uYrS
zZChCyX_uU!z+)8nM`cIJ7uGlL^D;}<H*7UMx>B#CSI+hFV~IPg{3}heL}VBk_M6OW
zePF()<D$-W(}Oeh4*q*IbHz4;C0F0gaAJGd_K4?P*~9cz+^lPwx218P55C77a=2lZ
zNI}T2L;VYd>VzhyKj3_@&&qs3Q5f6A0Os?1uYY*E_TB7h@lwl_&crCH9`@F}e*0gD
zvx6J^>VQRp9qOm12QX}VZMeVo>6_!FY5SG8Op8t8TC_uKVfz~QX|gZ1rM`!#d<|K-
zp;*K2ie_DLm&Mfg|Cfb1JY)FL9Lbq=_85PNZ(d8j@97x|ksU`L>D+N<JYy@PF_HC6
zg2!U+n!txMrcJP0a=m9m)2z=y<s1qdr#Me%nRlw8R!@L+*VXe1XWGu^@XBq|oAhT_
zgoot0d+uL3A2mOG>-XG`QBCT5__o7R$CSJ-%-j88-^HZ~Eb8xj55@=c9+msG_H9h-
zk_Q#VM`E2W2&v1c+$r^~Jap+{@iHstgr^J}f@)tr^!br_N-u8bJlpckEDZ7olfEUa
zN;`Y~?W|2XAHHn-?Gf9W#N?jrqj7(!$EM0dI}8}tha}`?pG;;IEXxg!y)nnh*^6!R
zT?eDh79xR4?A?MhRQTQ6OkOpGW=E;LbZC(Y;9a-BAVh)bXy1ZqKGT04UV202<(HQ)
zUmArzE;-QY9)3`K)5@Ov3f2A_r!t>AwCvi{+nzef&*NTl$DjRN%HpWk9-d|=A<_20
z&Cy8Z$kPez!qPW>6n(Ss?|Gpx>yeqwS>Lu}vy11?^1iTU>%*C^b%h?gY_a5bw|LDG
zytCeLm5;h;_=d|Z$78q{9djce>3!OEIWDPCW~Ew&w+zdc69+sl*zv!;D(@Y@r%`^s
z*x1A6-x9^${#uhO^Ut|V>Uqj(5OyYT#r17Dw+xL#CY+h5<9;W>=T?^3@s}^|e7<+d
zF7xFAvGn5y>hnC-ADqjj!n3fl`M@fsqZ#ei*E<r9vOkO}T)K;|KPmk{d6Tg4hba?N
zS0#$6Kf08VQG4@Fu%dfHOQYzm53HwB4uAYB;<RJ+>3|~-Yw8pe+5@L;IcT=~fSkqS
zCtgDBPFoghFl?VaJ8{)@+w5He=jWWx-q)&enXm6jWk5$6i@M~s2OsWq7N0z*$+Mg-
z%V7iiA;qtoB6h{E+A{fucT<VrQl+yZ|H8g1wJO=KUH?xcfg!=>b|<!ahqNI*q<V*X
zoeOhAES(D@3lk#N3eE}l&VOtsu<v)cMD?O>Q{_pE<le6B7rE=qzm=c$nyrCRuJ%;b
z@FkB~y8phHwNvTdG>28pGULqgGsi1yjDJ?zR#&K;oO9;-Zb?Op=QVN%=ZkwzIXk)K
zQOBmAzbv|+{l0nly|&SP?FrY9zA+Z^_u9VbLbs~Ark2*iDT2aVtU4yg{Mr1EMSVKU
zWge41T;ls?<n|dHE1TT#&c;F@t0wc*+F%X8<*#y^!=?v`vu~cFSb9^ZZd2B@WZM_7
zlm6O7|7YN0Ur?ucd(kAnY3rk|-Im_+?UcD=o$$3@z0!lN0hbhSDAa09W!(S7glWzD
z{fwTm3Ci|1mu?*A3bu<6nls^w;;+pYQyKlc4_;dsc|j!hOh1dx&i2^Ha~^4UDxNsj
za=7`ewi7q!v&uJqwQlY!9bXD<$(wu4DP-!de1((6`44`*2(UeFGc)MF;FL`~a~0B3
z_m+#beC9uE;8`iq9`-IpJNt9NG@~W61%>(|`;Y9fIpR=wCZc`enqEG>Y0-=oDcy<|
znSIxu&AMyp6<8f8-%@tzslw}tfs-Cs@XN~FO0_t(t5*K{yS$c6ufNw^0yL(i^4~}{
zTsYxazRqLegAtoJ)OAj*{%zP9Y$sX7Ha|^p;a!i)p2;Sk3$CWlS=6J>7!mO3fRtoR
z_^ak<(-n>lTRyR7ZEKav<x_h6ignJ>w}&t3$;+LV;@P8X)a0YIR4{~bg+ZyHutA)3
z<D$)z{9cH;+`aPb!R?Kf+S|W)&S;&^+OPQkO_#cmveTlQ`IR=IpETaazTM6jSN@rW
zQ)F>^<crkH)BXwA+!MFv4UUv#Gj!(*FTbwLpV2L7=4WP5xAo@E^#$^*G0(PbT&c<@
z`G)`9tW`x<61-1a-D$ru|Hi50VCjEXH+`>LStsLaYjj5Vv!Up^6xRHyw|kcdN1Qpx
zeSRLV`frAuWdDU*_gMTZiP`1&@1E}OU%SIkJE!d}`g7q&tm<m>rB4OT(|i4MBVVt&
zw}Ai9$0EZFaq)-It)JHadGJE|L*3p<wH%pW??-N7I9YpqLfhSkwj!(c|E<;d*VMe|
zp7i}Mi!S=?WA?TVU@)_lsS`iv;%}_pp#H98_ieuGPiH=UIOFNzIi_nDMdziemi$b5
zEvs?h-O5i9VT(%Hb1oiQv^pTdV(X`+C9M4Wo1)l!ec$%Y{`6{HYbnE-S!(kh{d&V6
z&uH4BY+-+9PvG{)JhpRrD=(b+s-ZsB{bhMIS2MrC^=;NxZOpapUwUg7RXW`6d{N@g
zUfY*{?Cs<W?`kLLJZAW~<NX7%EFNExBKH!h^6wLt&6u<=`^Le{CngP2?N5KLFFiE-
ztLx>w-3QN1%sBslU!-u;uKc@O+;0oLS-<b^gbapmx4#T?+$z5>nI1HCSL2<;GXjgX
zzPI&7ay>b%tYTua=v=()hdX|!{_RV>&++$RrOX;@IrfKZ&MhiZda{74_}rQ(ukYq}
z-Y_#)x*e9>a@f5w%#ZK<@rjEQJ5E3Peyr0Z{jgYWNTqylkZjZ4^Qx|j{=eRNBu{R1
z+AaF^TIQS;GILT7bAEh({rbjzJ$_GD9navL$aL1H>1@G~U4J&k?Fy7nc533xIcafj
z(gwfZ`z&Yiy^(pG#;BY(!B=QPi}h3M>~bZ}nMb$W6VN*{O>M4unDAEt3vmhQDNJu2
z<L>f=-d$63HZ$+O@dwrh*{2Rha&8Ad+s*yla`Qj?+#?(+7AK$C9G3i(&+uPR>D<|=
z_pfdK&nm(2U19kGEJeCG@=OTfSsL0D=_c5UbV~~&iu9In?_$t?<=5da!Zsu;R(!ZQ
zFY37OEN|<r%fz+WXEmv+2(1*FlH<Sp|6Xn#hlx|B_N1RVntcEMJE#46>F?_vf1GoE
zy1%hpu;lV$w)%NbbmlK#xxnYd&m#Ne&u8D<ZLhYwFR@_y)i;exLR`4dxjMazvkF~b
zy0=rz$lGIksK=kRz3*mS(@XjkC%Jd!#|P&<ih|1KX1#v#`IE4OQj_8wG0&zpg_k^n
zmS=;rk26O`y)+bmBC_Q6QO2cr4|sV6N!^Ln4&M69Fsh?xh3UJOQu|{k6lYxZG<QFr
z6ms?DvAYjbq*-RBz0ZIDC9Ztw-lU8z9^8I)hUeJL;tRBjI<8f3xO6~vx#8&m<%+)_
z9wtw$VH2JlS38aGPD5)s^UrTjub+_0``}al<L<P#QY+VSUQCv-6}%jC>xHHCsjYjb
zKVK4d-ebkwTdQ{+cKu$}A=LKhvkpgeg`{)3!NLQNazdwN=bCdBY_<)%yRo$CfN|uL
zC2RgJ+}*pPAvAJlbg$u#b!Djv+oN`FzVvr}!b|=wj(e->KkWHcxLj?*L>>n1rppti
zsH8sm-XX}n%|!jX>W4e`7M1_|bYXYzs?hG6LIr<U>V6l{=cu_{XKF5H&03h9s-GfI
zzuSVh?Ay~@!5zZeuUlMM`?c%i4yOYTJg@(Fe=Yv4V8Ye)wKF4r8E8y=+HWR!Kx?MT
z*_%z<inLT8hb;)KNNfnYb70Aa8CwEYt~%;_Mq9vfWlEDwZ?E{f*HuLun@%yTom=&C
zkE;KPrE^TrzDxQ1_U+q?3m1e;i%%0MZeOkAQYZOzPQ-K<uWSFZXGyC#ozT6zYU`%L
zHGgm2YF2oVdEY!@jv~j2znkB!S{rKVz}Z_V<*;b4_}kz})`@ZZ^Tl@DFkib|#-qel
zJxknXq2%<>tqTf;Qoa`n&tr{l@H@Hx+vExVm)V{_`cx-z=hhwK7oyb4xHLM`_uf{#
z8l9D|G^0V|wU?wz@WGg>JL{60c$3d=blSe-+B&~;UOo5MeZ1W*8_IemLTAa_BNqx{
zBU`V0b2UA4&!SwlF2`T$xY6P@C)_1V9Ar`r7hdqVf98?D_)I~QlaJn~u^pWE!6xPT
zl^3SVR@=ywtzYfPR?Kl<>zAbe`t*s5cUi|TSbtf~_p_41)tHaQ%QEjRzFK~2hG+`w
z)L!SrM|uV)6uyLQzZ$Y&i4OmB^9qp&$+HnMkN%zCn6rMfoq&15&TRE$W|r2-7fb)J
z8gE%+o^PRADX^vMPs&}h<8!6Yp4nDuz91&*ugR&5SszcD6eT;RBr`+=oSIP+vi8?O
zg=4dlyT#ql-Y~1$9r^Pt_lpgIQp;D|oW^e2(o)nf-@M=h`}FsX+y$Xa181xV^^kZY
zzNGR`l46>wgSYTek5e;bCvWBQoV{sxr{S{~!keX@WK86+dlK#QmFbFNzhBHx4%@wJ
zta@76mlfY>d)jqXaqZlL9lTuceQRsCXe|A!V|m-)LKR<()k)|4zT}xFeupKj7x~+|
zM)VKwh7DbBbgj;;I;vU5E%-aH&~}SUsi^Gq(@!Hd$eMUEzlrX@zqo$GDV4*8bC%R4
zsON8uye<AYpa0a2?GfS67RNFA7fIG{cUOP&RxbB~nuOas#?NoAyEh-(Eyxr9JCE1@
zVo(3`Q&(Ry#)>L+Py1V_Rh~SXW$N>~EQQ>|n*4PR!mrfUK6)uSe_dIMrFvZ9!niFj
ze<`ycyWr5`kjttY^s?@-f@-Cs<oV~Ef4Vf2ejB%`tTg?QXZag+3C4Y$*8SKDc;vx&
z!Ua6dPd_q8-pmVIG-OFs^F8c#-fatk+V9~KwTrsC1T|l6`+db%KO>%NP3v8zK>3K7
zeOFIS($*?%Qux2mSV`4;)8({g2E+W~v}Y5F-RhTicbDtLY)ah~Y2Y?lA)@L-di$B~
z>4_&+9{-!VE4t$J>!U}1i$=#~ODzBSs7oYt^{n1AQy;VGDCOrzhpxR^wRLLsRx6R*
zeXYFj1h3|16rakg@w8{^Ijzyp`0s4f9qX6dS()=sW_<1Xv!>frs!e5jRP8U#(>)LB
zW4b;6evN+i=Vs&1;^<Ee9WT8ZPI|B0>i9DEaAAnz%cOS&R?XEhyc|onME?$rDB7?8
z-pJ?)ci>CsXLAx#Ka{sEJah2!ml-j;bxoeJoMD}CNIz(I#qrj?Hm91Go?gi@gEK#L
ze^E@l!49P#UxgQKFTH$g>$YQCXPo$YE62-t{gs9GI^X+FD=#|Z=JqPB$Y}lPpr^Tk
z<u3$Rn)fR?=v{kz&{An#=rhB>n>SDF_Z7b^xsf-r;q8YTe`YZIZaO;A{*Ll2x%<UV
z$@32;yKQ@O*GJ>?%8ng3_bY93QcGg&`}8So?H0#r#%Ct9DQ%olkvKm;|M>z>nXe11
zujak(W8vQSGU7-_YTwVCvu7r-H7jR6ySh{6!=H*nF1tccSPHva&Gaw(^gCl&zEtYD
zh)EB=_Qq_wr}}xhIWOC`fP&RG-g<8hZmZmVE$?cNklZDW4t1N;>zB^DBorXX7vul#
zlG>}{Q$JPC*Uz0%>R6~#<0IL#O3If%ttg`_?5`pBapTYn)w51qe!c0<E5Ck`7h5*?
zhaQxvPxbm8*t>iFG_B>15@(ktE!~iH#cFdAb9d*&4eF;A=PU~=+~s{_Mp|d%1)f)*
zO+xqT%-RzoX}JIMhGR<Gc3ob3>*B9vOMkQd&|TfLXF^+J%?7@cj!|q|eSfx2H0k*E
zki)7s>FZ-RGlABhwRs{{8|vaj>JK|c#wyDm7MOU`I4RSO;lbrL;Xm^W&YA5|XA8W!
zqrLBYwB0!qDH}%r7Z=5j{1Q`Hq3`thZ$jITzXw>Z)Tw;<{jjU$N_ot&1#8y^DC_Aj
zoUr&nmp;!w&611PeAhp5F1G%i%4BgReWT+)hLv3TI%^I+ei9YBYT|@tGxMZ&2G7m9
zcD7t2o$(G&<AT!rQ?|@xsyANycuJx6`zNKUr>$dOth~f2_2IKu`;0SOn?4*-jy?T!
z+3}tVyZd|gB+p+s!;5L|LWil}nkMIQ?tHQ}a<c1HSs|BcOC{%IS$)ow_<aA1rM}(e
z=Q`UmOFCj_?+clkc|CTD?Uac-qumxhS$q4-5%rjIjW>FBlABNd&YRy-_ub{piFD4d
z4@y}Kdndp9IZ?rB^7faHK-U4R6nVG?TiJy?u1tQ}WuyQaFAw6<C+9v+3*;@7(DKUA
z*qE5p+SY{M1)bJb|2;nOOX`<^%}QVQ+NRzN|9*jKa~p5R_X80=XWXX6Oe_=P`F+3q
z_+lAvU*iQDOf6SFR(#*RTfYAb|J65V&nwODt}HbcZknEH)&D@>$2H{4W}i<U$3AD7
zcR$;{*?j++BY&<P+H>nn#MQem%K~c|w2c(CCoQk!QClUS9-gx|LMK^qMppJ57avo<
z?`w;m?U-PBS)s>kTjrFlw=Nx@rTcGPoprnDM<cxxO1po&ewg@5|J<n!U3q^VW$Np9
z+32jB^XhJQ#LuLeM+B>v-&q*$`+0{3OLgxKRmV9Drz>Zw9Q?6+-L>G`fl)l$_D*ft
zncESuRXR8JdUdzL!$PI!-Um|!FSos86G>(JnUztraaF-2{*zU{Nt<t*SFxKmh?=u%
zB*{HzK6G_&;q0}$^3*JX^(N`OD2R#bnsZv_;*$+G7gyd^s&fdwer)EtuMeN(v|iKG
z&&+LV`I2d2aap3ByI*BN&Lt70D_>c5usjIjQ_T<koYA{?#Z|cz#%}Q+H0)Au=1x^k
zN!!k|a;lAR(v(}`LemOT{@i$bBmPkPq<GdK?~~tZ+n@C<`=-LyxoF`v^H&!veo3f$
zBuWM9-Qc~@U>3NR^>*g=w_@HGR<C`Ya^_!#bguug+6-3z$w?wNZ`xfr<DDiZxY<Ot
z<==&`dsk+^?T+9|lhM2*{oYQ$#<O5r^*%q1sdGcsTFO_xX$h9>7qVRPl1G$f^0Y~z
z(akHmI^JHH+n#drb3^L;tJc}Pm#(^Nf1IPfxIi{a_fla};FN@ag-4a12kue*So%O=
z-Anf6w{LCPewia!<Kq;T^F{j4cWRvX+o5B8qD<t%>)xG}E}!oeUpG6Lzh1gFW=X?G
znGbG>%u76y^)}UrWF|<-)QLX&*yhgr=)$eZk4sgAYHvBM6`k$stt9F+?c&N6kyCoR
zt@uP0o;Dv6yI``5e=k#n#Oc7zKSIC%l8%pm^V`D9W7{F6z>Br{&91N73@X2+G}Hvl
zc{KHceyUZ<J#k5{IW7w%Ux|G2FFA9>b8eq>l>HZ$JlP!!vUjXo!NS^pYF_w(ywDSR
zOO05*+-<SBSfgplu+Vqm*`*hr>CH-GRok-E%;rPp%u~xh%)Neg`L27eCQhIEwU)iP
zF>}_L<ca#e`!m1Hy4X=<@%6gAlMj>L$4{2Z>FpK1zwTeYSO0h4tLOk(>!@0r6>?KD
z=U9D`-go2M`>Mww)!l`2mQ7i@{^`TNfu`AQ{{zEnM0YFa#_#^TrebQs^lkdfuQL36
zvFD(Z)uK!De~5A3xn0t(CiAYD*XX`w;*ohB+*`{g>|5}jGjVxLY~7<LnhQitR`xbC
zf6O$QpQ@}=y!F0$fA+Ok)n4yDZ;9XhU-@Zx;<r~9t@b{?d+=jze$@3X+26brXD^x{
zTvWLJkm6RwSK$k99i1LheQHU1V94zQuMVott=aHkbz5A|(!aUlEM5CJe=-=>&kUTe
zI!mHs+JVc)i_PtQKeDPkl6kj4<o=&<oyRAWG+TTQOPlyN_Nv~AKYLe+E$Ca>rM&t7
zWfhewVjH`*|J>(#Pfc^{4;AimMxS+4O{JrDTW*ow!y{rN*Sr64!rtrh{L8*ij~03{
z@5vjv^?mF1E3e#dpAeF$a)<M&$nnJ+6E4Ls)F^el)0W=#ZM`1H$44t?t-D_J@@~SN
zf0C{5mru!=_T^gZ`G=X@mp{m~ZvC*0sr#O>?&Y&@znb{Y`*V4_zn|nIjrKp&A1b*E
zo4iq!mwNx_+H+QsUHgtnTU~JtiuH<1+o;cdHYxCvhsftG4_sezAHKx&@?)^+Z~q2H
zhWXDoVmoKe0(rcb{5rru!4T9C23G=<)d$FnZJ_mmr6n=fy=)2d&cAH|8h-xap_>&s
zMK$u3oLFA)_7_XrUu?*|%ba}CEILxi#i}#<%l`K~?UUp;UcSrJ&2X{6LZ<HXuNUDz
z6KwbwE6P7x&G@`d?D%1Ze{)VWm&{OEDBm(Uai1*9;jamQzD?u5F7>3w^2eFDw|g(D
zJY6$Ed!zPQ?ub;u-J<17YyQsKHf!6rLz=t8TdyoJ+);O+erxcSpuROuQ|^CIj=mK!
z%_)0jZN5ml=I;Q{^!<WuORASneR(JEP8n<7LC^a6tM=&stZuM*R5!y(!@MEpK-`pu
z+})z8rwnB>&ZKSOsJN2#Mc$Wj=7tBHQ^ZsqIu#DxxyPEmCFWYF<361zq3Rfg+2_j2
zW|vQwV{9>Hu-TfETE2M8h0pd3A1(J7>}BCUt9VADd2ZRkXL3szC);|?yk)lZ&MB_*
z5<wUDPJR=lXmZWuk-I7D?z!78d}NXJompeDNh`%MOS=B<C8kFque+YONhn8aomg@B
zrufp#rDZ49s0-xe33O(7r~X#*F?j8Eb?QE$ce`g<@vM^HaEM#tX>`+*s7Fhj&l@wf
z>#07{e{)E4_QazL`5ri$TzHz)*(QA{p!)r(rfKDT43_1&{E;fHJ0|h{UEuRx#4ffu
zvEY=&(icHV8L{g<E}nY2?rK+6b4YZi*}AVek&dBST<@2*8qE9La)O~v^^35bs=~WR
zGt}R>na$qWbRxYqgGWr|+051ZjAw=}x|6-sy8H9PWcxjTv_o_`Hcu{ipB*}(ed&cy
z*E+80%=mjjH8l1_>vi5ErurFA*Dsy<_wSD#3Ebz~A5HnqTC(aA_j~^W(Y72Lx9Nt=
z(&dlcroJokQFwRp?B5@yb@yv##Fw0I_Pq3)b#eW}@{+!Je~-*~Q@Z@*hK&{*Ue@~@
zIsW$_=M4joM{+t6F|6I?cAf{9zrR2KI|tkTFBP^G&wkr=h3oXi=~x@M*LrQ?k!&h#
zVZ8rH>2+Fbx|r^_+5)?c8<xvhM;QO!*Dy0`;{Nu$t_yRQvTk_C$=rYCi>Rw()4J{F
z;v&{5Ro*n*U%YkV^%WP4R;;>~apLWS!^>ao<caj1w27_Iby02PcVB<A1)F@En^Z3~
zuXftjC(RXfL()C$!NtHGb8-XkMK0SsUH0DWFwt{uaf~HSdtdp<y?A!Pc~Q|3znMyH
z$8D~;c$~T@v6F>0$k0<(J~+(bV!CkrQ_nNczMNrQQ<{Hlu|wAW6S;wZT5hGS3(%M^
zaEo`}9`z;PtEYUsBT~;MUS_x9=gUy*a<#q>x(`2GKKSS9iuF@!H|zDKeVTpv-d~nq
z^3QFT97?U5=JSR>WKu%QpN8d!ExumXIW&KT&bbdKX4ib^XJBT?XS#)L$BqT^$R^>!
z3wd;vvO)^f;6=M=!qC)^m`mh)#7|FpWcJ})c!9{ugO8{8%$<`~ZoKlzq{9U#nq^EB
z9HcjNF1aaLmi^!M?yGGZ6Wi`C;_`m=J$P;T=ZkM^XZ271SYzuoX~m=>nZy0lJ!iRv
z+DVJMN*&EKoA=)RV}<dqzfTn<^JUgNKYj83qk~txZD&4v>J#zzNyScq^T+aMtM}jb
z(wTi&Wp3x<mF6trU%M38pW4iycF5F!+Kj0VMl+dCdg-gVB*`$I`6r;z`*oGux_@a#
zQ!_Q?t~~bJUvK|2{on13SuQJO9@ler)ic=gZ*zR&pSE;jU>N7E$Md&cTQfn5ap{fh
zfVoSQv*ft<ht3N-m9;2t)m^{!8Gk>XH2h&W;bm#^OmWGsmhAPq3+s)}ZMe80_{&Q5
zjR^}kTsqkGlYhaF&(~OvGJNVewd(GEm+ocxl11MQ`ZG-LXB}@(FKg)bsJ2LW8+hVv
zZBPK0!=BG7%`6P<oWcJ;elnU_|7NL&*wMmM30t%otdkhL*qrXfD^6>W3N~0%CgQU9
zOPkXMYrj)2cLKg_vRJigk+}VbCbqlmLV>c+H1v)%T2)@{;!Znlp<dtW>fv5svYJu5
zU4YZD<LInu(yPB!r*=BMRjAvVb+z=tyHzWWI6Lo<ecronYpC@thjlZ3&-Pqbmu;(?
ze@bK8-yBi-F9-AA_m=+4Tgo@Xg8A_(jd@eo7M`A4w4i!gQs<wFbF%`LXHH=(l$T%B
znA8^ZV2jYNqpz!uYLsuiB|EoJmu*x3?^Sh<SA{YJt}eJ^XPV|JGwsw%_VsJxJ3c5X
zmI`al-u$OjZ$h(=#|?YMpcR~V+@;^XS9r(0afZvQf*Z2p527Cn@c(ku%F7R&B9gsj
zLTO`E(pD#n2i{htSFaWQ`}zHMxTJbvSjn8Zab{m%@m?!BA=Ulp(yW)QXXCAv{q^4b
zxnQ{=M^@rN{JwcS7J+kF;(q<*l02rpLo|Dp{;TMXTrT;pug*XIcxZZN%!&6sLa&Mh
z7w@;L-*@h_^v9QmPp5sIyHPMuB=+Eo*i{e3UWwkX>AoJJc6nV+>ZPrvZ7pF<&+lc$
z&79@XWv89Pf7x};lY{AvCsy4neRky?+xe9j+g~e9{;0iHUH3uP{!5<{nLN6;N7?mo
zW|l5}>TjHJvC{Gd_hD<z)7}@ae7RaOGu!*sGaD6!jO8bH@C9u@%(yL4^7tcJKdFvg
z{O0<PW=xyUC+t?ezd_k3aluLB#)a49O#<F|Xy5<fnbErZ%xA@#Ov&vJz0+%sK90;k
z;^4vh`AnQK-<{$Njd^90d2?%><K<*C7RP`2bn<ac<CTJ+S5=Z;sI-_)(_pi6auBGy
z^ykkZX8S1%g+4^j4>`1?QsoIlkwO03idr+n!nm`ydRUG5A2c_co{CqIQt>V|J-?}J
zOU9eZSxdt&>vVtGGh3(XXY0y|M=b;*FQv^2o46*exyGcXbP@ZeEdpEJmOt)%KDn%H
zsq9QHZf?d+eajh-wL}%`O7ZnX=BHUJAHUVt6!vzB)nwI`U$leHsjM{9J|{eruet2Q
zTIuyaTU^ei%~@I@_GsZWkNv4>>ux%hNSu>pYvFbCX8F2F<Y7qniAhF3zbfwbXYuX4
z71kCe?R|QJ)A<SQJVn12tl=^{pcf)4S~{uptda2B@Qcqc=6D=%+p2Vn@8ztm^Gou!
zpE2L#<Mg(?bX&;7jfY;%<vO~uR^R2aUX9|*+ZNZiyzmk;KhS6FUg%ePkWF}J0p|f@
zwWe=h+8(}%lFWEDQ!Z)yUgeHFS(7t!UQMyAbbNP;droAmvv!@4W%`S$%pUU`Bkot-
z_jCzZJD>Ag7q`s9ExJq_S9o7q%(Bh*tk8ztEPA)YQp9IIyS?6|WZ9H_7sqF7wK=*k
z1)nmH3bA|P!?>|tFmc~f&*}M-lzF;?TN;no`ycym#LBd<uF289UwGp&vpL5#SN>k%
zr1zk1>7J$;Ugv%nEIZ^QdufkGP+`Bg@G_Ro7xcNDi<<RKE6lI?e0lMpFFvW|(VHv6
zd|}nDKN}++6usJ=dCN|871R6g6+WwV8pR!h`cfsQit?!bo~V)ZX1V=&_y61m4C=Yg
z*cOsoAdk(`v${fFR|0KQ8(LZtQ(e`Bdr!V?CbaMT`U|-$*9x{jn7w=XO%=aN{*MQD
zrG9HrROB>dUFC7&+n?WW#WjNDmWQY^^|D<!zh3(PO?#VKkI%ig-thB#9rX>&5&Cg5
zK=tb~oy!)Uo6r9HGa;vs-+zC7*zCtFk86K_NMEvjx6Ro_b+cU#mrW1*FyBR7<=MrX
za{kc@mGib8{#o?3&3uoF*8e=KxSb#TUUyU{J<|5OSMi7U_^$s+cPDN?z4h|ftNq6e
zE;snZe>~s7v)EwQyZo^A22Z?m_0{>(H~+o=Z~ub(en&HTtNwFkZEJqLW_z=<=js!F
zKh`eZ{L%1DaOsze#;q!{>uQhptY0$oVdn}<-)~#RC&^btTT8udT_$_^%Tpu1=@-v&
zALLqcM1y_Km*3{wcfI$V_}BiTZ$X;dy_stb`nFwG@t8Jk#mP?D8-~l%`yb6RpDg~!
z^G0>yx7L@NE0cD8dfCjSIQ4jBT#?5|0q0dKR__QgZM!l*P*VK%+@MTB+wz(Yw)m7#
zx!N0Ml`LgD`_d*A|F;Y2R_ZU7xV-as?%IH6o0W@CXGCO*KN9S)viRTo{H;OXb#80P
z=VAMnl*|jc`1$!?<$k-x59@xq{x~=N-kh_#6^(9*E^De5ikwrgHP}5nxi8$dOqeB*
zHM@G3=Rrf6D+WbN?E2fA*RYuhbg)bG|1f=L(4)I_s#d<_lC;j`d5K%}zVAF(EOEb8
z<E|M?rt_3{|DF6*-gKI*GiJ?OVDj?K4qc&+@*ml@wFYx0*<5-Xef#z_b@xY?reEG0
zJ$na}`Kd(xi|bb$F#h-V-=^NcEjGVw8u%~m>Uh)0IY*CGT6wKkK-=RR26KzIc5L~+
z>*!{`WyxIX@r?;h^6C3NK3L@b@tN|;?ZKHbDQCF^RD@@(*#3^Y-)Wt?K*GwD)rK=F
zB8wi!d$gAvQkRL~k(J@u8<3a8!9GXF=GUwC&ELc(|LHyd)+c|@%L@l9`6i~ceq}K@
z)U-3Rk^QgA$-ifR39En9xp}1cwNugey_tq>>VEkK&W*=bG#P5-8TSOZKRU2td;05(
z7c3&v!j@@l4$!^WH>vqM<Axc{&wWd3JHF|-RI3H<j=H#h+xECcbHiBnBvj08>D1fJ
zrSYzbZ?m&|u|dN7YY9eTzM?)H3Ws)RUu)lKe8BYO$KK@<Za-3E%s4trl{gxdHA-85
z=7k%D@$S5Ql2bjARWw=duiH$YuYAj8qM3JOl`WLMlXs0XD|}}_<MW{348?ykqR%I{
zOzUjde^T@$Mn%fw>!zn)U0n~pyvlks_y4iq8<seSWv_e1`Z&yi+dj*@QA}cmh;@T>
z`9kN3&IOB3F{pR0l3-k9-=^2#D;KsojcxX}>zBWD1kP((r7%<8ZH^|BmzVGs9zKhb
zgw}5}HoTVGInlYDON_<q(Iy=iB`?qaO=3|eTT|6Lwys+;^O2CR<8;-+(A4ro_8;%m
zj=A<Vt3)ran-m;e`at!pyt#SIT`|V#9n7U>**`<Yo`-6EvhJB$-90T+;O;3|h2t9T
zw@&_5=6L9HX5xnVPi5L4uQ;Fn#;xGqMh~|y3pX`2pX^`_VSKu1hjY-W%|(LyXEe5U
z*;y@<FL^D$Q`KVT@=iT{?iU3PCW&|1AJwq=eb$h%UAX%G4Az!qdMC<S{GawTs$S>&
zGtZ}f=h9n=GUsCCmwvg%eRgBnYLzSRc9%JLTN{SIkNR>pRQam-E|0sOYyU3%bFEwH
z-km)4fWwS3TB0GR3{O@s{B*1CqI+?8g7J&ps~)^tDZ9j^Lso2|cG=@kA=4J_*gET@
z$XWlbSH9iNIO1P5MfEOs%A^-Pvv=H6s`-%GAiBJ8huq0`Q+0S3KjHM;$ur6N<cEUm
ze*@-C2w+$f=*w5NG@?h%K9T)n-q$L%DIQZ7xXfCYW#YqXQgO(O>HGOEi4P@g+j<Iq
z-!f-Vbv?jY#gG`h<CL4|b>qH-b*YgW&L2!Hv%|btHpcCHzI%n^!zG!wmnL{+?3%vJ
z<i2Ctn}$;@R`Y}Ya;WWai~4M3>gC|nV(POg&#f%3`5OP82C)M(MYUXYVg-G?WHZ=y
z+Ey;Me)CkTX6eg+xr_XG`!B_@Z0?@cs;9n_+j3vTTkWR#FWPK=sn{qv^<AAD=j&kY
z_{FA;eacSv8d3F1y}YVv((|lqKW?afx=t(aRaR)9%bwEMM1PY)rruANgxeol6*cG`
z{vBWb=zz1y(N9j%c6<M&ZkQx~K})vx|BJXCUQ7$wq|2YB{(fIRZ+-b~yV$?yzfD}Z
zpKn|8vzL3V<tlS4SCrb@KbU*_o@F9~p5>#o2UFiQY-q79t>b4m6=ja&inZ`v*JEbz
zNR3xZuu;gKZRR0|pyZbgW+(4V+f+J1SzoMac|iz6!$kQt2kI|fekuF9x~4iXLQVC0
zr%CpM#2=;67e2Rg9SuAYq4wc)s?ynyb6JkM&C}bXrq39&<XMwj2m6j44V;grKDC~(
zK$|Vj>O%J96ekUz%~dzO&iSQ^1gu^X+?~QZmFxJzdqP<f?^jMd+M3$$#h}=J&S9fn
zt=}r?^cR(yXM;DYU+Ax@;brZAGWE~_U&WHm({>-6v~c>Y&1zdZmVSv_uxn29@#$ax
zOjvbzGN+%>j~#^<zWCY9-)`mnuuUcLsnw18hoy-;{*p_0PU{_(sGGdd_wfWS&E-zQ
z=BaEElXEJjXflX|=66}Gn_UCCaB!(p#jo7|A3)n2j%>0i;!4d+fn0Y8VuAXuM&R3>
zK`a{^E`7qy5fcSNP<I<N#Ak@ylcw6xpCy)|KSOh4V&<+v+Z=A23G90v{=uVEiG{zZ
z|K6tz<C9zF`mLQQ_eLgzbJNU#C2dO{{kUJ=$a-+;k{gdR`L>;S%Jlo~c7C0TFNp^i
z`wRB(bD5(W<H|qr!NvI(zoyIOim$hi>3p#+zGFp~n3MOi5V@r@6C&ri{dQf%>d~dJ
zQe8H7Lx|>ug{w;x9iL}?EZbZ0cXz<Vj%&MJ4|atxGRQrge8DnUsq<2Zq2{NIz3eUJ
zAGY7qS@+ofY{7lKaIa(0KjyFgvA!sO+WhPD#rCfiH)535G_>P-w#{GnluB~cS)F6=
zefPgybvR(_*`mKk^ZL$tZK|Ho@^<C#PN6AE`ifQwp=p*&IZBqC;&A;V*=3S$xhML-
z(}w}}_l}r*^Ou*{Mkqcx)8kQjvm@D6{K|>aKZW%x&fYWeo_XAvUob#R?wujShN=9S
z$68J#EdE*@k+hG0+09u?#q?5kb?gtVHQge+XNis74gRMFGuBC#e{5h$57NG)mbN^Q
zqweC41<6wq=V?o^>ML4lC9+1S1bPHbd;W<vFu?M%%;mJ;?Y%n%S`$=To*p@|IdDc#
z%<=cPoKt0fd&Zc33qNM37MgCL_4i}hi=M>fT$Wi(Q#wxxa;vINwp2am-O)GYfrncs
zv#f6LqszsjdckTzB`fbwzngGbx!>GO`PMS|U5}3~JLy@-zPsi2&YR0u_&hoDrixQ{
zNzA7ouY=MyHnPvZBK^BA{_5>>CK{T5r#s(tJl$CH_WVxX8ydGc`aUh&6d6>-d2!=P
zeXdiwFFJJU9fP=z7Ojg7x;OJ-X?~mis_vDNIf6~;%jP{XKD~0~>mO{Ixf9PHE52rS
zVfM5iJQ-Eo?Irx*1DI`mGN+$(?>KrduV{D7&9%FVw=ox;vUghUQ)GBLMSo^V$wbFy
zZ;jh~5_X2@C(P!acIL#t-EYtDoTt+pGheD|R<<wCUzt_>eRsru8OoHT^Y~XVA7(U2
z)%R6Rte7G&H^%w%qMtdXlfJP2T=Ti<qtZf=^$$~a9w^-4>M?(2mEQc$mH(YTF?^Wt
zq^$f`=ACzQJ~qrd#_%xMOjos~P+!q%W|Gt8Ioqt9_9!ebowkX`Y<rLMdE>LHo0=sL
z{X27Na*FdL0qyG_?b9sEPHdcWqv+V(htE#7pW86|rNilrSfza4Q~62tc|PqE7?K!Q
z%6rX9-Wzk!FnInsnF%`&^~)T*DbV#mmsfn3wV;0FLT)J;eMKwH^hif_`_+?QPM_jD
z%OI3Pe9k$US4GM9;%59)^HxkyZ=0vb=E-~WhlTg@neW_rm;Aft_UfYiOkZxVyO)_y
zwiG_9Wbu^r{;BhHZ_5jnow>cgZ!U7#(-0hSe5y3h0;lzD>$2YI1z62e6baV$SFdqg
zJ4dCa@|L;6hPf|m-%Wp~^+@FWuao>MWj6+`6E1X`<&*aEmFi^YPJLd+%r$e}{{=ev
zE)C$1auPl8#MUpw;Qak-VzYdbCAQYZt`k~%eD>_ML9Y$|Oxwm;7o8=Mw7M#0QS$R;
ze`BuiaM#GQFI;Qn!7sZu;l`n?y5g;Dy)nYRzvmqb-LWoZTlEPUpWN;5HfU$ZY%*3o
z!XTbuA^BI~MalBnyl1-mSU6RF&ORI2=M$2-<5g?e=J|izqz~6xD(qp_DZfzl#rs(g
z^L*`tDltKKvc!`kKU7?fif3zIBcc57RNZO42Q3^QbM{!D)l(JrnsKX3egR9hT&iM0
zW&b6i`e)DnzUk9AeCOVNr{yen%oEg>`AzNJ%PIDYsetu*&%_6tkC`R<H?H`jRCecD
z(suv7XB)D<cjW8&zd3wwb+~zqigb9?gy_{K4>$kO6`H;O$AxCjh))+D^Ql^eZ_v4J
zeE-*Dxfc~j&Xi8&+W&k0wBHA=MD$;nF<Iobpgijxe&IZJj?S$!HkIrYV*0lC(~3Wt
z-w#jP7QKR}y7~5_<mLlyzgHbs-y=DdeFx)Sr<2Y4lB&W#8v1-E<zCJ2tIgl`LcmOS
zLjCH5S2@;qnEtGOw`ZlZ<$-$!(mS_(T;JOs&y>Bl?<e0%#^5*CE|(p7T=$pTq3s`M
z^DN$#d;OWdh}9={-Pm>5BfFpJ#`j|ZRc~rl9ymWuJ@)g`wfhS$edJc#@m7){(A&_l
zrQdAfg6&uO>q-wuK1g(ZZu28&e(oZV8%M*gp86Ph?MCM=In$W45mSZg%bp$7KdLO2
z8muo|=Pwr@x%}Q<=ZAAMeZu+Dy6=~L(|i49>)r7ANqkSG51bFaR4URQSD9m${C-RP
z+3%O?j)_ly{UO><d-bi4yxQ`s9^SKSbp8^w{q8P~TcLT6<x0&`n}gQ3>F@sb;uo8S
zLjhCJr2Yu&uDLv=%iT8$weDs*v~&J%ZC9<on*ZlBFf+V2dG7<NmeDI{P<=~$1#O^U
z4q8kBuAq$-%;0QX6*tllxUm9gXac0u$V36ODkO-@&W=mpwW7p5xFoS8RRPpQa1S<A
z0F5Mo<?QT04hA{S$P(LVxQP)l+Y?*FPUhWq`?7BRg~E^sp7uvw^Msb`NwK&JZho=w
zU7}0x+Dwh02NMeae6N%i*Yx9-`|<4T?dQ4gPhFjDExZ2fu9_Iv#0kqTTDAB)$Ub|m
za=KaR)b*#CqU+{|<=5@K{#u>CAad=$u<h=}?{c@_e7DIZb$0zJ{?!_Mn{1K|c_v8+
zNFG&T+tIWAOwoOQ_H<jreLK642(4{a^7LqF&`|R0a!6Ntw4IIRP1!1YtMdU{JB^M$
zyQ82McD}>Wb+?D@?p<jw9@LmtBvx^h{z-KV+nCBwxv}TOEqAwX?x#BvRiyLZo!z%>
z`*z0pUO{)cKC6Wo+Z!y}{IF_uv&Q|kr@ueoUEOPBySmrtQjvp3(6U6IXnBKM9Z8$5
z-`{Ez%;5TWbjtjChh@zIYkEpo-IJWiU-Wd6jLU+o*{kIAS{C1Y>Yt!nz47i*$)oE(
z+sYp)>!}kud$B*b<7cDiotHhILT-P3AjEJei;w+!v(fqE`=0(+TBWemrt8|dUkk<j
zf|3=E{A)_x_DzXlw^CrBz`X>9Emd|_=cM)}1kU4^scxC`;p1cRjjMPoc{Dysyzzcq
z5ab)aer0Oe^Yu@3J;fc(R<PuC*fl9c#h2#!e^kExVco<1Qy3kuS#Rjj&RUZz%P!!!
zPJ?aZqB2h&%N08pZF0!p7Uh2O5dVq`>DT3#hKW!7yFco#>x8>eSyS)n`dzY&exx#a
zj=PE5N7o4xn9hBFA$Kpq>+ybh)sk;Jn_V*J{jiAaVn1<ByXL_1_h0-S?aH^6sb8PL
z_vQVeAFr++YI$uPb4<lYuUOAV^wyQ=hZ7oFA2T;!S-keVcj3lee?RlP&3Ja;0DH63
z{+vk>GyA`3E6aymR{B+Gw$rH8cm4X}uZ$e>W-nB~h`s7)m=bc~=pu`U8$P^gGu-Tb
zp!A{89N)W<&Fh=kPuP6F(i0^szV5A*L90f?=4|#)EKg>+3MoJ3_ISE#J44{%lUHy5
z{=~M>=WYAEz~sXYPcCxEmNESa|HAIw(#d-H>cpgu2?yo+uU|T56r%hmV9UI!;3><q
z9u@R%kF}q9<Un1)SH|MZPlrR2i+8QCJl%S-pL53Yb94NbJ#H4CuigGWKyu1~RL-Rn
z6MmoH)N<S2Hg=V`{-mJ!$J$RFTCKynYxVY)jR&_eTvwivQ2DE5{>)!@0{LnS*{d8C
zjQ-q~=KtG&;Cs2Wtk|o!C5%flUX^Vrl?vVZ*GpLAtfIBy_2{boTO#iLxcB9neU8Q*
z#aGTu=h{ABIUsP{kv&2GFo(k|%glp0JFWQVrXJaS|Gh+o?zZb@zWvu7TnZLARafR%
zv-$Y`ylu_5G^RL;AtAeZ)0}6ISZ$ckChYk0<J;rq>`Ud%YHVhoixxcXJKKe~wwmdu
z=yea4yX==&$-jJ)BR`!<O~{;C%jM;d=l^!hJ#8^bW$ByOOA-sTX3UDzIR9V!?1G;@
zwJWpQ&vDz7Eqi&1f4OjOS+{qrh~zD)b636o<|c9_@9_8b@6q4=JhZ>p@Ur9szJFEs
z8dqBAcCXIT__WkU=E#PsDR-C}f4q{M@qdxbgpRPoO7iMOc59X0^yJpQROEJjQ6wH!
zF>RIl?HlJVd~tIBx%LpxYzuS!TfGa;Wqq&Y5<AndYSX>#bA5y*IbY`3Om<v!Gc%oO
z<t9(xw-G6ayHw@!(v35XlInbXS7(23elPuc>1yAd<`tXEw@$w1yX7(4?kDknjK_Rd
z-sE~~(i(sEnEz*u_#EfOGnD4uHkd2M%y81veWG6Zx=iLDeD-W9#^)7WzB6oF<o!%o
zcFjlq*)gjhu&?|f9;c+cW`fBIfeh(+t+S?w*Iq1_O#Jcud1b}T{bg25X2x>c>Ntxe
zKbHE|-BSF_q{b#9C1crL$*m?y7cF{I;=3#2wVRagUfgv|z~_xZi?8m<<~<#SiNP=P
zg8%LQwKS$yIDsLneAg6EnT}owfocX&IS;A=Na`gTAyqJB)GDB=24*jG(Avnzl$hRN
zjri$Fx6MA;#T#y4y3Nhxet&S*qTXP?wc0DCa^D`D%<SSQlw+sHF!ke~+Fz`bCgq6p
zv+R=Yb=&{@`P;j@zk8O+-_PeSFO<1fStox`{j|lZcil>yi&ggCFDt+J_v5>}>-|6e
zy?C(d_MKX;xHlW3)KfRun=h8E5?^;MQjGn7d}!f<@Yf;%VPAKwXj0#r{Wb0IY{!Pj
zCoST3ia%N+{aNN{<l+hP$szlnAAQZmIpb}i1ncSjar-|#`j}Z=%A;7HSI<22df|+a
z57YiPyx6@t^ZTu)BcdB_&uhq^HvQnulSvj2_H%?>&UnuDTH=q4%-0|1UJ7mxz3}p*
zidMmS?Y5coJb&hLC_WT$IrQ+*tNrJWy|R5T@}JM4ttsz6?<dn{=4Z<en!7kQ``fSl
zx56{F(17nxKHKWnC86gkO}zRY0)H{TFMA&7H{V3RF8IWc_o4GPDm9+Huy;mS^u4!d
z=W()D2OQg$zsK&=;io@0KbhYyd%L4mgUKXgzxm&Z+gIgQUOahGyL)=0@nW`kr@n-Z
zGH=7GcK@w&yZEX@cWRhvJahfg4}$Su)b4Fbm#}8l;VXO5@<!!&xlg4@?Rh08p}(`f
zIPtM(B^cbunG#&^`{A9Y?;@UdzpWJ<lK<{^TXsGE`j?Ka^+%u7D$O(9m4D&kBbGl?
zS&sW2v(lVZZ0&bIBu;GMHo@~+U$?B=_{;Tcuj6NB)tw3pUQFc3aJed_y6*D>=kp($
zv)l^$bj}`>%6k%gE9zUh!h;#i^0UuWOPs4H4qDzQ^;6%jS^9(S<(KR+VR2h~m7-Nk
zo0#@~lw2*l$B$cGMB@LaJ14X|{5Lwxh?%5QAvL2!;jG|gd6}eJx5E#7bw2&=uKfn<
zb1#=R1l-=Nt#xm=Aam#S(@Va~s{dt<)LeaX$$}*|UM@Qh8u%>E;ILcSx|~sk@7KZk
zJH9%xY<_LHHsgmwBm?7mZa0xV6^D4|Hds~gANlqCpwTm>^$HB1PHnd>JEsyk&!f-V
z)$FxKi6G-ureLj#bBmLOzBxKXuKhM6T;Rsc$DSq4D}?vFbK>W)nWy-1Qt2kG*>Y}A
z%(tw+*0cECb7^&F>$^OAB|badN^Og}qNc+bylRq7WYC^S^Lrb9_Wj*C$06v(Oyw12
zPkLYdZj2S(+swTGkWS%5-VX;WW7yZLb7|UW2t6#CBw{}O7Q2It+dq@Lj9ISQAt#qi
zjy~K}bzt}2<!KWRRr$8AT(#oVgZr<TBl#xC9Z73FdU4gd;HIUkB163mZKqfHMV&Y%
zzn?cw$g#BPyNu(Zlgqe-+TSir__LSeCSyf}*@PKu1<YDRy|p*)$tzWV*jcISyKqx|
zL65O=?ALd-F&^0=&AYrZdK?l3=2g#Kziqzw+F+q;O)Wc=&XgGSyncG{(XWKKWljG$
zf3e%Wmfob}v$;vyC@#r)nrmRhaZ9t5`AtSXVXrOPgti>4V{nq2AN_2GRlsfCU%dOD
z9?y-7nvyv4`Wew~=OC}?6Q%@ykb5mXHTO>AJ8LzErAjL6UJC`={g}xg%u>C*?ah_I
zMe{3<6}$ZG&9m+NmhfzULDiiZ|GI=XJ?FOF`{PvVVfMQdEx+BJGI_Gm;l+Cj9#`s1
z92a;t^;h<S8*g{|9ui2Mv@_JH#(2)!&sz@tPyW0*ajWXV|5e6ES6kR-h|bm5bA2lL
zy=U|M_>P`bu1~L)uE?C@v9T*qHEc2Skp*4iStp+I+;v|jIb+fx#uExB3pgLF-BfhP
zspdqnYb?i9wwCpaj@d4AJ0+=gF4LtmU#Q-1R-h)+$Eulg3f}*8V~x0;sqH?^&&T6L
z@MDo}Mb|j|`zjS4#pzFa!q>2zU;h7(_xgM8`OGoQ-B@*EsoKJu_e5_6Ykj>wk@1P(
zBrnbn8*kby;@!UI?vLU(qVwmiSvlE${_|Tc5z7D1e%5+&_1fmoQ@h>?<vy%hse5Ph
zHnm3e-qfE{k8OGrmh9jn)oh>5(-D!(pxDcJV0HV#$$#$K{JBzS&wpC%SI1_nr0>(y
zEM}hdn!1bKZk~UNP~|e?wUZ2F*wsF&IZJGl`LX;V>%{eJX?puD=lrhx(&A8+k~FdF
z@uatooLaNvHeZnMijMDhsx&cWs@#$x(C}$fFN4nXyC&!LY^~?Bb8cQ9$f97fBQ=OY
za6`{?f!Q0HVwpO{4okc-IQRUHLR00}>q*CA(wq<E{&1I5oZcJubzSJ=1kVJHl@G(X
zo-zGgBRcbI_}w|~ww!ryzF56iw@kac_f9`&jby;F>#2KWFK-o^9Bbw;ss74+exXo_
zvFhs6-)1JViQMH@^q0+?r2FefPTrr)>zbE8fAQ)&Q)|KDz0LE;PT}`=Hdt71HD2p~
zo#l|(;{$KRVw2@$O8@Uo^p8Fo?(odAVV_BQ((hLHS+m?`Y3gUinLFQp<#tZ=-t)3m
zsV3UitHdsH&Soyjvv!sI%YE6_pEGFv!=JjvuNQ1?<0!dMbf$Q&td&f3tyb&Nso7$Y
zk~K>-KT37lR@p>ytL+z8b~>}zJ4)R6d1UEUecnFv^Ny9L=g*8=@-i{x?dMmGhTO)^
zO>Z0zZg^1A^ndjQHlZ;21#PnYE(>0LZQ!-2K05E@k%QLfm>v91wb(~Uuer4-NF#2g
zMA%Jpw{59>G0R=wx|`hzQQ<q#7sIgA?s3M+h?(aO2v(h2we-sFL(lmYsu=mNnfN^D
z3;J>9$Dz9tkKL@lxN|X2akH$_(P4jBbMb}GqyG+p1<!&4HRh!~to|(CQ>aocyXD#G
zth(Luo(s%-m&o=Vw(;K~|BuB}SV}eL!X+t@l^aDLeLc-p)Gt-Ywj(R=wZXTyUz$s9
z9kSx$J}(((_9g#rL74{=ufvRGH<c2am$e@A-hDdEmUptr*F~MbJ<4Y|1s9ZUQeZyt
z|JL(K500{{H7Wc!Q90?s_kUei8MIGt5RUn>fyc`s{wV9*B^#XU_i|dF^3eHhr0Oet
zX;J$^!;|Hi`{JkE;cO1h-g;~Q$7c%`WJsr0wzF22T2|y%)V~yC_`cQtOPlwehp&{D
zE^G<c?1>4Cx%)gc;;Lkys^i3kj&(Qh{Z&4|Fstb2Wy}Vdu>q)K4{I0&6y+xer<N#0
z>j${FDd>l!R+K2ja_PI}=andc8f<QcxO)H88n!n!K;GgEYp5BU8xpa-xF_6u^5boS
z`(B5?@K{>5qsG2wc5J$=^}QpZi)X8|ceJQf{FvZaRIaw)?k|&P=9*PkrnK=cU^J1s
z8(;rp%l(=^LaMh5cH8G2x}bl#MEbz|jzp24sgv?I>wId~xcBb1?*`jkyMJFq^8A@k
z{LcEk`}<1y^Sj$sI`&L{yPUgg<8}F+*%Hg6%6DsgKi25JFWEV|ckPAUH{@>L_gR}Q
zX`W}Py84x0^wkY^*`I~(_xwAjmAC!ln#c`R49)?orFd7r|F`*n>SuvpfxC|WXO(&G
zzTsa+=<1Wp?(O4|FXJzas95!Kw{X|Y8O=d=FLzzNa;ou4#;?BP^KAcGy~-=74qSed
zbzaZpM2(Ov0nXgM!&iPs)z;k+UAX=Kfw$L6mK}YZbhsqt+rRt-&Gmw3vt2f^)y%)L
z@Zx-X`}Z4WR<Bwed13vky(U#3GDXY3-I@D0bCY;B+vT~l%uN_|HIi?x;K<X{XY1vX
zPPY*Mz3BMPHP-$@(K{~2A8}XE7w^}-!lbFccjNPUnG+V~CtSL5`{B9Xk1r=lw9M<N
z&i<YGVBM;~!wZ%+hF|wrHWSK!m6h8rsJ8j!g{4woij)$YjXhRY3iEz)$v<gocO-OT
z)$h%9!dDrY%4*GZt5m*RX^7{jxe>d^_3wtSD{dd1y`p*ELBm_~S*-YWgf~sE{y6R9
z?;l&9SISoJzt;SwQ|=(+_MaJB&!{e6{j9aN|D)`|OujDtzLN8|Zah_)8Xc{)=CQ}F
zbC>_CZ>zea-Jbnc>a$X$;L?@f|E_VHQpCye?&|vDeXpX@Hbq}Llg-F^>B#TJ+wZJ9
zTP%=v^-51$3`4AUL1MQJTfFM$YVF%Sv)(T;7F{M$R+=?u&A0a~xBaVRPKJ8wbv7Q-
z?@Hw83A*!n@v}4ezq)s)$o*I@sQATM><a4~&Pw)=44Lk+%bGuANLf`%P1$~M))UUR
zw(*x5YfICNd48#OGPND_kZC{EJNLrppVyBsUw+?Ukz|R&wSSDtiJDOfVybGdf+AD{
zIXK?TVc47Shtr_=fuc{`o3+2bCEYpl)97CE^@DT#swAE-XgXV<$)~}|m|YTHIO8CT
zALpd&6(#C#zVU1+Sj%vNXUit;gV}u@rykt-l((1FJUq(HGWLKbbN1au$C#dKMkFui
zN`5YNernDFz6A?bee_G<%@1;kQ@x>>s%qUY^8BanzaT4XkHuTk*ETPjQFrjwX$J<2
zyZ&VtY|d#I$4`_MIDOzkdcicwd#~5m7~GdX$S^Jbz~^g!u7}#ah%|b2zO%u6!hwSa
zZ*^Sws?2?LRl{MiY3dvN6L(x(|K`P4E%DT)=U7@6tKVyHoM`fsnY|{$XW3@E_YXE?
z&NGrZ+VJ4Xof*PiTzpIJ-#WjjEwbA=oN;2XRHFF<|0K<xh40l0Hcs9s%dQ$5WyjFO
z5%a|%EVYJl^HJ_Ko@dk@TyHcq7MECPd)sh6IlLz1-X@(F2MvzD<Y84fW70f3W`=8J
zpH_~>za1HgrQ*rj|BH4!bet5Tq<QYq_x1zlehS>!uq&`{is=%8N-3@&<x|;R>|q(#
zEY?h8Za3%35ZWnntiv&-Z%4{?@hWboNENXQyr~PBgLfnw%{=IR`hiV*mp+%ww8$+y
z7yoK?Pn^7aLu&S}=-ZAv#Wxq`7Cd};=9Z6J%5hbdFDrbEV>a6!mDl^Evof#YK;GSz
z(>~R(tJNPn-N(pk$du&dS|XP4O~HeIZp+&btxvA5u?u>8Y~SpT$Ep?ABB!J)b?oiq
zSoBBkMd04I?bQ*U?D|CuwG`4`Ut(mAitL)_^kMG_S^2YRPRc%0ml;jG&ipKqE#mKc
z<q6;Uf0QWbOj>$wRa)Xn);a6fx)ymUf8C;2^kn@5{fHQ$soLFv?R!OcC@-`yUN3)O
zg-T2N0fQ5<ccO*km=^2YxLx^h=M(c~X|@VSpIzDN{kG<WV&;CWW#@hVia!v^vY)|h
zWqOMHL(AGosp@}93}u(XXD{6Jiz!v)g~Zhj+IG{F8+J{3H`C!#P*APRv9sHL^jO+|
z{>&-b7vO&P(3H^6IyV=*TC4i1V)k3tlIn`8Cpu4rP5WXj9xF}baQ8G7nW$vGW+&h7
zAFo`6J*QmSENY+byplJo_i>xe1CHm;Z0qkHKl&iltB~vS>XNLMf@0pIQM-2pGcf#E
zylrvvGvk|^G7fE$ljy&Gtw7DiJL`@!r&4fW*qVIdsHU^|cdTB$*U{P6xoMK7#TTuA
zcZA;Sh}(ZKSjN0^r)>ManJb()BY(OqQP)mCyHD8n1moX__ksmOHrQ+{Y1EKYtNCWo
zyEjS6wEw@QB#X63_|%?TBELR7z3^R9S1z^v>s{9a-JI4+s}?^>&Mdy*-dMf(;i2#k
zd$l4;!qj8~_4=dVF@|Z0Zh5wG@!RNWE;nr%AJ0}-SQ^MvCy|=_^Hq4PZ_h=OyIZ0{
z*jF9g^K9$FoUTY!+2a{(A+fK;mWFf{v&rq`C@b}lx^&}rlGTps=7Ep1W_{v)*rNT4
z_3h%v(gvmPx2&JswryqVE>q<NzxY$`9M@0W#=HIZW3|4&3Yyy(**eN+^7XDP`)zN=
ze`$Z;ynNe7>0SM;?=o|aKe>6>zo(W}X6v={){(Ye6<-ZLZMJ!MwSIZ}T(xQ^ua0bQ
zA^Vfu%eAIm$SeQmyJ7vF&H1mUuhbFy;mM=EA|dpDCcBZrDg&QA#wTOef7p?@!z%ZH
z@Vb|J4^~~x5_xs%2(z7RnoZxjnNgQ7JAOW6_@*Y!==8*cXBG*3-*I^1_vy_?>MVaR
zx$59;SzU4P==>c&CvK0HPV}{v&UWjWsub(-%{k(iYgw;A$eF}`qu9f`X6pmZw1nM7
zR{nF?d~_ja&CwIbHcvQ_6=jfifWeimhyPESq5HcK-VJN>)DAI!H_AC+H8*SJv`4#_
z8R~Bq-I%^ar)g4h#H6~oC+v2+KFdy6f1-X$i?L+)q!-`b3NKyyyiKAfP+sM9ZMv(v
z<JRvce5I`y7Q9=f;J~f1eOt?{ncvsnv%AyyW|~5y1m{%^%|jDoDz<EJSW>_j6Zw5v
z0$1+jR*sJwqI>%k&v&@1%o6P9Fq>K}5a$!V-aP)}Imu5gK4HQJ0;{+RU(}{9KCC@Y
zYF%U?k16j-<x*jnL*fCk@(<Zvx)w>4yhu~q#2)2zHf@{U>7YXgr{C8|bSueN<o!)H
zz-3PS()ct(m52?goD)v+A4-}nRu`ytyLR`-O(MxJ-v2)PpGAV<O;FV}Y^_7&MHGZv
zhsX;#C>gFZHUMq^g0)Ivtw2LlV%C_pgnLd0tug(+{>ANp&rv4dpWgU*W8M$d>06#X
zO?b{Qal#Q3PYs5d+n!zb&s{LBtbabAR!HLt)~z)^GK;^zOP+N1`1jd&V`bV)=iPVz
zAZ*mP>h~g#LmHm%%@4<x?B8Gg{iWu<`_>E0&)%K>pn2=DU01C%Pak;mVL!*R=CnuI
zBI(zBb!4xaL<{a&Gs)<}o>R=Lt4&Mmh1c5~`fHa@y3F%`d)1}0Ul_Wz__uAI^Xtc!
z#KPn?bNhqS-Na<p-uzZou-e{i{=pliGHRk0AN4m#x~%9HUAJgK?Aps~CT+F-xa#eJ
zUyEk`?!2DiHtXt>%QxCqm&&;wTz~fW@la8A>3f%X-2+y-+hi1-30D3;d0|Dvii3}h
za}Ulp@xLiQ#jpL`T+u^*mp^}6`nvj4>SzCggRhjmb?d?(lzVBUv-O6QiV97UnezF_
zMEmQD)xx_peni?WUv2o<KINy^MEf2+$*o^<(iiVp)Fs6D-&E!JubeL{&i061$#{|@
zZL`45_+>*_v#P5cyFXjgq@%6hS+-eRK3}n?X6=62UAg8jr!74lI{CxW*?c~l|8Bn&
zzqeg<zI4e)1C8Hr<j!5&E3-@Ps_LY9$Lz`<&y$q!^sw{si<vZkL#n}yJ06l8?WKxy
z*=9~l-Z$0me%-ORnPP7g?}UA=c$%qrO~T0RZ1Y~z&l6Qe>=Jfn=IKw;JSz2Ksh^G|
ze|u0}qsM>KW({^X{remKtdIP9x1~pT{w>F2{XR_>=cWc(UVrPpZ_U>42`gtLS{j}1
z`kec~*70SgS!T-15`)kG6qNb|Hq95gbMg20JqDAemfV^;J(4Yaag^n$5B2M(PQ5!{
zbh@6^sX2Kz_ZMc}_KR}Rox51Adg-;qncmf__MX3Ieqx`_$>y_-zlBa{@`|*a{%Dyd
za<KK}qRv(PnpdOO-V%OaEob<3LT#>DuFUPtcb^mn9Y45aUad}{XZ7NQ)pOF^lG~J*
ztW2$A4t-)GIgjoCwKFnjk5r%aI4crip4qHp8F{PWu47sEsnrV-cCYo$+^*1iLDy}2
z?CF#DJq0z^@vSpgh${N^Btq-zcH^*BJ=Poo*R?9Q&))9LUK5|C>$3H|+uyKG-${3Z
zH0Fk|zGi3)F_>Q-n0&e|TY1j^IlHo6sf*=5^*q8_QFv(E?e|+J|GhLhg6Y)0`0yZ+
zg67N+w*8I$cZwE0x})g0p~OS1Gc-`u%{tEG>-k$B!zcV(@%8TU9S?raQ%Rh;%;2u0
z`4Z37o3B1Q-~DrbOQ>kK#O28?{~k-U{5-n->)Y*>n(p<S8x9}koa;C(()Om`E*Acj
zg!aIhF|3QF70ugHdyX7DH>*)oRfgG<#qXczO|Kr=|K82fLcflEw&34<DEhw%?`7@R
zuT8#R3+5B$6c-ZearNkZ_`fn|;a&f(Mu(`=UwTrD&eWbh-MouIY7SHAjMz%u)P<_&
z9mCt7`m!edkhkXYe)??Vvvo~R)2Eqe-zkv%9L6>Iai^&It#yxQdPFXG^<VzHh}Ze{
z&x<!oTzuWIEKyK(lcI}Y!VH5xA-!8Zo9+iJni8|tQ0(Q6FPlYb=WI4DeCH_W!1VWQ
z`5L}wJL(eN1<f%OOTWDJiD6wv1@jr!w4SUBMIuM~D_70mA}h}Fszv+n&(e#pvU{d`
zY+v|#V&AhPr`iJIiVJ<KSF<_D3DtFeyTqn)O0GXWah7P$@tH0*^QHyPP%(Y<QQuK=
z+3Hf6!*{A$7BiUF$0g?bCwuHtTG|(rcJO%UTvjn3kK|YDH@t7&@m=}L{AH>lS*LEv
ztu)H0SW+n~BiekZL-u60{)`2@UUA#^G&aZns4=>*eOt@6gzaaxe7z!g=d^YcyYu(>
zr;749QG7e*Ez!7jE>^!R$Mzg!)vh_AB8f952eQRpW1N$~(=o^9$B_%%o+T{*>vQcC
z@3C3&{xkmd@TJWJrW5@P>WKnOzsn_J&opd3w#;2;iv;H>E|t6u+yzyp@6xx5pVssG
zVUx17rMlRLT_lKY)sg1QtKU?bN}7jQN6xH!f3rE~K=0(VOBb1+G2S=ZdcEO~aal9#
z9=3%qLnnmoPnOZMw>A8`s#0f{g^0tSPd`rQ$2b3Y{i;{Wdb;P+_xtKfzbkY-%=~rW
z;_aC;pYax~luP_S-GBc4SC9B>!ViSzuCQ{vGdqy2bgPQtn|-eqD9mgy(YaMF=ddjF
z==-jYs?Iki&$%y)pZ9pP<@(vDz22WD`kd<MY7dB#^nUD|<!KNXG)?i~`MVYpS2T9^
zYwyVFQDFMAWRhb~&3%oRE`8#Y7Dw7mZWqa2)-ICy`a|XCW1+gf>#yJc^Tg=eGDW8;
zbGO-lkjtOwpgQfC@A7ob{TvgmW_QiLc|~4i_FT)Rx%P+WDqK3u{P^GJ&8%Yj?6&(J
z>XmEj@y<|Uw<%i2)#g~XSj0l^m}2kd1=l}##Y|^7uOK^@LvK!};@&kI*1i*6%B1%~
zSH#<6|N86;&5e7ag9MA1s!mIWtA9{Pp6`6E<g=D$w`yTQ=&y4<+%M8kos_iev(-Pi
zNH|y`@z;e5)eE0+x<8lup?Sg7Yadhc_4MG2c^*tWyb_;(H_A<3nJ?jRr((9+!MK~c
z+x-O0m%V2^5^$O|@_fTh8*8y*eYZndXQS@~nmUy&dh`CApYg4BAI@bZRWe!AKeJS8
zW@T&<-t)BT)jIu6IhCph7#ez+Ly{Kucg?^5{;I~}>T}Htr3=|ErKVrvFnBnvoi#7$
zkc<ZR!g$?eUdR6bkBXiwGS1v;!sPYPdxF>TL)wLT79Y9h7c|V>BXmja^W9I&%;PPt
zb8L25)3RfxaE9cEr3nrb-hbsNd~{uO!^)Kw$8`S8V^Av>)>*RWRP%hlKdIRjDoN9X
zH?28Wr!+ZJTbqr=L-+j>l|+@0_R@($0!doEuMN6Z|K7v3+R9l&M1-~J7XR$s|2Yj9
zo*kLxi><k2hIBR_;pP&q!8FR6P8LXRfHj>A%!oMxr6)WxU)fx!?)&-+$=VyLe%Y06
z<nNozX(YjXFzSHajn59H!9tVmrlfth;QMwwKQ?D;%6T<|CwgMtDH~s{ZoZ$NZ&%YZ
zDRjrJclqEkG|>a|CnN@}*#sIui_5(|JE3&P&kvWAcUVO%*naiwWb+qQtG-kTA6;oK
z*Lh;ks(k-tg)x`8uD*Y2&Fk^x-Z>e*TYY<8OpbEj`Mq?m+PtJb)`MQ#YWNNvdHdr{
zYu%YA&2}qf*Hz1Y{XEO{yYu}|IkSwGo64T@S-kDF{%!vSztz4hW_tI9IVSPV_1PAu
z_Drx(Pn2_4tzWzD*Sc+XZy8Pp-%&Zwb?=G&Yo#v*t{r6tck?}-Ijowv@~??sbJ{O$
zxdrUmzs?!4`wF**yK(G^ej;`+#kV|x(Rx*2{;$7mJ$nP2bL?JmU6-}~{CmmTHC2Yb
zhr6rpP2syc;h%JQ<4vvy##i+CF7}3<2;2VmLs!X@mFv<D%{#Da!_;Yo$x+Nv4^#hq
zRr6&2(4{23Pll0oyUtgq<GY1#I2;gTK5F>p{G8p#b%m`{A97qN`z@=n!f*M)@EU)C
z6U^lY*L*2kBe+?8_4nZB<6@1=b&O}v)0r{fvL#IAhl7GZvhvwBx#orijK<5A6VJ@@
zI@y^dSzvX?@@&xix=qRVXW38JntvtX;MtD(cUHe>a#(SU>(RNa!wH*G0?M^&Vsjqq
zWOK7*b8i+qmn0S`U{N8%%xd1aA$d*R4~bn2{(me^S{#^pgu(yu8UAh#=07J-|4rG;
zd06AC-8yduMYr@h%kSxDe~9J}bNqgjS6c1sJFBY=kvjbxM?cj5`T21Ad3&Q;{nzdP
z3|3t0a{F)pbcy2|_rx<&cOO1;?DACP6XJJp2wS|lspOwiLD(;oO#$}}C$DAW$-Whw
ztYth&-j#zX=ll|GgNRQn%6j+h-~aStPn3Yws$vPl<=1SosyI7m{p=EVR!S1dJvZTk
zgsW%J4jIc28TW+)Hyt}sXy)>3-gBv|vTCIVI=ntT($R{z>byF8vD>3(n@vs|>?#nS
zpvI>+|7z8WckczxMElHOl#^&&Jh#ukzgcs!zQkR}C%OH*9#^Kz#uR1BK3Q<GbhYcw
zSu?xB_xUED2=%=ky-@mcrs*8hCq_ccmmc5t?&-CrqdeQ}k_DG=FwNvHPUv{e9J#)6
zRb-1ZS4Z=^FAF@vW!}j|By2r!==nuiRXK$$Tdm7`il12Knzq*&Jl;6f#9`ht23x5_
zU6J@_o!xIXykG8jsd?hh<;Mf3-<-Z*%j2i?lV=~J?=P5<a)c!$W7W!qQ_k`5y=i56
zva4}JYx6YaP1nvY-SX&yec_Abd1t&GBwk$I>~Ob!vBb@P)7IM_m%k9ceTUD?<Br^)
zm#n#(blUYHb2)#0u%@*Bhtmuq9e+%^A{qrY@=g7m?oy?=QB2hGYDc3%)RYnt4XLTm
zT^fzf$))|T+B$23+njm(=S+{#D=#{_wE76YhJ$R#LxIIhB^Q=0<M9r&jaqST*~Qar
z$EI>!`g7~Z)df>uSIhADrn@<(@_(Q4w{PyHH|76(zW<0m&U}yE@^9p<&W^X7(+}Qz
z>$Lt)kUry+Qo|`%>z%hVoVvTTd;1i-!{2-7dib|}uFA72XpvG1Ws+;1;BZye`%3Ne
zGO@lS%hd~=itE^(rS9*Zv#N3L!J0~mhO%RI$`(<fmsOL~+kf2ER+z6;sJX+(wDbG#
z6t|fdP6e44pEh2naOjNE=Yt)0XU!?U^WE1u@mrI2n#7Gv_KL;JKFH3IJ!8}(TJIoj
z^d;XW#%yhTZ=K+~y0(V77YjsxU(e+~;{K*R^Te~sW%?iG47ghbmUS%ZlD@I}n~K8`
z6-CK;44eOorZZ>8{V_V6*R?Iw+L|vrqb}6dm%}7u{oNJ+5@szo`M=v{@rTJOg}WVE
z4w(fX{kqBG`T~vl*#iDA>>n&}ON%l!ax?t+aE-PjcdEDisaG|8SxmCRt6dd1xRx6p
z)YJN_6Zs%d_{Rk0muK0(H-~0?S)F#SU2hWKgyV|KSI_9G6V&B$6k?qe#kknHH&$TM
z9MR-_^O?)ybb6oXalEYlH)pr@tCbT}S1e^MmTp&{zqyztG5Y*+&xXcZ)2}X{`Fn;^
zvgm>WWtNFQYQF!x|AA%cb2XlWsSFFQge*=y_GS}P^bc{3e~UyNn&cuq9MuwjCi%T8
zp6Z~yHA}(THAy`#(SVz8`*VZY`qNs93>8lFe7O3<=(WZ}m(CKW6Z?50X9e?a=~vJy
z{K+rwc#}ttqw3pQ^L_I)1nTZI&985|uRh~Pspt<+f%S0<8slx(%-hGZ`j=YF%&We0
z4hApo2}|TU&*M<VJ?9XASI#pN^M3RD`S&ZiCnWSWt&CUu<g`&ecIIBkGfO6z{BNCq
z<#Vk;xP*hv|LZU3ZGN|OzIao0#&^wzyIYy;WACiImKPOvtWJz$!QR79y<U9(qjOGt
z!$+UByC;hLUcQ8rv-=ExljVW!cfKB#oX)Qzm6g=6z|E{|y;#DEU1pQcBzxBWX#MHP
zqIXwK`ck#Pz9~18Y&~KVo~;a=D%|qRMeu->o^!&w4aQ>kbB$I?9l7w)mwC0_c6W;h
zL7i7_+v$|4vZN_0-#5x$C+NT*WmQx8;cD>G^<s9_&n|pzUZ*Ig&nV5f>4D<UzT&yz
zN&9=cEi2=1P0Z&$da(c0n?ri*R`)$<Tq<?j*z`qNrSl`ls;rrlc4#m8&Fu8>bE4tY
z{f|#{%*%M;wd96D^W=5etN1%jCVi0oVwA0VT1VB>s_0=rnjx!Xu;Gz10kPFvK6D!$
z6!^R;=Fo4@9gzn%o0M^-=B1#n-7+>nUPDE8>&DPr0kjYqygHa_vxbJq=MF&|J%$G6
zmPE`N9tn%=zilQ^_kF#<w@$8WF?ZcRJvnQZ+r%5Nrgfi->%plS`of+fF1I=ZzwA%1
z@W{TIJ6VjC%eKJd+{d#ECGUx?o^9^<<cHtIH8t|j3*S_Hh`jXONZpg^4eP?-67BOh
z*XGsT`E|~ZAvR<+|B6SoFMk@YUUJ}_)hVM88^ed|4r{oj^-f5*dm+eq^Sw1kbfQ1q
zxO9CzZ@uxPzPhqzk&hoQZ?!soA#Oumdc{-W(t6!{j0yIJ4b3bI#LBfzE-h3Q-D|t+
z=yBn8r8&!2CjM-&(we_xH{08-hVH+jUPrgfeMmib>$szsR9b4bEF0&mwH<exc02X`
z_WC6FC-jnni1x)2p}(Dd(`Nb{S;Olj+UvB+w=L>gaN@bj%?Un%SA`VM?fH6e?is5;
z^RBP4%-hEL&x0@JWoZ|){-zrJvsafS$+lQ<DW}Um&@d}dG_PTC*~ouS@J^`pwQUhA
z_9RTU@Ts~a$142es5bA(=$2R3B473_n_Temk+f0u$y=<S&-NzuTx3q&D^t05{R*oS
zCAurQWlfiIJt{0KI+}IM`<j7OoTTC<FRO1Zo0_jOZQO5As@mUtRe>!^_sPPnX=YN(
zf>)iD_1L{UJk2@!R%78-&(b#amEOhuYt$cqH2;+<u~MMtyO-;Og^s(mA2P&y&6M|z
zl*&BLA0pvxyw2|`$LbCtakiSX)zz9mXNp_@_-SP{i`V7bAsP8>E4^0hPba;Mr5k>q
z{p;NM=aTKg?5xQ6^QqYjF6mGDwsr6B#mzNUi<5S)JjviW%Vfd*P{C@8Z;M?Y^8P+P
zE!6GDfyi8qebZ-eFTPZ-wrY99CTlJOH`#8X%(I$)e`^+gkS@|vRSeo1vuj!5oYfU>
zQu-pVf6cEB>8yHD#9-z=d;h`mmm5Tzt@IbzWZznmYJD|5^URwSHD!xkmPYToUaX?t
zcT#G*%+lXpitNd88wy_Vm#*3T<NC#WHcs9uQ~zua{BKt&`uB%@-@lZf^`{P{{F6^-
zPV6x~ZfSLx@$bDprWaQfzo|dTuU3=HOgyy2@K%%Mrr^hFq5oCa*!k?dc5cptNX8y6
zheT10Z8ce}T~qF?*>%x*ckt!tv*sCQX)_oV(}Fj=T-JCiPTJG<!`r9AfwK>v<Xj@1
zmgb+Gop<Txhiy;0-fymycQCI^Z%zKZiy`lB<%)`*>cOi6_PC2jt!Z;^45|o{zdQL{
z5dW5qS9GUODtAzClw?R0S`>fhOuOXyFISo-bu@XejdI%G?9lL~Y-^>t^=&!vRlTzd
zj1EXA^=ZZwT&Oi#&vWerzew1F6UwWV{dLk9rZE`IwX{$vJsVOQz0&eqWsO|5MdXu^
zbcOBA&VpHf&bP1gy>6b&KF#2om&fHFJ=+wYy_~$LmS5tU)n?N_=YIL@=Xt)oUv0YJ
zwyBacPMs;7*Yay^mc|M5Z-35o8qaw;v1;uimEiir{6}A{W?*JGu$M6cOW|l}gw*XK
zyKtmvk*l#Gs9;4KH8(UgwjiPuToZP?@3tA}xZW3QLpCg`yl8rRQATlg(-w_gPQMbK
zHg3#}=8iN{sk(l9(f@f1+a~E+X9g@VNSJhZrg8h>nG5UArGLJz^kv8N_33ji>vY+$
z*_%Igx}f8;$3koh=gX(NB|n>O{yE$FU9Q!P=cjKr?fDk$CpCZKHU1?Xop!74?z?2Z
z<JPON`s)w(WS2>$|Mrs)^WBj1$3Z3K>5~53%${{`l@ymsi<i5le?0#D-|;`P8=gvT
z;+61CeZkt)7WnF^ext|o-byCrhU<RS7PFV=JS{M|pv?O5^KWAnx2GGnEBv~~Uol6Z
znDM|$j>n7#<})$0N4QMmn#_5qrk8!WruhA5jwX4$X*_(AaaI0pdnK4Iym$0z*u7UY
z!tPv0xWTbyehm)K8hY+>DxETZa4u8CTbqqz+JmF(q~)J|i+cFxiA7AqXYO{ng-4!x
zZn|*sZ86KEfc2-UjBTeZN&HiPG|9v}!Y1bFs)K8GeQ(xK<9%{D)$fDGKYh!>J-f~r
zoKf>}=q);^9=Y<BsM@BrEGZ#n8ivv870YWP?0y7#TnW%>FMC<0zbfVKmUT{NB1ASW
z&b9S^H)+G2x3jMucxjoSu`4?7)T%{ue}!aL8Kk<-zx(amnYjHPs!_VyS4%U#IBs2f
z_1)G_>BgV7+p4t3O_)1Vz-#5y=0i<3CQrF~7fO9zzE`i~@AgGgBswnbchdFKJE)-e
zS74%ifx+!fi>q#m3B0|{$g!?n>batv=|btdk4pG1@0|Rt#AL#YgZuf}o(gg~MNio7
zw*Ax%h3IonTbh>XP0f6{WrB|Yr=QoZ(7XA+GOBKFKfmgwZHlT!|8lo1NrkI?YzG^U
z*Yv5o2-g;u{5W{E^iT85AFdlyAFq3@Ej4+XxbG*;_m@riI#tut1z+~ud%WiSON%1Q
zT-I-bHyq8kcdqlfc_rh{n!=D3--4VEZB75J_rGcl+ws)k(5joer?`ZQY9;NQlbX@c
zb6#nWRU`9~2J2U=134JaduMuuPOZ<}op$1OR!PCitjA)z7k<&=^4r|=CuQ&LxyA39
z%U-YXyP?f~FJ@1i(68KQQasJo1+wA{2X6mbb>8LAtB+pmq@VVOpEW4tXBIi!8mh5*
z<<*sY`@(MQ=KjCaxXf2=f*`M>`UI0S8D`sZ)o<OewxzAOFA_a<>ht8*I*H`6yH#q}
zF7W$5+?ueCCHrs1!_^9Z)+qYix_IDqV$jk07p0DNrpHWnOCLFQbY+UT`ty?d1}~j(
z^N3mJ{=QT=s^BGf{n{G`_9n5uxsvy!S8V^cKtGDtlaoJ5Ve-P1gdhXCYpV_&ozY&F
z_&K0xcDwk_i{*bNoZRU2+uUte%9KeH*V!yuV*6#`mdpD#B+R+8V)Nm|wN~mkzKbTz
z_g{U5HA8#Bq>!&y9NoV$SFkA>{@-%H@m%K4m9r;yI&TTwG<oSOHo3FExFa9f{rIra
zI6C#iR_S@4cNH>iy&vxHclzz!y??)c|GvK9x9h{piV;lBQ!nz^6}@5CJEwA9<MB%I
zr5{2?Zk>-7N;fNyd%F2N6A#0)dAm+vD?pK_{Kzgqky@81x93qbq-Kb`X#v){G%+?J
zqFlWKzr|?B@}Q%$9?ni`lKFKbcY8*oYqClE4)&|dl9z5v@wjD@ck%zdg&sF2{qdRT
zop?ZI;+&cN#_}g0nm;~xm0hi^#9|)5#!<IZijDCCn#ngfY(u&d5B(_EBQ@dS;|H&P
zTU*uWILi66^S`j`(%f{h!?Q`u^N2}RS^dJ}X_sYGdeh3DRcWje+qNZ6$4)=@<x!K{
zeN~COd`=mBJ9+bTBAZF5W!b+^>o=$D)VwU@uI$M3>!8@T)0@(hVsD+_T(gB$;IG-g
zLW4y!PA>f2pXhr3Ak!qC357EzuDj;Fd(%Dtprw`1eu<uXzOS@kugm)E=y3TJoCmqx
zwwiavE&3R&y^ZB~j6=fR3v1<XWeVjTy0C2hQeIx?>#=JEj~{yRup`lR>ud)F=QHXo
z4n}QS4qhx;izd319=CDGTjQLU`naNL*E7y%g^w$pc5p1-D1TKV#(Lfrrl}WZEHvS9
z(vtBM;QjnHFin$FjzxphXUn>&YAqY$GPZHdu<29~o1s<4afq|%xM5%RooEggW7*vj
zi#)eXS4~agSHH0DmP3PR)a|$k%|6ZD3Tw)uz9=N=9bxUNzA`DuH0z?uEA1@N3j!Sz
zzun01>fpLDTky-9kB3^H^JXwUIV{E3Ulw%3GOpm1LFz9VeFMemMa{)cys7O8GSAtb
z3uzzxSAXY*wS$VN`%cEho>Ga{!=lIBdXjZtC%67ee#*GC;0Ncq+I@!?mj97i;Ji|#
zX65PgjLd7MXt6Dt73KN$TEV{?Hq}l?3!<F9-Ma8=%B}Xa7=c?S<nEjmTG#SYc+Too
z`=;#D6x$&CQ#wapO>~)>oy57tGiEYv+RXRj?K*e!^w_NO?vKuiR{KI{wDBC<Gx?z1
zMK^<RuUGHfT|=|yzuCb$`-jPPo-n>y7cN}#KDl&bTLMROtHA%6(a+z>aZKA?9d$zQ
zf!G}VmaPl-8t(LKPU}iKc=KSvJOyzBp<7}v_;#M#am6t0PrwYn0_`>_*HWP!OQ&V6
zP~Gq-pz0vs^ncSPhg6ltx+*MMJ^i+?tlK56Urhh6x&E3H5^&jb)rI1D=k`2#Wn<;I
zU(I#apM7iElfQgAw{_Fy)fd?qEFV8!&-Nmpop;A!pXGbrXo-~h?VTQ-pU<>E{*BC=
zD|_`N`08JD7i^7;&Tv@xa#v=|*IvEJS6}xuIbGK%Oy3vsizB7%)URhcDMd;O3{Ok1
zolo$8J~?c{{vEuUt)?v@TMx>di(K2k+<yb3y5r|%`{cf>{d>IY```DUF8(NAz30yU
z%lUt*&j$bNFWJ7D{kz3YJ5jj{H}+0o3DnrEKXtN+miF#%K~cZ9o%%Z`Wp7-b)AagX
zmWDQW=Wqyj$!rsPqcVe|-?(D3=GqI#I~JVr-}(E;=jHS7RsXzQeos$AyJ_PRj*2G}
z)o;mXnibz$kWt!icwO)99x2^d+h;#uoBHxh)yeXMJXtlj!`m!ff9+TiU)jqlaXa$H
zyxnILPdw;T_U*i0m7#lQ_o_SkpE@kdHX58OOLH=fyAts2EXQH%(5Job<?o&L#Aa{0
z^G8%}Tfj>$ji}p&+?<c+9I6(W^XKKiqWcf8MYCO8H+j)qJH@1u_wSV@)@{u)X3-V;
z{_)N$&qF#LMNv00pYD%(nK@@~vC``Z=2JWSlje!9W++Z9Uw+3XUhlJ1`7GOA-*wzQ
zBbW8x<XW)vi)kg7X~V%O@83Bb`fa{sk45V`Kg)3GE18Z{W7qD!-Fx-A%16n9gDgwR
zGtIWvvF5ebY3fxjy`A?V%*oeUG31wN`@c0?B4>uJ?BB_))OpY&{=MZSCe_m=ZHMKA
z4zS%yJZupnQ8k@;g_+&-ZSLh7eo{>GQFA*YH}A5!@j06*`R$g&%e{Y>p5L`H`=IbM
zOMCfW;cw(T8owWq`tSB}*O?DO%h`lAqEdR2AD^COwQ-ik-tUhO?q}j*xOFW0D7M-M
zdDet*?Sr(?1-ZttP%s9W0~*_)UhQLKfYh^q);{J$HR`v71?JB-5U4x9{=vnN-ezBp
z4O#pzZ{^N4TbmUa?<IfdNT!XT!;F&NW&gg<&E;sEkT-Xiix=PTn)|io^K<<cAAF%K
z8-1ipjM=H+MddW+`=?Z<JSun-J(=?;U+LNm(}Fea2VYz^-6*GW<6=%hx83Ka+s@Pd
z1XlCTT&vY>|4~VQY1M~|i%x{4?T88cJl(7(T`9DFY0sO61v#@er6{{@&6sAOdH-hl
zMe!3;E!3_Hv<rtX&(e9sa_vZKPUeD5dt9f7dq=!yblNyYy=rSRFK5|G(YXiz@M^Q{
z_TTY|Ga%@<i@U+}_3woZgN^N~&K$XO<m9!dU!u*#yU+d%jw{e~oi@)%Gwr&n_Rp^6
zsXZk;^6dMzcYke96}Tt6*ktzS8`l`y=5oB4F8f!);>O~&8x~LWd~<EDv0G4Z-TlOM
zkyqcPJ9*h@^V;5JH+@y=bY{krsglam!b~e3JT)tsx~6aKq~iuRRizf+IHq%cvTsk&
zzhJ|!fp_n{obyywe~Q2CONPt;+E$1xPhZ4f^m~U@Qp54Jc3-SlugO^bZ*3`ik(Slb
zb>0lSf_wbFbu&-$zS;HtO3I&CvlMzZO4T{8-(@4eN%TTY&cf=`m&$@TE!XS0`)=y`
zs-_a3Qa15isrmMXy;rQ_{vTU=&(d(whBZe0M`XUOi{Ma5di>1M)NOOFS)y|5J3iB;
zjEn91US(Yrh@GjmZON6CPvsxvnv~V@uZh2IsWz<2xv*+mtjR@_XB%&>>b&)gt^P*n
zgUze1UO2i$`E>f%%8h-0)de_bH@%f{^nK@jGjPi1ZCzHPn%ZVn|IM}?Dl8W*wkWwQ
zbLqsBiK^Lo58k=XdMdg}>aMMW_JMB;T^@Wp6J6E$UDi}&$F;e4X6MVhc`>Sl_1c;l
zbxXg!nf63zUGk2u?bi+Trhi~wxPSe_uI4FI{(f}}zL4}&pCR0qf!)Mo!{+6Vri|;&
zuI$kZX!3Me^H73a<%*wOpxpC|54JNfGsu5wRmGBxjgZFy31?%ZGY%;0c^hHtd0SYT
z6VXB}5kFmY+w8-;^%n$RMR3JGO0EjJt5Ujb=E;y<mX;TUbd(f1rz<?(5r4n7Q7N~w
z;z3gR#)vo4^>5bStL2#Ny5oj@OzXp4H*&-nYna*`_jz2-kahW(bU%i*`|{P@{ksba
zix}SXhrc?ut-Y$?*tXMu%LPO`S0rrgy5<?8^Q}Ja?#i{%>mFHz`JdJZmU`$Bs;XD#
zXRvP5j;gHng>zTz6KdKUzs{`l*E;^cr^?*6pSbo~Iat2rCjZ=N%5RvH%b(V+&CipF
zyk^?{>@t&TG&@6TJpY2!HJNhRcTZ@Z&j0OSF}pzasp0))G3zF630S9Jy>}D8_J!im
zGTVgB4pVa@?X4frU_YZ25tm<H&1UtNL+i9;YQBx~s{Su`-#*u`-=F@Yt-gP*ZE5P`
z16H#W7QZWeZM<^(f8H%suYB@v3CAdEURii8wLO8)U7nSFospmMx5*LmXQHY;6|t^Z
z9JlySz+3G-EJ0DXjT3JFnz`M2%fz2jEuCU7-{>fuU88R9Y;z~)%2xH8oO6mcocPx*
zey^<Hu!_!=zZZ<>r6@o6b<Tn3OUYOFUAl`-W(3=r88b{>C;u{Pg_=^|G1)gNADFJ5
zyvgt_eXh@1^;fgl^u?E+G8ORRS)}qIiPLTA4d#&esTrE`8D%T__tXf!K2UW&>gBZQ
zKCkBO&DfArC6P7pTJ*8Sd!q$2A8xuU{G-^n%5RcI<Z;hao@W%)KB}F%Ryi?2=>E!_
zy^-q<8QfZ-`%5iMewyndg>7Fh8?hCa*-QLQux2Z>T_Srt><zP4;Qx$*_J5i!9=XRa
zxNo~Hwr#z~&WydD$vz7$ZYOZ9Y<rv(W~e7VU*-0iW`(r9+oyyIswZ@C8eU^nn{bGu
zKt<v8#N<7;0W3=vms{_bvQpm@fAwshDEm*X-a~J%KQ%4RnH|(px8?B1-76(yr@nK_
zw8;9FlB=F5{%nb%%NOR`5_j9p+(dqf{m&Cq+VVWcvmx)ooZj^!4I0_rANe0leyKe%
z>|`4IcPkE?G&B9>oiDPvj)%N#UY&g2@6pwQDuL@FDoMPp8zzf1gzRK?7QJcC=VNe=
z&3DRE&e<9LT5hg=>CT;b1&r5=d*0Z7J@{)D??+Zu&BlzqxihatT>otL-bY8WP@wzl
zmgKCPog2LK7G7Q>9(-NGWyOb6*)~?CdB0Qw{^>85uY8)zc`7YZ?W?ipq3geA3T)V}
z8^Pc5hi^ra@uVGBl%6Pj|G_b(q%3x^bT_NASMr+f!;P~PqO@4NzxpU_J|y4W%BE|g
z|6kU}Kfz?RsmCG_rv*>qTdnwb%?yN6TD#i*`KN5S?2#8Kz3yDk1_AB$uj;0p&nfDa
z$k3Awjyam=ylmconfn}pSCc=?IUXptA~?O>eOIl>in*dQ=j=XV`%KR$o})d`bx+wJ
ztzf~US8bW5zYuHZKK`OpZbOyoE@3kxnKwtx*6wxK#Kv~S#A!mxj@nal7KhA3%CCt8
zu^U|S=yTWInH_b%r{?^mpoR}iL>^3PTdKK!$JZ0uoiC<$>STVLu4b<)=`MMOA;bE`
zm#LPaJuCK_&Un9^ak3D%Tu*(UjEu&-SpTgI$9eLtj5vOoXe`N55ii=AY-5tF;auz+
zP|eeLy3%*4`HU2Pef3iDu+L9aTgrLYEnCOv8{AQOVM>IsegBcmPJ%A?*8JPz`C;a~
zOUiR!G_0<yP?%}VqSm@_X2_NpCpOC;?ZVD$4W$<xJUpXMmigo64ke!X7dFe>sJFQB
z&f-(^jc`wy)zj|Gbia4b?(d%$y*6jOO&6tR6x4Kx2;W&3U9wH=Tw##-r({muSza|E
z4xAaS{o0{&-U5tlZBr&Qo}OE}_VhQCDe7AsgnqDvyXdH}W!gLvF|t-FFtar}=hNTu
zIrOqcfcyuG6;}chUvSvph}4NVp||TZ(_OPwY<dg+n6C9Vw|{n*{}_MYrG(T6vbMb{
zGYZ$w{1p<Y*7x)DsbI|+TK%zie*QZb`?UAWH)Vet*~&eSCz&+v`M0#SInJ@~;uMjW
zUv|2BOCC##ul=IWeDa=L%9}^({%cOiTxjR9;h3Sctt|h^`Xk0XQ|}y2GHABB#qqQG
z)sf91AC;dyXIr)3Ca2-yR=dJ!F?Bjjb?f8{`!2J2DSuz6H)V3m$}KO|ZrYZ+n`x>(
zvDUm^urg{s`@g9D4^>xn6wX^5FR`GA@4q2q;l(NLip7tVOy<vdEOURcMVm+J(R7Y0
zLRC+G?w$63^L1G@$A~$ijSdyrZL_{!&YqVRbF?h)Z_DZb{LhYTl}NjqBg<v{_UOgS
zKaVdwIPs~C)AOW?S-t9ui~kjswB6janb%oj*5Z0Q`Mhm2PFBA;xN+CR`S0JC?>;AT
z(cHx?#$$rj{3#Pvo(g8H%VGJxXn(Nq!upfYQha~Kn@HQ8A9o&4e>K@g>O<>c!N<i+
z7lc^zUC!&OdY)5d{I{#*JWrvFv-dTTXE7}awJX*N^SE=j8VaPaEKEN*!#t`(sO0AA
z1*eNNkI(F3)cC>e+VP|{x-#_GbXEJ(#U1l|j_ztGSKTKe*>yNcw&lZ(vwx$*Qw8@K
z-G9ISpLha8;xV;+Y;6Uy2b?HuD_|K-GB!3NW|aO-xMzO!Nx^;l<1f0qGDPpycaNSd
zVPMp0cqw;6bDOiJkw>(Edf~JC&sX1*Kk5E5@6dssRS|!$e#)Ba^XUHR=P#cfo|`iN
z`(%^0-x)JRVk*wBDY(OOcFxp0+-Kv=E<aYeyg1(OL4W^`$K1kqT+i-%Eckoo-(UI%
z>yG>T=NS1FWil13eOe%TTefi9++@@KW5&tK;X#exVptc+@@tt?*-B>bFszyoaHmUf
z;RRRry(?r+?=4xQC~<Uad93@wm#!NZd713yKGZ1x`sMc5o(8|#cl`0Fd*5EdF_HT%
z`*wcI+vhahPCwWwayM6ULj5KFyweQ9TjW$&t{1v!lo+op-gJ?7p~ck_lkKxbeHYz|
z6?|5A#{PT%lkY!v?tRR3Gnu!D>CkTFb7c=A)|tpv9d->_z`T84#w+cG7Y$CjuABN!
z=v=WZTZ>z|?3YCa2^rOEP0RBR=$kBA&FZ@-!ec%E8~Yz;>>KtUetz|Y^<ySuO>>hw
zwoh`{`FcAKY}tB8$)D$Gw^G#dvcQ+7aUAdFz7r~#{qMej)ZEesu1{Yan5ufFX#sD4
z(S^W_OMz=LgpQtSGx(nTZ)Uy9{_h39mG3MQ)Jr<T@n3W%Loq{w>gmZcoe~%7gP1(M
z6#B0=tYx|-@JU$u;P2NbJ<cm{mFvCJ!_&)t`jA&9tFZ6Xg*OEod*^IDbvcAZ<!Rc}
z1g%wn!k<b!wJ>nBKBH=R!69tQ{ochQ=B$egQXGCSj^~=T<wRLR$l6vmwp(+=mK8P#
zit_7yGZ*B&c&sn-<swmuslht8`Q{{5A6>IAbZu*#fB*H%XLY}A_&V=t$)2AoH|zeE
zRz5y;`kLyd^{(GCtarP-_Sy1E<Us6)s``MGSqo$ttGf<AZRlg`4CRRk_IkPf&)ny0
zzcGa+&u;n3cfIXmjN@sp>{Y_s_Pp)=8TxYf%fEk1KAUfGIQdRqy~I{$cT=KD)KMn8
zUCAs?ez#s!cD$(z|1f#=_v~NizrXBSfAjO{?dSFRckjPbKl5Le{gqh0!%GSzGN%{5
zh`Z(Mwa|XnxtoXPywYoGkvN>DE>K+?w5u!Pm(4YOg>C$oomTZ6m}8);Q?Wcz&1RiU
zg0g6DHV@ObEk`GNEoYOmZeMP?zDOs`OFOAaL*@;Sn_HN|+T$Wl>(^Up^K#7TF)QPA
zNU%#>{3c&#U*`nbO_y9X6I1+5bF2%xUb1f98MY;?D(=_xh`Ie&=W)FVx%nj|WJQhb
z>e;JzFTeZw+slvVgS3}~b<WwQ7sX|?El4%}WM7=fnF#)FC1+cilXKRv$5<YkJUu`^
zI5jDGW1K19hD^<6^Fl3JbY2<-sePT|$Gv0HqG*e2$;Y`gcl9b;Mro~{aZNF0$I?~T
zyqJ|AMYCSFIMC7NZF1=w+dNKX>$Jt2!w#L8lXbJ~fyiy{w9jiZ)_!qxjal^7Ys<83
zrYs)~%btlwvsDZHF4^q-Rr23|6?fz0vm2&9Vf4HI-z2tn$KNSG<wSR$>g4^mYX6ft
z*SnM!f3?Wj(sC!qBqN7Kk4JQ==+sx56XODp8!gxJy8Mj)wd}N-`CAur23|hH<Fst*
zqDxUOJ#|?V*_f-B2(tPbu9cA%aPs!{dhYQ>>m=8ruZ(p`IpV!j&#{M2*;e>M!#JaL
z;r@li?xjb((x$#%X|O8v_Bo9-@jb6X10zl}Fa9XBC|EIS&D?qWkAGege&Fq^<^SKz
zGuL0rlaRE}rCO5bcFf5_AKuL4MiC;Cryh7b3z57MS}}>w_~zHT8)6qbBsKZ3U%S5a
z{j^0P^XK&hy%XH*8hYxA^Tzho6&HN!;_mO;oxc5k*?IrlVi%I-Rre)y^>W>*KD$9N
z;C2z)+t(*HhNn!wyJ*eA!_8Ite3O#5+Z|YV*V#z8R_Zvv^FEgBlbWAA)mPr1DAPSp
zLiY2#Z_92!Dt+mi&+|@}J5t?b>amT+nYOo{r0FkRoc4a}S?2}6Ev*ti+`Skmq2shb
zC3eM+(~Ft3*~4Y8aNW0LQ*)QvaKt=s!9?qcZHZ3<ZtV3C&wA|fZbH21WId;sg-=D-
zPGw^|R&t~^)bhXrR+F+mPOh!;R-m}vRb;$8YMZRZ(Qi#RYqX=Z_s)}BzkK#>>pxr5
zEpM66SGm1@Ki|w4y=~qG@x0G0PUu~%(v9jiJ}c4xUs-3;JNfDYW!pd7?%ugK&C7g7
ziqWr@ERo)o$2@oEc5N!PxfHPJhf<!1X1~It4KH?WRyv*Q&3rF1?ZsL@UyEMusa4nR
zoBzMP=T1#k#m(o5j&r&9$}S38u4YqWW>%K{W@E+&j>O!nm49sNth0)|m_=Uc_?@1x
zCVWSXZdLWugy`j>><v>F8?edf9_kXC=BM;1YRTe-1w3lI0$zStA>;m!EliR3S%{TX
z*Cj9J!vVWa9AjkLw}x-wenZ2fdlSQUWvKR?Svf7&dijhvh1uz@nM?h*S(xS*PUo1{
z|KQEJy+>Z<teLhx<`YBIwCP(bvtNIeP4LNVXZ$Uw#MeG2q?g(F;(C{K4eq%m^8%)9
z*jpZ@Bs9xLSLU%S&vM_r#VaOChbi=Szi8kHyBPVh)auBR@?PiVGoRjTJ$BLHIO|OX
z>$y{f+@6IT-o~sxJI-)*c4+p}`yuzIbIj{~ux6kBMl0#nPk$Zbd#KCQ{#ljHeD(Xy
z+>C21qd4x}z0-G_;hKR(OD==$%PUqJCS^EVgo^s@;XBk&v_btT?|FV{zy9>QlY5Ro
ze0e8x<|d7~lLMU!1z(3|U1|}y;b`5SB6Ckzy(sZ%<;=9toHK77+O6m9{n&@CJMxNg
z>}jLe>l=Br4o`@8O0Zy=v~te8$rlUPtZ(+|_J26%&_%B3EwZWas(xQLOX56U*LhI8
zWKx^is@^jVL8+ArOJ`oZFy*n_wDPFJ<w3F{eSLELxlJo%dR4ZqaeAe(<Kl|uMVl`j
za9HB>M(D}zXU9q<yIPNZy<i|cck8<4r&dnOW%t{-HzDkL*CnTYOTWh-Dp#vXe!QRM
zmCu52whN;iwg063Jt?&Rbz<%83jgaS6JEG?OFkBx<@`S*U&!9+`o*HRPopoM@BV(G
z;pNjaGn&gR`p?Whvit4vwObiNK0n*G-?JuhT6XJ|Ko5S$?n5=<`*&5}vduT|xm$PJ
z);`x<zb8${Z62%3fg>|`U)1O9lYjU5tnxuSrcd17h1+&$neYk9^L&;{NzvvpZ%=)a
zYP@&<y!xr1FP*M?7*l8v7(HdKeQEQa-Mjs{TRm1E;F3FO@%_c`%kuxz-tV)^`G3d$
z?Ps>f8x$R{L`J%PUf0a=)-3-2jqMyYEsx_9CLXK%B3rjuh$&TnmEEf;@duYnM6owt
zHg}qONO1n1QpHryr%QhMU(MMtH!<sVLvEH@kep!8@kLi%wk<DlzH#Z_VqSi|Iny)^
zURZCqd{*6*=a^wf+Y<rXNz-mjGf4`Rh&E7A)YjdYRFRd-(lvGW<sXZhq+XnG)Dv=g
z`XD=7r%&`^gq*U`hAbTu1sf&LK5;$;C&SJAI6b&jty7kE2PN>x7=f#(#Aj8(vrcY5
zlUbvY^TeaeTSR=ZMc-@h8DfXGR4kfkpE>=&mFeF?zMp2ld@4cmfF$>hlKj|}H7SL2
zIDHmvwU~Wl(v7I%#$H#IKEEcpTTIc63uH>e)tD{vE-HsxBsY25^Rz!a-u~ZiN?F(a
z0s*cZt<C46XX{D-&U)v=w0ypc#l@+64r+EaB+f33h@W$2dB)|*f&b1|Uj4F-_wa@4
zI@kVB2I(7fj-SiR-N3*dmf+0%<-*$qDqfFtr&-;6d7*y4dr+Qq!eKi-G1s6g!k&R!
zWV=3n4{UQ^*c827<Zf2m{+V3$b}L?77P7b~^U!tY-hw6Ub2-}?m}-LS{0k~F9<<d<
zP5ttE`d`Pl|I5w@?v}h)Sh40<w)vYM`NxV}8t(1AFX4P^Pvn8u1>f_gq`oNeI@j-!
zb|Uf1>|Jh2Vq2H^pP6I5HRIdzgvla1mkRvf?iuxDX_QLovZl<7tS`KNe()73vl9qh
zx$gVI!s?k4+eMXb*qMA&<XR?h<odLwy@x+t`_fx}a{ASxmXMP#*1F|eKknHX{QaPM
zX5@<XWtW8~_~hnp=R9lWnRp<t^}2;*{sPxy6+yk-g_FWu*RHFn7r5tLJa@yc=7pDq
zZpzP?v4Zcp$g5|6zaHm*?_x7OkzapFPr1`xra2k`(ZU(_v8z_QXS|BZt?@n=W!@+2
zpmR{SqNK3zxoHLKo=e?Ym7S$2p4UxZFBT1apK4Re{8*s#_1Qm@l(tqm9hfV7c8k%)
zMTuWlhcoQuE)YNSedW^`Q-jU=wt1Caku}@xKJ%<A$AOZ6elyY{g#G+F&T6t~i}e?(
zn$OHlx%GB~(Y@GtmFmiU7yITPjD1(t)c0#;UCXlRI$AHc%yC>0mllxn!7MJVjcu*n
zW3|bzXQ)p2{Q1hC>cvq#&$4FvI5hpAFeP12Hpnepw6eENk*8zBI`5<5Cnj<58T*x3
zOmpE7Sahyo!->;7w({pZdhz~f*Ws-xCpX6*J&<7ZZrdN#M-o@Qy__Z2dwc$wdtN#L
zo?AkMro6~J*XpvuX7)m_YvO;TL_^#|rXDZ)6WqYaptJO5B(|;|XjTTcFpA)?Ft+ZU
zzMHX;g0T^31uXc$TK#~;l9JS-JO$9PI01$V#>SvonjkLy03!usW6&rxL>ZnlZ}pw?
zbMlLV3lftd2jV&hgNy+!BLi!-gCB`&Yzz_vIX@b1t-ecYS!Qx-kh_yYEXczkSz}`p
z%$XuXV@qPLyUY<kUG&)O&Aas<0^h9>ow!Kp<&0%_&%HC9chmVcv+~7hW>vi&xsU2<
z8JVh%oJ>(;auCRG`0#%D-Mirnza`aMy-yLjcmH%POFd7Q#%=XXv9yi1=HH6lvj5Gy
ze^o-iyIFsPy!po`r)_ItEZ0{!i{<9S`<K7Z4N07}RHe;9pUuUsQ=EDGuXPz}(cfib
zuf%#DxbD2J>7?&s#Xszi{{DEx$}M{A)jjSs0oK(nty<?j3dFh&2Xf40@ejWJ>SL91
zeQ3_!6T8<>nk%k!W^zl5@QYS&#x51k|Ai-946dzvr`NuCiqVB1f{nSQmjxoeybUmy
z;6L(f;*VGF6fQFyGU;LaSI@X=(&?AyPg*s_*>g-kxWGMo#^tYHWP9~EH`Qi)T;C}l
z{dSJ#-uR3EG@NE0{e4+JVTW=40!1;U6<bsvNaihV)co_;;#6R)j#9~juaS&5GJgxn
z^=b7f<ZX^W^Tg15#kZSG3-9eSc_D2#V~u8dsl$FDo1VX^S8}_*U%YlXKV#AUS**Jp
z9{T2LA5qMhy0NYAf=u_f4x5S%KC6Fx*zLx<pRe;%BeU1y-KUr6w>^20sL+4##w3Xg
zXUmQDoy~mJlbmh!Z10O*k1tdedq&v%^tR2JSR5cT;bz1=_GfFiP4PH#ZPtyXX&1WQ
zx?S!#G}CYf3q!=^7d09e_s!e)-lnf<LX^rB&SiFUga7l+JyTq;$*ni=iE>o*789?g
z@UR}8_r8u^k++jJO>x=rbIE+^&p&>&@|g-+fA;#Z?2CQEx=VdGwsUzqpPIFJ`(F#`
z{a13&TWWXSH;TIQ-^EGvLP@yIi4_$Ay>*dCoIiPS@ug1HVm$G8=0087n3q}Hic4PU
zD*kt|mhPQ=BJcfE`Nwr36Sk@|*c<j|D^1$`*qe3c_Js=<Ssn8f3$dNIU+9sxP@_;#
z=}Qi`zdxSp2qbB*>ER2W{p5DF%+0zC-k<&KnE^4~#{?`+U;Z*vSZtlzyns1fS0<UX
zyv<pu?&{e2L}f+IpA)P{3{`*3U89&_SY2IZI9GCO^2J#ly_JV|eVmdf_TR58)viEn
zg0KJMZ;^W&xXNmy|F=&JGcZzQ*md|+<4wLr$Le;4bR02Qrp<hJ&F(`EVZjz{93>^$
zoQwhHD-SQeYUU7TUg;Oj^fhaOe4W%=F}uS@BlyqRw_4mhk!o>Kc*fe;v!#7YEMulw
zzHok=o-3;V^yaQW@jip<r*aj_cY2Rqh^;U+Gv4t?(8bMGU#RfTna5ws&S_+Y{x@56
zAtdK`o7eV_jhj{b7_J+<I2$wni0sDy1-$okE>Cq4n^VkCcXeCYkCH0iJMt&&AG|g<
zV$y&2Tsie*e~ZPLk4Jts9c(xvk*|;=^W)Ny3-2~3pI9J$`|?>|&IgY6y)O07CoNl3
z)n;64_{n{}lex+2ZT$*sHIsthZER4}@ZdXi)Ml~7RiF8*=jlyZn&|j?H}~A`V}@sz
z`sIr}c)l_Jr%|n)p$LCchJ3DWKC8^^^J%lXwsrO=WxdO-XUG+<x2dkM5|nLgQ|*Yh
z-B)>k;_Udlsc(el?~O{23iG_Id~E5Vh}-wyNqc$3xb1nc%fuz(R^R!=_!;agn7;qC
zj5D+HPI-4r;;CiunYTQT3W_(>?0j*&Q0hdygW)lWQ@?Ha<aV7cYkcp%z0y8q8=nH_
z)xDVpGmp)yt=z__za`b}^|DQ7TTGT_YyN&0#a(fGafN)D%KuI4m^$h<EBr8HzI!qy
zA!(X<u}j(o)p^_V)$&*rE^15V{xWzxv;B&jb(G|y-e)r6ej!VaT{C#R=#Y46>=|o`
zmko;&OgFsxU0b#IV=U*7*6dZ%az&?$#Ln&KQ~7Ik;_x54Z}xl~U9NI&Om$Ze<S)MS
ze+6eysm0$re=BeO)jz->@Mk(VsLV#&UST{y<B`T##v=_4&4^ju))VGC`L-F)-rwOr
zJW7)ym+V_}=aR{7&vgIZ^s0{P2VPswh6vd%30eR9HMhW$YqQ^$7|q+rAh1NPfjz+f
zefVwmz%@Us>SGG$nWgSL_dwi5&*hfL*IlbzW_8x=l@Gi5Ys;;FzgpM(^F68E{p-}X
z^z3JsZ=MO>bn<hPZ~EIsOXifl574}6Drg$4@%)WW;LqRZF0J%@6<4~%^OpT8ZO&(!
zH>a@vUUn-pc}<w|yE$U-Pal=Kx#+D-+?<p%6K>2(ocw3!|J<z)S881UvA@})j`4wb
z#X?`RMduD?mrR~}+jF+yhpyOzY0HlbuPqZemZ|bnX}Raki<Rpqy<|8lm%3VJ7l+z$
zzE&o&^QT^U_O11r?0Yc#oBO865=QgBSaE)tcd)0W?7uJri^nDR$PZkTJDpClHQ!q^
zyPC88@i%E*iH=_#Ne9;y72E%0C}5rRpt+P`@wrW`Y`b=CK4|PzX>{%4w9Wnt<3H@0
z<oDhDR?;zsrBjtTH@%Ka2)>!HS|+u=c!t;&r&SyD7JX7}J1+k7%IbdklaDi=F0c_u
z{=ew!>Um6?4@fCrKR%nESN6*0vdfFM9%TO1Td<AaX3}nt&x@3bCZE`Rch?$Mtye;w
zf2Y0;nwVoDu3GIOwc@`?v`TvKm9snBUDE&gAAT^ia&pnV3o{KbR^F@e|D}}N{N~Ut
zZ>a+^e;Phq5Zd8jm$oF;pGCyZ{atUC(&<Lm4oOE5o4ckQ7lr@X_)h<R`|Z~%U)g!H
z`ErBO-YlukSl{z?W%$!?xpTf29aD7Fy6($!c6->o<)MLlvevDB_d7!PkmuL=qLIq{
zS1OME`@wJK((m~5gTtlZ1()75oL1@cDm}Nj<8Q1xNA(N4H)|#t&+%9!a%QGtgpT1+
zo-G9?W*nPaS=g5bhpf97(`HbTQJ!HcB7SCvV}HsQQ>TX+zvkWQSjIWSDtD^9$-7#W
zOyACXDVf`vO}e%)2_HGYC%Jy|-|f4TQZkvdZwe`j$rZh6pMTMAB5O~R@=g6qRy=G^
zJttnzs4CtyasK=(8^r$pzVT_ri-%5@n}Rh0AF|8M6^oZ`fBe@_QT<BGP3^dvV^Kwp
zpO2lfJy&q<=H&XxN~w~ow6>W^*vdZO+<fnQ`@1G{MaGArLKSWq2kcH5`grb_585Q-
zCH!s4-yWurkE$*kQWrh+bXAOdwClP@rly$4-I_?D_Gxo$?c^lvRo-tXwy6H|;m7Xl
zC-26KYqa>Dd#P@p$z3n_=<$J=dh?~aIk6k&URkl`&${bZK5wy%620|`rMPs$G^sX?
ziTjqyeadPse&asl`^l*LhFAIC&APV7$E?~poAokZ^tvWCQ{kVjLaQgr#N{6H=Igc6
zxn$0gw>-aN%DS0Pf3>uF>o4A{$Q|bt7a$n(SL{x-o7~hRf&DxgOw6-(KU#EYb-I)V
z@A9IB6NNf2Xzh?&A(|+AEb_YWL5I&WE$Iy{zwbTcmW}(BxbjUTn_S|lKQ2r3*H+Bc
zlNV34Vq0HUHd*qE{lCu~Z@4S=l-mAiW!1anz_F@uvRUZ6e3MB<_m)Vud*`x$_h>Aa
zTJ62$=<>g>;u+Z(uDWe_gRL+nsl|_StR*e>r<s6y2cR}OsJj4N!(~a-@{lQEzWtBQ
zc=kRIf3nTUAWY?F_4iG;bJH6ZWpvAaH@VyVSff*X+tjF{%YVPCs^0XR^OC`}Va6tn
zPZMjF{BhoS%jQ$X+3Qd1R3&_aH>Q2~td#!K>SWO@_m8{Ygyqym<j$M-^Vb4Lz1LT{
zf0kIWCLZa0Q-0Q7A=U7wNR4iNT<46m%4a>67p0gF>ufw0ccOS}?$hVzE3_2%f6cw@
ztzJJds@GX}>((umB614Pw|EF;U+&H@_G3uUyP&4oZ=|vRq2RORMLKRGPy1KjoFDwb
zOgZYt49AD98C%U8Pn?kazl!nUlAbG}?^|*O4psjT%k^dLDBtnO#rH#Ey8ViCo@@_(
z2-wKY3qCjb<a}3_RXY{pn_2`{s@kn${Qp|{oy(Jx>#kHpr7T_`IOS+`)pA+B?ijWX
z(XEFy7EPF6dSc}X<=L!vXSnuR_;%mCaB;@v-)EoI*ai2#$OvEj+xaq^qD^$x^sCRN
zUP>vJyUH+AsHcRhSfj$R?5sle<vRW%KRGeWlN#Ee{=dGTcgtj_z1uql)hWME1@l<+
z2+dmlF;uT%UqobsdbET2ihU~!=T45AYcTQt-E~Z_tG6fi@uo>7-PSzaR`n*Of7h{>
zVSmqYzgyU!W$@1B@fWu80`qHby!Q^*OE@3@s}wzP!O4*C*EMCUroMKNZ9n*_^{~?3
zX9hxXyO%!>xE=IbvPUIDYqrnS2<IcS#h=V>THqA8$L;G3vBH04ub;Bcf3+{W#5U`$
zM*jNMQZH6G-!Qvn^I&yLM(56>XHRLL6u2rg#V;#Xc1g6vRt9ASp13o$b>4EXRle{Z
z&OGvI_MMymHovOx4VvAb|FP(#qeS^fna4W~-KRe)kLzE4d4|`GRIc9WSpKtONuCwY
z4qW4VQhVK1X;wPJEj^E9&*ZxafjJ9fuiAc0xc^Nt_6bMSv}J#G-B^EJcbU(U$-z18
z5h@Y(%ro4ZbGi=l3Muc~aqL9lOSRpTbJs`AUABIMXu!SI3s?8VH8JM|&f4d?TsmUf
z`;P2q*0<!IEIpMObtmMfT7!mQM_zL?&(m|u*ZrLQ@rGuB(Kl;Li;JpKtd=FWI<x9;
z?(SCgOEa?j`-?rU+Tca1zV7u^*X}Oa-+%j>pURCtOE<Di-aE}(h+~$qKhv8;`&TZf
z@*i0*G_2k7G_k^d$IrG;wugF_-L#n`&%9%@zHh_MmYZLA%Af9(dS<@!a`1$yrxK*^
z2TomT9BO}{lj9T<Z(?wS$di2QQZ{o&fvE-j_BHBr!WvQ%l;ketr{zo6M1R#&i%#5;
zvH6D?b8hMy<A7a7X2QNc*Rv7}H*KAqz!!Y%;bqo+MqIz2I&Bh}{3m$lukZ#&20;~1
zH!P)>31|QTR$LGquRtlikXEJ|87LTn+LS?D`fk|9G>E>F$Jhk<7&vJ0Wo|)C3$Z3N
zI{%h|MD6+YCl0Hy3!H0ZX<B8s<?gMO{+DMhXLQOdaBA~Zvd+nP)jxmodu0_3Esug4
z%j3t7Z$Exw!~EF$C1*7ZZQ9R0pZD^GzSDKivk8Kip6VDZUi@&z%EbM9cBZW|=}SsZ
zwVm=b!>U+!-uq3P-MH^p$>c5yKm7TnQcQ!y0XHA+>ZpkBwQJ13>HWAIe3nb6--;nl
z#aeD=j>{JF4a;=TJnxlQ5OsQf^%efW({laG8lOjBv<q$sx{}FdJuk&FKPoM3>+^uy
zQY*5hnH$9;BID+1tq|7n_t$wU(v`fs@ac@;{&R;f^z3^zv3|pk1-l*kXIxC4ljal<
znteE5=Kj^S>r!tUygR>W1;gG=_B;WVQ$Ma<;&5N{{LU27`;9e|IM-z)D@jRTE7$YV
zyQ=XkR(!W&L93UKQpb0nO*<Y5O%Yjdpg!$AgU7siM^p{!^i;#Ow2OG&F0uG_y6DGo
z31$xS)g|#SqErInMcL=Ap8aM;UgMu>6Xb=NzPxMPDrGs1*)+tN>w=~I>+{dvZDP=y
z`_qo2<B|S!!{8k(-yI?Z-2z&h41T&#xZhH$b=vXPVcoak{o77oTJuU`ou*&^qv({I
zi{JdLynSh%a_JPc2-5^BMd<~;2J@twtG1+Xx*0S1rAze2?{Qna=ROZ;+W4llI9>L$
z(#!3ZbIszuOxL^iOGDMf<r%x#sklIuUjaYnJ>IhXQB{d{*#nNpWz6Cl+fPqw@t&7F
zYiYt%J3V((ga3P0Y}<I}kjT1&+pY7uCdRGt)w^caEWLJGu;}FZt0xxbf7D;HR><e=
z?<@NrwB}F#m-NW?^E&;-&iRkm>dG4Bu`#9aY>)lHZ*#UaqF+rmJS*N~u5Y2uHpfL8
z8*``RT$Xlb*EOp7^QpvP<-8L+7KfY{ZY^;Vc6fcTf^FA&_s89~mu4Qjuz@-Fu*fdI
z_P*{1q1E<_Zk)Z_<YXSs-sZP$$@ar1#f_$fZ@WFsCu~0NW;q%2hTZP&h3)-|pC5d^
z<4XRcHI=fAXYZ(%#{9k2W)k!3D|4o<*jMe3x<>!F4Hz1~|L4M%&yff02<LMJV-r|@
zM$Yr_yiG!e#?t3Aw>03=cgxHvNi9;)cgsmENp(q0&QD1N-Q5N0s`7Gqbhd=W=Fc_|
zseK;4U{6a*D}y5EnrwC7?CtMTC!dOra^<slaI{9mI(PZD|Fvz|LOz##D-V3!x$pTM
z{nPPIxkYbZ^vUI!+~;~$d{@jq!gAaC^Uv3%?hdv+V-oGZ<>dBgcmEj??Gw}P6df^?
zZryKsd)7|lyCrK@K7aWzJU8=+>r}-mGo$o(S7!9QUZ38gxlY_T*;(rtWAawv22SQF
z%ip^BSvYP<&R{f{*YobMe3Zqt9wFE0DGxqJwP}{_xOV4zwyax3PT@Tdk!`2f38+~H
zsEY3~YfbGj=PjLR%zYx?!h^Z<k;u}c!hMWSSQ~a<OYh3;)Mn70^G0LUl6P+33b!rM
z`4ba1W8*AwK4Hy_`4dY8|2KwiWDNSk|JA8RKxf&cZ6_O2epznnjVYWk;rKPilc#0v
zUmIRl@-K+q;_l*kCw=my)V4)i5-g_k7AQNE>z(ME>ayZ&l>Q=~j~Z`Rzu5dyq%d;g
zrXwpRRo?zS{rY8Pqer(K3!IK$H9qClW#827q_*6XRbs~U53-vSb?jy)7<UAP@IJUB
zyfEY&L)Da7uD;4Lk8KXI-@p9xkhNmcfeP18DGHaj9TU7|E?Q|GAUMT1y28;~?5-il
zEW?V4!Jo>iB2MRSQra|AUqPeGGC%sqy3gm0<5E>UoPONRsQD+SdWYfJ)A|*Rp*!05
zClqt+d)s$gHHO(|YkT*LgnJ+P7vI?YpKtajhhPRi@zx}^>F(FNRFt&Vq-9kw&yL-_
zN$XMU5&q^q{cjjnT>Po9ed5L>)xHyL4#(~`%b6aUdFH{rrB&xFC(K*Y#eFki?aWf6
z#*bd6BFqU}r@4p5Z%dudtFt;g?$Ep2*4O0^OLlVI;wwE}T(^nw!(qO_&<jUBpO$RB
z_ic*)Zr4?PAAjrlg{M~MZ~rlOp_PT1#7enqqFsDv-`+^_XxFzDRQI_zC2f)QvQ0HF
z4oRN;z2oLl`7p^<+p?tV-br<IzH&8ucPN`xv^{=zMo5ZekpFzmbDBvjyZlw`c9z9f
zRI)tUYnU4+w_%o5W2*H&yU)7zA6^}A-}vG6@5fqK{&5*FG^Ch0V$0a1bw7|YHW``O
z6iesAf~XVo=Y*ZiyKNw__qTS*<~K(+h28eLD5Wt=<mFPfRnCnT1`;!;-N-2P-09g+
zSEG40VD|Jyt^8^$&5hrm<#GQd!LzJ<T3Y78ybT6_Zu%HM<qw;dDqVc}dYbWVgIss+
zON}dCn_oW9pC-n+lkd>MW<QJb@ovKB%f5d9U_PftVxP1vTf9n2l4RfOtb^*EJfBt0
z?>aG?Ekk;9E5F0G+=Vtf@4n&GKh?W<{nv+S9Q_|_Y^9nfC&aLIa=t$%p=5Kq+xLX|
zNj{mApMzDlo7~Zm@B6edRZx3fRAADtsvfCX&I&q~`;so)|MB8?fo)T2=B;nnr|NN?
z+qB~8wQLrfFCso!js4+YH@SY&RJ>WNE`HV1ed}_s$;(W%tqMQ#JP^J-A>E;r(d>KR
zwBlW?vlZ%>&CE#hKQ3U{v2wu%9fqK_oX4FHUaI}XW*6}|AgI=PwZz0tSDK2L%^quZ
zyqL(;czy8$clUT@S38TKMe8f}*|xBrR<-7|IKKbcoq#OKFs@Ir{DOs(mbq-?yYjKG
zu<>MGO@a_hO8p(N8?XGIlnUH+sq{T#v{)zQMZ8Ew>8+A{H{sKBe{%N(X-@0Y&40I*
zcSH6y-uv5xGcw%w|E>D&ckA5TSzAAaKbo!_ygzJ`LcgTZ{-(z>{=8BTn;;UdsTx_U
z$nmW0p@`y!rzTb^uk<cmw_Wb!QD^kB@98(wX=UFh1-JS7z529m*A{n?$6vfvA3dIy
zF(bXG^lo)kz`;{)8-32(IOeIIl+5aTQ&gw-_QR3O%!}7eVhWcM@iP@!ZqM%%r_UL0
z;l5P=Y@VmY;s;9>*eJ6$pRzFWoiSNmMB#FbsbuK%?Ne^=-nB_U@$R*&$u}JJ*L1wz
zGtbj0Z282r#7W$yX%f@kc21tarFnFl@Ad!Yx+V+Hu6fP*`Ct5vmCxRL=qgSx-8pq#
zdej4pgKS??QYWj_2PU{SudtjOa`xT1=;pxLJKA1a7#J6Dt$bNmwP8)q-X342T`YG_
zb!2W@9&@GIQj+UdPU1ZM*EjdRl<_D(TM{F;-{nJXyP<wCcMo6Af0^7<E^!~aI!@<#
ziyWR~cfif&p2lro$B3Y-7ca5;MoxXU-)+qrz4p7$vZjP7p5Jxk%l5gx?{lR0U9I`q
z`Yhyr)`lXT`vz-UpXv6rzMnQf>(?Fq`)S(`KIms)W;nld!YeGLgDGjvdkRYjENyoa
zGh%k8ObPYvzic3|_j&k_8Lq3OpLesgOc2l!3a{x7n`r)VTiWFvHzE(7KYp^}b7L0!
z73cIR&%ei|9h>QIVsTH{MWB|8E9RMH*BO2#r+bg4h-jQomO09~Xu5*a@&`Y@T05%e
zCf#BQ_4qimJbc}kyNcbDH#Duu`#HI;V!KNIz5BKo@((H=ik!31x##mDmoJ+YBMc6F
zNMwqVIp{fy$#2W!&n8do<0IG?K3YEO|Gq<(XZ06Nocm_3S5*S@^*Yh6>lzoY&Ao8=
zcx>yVtB+gCJyLFquXM@wO6kACEPS_DDYsL7%KW_(r*l`AzJDV9#Q1%=_eQtS;H2MH
z$KP!`C$RrS$lKD1e{=l~`<;3|Yp!MX_uWDN);|1x>1uzMY0c~8fHl{X1U7B2y6Tj!
zwNd4QW3yuFiiVf+GG}Fb=Wa8TmHoeYt7bWKTF?KrGlM=|e|MlGIKH}FZFXVMM=^)n
zoWJg$-coW)f2H-Z^9&m&KU#99#^BD^chYI@OPh|E+>$H3d$~yY!S3Z@PbX?h7z7j;
zt-E{Y8Q1FRbt0x}iU!|a^hd{hs5n1ejMsrDChjh?nR2jq*`EI72-T&L3MaRCDR_Bw
zDsT4M#3Y_-l{aZahuh@%j1TS&j0`E_JHoJ~M6w&8<kVBhr(;5Uk){^JT*228db@A7
zfk5qZ?FyBN3Nvmyg{}4o-97bJ$jZ8IC6@z=?~0<GS53Y3_j}a_-W1J{iH9WQ&s(P3
z+?c;%TeX|jrH`)MYc)7ZX8(6-xzPM{VE{kV@lCSf$CswP-ns4fFXoq(r<3Poxj!zi
z^1bo<Sjig=lYP+!w`S~nELm@+{-<}bPs+}D%O9U-$n#{saiEY_j_Ja5hdpnfTf42E
z<2>PQYnz1cWloW^7KdDA95+|;xqX_k$Mn6yV=31=8m>i7d=LI6??1Cecb>DktTu<T
zV#$_|DmffSu5^9jm8nRJ);Q^*wZ?^wKbf`Yy+in?WezrP9E&3tDoi!~-L4hCYL)b%
zNqyI@Cj9@SbX|tK=%wH9;!Br8#D4g!-jT=h=|o1|UxV|<u9kmYZ*{0nwe{9=%ab=a
z)=fMbdDpYOE5+*mWSyvenyuQ)Zm+w~^~An{?MU&_^@TGxh(`(=&Uo(<d?#uu+oPlJ
zW=zZ7Xdhy>f%jufi05iKrp#Xz6E`H5mU$;e-!2WyIlI8U;_|$2A8xEOT4QcA_4AXj
z(?pbfy8Lcsd3s*nwPLkvli+Tb1A?2{8LDp`uD_$YB_hn$;o9n=Fx`V6yL-(p=x>v>
zH;9^alK1h49bR5V6GGKkHFsuI<UC*N`gv8_;aewXe)(_mntf{2{y2tzjhj@aDr}wT
zvnNJ}BO_uxhr+T~x7(I{apJVTWBm30hs3EFXIt!N2rTchmie7iWBPL6-OZ0Xv~?ee
z&%7O<sZ<o0a`TVZXJ_pmn;jQ>1ad$4zvaFLYNoC3x%~)R@<;9lk<|YpBl&}`P=*ca
zK$E|rB{732G5xmuO%6P5-+znB@(cI9u00Uj(;es&^ER!Ad4c0%iG!Yh-xnE3_)cH$
zJAc{xIT4eT6)rSdKD;cF60fYNHPMrQ<;O$m4&rJLPfWVX_VC6xAJ*HSzJ-Z?UAXRD
zV9wNMn={<A)mlTvl0<GrEO6cb?ai#>(pvY8ZjXOlc=P|trk6|-|D^IRsAO!f4z}xB
zm)9h{ZC`V|e6zjm8I|xXpDX|8zEZsCA+>kHivv~<_i%RZ2o{`sW6}*!sZ*iq8jdB{
z&FESGnPI8_EDVUbPihOItGjoGN!RIgrx4%3?OW$Av-Q!Mylf)J&OYax94QXVR-Ede
zzmfAJd+#r!r;6gg=M}Hle;)To(P-U!+507DGLm<g&GC!9ylnruk~bH4(iG=ZH%jL6
z-uCHz-R^$eCp*jiM#tLQck@g>%5;moe&euqW`3>A+C}<puMbCBJWjcjk}~DS(j!xJ
zw#jXNtEaB3u|VP5_ke|O#X@@;)sB5$^l^Fcu_J4zotVGt0>Aa5e2)KanyFkd=MQn@
z70!BUx#nW9U&7f%cMQC4&)HER)t2_<<OaLRHSVjbME)A(NbF#|KYM%i#@0`JmVRFQ
z{cU{0QRUm4esV2Qd$R2DxiH(!%(nNRzbKuS*4yxXt;CH5&E*jW?6PLN7EM^BQ#GaB
zO;tAQ&Qd|<C7<>*Ont+g7dm}@!d9W?jUJx9|K4~uc8W~O?Pb01+gdPrD(flX7_ri3
zu4#+48LQT@sxu4ly!~|c@#|<2^_F#;w@g^YaZL8@M0rskm-3<;Q&}}<rL=49?DOUp
zV69}Iro8WxTO`j?6){Eqz{#SSLGR6HhrOs})VS)la9{Ym;*T@s9<8o97B-J_rQt2X
zl~R842|M3NFa)f4!56SdcRKgkmFgBn8;f>wH!ZdEaJJ1nBYk%Hg&M81%P-daD-)f;
zF_Xn+vXFU5W|lUKGq1^HsSf7*VeYye8#Y`BZ_zmaq~RJ%dbHquZ$&YUt9@U09hsSM
zr0?t2zEr76)?q!?1#Zz6j~8+;U#eC1mBGEf%X`wBdk<TaiaXCP)Yp0w^w0b)%RCK+
zTN0dg%i@_lng52&o5S_pZ)X4V@|vi^oR!!5+_`s8Qd#x1IL~j|VeQbQ>g39n{S#JQ
zIdc2i%N6<&^ZqTr#N%@#p=0{Y@L9iHE9Cd&%Q#*NU+>|qV)6ZKXG7n`=1ZsTe;HN<
z=KWqYcT<Y3h5dJ~=jDZV&z72$R_mS!HVs&o6=tHMI+gEBd(g)t8r%<+MPED=-C-g9
zVYUeOztu?}S&t_9ZrmYcx1O=L<nrA;G1KGsKKpX$>BiOK+ilYMa@+4cc9J;v_uIGB
z*0|gI%O`&HZ(wBD6TkTqwtP)?Yl6bzEHi8^3u9tVf6SQ*9?oie|5NmxE4Rwwnzn;d
zMwz#)GPgh0J3WEfB-L<2(k0)h?f31BwGSR&5Od_z=XviR|8QP)lV7hW@Yf1g3qI#3
zANnnJu4}(<Wys~sZ#}R7QdIE;$IbTjr577N7SGC#Znm3s?G$%U%8w|?b;bGbF6qyS
z()-rTuvC8Mip<|VUzbRm?3=)LY+8Vp-?R-^#eexlEayI{kvwICdIpzl+?(8l`;%=w
zbj@U)6HXue!=6%U(ep^rSvj{q_3)W5?P?1>RN}YTepsAbyYASYwb@FX%+B?Ty<a}j
z&6PfJ|KyyhrKMM6w6DHT<vr`S=-I{N=FVaz#!SLhH_BD)r`h&wYV}Jq-Mw;tP|$~C
zf96#MiqtzC-8<{G(=petOuzF^Z^`5K$WQfp6@1h1lE{V@>&W6o>1>Df9UE2!?qq%D
zxocDVpWSDEcZsP!sZWjjcPcY%@;i>;JrhmOKcDn<Rmb&Tabj;B#Vu=D6E)WQtw}QA
zIwsLE?|jRl7~vC%Ei4z@j+!$BKmD~vk>!}p2Pp}8k;l9(t3I+xOkS5=ucdrvh4zHl
zZwYVC7471<St@%>Ga^C$hH&Vs80R%UnVV<E-r!lY&V1dwxkjIJ`2YF0@7%v?yY_Cr
zvJhRNr;~hLY-Y{XD9`mPne9_$DV#skXSSvCW<8_d2R|Qa7Wtfh;{Shz&dKkO-6&Mv
z(p4bBez-ct<=}_;e>JcE<1}EHxN-p}w$x46#sX-iDOzK}+?1HcLP?l!|7-(+y`QxM
z_*+v%g*-eucgY7`&0D%^dr|hS6O7Dxveu@{cCY<*{Q9v8ReRPHHQ4OmBe{QO;UB&4
z)4p$%|6Tbs^<v)cui>wf?>(~Uytk(8U)gMz)hTbEtLHzxe(%%c={MF#f1M|O@A`(^
z7mWX33Cz{Klp=fY#c?&Bb?ft+wr|e=seUy2$i=G7A3uM$jrF;hpYL8}7p_xcm3&bt
z?B8>>w%Kh5vmJCN9QZVI$)Z~JEy}Zcey60)bh(|AzDXybn>Se{E2YR;bzOkFYL9J0
z8Pk$YETXL;-?WzHIrQG>`PO)1QDY)c+GaT^C)tH^n=Dn^XHK~jw{}OvX|4^|v-K=_
z76=9io>NJbZS(8b(C9kwLS5vw;_St%ZgaAI&o!8>`hU(wBiT!A0zdv}Y+RjY@L;RU
zB$2-BwrsPu6wkfDab~aDTA_Boo)u^Rob}|~YQhwgJE4K6w}CJDQl=rB)rQ<169N{s
z=kPsU(<ai}@Na>PrIsy=^&0CSp1;NtC)%&@Oz%5wo3`2NThDT*K8-cAUU0n(^Gy!u
zFJSxpUh#tJ8f(kTD+HDwk3QZi*JQeMRq6_3c4e-)Ke{WQS}ioJuu6S)LQyqrbBN%D
zh|Cif+Md2_?B5<fJ*`$_)IV|K{IdrGr%B!2*Vl5jy-xeYmdj7?tYy(!V#F1=L2mU-
ztKwxwR&yp!C|CRCy6Ww!E*riVlR2d{Ei2kyE#X^hHQ!KsLnl|ra@VtRV&}hxTs7?#
zT6yfu-`_uE?(i<H5S=mo+XDBOLiHYDx`!VgG8MagZORS>_2bi@d=ft1WT&FP<Z%4{
zBjq~MSyvypn~0i~rN)_fzK;wosq&Y;y<EZIw$1|owsm1|h36`<`G2X6;8@LhdBVA{
zL{@>$z6ZYprX|?#W>PM<N_=+ady!nv+O<+1N`~@X=KSl9{djz7;nEekKG%dxOhugU
zJl(MPY3-yLt1tS+c3k^=^~9dFk7KuV8QY&-l(YS!`C<d_^q>6io!|WxPGH!STaT?v
zYmPh`O6xYgIc#ONjSZJRv`uejNX#`=J)x)jW*dmy{Vb|8cZFiYJ*m>*t-)JYd!>qp
zb~GH`!TjySffZM`{ExF|dYG7T<k<JZced@XkGCJOu(Mj0tR}9!>5+m#?!T2&likxE
z91WA1<(YdUEmOw6zWmIlhp$!4{T_IGYB(Q#_rO_P<%{IRwC~D4vu;e|ul>xhR-x<c
zlf{hZLfz)we>-WuOl5)2_0LPJmzVZ>XfvO@$M7P&TSD^8va?Zh_|vX!EisVLDm=WI
z-QCZ#c=Z=A?Y^}anhRvaYW5jMl~i_Hx=q@3R9Vozaa!sUK~)V;>!xT$!KUxYrRI{X
zr&jl@OgVLlDb}F9AbWj&eUy8L-8ZlK!WG$3$1;~I|G0nm;74b69p$c1@{wKth5DX3
zRqWT4xK+p?)~G5raosh?=l@hU{r%gt<A7!6ZSDrOEl1+5l+;bNA2_qWaMCi;`!LIJ
z&Rp#!nhUsfxqEJXDSjoI;lwYrQu5cWj%&--e!BYb5UaiVk0!z3vZ?bTrzxjiSz)Ja
zrne`2>P?H)j;7}_mnv7>{c_q$o8|9o#fOi*XNynaKk{J1X3gE(UvKK#ee2`fsgIn_
z=<&oVTq}N1k@GY7*sqw4_fF*&cm_<2Q>;mEPk1s*Nmh1K<)SsA?Sf4k-}C9HF>x|m
zDC|uCmuzbBFZ{G*^ut@PZcJPmw6D|IpzvPnyQ^GD!Ovq0R3rYa+W21YP3V^?KmMo0
zYt7Q!7ss+><5o$oTOX|(msczHYh-83Z2HYG>9NF4GxG+UN43jevu?cT8FytbUukxB
zsf@g0NWNA5Ugq$9FSDLnZA`VE_|iR0r20`Td!RzxO8-u98*MpTtrwPB%pAEpMDy$c
znyy5v#Y`;BiI`@b66%@X<RG%|v-YzNUzr)LsYz8Cmv1cze;y{C%reF8;0}|_od4D7
zjHwd}JEsfo%e_~9*rxcnv{D1Z`8g7s3|RL4cq!^6xI}|3v14IB=L7BI?8V2cr4<eC
zcbU$&lz*qF`)&39IQtHzN2k7~?Dk8qoVHy0qk!=D?cYz{pKI4t$M8#{&5-$ztAMTl
zzU6sgS_u!<opQM(<XbIO=z7J5g>&gF^D_S3^GjzfnOUH^u;A?EEjKie7v?XxTcaVu
zyZgP7|E-I1qB{=B>57zGcpTs6vnDmI`{lD$J_}M*uBdH3``mSw&$+7;T-PqkaM!(i
zZ{^Cpu~TN>4gI)k1$(O)E3aYlx?h*y$khkTXxq^6NFZ7H>O?o+SzMFECpimt&;Imi
zW!}EC%OA0pX)|sx+Z!Y_VK#T+nUk*ywkXfJXJ=?snzN8EpUGNy_SxuZNB>+qXyH+C
z*J|gs)_EZZHXkdU9Ma}?+iwMT>r9h~x634%uFZSfUCqaC>N&m7J^KGX=A=unv}Wy_
z#(be@O?UH~H?v<ApAWgdWZj)<8<xw>df<JzTIIgU{`94}=ay$i_4B<vm&GHysYu`T
z{IsWALj7}oZ_-}#YfH6r&)2snkIePF@^)o7i{Xpz+r}M<XIAX7xoa_LO8C1!+y)G~
z@e*ILrB39AJk3)l@+2L+@Fr$tU`p8SygA_U$Ui6Cq7FQ}r_mL)b>)@oAGUP~aNiT<
z<vuYZEO1u+`re)Q7hlb)wJd&CVPpI{f8G*1M~24oi84pG>MYpUFX7lB5?$Pwx}z(b
z`Mp}^1Fe<z^A&f9<-BRV<k`3B)0~9;CkiFvlYIExg%y83{P5`SB$J~qY8Fne<~|Q<
zr)Pcmd+@ie>}%g85q*cv{fj0o4X^Lx*ZaUJ+-DG#)i?X0o`$CLF3rm?7F)Vaf6TFb
z%chx=b~D8-E1dT3>AC~ER~AOyYdiBx$@q9z!W)IYf*C9-3vRN#te$sN^XL=j1FvQl
zd|tol<2wtTE>1p8XUDSzDTbe|)w`{#TC|ng-mvm!u?pKaE!WRkvEO*@_36we?t5$2
zzK=a)e{8$8sHlL@9>Y0&Hw#ytJQ65hr+In8rY#Q{4RT}ip4HWMTy?lEYVbaF<%Vtj
zlYgWOwXENvDZK3QsVOayr;_Gea^L9Fw&G{E<E+;P`)W!|d7XFfJFXg4yi@tj{4X14
z*lC9!(cE&>#p<c&zfVhh+w6LdX{zT;FWJpwcg$Gd{7kG`;l(@5&0E_}Z?)JEqkod`
zw#=Hm>;jj^mlgcpmHn9Wf#doce~-=W`(8%(9rrEV$10;3awc#gTl%$o&8ucdbg15w
ziEe&*_ts*8tNzOadnLXt@mRL1udUZ7(l+DG>1jSc^XI52?L8myN2uoXzXu)>F&<&&
zU)P_Hv!5#6sw`NrDDj=nccxXVnyS_uymQImdi=6Hv#2v0jJJPlt`UD2HeWy}U*wz6
z#xJjWmE5dKM0u?al!zQR{UPmICi8FKkB6TBStS@kKTXoZmNSq$1hmc>7RUp1u$*B=
zOtWT97`$2IxkTWMGPCh2x3#xcUU|Er+wBCS`l6?ykGDu|{rUaYjc2)&Jg(}nec1b4
zW`6bCJN^r|)iPRLIK24T?1OpBqrddqGk!?eb>Mor_3bS=?)=4PFZtj4_FDUbziBOB
za&G<~&!C>9qR8Bar@z>2uCN@Q;qs?=$^wgKiAh5CYwsP(zje&W_V#7-Z96|R+y3zp
zyftN&4|mgttj9OEeO$;Xe(^v_%yjquA6ZPZS;`xK&SYhHoZl?5PO@Xct_`B;d@d|8
z;<ky&4%4FSj!5haj=RlOm1i37uHbz1c(LH*Ejlev%!2EtcfBvF=__-zR<_u>F7;w#
z(;tVH{ar^j^tfN8JI?!=ZqpMauGp;=DylMx;|KqhO<V`63)Y1`6f@ebJbTx>{+M_T
z$)ijMw=l@L-w2QV`fWz3-5Kev>kW8c-*o-#*7=3;Sw~@drtaTGiMfl4#1Eh8IA9Vi
z6QO9O_gSVd@@d~nZm(s<2W?)t>c#W;?$8Kq;+iBEY?2{<B)({hd>hxbzg%4_q@HHR
zq!oWUqUdzga(}FB_p`Hm70%@z3b<Xp<$&iTqk<W(cQ4KQuKG?r?z%Pi(TO38s+YbF
z661ZD9UkA99`x+W<{w7!>;5^e)fTzDG~(X(#}QvX^BCtf+D!0je6rVx)9PNF$;1OQ
zZ+NRb@%Z*I^y2GTFWsyjPUl<CDxdGo`RB;}?a|-v8`mwLdE>9636oppPi|G4Hyz#=
zOXcI8r|P~fHTmRvS3Fqzji#5T*t?G@In7KW8h;AZ>ngtgc&Pnnf_0$Tmk;ee_g)F5
z?|T1`Ls_juGU}_Ujq}2NjZ>8;&)R8UpA(-m+rNWxF8ACtrzie=96sHC9rN;kHJ)a3
zIm{pSu>7s}3Q#|RRZr?EmJDTq+;pdThC&`0gJviTb7C^olJNWapffz5uYWKxjO!qq
zP=;yf>}`IxvMZehiw<nL$Dr&yJM`|q?>A?}^G#SX_me>Jk9WI&zpI(EpXJssxfc%n
zL1&Hso^{*)!+#yajahsjzMN&7CAQ_O!gZa$fzkE#48M|(UUyv6dMw)0Gcftv_pGN*
zw^w8xIdaM{s&a~*c%g4bVf9w-x(w~pB@0)tU$FCIjqQ(9x+*OXcf9-V%GqapB*0hN
zdD_R7fjM6rGOhcrR6F-94DZWkK5jg#Jyp40O8MZ{3(A~&S(7H+d+De!fAb2Lx0Cb(
z`dnosSH7~=Ou1X_zVUWr@#+J2Z@ERJJ$;v!^QJ>clh^y$_Kk_s*QG^TD-&ijSb2Te
zTvvGXUWm7O_+5*APi{|Ml|EzEg}2*ER(GCb<9l{kigk)>b=#x(9eFRG?Uw)fZ-&^O
zn6Adq)ax^D>RskttNxc=yzwAo&PJVh0p*PO59Jp0^5}@A{Ed3FLaXr3bRm<F_d7m&
zI<=@y>6O_(txS8)<QZwQjqkN?au>E7UHdZkYSOF5{H33&bpORZcG%?O^)13n;@nGa
zza<8#CeuYf{8XG^Qnl>uZ?4|WeRG}}F01V8I~;Z9@(O{Vpb2`uA7V43RxG>NZR;Cn
zKVkY&qfj3G5AU|@u}-hFcRc;zhmhi@BMCb**S*>OYfWHpvE2RA>#s8<zdAh?d3?0w
z<CAG$c6zWKy?irh&h7)u71x+qD`rkLf2e6b@4C&_3!k=kuj}Vd>emt~kJ=OKxOlS0
zg5`ZxT3(r_rDZ)+EqkJL-zWVoJhb1tZS|^r@5OD_?_V1Fh1fq-IuzOZ|CECrpM=@6
zs$*s5#&R4P_e(;ivF>u=I{K-nb1L^AvyQ7rrgW^}T{e@$PVQ`A8JoQR%7(+jCtLXW
zKG-g<oUrSC>0_fUEoM85Ym^r*-}>+H)X86G1zj_o7i7lBan$9+=E@SDcPcIsM+J31
zymMo0;Lf|d^}c@eT%VSSzZ}%voDMCYr21s@@}-X}O&^rDhRJ%!+IOxn|1;y%a?c0)
z8r8=pR~owQIZ-_)>(-K6in+_O&wM$NXVM*L_RMpeT!KvJ@|~wMoi2rk22U`a=pQQF
zBXoiHuZsRpap${y>bD=3l*p{(J}!UmWY6Ax?E!HiHFdTdXLonS+&o~eTNhYpd-=0$
zp}%3xYpowEYq_`7Gx0EV_P#%Zt%yMGzR<jgKptL%77=C^#GDE?CG2+JWdniQ^Wjen
zU9)CY3kx_YM5x4>=id!|vMo=#V9uJy(_$I_@7t!HIoC>aLFm@Ub7p>=`S|10;5^-T
zHMh5ao;!6{<fI$(elVZ@K0WWr^0G-R>%?2i;v(nm-7XgYzP9>4m-YP!?dR9U7U%v*
zH|uY{py=8>!$g@qls8RxQM7|!M_@>z#D?zM?{6mm^L;Ywcb<f6*}t9slBJscTk;NU
zy_0n6bZn=jg21f(FO`!fA1T@3_;8ZC;pY$2*~FFqu$Ru9Iqm=C%;3w@luzAXsZxBt
zxB13A_Pj}H3f$IPCOo#yVB_1B_j;1jw@bcU%}n;@Jlk_4gMV5|6xfu#+b5oS?&GQ2
zNyl9td4`F<^tD_!-Sx@4@HZ_dHeN2>5b^4M(zDL_M)lKL8n%YL+jzJjbbi703hS_N
zhWb6{x8ADWnfmi%k;AI?bsDYPHI8oAaJ5>R(K6}6>DMlPj$2))zgm|zVc)9lLCe>z
zvJ-e@vQ=KD<MOG<iB5v`HPz4TS7aS^D_Fa){bq`GM$@0)pYGo}etoskUQMgHZP})t
zN$y!kymz&y`CmQwVPSMHpVpU<!?l-+*fus!=S^bN@HlCi)-hwE>eGt#TH#MK7RnYS
zUpvcaxaDE`-7OD{L;ifda-r<X5-Xm`y977u1Ro6KJ@eV;j8f;4g#iw?l-1)ZC-Kev
zq2nVgE_>(kA(M}vdlg^Da;b%fcf7kjA^G;^iQi7-sD|pTQZqHEHS0*c_j^U-%jWs!
zOI8T{zPQ<{-XL<Vqf+F<DxZbl9I9ewBwOr$p!_l2v8yqx@qLd%nlq;#Yk*HsCCh<=
zqU_Axgc83yrF?Zw*ZO4sq<mV+aQb#@-@}&g7gJm+4~6d7W%$FOrcj*aL&nJ?!Kxws
zVjG<7i)}w<bOxKBRr;A$XjDI~e*3;B*H$wyGb~?GKNVXxL+*#sI-6M{SNqUxW@<*v
z5eYq^uz_`pNo$=9*u+9Yr>-i~{u-5cm22k%h4)PhkFAv2`t$u)b`^o+Ia5ya)O~(d
znfB=C6zkpU517pFTd$n2+9};Je;Y%^7v%}NJcWKaa@^fh%Cx<#EPg-pcDa_h)6en0
z&p+!wTem}AdHu85xiW6|_Ma{O=Q}6Ak$>@tv-a5%|4Ju4zcBe(b?Z&GI+<hd%)U%E
zxqN`x^-aVBd)vc@9jvsRo!&PuyYj;Ft;4N-2b(N>ST=v_$<WoPpTNlT-th32DTWFi
zLF+ZEj%@kR=r6X?;Ax7#!R1LeSxwZPLsf-OesSEkz$v%?W<$o($Mwo?f!*OJy{?!v
zajGqva%tZ#wwMO~Ew9x#Y{@@8&%I;LQ3=&utk09)vV^T<p1<jQ#gC20kM>sUy~{Te
zO?4NY?{d#|Ig`NCYnq#Qno4`zYL{=n(pTwUekx+i-B~h*ZGB04%g_1jyLot1b~SIv
zXR}>u?=Bq+eEGC_rRi0pX_34eH@ZnOH+|=o{9&#AmLnoPw`)Gn)b%s`zvlBLf4y0f
z<hwzmY3s3;u$G6Pj!n7yaryMG!P`yLADvlcResi>EpqGY&tGqa$nKw(zP|Nm&W-ke
zQE&cyP1-8*tuT!Jbx;3|ufOJ7bE(%H6wH*nmlV39H0$Djv9r(8QaAgopHu4f>zRUl
zF~^a(3EOVIpBBIx_}a}<t!?r$tMw{R&lv7rZg7R$TsT{7RqJY94kLR3ZgaoCCf!f=
zece<rdA~(`(ewQb%nYj1a(-CSx+Oh_-z<^qFKAjfGch4z_-zkTH*S>xPuqc>RjWd+
zr|yz1TP#>~ASL7M;$xobUZ3A@HGJ=|=v>ki*P4&E&*%N#@Kk@_raA_#fWHxirRNJn
zn*TrHYUt%_Ty532QhM3aUn`SVSf~E|E4X6!r1gITDlhr{FjaBvda?d<QtIq!*KU39
zPXFJ&$*AP^ma9`&TCZFFE8en2mRlx8<EYSwjh|NEZOC)HQLN1^qgL3o@`I`A7F|hK
zMQ$Y-As4~ZFV%N`-k$Vvx>JzQ!=BI;QNiCGZv~rtPvXvaz4b@?t@$kiJ8y+q<@P=@
zv47xUbi~B}>9^<Z^?Dag`X~L6cyPVx(I%fyK3;RZe~74xwD)AQeLHrEufxo>N$THT
zcbB$h`b$MjJS?*h9%^S{T_hB_Da~{pQ|_EKeR5pCZk}tk<Ud@Y)X}qv>2qYDPm0$D
z{nwojX4u}B6}Wl5_`u&!i|#Es`7U+K?asH)V=J$ChQIcHo3~bWYRw#pB#Wo18tb<=
zu|(U+m%dQ^)ci-{p~PFx*ZaJkv>HE)$`r)fGc3=QlXZQ`^CHwCQsy3u--U+5b58Ib
zSop&1*rtu2lVoOmWBj}7(Uyec#nb=hJh++V-#YvJ<Rq1K{2Vsnt9z<S3TJKk**R&k
z2FGU(eSOj5T%D7v0u5yEwIBPJuheyOUfP^vMP^BAtzX?HEs*vrK5(V)YqZBt!wJVT
zPu#SQ3SR!qYspQyZF=Un)c+i)G%1_@t95qd?z85VJsV~jzA?SBi?!+bGp|gp65%9&
zhiAV{+^mIPtn52*vM=W4fhVfP7dfjR9a^#ReTjFB+hotR@;<?K`ZoVoY*_WYH74@F
zW!`^#HpJfjx}YL9W8T&e^;-99p3Y}rX6Om3T!Ss^&~t3i61h%-W*u`QVycNJA-=)j
zHTB^?(srtLrTi3bW7b`|R6Xs3ZlaZ1ppa;N?;D@Y#{Y4i+UjhFw%C>%39sF{+dqGP
z*l)%1W#T3!D`&5t)9}E8FJ@8QwIwR0i&YMrlzu*?`0m!sx_!&u?Fug2SCIB%P3~XL
z#U0nZ3)invae4mF_uo}cr#VYF6B;u&h~x>eO69cK<?Y_L@`(PvE1iP7K8Xe>TI=y1
z`l7U9kH*nR5lNlwtThIw3XVA)*tJH~ZNj2DWvf&}rZY_}Gh{RK+v<K)F)Kx%w2ph-
zD<{NtBfcl{rA0!@r{BJb&DMcim(CED`jlre)A_>9Qa-oMO#Y1XV?(DbUD>lkxT|@}
z&YwFM#d%!J*Sgo;+Sh$CN-Q+g<Bh+Q*h2l7q8sL|E3e9J;kMb9708sO8Jd)Kgz0pK
ztFTOJl-3mU@;&eV{Mqen*l8jx#xSue`tB<)<)tTA#wD42?r7gQz0&->{~5!d)}lA2
z-RApacBcCM+=kFjsTymJ{71b(r}MqeKi^r*a*}fr`<#Dv(s!r1uI*%>vFepbdQ+%?
z$)md~pZ~OCJ*3WaIk0eBwEp!{<*!FyU0x$_%8&Qc-G2+TZ|ZFCjx%X*ef0fp-!i|-
zm-QEzY!7PwzOgqed7=FGTQ(9O<DT}a)M^Kw{Kj(7y7o9n(SFNwOk30g9`L@fWa?;N
zwpIO%*S=Tzee5MypRFzR*m%$8^O@S)qL($-tWI08GO}xG!)%YU-G<Y@1)X60wc(6)
zp7PGAnMuiKJU*=Q+_m$+g=wr&?98Qx|1T|D;+Ph!@JDyrs_hcCCsJyf7gzrdSNv!4
zE5l8+wZi6?(3KSj6%LvdubX)K9fz9h=B<2z-EksI|8=zeOth6<vr6Rjfj(iW$2wbs
z&RseEL3vTCa>jS3dB%MP-8Tg86$&RuUU_<c=YR9ZUB?ucDH?x%wZFDoy?I09-VUD0
zAzNjGjaqkEOlggp=)d!GbOR%U$(-MZu;oS4MkA5#SwLCoL#+*}CI;9BEQwlMc_hTQ
z7_?mCcX&aIpKi0k4VBByv(?^~Eb~n}boPmZL)n#23nxA?$$SOMum;;E*TvlW*b}*A
z`S$$jSF30Dsfky-V)5H0#meZl=)}jX=i3_X%O6Q7%eVVQ_1C1^&f2q|Z_d_$!l<5U
z@7ND@n)4OD30gSc*u4FEl5$G)<@ZZk%BK}OS~xt3)l(GOk|uigPlA`r_Vk}(*EQGF
z>|Pu?{jl8YBGFuBmHQ%-rkvRAX}>CoNxsW7K&XA0Sci|Mq8sPD*Fn?Pow`$WR9sW8
z<-v~kJ<K9W>b1)ma*CrbGBLPL<z{?1Q}fNKX~GYWsPa!TS$cEc?lR}iOV^8>p8PD#
zdZYEs1E1Fj-(}Kqs53dUTi{cZox>(kmW{vJ<amFwF*X>PfA%ZiDY5+fP8Ih_?LE~=
z;=XaVTv}qO=bp^VI$@M^u-4l<Lbu3KEc~k59D9R#J8M^zIlnQ>^)z~a^OVl(4b2|g
z;yoApvmG~$GdhuQ;);mc$-c8s9J7@eCsnTB`-QvXzF<b`be-25f5j%7?pj~U{(sNP
zd`|X5?>N>RT)6J$V`tslcHi}_zIB?_p8gdPF2`4Gmh*pq_LPgpZ>B{4$X^?zTE3a}
z;>C==zO(sWz1Qc-kbLj|GC(0;_2NCI>8Z;LU9~w|zlHe!y23blVpGwvRmXkqr?A#*
z-rwB4zc|h2aE9IHva+2UpRGC@5}R#s#`OGatLMMhWj=Sg_&v^YcGh~6>0i34C%)hI
zYki2C>(uDdg4JqHi7nPU6xf*0<SzF5>i6$J*GChV%`V>IoVV>R1`1C<wc*TjbGaXD
zR+^-}+4f=L1J<@z#}k60wy{o1bq)LUY)P{3ooP3D{jQgn9Y6OjaTVXMCV^#lQn^=_
za@<(h5f!i1ZSXPkdSuT2;-){93p{E?+B;{qs9f^3^mn&sm0)OmC$b1LH<}nA_h|@s
zppbGS)wYP67+@LUG&D0JW)0qyaPQ*VW&-<uhri(1D(EtSh4Y!((N59+w<#(+XRe&g
ztaC_6xGTi-LZ9{Dk9UtY^*wRF)W;u_Ailb`<~QR!z5ZkGU2FuJpPmhr_#Cpdnc?3a
z4JOkGnMag0*-yU>G>DMz^%qOpkmne;u5aCqEj#qOtM0zIn<l|oX8&iC4eRuU<(e$#
zAL#7*vZz=yNiV2XZ~cv{Pm(4sjc-#HT%y^0wAxO_HSkzk`pW_lHObwwZJNfu(N{!s
zTWpjb8t=ZA8W|n+w0Gafq%V~}xKu<9CZ?_||B<<ZW%X<$`C6@_=C-bHXABaqmlQ0&
z9#?E>U;TDdXQk4jgB~9OT$`U7w(L3Bu;%Vwx&HU>-u);G-D2~8-%f*_CwCWSmri}H
zmVbQ0k&5fF+aK>$QTSt6zRsP0pRwn<^=jSTOXXGt-ZN2auW&m0@4=V3IaxlsVL9tA
zKF@Xh&7ExCdi}uq$7#p>&OUc=>D{^f>BjGck<+4MKkkcce82xmri9b#7?u22Z`Wxk
zCh4>%{J-!#IXGl>QuwTIqNxI0dQEQ@*qlz(TDZ(8VYP4QpQ{VsYMe{r()Lq{ypj<(
z{jKte6dOi&JC2TU)=9pf_GG-ya=Dx3eMWtnfG_)tY;)JG$4Vb0T@wv^DyRD~{h_hB
z6}zy!!O#2s-($9~jeDqh{l+@eYe^>pXKV<)Ym%0_k#mPhW#Yo-I8CFa^YT@8&+=P-
z_-XhYJ=e;mHj8f-HFXH-xfpdUe4*7@Aadh<$piJx!tORLKRXw`5VCsu%>B`uBT9+O
z{|Ik0_qsV{)6Z*(Vhg9_yc5ZI#M|SzM_FO-(L>QbzS;7!Rx3~M*&bJYSJM9bt(ki3
zehVAdU3))knWhGZ*6s(Mi}+UAJs0k4JpSg;l(nlfdDQ#=K0DO-d!J$5e`T{N{&U3+
z-JP-QgsH68!}h<5*|X~2+eZG2oU-(^(A+b7WB;GtoVWMo#65p_n~FGkjUMVKPu<vk
zE=pjsfWvOX72G$hd)_b?9IIL3v~7;R-ifgCZTGUcE3G$&zU`W3UGm7S`hL{r+O$_n
zGru<cXZhMLqp*iz*>*jx*T;L-eB<s&cz-}*j`fRhbA{%VRa1Z4%v^0S_3wELhUE+i
zGpiW7JG7Vbt;oodQc9bd_9mCphX2j1Wn2!IYMK`@w6?$ba;B!9*GTA1%ax@+<JOdP
zc8h4OI{kaUp;yRS-&CpG?Coc6`0CFQn#!v>;Yj*68~0yz^Qvv<cQfS8KHj2t@VMQ=
z$Fn$M4{fn>D!-)sFK%m1`<AqvSj%6_CRdsNV(gLSb+EkmYn{{NWAWb?$t5esE&Dn-
zQY}_9^w2$}ZIc@2zIYp!{N1R3_mRhZW@*c6nnWgkP^ftDJo&QNYp#jnoBD4lWyxe}
zzL|P+)~Rhv*5rTSUMH)yD=dC`TbW%<z3QxO%KS_R7dua=&EWd*WQ~E-gFCLZ$?r=(
z%Nz-s_oqRkFG9rL{qB)7E(>P9`6zy<U+&TSCnXbABeody%9fstV36LrRQdD77U|Si
z<^Hd0FHN7hr0bMLiuyg49S5g8JNd=&SfTu;*#(^6pRe3^Rb_7Cyj@Y{EXp?`-)NMs
ziDulM{brf(<E<Zld=zH(o}9met>Cvt)2U<aCO;<s@>t{l$!N)|zGKEAAA)XVsWdSJ
zgqHujzUax3<o6e%7jJ*Y#~osR|HKJiIWFBZN`fH*6(Vc}2O?hlUK`vJ>E?V#OgFQe
zt1mzH*q>I-*l)oe*Rxz}8Z^)H_6FUJc(lNryI@sA;?b0r!?s*IKfIj3-mhV==e{*v
z?dntR=5Jdc{A-C{;WKX2-9E-^f`!=l+&cDb|7X2gb53aR{fJwOv<}4OSD&fnIKOWe
zi$M0IF9KEZk>*nG3MZFqvva#&*tYC_3dgz^%Pwqb-f&p?>|bpuL;hWL8j7lw5pnFt
zuSEy%QMl0hK}U#r-I5>mlV_&=P4SXbZ@)0RbZ2|qq)kUxZCh8u7#hk@U0T`wK;mfP
zk$W+9DsTPF*X~~DaBnw9foFwCyEx;4=b|fZUoPH$d`^G+H;ez37MD~7Y-5;ioQ;oX
z;^WyJZ)~sf!|3Dw^-)@)`;yNq_66;}zAC6;>NPR3bp;-}!XGy6kC=DXQ}h!<CC|J!
zcBNPB{cOY7SMD}V?b7@A`@jB|q;08(U#HpD9VoxCUwV^D(fWW%3m(`sxUUU~N!?hz
zBaL&@?b}Z;f-d^I-ZKfyn7)Yt@|XzWy3#}ee5p3*2o*!5+x@6mZ(<qtH#8z@uDvDf
z_N3cpJhk7$f2>?O+e^&z?u_lR&$mTeZ;sWzTQ<q2AoW<<qHgy|n{R%5&MmOzy5Fmp
z6>cmZ0xAW34)J1(Uup~X|J?Dz<dIE?r%~U7=dN;3ADf6Ksyx}T!u?`}?W}!qpFZwl
z->KpL{^sx3Ws_Cq)fxST4o-WhGGSwivH39`vDy1_9lAeH`D=R8a`%jmp0jBw;uCHv
zpPSkEtmHDE^yQ0QH?KuUPgLWd^;vu~)8Cn%N4)Or&&*k=Z6fmKT8=v7nXPvXen!Of
zKQee)B=aHQiNFc&9p8Ck-m=|ZbC6FzF6#0WHqp9c`s-wVm;PSzL$t-Dc|(H#$6&|H
z)0eICnDx4PzcYVsy6^k9;=9*fe(~>O?1mq#@4g%h6V>saxMBOl(icaj6i!uLXw1cz
zxT0lI#sBDLyRyn2js^F{72j69bk8@)Il<Z>Te)Ge!C8Tv=PPbFyt#CAo~qtA`@sGi
ze_8BwYn8sGzCU8D);RmbUVazXV{ekSZfdZUo4?U|`l)?J{Te?W>^PMyFX(?b<cYfC
zSzrGaugNXC2UZ5m<Ysq|_|r6zarU!gI~y!QR(&h~;g-h8JFD$f&1ZpCA}^M%KE8iq
z;EpY3y@e+#mZvXhuU&rOa9C1+L*bHzK9_`>EVGUVesfuCVf9=--0#n0yOj#D8!eWJ
z`3Y|g_@$q<@UP(31A5=LSZ#Roe}(93TY>c<Z5B_A(pjIVpG-2_ezw~;`s$LGX{}C&
z;#${jdziKDXJba>iYYdVQIj;w*6z=mQuM9;ZJX>e#;L7(=G#7+oz@jP|6utRc_q2&
z8m|sA?e**AXn&IF*Uli=eSWb6lSE-%Q|I!ug0`tz*3s$aGyLxcI(^7uNpU~n#kZDE
z@`&&=-QDt+4ji`W|DHKxx5KQje(MYCWda|Tn%oT+QPwH=wyr$HY4+@!Ya%B75a!*S
zetzHimZlB;-a_w6HcH=$;-9rhICDlp;iMU}@7AXN=9OhR;*j^c&0@>>fLF#(y8dKU
z{`_Wn)=f(^a?W$l8nf!t=d>QKShB!8uY~u6cY@lP^=7*+ziaGRP-<fGK5NT%+sye^
zv9sGdlYfcZUoBJNS(oo<sB=p4D(A}M`mQRCp|u6i6eWDV7yF;(nsacW-3`~Dx004B
zn%*=0wz_)Ju6umTBOAr8?sDOkt+PMi?U~CNwfIrBOwYPKx9^v$ry133T9{?FbbHLK
zw+UHWzHwhLwc4e@pjfl1m1nbt-PvymAze4mwIofSU)ugu#rRypL6g5xuk%`;&e2lJ
z&em+OlZY}AIsTLVtXbW*Rk!ODBwyWm(RYV$o7uhlp`T@6FXfnOQ}SH<3ya8(LYw^B
z_ac=XALlg$$-TN)8|L7%hsQticc&YZ+>ThA8EF+VX4ihkTvYjU(j(&Xj&)7f{N_6{
zi7(M#A9w$Z{yjE>OF<8x%V%FNx^?f}tL4*PdI`!MpMB13>D{np>UU$=&eYoch_s%v
zq3iXmQ=D)5R`314v3TjlhqB*p<j-ArII62Y>0e00OSy7Eu6c9K-dI}}^J=xX^Q0VT
zDPD2a{Ag0&hXS#7LC(L|ihFmhdTmzVcIxWB6L<ZttKVK1#adpLn(_MXKi1vqwXdxr
zCb_-2`}WVznM$`Uns{$Nzx?v>VdozThqp!hci(>b_H?8}cd4lRW#`KxQ)F24cbC+A
zcuu--S7~1VWScXgJ@uY5Pi?rpU&rk~mjMHh^r`}E9UtUTI)a5c6$@?L!ymDr<8o5-
zQb4O-jlqY4gIJ*D;USd;sS2<Iyt!Zuu&5!Ieo$(0erZv1YO#We0m$?qE`8s`lA_EC
zg=hmkV~~h}0+?ZFVxnMZpl4}j8VfQcGp__}gb|m1NM=rEUOJd($ffV(ln>IYV4z^3
zU=hou9}!%VTA*OTr5_1nz=k!6S%#wZ#3<xM$OEGQgMbYThZcpbD`>S*xX!IHVQIpO
zfOQEO3m&W%kj-8&fhlb2Y1W|W%qg#<8Z6lo_*!x^*q*QyvlcP3NHDNU2pVIFMMK;x
z_EAF<d5{O}O;{j;0s?#-J6IGoG{L41fzVtqV|vp<CozHP+7eP4KeSwqOKB`=2z^@A
zc;zX>&0S&%eT*}h6QyS{S{{sPjA3A8V_=;oXv&qEmjXGP3B&@WG!sM2Q1VF3Nh`_E
zOXbpsv0&i@<NGD%rYdN-q^2d7=9Fl1>AMxB7M7;wC08n#8F1-4=B4MPDwvpZ=?53&
zm$;SYC6{F8=PBq1<(KBAAf<OuDh0U#k=o(M-*f2)J1V3l<`k!L>H7!3SRNq?`cO-e
zj4?4p9?t+fRo^W?uf!#_IJqdZpd`PDOW(0LIW@0D!OX~zOW!%Mz#}y?Jp;-GDFeyr
z8X1Gu^5!I_7b}3~yz=u(AbCR9OhMPk*jT~T#7M!+5|lSUru%_{K;O~V#mB`(+u1iH
z#F9(jvm`MmGa2H211|mGlGNNV1#=TF{RpUqCZKzmoih@Pf>TQrH1tyoOA~YS6N{5G
zGm|rml1p>-3-tZ<t5S>d_0x+|6H8Ky^aJz@^-J?oQj3a{^NUjTQ}T0i5{vZn^HTK-
zOH+$M;i_MxUyxb^@}7Q4dA@$Jevp1iMp0_2eqwGxYEf}wUW$H_eu;jtep-HMk$$p%
zg?^~MvwmS|eo1N(C=~S5_0uxTQuRyqQ}xUA3lfV`^Kw$tO7x2}EA-R!UG>ZLLm;9M
z)y1i0sd@St`fmD_`Vsnx#UN8+xQes&GxZbotMqg93vx<}^*!|+^`rFjGV@aPlZq0P
zQ^6)C=jY}o>SybFfyJ^@OTeNY`bmjJ`pNk@`FZ-e`Wcl48L4^tKKd#8Nr}nX#W{(^
z8T!SkxtS0JsTIjNiMe3?P}k>ye4m-0qMwsmTnq`zlFXbGh`rgVB@kEVLp+?4l%o$e
z5|n21^Ge(@b5e~JObkJ@tl(P|pd~Rx1eP|j9dZWWy<==@$fX}#np6TVu0g5K&>56C
zA=wOc1X@i<Wq@#|*n2hhgUUrW8f4$}?Y4M&=0(r-iYZn+Os1zA6s-Clu{t?f2s>Fg
z9hy49<3*o}Vo{5-VS)s&LWioxx(6FNtQ@@<=Sm*GSTr}be^qSZslT_f*4{m~QuhCC
z`(3Z9<NxpbUiW_Q{c3|F-<lF6=E=)ROA1T=EOdGE?yhvYepmog2Up|Dqj4g~7B$^?
zV)M*KKfrx@KzjW92Mzi)2N$v)c<`K0Q146o4TCfH_C0>E%0JA_Bh{<2YL<&)jM&G8
z1y_&tzHWVZQ>n7btEkVwEK*T0Rb5*`*?WigtVw!78uo&1>8YH;Y4J}ug<UF@DjPMv
z%64;PZqtcZoWz~Hbfr=yAIrf%ss$Mb-100$7+nwE-jlSz!lH4jxYrYv&qmA%C%D@z
z7zIwX{$p`mDDZ`mr}hQw+J*&F4Ystg=C&;GmC4ZN@8WEDG;@xkeg^-OmgEQQab@e<
z*M#cuT2H8*areZ&Bm0hjeER13oJYS3qj&!QsQ2OD)a^5`pZ`7Ge+K`{&wuAEu>572
z|4i-dUTgiVdtZO<`^<m#{gd;Lm+L;zE%;qj8(b^@yY;8$-(7$IJ^a72e$W4@3^of4
z9vnQhmHYKXmM2*W9t)H|Bu>zJk@>;>U~l&V*Us*F3j|kqGjRGS{!@G|rXR5;x<*Pk
zNz2agb9b}Qt;7jthnXH<DNV6h>9*R_ZddyH&VM%~`X_1`g|?<mUb4ymg1cGy#2tk#
zd%XHSoLD$Z+xf+8tFrb(np3qzf>s7!y!f!BETQJZX66}^)AyaPuRF(N^vdkg+{*zm
zla}4A=gD5cU+}~&duDLL`t|wBg%cQ#{C{p<-<*7g`AEOxob)q%{eFL*Ra$PmAk7mb
zJ|QkPzVNZ&Jiql<#TG=q)pB>9zVyG_DQBw{e6PQ56I=(nrtQ#?dnQZ%X+0`7`S>Mk
zgG=AVpZ7AKEfM=Fa6V_#we1Vkx!)9pPBYVdbSUaU{ILU}Eo(0O?#StxEWRzeTz=8@
zAo<G&)i=IiO9{XGZ=K_pp567E7(ZW-J<&U9-;%#C4qj=FpPKZC_c4Pkd+1{a1HSV9
zSjp<6H9A_aOyyT@lsYSRB{C)WSr+%{{-iChb6JirSbZt;LesM(_uWV1(hnW@E19B|
zoAcg$(vG#!=a0n7y^@=K=vtoh7T0tC{)MII=B|G9;h|Ei*z*0$mQA$I43|vFc_N<v
zNb<?o+nYUlH@*GC(7a{a6IIz+uAffZ9(c_7PwvOj8-EQSoW2n0Ua7czN3U$l?qIhS
zAHT+I?KyEKdrgkngUZ{RuX}!<YH>8VRlG8|+&^|-Ti<iP+MUJs=ZWr?PRj9&==7Qs
zw(8MIBds9S7tao!uvV^3zoX}KrPQq2!QkO8+Y73yJVDJq?deipT-_{_zHC0bwBq@S
zzo!hj`|oi&30y5d!m4d`=iA!NvpLqE3ru}~yYuN~JCEj^g1xrw)1zl7`wDlQ+W-2^
zYFon#{htqRU_NsGz=J96tn&h=p4jr_&O?(>zkTOs)U4!Eetja#t?z1!U;C*o7bl*K
zXx-<u+-2(7SIf55`!}@u_{*#p?GZS<Eb_`XTaVz@$mD}B9=N+Re3P!a{?O8};p^SK
zCGQ?(&O4g2?b^cQrDZdd{+`>qdxNcXSGfD4+fvi}^^Ys*{S~>cS1|MK@${!Zs*Y>$
z+_|jtfvZQ!+<RVbeVeaZp5$p!kFP(Yu731d&BuN)`~1Zl^Dk~_dhy3O!Yks@MCM4F
zwSMsn9ZjDxP5*rG#bUvnAJd;5-yZmHJs(%9gxI~L#_k8YNjd7adRwNwnC8LJ8Rq6D
z{WRi*Y2VT-30F9{uC7{S6ddWz`Y-GHB$mEKJsQ^*yP8eCn`Kqj6DaV-_PE0OzG(}i
zoG#t<ExEpHm2F$unyr7D&V-%`-Y&_x`aoWG*4F7)UiCfv$vc1kYJ<JMvNvp=mtnMc
z?W<)@z57;q^?!VCd0?4!g0Zvqe?D#=W_BinyjcB<m$lVS6-Y5#Z0~y^+RafY>Gs&<
zUF<m-S6dfbK8fyVzm6)20^4KD3)yEdGbL=0*GXpFE_m^|wrh2F<t(kGdh(&Sr>uQ9
z{cwY=mR-F<=)Ad#Whbk2#3q>-X&)(Mms=RNX~kEcFW(pD7yairs$N$vbAZYIu0z$P
zn3+kDVatAOIdk{1)!TpZuiaNZ)p>Q{b)`qHu;V|w=E_-%xNP12|0vUTU#+xCJJ5CY
zuBB&h9Xg|6Y#{Qmk$t(N`eF&m%LyBjH8~dDG<nV}wRG`IS>qCc1m<(x4NVz6=N4p7
z(B0_MwJ_o3k<TYjcJ{vrsLIrNySa7Y^MyO+NiJ)f+7p%+WUsJUdS%3F&8vx#fts79
zXwBPYb$>#y*tMx!zs@baG55x7|M2S7MV&o9;)#bFJF|-ogJ*fK_;B@3Wd2jRiWi&)
z{+sjS+_y}fIyKAWu&YVpgZw*w*}3BX)|P8O6zT3{lHB}g$6;}X--Wv;UoTGk^vpic
zp!{b47X7!IGcWHFDQ`Vnx9R5;=j@BKH~f3{Z}N23@5}h>#J-lscpcl_TX=<e-^T;N
z{`Umev)4PueRF@?>)G*N$9zp%K+|NmNiJu@4rSP!Q}#R*(Y#IEs_3)Gt1qVh!VU5q
zHDA7`e@}Mjv)Hgw@$?Svzlu3?o?YPHrd~I**6HTGcN^w!3A_4IcgE_=&NEoIvmJ3?
zveZ53X+_?~O}`vO^{)n;5NSPmrp?fE|Ca!pWi6AF*Tgv}%nCXb(D3ZalrKpQJiU*n
zd32uXDL;DaTiw#5d*{^Uw=_%UO~0mfuxLk7Y^kHB-}=hKt`2GyrxwnyI-mCXOGBvK
zkB24~jAW0m{Cq+_KhxSgcCqNglIC*7iMQ`28U3C9F^fOzmDl5C6TH_<>#B;~Q~o{f
zdZhK@(Dc&NIk}PXt|2Z**KzfA>AKBh5)=}WW8-*OdB}QCJR?g}lB0v`w5Ih3x4BJ!
zbtJv^Y!j1r_^Ran7V78Ta56fF&%Jr_@AEU3Kj-a#|GhTe(eC=48-bUO-m~1BciF3a
zz3A_~r~OV=^s23Qm^?Gm<hoR!RpnJh*NQ)l=ilvY6qqxQui>u#I^~M24e?!XwE1j~
zUwO5@q1*ApTjmuij`KL3P0r}P-EV&&tAD`_BfH4C(-tHxc^Xt(8=Crf=7f8!GgSBU
zf6SZ1P_}x0^MjYQKNwn0vv2rYChyuHAKoH<>DHAsT+bdIeHUF`ZL=?8<IB_f&rT<7
zYio!~&obihliuCY?(}Hk^<#HeGusPSCLdS%^DoY=lPPMJ>G9J$awaq~+?n6srKP>e
z$Xn7|#G<BKEBLsA=<EI^T=%X!HZIZC^$5>jDO#|Tsp?UypqBiNna`Ygd($;zr|YLr
zO`H{EIe+ftxxweI9J$is`K0T@-s5{3n8fT_A|LQ_R-EeX-%xNc{$q*Gn|QWwvgzIa
zWrdv^dd>xKo4z^|VY>OP_x!2ztEJc3zp$?V`|9Ic>(e{Wr1)-9b4}5#jY!w7pL}=r
z*M9w5`%iK{t}*!-|GfOq^~*W#tDBS#J3n@LwZ&p<QqRg&?&lgmSfA`%&#dyWaiS{w
zKHuju)g@~GwY2>!XD)i#v}aO{Y_Ut2%=CE;LP?f2!riSOJvp;1mGuLkE-$#y@7$7E
z`BPGA+oDxlmU*r8J@a^aTvSb_=lT<Z+wSiub-s{vD>MC5i{P#eGbhZGkbU-%qcoz2
z?}zzfC%JhKkCu39TU``t5UR*oB*erayKRwB-6q}J3#RFv(m%60X%%1g<RXhZ{ECNk
zN++o`_f9+R`Sj>2CR6(zr4_Fyh}$*qofCX{(j-wIm#v#j)YXlRr%Ow7Jxp(Y@cZDq
zYJX0L+lsyKG^~ElFOE4rv1^*zGKogpZ^u8ERp!jrc=hSZoGUT!G7hu$_SN1g)bLp4
zF=bNG?B`u}ACs8^ORB9eg%-0`$o_q{r-R3tZF2C`1qVek*suG1f9Y1b$gIP6Nt4iI
zzEzcf_U&|%ur*uBa($tZ97|Z%l!Xp)<|-{qr{r}S1eiI_VUjL%3%()u&na1b6`#zk
zgv_$l9?q#=+-2EU78S0`H+FjNYdtw>&VtmFA00QwEWNV*UiZ=B4YL1i?=_eosQ$tK
zfalP^_QS_jH4IfnWWAn$WcU1hS@=e(cAe^%{U07~cE8FWQsJg5Ke3kO>1N#(%Pw7F
zQMkjfo2N-p`HV@N(!!EfF{!j5_6duQerl1HTb_HAk?(v<?1Ed4k={Lb?iOWuU1BSI
zwlZYS)R(6!_C|`OS<kG{{?6aWJyB~%Y0EmDtfSNXKV0D`?osc!wKc%~@SN?d=Q1aG
zRCeEz3|Z5{vbB-r>x@XTB<q7lt6cn@Wc(s79ltc&A&Ei0`9Y)Lk(Oi|&f`~ZO=^%`
zc|CTm*zW|xAAi1mD^1EiyXk~yX4#g#T`Zg(8&xi;y)@sR{5LR7;WJm^*7g<cnr7S|
zHD47-Oteh<DYBWze`blD>C3w!r<yn~rLE^XB=zX{ahD16w6=a@PI{R(`&;$1e$DIq
zRZk0l&n$TuQ<fLzrx`3AD=W8dLVNz6SJuB?1b#O#&%45{tkD@M-Ld8K<Rxo2RNl&&
z#(KkV*~@E7>=ZRuscLqG6ugUgY0!6_+f74#8*5bB<jH}&6~^~uR1Yry;5nDYtU0~Z
zcFvOx@-w|-mRwC2`td`q<h#&k=3Q}D4wj0)?#|o1z3<q2jc457mA0=vQ}sk{|K!_q
zB{Yi@bu&wh8>)C#uQFVsc3I_=!P{F8CadQ)S4jCk>ndjuoRd4RHBfElU;QfuzpL`|
z_kZpF$vSPrI|=tEK1~z19-DkD(yM|`{KdRw$KHKDvv}(Fk0E^P|Noz$uq>_g-h!-b
zW4@O^vzVgn)3~|TaXfU=`nvJ{hWpq57j(T*T;(!p6_1^zt%4p?X<4k>&Q(!<H$}oG
z&r&^Pyl>%M$2;z}nV&!1Rlm1uihO_W`Th%Eloy`o)C<sbz8Z6zZ~Yn$G48OPyWU**
zEq>(l+uu@G&68X*S!*{&zDccI>M!v4@74R)f4sdu&2z_I-j#19r!Lym)3eIK`}CC0
zGs-%gCnaCK_2`(5-jg21g|k^Ney!(~3EnE3^YrN4YA)tai;J#J)86d5ua)ua@|o+-
zovUwhetD@QN6%!p&EhwvQzH(9q_e1>Hvb*0eQxf(pzZrNpV4jnqt$-h{P}^CI-d(S
z9K83|oHfVwZ>jPT!IYnW_+QP<EnR<{`O18oz2)z|ys12Pu;JcA+4XH2Z?61*e(~bJ
z;}1*%SyOiJbUr1dawzL|h1vO8kCi=+=N~#_mC*9^>x!2%j;^u4bs*HYk;D5#PK?r&
zn+_jWhx)Kg`pAFqv*9-pw`iRUljD9IO52yyB&8?0u&?5Ie%4}cufROU%Sx_AeD~|U
z*GypEm)R$vc5LAjmt*_cLJJMDbWhgbt|-&hD=+wS<-;V^b*+L2qvQORdape;dD>e?
z*42}meuPWQHhm5~ZuwzBPI-6SrYlR{vOL=t<0QUpg_hFI4A(g(n%16^j~%`n{_fC<
zCZ$lz=)lOR$@6E;pLo=Ng>q!mz3HD{Y|If3-DX&EQCm!ZR>`*wv)*QKU76_nB>l%p
zzFEGDOX6y@yb`aje0egZZN@&&6(OsGl4exAeYhq>FD|;FD{{uY?@8STD=mbdZv1*n
zEqAAu`^@9kdb1)<iS12R_ulAp*`KFrvm3YQ>@X+e+UnQ2Hu>+}GfE>$OLA{syi;Eg
z$t#*7xVKoXg1g_||M<CTF{9PL%=$&{x~zS^W5KQB6`i>&R4*$1?Cy4|<f`+P*L4m2
z{WQj>LEkHN@1I$>cDeN*<~cj#&}p`c{GKf)Vwa3!Hy%r!s>`$dY{#VN%h5+$<#K!N
z&NkgWVIaAC`OcoC-?s6`TUb9;Osmb$zg}Lu_qBcGyN!u!Xa86(cTVZ=D#wDe9PI3z
zB@Q3rFP*ksvC_Kx@v<4SHBM}j)sHPse?NC^e<Evn=F6z=-F+9X{c?N#sM)=7nF5E9
z!Vw1{MHVi#{VmfSINDSsJQPB%aEU}O@Qv;Ey7o)q)vmWCOOnd(Uc0$<^WUYPZ=ZXo
z&wpm?j`}xmeEywO`Tl3${^E0g=bcy7?Gp1mny3(Xu}doQ+UhH>c*B<+m%V@RXwSt3
znG4Qjt#w=d==s&#tNH@XHs35uw)Al3ye%l&erSK^p*Op)d|c4H^jC}jR`rjbs{(lv
zCvo(@Ul!m|V)9G#*U2+p7WpYRDn6+MGo(0wIs2e`ilfQ_52K&GKfX$r)mYVDFRjc<
z%JJXiZ*R#d{;=u~=eDF%o$c11#o`vcKWG1M^AM5SEYrHEBY*LOBn^p~8>{lmcQD=W
ztBl>ls<Cpe{=6OfsaqyLdA`j1{lCUtRx|ePyLsHiPn_p)?+!`zJx4!_aEh}mUBH^&
zxsv;q-L4h)l(q*flXL!mbb3QlY|XRvGixu}%=fNX|J}4`UBcOi_ZBFwRX7xQQ>ACW
zfgNYLe^E@{j>C8B4O!mpcL@t`_?6`r$Nt63?P}4Iy|EV<zVzyDIrJ>Ra>f2#%lEwr
zznN<5Gku?P`h`#3vvsbrz1p$za@J&vvgv7iVrLvK>H2i5Xk{p8XQAcWpL3JkRM%_i
ziKRrkSegEfx;F7Fm*XA#$sf8td?^=>KeRMMTVqMELjRrFmTyY<`1||$)78||)83_S
zc_CWFR&+q>;p&;%bu%q2YF5=3>^V4nu78?zQTz5S1uZobj6MZL?Rw*2#=HH)v$EwX
z&0kNgOA8fM6S#jzMncxKqx^!$ob#XFPknRiw|3EQd71k+$|}#Dcg>m7qIB}XmS;-p
z&(=LycrM}F{MPLp^N%>pt=w_$vzpTbfgH6&jXCFK6E;TYTv&2nF@PuPR4e}<@jD`G
z-m?Fnv}BW(th9~xSGK}zuI|o9&$^kf@g8n^$X(Y`+E~uAHf^G#%Cnsw*S=>?+jYVr
z&Em1}gb#IM>p!L(=s&5qXRl5CRIYD(J<V5~KBpGElzmk<_sn}%ni|Xbel(XhGO}4#
z_HXN&`QQ{|{KHzqif=tT|9&u&I$5#mkb~Izzy9?f%}-6<ePo^CzMnfpE&ksZ`)Gah
zcwWY#<xdYX3AwGQYS_`STZ_weLC0_Hhcy=e|6Mm|a&r>#R#WpmduQ&Ril?uZ=AO5o
zK4r#<mc>HiJu|1iDZLdF;<Tw`iQxaUk^W&OVs`gFq<za3t2%XZ=Q(MMyh}$d-?q(-
z_$<fo`>TEZmWFqy>rZcLcRKP(;)_YtmrxOvb^Gm83=CeZ4GCkrw$X}L`ib+W@0$Cg
ze}9_hzx;h{@!cJkd-OCfJeJuZbbq->p6dU)pL}!NpI^D1eQV`ovBh^oEH^#-y7tkN
zkYf+?vrX)8e5`jnw^fJfT}rNy;%3hM@0!-G6Yy_(E^fC-XYJZGmQJ%b1vm6K>1!vs
z?mpk~_3D{U=Wn;#i|YLEzU``QYC3f1#apM->Or?+g0HK6a!y&(uV~G4_S@o;cQ+~%
zmL=@@y1Lw*Tjmj;+l|;uJ61K%zq)1R+bIi{->-WgS3A$eySrqYdv(Uz?M3`&WhCBy
ziw%2J`qpAv_VHRbmJ4oP>tlttywso26j5dS{nlJ<;dhNm3#NEq{V8P?sypRLAm@Qh
z-j=#6$LFc~OQcvH>3*&C`C4NfJMZpiQVLlLVX=DqObeE6%$HDJFIf^~E}tLAUGw5m
zgsrRMysr@!v;D-`<}PiIXp1?$p!@dWRY#nz9dkOc{DO(Od%etqomY7Msw$6)|D542
z`N;F|MCKcf^P@$2tlgF@R$SM%V)M!Kq2E8+2VIdpz3|(0&9YOHseZ0ev7GVFZ<?L&
z7+%}h{YNi}wd|SAuES^Z-W^hvUY9@D!05RB<yl+V_Dx$MF1g**^M~iLUtNx?g#Dl1
zym{(iTC|fBU(7Mv!<#l=xH;qQnPc&}Ke(^|^2o`!z;IsRhX3@3EC0!aOT>gHuCVvh
z)JVy5{`b7&ysp^)7v}FJoouR>>iKW)Hh%N%`K=80U2e}-oV##G^}r9U#e$9}3f#13
z@s(dOeC0MLVwF<#uGoFyU!+sx)`~n|v@HBr;>W9(I%n~HRN22+`o*jn-;O=o#>XfY
z{jN5y&p3M7@z2us_q)4!>-+XS&AQ4vRjP5>m+f6nQA#=?(^ky(wU-W<zGYhQqEDNY
z7Ak)}y!u>sc~yF`$*VTLHHNbP9HeeJdPg@rfB&n}&h*4*+klhKdM2lirYsI(tN2%K
zFA>l2sm3hp<0qS%^S?QLWHgRUGv2kj-|jlUodM?q?mc;D{La6~*lVBoR8{)w(cd%X
zvO9XsWY~K^xS3~*i*LASCfBFjSz>HleGO}b-s>OT^~IY#^W+Knt6{4)v+sE<khxk?
z<wE0RGsgt+hDp+j9~Qr#J|Xu(2_M@luV3w3ZB$R#wK_)opPx9*G3sD-L1$my)=b&I
zu2G_V;rwm8_G(pMN#FkMVr+iSrH6BwzB@F=7K?NTHve^vGfY)@ddIOU+|J|cN<GG#
zFC<N4U*<17_wMwrd4|tw<Rwfw57`z;9Q>H`X@}?HI~uE3tPEWF;&7K!p=4<2^$MS3
zFSM6Vv+;@vsq{Fq<mrmlt5`NA8zom47khK(zId^9){1LwQ9CEDyfT}A?t(RDdyk&m
zQ}1>CmKI0&w#o$QTcuMRQhjZ1ZTfgWkvoR_?!t8&49agP`CotZpTmH`s`U6yu2jqk
zMC6scp!p94>dwBIf@a^06iiJ_70fIxW4XYl`$1>loLyXfz_V`_xMttXaL&Ft>gVg{
z=vU|$=m+S#>KEx3>zC-4YC_D1O$>onf1yqcfkcRz7&0_8GAA%GR1%!+6Pzybk1uz>
zn5KooaouZkgVWQtDPG^O;%3_wuLBvfjwU@h_B&+qE^#kk8lX{l;FzAgKxflJo-U^y
zIu=K~&rI?)FU?V$CvW7t{PeL+yfc!XZ9B6k{ijDv=0vAye=RNFe}8Io{&x&t^OVGn
z#2FsVCwHhP*Uz~)W%lmmmkM#$6f1?5?WNU<xqfD*uD<qv-Q5dLcRwAij|+GF6`T;o
z?|M;rcE~%4B`Fe5?=k1As;fw@HJct07xnDI{)C#q`Fo0=m+d{M)A7`mRc!Cd1A%HY
zxMlt=4645n6{2Sm!&&8=y3{WHCHHPS_YK^Of;ISZ61U9Cy~^i!W%in*O&N|Ht`bI@
zwAY$le79m<>V;yCTvrWAMPa9#JXR|l@)eeRUG13l#HoLVb5HwEO&#+$iw-TYSR1qa
zO@)lu?7l@z{z_*(i`Gn+oTkh5;iU1Koy)S4E{9&5_(*MDmUwmO)6gZ0lBSe=?l1VR
zAt}9Cko*1IU`MWRYAbcNZJi#vWX^JlNs&_B{ys5m)xTAJweyP0LP{e{{Ur|SIL<qA
z=euK1{-xy&u?FXyc=S|Fg@scV^v@3eK9SK;!E~uiZ=+4dxx-tJ$nDv^*6wn}qNeDc
z17E$bI4^0JkJ@tEY4RS){!+RBE&od;kHnpRyY%iW(RX)+OxSnKW<K+N!v;C$BWv$J
zd%yhr#e#WO|M?}%9?V<V@UQA#Tk7sl{(m0Sxcz(Bv?lk@=O3K=a;8hH_~;xzIe$ZA
zXeL)#^t9Nf7p~U5ai;f=&J(m>Hq+$8zt0LD-7MxR&sOpOs^z-LHC4yu=zmAk5aIn(
z-7dapwK&iqE~YSRv8u^L(^<=&*Ug(XYu>zD^Jk^pN`BI;5i&)=ujw`8+T4Gwr&gR;
z$Dz?ulk@LK%w1Jk4Y_;G5gk51=W5;8S+jZCr{}9XCmXl4#7Df*jY)Oh@g`~itUqsN
z&z?L}Up@8RX@e<$epqf#dM~>F&-9vvIpGb$-!>k&v-5L<cAj+JyNkTvzW4F$(%Unw
z;>8AyPm2#KXf{iqIi2_8#njk^oV%Rr^5c@v>T>Q<X`Q3^I+9;<UBMQa+V8dNwr}XL
zC^1=ERULWg{@48`AL7kw%T4N&S0?zGihiws`=l!Bo^|F$PM4C8npx%>`%1rU>n|%3
zoxWahJ>Mn2yVlkhZ1j3QxGp{_E2(ZeGnU=zxOo-(F}ZWw<O{bJx!+>*oSwI``Ohi6
z>r40V;mP^@Q&f9FSXzX~(Rqpg&xJjDmig+tMTFzUqkA_w%W~AtsQ4in)vfty>is!W
zm+iAnR`d<cH}8@!YL%aIi)C(OjP2f837UIz>iLbHrZ<&F$@1tPT>q|&J2NGvr8)T3
z|9jgX9??8~MqGH_KF4!KISmyh+ntw*Ju+Qc%caE4bz_m0^q;BBbFU<9H*I+Kbn_(R
z^icV=D=xQ8n)TuP#Jq(QO*}(4t-AdxVf)%8v-WfUVDAd`yS<5Z0cRnH#j1_LZGN+g
zWiH?1Grd0lYlO7k+Rv^YQEUCBf39a>W^nr5dH`F2jl3}uZ-H%YV2ZL_0(AKTVz~rJ
z(ha;^!pO|X&=hnV7-G$YsilIhk*R@#p^>qvg1M;yTDk4y?E@;eog#3R+lEF)NCh`&
zjvcXVqD((mKVLr;t*8bqj72S~K_bKy)n>-V1WM{D0r$Ow3uXS^dwXv6=c>7nRCeTj
z7i0UzTr9e*b;9hmM{+xsZDv3HP*3w+`x(mu0bSYb&)VL90`)lCrnoJ5;KIp0jl<E^
z-|?a||5ayx!M_zRim!)982@jQJ9pT!o%y*8*F`Ruz>vVjS8pV3lrfC#jV;}MC~>BH
z5v%HJkxg-$(=Tr7)6G}?$o0!NErgX<%0RSvsmj!gQ<P>cdXW~rec`TSPh@32evN<o
zxjS^3^P+|O{!O{@Vp`4Ly?p%{r9XbFY(G3-S#RUr+qd<9y01FwHr+etwl7a-?xhJ&
zxINC*i~7WUf3P9`Q)k%v;7^qTPFtRQV-qk^md<i5TXO2E8_%bppCRg7CoX+vWwm3?
zp@5I7dpOgB19toAGV_=3(|juMC3AA|kB7&4uTP)Hb^9&bo9CT7r)hM~no_@>#n@ym
zla~s!h0GpF?mo`vY*~ln=7qQ_)LW}9d9k%K`aokF`&kvuGCz)(u$`a%dM{6iTwcV+
zKF@Z_)xRqnb9FZyTbj(ScPobR@9%}&ou6$qUs)K}#7g|1>F$%PW&OE^%bNAmnw#g2
zY!CaOH9zXuMP0?aJa>6C_S@BM-6W86Ve;<(Z;f{{&ruY)H--D#HGQV_Q|>ppb1yya
z=o!`Vlx3kOr{<qM@;V8>e@I`cDw;oIt4n)*?XQOV2ELLX4_;2*G3iB-vFOAX7d?W~
zE>GE`W_;`C%O6j;?asO^m3a5?@LY>`VsFkgugpjZljwgKkupU@cu)U_2_d$g&s}pB
z?;Pc~DA?n^VSmbjU5kTQ)76~&fBdZ6GeuxWc4v>FV_M$fsnwNFKA9}`H%q<Qv_)#i
zp|6qCSo0?8&Pvz`T8<v^Mezc*ylbIgpa4tLc=N6Sa?Um2(ud_+P&Nf;S`$c12fD_|
z$V5Tc$kNO}!O+CiM8VwL2tC8P_<L(R`?^LL8sKPYnV56wBl0MC)lX^#WTg&holi*t
zgq=~6S&))no(B?xh=5n<pi6@VA@U%VNhJ_ANOx%gNCd(MD?^n83qfQ->T)wvARMqb
zh*z4InV(mZS^-|ThO`LCQo%q0wEzK$zycfJA|Oi(O9BN*Nl><rOsL4b-N9vUF#_4)
zXN>k*uT)Z4=9GLXC`gHawp+y1Np}~iKHR!EC$emMYFQ%pwJ6Pg>+O5iIAkYW=l$UP
zSo!LamRZY=*}MD~_<Paq@`M{wkLF)nrk4KV=p!8!k*+6cMbGEGueo1-Zl`#mwU3OG
z#?~8wLEqde^Hx5-`s&XfmnW{a-Iq5{oR@ql{=wHTvQ>RgUz)v~-!SFN(@PaXI?E2u
zRWJE?GE-BtR(*QggdbOmD^>euE$e&tuzRxk|4Y(MUwgYQZQNBkwLHXh!>`**s+jWX
zck2sA@v_*yH?!qhckJ3s-d9!<TshBjo6I&x*}QA7Jf`^M^N-q9mli&IfA+NYS9Yb<
z4Rc~=DL)q%c{9B`y64KVs`+nLgwLKbt?H^p#Z#^N#qNR1)lZYwhuh6c*mBZ+s+p=p
z*q!XnT3@%bIIR+zB3rjz=u4r@BmNnycTBcv|0Uok!n;7xq^Ig4$18U!t9G`XBFRtY
z9I)JBn8%p9C~$IuRf1LetjCjoUjMOK`^3YNW$Ql3nzPH<2uJUdb^WEc;e%Cd-RY{w
z!7G{$ZxHUU_j%c(>z5%=J}c5#xI04i^d{Zu9BZeXc`*O1@f5$?+XEZdD6L32tMEv#
zSX(ixWzs>r-|4T`U)`+VX?*THzhR#A(l5PU>T55zuodjIbnsYxS7F1O*K34k&1|qY
z^beGpudt>3z`Ne*aVsN5?q0vO{(s_c`MI&DL$6K0ePi~To}~|i<pqQ`uAJiYxI67b
zQw6V<;^}46Ii&Yq3sH&f_k7m+wQ9-l_(;X2Qm<xk3AGu#`6nl(aC4db9hW#gk#FuZ
zW``O`&bOPq!T6WFZS(Tm&ts?07uOec`~G&bq-XT)`&mD>mL@XY31Bpmvz@;~aPia2
z&kM7^e7O3!zWd$%+xd4ly=<NRmY+-KDc5S|sh%@hZ@$|e$?UyN^5NRHH(5N#w#_u3
zT{9)%O^Mx$S^NLzi2Su!|KIGqzU=Sod8zF;<c@8YNq);HERy)QufXy5q039=zBqLH
zJIk{srfJ;AdqNp@J~;GiZ+pe6cS-6=4_LUfF4yjf+nzD^Vur=!*1pYli~sm3dU)1M
zx-?O-hWQfXf2OU?k7k$&ZO&hi#ks0~Z&GWW+QthxX>Jk9jMY0AWZ8;;klFe7;ry)!
zEcdUSQPgeAeE3#{+nh@)TbkI!3S6)6eSGUe^^ek7e*^!O_xxV?aQOq(!WHk=lxaDu
zs${$uiLmz&ShaJu;N=%**#1Q^8l=xv3VExrWH-C`hLX0^5xMJs?7Jpwmc^N&QYP*+
zec|~E>y>W<Hy=?7WIW!tCPHqu@4VVSvjw}4{s{UfoWLN~<L`~7kTybIpp3VW#%N%f
zBMNF=BLfRA(8a3h#R{M$*NC>2kvX(&WoTrCt!?G%>!|JQ8)S~7pf<NeYFVK!NUZ`b
zJq0Z;1+63nuTDj6WEp`L3!{{gU=dgu>64n5UXr0;3c9I2826G$Mg|rp21Z6k9!Fm%
zm|H=7%^%VXKV%qx$TIzqWBwt|@<WzKtl)RwuWvt_Sif5de0Sjg?k>3Y$1x!W7Dh%E
zPv00rJp<?bf=Y17uAt$psbFYnX|CXyn_85aoS3KJn^=;OnwwaXnVguT5S*W!nOah*
zr{I{AqY#vto>5Y)5R_V+T2z*r0tzhW{M>?4&|S8^`6;PIc?=8;ECz-~wu}sdObl`i
z46IBHj124y#SHrxbr=i(Gd8?F#rL1dvhaBM@}C^b8TUW?zU~?Gj~U-Di+*RSyA^v;
zZfB0~W^3u+HQm3LIy-m&p8vh(drkNE`IqH?*Ze*$8tb?0Zn=EzvF^K9rLJ^epLIy?
z)`HUuwn!h`pA|S)es*Y&vx$^rw_}};oI$yJX|goLuI}|emaN}CpYi*oJIvo7{}d2i
z*4dLU=i_bAl_Z_czW8kS@<Z}}Cb4IA*Qv{;rnB|T{m$RFL3-79p^mPF^6OLC)w^e`
zk%t=f;QO1eFV-`j`ue^34fBuQ?_Q#rY#pVI0d<WWt<84bwbH+R*uK12xBU1nj;qHm
zoO~tqomcVdZ;{^u<|g_P+uEisUNL9=+?I9Wa+g+}U${&9{eD|36JNLNbot+{znfSa
zo4PymrG6N&@%?Ac`IGvcW6yW{J&YHBmN5UE^8JbEtVP{R78iHd$^X@2t1Ip<E?U$*
zOa7<k?*h>oi@O&uDe10}|Es}PQ_@{jytsRYJYV_zpZ4>AFPZf{Zz|jG#A)nu3tay5
zaIWXN#l3to56`XHJiOSlA<@gi31mai0p#E&lNl&O!t<d4EEk#^V$Fqap4!g7zMg2=
zP}k5z&%gw>INZVzDKDB>Ah)3M^fS>iAI2(WBajGs<^vs0MnvZ01!X>%6G6Gp5H0t~
zJ@jJv&%*@Dgx$aUWLPGHa-o~RcQ5|${(>uhtOn;oHt&FVLp?(SYUM*;Pjk$S$dsAK
zz~IH;&%g}Hgwq&<{xkZ9hVuPqoTB%jarqDV<=;hLFn(vbwCXbR_ZvT1MQ7J9%rD3*
z%&VGFwrs_+<;&!LC;XWp+FsXIUnLc@IrY%{?ce2Q&8X|{sO@TPXqU4tiBC$AE^nK$
zaM7fBQx?ikT{dmmw53xPuYcA*ouhAR-}I?cyOKACXvF@Osj8dV-8Zvm!n8iQhfBAw
z-yl7EN^?O;YfX_aC}SNmU;sOZ@rU{4-mA>t`A&(p*R>XPNR`fQoIQ8;j42c3CQO;U
zdcuMU^QP^bxMbqOi3=wznzp5P@`^1So0sp}e@*&mPeg@(!f)p4MEQpN_NFSSu<cp<
zFr1r^lq_A=K6AmM2{Y#Ike|M4%h$tFZ|vrTSp-KU=gM7Z30RmUoluffQYT-URvXkN
z1#xuWvPp8sX3g8PNqXs|(t?Vnw3Y(-mV(Blwo(pQ4x2i4I@|Arsn86zn(Get>V6&`
zY?+JbQD2mfh&kwl2aK)=YQEAnG*!^GG&NK(G%__(Ft@<$ig<x?R&XS?oMjB!bpqaZ
zVQGw<n-akr6^gTS6H7AmGxO3i^D;{+(ef8)Xcx6|1BsyLF9O55u*waTzg%Drh2$?;
zh97c_KjfKyD1d4=xrbiN@jOgF<axwu{&~x=Jo&kZ^?Q`S_ay%BX@ZM>bPF-CF*5Rs
zO2j4=B0C=DcIwrA!I7AGu7Qc!kZ}oPJ0oK|BP81~Gt6O>?&kZ?<QceS?Sdat^BKR-
zJjwhc`}<kZnG>f?m@752er`o`M`uf;+;2I9S>LsKXRuChm|b4pP*W#2=ePN9*=MYi
z>)LwSr7P+yYb&R<&1{wbuHo}r!<)6XwV|z2s&;ziyvcpNlcvgjmwi_K+nlv-TFw0V
z(`HYXn^^T-w_j>y#n!xinH-hNdb=k{&znAX=Dga8t$p$l3nLapEa2e#&r<aGdgI0)
z+#4BhF8^h;ocYJq@5@AwM;U+nts(te$XM|=&u`9$zZt#@d{=(*o$bIDdH+3+6~1do
ze;0cE^*hgZPSfuUzXg6P8~tVrOOjucCi>>YlM8R9KV34^Qnz$5(e=FjokdUHGC@?!
z&&W+vTE*q*oA-AwJ$iZ8`Zvo9dA^cGKkb*W{T2pg9e*CqJzOui_e{s0bI2clv%t|h
zM5&f^jg6oclYxl^wu;Hc$qQUDq4(rbYbJB#@i!Ao<h%sg$K#{#3)^~=q@Si=te>cl
z)}uB84ZxvhD3Ay&L*eUD8ycH}>PXyeNRLjF$(aGd=@Q4wIXfLJ*USyMd-Sf4ZP&Jl
z6~<dLY#Ek+J(VH&=7-}%We+9K69*?UJY$%2_T4k3lWd0Uo)$_AIFek~DwlqcxN>Vz
zS=8^&g~7-B%Z|N!bZKGtwEp+T|DRXZ|NsAckHUl*3=Il1=IQI*2;T62veU+j_`GvT
zs?!@8)r3>7sTgqdN6zdx^Tt2M!#CmDlDdjnrF$f28GnAc_w-9;$&#zTKl<#;Vx7Rz
z)Wm#$-kG~|W={@YvF7T^rOQ`sU9{#<@1i?<_N-l0v(rU)twwOik<?pRoqK#v%VxQ_
zPZ1634BH+#B|cbLE9%XKjxH6c&RuaqKlzpgXs%y-+3SkZ#!W$s!WbAP?8*J@SQuG3
z)s34$(m`qhZw?z*gVO`)1ri#JK^D#jj1;&7n7AL5G^st5k4t}a%H=hahMuNpJVWbu
zqt5FO&ScBQ+9>v9Cvmm9Ee<$h^07ik%>5qcjY)Y`-?Jy&6MuMd>5>l<tF{DPTM%}w
zE!6p+-}3A2H)K^j52<u+e-bV~>14p-i5n6FW}kkw=--cCzh}o(j>uLXIUr-fV5E6Q
z`{9P`j(c0qS9eUf?-3CYDW^7B+~P^W?8Xd(s?G_vE;pDmE<8JW-XTopFb@a!+4u+H
zvvStPAFR3@9Vn2h#bP*#W5>nkCA{}N1<Qnrl4R42^D?uX?Ius##AGIaPHf8!j!m+r
z6D3|Y%Cy`SeNs^ooXx-Yaph;r&*sOIzyIZO-|I5NNU&;3tZKkRm&J^8*`L?nI_UFp
z@r>SpgKwl97f;kK-gHi(@At)GGxM|<rauYya#vlLf3I!rwmAn&)6Abavg=#5>G32x
zZ&*Efc8<!e3rd$H`kZ8!oOV<!Q7dls=Sus>`h(3n^UL8WvtJb~^tl!z6`pqe-2Y7}
z6(57_A3FS&xBhi}-|=G!-yhi+UyN9)(sa(%TSNR~(W(3%gPVdMKAH4;rd?{CUedKs
z*kJY<y>$CD^OXDdzE}TPR{TpY>e)_>-Hh=)ZtUk5Ha<M}yX-`|nt^a$?!gIvtL{E5
z+9CFu*Zqy$D=n|sjlcIOH?p4#xSkT^Zl750#Mtb=K6Bmb$4A!0XIvEAmR1{7m{~bl
z$nIKE^_OP~a|QRd-IJBrUm{soVYYtn-D`c(77iZ{Ejzfqq2#LQhhMh0ezdr6KlfH>
zQp@|EZ40h0bBZcdUe~;%W_R9=+djEzE0@ZhOrHOl_xKv$s~46FKT0p*n(LUq<oe&z
zFVEi|KP_rnv?Ou)1zE*6aau1Q@;{E<`=Ma|p96`KyM5Fhzn|)xzp7>FrhVy(N+o$&
zf)AIjZ_({;Nt=0#vFh*qgB%tgo9g~F9se++^pK?Ejqm@NYBU$TdtmmeZ}aarTW-%6
z`NXzsS7N&ULhgl2!-7kVm+(qC?frP-#MZ|bi(Wd$PLs)8f80l^%=OZBZ)+hZdCs!)
zi~smq)t)Qg5bDb!eKDKweSx^h)t}O#T~;SMSI^pbd;0r6mWc;fYRq*jQz>lmS7%60
zNt$-9s>+t>(rWdWy_0R&(t=vN_AFe-m-W%iU1{Ti7e7vJjD53e)z_ug^GuK5o*2C>
z`dE_3(z~aYZF{4lw&g^}(&shyBDtTguYU4Xy-Q6y?S;PE%Pk)t9+PX9U->qChu2=u
z<u;<Sj{|JV>bE^li%z}%sC;_bs-5OhwhrQL2ib#dcFo~__B6=As-!z%#=jGyW&2~9
zd^*EtPxLC|wvWD$@W`jS!@x>gBSk;*tJR7WmrsvZdsa0czwQ-r)*@|-Lbku$RgZ^N
z!OsKE+<VBg;AQE=ow0)3`WIQT=16Ykd3kU1gjqHdK0VnhSDy8%o{5K{`dx<-wzeJ7
zgUsdzX2`?LW}v&8V68h{BLf^ACtYJxXboj(X@ISUa&`laHHUbjO%9<|P{ugBPTBgo
z`g!`5`cB{({$%|E{Z#!l@C<*VekSHDzY%Dh7qy-Oi4apy85x25a`@`0HDT2O!sT-J
zRaIQhtDC>P8hht#sO{Pxi_YDwy8b%UV#^N(k(ws{3kel$P8^k!Sw6*hI4N*ePGp&&
z!NS<d))nU7+SR{0H2eHK+t;t3y|XIK+jH;Fqn!Lbtv6m<{C!+yKKH)7_3q8Tf7k50
zfByOJpSnCpk2@OhoR8VAYMT3Z*^@20J0<gd?JAVJoGz+ZSlR1!U0h_}ef(X1PraS8
zo>l!Z?U+kbMDG9f@nwHmeBj*81x4>RE_pf8MMJLbv9ZzjWosg)9$PK)xtqV3^^I!g
z`pv=D*40klyKc^5eY=Q&gZF|I9u%G8X1U@kY29AFVTQ86`h@k`+R6E||16rdw>S9g
zLvG9VWh<6^Jf)q@B4bz0{a&Cwp3%|3SX8Tl&q-#7gx1o}nMoXNVh#aXEPwf$t{uMM
z#&OH1y(r^?9EaBuuVx_y{XHyd57Y~zZt2_-|2X?){^j{bMnVr*GMP?3@t<v+`@(XK
zPlVm;$~%{LH@k4ea5e1{_>*%?S?a{EDWPkwtuVeQrK&i|n!}uLUsA)-1hWL2zbc;(
zWl8_L^8NemdPh5NY4yhjpZIw^?_Q~%_fA3avH;s$nevHM*Hjah$meerveocNVpx$G
zdUyRb9o6)QDRw_QmWB!XX6?D?H^V1azWHAG!7#Q4-R@NHFg^9hg<V&j_~S);9yv-}
z$iKKq_hRN6x9*d9j(51)UE&r$%iQ?*5LZ2;m!Eq2B<~ZfC&kV0%Gt}l{PNg!?ZQog
zTlO1Yczp1$b8fP)$Lu*5yf|#*oA)XUO$%9Mv*>!FYK|KFywXWW*Pj1TYBo#%cfyOm
zixaA@bJS&PJmOw7{cU#0jyS*hUuFKil3Bvllsx}?aEee~^C|W%FW$ZIxyEQ3xWs))
znP>QQ!TT3x{`pt(NmOX*wMVYk@BJ3i+4FnpX4i|?78pu}Wa%XTzWpbrguVR3;>)uA
zniHy(h4<NADLfVM=IDRsKoJ&Akz@XLjMq4LD;hdXSvGM@s7U*NfK5ngx~}@=@OiO+
z&rjceEIE4p^f>u<8|H12I~?7lW1#*;LBz4Y-Gx0~JzT(bvVf#_^-1P~+ja*!a;V(T
z<v#T1_k(k_QWlc6y<Zz1W-8yBTjbQXK6QuP<?Ge&4BT_KU1YrSL|sHLW|g4#s)=2G
zYyV~}*sQ*3ee(V6t0_v$8HFbq*xD|umwtF?y^-03|Eq4N1bA+G#%Z!iMlVXaSfHZ1
z`?Rz}Us&`MQPZob)$Xn8`}mqm6QUTpKh6@8QmAiYtV(@g#A{RMmR#DIJ89ObsJN}}
zFL_ITH{HnllpN-LAm_8<bM9u=(_Eh0oG!YV?3VV8GcLP!wYXH|>nzbE$7YX%M^|s>
zSaI~qN~t4BDfug2H1BUccwTn0-2|ypA>D0(F`G6sh`yYAuP?3t_mgs=IeVXTFr72t
zSr<Eh!K~t^H;cj+?>w3178A7iQipE9<)>FddjiVJ`-G&nhOIZrGAO!eKL1j$m2)%S
z#M>!#>u=x7J?htN`(?woHVf&C0#<u@j7=n7P4PH)ppko`a%~*@HNyvT+4DXvyRu;F
z%MH1oZk_qNBIKUc1GBBOV|U#2HQBCYeyx06dBWeh4?C`&+EbIbVzGQ_q_jy|%o1Ub
z3J(1RnXljE*<aLtbNcq?^(xllr|)QlbYAgUwdly1+EouWOCJ6(Iop2EB+L6(E^po1
z;?|ndH>LMS^_s=8Gq&HiOmmAX@n3bg?3Aix`|@QgW^M=$HhFEi_RrxZH+I<lek&@?
z`kejlnq$Qb?1e8DOpcH6?|60k<Jl!M^Oh8B>DaRN+~wPMEN^s0?#@Z<KL1F4)*JP^
z;qj(h%luvZ3}Ww1(C=x>U3xT{+hbRT_&tSd9`PELLJ!WppK?b<?`EOGvXt)ouMXEf
zKg1yA{4Sk!+w%8M-aJV#f4#lx^TqgQxxyVE1bqYV%Wc^ab!6?)qenOC=zconH23U{
z9jB|e@$(ABY`vqfR7q#5%rfaKZhQY#r>wkp>}jW6*H!6Qv(S9&51Vz~&HFfS@tJq?
z;+_|NX=y&baEGzW?*HZQZZ_UA{V5Xv=J-SDY`xD*1C|!)RLmBWWr$r<za-vQF*4;+
zO3}o^?VH~>R$e)Dz^UiUq%bk{|0m?z|JJ{??Z0nhdhcR;AD^6`{#0GvI}OjL<>{Yt
zPQE?KdPPX5X-jqYx0X3)wN_rwuv`)3*iquE#eOf#@a~?67q>4EQ=e+WwWv>BWsX?(
z_M5%C^&<bgJMH7QAl#;d$!Z4o4FyRD$#mnQ&wQU&eYm*G>Hfq2w^(N`Jh<Yh{hi}R
z)l#$P*ggAEa6{Uq|7%G8jlhHJbPpJNectK%!tJW_>Xj!iWz3ZM*{!$!l>A@Tqn2O0
zXQa+u_Wj_U;~Ci(G_sF-zvc=38Z3P6-eaErr8hN=r-^;s;8^PEfA9ZNuM5{6n)$cg
zTiLD_`r%CMgc@U?&X31fX4pG+>vgGZ*pap9PD97sQn}9pg>^Q&tED@qO)^-1>fC4V
z4GkyqB*G1tcNL$C^{BkMJ7tc+Z4;#<ZP6W$!k6^QxwL<7Wwm_HE#EZ7V20hVjIG;`
zbiK{j-PSfS;rfla_v}(<CJX(aP%M|)VyQUcRkNeg)BAp}M1B|_e!O7IO64U#X7|)>
zn2=W{=qt8l@wG*IYxTpWH#k4>s^W6~lY8ra@{-95#S<sWYFhsNDv@9<TjZo}{7N(`
z=i<LVw~VH&=VnPt*G-*LzWn>X5BH<@FFzyxSM&56m023kxMnZevahG<h6CHnt+$%)
z?`cmHo^B()Yu$Id1JO12m(_hbz0&?6@7(?)LHpxYh&|X-Ua@lLiB+pb#jV?XlhZfc
zT_^Z-qWlkahmEthDYaWEvfIm7&Rlfz=8cSHv$7}uTOp!c%Q&4qSU%{@qc>^OLJCiP
zUmRNVTToSQONA9vNBBdbKhk;(7ynmhG(<*hOF#ad<<*y`i{$vq7W}kd@O$ah?<GA*
z!+C4Cu5d4(z{A7D!_Z}^!HuQmhvfhw&{-#-CLL)fseo>t1`nB|t}-wIt>rXTFgG?-
zurNSh6XY1+?5geT8xn#(Fkt{2EjPnGb5#I2bp(8@3Fwp$@L?ygLsY=$n`G;k>3boc
zrQ)a`rVkm)03CIbtDmA@t{<)+0y}~PcBqOExG4!A>nPMu($Cj-($CTNgB&HIU!h;6
zpR8X1Ibj4m7X?{x09t(jIReF5A3U+<ub-;#q7OO9BtRc@>Ives70{#`Xw5_n7wlXV
zP=nP~A93^vNEUkL3F2fF&^#U35Qx3S`WgDrBU0QD=fHs5yddq_u;Wl*1B&{=&@*V#
z_1*Qe&{w}2W6bt}MTlt^n;C(IjPOiDcyzXeWQPQYi|sQv=M*&Dv!}_tLf`Jy;#+*L
zB93->yT~p)s$?e--{7EN!_4S2!9zu5VnH(}BdfDQfWwnOmeQ-QJXj@7uVguP2dAI9
zk-Bm2zLGf`?_ReoTf1|M@mKfjvwjv{vwFU!cHiIH-!;{bX9P4nw9w=2=j-phvBN^C
z>i4&$ij&RP7Z~+$AKDqo)Tg$CVd2s4`_*SHno7=3Ie)G*p_yN$%6VsgxWMMa{KAiR
z{ODcV=^f9@87aT;jBe1<<(gbg;%+)zaZ*ydj4W)T*LnHhn=dT0cfW(;`FrsP<To{K
z*PML$DXZ&xw)XT?*5iKrPVo0leSSKW{fVZ%aA!c;b1|_Kp$9LX64|N6e)vP?=8w}i
zu-;qPWMC5`)45->NA%5+?;JuK{yJKy9WXR(^W0<T)o{_m%)MuCPx5+>jZc|!RQuKn
zCcHMtsTB}A>wSzRLgrfE`eRprG#m&naQe_NK`^_swq>q_xSrT8SI0$%7s(%CKl=Yu
z#IwLxh6*32h<M8RcFw-^(DM9cyQ}%H)~$RST>rt!&euXW^;YW3y8J`d_jcb`zj*xN
z=ZWi&luvwbU3dBKle+Rh;=eXue!Tp?+Vlxujb})5GP*RVJ#c#P$f5ed<(a9*$5;AZ
zxxH!Xrhf~19nWrlcJ7u<w#O;EefN)?Eql12!skHy9Rte=DOX=l?tA02ec}C(W0$9?
zm@PH(oRprK{5oZMf7txBDO&8h@=<K6(@tO0X1?+{DzQ3ob5LZ&iV!pLZQISww_gtW
zv4wM0h0p%=$M>r#wC{F|vzZkat91E^jGx7+D+^gBUMu?IuzStbYY(;<2yl1)H+I;S
zCGm{M`KQ4d*<;mhZSDJ>iyw5g`K-G3xK?i2D#zC$&!tVQgnMt*-O;cL$}*GG@U1OO
z?%w-w$JDm-|2+Ga#@*hkZK`Io$9&oT{oij%{JqV)#IN|%pP$DjZ{6Cvlaq5+jBImR
z!S@r@n$Fc_r?;=;w%+`ffBLU=_x@UL`uk^RTi>o-ZEu#a^adUGc<3d3#OBz-+r9_F
z=S=*gvejI3v4+0=_0S8Bw{xd?&768w+VrVl_BX@SWkJD)p-*f|7Crqf_+jzVg}&!M
z{ruF@FA(#D?^5Chv8$I(JpX4mgVX6%p}c`Zt>bn1?a{I!TTf1%-YgWTu*xx5U+3*j
z*Y)x{cCU54mR1~U{GZjz*6Bd-4!1*BYWYR~emQP^o%iYK5Vz8q-*y}fJ9j{<#ri^*
zMwX*i(gdBBYtyF9+!7Kwb=OxB6(@x&7cRB?${bbBT>rWBslldeaq0O>*1TDnGB2WK
z#ip}GpG86sm!+p{ko+a%osufoyMf=uwEfH)$7On&m$Le#U-R%hFy!bKe95EgW?I^E
z*3!HAyzE5F^-4zVmo`h@y_-{hc4gP>XJ)tN&U+<wS6|aE@?_ZQm{MN8<?D{+B!-;3
zU;2FR1dmGQ*4{%=^CnhJX{gIkOzhjSt^MuGzzu)w&o=IS6t&HLVS=cY)LGYJo030a
z7Y|=EGGIR|`Z~guUp~g$TktZ=ya(OR=Xsf``X=3avG?dM<w=)5DNUYr$%@Zv_dK4a
z19OYi6n83E2iJLBjZNJia;uVmd(R{17><LjpH9Z7?9=_HI(f?6BX_y?vD}eXtKNLu
z=;^98Yp(R|S-0=nIlrh~t6oMna_>K-tGMGw`n@H4?;Q&JpK{fydD{_>#ryy5@J!KI
zmvDN8(s9S|&36OCUA_5t@60m4XU~*gQT*gUsL-}OEQ}rvE!+aFi!Mx4*I-~#sNoTD
zx#-cj>f{EExQ9+N>_26^d3@0|gE2~?)#h+TRi59gx<k`19J&3N?fsjoZKl!5S3c${
z)$6|7a7;&Yokc=e&?>gci$BJM-mm=i^OZpVqZ%{q-BU{q5=5<|ZuXt4**1ey(0|d?
z-5*a2Kafz&i&g!a>ULRCYxUH%%O83dZr{7CJM(i!%IwRcYur4Q_x`x``~IEU?`xhk
zFXT4==hS%p&u)({o9iw6rroN$ar4Wz&3mtfEZ=@vTt?h_{fT4tH@DY3ez$hwZOJ(M
zkhu1W?e~9nZdX$%SE)SmKf14h{mF%w-|YE<l3(X5@;}*Hcz#*WHRpAnbA*p2KXre3
z?%eI1-ZzW?ZTXS2R%!c$lV^fwUOqGFhH{iy`=|fzVch3GH~qNyd-nFco8QtrKHYjO
z{#j!7*|?{RqD=Hc9T%Dv-`pO3P@2i^_ow{r-{ZR9ET}x#uydzo&EI2f9d;V(Uscyc
z`leoyu*%$^s1x;PQONB0DOyq+s`dR6KZM-LUE#NU>Z6+A)?F=*>+PpcSkR=d^yNr$
zQ0{W+upNK({NKnla>Z$v6c~HDHZ3&BEYg#*sdIEX`-rF6Zn9&qoNJC_c=Oe=HM8DX
zRjzxu>dgO_KdN6Zj=TTin%7h5tKn1jY{=T(Z50|&?=X9<e`IOBGRML17o8RU?fYi^
z#PX%#3)!}S?e`DNe|W*=PKQ0a-3M0A&Hgo}|8~Ba`|Gfpbh6RR9@mh%=3Q&AK7F%e
zirEjNe0wfm=Z{<d2ZwMS`r6O%|D9b$W5rJvp(96SeY%z_O3YPW9Hh7NYR}G9i@M^k
zIe7Q3IFwg*Yvse&f9rphBozPXI&q_8zC{b4v;O%+l{_Y|cOUoL@Za)y5-hc?V586c
zw3YS;B67EBsb39xaw>Qwe_Fa(PQ%MT8$Pkc-#9y&L0QRdnnKb)t$9;_d`?x^QFF8M
zovqZ_&68G_-;=5?sD5#7_gmIiRm*f2fBWuM+<G%*li2H(Z>^KUFHYXeJyHMHbm4!y
z8ZVkYTtEAl{pTnD_x4umsd$&2Fui5ex$)10g+G=DUjB1dfg?Yy{N&|NQ(k&4e<Wm|
z`pE6L`$xMx>w~U`AJ<=w)pPKjQ^{c7esjt4tE&sOH=L_0z3@6D^Ze&hx#ZWg<+QS1
zuhv?0VbO_TK_({d7J-%;L5}qw{3^ORoOGiCUpKElc73PT_X59Y`4^ST<6cKT-~a3A
z%-_>k4*Bk#nPL=Q_Wl3A|Ns7{>auI3Z%bmFSZ{nN?9@zVql<M)`*JGT_X;Trzfhel
z=eWM)L6OO-<7&CvtPH<u_Qq}8xn{+&-9GWFw4a=m<yc&E&M>t|)AQv=&oA+(o;#~F
zTv%_UtnEAhiERAjxX3x_T6)u0|D7p&WOkRD<{@U6muk0XYR*`+V}^*#w9XT=`DO=o
z9N)<{CDGu;r9F$K3q}7=S-Ecc(U~3F7w$^;nsM~XPmS%Wm!_>ae)WZB@YRm!Q=7am
zaR<y(WL#d9vT#fHUY~zUROT7^I%H43{il&*<s-M9Ea@J1b@m*+vyQiiqnBq!kDAd2
zwP|}Js-HZme1Grh_6~OcEj=5A-A`X|^yO>3_-9MAXXj!r=}esiCmKG*+~+NPth!%H
z#6d^rVuM)4v$E4o4|wC(%xR3tu~j)FYV~wdjKiI|YfqngR{Z_Joh=rn#Yfa$r^_Us
z{7`p8kM$RKe)BKC`+u2t7r3R_^qq8lpZfDH*VAR^YWOBU+`Iey?{jl+J_+xe^!eMe
zEd_6Hq`g&NpAddWXkpYB3w6fVMw^(fTD7pGePCJ0)3clX{Q;jDhQeyX`Ys`Td0|3w
zD;;h+@9CJe=Od@2uT4tlgoO69-wgX*CDiM5**a%U?|+-KC3;579Fcd$ff2J${1#sA
z^|*mWVma4Q&9}Kbwzbv2*fmG!)Mdv_l10~zJS`UbZkzo+^sV`noaeIn1}lqZq^{Kc
zyRvJ7eb;iOp5?1-6ZA|r8_cU*d*-76W99mZKd0Tk#LTCd<RM^JaJfiUxj1o`Y~Kyh
zxk@IN1b46<y79|u&;C?(Ki3qN$x`mRi%r~Pc_ioUQ_RqPZZ6(-aQBCQ_x~3!{_A8T
z8P+=K`>e~-b5}AfnKXIL*>gAMo!Z_~A18Qd;zVIi_uC0KjUTZp|GRNDDBYFQ;^NCL
z?a~P@cWo5KpBOA_y7uv3-P^hEb{sHhcWC3aEa%&qKjTfCjqdudjrLy?xkRrV3NhoU
z5PVSgZrWq!v}^A-PyQlZn9MUjenNbJrNzW)v3$Q4zJK<Tz1dCE#UNn!pOri0mhH)O
zxU2JB;Z*@g^j-DLCk~zw8+)Ir2YP!SS}@7@m9kTJY~faRsVbWX8<wP8-ky3)BI$~o
z+jU!6ot<f=d-eFZ?`WkT$lW1o$r8Hcn(EJK#_3TqolEAbg}z+Yol;sC6<8A);W#ZS
ze_KlAj!mByeNvi|zK=KUwC2{68z)!3z1+0ws@r2BciG6JE$;-&()hNVKP-14=&{|@
zb(`5Q1%ECpkl#J|{sVzWca}eY$JI4C$(Ki`_=(2h(^|c~G2N=`g*~6KeV3X0pwGWq
z`PzvcD=sKI3Hyfb*i%@VIonf#^U6DgcF*a#>@0^i-BNq;$W!C)wq?g}`Yl=fCI7=+
z<9p9PPQA4F&&^GLr$yh1zhxXAuHY>&Z~Gl<0sT`Ehu5FFv2yOQlNaOC*rRy2lon_H
z`lAs3OlC#(d;1!T|8{|jLiS4@${d=ojO|)%*u@?dp89h(R&Vx~y%qbfc||bmS5<g%
z-%f3(1_`AoS6?olrL0ABe;%JWRoa}T-bhq8C81QMdgtO}|E7MQyL0;sHU}|&UMAk9
z)srO+Ri+6X%<#LDkQG&sqrK|tqZWbpsusJ{CiSn&^2>azcP0K^&eD)8M;~V>UwWSB
z+jrF6KlXs@%+i`)`zmG!tSVzGKXcMMpi=YAq-TmU?P}X@eu#a<^S(4X>|E#F3HQHP
z%3s>D{B*?Hbw*OFl`SP>Ix1EL6~uV2-MMG$jDEWm|D7iqfBo9Kulx3{OQ!=~ER=1P
z4_j?&|0`76Sts%B-Fx?C?8|uTB0ttmndyH*+cY9}@B5qgfA8KjdGXhp>K9Vp2JSY`
z&d&VWzL@d;Tc@ALj(>b=nH9d#wCjOt({hWlZJXcP#y1=EbzXR_e1YlegQ>v}o(f!B
z$;K`C>_7kMFJ>#xu3IrJNb}f=3(aQY3~H8_a}U3Lp<HB^n|tZb8r?WIwcWM;p=rlc
zPM+TUH@#eL$vulzQxa9DR>)ruX}0bX6y+D0<o&iQ=;RB<qd~k&nSEv$tL#6MR^-0l
zCVQ^ov{wc(JWafAn|Jl~ZSwJ(-XUC~p|0J*lFEMRp1#4gl)2BYd%o9@zSDPRVs1xQ
z-m#-6j>MElOnu1u^~NF5=#5)ho{G+E+w#XbOL($;&8#<OPggzWk}gzCUwQm3YsQtF
z-`w(C>nv_XYRBz4xoi4OhUZ4VvsP-IT9f@)@xa>tANxKew(YSwctd=DqW7k+p`0;E
zS)cN1_vxK)c<?)1Ub~dl_2kw$TNka`mErH%R~azZVfULe-JCh~w^DBLJv;t=D*s2>
zBEABqqABkW?4I}jf8|x<8{xMfZvQ6#Ciz@P^e=^gD;Z1Uw`>aBdc0?DO!3;u35vU#
zY;2n}u5LBGKe;nn?IG*MZBu@AJ$u9_9G_wo`Tf(fPe#9HeY!q5uzSL?**fPG7hm`P
z_-+4&Cz;289{PK?hD|5EetFmNTl!_6Pu_0YIFFkr_xGnCbNOaWxu4(6dw}oMKiva5
zSwRQ=KcysgZnhKOQND1!Y?_*2_Dhe=W*=rfR*aWDm-E!&<B#|SjTbM^^SL3h$2!Ye
z>2>?}Rp;ueUmcpiKh_}m)Fahyd!GH}J<GEm<d?aw=h*$rX35$G3A2+oD7sFcJ>%$d
z$w^JmiZ_eJ)fTLg3^{Of-;tRbcS4k}6o1{es&=oP#f&r2j>r7fmH%6E9%IO=4tm;k
zcWT{k{#|eCDx2=MwK~_lKM*1kupuR_?iu^cV;Oz#yE)e0IV5;gBz}?N{$2JzEB(VS
z?@MEucvyU880-0e85g^<Yx~#5?W+3tW7XBa&-(4zlizk3UtjoaR=Wv%*haHk1_yL%
zo$jeAFWcj7zADiEpH#-=^85J{=H6a=-t&~xeAPeGKW6b}eeyaitq|`Zxc$iaw@+Tr
z$v+;ce>rT;wh|X>uHB)#*OjG<?%ANUwd0{22jipy(S;M{#JC7bDLipfh!NSKu*juw
zt=A>1+?a_s`?hQj-4%5^cBbBD^>;7Ny*tS&<aYa=&p!dbbCvq%f7_g&9iW+%l&oJH
zd1lqI7ln6wS8tyY*#0B@tK9FW8x}w3*j8q-f3JAYs~C}9B_;#u!im4$2;X4Mdd2@;
z>de_|8+$iYJYKfs`hj^<ZTzj?1<pCvC(1Z&;o0+VwO4THNIMr^U)Q&A$;K1sUI(dn
zmDd&g<=_7E|0;*2FMO>YUO1|K{oH){zn6D1SC^@(zfZls>>}6M$j;tMgSzTft2YJb
zrS|sb-ufQ8aA)bWRlz>pJ2zg|dF!{rBV?KSM&6^DYdz1rGEa`LU#_~?^VFx0=e4@D
zxi_(9S{2q>c35+459L^teosyM+9b*2@xN22e=BVePHp$eo~e6fqtObxW79&MV=bc>
z21{LGS{t?8mi2<uAHlswWiR&Z+qeAq0kh~=4=s#acNkb%ew#aW-m1!5@51&~I5Ez?
z$XZo(|AKVBtj}~W#;V_vJ9K^d3cjolvMO&pvgE+Y4DPQ#&fPp6Ub5&ub4<yN=qr5R
zS6*dYu93f7P2PRcmE+NKT?%CM8vEI&u}+!SEn5-TaHj7^^v0e?{<}pKuQ5&b2nkRS
zn#r{$Z1PDjGy9cuFIeuZO5yr@sP<=%cFMa?rB`C6U%d1_Jh*7atm$k)#hVwjoYV|o
z?Hw_dZIwUAnn}}~JR5D&Ki_|-5OuHpkUd+?^w+!7ZJxK@abnu3@TiIHf~S<On@wJR
z!}%UAgF2Bq+5Kl+jqlCM`(8Zf?e9xR7>;ol-0qxw<*xOT_Ut{;v(>+`{(HT7#m}@K
zlYg$Pvf46bM}pOZ_ve}2l2)#l{P^vJw)~>jcjqUG|CrqIILfbFvui=m$uFy=%RaQU
z?(4hv{aAp<H?J+d$G7|P#>tqxesY^p@2O|{Z9BvF7yRWa`y&!u)}F50{$>Nm98JNO
z#xu^mxztosrsu}*_Oo7b%C44ojlP<nD^Gk>-tmP0zx)Xo)hY77?E3aTa}hHVbDHAH
zlX%7c#3f0gtz7o)Kl|g{95r5CG}jP%;A}Cg@3!T~5BcW#|9*ZuemlPNmZbD?w}g$d
zYYY3s|E!Vl5lX)4WbgXC!u16I1^fTE{aW=(|NV%p*YM5ycGSA;T!ZjT&l?}t#b3I&
z*MA<DRq_4Y`$r#4cq-TT@0Y8{mzS+|n<pNf*~$1VBbnjHinSaUcMByaJ=%8v*Q<lN
z&+m3V^xe-|{MKRh+>F<@{|tnLegFJAW}YE<B7Cbzq{QTfI}Zoc<^A1v|76*b%{9*@
z^&b^Zkbg4y#zsYkPrDi>axUAmwSP~p`_pea*7Z`cYKv7bie(--?p(a(wv@fVmhUC@
zznrGeUCvlEHR|45)5(78r?1gm8^n-YWHiO7VzG+bjx@J_3#L4^-y*v^dYgN}6OUus
z>}BRPYHYv0XGwk9llINEfBM?|u&?G!3*UAfI<=tGHooVN@a1D?9_N*+#Qr&Vpiq5J
zAJ42Cy1K8KpJn`gK4trvR#$~*ru%2zIllFZ_k6D7?|t}uUoJG%b&k|vx1PGY&ufNn
z!IejsV~^`>TKeL?ZOO7z9AAAFyqYwzHmdY8=d$a08s}@6=e=V*@yEpfan&o;^nX7d
zJkZRx?^q$}DqQ9_Tig7`*KDEMaEA|x|Lh_(&m0t<(X6)PTBZ6kk2T#+Hh(6}zUOf*
zblFuNfAbB3rfwq7T@IG{ZC<T(W9pNA_j3C_FYGyL<2B7+&-`%MHMh6Nr|<MywQTPj
zr=JNg+&A57GkK<A_)7H1y=4gj!7gv!#+A&>Ui>BZNhar%bARt~?7m@Wb98EksVeiC
zhGqBGrR#nVwd(D>aqDsQ@4^}1B3A4P^!Lf%zwG9cuZ3*O4^MrkmS)(iv8Bt};bq$0
z?>X1hZX7(e_J+;b-0zYu=j%V!d@*oX$XX%#&$92?vLE|h6Yt#;FiP3)(!Kmc(z+E1
z)8-!jlfNXu&hZh?-QS&?{<AHgF1vDCXzI@Lo@-voq1hs<s_uPyBUcifAz63ms$47A
zQU}F8P2uJ_6$=-+NUpM~`&8TLx=j4}snp8$b4zZ>@h^TZy=C9Tr#I$gOxWPWROKYi
ztL5AMz=v@P)1M2wO;mqQUskr{*~8g4j_K+IT|344Qtbv;Ot)sRtceNdy3fxx%<J;C
zdGz9<>i6`pmZ%JFnG17R(!YMcy4Pp!!gakV3b&gqQ`eu0Of|iuFSO<<XJY3Di76c4
zwN-se154}5W`7d7z0PG$RH>83y#uG)*xid8p4_>*O0aFg!rj4ZR;7I8mb!6W*Wsd#
z_uGUTaf|d!tF@b2eu)W&lyuwtZ&@gvm@jpc>(s$|v(Kjzqx5fzNgWJMytiO&K}EiL
z#{b8Bxl+pN#gnf`InUx237DaH;NqSs%g!ir-k7`6B0%{-bfslL$8_xm>l-@UIXl0f
zFt~YS)vE`ps~>2`$>+SvX7jC8US;NgEcWNB#X0-9*jI|mx4DIw><D1K7weyRlT*%M
z-`D#e41O~`cdD+~VO%ru^p+=}<xMxAXM13q<RW@s2<c1LjSUoZElo`o3=J(z70k`i
zk1KKXa}UsV_6?52wz3JabRD#v6tR^SHdzB+x}I8Cnpu{ZlbV+dIpIDPJj(={OG*Nr
zvk#sI(uC~ng`Qzz4B8}uvbqT@Ld-0VIp|8%V0??4N+#uc2p7s6f1h`5ch=7k?VVTu
zziSQ3ba4v!c1UR9AtU9<UO8G-=eDZf&U<$1wzH}E-`y);mdwt~dsXuy(NU2{agj#H
zJ(mE1y_y;w9rup@zZSY}>R#<1ADi!ge$H(#b6UYb=J@q#;Zx;pE7t5-wCdTHc_oWn
z?(}prh)X)9q&_;v^I=`kwFL?;ZW|AN*jyFtrcxQ(ckYQotl6s*y=wQLB+gu^`*W3B
zU;d^Kb0V`ZO3wOW_HIt-?TbsE_neJ6**8~oS=sE!)tQfPt`)s~W74HdcXM_sUcG%M
zC1v%cyDKM#EJ)AxIUCit{cXbOuT|eFstz5Jd#*EQXLI(?-iSn_Ez!a0H?)Ge)6J4*
z1nZs7y*fvAS>buxJKYcGO<8^X$_+^!V^x94iH>ii<rKO)qGoLMS#!Jp?ktg)uPut~
zrY)S^5q|E*JX4?B8n=7+`BoltKYr+OpJTZFW0?&-9!G?<DyGT5;OFzZ&}@4-*Fo!!
zl-toy*>?F?mTcmTZJJ*=F)?%Zl0ORa+jcK>Pc4pl^NME|vmBeK%tS7})3I{9cTX<+
zeP%nO)}KqNZ>N+`4!1e{XNuM}`JLAer|6#kwryLVYCz_#59%i;zrL^5o3zwOr19bk
zQLZ!nZ+s4NRoXE*`xyQHeeZwhglG4s+HX?*zh*^WXRo15>Apz|-5)Lbq%6~Ywqa*P
z&6jokQg5Z39Ic)-m2uvV3%|y#Vx8HtD~$QYhL<gF`cGf%<$1fs_JTFTz8%lA*3Z)1
z&%EpFmMb1o35T6|FW6PQ>|D{rD8aSs*RGki%(~?=-!<MFd^wsK;!@Y7_}QkQcTRtp
ze?Uji;pN_6;<uPgUokJ%(Yd9F@7@k${zsp?|0dUJXS`hMa7tp!o)^7=C;apd9Gztm
zvBJI}bonOhg%i}0=T*Pk-tHgt&wGQrv$yLKzImUx6(Xh^*zEA|Tp}hHw0_B6zk-KH
z487mRCm!P9sr$R<%P#&D-N(^f87J+3u2uW0ZpkUB<-KaEqQt|>4ABGUW0x?jy{OUC
z;xH{$YiGVu@F{7fgDG2+LX*D!HtpQt^wGP4kzu-AVK%lhhv@Ax1oonVmimJy*3q_v
z!Z)K?8e>^e>F65(DtCg+aBK;+Kwe9Ux+N4mcMh7J22C}WfG-vS&8?%AF`$hysAUXD
z1XjjC_k~&*n&aIj58FD!<LC=_FlgtD7TV4<(3Z4v(3Z57pe<?E0^jZVzdH-A{kaId
zC5?r;8$-=7_M<T}8nQ4l2(d7*LAIj>FdSzLWn9PP|DSQes?~h|nUZCSx;OopzX`Nc
zbLm6o@4tWYi>_?%&Xx1_RP9cePGMhqwtM+;`9HnvS>1IiatSGH{fBOLAC^9Rv%CF}
z{H6qU73e-qkU>wsKmX3~WE11%?+o9keqjEw?z_Ke8e3;=qi0P6M{A1}Xs4z>+loaO
zkFHp>cG;8Dt5$NXT)Ac6C8_U%zge&RmijGfXr>#nt##Ux6?4}wtXmx~w{OvjjTfZ9
z9JaM`iE(oEmjB)OJD0Vwv8yXb>W4cU#QkOKPkm?qF2CkG<Cg<#7+-z;UjLn$`TMT#
z4@4gv2~z#d<QeT$pfd4jocyN#*-Mv6tu0=ZRghbisPUaC_`C3Tjd!o!T?xMNn|r0)
zt)-_=-<7(pdmOa=#wgS>VNLz~rOW27TU9!@pkHqPu4mm-r1zaJwg}15R&SN>sx0Vi
zl5Xs3=&F&bp4L4_4&s{bP2UAK{fL;)_=Djd^N$nXEkrl{=KSHuzNmXrQDtXGeUsep
z_kUtpQ@)?JX3y%bH<!yxVe6UyvTwWe_Lm)9^W`_?v72{KUn75;-QtIu=<ol(m$O3*
zE?fVDWA%6bXVd31eiz^LeZhO??{+`-i#DxU*S=PI;o<Ier{w2MJ-KCp)QrZy_KvRZ
z_6E7y^oUw7>8Q{tbK>Ot8{2!^rE9wzs^xzlV6W<~pF5?mfAS=`)l0Uoy(#^jzx%gV
zc1lNZR+4;bPHc68w42+;qs8)jdM0j~F14&|aZXcWTcrLY<L^S>WxsR0`7ZdKP5<+6
zQLo6df^7I2o>|}Xk@viA;=0GZdJ+%My*XI-yc(0gxyXzQenyC{5olF2&a-`t4GdxH
zx6MoxEKSVN&I)n#bq1~9cEWvDh@m0!rAVl!`+(NzIO;=|<K*f4f|uL)ffv~L>!)Rc
zm(YODYRk}vtmRHeD~Ze%&`$9%28qB*B7A#}j4X@{@s>{>om0ZHLqwiS&bygfen2B`
zn&aJrl1UCB0fC;ExAbyxL@@>jvXnTA-E2_WKK1q@N0Ebf=iYR6aAA3(biy~{-Ki!w
z&%Q3TxJhA;GyS7l<xG2Z+cWMT%&&f-b8LpmS<AQmKMg<6eP2EQdG-9~wQR?8TqOD)
zf4k>+&v75)yM2y!iKlJX#@keIJ)T=oH?L#)(LK$)_W7%nclGr6ncd;8=lpT5q2uL-
z`n2VjuM}@Kkd~RwmeUor@5<%N$IUe(7vB?=p8jgjh4P7?Kb7CFJ$}>Lap}FS!82dT
zEb-|LR@De@oo;(>_T;j6K})lySyjKk`B*0B?#Anu5nIET`h_3ebL8RdDHG;QTNPx@
zu6lIEl}?GWf>R-9q@%l8JExd!TvVasxJGR0;~kvd2R5?s%<fNIC$TN0<>!rr*RBx?
zZMh=Jvt1)J`p$}GB(a3Gcz@LRGxNoU7ttTvlkTbAc{cAzwAN&~Y4?;T<t)FIcH`bQ
z?yaw9Zp!ugD*Zz`Rrp8a1cBe2f!{VvG(9}yC%=Mq>a4Fa1{@7H^BL8uFTOjm^^0`X
z%6oQm_f0kYeOO|Rx}W%_LY`eu*DKWRIk8(fBX^$5`t+|>mPM0K>G*fr-+xtcC1URU
zSnu?ws_Ad195-1u<CgU6UG}#MnL97=JP~Ssld;{jYj?((`5Wd7te#}Zc#6q*|3a?!
za`wv4gpcn%@oNrqj@Z-^mGI&jj&q*ApY*r#)}5;%yPQsyevzKF@?3vpu643nN!%OG
za}kFM&#=x=Ys`8Xy2atq!U<B=`_igcu1gHNeQbuf@C#0P|0WSr?|@|?D`pyLU3ubu
z#$rdKu)Xx1BM;2<ly#Lkf<NqIX*rxUgKxK@q%NCKZnBOYmu7~pvWh(ucgOjCr@lxh
z+&a{CU3aSTp99x^cvRi}Hubkz&^KYTeP?y=&)xGu=)e99&1cn#e4TuszfRgUN5-tz
zDT_5>+UiRtd+j{Ev%kN(q2iUx`iJwj=hvDeS-T}S&$^IO$i_Q4<4Un<(Y-T*0qK=m
zCoRHe)z4X_WmmbTp;1iEbBE`Fpv5l@Z~K<oCvH_c)?>h^oaUzK62-UrT;iMfGnKAi
zh3cP7lF;kl?>p_;i=8E0ng8-NLRseL|MV(a&~kZtaQcnptvvP9S3KOorkrb&n;^Zy
zYIDeHuC!#0RE_MOG?7x5)YiE0lO|b~wX^PQI&tfxEWg~dFFoG7KS*zA`QE1b=%ZeR
z%OSZZT%RXOWePNlE#kl6SKyZK$d<y$yKcb}U9%TbKdtAtRbM>wZsDEt@+a~o{ujLy
zt6lp$?XKvnV{ez-FEf;7WL<sj<lnwE0lzNWO{~jQbn<pNt@5^V8H@3r`z+o*o1+fo
ziJoE6pK$8ZPtEvA)i*lwU)E)YYF6(un|(ITtmsW=l;sg&<!pP`?xu-<Cr-7#Wpv(T
zd&qZ_)UXWRl0;|jaId?$!Ryk>1dTpN>1tWE#5{dx;9UH>|Jl2FQdZp4Cd;+_-jq{%
z<J`95rtM)<Vht|o$Equ=eD-{1!sP{5OF5V|WmwrG#oj!N^?ac`A%2~UBai4t!=9(o
z#({OK7H#@7W$haC?G*|sElsY;^{i~q^eUTTY7Yq;e=};$n9#zs=&euvV+Gc4I<uZF
zPuRZXh{459LCcR*;?F#t%r5zxv*wWJ-0MgE-ygC*z*xf)+tgaFZu-0AW&4x$KWrVg
zwa&g^mG7buZSuX7U8gnPq%k+}X8Rk*-ni*={n?l0oab3AaJVV@{&5`(rki04ug*)@
z_dM;{(aCq#g!XZ@9d4O8>8QQwWXJZKer@&Noa;2EOyDhPYZrUB>_XE|?TfQB&MEUp
zRIL495^KD<x1qs_ldIvmijmN)H!pNoYo?q(w8i@Go2S40mMy;+bIGUnlIZ-1<h6Ep
z6XWB=S?0CI&-@^^u<YISBs(dgle2`r`4r!Ke^}pO8UMDhU%@9%pJqMl@~K{@ZF{2Y
z`_Emce9Y{<r|;MAzd27%W`Cno{;R}yuFux=E}Z;&rCs*z(EFjcJR0XRp6z=qQT>lw
zB$26qe{EjVm3NW4{(l^JvK`Ox{kEO(*O<LaaYoF^dp7m+_FCGUS=Zl_a(#WugujkO
z`S)F8Wm)x_zrUYxHU0Z^W8bG&+aAwZs~2Cc;lFO(g)7&?=UBzgzACmceqrxz$LU#9
zuHF+Vy7_5dd`W1Dx7K8l>D#Si_w7%J4!6;jKE7$I-OI*L8xEQ-VA%gV{GG|uxcK{C
z<~eoqOP2>JMd;1H893!~pr*d2MP!5z|3U$wH%rbcBsM1{J55lYwQKGA_peH~^;Aw}
zz5msB!ej41H_m?*$CTX_8N52v73b!?OPn2&xkXOSyZ(aHP4j8o*8(zjWW88mwf@By
z-fKq!1RLxncHE1ayKk1;*8dyzG73vig(g1g=j&^DzUKFX&Se}*l{_o|gbDqO=-+3w
zvQP2#v1g3V{8vi?my4@K3n)tKKFpu=JSlo=U}0fkU~b`F+hx~^!_r;*@@Aef<`Ath
zeP&d-fUD-jv0IN0t=bfpy86?aOW$rZe&SjCXF}WAWuh$$Un-VQG1~g7)M-MhVBoE$
zPdRLR**8A0(6WpxTk}FKRc*`3EVEXxdkGJMBv}KquRIeo&Jd1Ld8l0X<O(;FNxkCi
zTW8sXuimrgEH}EN*Vf__)N2~KK8)+s^#10_IS=;C{IlNtdqKjAt!l|v{qx_|N9d~_
zJG3j-#`&;v(2L`er+c(cX<HZ>%$xX^(|~DhW$s?ZN5AJcTz{~}*8YF-hPrJF*Nbj4
zwa{suR{QgE&>!(bZzk?7NfWf_`000WmO{K)*FDGmUrJnyFZLvw|1kaY?4gFw@<2l_
zm5Dv9Zyr{DOLEn|{4d{Vwb_!D8a(DHyVJZ6ZETX=u|0AIOJt*fi~J-{1w~iy&C?#H
zS$?k0`#E*x(Pw4n?>?I*|9SD-EMxaJqh~()lV+(NQSds#_0j*!;$On7MQZLFjD@{^
z71zng-FrUgdF}n@wYG|NLM={TciFY+H?7L<3hCIMcyrm(M>&j|?n;ZM-+CbCAL}BT
z5&7=nj&*ufCKgZMFz2UlE?^2vdy-<d;-Qb+<tJ@(+&}WQKYbz`IVJB+<!22C_WHbv
zHxu(K>Z8g$*EUY9o&RU{+u3KNzSn!!zj~<}wCkeX)wcEP7gQ`dd?rs(bZPMWT8)3~
zXE$yAn#y%HVC#MRBkarde-|5V+4-DzOO8yZX3Zb@y^AikAI}w55a{zO5&B!|zdloi
zsZEG!;h)MY9(+Q31vo!NuRFu%`0<(c7ag`!A#1<H_8EVEV3_kZeVPV;&g$Hahh{O|
zid|Wp<*4b`SkZqi`r+E-rd<s$lbzSRIo*-@@gA$|t;CFwFufkrOR;IjISio}QW7?F
ztZMu&zcXjU?BzT6<;|X}Id4W&+y{}R4pU6RY}ZJqaQ!)YZt}Z`PbXF;dmm}K&RTLy
z`<H8wfclXImpX#{!mQ`C=&e+J)42NN$!RwZrT%HT_4}s9|HMC6nQYhYbDFEYPHR8M
z;lHzc?;LV3<6P8uqI*V%t<uzTOWAb>FI`vf>$%EYJFj=QbJfMi+ieu0m+zdZxcO9H
zYKDW2vd5b3{hM?&)Fn1mwP;S+rzZN^`tAkZs@rdCtS=fp6IuS(`9bv4<gnhB19x9l
zSct0{OxYB=z$y1}Ps@VbNx7RMeAcvj9?6Ypn%9}m${9T;S(o+aPqTIN0?!B5=xy25
zHBF<-t}(Q8g)-NsER!{CQ|@dibPW`++9IaDuGn%`?SbbR?@JA}R}{0B=k4sue-&YS
zxp8i;M*s8&ul2f~onPm@ox9Lulk$s6UK3LSc1@mq?7vt7L#2gLIv3^v(8eTe7ezZy
z6!ky@&|U%X*ao)qM2!`6jX-CD7#dq*8{lyD_SJUwb&4=F!ZE~QXn?$V0JY2EsUNBj
z9_Ik{J-qZGn*u=F10Wj%%Joz9eUP^XK<+>V?J$kdFGwu{-9G9I?x%pZ1%R)X)vwa8
zfNl>+)_2zT*H26?ElJfcfb0jTN-fIQj|6vR0ziEl@CttLK&~J7YFEe>0mue`Kz$E=
z(9jE54S0ALe8sDqeg^ECSMc)wV10M}^cXJ4C9i0wSc9*FMjf3Yc7Lmx5ojzL?+|cK
zXl95=xYXK3;bo%U3#C>?sY<%Ap6TS0N_P=6JoJLYaK{mo*(WaP@N%6^x_pD_?B?8w
zvZB&0VhbmpxU?ehNb0e#M_8tJJ_<bku%)=^pyb>q+BI^<OWn@TocuF#{l4#a%isTg
zSF579MbTqY30DsXPo$`!x<*pvmp}b+>(4w)VR`OXBxfe0{9qZEC4YP7>kSuUXP5@+
zG^I{XSZw^n=Uv(NjG0axo<Tc`zCQbDSLgUrGAlIb(Y2hN;TLj#{%L4%{p66^q@}5+
z<|`*Sd9SIX<m9vUOHL_YemqHN(^b1q2d;$tymj4r)01rBO+q2Jg&*CQQ__f?xlz~J
zQMKQr-#=ifV9T{@jRlH(PVDq+-1e}~@RG<xudK_i8f#q?JvBHNO;E`3Jan;hMyB_f
zVwGv$odtq|nyO8eZ7mZn2+Uo=Jkw{}#Pk#HW=7I;&!!#>I_UdQ=V9hWb*1hb(KQi&
z0zU10vc@DJO1(Di_sX{&u~TA~-d(YGdF^`V70&Y)PktP_T=(3zbAjist5^D38Cn*7
zIxyvE@T`~?JuT3I{=xBq(JLNbKD12KXZf<{zWX0by{WqJwm;8md-WHkU(0mj%pUD)
z*jzqKKv8>-MK!mKkJzW5#U1r}4a;LhLc46|dpWR_U9~lh)p)KkdDY#CQ$6zy(@UfJ
zOyuqN|6DJhWH@hji|kB(X3^~*y8~K}T(D_5WAs_zlKJLq0TqmjlcsfjTC20~^X~a`
z`j5N}pWWZZvF;K}G5^E>j+0F1rb{n<_09D9){E|!`?WT6e=gZAp>ycnvy_RK*Qdk_
zHuf$P53DgY)OzsdgWstRo}KKHIxGvBniOZWeO;cY$l-Y8%C&d*a+hSAu2>S$zb)P9
zhOl?og8~`1#~<=Pa?R*mdS+V~^QviY*Sc<f^M9MZl<0w4g8%_JF6|FK6O4RkRxO!2
zHDkguk(bg}bvQO&=xQ!B=)InQfP14rw?yx<J$t5HyRv9+C|gQa>H%RDa|M}08T)qI
z->;p^$#igX4M!bQNA{9am%aZmJ1yB2TUE;$8?$=t3h8=|FQ!jhSLhp0dMq3*<iAxm
z$3RL_{hVBr`^hK?kprb1%iKOLSpOu~`^&Pq%NdIDgZ7?$`|;z+l^ZusyYep2yITKq
zSi+v;Uz9!xRJKNIKIl?kq%m*ZMF)AEHTNb)uhP78bWcge*Nq+OVXKy3{d#McTe7e7
z(fnvrvAjD@-<p~0t@)VN$>jwlbCf+)TH_k=+?G9&SH$sRo`yvFkE4uQs;kdUIlL<B
z)A#1Ke|)j4ZBF-Gzklbt%Ih6L8&=F)+vV2%-{<k7Ca0y7PM$n@A?@TnCPnS-$8Y^l
z<8on=m_H#Pw`$6vHC#uSw)jq4ogpGGy=KMh#CWsBY4ext`@bM~Q?R{qt$g-Tx&6FC
zOx8Qt@|eRuG3_`gHACwG&jhEV9jCXwz9y2fbk|((z($_mUH#>MK74PJ(&Ui4BO$T)
zpr2h!?8Xz-SMQWwYkKxg@AAogA;GIATHZ9yFgfY=dpfIbthmVPgpESaJGLD4SikJE
z#sB*brnYwv9GH^KpO_UdUMZfVz?8<ZKu#`5!DX{qo}013#@eUz&h@U@x@zHHjk~k2
ziAhhMCieLE7vqAqhH85o+qJ(0f6tm(KTAJ;r~7@*U0snnJQ15KYRl`gZ*M#{`RuK8
zzQ1SO+b6xk$*jp~>ZwcmK}k2yEb*yriVL0>9JgxvJ1ys3L00RTWRvcl<V@23uDSmC
zcL%N=0yF$=H&zulKAKjv*lVpjs}!4k<<6)j4eKlTC+}I5`*?--HOsy)Y1dxq9#om`
z_fWCt-e#GmlLqHM=?h%lXLjGygFT$_N5SuvbLXaAQLwHN{91Q-oB2H3i$3pNx6UfE
z)w*c(Gd@S7Ys%WY5yc6@*%zito=TBgayGeezlyl1>?*T2>(-^b%HI7;{-oQ*J^oD>
zbl&Vy-SaO=$U5Ts<ttM&?=A8P%m4M`p3(;P`Rd9BoOAxjC-?8@wGI|}v%8sb+Z^WI
z%CS#07bpnEuxyZt3!MHv#<HmIWwz9deR|n%w1Q>RguOmrHh$q!T;{&|sl)%JJ5C#a
zOxaVSxsKm?2ji9pzb?m4Xuk8?Y}@(BR<UD-4v)OAXkFcTDrnn<rnc1?1#&jOw-;`C
z!XKA$a!om#;m2hgs@Hm|+~Bm}Hg^jRRc>xQ)|n(bZ}0U5iJ@+_z5Al1l>Lr*Tv2~!
zSzo@uEh_LU!`tZxy$q*4lC=I5eBI-ELgvRmyd^gnR^_Z*e|vlX%G>=}zcXiq^B-DW
ze(&Me0%e=4i91Ym9>`cKmM;5xD7^e-`o6z2j^rJz|Mc(7o?m4)@-tr-JKHbc_#{(h
zN7MDki4&N1J_z|D$kuMVxG3w=Y~3#(^xK}f$LGgMt`1w{o3`OC)2i6NdmpWc$~w6<
z&GoYPv=vQzl-S?jwJQ9S{ki(f;e_&gOzY!Tzh#P!kIu1@S?nY*e|6o;&Z)n*8|R9u
z1+(9sdU4LAnRC9Up7{A9y=Lio<`qBL9A(cPKl4WQ2J`0R(+3v5_c<KE-hA}6hJMNa
z<%VA*PGq0W?(WIidP!iSPy3Qe-K2ZVWq$1SxAOb-d&S}AL;r>AoA$r3f3Ww#_ha05
zo^>+3THv?e+<V!j=_^Wg?*08F9&2}L`ShJrS9<-N6R3Tp?V9%r-?V*SpG};U<LzMj
z^36Q06axwN#97)ij)ZTVpCK22{UeL)^wK}lFQX$~$8gr2c^a&6bgxp3#<Rkk-R+fk
zjKwmxP5Qu?|E0cR_k!vq%cVblKAkMdr5DA-_}%?j-IxDj)?t6Af6C&|er5AmLB+i=
z*ZgkfnxD6d4{&!Ryv}u9wnl8vg3EncqI(uJE^06cSofJtg+=A(Bn1h*B4d^b3kn-r
zrz{FycJ!51so$Ed8HI6Oel<4&YW%+)P5<qe^mf~}>Up*&<M01GSN(JE``^F!wzq4x
z&&n%1$;R~SL`>fvf4vO}O{r%#7-qbEbVI<XO?}@JZLvD`*OC&!zA<L&JbqXvzTnvL
z^YWqy#YYM{=1x6VzuHuA-r_T#eaLLOX<{wgb_189n$nEF)*VkKnx6>S)Ow^r|0AoZ
z4kKF}TmP$?w|T8h&$B8Xtyjr8qO+yO@2q^-=a0Fa%Nr-#u6py<>TvD9n*lEizgX@O
z@f9=u>@}Bhy0Y-KtKEV*F<Uw&eOK@;=IRlTTb#MAc6OQq^FxE)W&1^qI_>v39jXxe
zmcyjYbExFmx2G)~VfSQ$clT{DGD<6V`NO8CWmocACr~&~T{M8fdQCuS%$7e|ESI)i
zYv{aW`SI)>A(tk>nVhoeOZmN%?>)0#U>UV5K=AGHR!7k@Q-W4S`Q7l^=RAvttMe}>
zZ~6i6yvY|X^;kXDk21UbzxZ_Vid6n+f$aUS_o!W+>DUz=_&s)wo#WS3r5XOl{NMAr
z%64&{yZz*NYqO-9ccP!OLFG$^Qs+jG`sLH7CG8EBc)sRv&Z!AztZ!1*M=yP4;y<V3
zUTj<G`%gt5W}QlTG=)EC=bJSut|n2YZynxy*=;j^EAz+0ET(qn=HKm%?J3XduYY|s
zed^t}HIFX(U;45_W_nnss@F>HrIO`Q3y-}zv%{Z9_pDi??81er)sHMho_Cg>+*8wX
zWrE!b$&E(;D|N&sXB`P%C8+Da@z$B>y$ghYc|0%gJG%9Vi_QG)M^XY+XRS~!SU&Gj
zO@T?*w}ZPZxSDp?PS|mIdvsd?`zwh<uf({v?p|Tueb>84r}qG-^xAdp2f5>xFVSlW
zQm(z?_DX~+#f9P8+QnuTyC=;QoGP%e>k#k8nC^wQ?&w$xMo$+JpD(rbL$^mk<9xm^
zJl#)1|7V=()?2!>zs%&4&{aL7*)2-`xB7%vzAfGSQEE%8$NsaCFBUTH{9V~<SATQ4
zcZJTU8snbyPOl$pkE{rJ<l`dr;%oOMp5C<IaejN1y*D#2y=-O_d)#-$OK<k6ON?({
ziI{&(T|9G3snNqN(;C@+2YbHTm*i@?N>5Ms_HpOUxl>%UcTIi8XM4>3;>F{9mfwWf
z+}Efyo?NnSivFvYKFhpMyf0#2{Z@CI&%%poiktra?>%yeqw?GDNpp<WE@Qg-I7wLl
zPQt4#w~i_Kg%<}zH~Wap{Gu?YDM&0K)=J;pu)So*hI!`iuVxvgeA}+!l&8&>ReUSQ
zKCjT^U(qgxn?42eTPqGVntQ5dPWf2tA=An1|A_VWi}RDOnf57{6-|uY_vnNA?4Muv
zvhr7@KL7If?era|<zq7~y7OwZ?q@uUzONnsQhD|?>-@JudWxnoaxNzio^>s4HY-V$
zF0syJ-*sf}X&zghKTceq-`|&F6aOErGGY5~>(?58*Q>G4G&pf+wnf29BN>N#PdNGS
z2BpiT@K$Wy&J)#An`E}0F}pE&%9R%T@J$~!e~z7U#x})%%8Z4w)5`)s=B|nTU@Dc@
z7Jg2;;OV;@-@JKk{U`a)dpk;Y{s`jn=Q^V^aqhtlZ`Qn7_b}=>>${TE^3m%S%v=4E
zd)JS?qrW2ePijqk^m=d0ZjsG5w{W`Vb=}_(Jb%6RgTz3^)tz@GTa}7+r>1>AxcGQ)
zw7JEy8qMo7lTU7OTFn}@=CRC%EsfWI+;v(U!F45R=cnqM7nam*nzY$FZo#Jrm!~H`
zcjl!YD?b$RvfaIC+x3rUIW3e!#JZCG)CxW>&&zss;r{9OvMbJAPXF(=_|&xz+1!(i
zf-mTYinD+E@h9(U=%b{Cv(GqA>uD6rVqyBynD}tk&J;WU{RYKr%$_-4|NMQy_j%G&
zIJ9qMmbQlTo$!k~$H#Z?o`agiP9NKASCo{m&92}`&MG{a7rM}G;gct?RgPWRdVHC(
z(a*P$M@+Y*9&WV#v$A8^pW`o`C7-_9b>^bz&1X|QX4(`p7S4D6k@n%-<1CYi`K?BU
ziB?mkcV(~A^4=2VtQj7bwjv`#LiTF0@$X<3WBr~Un~2K(9cCRL_R5s^@Lio7ysjWN
zr6XdOw$0~>X@abGZyvb1;lG%VqxqZi4*Ax#`7`{U@63+4>u!14f5+wH2d4aGOqp_U
zCCjHv-;38YJy4NOymb7^tc2wK^~;*}<u9u{G~wjE_k#RFo5WLW=NP=--D1<NxV~>f
zpa84(@0FAKtM|Rp=-sw4EIfM8+19lhdRlwCR;^sVL|{&PkeH>7Vd+|n?Vb8JoEN?Q
zsNxym@$Ry8XI+J{*POP}m3#ikF+WRBR*ht9Ud9zVHED6<p~ve!aunVAcRcao{2brT
zbvxuQF1WVpqt+Cep3=-KB|l~NxHn&|o@x`B5brvT%X8BHu4DHX9Gkq%`rQ}fw?|s{
z<drLWzqri4=+BQ!TZI0~uKO(+U?;76GjdJ%)rD5Io}q^P2c1k>ZY);aEz`dBcUPA8
zk9;xfiOj8Qo7A}-CqzaCF4_D-{grh03#RKDOg8hG=9pYhoT+KwSUjupk+0H9uVY^O
zgq~)w^*M5yyv*HGGodl$lVqooTdH4TV$DOB(yT@`)?DG8pV^+CJ6vC=Q{|JVqUZnY
z<)<Yr0gI-e5f(qFSSTn{X7fGypRGxS+tkxy>BXtqJV)EIS4^|=<vhOMO;hn)l!?is
zJ8W@Noez0RceWN!suNtdQe+)VzIz0}<b|86LYq!6-0c5i!?wVsHix2Z6Q^rTot(Gx
zNwmT<fiqio$g!Gt2=4#(q@YWd!_I$Cm~ekn!wY3=KGWH~xm#DwnwvW3U{HVd#iifQ
zHvVDf5#4V&yW_Tx#N4mT_5Dg}N+#TIdRqV3&#U)$;oQK^?;o_c>^P;Oye|EQB%`&^
z^`jAX|D<C0>~9_a+YP=>{mi3dGw!T-5Ow>ta{1oy+`#D9U8^ten)`KYYk+*jgs6<i
z$_uqNFmX-X-V!b}sfKgL2aZo1ECP&+JDfILQgT|lc~RKgS8vXEz20GUZb$6xQxA52
zOD_Aqn=>lg`tmuI`lnCkyq|O5a{p)Rlx1J@;@-9C+AeySsKIV;_@-vhykptiDq64d
z%eG9G{=07Ss<JTa)mf?Uzkhi;FR4NH=d26Q-yALf_-4b}mrpuuS1j4xKY#7Zlmx9q
z`s;4@nPrz1pZc-3vU<jZyLZ>+<Z<O++5XY^mdo1*?23n;^|p3yQ5JuiI`gb0n_2Ak
z_j6Tw=5;^#dYM^l2BYyCX0_&<Ic7607Y9}=M6R=&b~EC7TwxkV@HX8DL7#KFT>t<5
z6N+H)j&@A@@2Tb_BCV-dqwNt9FI8dv)aT~KH3=W~{5<_Z=Fg{Q^MtVblFNUqh<i33
zQu`RN(5ht8<4Ue>xA&K3UkSV=!RGJ!;n7m#7s27y*Y8^;tWLMuWmLAKb#>^LmwWc{
zD$PoqI{SpQ{fYhR&lW3muG_xwnAqLk+!V$Y%36my_tYvg_#ZBoV>_f2QBt*J*C&Qc
z=`(wyY`5EG#;%%lkTEUc*Uo30*Z5AK++}t%@Ok0%_R5g1zjhlYI4nAGuQ0{?-vh?p
zXqHJ2trdiwndBXsuQaRMPvMJSRWv>NteSMSg1)_R=)a2>dk(MLc4}SUjB^VdbndmL
z<{XH+TKcEC=}X*SUL%&X<`Y*oe%4uDb6w$HnaID2_s0S+$O&)dYfL+0rqcFu!#uxN
z@7$-dyxUhF^VT!xwC3YktEIYDuQghHFk;2j<#Jy3H9sb7UZ?nYMU?2=Srbp0xxClu
zO)~g>Z`Fezn_ir=&@;AGHgj9I>VE9>qgh`T{x&~-SZ^P*^ux95&)@wKUQxWMIX58B
z;q;6rvL})rgnXM*wtUZ#pvbs`hf<{X%EbQskzDfhTket@+jupn75|O!{Qq~AnUR^9
z%=sh6$-i#1>o4$1)SqZM_lfJgGkqM}xGxv8u)X+wasGpkpY3_PPNbdvApdf+Z|%M4
zUVT=}r@IA31>6trsQ<<{Z^h*`X@!^1*DXKh7s3C*_WnfaX%32PXOlO6Z|m*rzrA&}
z>AJ(^huI#ME_utgC%63S>la*ENqsz3r{zv@zcI4=!@0^U@zaq4?mH$vzvF_QY3T1&
z3MdMax^-5?^@qf<iwQa!SHx%e$i($O_pT8A`Z=XV!Z-Zbq=~_yeW$p>d4D`UF!LKz
ziqYxMmjcYZd8G9O56^QxamBO4K$|zRXy=<nhZfy&-lQ)1>He1=m%J<bxM~{LaW<~A
zUE8(e=<oTSdGTM%f9%s=TT#>PP>}yT(kAiWwF$P7Z`Q7vaEkZLq7wnBTIp>cgZ6w{
z`FNw2Er0uqXE(XkV>GqvIs4*&&#k&7w*QK7e*3X?oyqmLmFt$Ow{R-mQTslzp;<uV
zK1+3HK=daD{iFGM^^*R_jo<0EE&cH9EqluTWNp6XA4^z-+d0-++};tq?y{-ev(4LT
zt5@&5B_XnM%6f;EyBUoaKm3;CDBwO~=~J|U^G%J6{vy#2^Gud*)SlTf|7QQbrk@A?
zJ>*L}wCK{enj>@ndZtgY`JTdh-?4oDi?voKV`Mm#okc#BU16Jgs#GmbVb;MnD)C3#
z+U2=aHVX%3Y?qyO(8bI;eELkq{<3s4vt6sLtCadR{>v;6;7(SZ_DJ;n^beMk1WUh9
z`g-hqrr_3k#>n`N%KAD}T@UBIoKNKwxO;b6H3x=mE#I!&=6PVfqD`%wk8h@FL7Uq4
zeKRbl)@w!T#*20YEjA0Q-8_Bm)!Di;lUGgnw9-j?)v8o}Yt@a*&o7i(#vfO3V9h&~
z@+e;MTAg#-mila4_~-7Yyq`y{SMVL#_8>)j_0}m0?f%Orv6odDF0t9LE9{Hy$}RQF
zC6ZXWYL7O@H*##fvL|3?!NS0A*JtmTI?H;?|I@Ey|6actSE{mAPtovSY{|~Loc|~0
zEmV+rXl{GgF7V2$x3k06Y3961et2Ib>`%ldo2-LRkGS(*zv#=KUFpr0T_58re5~V8
z!12p2ilQHaUwBm)o@8y5OY(8~I)VGbu9+8{C!bzmth`yV|FCeO<g$k|miPzw9n6rQ
zEYY{dbIvO!R>#GcRbDO)bG8i*O<F7ZWWkTGcMPAq-1>F->Nlm|l?N*qP3zd1p}Xmr
z!1JZ^6?6;ZW*k3zSae2H*~#=H+tqr0^eKI`e-OeP5_r%tw{YJYkN9PVCw$%J-aN7H
z*ux4Li@nEwJ9m7PQ{AM-aco1y7go=<y)#}MC}Llw`_OGc8cVomkk@HWwRK9-y$ZbZ
zjh1k{V_M|Mwpm5==~C5rPW~Q)g%)aot!t`JGS4k#o7-9AbLUgIc+>tRpFNMX=*Bf?
zi?BR8o5CmVv8lLZmnhH6i|5y_n40;{Wtnmd%jIDHTe>Hb^dIhH<?Jw24it90Q805$
zq4)ahDiu7Od#;|1|I!h|G+X4u{>A(^yS&+2*^i3aF}FYExg^zFwK=fiu|geZ)SiM2
zr;Z7}Jf9C4dN{twXi!wQzBs`+yZV)!t3mLL=A4~#u3mbSF@3jbDd)#oS9Yw8eRaP5
zT<rT*shurOxqniejQ`9(^2hC;>8y~`S(B|l2UvCg*FJkR`$TK;{b#S342#3NqTMw;
z>-3CXKFM6VV%k%6@6`{TJEN?&E2uL0Co?S#E|Tg0|LDNCpc{eOM{mCoi5CB2zrS;y
zr^2k7HCN8_yL_$tC$?Ynzjy+}bo0r<SmvipsC69+uH#INOh9u}1`39ThS-iXb@X=g
z&<5QEfo;)0=#=Y{)Z8!ya|@iunTF^?*1`Gdrxp}v=H%xY>L;RK4q<|ERufo+n00T4
zCT50&*1b)R4iF9ppS2zMF-$tQ{O!Cg+hn))btNy4vc4P?^*U9+MbdF&*9;{t#-f8Q
z4o)XhH{U#~Haq1cYm<NiBTtk|fM9NR^y?LmmzG4m{j%`d%xfF3ZM!U4UU+$-<F8A{
z&&~N<uy5x3Irrb!pKDzB#e}2nVPvFbWVBgMjjpwN`sG_Eoz(VoJc@6q)ahkcs!Oyg
zD=+@#;wIIfsuRHdWitC?-z2?qz3u6I%jaC*?7?Kq+?iPM>&@HN)UK@3O4q4I#>KAB
zR)yXSy;>DodDF4C#`9ZH<+EL-`6o7OiLUx|Noc9fa+l(Oz{o|Ox>`?eul71ED)pDE
zGR(Errhb#N?)mT)qN}2gHZBji89Mc9RIiij`IS}+0yGs@1X`)5zwVp#_o>$pl^*An
z8=0aw_ww!KPIaEWFeanQi)R+w)Wi7)zh9cOD0R`rFS(C)3K#e}9(=>O<Nhnt<2x_0
zsQVvyUN2CXJSXg$kYaRn&k{L~$Vn4FJgCjnyQSZ`Wx~V)=T#9}g3ma;ja#oC>Y0D<
z;REU9X2nxClMZn%XJ+sHWgFU>k@xSxc{!tVe9bq77d<&BXms%Z+=lsYp30x}+obnj
z*F;L;wv)gA1kY8nPXv`c&UxL7I2$ik{?IR6RcnFJ-icRCSx!!K;m<rU*RNfW<MZU6
zl`GtKPpr6?R`e=Yj+^^VVAY%78xHsHI-C-{;9@FkYKUs_9p`q9mgpn=U79BktEih@
z2ubGPt(^Ur=RtU%x5n}hNuRnRF1kc)3Ygn@<>3}fi8rNziUpxX`!7Fqop~YnkX8G<
zlB<nT;*P%s`@0v~M0jO-J06^JsiNtBl$gZZ7cz^NuIcAADw{7EQQEiWtJ^M4Qwu5G
zV+$_x>j|fnGAF6O-N7h)Y0_*~>HBJZ5gb9iT-?iim{WGIpT5Plu|ehc|LIQ;U5T60
z^4j~KmRW`7B1zuBcVXpPKesr)QF->*afber|5N6E2woTbqI}YRruMFoZMA;Z3Q}`@
zS(3h3&qy=B?3Qe(=PzS4u}Y^he38<LDD4|sDV?0V4<|Y6#LZrR^J!+PLEc$$TgE)g
zs-R2Wmb!d@I)vE|6`$-2nbmjf=!-<-mBo{eg$eBTJbpo5^<#9O#VhZ^cBzwDTU$%6
zHXJs2$ETEc%6IchlgroMgw1+v({cE4xyv7=x_N81dRp!g6;0#fW>wIMtg-$6?P|Ap
zpWA`96TC_d^LqKV{5o(^c%lAXj^=7#wL{A`C0a|BSo1HKwQO6(>izRyGWmr6&@ONJ
zJ0s~2=gQ@qD^E1Ll-eclJr$F9+)iLus&rS`H95EM8Etlwown~Rc=f*b@Xd8yzjbf+
zp-}H!(*qGcLeFY1T@l}zQu|{{fAE|}_xyq*vVzYg;`J8CluU54*>S%m+=7F5o2+;?
z=jPykla><)EH7P4F`j<Q<c8Ek{*6oLtXc0Iw{KGU?AeEHPwzdl_fy8{tzU0{pZao3
zgvLxgZSC%Q;o@@EbBy`@=I>sAbnysR(2;#*f7!fcUjFT`58b0GQ{^;P+}yie!dGzW
z{QtFG9^bfY-lsj9*0I}Qp5AMNEg4x;UU}tqE8e<$`DQogdNtQguY6Sk|L(gImv4Sm
zaW~s3yV{Db$?TEbxu$|)o0+56-`u}n#B`?3M!$TO8|*hEq_h8(d;PuW5U*Xd?@PtQ
zO+t=&IiDWwQ#iW8<eNgB*|qMri0Y{~ZzimpQ<Hn`@s%s4pFZbT9dn5>+#crEev{Ek
z=2y>>MVv1)lAe4i{o+!c`>{{RanWtoo_3Gff+yuyO8tAg-{<ueRd$gT2M@U|-p99%
zyM^7a__Ce*zPpu5zt7IyE#mcNQR(}QPFsAIt~6jM-MF*EVcCT{cjIzQ1a_LVlo@NS
zy|-?&3{%TeJN|rwoK4qEawb3eY9`v3aZBf*hlRk0B$LOlzi;tQzrL-1|6RS3&1cUF
zCCXd#X4mH{CI8weS)O+6uB0UBqHa6AyW-gDL8AA)nSmBUJ0})+fY&l8fVrSEAXD>7
zKnFPDINZ??Bxj;vYGk5dW@(DPCfv&rv_K;y1m^+`(7i<wP#aB9_n>&{7l4j;gzP>6
zEr!52*f9+CU`NObj<o#JBK^YB)Z&uN{5<fA@(_I={c_j=kA?b?s7E_S=!4dK<fIlC
z>nG+Gq!tw?=B4Q8>-*{F=qEuJbHL7ebVfSj(I5HbNAS{)yv)2*@ahi8LXH4^@Zyb}
z)EKU`67ac?p#3zU{dz>4_2>lA3|aZ%p<j%8!ebPuC7@rT9}IB==;TY-c0u^bj!=sr
zCSV-$Xo9gl5G+DW!@<nZ!iYe_p(TVjK=`HPy|ZeHT1|^q?>HFiH%EBctB|K%VOx}{
z?3orFXng+jIOivECY8n(hZBO69B%kBDS8O~JLJ#A(cIo+l<|?B=a!lK%Ft-ruV1FT
zoD%52cV}Jp^?y2{g?UzU&z*bo=KI<0=YQ`x|J_EPr_fS>=WtzMVc_mXkLtu^r%&0E
z_xH>>sVI(%js|<@I6vmtJH`9wru+N6SIsoK_0y=0eVaZ5`ya=jhu$st&d1^qBk`<G
zs6ONFt@-ZHpNe~LGBQd%xbR})!PjQFT^xO<e5a?#`iin2UwX>ua&d6#8z+%DGs;c0
zW5f2CS$L^%`OWz0EH!6>p6_&#rOWp&6P!DJcD#o7be7{!moD`_BEa%{AN&6O3BvYW
z-wkC>`#w-{{ym}jLZXH#N1KJglg$i=eq7*^6Jc}C-f@AAPlVBNwm^n9OK$Umw~hfe
zx3!-zziszB<W<q~_`Ij<4-cUv$8$>GcQoGdd1o0X@m?hUg!#`8wI+7rEZr=UO>qb9
zpL;y}lbUzxj`rsdm3;Sq?mJ%l{%pK`{h|Er_ZR$E`oEC%B=<QTo~RpQ0ul>2B)EPQ
zPAmvKp7id~m7{TAYOid0vRGAodXo2QW@e^frh}W_r2ds?l-wxpwDm*Wg>wquKb<}8
z{;}eZilCc{Q2hVy!z-Wv`up71ulDtl@a=~bin$mUe_^qjlz3@Mde}Sttp>IsQu90l
zXVoRnzj)0{P>sK`RZ3i9{j9oj(dw(m-cH%>rBbxh<&xI>H#xa)kHkAS-S!JOt)%y>
z>=h$Z-^I8sb1#*pbFS_Sdv7jyeCFak`kJc_=)PGLW7fs6@c~EGxha{e1k%D}R-0^M
z-&CRX&0+cl-<^HIN3sL9ve!IjoWcI?)3x5avdoOh9DC=@Yu@#<O#J5EScg>|1$B{f
znquV>&6JdN?4znIo=!Zr@}1xudHIij1b0VOJU%?7cK&+1fbH8&`KF)lN-0|Dpf@>P
zJ^6O~w*Q%5&K&6Evsqhi@V)0l_I3Gl-@I0=I^`6UqHu)G*RRpw@rTsS7ekWQD9(vD
z<+oyE^<j$WnO1SakZbpydv`DT|63Kc?CibIg6k4?yf|<ym@{pzgU)%uR8IbB|F^xa
z3BG*crukZi^}=svHZ`7ZZt&YBx^&Buu<oTE-`)y8%v!r`lZbX^$j!Ou)f?{5H~xLe
zb?GLj%;Jf+vzBOlmhLpSia!<6y1h!UDw-+l@~qIW7R~<YjT4UFDAAALY?6Qct*ZNG
z+tt_7ODC<^yPNM(XY{9Q>yAmJ6uf<DTXE*Y*SoQY`evzVe-u6vr_UtE%wOgGQRkPT
z-5gQViP}?MPLbN`dVh^t!+rL{JjXt4C{0Qe6&C86o~iXEb;h!=oA)XYKbAdaTOM0q
z+p^bfPSGWaZjJp-7os!uZUtm-wb~$-+Uym*aQ&r+Jf9TTpZ>CfH#_L2msiNEB*RF@
z(8p8e+|o{t^!wzqt4nHaz|s(HueGz-WEoisdlaTEzm{pTbjBjj-0fGc&d4fk@CiHq
zfyc|pw^7vkN}t>AwVe6ut8TP@75#eh_miece9D=Ew`NO4No@)9)m1E1DXo7fvPZ4*
zKBrl=qsr;c6W;#eDOi}mdjFdDw{M*h?uOb99QWP6JxiIaBzmsJK+!JMGR5y3=OsUe
zvZMOS#Z|vg2!Auben`O2K>S0(1>3%cJmFR1Cog~3W|eYY8P_<~a!T*J<@?z#9DQ@S
zz5nFVpEu`T65c9yD&n`9xt_j_SNo=YX_<Q-8yuX!_NUq=V^KaPIVQDZ7xw+(E9`Tb
zH2JmGi<hqp%KslxnErAq$J|dvhFP0t=!l(JnWLe*Dqz~{!e{5~lPW`RX<aLK_04ME
zyzXNK??1DQlEv(DADh-k6ffNv#<1JjQGwa8K%)Aq;hA^KeH0oP{;(t{u%-7I@n)px
z%-}!daO27M>+Aj3B^{b^A>x?+C*5fN-l}<<nZh?P#V^ZW%y&sO?3GEXRZO9ZwdKyB
zfT-9MjRRA@zS_3YczLhdpU^98@}YLKQ@;0{vD$a{ESt^zsY%TBVwc`Dp1;qitMkNo
zLjNu4dA1B3Y(KL1C5jm}t$irC@^9$Yv$<vE-P^+QkLllP|80BdxB2(>{F}o6UotkG
zOc$z*&sw$W$_*bu8Jp+ZuTEOacjo0~pKY7B$EqBal&vrObmcFb%%=m_-!X7UU*OVP
zXwQ@X|I6gPh0<ZNyHd=9att^(9}P)AI!9Ial2YYNjT$SqAB_#agD*e-ye?Pbz<RzN
z>thb&<$c~{r4((~f9jo1{+xyF=3x<<ISbM+-B9`S*W(!D#-ztwx``HHNh?H7@%}Or
zRV$n1`{VXD#^cVvHwXFkC^9>AXPxqJHk_8Zy5#YJ0|k$Mu3`!^z21{$eXsXu#etna
z^S1K-nR|cv+S7+pYgX=yTBtTdcm1D01vdSPGu-oU_W4&jw6NE`U}d|;+W3XTiu=Hg
zAC{t`N==zx11C<J=T_`nD|_$0@s$e4ir07gWcS~Zl%6>0PUW^42D5dirJd2;tZi!f
zYfDG<#RleQ_A{C8q~D%r)b!@CRiqZ*q<d3k<k)B1emE+<pjWg~uA-soz_0iF>XmYG
z*J~9DO#S6$D_vbZ@$}P-%>6%(-u!wd=-bC+K0~X9H*@~o{!;sZ`&o-U&&}xzEGk&o
z51vtwis5L|Xj*i`GB7jyfX#H9^8DU98OeRxc2(EjCVaM#NPAu7c$>FH?EvSL$S^s{
zU2Ym@jZH;`O}DD87R?T{<mU1c-E`is?wfK1+cO3c6=vhd#b24t#P%oD%-ngu^}m7D
zGa0EPGpAaWcwaj5wte#B>+efjyVtUWx=Q&3F)lUMD!K8l<%ma(*>Q!hvD04e{4bmK
zOzL|*%b&9=e%3SmPup{5@vL2!81jznSu*$Wm8|=LpKRX0Jadt6Ytr$Rr!D%dBE(%9
zt*&kC5Dj$i;Yj3EX;A#cA)u$=t&*eI;v05Q?Bc;D(Vpdg@{g`n-8sH%%Hp|4Ew8?>
z%(F5U7xG+Db?(p4dwah}zx!Uh|NU-hne~@57q0ptF?Y`SE7FtNHA8+rcyjsQi(hwl
zUtOi)`*EG#V((`!wG6Mka=9QC=q|6Lqqjk0)s|->*Jhkem!3H9`!Vy6e43d-zd~BK
zS?twlZk4WBZnAm9iG-w6I?uE=KU}bH!r@o}jZ(+A$q%C)FX^rODinSwdDoJO3BH{{
z7JqD~E^;|#>wDtN!Q?-BvDccSW+@ALo>)F5PoFW4TkCP$hHPD#MQ2-EkEXS{#-DgD
zJmH|<%f^y@3ca2em#JlR^Ri#Id~qbZP(4ol?)-J;8KRuit{9n_FV|2P7ZtCp?y*gN
zGf6+crj+y8q?YWal&S{>->*J?v(f7GLo?UtKebG|Pf9a2DM?inN3Pwu&_>zbc>dOD
z+isjQwBO>Yu{b&Sl97c?a^1B<zFn~y@zK(&Hf&VeGo$WkjLWO?Ik7VNQ?GO<#(h{?
z(Vq8MIM7CT=B%CSa}Nv4v@bbTA^uIya;12?(oQQ0_12#uvU2LZJ<@w+`lra8Yfvpo
zOxAz#+5bfGiakFr9msLzzvksWMeVlY9lc5ghfNQz>NDB;bSi3^^4awjP2ASf{8yx6
z?#}ABNgW$@G`-fduYEM>QPBrqn`uWU7qId^G;l0iopyKK1=&V!i$fb1o2VR4xw(JM
z=d$)UG3L`h=g80JEXX?G-6NEL>FEivwP!CZPu~=2v;M5t^zE(rnzxT7R7s_M)RJLH
zHe?olxK+Bje6~=)t9?&;RFvEAKS^JvZn*EWBh%)DYqAobA6%Ka!E)&wtMe%vjC4;V
zm2MZmr?*qnq4h!Ox1Gh#99yh@xbQ3FEo<1vyuV@Rhks5pTK8J&l$Kmp`X9jdNxwr?
zL{8o(LrGGQ+q3LO-gFzGgsy@{l@m5E6kHZ5O<1;6GBo<e?R8-bI}<#e@9-TH@alea
z(j;MZ%I{R)w&vZDf8?{4^k22EnEKnhraMd1#I)Ev#_5WbSp!3<OZgVrMQ<h@XYvu<
z)$#7WqcU%B{JLtb#PW09yJR2Vxg{n0C+@qrWTsofzL~!~r`-`$NXl5Da%8*Z_M?2F
ztB=&)X**oV(sKJw?#wmIj_i7O^Vx%|=c3oEKIInru4j638poV9-wa%wre58}6Bs=2
zVF_RIk+$P`!5h!Yo;}W2*XEv+`!3el?X;wFLu1D;X2H@+&R4ASl%r(!TvFCco>RC}
zb9KQn*VF3`vdvt6rqOQ2o6k*;mAqdcnrtpT<x@`A`#SkkJ?u}e{&JaeB&X!mYS+>^
z&C`z_*_9Gsc+XX*>*0|jGLeoc^X~0=t<*RB(DPY~q$P@7Cob(ctzXTcyOgW_*VE?}
zk+ExE+nEPh^Q<)dv%;w20=rgH^n@R#cW2G&5Sn4SzUz#=Et7H<huN295~tNZ6za^`
zbUVk@Y}v&*<t@U#W;Z>A_Pm|Q%;#%1HFQqc^0yPKr`4`!_^ML9jnB9DxX`PO_TT&i
z1cl^R2Q}LN2*2vA?k%-#W}ScRXK~x*uN}YpYwvRs@AluYcWJMx`ONIIE2X_Hi#2}L
zE=ZD%TJ*o;?vn81KaG?lcirR5*rCyTSaqiJVHU0@;`?@+@AxCP%tGeps;=hwJ8i=P
zmF(YfeqB*~^w`(=Yv!Hxm7n=#+YYaMrIpPL4_gd8*_#Vyz01wBDfKEm{obr@?osc5
z`*Zr2sg=eq*74QYHFLF}!^gxfQH@na=F-7&(=Q$Q5`BJq<Yli%-=rR2y0m#)cIb;6
zFBwBN?4Neo^hji|Z;?*^qQ45SjK1F8xM0GBwT{JZAGbc&DVg(C=x=O|ufeC=K{wA$
z_}VIX=F3v=df}Q1_r^x+U2By-x8KO0q-B)7_^H^}gEumcx+gkzKiAFQKl|Xc)b#K-
zsT@v1mS;{)n)oXqH1A@dvGlcSyS>efFOTNGkL9qQR@!j;-a<=*&1(A++B?rrZJ(~m
zFCSiW@$b){`BmG_>nEC4?%d_9|7eFFLo36*L($yrt0nftA6jm%sd`@9vi|0YQ_mL^
ze3+g3Zr8l;N-Hj{I-*?G>Du#Eh`IC0vaIXBa?+P%2Pkjnh`*TY6_v>G{oFF1`LFul
zy|3W^XT5aeG0~Yf&ozWjo@*&mVZCbUZl6$<hq+-_vZS7}ZaEw(m9k)B)Sbps%~j4*
z?-;$=%~7*d^t|M^b<&<;T*s1mza0x(dF=1^hsBH3iue`381hY3v-LmUo)<10@1WRO
zY@WN&i*KUrMUUs1&3>Xgqn3BwU2t=j-1hbA635(QCWT+?-B#+cueB-u;pQNj71Ju8
zt)9JKz`|?o-Jkz{yS!QCtNOxW<098y6P<nkCM}qH;zMbBoR^&P%&OK)ZCa5(?s;Ck
z{qEg1Df1l~yDt1Y)4pS=(xq^_*$+Oh`>=S*%gpK>^2{j{S${`Ie)!C=?Yyyk)|EnC
z&HwAtFK4FD|N1$D&CdQ;f_#6z{c_!Nm-jUl_sn_iJ>6uor%92=4@<A@?Pq5Drfe^s
zevq&GjsKfTc8n%R&g{J47av(KYkd2jqju<2&23H7?ku*<sq^y-)tjBH=a{x^m*~-L
z1-TbBth@ws{umU;F8cF$Nki;v5&1u+85@4))ZO+B%Y17lmzb3`NAIZ0GqE?1uYI}v
zQA082u$pVjA{{l0H9H@lxf~|(e%s?+vQG~0u{Jnj{c+Ca#QN>^vV4~VawqOwu&Oci
z>K6B}hW>2whg2$(58khTxjpsuKNG(FX75Vk=NFuO_x*L`>af}kZ_d}hPIDKzv&nm(
zT3*~&A!kRY>qnLB>?YrzelRbfUE<M<pQrWtzL`vrnh_J9dd94<_1K&@JgyaS!DWoe
zt94e}+Y9F&^)`Qy$^GFx`+YTjgQE}Yr~JS2>s#XMqd)aG%jqvVHTiHf^URmUX%9Pp
z^jh2f7qhb88d`LF!aL(__vbP_ydpKj>3`wr{OP*?KYaS@&de;{y6%Df&c8FRar1QE
zVEEJjHH$y%mDl5AGpZLW?M~f$dG4Ked++uww#Zp|_0*%})vJT!r<O`>*u6&WYbWRW
z2oHsc)Au<0DI_$^VDa>Ds$dbEn6z=JXy%q_79!cJ*Ijm8p1nHu_N}s4oy9k9?w!z5
z9eMfY&6#sg+Rv;$_ub<D``>l@*Z<_Y|6j;Q>CM>%?C0)Q$=kNJZ1k4M6#rVF`G-~I
z+~2)h*R4{Gjg6ZY@3(*2*0oN)$MXNaI2IUH-?*dpj`<J4pL1>XZXS4bAW%Q%ghJlz
z_rIfSIQ|rK?r3N}!`gh~tl@)&t9mqJ!`fHAZ7x-)zdOtJ^vbyxD>ita{ZgJW#aL#+
z#J&G_E3BEACXpxgjqh;n;XQ%!K3~4p9cX{V->JkYk+sfHqNk*B?dlIAKcC*%YQ65$
zxjA~fuD)5b@kQ&)(zjN&nMIP;vp(+@GQD)_%HA!?p?M(_PRHHc5ENRy;jO^hungla
zmrZJ|8(X|iow!@+Ao9P!nt5Wp?H(IG@rB_IT3e-)TsD1qbF`Z|{l4veeZlVU9&yWW
zUvy4-*|wQ^+O2nT?74*|4gDweALMLs+Vrq@=^N%+sY4l;Ql>s+_}H70aP^rv->UwA
zfF66!8<%S5Y>zmkX?Um0R^qMvr&&QqMNZvrZ?|tP)cX81R!%3)>Ty&3lap(?*SeqI
z@cV$WNtZ#N+=~=nx5Kw@gv>Y?wPNo-<H^g;-)+j4d@P*U`<_FxoJpHkS$$e!WkSDF
z>m=E*h8!dF=zI&O*^cKKdp8*rKQ@1GW~JSSdkR-C6jVKEJF%bh`48>{olB>yk7R7m
z%SbWdoumHZK|_wAbh&xkqkuIG|0FhiQ2%!Nw(!y*zq;<obCdd#&Fx!1Uo3Kr%4lpU
zj`-YuIP-nN`bDa9qFnu^Eb=(_|MVOIWkWu>is$VM3qEZ(xHq4ty;F?g`I-qQKL_yz
zPb<3mGIoiH?dBy@zP%`FXgk9pSft+T_R%Et!mo-0JA{^8F0i(%d-dn0+2S1YR<Dnl
zm-c+Kmwk9lTx^Z)fj#xl3Z(w-S1>h5m2}(sTWxuc732J<Z@RNu({#Jj+Jdiy8}`f9
ze&v^NT^Oq|@5YRRzpty6!;c+v+ji`j%9{HUJkqI^4?hLGm>i?v8p)zQFGT0hoA*r9
zW?K5rdGh4TWc&F)B(pfI_B?(1_2+_K&YIc(Ba>#GySl@7Zc&<WXNC8CckaL^;uj~B
zuU)_YsNdoo&2vp3Sot_+GV*mE*?(+(<n)5K@BVJwIQ#nVaP@-d2KMBdg5SP&KJDuT
z3;zAMdV6cBL%6r>s?5uB%Cgs%P5Za^+7sPJJuaMgr5pYynN5G4Q6jrM%4!?m`Liny
zhw5*s`1!Bm|0B(pb7I$B2|V{#XoB~m`>P*4{XM5^a@MWInd^V-3Ahnmw%WjRiqiC>
z`*vOb>dBY7?t)nwtIOv_nrCxXvDb>ddT`+PEk7YO28oLwlz%O)y>3|5n(BTyTB&^b
z^MBXbUe3N6lJ}K!ZKw8>)9T$nn{&0Ei~87JR_|2pyBttBKe_RFSk{WrLY?V%9JfZi
z>G(5wVgB9w#@$g_QUOl`tV<pxss3a)c=2S`{I;F(B5jq%8$xG?UfTK~M4ff6e_v+G
zp|~AOc6@x889uq!>IsXl@lA^d%MS6$S6A}w?|C18TIIs2Y0_uY(kF5!U-&0Ei`8Cu
z$D#QdM-}?yIG*(O)TqpkK5)`)*6Rb0!ax6AZ_GDm-G!%?Z=M!M7=7X@iAc@9SFq9j
z#pMj&l_^oF7gtMJl@~`Y3sb(5Sl<?R(6aCSgHrK=OVcmdHm*6hs&vBMtH=6tOKP`&
zb?S{?ar{f`R<7Tt59w}uHR*E7WZo|_i_;ful}__r$8Ok^=Xdi*!~~H!Uw*mj|5qrm
z`2X1Z^%a5iWraMK|9oV!Oiww_$GiIQ7g>o?aaYbwo1812ZMI8MJiDOn^Pin@_oC~6
z>#tuQq3V{+b>xh3$d(W@vE9iF-(Bzf(0*5<M$DIk=jZ}2^;K1$m)5X`#?9GU9lkao
zJ~;TgM$wbVsgXb3r?A`pW|#lsd?><rar6C;2kqDjI_u;TvrHuXSgyBOH*QU|-)&}*
zAltWYk$2Og#Z#xwdT{GQu*0hT$Jg-|J((3J{osPDg~?g}yhDt;c)y1DU*7wwY}3J<
zE!&?ne9imf6KS%zBL0Z#gB7b9f>xx87R@zqUK^aU?Zufd9q+v2zRD>^^~y7xKfEN(
zI%E4Zx$6Nhwwo@vt=yztSbp?&l6mP(W;UBe3(|ilFV%hV?PGq&;{%6}Op9~)TdW+%
zacM@0)!C365)Z{5$tJwo5R_M(p4%RG<Kmk9?C_V|FYI4U&I#S?v_tAW>-UR(yv~)C
z#|{aL)cA2fS*f&TQswgfG3OQtU20JAZ7GQ1Oqr@0a%$p@RXm$i_WMk|$>cYu-T%6M
zg4i{s$?~%Tf^6GNju)KT_cUIxc<<+$&wB+0_jR!T7fWDxP^B4;ZKjIo)6z&kq0z`v
zLD$j@yja6b!Q32Up32qP6MRA=`Xyw#h9-Ij#-^~V$SgoRnKKfLf>TQrH1rdTit@`-
zl5!w(EU7uExv6<2`mmW8@WGAAnMKJtsmb{Tl|?1cO~c8lc_pbusVVxor8y;;1v!-v
zb0CH!mFDE6mVhR4GRrW|dn`yTDoD*s$xJTINi5ROOHEG%O>q_HBo=4r7p11<q*fG{
zCKabbCYy3I^Gb^$^Horz6O*$cYD@D#Gh<-agSH=|9;IXgI>HTQ+b~#!n3*9%!bd5E
zgk%OpUl*<8U#RMEKr!sD*SqSbE64h>)pU+}-@VZ{$Fsv%GU<^T<L-&A2Af)0Cf#6~
zG*9Ko<dUrmWDhn(<Txc+U(h(Y<K2<DoO#Bv#=3L=WJK{7-o3TXdh7DZPwWascZWAH
z&s=R^^?c5I>*v<oo+;^qDxS~e*I52ov!|+k&$AcWss5?^rW8hVu4{R+Ew%7=<(*|Y
zuQrQU*q=T9Xxr0T@9O<^FXOUW`0MvF>WLP(_WS0F*@k<FBuErqJQsWZirKa;W#3|U
z?pko+b!n`xx@pzdm12v%7H5TK_Hs1`E)ADHw?(T**K2Fs%0SK1T-&P0o8EUNSGVs9
zUKp4;b(PuFeZEU`gS4$pxb}vXdL@Ru-on;<=)$6K)9jGDZGDs3rfziZ-miB&JLK%K
zO_!EGkvzgPC1-Zc?ln2*=f!SnUOOXn<%LsO2J5*dKem^;88|m+t<kqBr}(l=Hi;Vx
zvfb>~YWBLnGAnAL)4J^3*9Rm|XO;MB?VYAD<2a{L_xFs0$*r3fy?q+`TY8rN+-uJa
zQWBbG%v1RieB?~zB~$lZ_Z55IPn!4L<G+ohLPw^P|CtGTmwY8W`CqCtt0+WX^8DqY
zZ|Pwoq~7uPNPkD~4sn+L8;*Zw?C>(1H2uW>^tb1$W*>iU`r+TqzfRk9e>2zV)w^tP
zF7SE4{FA?;zh;Z%zIiI^3nxs!#TPGr{J4YCMP8qhU$%`arAtbC8!hJkZxBh|AHGk)
z{&y4m>xKR{$ullx@v^NgJ7r*OY-;Mf)}i(I&RHy+-aGW<!dveqFy}mRUmTb3A+)ts
z()#qR9FeRe?<<ZS*s-T<<<+d@H+5z?ixZj6Oct>1yZWlcLdEBZ7-!|)iyExb#{8zA
z)=q3NR_JX#baBGz(=IP-&Q%u9nVfLy8-IlXU-gmAZ#U-_zg3FPxgs-#?`X2JqFEBx
zrHs?ZH~dJhyCKir<KgCGXl(spo3V(NPVZr_e-n<|uAKgD*4Z@qvmB3CFp1uK(th^9
zWqs4xI(zpTy3bgec=7X!7nb{aw^~%G?kzk$q5gvKp`D`lj27Pg!<abVIIq)t`N5Ps
zzR&f)D*76gYI~kj58m(bY1$J>!$&VzLKN7G9x6@MXiM6WpjvW}u|h^GVUE}JW%I?9
znOC)yUf_EBfn!apRYt?r6?~BsWn~?=dQ4wgStoPPcf#j8YI5P-jr-T^i0e7A>QmB9
zdoBC+Cy#p1hu=1w-LiD1yyg5`I|~g}pMUFY-~aCY-1fh+%XZc;-~V^R=h~8A+ZMb}
ze7@8A!;M`tcWkaxGvax%Te7C_sPL2{%t!7<6}w$#`ojE$<yOPD1@ec~0~psVdT4oY
zR&7v&*F*-c1tO;s^v*Qh&Jg*tD(a6ZtNF%fy`r%a?K674CU_sM2xxcTxRibQ?@*Ty
zC)>r>wW=iUUVr~l(FVO$>!0@QSrT}}V$Qod&;JXwPXt|`Rrl>u$=nmqzVo>(Jvc#M
z#;W%1f%f|izJJ9J%dN2Ads}Z~>zso#%pZIYIxK$v|I>G=fjSSqvZy+?pZDEcvMul3
z6W_oYrMyO$>ULjF+rQ!W<X=8gwYC-?1J|g#UDaPaZ5@Mr^ZYLNJqN5@;`4Uq_}s9{
zJ>JW!tF-zkYt_=1U#xbn=l&K}a@|^Wng$0y^ZAUHU7zO9{+{qtHSmmi$94^q2dOn8
ztM-JHy}w#-n0(;%r;eI83<Vy!JR5c#d-XreZ~6N5rDp#fuYHJqKGk#2<I~yy-W_v&
z_sRU)pG?L(GR>CTAEs%piMc*EmMNrjU;C$vc3Z^77V{Q}^RB*jQ=7%3t)+ay5vS+O
zOC;m94n%tt>*!CNeM_6~h)taRwd@lqr4~ATTD5QN4wgsU(F?mIZ*W|>(LrZ})e?o1
zfAt-U{;2fdo>>(l!=4-)yWq6T()<OV52dCGoo?RI_q!=!>AF6Za?$sWlP*7cpuh9}
z8n*Js3G)PM*+os?{jk&eXE`N6#(zheFvrEP9bX0RwA{bOx})`wc5BV!n9m~1kGW?2
zJJG!Pj{7541H;m3QnGXB{F)qZ^5Wxf=1D7LBfL(<Pus0g60t-0%eL1VlUJ^N%c1@1
zeR=d+MuEc1@2$nHy;WX>Cdvl<-!wC;_W$>9+drISy4b-SVf$s@!DrsvA}1Pi?aB9k
zF!_-ALDBFQqyG;->|C~j<5>(#eVy~BS^lRjmdn-8IKTW+d}Fu$%*APO)-ra@{b~te
zFaB8>lq=PEJxOj@?b<X?WLwkpy<u4^ewDv{Z=f_~F<X0y(3d>{d{#VFtCk<nsF)_o
zyCc%9INtHeyIyVXI4(J{du+<j?=5)r@#V|=zg!P4P~SA^ZT7xZA9qih`nx|k%Bt(@
zN#9Qiu3j6}zWv?nB>cip<v>JD=&7FjpDJ%P?K;|X|NN1q7Yi(2vF>YBl)4*bb)bJ!
z&J~r^9J6DrbDGnv_9rWCt#@iL<KbHQ(V72~oaZy0XKL-AKmF4`z|fWO{W!J;5&6eD
znxh=+h~xNJV>1O^BU1wfLj!XIY^SSudN^u3`v##cV1?hyYHo(KcGcK|OCND~wWoe5
z;&2tnvYaw~N7Pk0<@)eTSHr<8a-e6bB*8CQ1+PQWN1Uiqpzo|-1v)teyxb-gdZ#LM
zp$n)b16ec!W`Wk)r0EywyF$buO(4)BBG6JAH<UwEU=23?U~qE@eqCz1ep(C{XfY9J
z84_9}33R$7Y9k3GLQEsc)YO2`y4#x2%z%(^vAXs0drvG{P#Lgq`TNo-DsG)lMp`RW
zABhPZWNnTPnCKcQz42ztvdnAm_FZ^Wa+%jj`2v$~H`i0Af<$dsuelSCv|c=PMDmJP
zNr}n#iP^_8g?z7G@i}`wxb%Gaxu5U8&uvaNv*9^jSUsOX-adXlYc|uiD!*f&Eu|i(
zJ-m}6cU)jjH?R5adp{X2{kdd4@of8P*~Awn5znsJWj||tIfJ+F_7B#Yw;M0i_NplA
z8ooN<xU%BjEdQf&adF;9?Ft1u0}~g1eAE!|@?gh~fR&~lqU@fB7AY;s<UVS*apR-4
zlO@}aMl18VtEjoR_?K;P6Pi9jrPo7*-Q$q5&|^cNhZ+56i$5HhmUwRlf4=OycGe`v
zJ#TO1>9BB%9{nKf`h!!4@AxBwoGxZF;lmj`!pS#e<h~j9ojtz6RpOhv+_TO^ZG#-u
zwzXo3(mx|6aD3jv*Uz~zS)!f&;p06=_qfcPb^TnmkBflVY)dn>+3`Q!4%Rp>N$`=-
zk`ZO?((@~vJ;{*urqo-RH&4EGzioaS{Km4~na_M#-i%vzxyQD!_gTy6`u+1e^>W^2
zUE>pyQ;m1<zp|H5-|N|3yn*{=(UqrPqig>E*|svjvT>h!<IKZn3tsj6s>ui`f4IQG
zIKTMyNu5%=fR(OUQ@KuLJmD!kxcRtjcyv@zu(V`o#kqeomX#!zR=Yl5`u483o$I;X
z6B=A?*1!0j;j+V>@6XJPh0j9dS1f$3$NW_Dn$DN$&6{;(8dtZ(rhW<#ll^Od-Xg~0
zt8U!yqv9UH|Gfib{}s(>;Gfv0bDb%7<1T~X<BM)i=xJ&!5M;GpD7!>|PV%bK)>hRJ
zPsf=`wa@$B$gl-^=s4~>G0*9e`U&xKQ3w98YlK7vu6N@7X(G$Tv_RK*-|4^WGq*U+
zoE^^)5@pGKG$T#=lRLL&iPX)7k=9N#&iHJ#nt$s0lQ5|&y^tx!6Pl8QzqEdvGWE3N
zYJ-Z^^A@kU5XsDv^Z1m9N7aYTrArsgSa((Gi@UM6=uw>_*`{^Ze@s2P>(b&Wad{r6
zLsu0);VJrd;V|o;SxTwREq;?zPnfK6TH&78@ke^Uk}<!?h0IT1dO~93QW?2p&6UFI
z_bpN|)}MMx+iQ!#hsEiVC+5!AKcl;1g52WS-Myw-Wv`->B2%8+sj?{Hi(7rz@|DcN
zpNB+*=81<$J32cHP1yLt=8aeg^WqS$Nhv(9-0nI>3Qh3pT`;Tlnuh|jCok`T2wTs4
z>gz<f*0tMBIPg$Sn9=;@Ns9+h_f8Acn!3tHYq!#Rm+uesw!HV<xx?D(Wk5~LU&Zc?
zQL8Wds714~|7|bS-6HV8=8Jm!#MI^w<pBw-GVLsk-@i?I%jxDB64a!!%JSruyc{#b
z{l>rFU1qZ^Z|a_N!*g1OW1-;E;E=Rs;wPT|<Z=2Rb?*H1W+u_8kt;7qc5S^iseI+h
zWt`E%_kMDi*(g~^?s5G$$5f`a_h;gJqsL}azWhIZl#=<^gq^+Z_cPP(UEH}JbAFqB
z6}tO3;QyNTw>y?rn&gNINU1HpCLO1`Ir8s=ldiASeiVo5e_r%2FID+&-RF*K+0}R1
z!fHKp+2lScr1^cSiZuCKUATJptuyIsCQZ1n{NO96`liUx83$V4^4q;}bLXC|-~5d6
zo9|MCAkFe*J~wWYx%>wsf4%wcaP#CWey+PyZt;DSy-@q(&sG1lKbN#MYP}q|@3>2S
ziA{6f`XcLp!u$K08Q)LJK52OqzN3EM>yW(C+SUJ_9G&ZMu19A7y&t@PcT^v}v~%^|
ziMmAz7fYU;nV!xVs&sT?)8h}`b!!}EPTCwiPwUjl&ulMEqVy|{$DHO+d2n(%v+s}X
z`Vaoq3vCdo^S}4{rV+d4+FqV}+g821<oL}cxp}AWErH1jmO{_IDKT(8ICK2*dHElA
z|D8B-&zSd~#8NlgU(dUy=YH(V@yX9xYb^J^W2K)~O4aUn8Cfrv-L_o!`jK<$%bb`s
zA)*lqUZKxd7;8qdu1LIR%n^I$j+}Pu_I=70X-#Uc9V$0n?J#0(&fClR*xk8%`P2hz
zruJO%dJrM_V)^gxhN2!*?^f-pp|Wq9uRr5&U2S3av#tMB%X|0guRQC_9gBRT+yCdZ
zttw>d+UdB-p*-rMtMl^P_Agc!nf|=?cKZCYX)Wz1_AfGje<?fprcf)_ikChUrXE{V
ze8@z>d`foLX>W<W-=4G@?pklDvbAZgWq^o~pX;jqlis903ObzB{F3+I+`~a(Yc*M0
zx15Z)eM@k?w`X_Yo6kF5^R-@h`L+LoVAr&LF59g4`}KDv-2ZNoc)Ml(%XVg47MbS#
zlWNbJSG^1Je;yzA<Kd&L^Icypl6pLI){~^GR|^D-?o8WY)!}60k<(%^=i8fuuNSUZ
z_eJVihhyxHADcLItDKHqm$A!R*p@f%-|4&A2VZY{b91ZZypMbe-Jt;+)~R`?oY*I^
zxie~K&i3oi?}fjsziwW!x%cPc`38^p`-{r{=LVT1eYWrE-v6#L@2u?F_VD>Jh7X(l
z*KOZd;c_5}<HUTnyuL36ZL5rRokQYpXhb!+NZ0)RHs{3pEQ_>^wOSeXgO5bKs-D%B
zaYFyr4tonzRpsW=V(kbCkE5Katxp&9Tx-5$_01&eQ?&WTODvu_$w}GXk2i*8r#9`Y
zJ+3uJHZ5;$=||o9A5=?!p6XIAnPucY?fjy{`Es9xMNa<SvqtX9mRP2(CDGggb;*0}
ztGW5F$}T_U5ZF1*l7H@x4S^ThpMCVMyRB1ryD{ZcQl#lM@9$Tco-$<HDcxDIB4hIA
z72TI76-Y@vRW`_+U%z9;THYALgJs75^7pN_S+!ETx7)DtMTO4QeU}aMpT(NHtf<J*
z<qKum8nw~t>a;+a6wNG#n<@$|rVR=zJ2?+Zv`i4VwjqUyN!L2G@Zi$WH$1jcYut|?
zjEYX2k$L?0qu#f71hQ<)&dvFJ?(gf`@4xHrzc1g<y7Rtkx!lKJYwAi$OiP2O3Nz-2
zhP2G_FteN$t>^IOhW)<3r^;FO`*f`fK09@_^P#})(Ge#e-Tfie`)Os`)Mf3i4hHw$
z?k+yf7hk=;^w8pxj+o0l0jgY!<>tme-+Zio^Xgbj`_{7M5o_|qmLGg?>1%vmDkIkU
zbz-MU{K5%xiQjV`Y<JIlTi<(7@dkVKL}QV)N8>bjelB>KVK*z7X{)5=rluIy1KOW9
zoW9LH^XiZ0%O`qPP5gf}UtTG_e$PFYPg73S$R;;PEx!9Se(SgNs(Ved{HzqOvuhkW
zv-#IzBdf3m+asF$Zp=UUj>&z?FZU}u^xpX<xJ}*IWWM>)w2g8a?hhDtcr;uKd3)dx
zSAy6PWzPF$`n#eYc!dAlT;h9U^X-R19x`Q-0m~03&X{@pZ_3w&x%I!d9!>GxaqJ79
zbENr(BLVXQt}_K3G`|v&xn{a@-_@Ij@7{1NnbnoNkKymZ9kTng6bc1Iy<eLw>9OB>
z!}eo<p1I$4(WyNfwu&|8td+@2GdrDlF-joTyI16C*PAn4DLd_QgbHiCS?$y9)Q`Rp
z+n^F?w`r2uhs|cP-%X37XIHMcuxrw_ry5g)*w**v353YBfAUJ0q$#@6iOHGgyWZB-
z>voIJk_djU!j+}@#+cF1xo~#w<3BlTy~3PMXsl$2F;8u(6<*Uisg=#yP?@jIb)mwn
zSq;@k4?J_XOtV|W-><g(pmxR^F8<WQxG&p2JqVuOa$PTGXS>;z2Uiy*nYk}Lqo4ex
ztm&fMsde*hcIv3l@8x<h|L^B*MVBn=H@_+k-+!(kS<6B)^Q7}-q5pcC(<2wn@h*DB
z$Hsa8=H83K{>Ph)Ib>45a;-R-WRwu6b)YeX?ToJVx{#?E5nm0rZd-WR^1&(bOWjLe
z+>@-YdEXp({g$TaWEI<gCphocAK3hEW7TE<$VL|LA8CwH%U7>-p4W4c=jrjrjR7-f
zYiyBRp)q6Y4AF^ewlB)uF!`m*@-?CnE?1JQAI@o9)wnb?D{N_QiyK?zHI+xDyF8oT
zwoK?bGgoCs@x~8pbj*G1y^}S35*{6%=dCQa_`~~{y|LvFEz`F2K1~Z=yGq#nX4azi
zt3^ASZ#sV2AZ1hi(pYnk#7-TD?g<~*O_=}Ao3dO|dVW{%sx@nlzVy^EcY1C0>NVTc
zb4Mc2I7*y8a_rEe*dsR`7F#s(JY)@O2*3F)QC@Fud;nXhtJCMq8yWn)6}Jy}9Fko)
z_u^?|KZdnil9oFK&R8vwRDN46X|iGFVxd{*EpqnE+rBfQWsy;XQcnNR$fK{6tK7<c
zqL;B{2$##`Zp!>&nN_-N-o@2hcO@B^{uljf6M5lrOH5V8ifKJhY`y2}%y@Ay&ps_^
z|G$IRt6GlbDGJ-`MMyQ>S=QEdhiytkex<{;-gUP%{v9)@+<EVXi0!sNlc(O3PTF=X
zbm>f~o~d8A&TM;<v~68!L&&e<=X`rulU9CD{kQ4t$8)P)UcPtd-m7-xdi!qse=BB*
ziq3Y4^*I^)_4<RHH}hB2&Xm*?-0+;`b$Qpf3hzDk25XkSfAv&xOHq-W%A@nS4;+|<
zN`2Q^pIsuKyM3Q`@^_g!6VnnKdyX6X%!1YRKl5Mv*3~9q!tX2Zynew>?_(cj<}cvC
ze97^m*)5LHr=mI8$@!t?#k*|H)(J@nl>|z+wm)2UBEihWC_?J&o4fJX_1JE@tuUGN
z_Q1<!-!s-pZoO+hYi^WV;1y>%^X6y|d8?obi|82%Q%q*8(we20pZV#?0pZUlb{W3^
zotmK+b)zY5>NGFKNH39{MrNx2C-h5yK5qW&g3*>I-HnNFC1+e?ifeFPm#^l1C%1Zg
zp~9hwA<-cPsS3_)F7w!zef0ic;#$o9TRKW7!Mb(Y^bfjMrrG$~KltbR^X9sXnHvm(
z552P&nIv+i<<0tBUnb7Ctbg|&;=a|N9d+Z{t#@s~KJoEE3Bna@Ir}*)%`HrOmCg$E
zSIaKFboF?`*^CSIADrGi+Q_myLCUvSx#3yuryXv(+7q9h_}qW0(S6BuonB7fm9ILP
z3vEAKR$F+<Wijim-CNi4%vyPjn_v5_o|)+vi)|s6Hv`jo>&xf2GwpCSnU#A`Uvb}q
zxcc(xanUORHfOqXU0Uk2(eP?We4<HdoB6xA|Hsy`>dgCiD5*;9no;u-oq9GMp{&J!
zj+|WC$=z<Q^#A<692d)8Ki_7J{3VqW+Rb8?CwB|I_UFp(&oqrP+qih|f@zZS`~Iay
z|B9dF;}D*;@>RH%_$e+fqn6CnOI&juqmw6?wJ&|I%fp|jEyOR;G&5EDex!I#*Q!Yk
zPmb)Fq4IFwsT;3K%nY*cHwrww{h!ZazpMV@m&@JQlB^c-uBl8HC`mWze<}K5_p573
z!Ii2j3{9q7GroV|`XptpBQu2xG%VHZdtV-X{j%zdR?P0x<|#90$DenYTKD1G6d8|0
zF)~{7E18epeNg!Fg-orx$%c$j4+kHq)eiiu=d<^{i7c|(onU+U24m{nC1-O^x7}sP
zU0S!}YW>TgpY69J=X|TLn=?yH_s$kQliT}L&M8^(Jjp3}{P5R{ijNOxtT-kT>>awe
z^Qhbp+ePR6x4L&)@$MHW=9^}mD!y<{Ys}BQ#6s%_%Wg(rJH>tAo}v1D9e&;gR=?g|
zxO!RkXz8h+OO~jn9<22Vm=+}J<~1vD;WRnXWgeG4_id`+EPGbWdF4ObEjtEYpQo7`
z+5av7xnH@!u>XX})K%<HHLE(~9<7-i(rMiKa^<Eso=5H;S+w?&U|hwlUFM&}Pkeju
zrhqw4LoM}uv+_T-d7s^*{EO~XPxkS>B$EF>?&G#F;Z^&(tp3NJI&HRWrFPHbkT>02
z!FDFb-)B{)Ci2a>==!WFk8`%)c8O<kA}PUfT?;f=SsFX1#zp-qtFF3zn~Rm}>Dnny
zx}t|2+Les;CJH_`iany+-Px^XwfSxHqn)=6Z~Dbw)0Mn==X>${pZA|vzWe{bdO}8Q
zTv%(@uDJh>-^+?h?`=Drb?c8q)4cw@vZa6AZ|}3VFFrbR_v`z&zg=PfZx;DqV)d0j
zy6zIM>Q7alTFG_1E#8Aq`pix1k4>C%Qw}c?k!YW`_^GA_-|whPk4<tef7&@eL8w(?
zi}$>>AK0>AzVi2ZuHJe1!KV5-Tvf++sh?Q+@zo`}Du=|A_uQXs+^r>gW#8eSUs+S0
zJPz<<*!My>?8nCyXPxZ*+WA^OYUorfHYtDPbope2n#$T=tg2%B*WaA$T`xFyWA>gn
zM|;hg@3W0q`)ju37p1iAseCHh^Zt^q<ZQ3cF_TkGE=!*6SeN?!kiEaf%ty{ATYA5=
z$se<Qps_dba)`5rE$`iV^ZE`Z%v_&PebC+dwZ>;<&Z@k9UFWlll=vMVFQ`};FS3WD
zRQ&Nmg_M@*%*~uDLZ-~Tn&rD>Caan4+mKL;&z@U?X6}4`cp}&8PC4E8#&M}B!nbDg
z<_jJTt$ZC8TJwA6tSsYMm1?KTP9Mri-yX5+j>viI+ZAzPC1p)tA5EJ3^V#WQ(fGxx
zdrhuy*?iPPOSZb&t#jeMjq(qj>XKF6O(SL0+*vF(`juB%y{kxKNGs`n&=k4jkUW2R
zi;cZ*!=;32K}mHhGtNd$Uh_%slh?&XyT8tlligd>ylcssX?el#^ed(By!)a3Zu+qp
zfqx1)eM=vuy==Q1xjx^Z&p+tHG?BHOp@m{Iu3gU9TEZQ{9lx*sRh6-Sq?u<zl#bHF
z#VZsut6I{Tl^(|a*n6iqb4RYqnf#?X+mv+E@>I7iQn(#c-E(0B+u~`5j882-dO`Wx
zc1COWFY}q^DoSbJ;qIGMTHUafXa4+WU)f_#VtVVu<jZe-th)Nn;^HayM2n)k>sNl5
zCUgAsOb$J{BuB-_GK)_?B(Ft=`WvX(u3mgiL65b{`9=Cx!F!X%{9kN(B(p#<ySrhl
zO^IasiI<D6D^B2wKAJZBVx}^iA9Hy`h@DvIeC{=(KklS-Z@lE`%w#JhzdhPesq9uk
z{7Xv<oA$P&S@*8p=w#e@G;?vXo$et8Ti&Zh@dX7H8Uh?_dyNyf9@ROa&imfA>+;cC
z5~d5y41AcUem$1`{iu(1K|#ymcdxd$xV*W|DRo%MDQW+v8Rb3~4|gS8+_316!%xQ4
z%+ja-7Wss=J+C>!c+4YDYKC9Z;eg^^KJ$lpx!aS<WTYfM@$t!gn#wCPsq{KSn7heK
zslFMD{qDK$(r36VQ1?QX_x<{=Q|_&H52GBe6kE%cf19@F|L2L*4$Pk$I^ozHk3hDY
zWud$a&0q8IY!#B6z_aU!mH304mgD&^dGmQ&7nohUv9fI2lF4naFXlgb^5@gq=#yEY
z+6!c3<`+-+aCK*v{klMH?qlEM_Y}V??C$L{5dFYy^rqaYXwL+_HB+o-S-xYrc#uJ~
z^_{207p;5Ea<{6R3luq3g-rgXG)62>jnpkX)2YsFH)TiSwg^o}qq7%nwutCwPfGuA
zXyVQ0J$ey0l^nU2PkB}O`Fo3N<I&CDH8oC$a@?IB$usdVELM|C#x@9Vp<ti@8`ur0
zEJ#(*cgxQ!0d0&e$}A|!FXGa7EC$W#D`4E=W{ENgkLw%>(B+YkQFtRWtfTObKHzgC
z4AIUw2QN)9fvrqH*+*-FG8ms;l$uzQTBM(?4;zUO(+6F(<fEU0ZQMO4F*hkC5x(;k
za*%m}eyV<eK4d^0ejG)yKIlAh(1lFy`oa1o`Xz~_`sw;vXhY?e=vOnDfJ9&+itlPB
zQ$r)rWCOmND0@OPORiiKo#r+z=NjW=My<jniN#J03BvOOW-pacpK`YKn2zQHHfHAy
zAKyuyzfm#ssIk;b&&}02Id3)^p59<7;5FIg*@X)NhbFbEDz-??I-nR3<8(>h|L|wc
zt6RRf7oD)Qy(E8karOQ0wcmGte;CokcDS&nBFyjFqcy3)n~RIYmY?l$za%0SY!P!Y
zd&<WaBellARi1|)FO+h%FDWtnWW#m*jY^C?)2=Na{FN6!KBnh&OsLQ%aJEg_-(#N^
z{dv?o`!jFqR94res+q@Xf^TtWu3UL@Y3fx`*8CjPSMyKLTjYQG#Ehlqwah|9a!%=A
zeEvjwyHwZb-dFAu?Y5T$Hy(`m+hn(Tg~$Iao5ex@S1r605SV)7Pkh78rAJfM7B6&~
zAH3^kKwwj%*;=v7iH|q<)acDyTIsr(C%W%>(&~*hxvk5%Ha|ELz2mp+9Q#ggi+9Hg
z<PNj)Tu!=Sz$4w5DAVS9Awg3r$Et1VqX?_EvxhdYM(Kn%uRXZo{=*w0p(;9p)y%tl
z(;vP55c{L_?B`j=F03D851DT2zU5-;Ripbc@6zn%IGK{lf`<>hosTHq=l{w(+w_h6
z;oMs)Z|4eTyYHKKMpfF~SNiKm<Lr4m7e!lE9eKgs|8Y*}>Nfjhj&W0UnYtGnsCMoD
zt;u-5EiLx7--T;Q%vWWqI(KdUeK>ggOpUFZLwh5yMliN+>6qDcN#NtrKkU!X%VvMt
z{nu~1!Y93Thc+x-I3sfI?aTKS-*d`7ZnM93X5O|t*Cc049sIv0MDRmS&xP1kGnijV
zE*HHaQ+H9lXsy%c3t^M4r2J%@E0Pf?BFiVXb%EKYg$Ez5SpIsJ^sPOKH{Yk<j(X@a
zqn16X`kCCE!h~t-uZ3@4Y<KdWN^`9b`%~VA1>sXF^wasxw|zeAskQU3<l1X~trha^
zm-Pic%rNp{H(oi-`9Z>T)pL3BsX7eVpLcwkl)HNFmdoltm?s^7pZwcz9?R~T(pOwc
z=9gS$I_MkCTso0?-`=%yVQW{(8Z^}XnO(=ESM4vpwkKrT3~g=iU1#rJ^eF#6S^mN*
zKa2hH?KcIP);%m;u3LX+M{f1blUJh3cBsDLZH<VW)^Oy+f^(rSVm{qgowJpZgX!(3
zoizvb?b|y)8hvkKd-AeoiuA$z;ch}+VLJZmKciE3-4rX>@#esiQzftCBbU5bBl@Ck
z*|7!oDy3{!Tzt=j2i#iOqFgb*sK3LOTX$FAgeUwL>J$THQ`q~QW`4QOJ?Vgn$t@XP
z$9+dnY9^*gXSkJJ%3<&IyCt~6^z@`B_Yd;*hc;;35eeO-^y6WK72|V9r|qS#jg@n)
zPik2?Y+WTSpK$yB#M_J6TWfpvOO~|AOqy(bYFdK%-ox^FFO$|EN)ckyJjo|B$@XOM
zJ)4V8;``Ndwy$d2)YdTnuH?jWBl!UNy}BMg3OrV`-Yh6vDsk)mvpQjK1!X4vXvx{Z
zE4CJ|NPCbfd!~6i|Ki(APJO-oT2*V`d8H2(CXtmDo8KH;vAfI7ahI~<`afdK?!gmS
zg5S=ZIr%~apYNgvW$k>ACbEa`U%Fn`rrATR)-UqSfh6w6YyAy}wHVanPb;P^XqWj~
zusU|b-a`>rJU9GuY-#?kX(7wk=E?tilYa`Er3vHT&~}Mcehgait5r@pS}FW~Do`!>
zZ9)MnD?9U&LLcAxJ#I(b7heCnKuc=2;8FiCf*adz1jVihd~3P>9OLc+vC6d9rw)IX
z3~A|EA!54VX2AuQ8AX2|J-m1Mj(PaEFYGTTFz<M~XtH?3lv(XFex5gaoL<AFE|b&5
zt-yJ_;JN?Z->2_Ou6XG?_srDYzBak}O!GFVY^{DgZ%5I^6|YM4xcX%d-0xkhl;oYb
z*6&jVQ{1iNzpt!Xbo(rqlE9m1Dof%wCR%!>2b>DtQOmaY3G=I2`<LBdd((S#&VlYd
zv-7^}4E@boR&kR*L058phWJmbd2`dvW~UilUa>hqrP^uJbAFyV9*%F{9g6Q<Fh&1~
zOI!)p7U#2k6?@+r-R9iv*?&jna-#K$H1@2O|5wN}Sf6ilTkUOoQY!zP;3xI9fiA1O
zC*5KyoVj{EZ{W;%0rxE~#|wX8`QueSf7h$^nk&U$#VoT(n(km;_0u8X)3(Z+mpAl%
z+4Z+q>ygyFx$&v%ywZbKa&P!q-;v4HmvjHqCgB-(o@ym6ocF)-i0Xg#q^loe++E&v
z+}^x8`bCn{*#)+1rp;GoiK;CM==-c7bZy<*u0y|8e46uWhP2o9I;F7x$(R3J5;ggr
zbMI^SUTL$2C^k_gVJ*k7DU2&We)xI1eAoH84|pD~+tlFy$)iVwy}IUY?(^ep{FUV_
z-^^vF+Ad$BvfgT)ui1lVSvpRpo4Zcc$KE?}L;A|w3~r{0_k3$vWwtI-JsNc8snj!x
zaD&emP9z(=o}6c~SANo+r^V&f`Gy4_K2DLmQ+6-pd-D0M=VW*n83yf*m}2LoI7Pn1
z-Fe=!=ri{ks#b`8m~&HOhNMfd*yNl<nQP1Y9{OAFHM;lm8^d>19fj2SZ@yosn|@t&
zSA&&A;eRU~PyM{#wn`Uc(q09>S$*hL{I|lZ>u$V>{ZSpSz3{cmnt;ef&5|6|9bZ<p
zxvpT#b<g~N<?zV@Zk^EiZe<DI4k*RC{gRwf^;}@irSG!kuTPydw@=Lbo2xm?<Z{Cf
z*ULLjatB>cH_R&C{BKg${>OJeIEnQ8?(#ekSK-P2JYYiWo9`2LZTlhQ_3XmU`M0h7
zx1Lm3wK(`iLX*GQ<08WgPbM=>>TiBL<(~TLcZ^?;-aPg5=~w-yPYbV_zUEoUBjvxc
z;@UFLSJymmcOPz*KU6<C?%6@#Iq4GXlis}BqUrlVgLC)GyhAfZ#50`uCzWyeD5O~&
zPUT>`{i)ND?c}u5=xHgLs%!Hiw=bQldwN>U1LqUdc+CviW*%moyrhxOq|LA0z+^7p
znG(CoYctDK)u;HKGRb`YyFC5-_kHg_+x@PY<#Oyy|9&CCb(cL;R;+5Ay8N=^<f*e|
zT{))u*3NHQai;WRld;m7M)e~T+X7c|^M6p7JZsI#_V9m6M?Y;{?cY>c7knYZy|-#J
zqgm!zuU0?r_2=qVX#}@lf0@wQYcS(WRlo4pNpim&o*vwM^t<4JC3inpeyH)e7k#Vy
zDqG95(1S7a4{3aHTC{9eg1JrY^LNer`QDyzw0tF8@k;lY+un<_uU(3k|9+J%O{`Ti
z+1T1>(ti&>!`;WNnii{_Shro!PU_Giht}4pMA6#?GJ&T!8y5wpAF47{TgWrbBfG?E
z$}X$b_h!5~$ur;7!lpNqH7h_cUfZcGJvTwRq{C}kT+I6wfd@^Kwx{hsv&K|N%KVXu
z^xm?Zx=V`cll3QC6*-m&z41#qeo*3vVz92#mLSHGIpF~_`Zr`%2|u@b@$Sfm*LM%w
z{yovYZmZYaWq!+#+6bQs_}iHw=cHY1x3#D0?N;vhvDW4`7q0fD-oKM6FXlSI<HGgF
zhxgol*RAPqc9Cz@v<ENzIuo?HS6*s6A+~t&M)}R#X3fq`Tp|8v%f{nOyI;#rT6~IY
zrkSV&ll6Xg<#kF2Cu$_WkeP6Krn}AO;$`<zHq1z@I=yvQQEymBSBcQt0QS&q=@O@i
zJoPt=Tb%AKSaYZ~<11I?N4>6oZt+z+TUPMJRn^^BX*jU?LFtAspZA<Bt^C<q!<aRH
z?s1za!9UK^FTUU1CmDNBTTML0Smj?0ucQk1CqB95MmsBS#JyYC-2S3Bq2<)yk|S^S
zi>garT-{KvuH30IKlReD>7IsDcf~2S{gj(&f5XkqU;foym%SeIk6u}1n!LY~BW~aC
z^69O75>j*h7CO}LRCN#P%6a75GbiWQqUTa(GE&mJdv=`5<o3K}Ah~(^#N$twyHA;@
z@^9~-@0rj4@2Yth^V955t=swqn^|quORQVd?Q*^D=eemVCFCC8c6<L;y^MF<!K@|q
zJ5+w?p6saS*dr_XAokbuJ7s4dSohxLh}Qq{;NYbf&s?u`$z)w#)XDq(UvhNW#>e~1
zh1bs0o-s3}X(}_n&D;|SEy24wqMSvR+I?O=&1TgEm3&p##1ETq*G)3C;?46-S1DJW
zZs;k!m%n7j;d`e(*%#HPyl!cl=HSi2$s)pK9oBSumCH-Ti4&LYiwN{~OuTqe$WCj`
zgz47<^qqD__P_n<HLXCkd)3-X)+pskITj5Wt2p)xNSg{aSIwAW!CJFz#g>8z*Z&)^
zZR@cJxPR98Kz`qnO~2H)ugb95Fx5xT<L!+6S=KZEa_(T?G;>Ep_jS(&wQH0P8ZP-1
zk@2dTW5#uv<Hrtv%+R^&CAw^4TGg?c4|hG@%P!F6XzTvBrK<Mh)4$<%5`7cxbbjyC
zn0{eZ_R{K*JD<2Zj%uk^aLmr$P`L4&Tl8+`Z>RR`$>Q5Tsnn~6-C%v4*)u0cw<7;#
z7d<6-UdpbX_Q^jZ$nHy8^v&dnjkh2Fb76b&FHdRlv~%}P9C?}D%Jt0j;WxGErxV>C
zCv4t%Q^>$vzvKwVUVEO_zaKkidt5oIcQ4k-u)^BFb?Yua4*7Q)_O<_2BJySm&v#qm
zc7L6wwwBwIq}ucoH#3V8_FXRg(9He8#r045ZoWAul9$d&w4P$@-g_smAi1Vu&xg%#
zR9-N4&-`C?HjD3dgsReHDdpUA9m-9t`dcrs8{JxCXD^fdeeeENJyENU_-17<zUT6M
z&&!1PE%KQ;mt>z_3Dv5M`03?TonpE~X!Vie8S}q4q=uPPcN(2cu1c|s<843wkZsDj
zZPNmZyH5UVnk-lGDN$-wp41f;zNIVV8ejWNo?bBf0e9=%_UUhzPBUHMyQ8%)tIYV9
zYsr$u{G1lAv{#uH#dJJ9^G~CAuR{HIIhOURZ<us4zWr`~Sy;5HGUwWY7gw(Ay|{nt
zB@u>sk*9OkZawLDK}Kl#hMCJamKyAfai6WW<DdKUJ08FFeSPbbm-uh@opWufz*4dE
zezt~}%Dju)d2`<!U26Ct`$h6ohTjTnlnQ!Tmd>BJ^5OSiUT*D8hTD00zwA1;-%Kc`
zXL04FTfM&p>*nq~pPyw`X)w9}g7w2A`__f}ZCSo^`Te(z>*l<FFXI%Yqcv4j`|wg3
zyO_7(yKXn>&V4xR#6#P5?|XIZQ%|4rI=y7&+Ne7hHPzGOx{TT~7e?(*4n2R?EG6sJ
zRxiVv1=}mOtlqivaJO0MPJR2#+Sx6KYL9Zveo=BhQeHOZJ2y+_M#BTMIRmCJxWDk<
zd_drGLZ<A?rE^uUynXAh9qsxd^=Cw^+`@^nA)8oVZ~ZEu7g$&j@oL3)movJyy(|7-
zzMy>G_1E*FX?%R=|Lp%gVfXfubVI9UD`g_u_e|VBRr|=f><C#_kI>#NAq||Tm)<V4
zSXwYU?tYS^uw1=T*OnVca^~$>@=#)##`NjhrwSeaCT<nTdT{0W>dOoKwjWJ)=6!Z-
za@r-Sjjn4nt*h0-W4?w8-}7L&cG+q}w`=Oh?{<5qZ8cqbRP|+4l&oO4wDS3*2ljk^
z8FlH;3z`3c^B#0)9Nque^Ivz|{h$A*&i|OXrn>L{mCy^drphz<Z_VW2R=Z_ZRcBRW
zl+)f>#V_YpCn(N+F|8py@RaY*8SJMPU2kvVzwN$Z_Q#JGG@tmye?0c+R=C&p<eh75
z=S&I_`oUd2;g&et>St1)S9@;AHA-$cm9|N`K$Uyq#g)FR!>tUa-+ti4wux!+Eruk|
z*j_1)i;BHhpY=4CP7`~xWAWN2I!^a1pEo~EsMMO4b91+ERDZ9Ax6{%8rPGR!83vx;
zvTb|&-n<j<USz%hot9U*{olHi85=H2&VD8rr9bum<oBz7dusI@)}Fi~CR?(2-sZW*
z!FN+iANpoz*RIivI^93D)??NTF|I|WHVsY_l;n$;tWG#S5Md8+&=%(Q)!lk2Df{O1
z)mK-9Mn^}l4UK-AI=8!O;jLX6d;cGJfAjtKJ?GsSY<#LNKlf=!y<qw|INP;oahr<q
zeSN7{FZV0-%h?273{p9mS0dBskQKtaL@wWUnXcJiR+WdJ@9%5+W)Us=-?r=a`zIM^
z?ujyIzqp{E-mvKOE!(p2Csp|YFW&LBKhiiIb;~xhVYBqTZH3z>C;WXQvc2Zh)=aK7
zv)9y2`7OKRpyI_y?;{@3t#Y4Nxb>WnHvi=GRP48|XxY&tbNQ7TC+CT-%vh`ADdXGJ
z6u2Sbl)G!H_y%FyBQuS*8+?xzj(sZSx}&)Gef#5C$vkB{HeXxyMLPE0it36TWhuh*
z)ng;~{_Ips@lu{>kot1Q9rkU7pM^Sg0vInJwQih$QY1z+PNSpo>P<fV)MBMI=aw3q
zM5nN=Y12Owrya0VT5wI<kLZJb|8llDW@TPhY}X6(t>4Evx5eys?}qP(rlq&8cUHDp
zvF1i#ms!a-Hvizd>hh`|pASFLzf|X2u{_c1lvn5yvF>-LWZ0TiLaNf+5BC_peYosz
z$C4S>KU%u}I(ft8MPLeF@?*ZX-_y_TeYw-dgeA9cm3^Jp!nH?_{^9cSQ&_V1SB<io
z{G0_b8aFJMCm9#~`_ojlV%wWyhdmz(J}+8-AlXC2b(MpP@hi^KHjTfH1t}44ri)w^
zU447w^0T{TbziJ9vg<!%aKz0z$Kr(44*3_(?y*8mCT6dX?ns*+S-mMFVom6qyX}W!
z-UU8tKDX}QJD&wgecGv$3csG%+PJWSK|4`B#PG{$-wEP>bT6`T$K42titY5e`mo}{
z!A+YhzR!5hCM>L0!yJA*AbQFr)=RsqHPaW$_NyP?c|~hoZ*<+;(#Nv*OWuVa_{8n9
z)z`H2>58}<>C2D8eoLNe`&Rrgz~k=Hs~%sUvb!xYo^Q9GIWq81GS|trr4yD3&YyR2
zoAy~=wj6EyysU**yvsio+ncO<_4>#Qxyx%$_&kYB;Vb`s@m~GAzy5oEZ2n$k*S|`A
zLKFKFm-`E}%Q&rbuTI-?)#LQ%>4)NWSRQDX+#Y=(+>m?Yfp7Ab-A&!^bvdnyi|V)x
z7@i8<yNPAA)|C8He~BEe1+SSlR4_C&Fvd1o>*nmO?d%)kNno_r7-{J=>S%3hVQFHH
zeu2KfK6sULTBd%XegOD>NcfqCX*v37prKfA(2g?D&@=d|$ix!;V*Mc4%4YaUhDrKP
z`k<2n(~A<zQuR}FQ$V}Lpl2lJm!v`#Mpx*E>VpP)6O%#rRe~?YOa~ujSf(EaSwIb5
zR9&i{rtb>A60;m43elaR@1|d=AE6IlNS&#ls2{@>sb8h<uAc)r#nDsW5poM=VQGFz
zYD!WL*uW_LEa;$gwm#?v&Yb)_eGk|wY_N)4*tv~9`YHOwskxcS`5;9wQy>n=)At1h
z1?Waj=xT6?IOr5d@Rm2!A!$>LQ<K3W#0*JWnwWux-0=-bPYKNq2!1JP_i%y$qhQ41
zqP}^;`PvT-tvY%;Z@1o~4Qra-H7p1{oyx$t^QeFm$Ib~YG5#ldRn!zGG&DR|w231w
zKx9tn^s;S_w?1Cyw>&ic_PU(8vCDtY{c$r-cy3wF|1JOioU1wi+xGqEJ@1PpJSrp(
zB^V@KD!ycFT(;)iiJN~v-YQ+FpPebQP~7;1YNAQwCGNwW_IdpOHLZH$g!V3Anl;~^
zOJk;jvDlR}%-?n_Jeqx>LS@cDj{g<m4{u#DmHfIVtuEAcX~XOp6OY91uKetlSCwnI
zf7O;HeY1m=R_LtP6=dNzy|d@nrBy|a#aiZjm$l87b}}g_J}rIf=b=xV!b6N+Wmon#
z71^0D-?wH?e7i!|i4_|vjv1w-zInDGULpEX(PA$l6^_p;%AZ7ntedX%Do--*m~ybg
zWkM92Qlf${$DuCQ4F)X^0(ml@Hd}g#Hq|sJL<<YpHa%g#&2KdS{13G^Y^U5VUle|r
z^o()Y?4Po)ZLj4k2PyNp{!r3${d3}6YW%FlJuz}WExaUq-TvF$lKq>I7kg&f4C~LU
zp4Ey+i%pl57qtI4E!WOy{_&fqe^wp5*eb94CUVLi4mF>otraGIy7zWJ`K#I>AoTc2
z(54x4o|+ZB*Adm*yL(NQ<lZ|wlRk32KlN(r_xpDHv)-?o+{xPMKS^tnoSL`_d)W2;
zlfRrhEE4)^_sX9S+9j&Q#D4FpbJu2byp_AZ|KM)+pm&YF-yI&=PTA+S|Lo7Mr=<b0
z=gho(@)9l2mDj$Xm&AX&dROg^$_Amzlef%Ln?;0oir%x^Uth52M*N%;?S-PbF3LRV
zPKKu|PnO;<zG#`VS*~z{^_;zPmlu35+<U`cF6?yc+5c>PqF>*%bn~g^PZjdjo^exW
z<0K(Xs}+8qq_S^whwSrSpL26&z$GpFfX3{f$MhsElZ^RG6Yd7JM<`_2g_tQxR2wip
zI{54H5uP1qS<bG}`QfrNeu|o&w?RnCv&Tw}UpuC}*;rQgb&t!()<e4%buTL3zATMx
z?~#?SnG;rCJk+;PJ?_=V1Md2AEGNs`;<P@!ovOdj$uT~F_k(vBn@n=nERCIF+7^M8
zbyv(SUMTHR@2|-_^v26e+gySrD=B#LicNC)SAOi?eI_<d|7YohNwL0L1p>~!k}$M-
z`~1dcyX)%@#@s2MyXv)awh7lfp2;_(tE#Jax92;GU1f;8?WK55*~Rn!%465Wi=W)w
zRQu{!i`3Mb|Nq03+xGp9a?dQUS=g8Hg-gnTIde{#_~m<Uo*bO3PbOqso3JWtS)=I+
z@w!<(hj+5hci1xVPrmiNDF?i*f8=Y-K7J?r+k_1qHV-V$mBp0JOZDG*=lc9dea2HV
z8gedm9BrDu`0@9WS+_ZrR|}*WCTGazertA-XYOH^VXfz0^L)pZTs}@cL9ba~rd(1~
z|If2{#@e#Q2b;E6>+nrJmYAU)f7q67sm5FGJx4c2#_;h!n<zigBh{$6vElSXtz|*3
zFH2{fx|e1c?W-m%$fWk`VEbmCfWL398H@N_I&XQl^QQIc%AD3q2^SKjx{p0#Gi+d0
zntR3NqNAhf`iplj-Ot}%euHDe#s~lR%Lq%H{@gg<kJ<hEVTFr}xE222xWF1<(7=|)
z#BQ;TZ}ZKzo1uMSOZ{#uDQjh4{=Vk;>Fw5OT_^l@ZrRNhKb?cKV`;CruU#F>J=TqJ
zd!zH!PcKs|{rltQX21I!nH?2{kKezZ>BYMAVxq3z+@*`}KG`6w(B=0uWZOKu+Rs8O
zs%$RptmmJzowKNXLWyk5!JS%vimu;MInmmE?|;twk_{zV9m)x8HitAr{ds-(&Xn~{
z692PU-2Fpl)>g4i_nTL5Ix(Xm=mm59FNYcL&CBPp-0s}V$<=@NL&MwV427BN9@y-y
z=2?)p#`&@J8F9{*s#hNj3Jp|O@0fD_oZj8geZ05LubAAp{`U1-;hE9V(pPIl7jA#K
z#_vt{#eMm9>U!@Ne44ev^yUP1UFop?rWGd}?Z5g97+qgbAhO@6tng37=Z}XbJv!_q
z`BVI|=!Q};`5g*(ecoLT)q2gQ@!93~)^)2xFVEE8S)lmjN`$nokx_be=&8J%r;9}<
zu>E?^^l|g-ui~%#1ofxoJor+=UvJh{UbeC#wN#XSb*uaD&=j5-zpiKOXm0-aq?b*(
zEspW*zvsJ~52?&^Z)DH1d>gX+mR|=uS3aZA?)oM_#=Q<s7BX&&IgNwNT9wupoUda_
zJ6y~9K|*Dt%yIR3LQ1Q@`}9ehNB5Y0+B$2$eS6cvhDnRV0<~<HZr?iTvUKjrpEue*
ziJ!c{?b;F}w<yD4Tj`FpW$ylh511#E3hy`=_U1U-fgc~@GCmy4weMx^e!J{(V3pw8
zM>cWCb4q7vXuo^+rQ%K2<U?+UHb^UIO4OwFpOyY{Ni#IF#7dWOr{?7Z;ma9jH+5z>
zX9j=R%Ijqt$Zx)``bf#PR~o!})4Ecl7T;Q{!Z?d_ve68$wM%?^I(MyjaBEH7F7|cl
zSxXkCPTBEgT3zw_yAm-1Pvh(h`WgHuh&tAHU#fQCW{-%J)4zK4uG7{D0jFm%sx7;C
zE03?uZ??1E<t<*NNBCYOIB9$9Et=K*HCE-q#xf__VC|(mQ9kcDx)KU^G@a&Kmhey8
z{qTNw$9e6__hNRu4qy5vJS+2TR=2oIQ-;9B#d3BLXIHOZ`CWTgwQXMV1nD1)PvX-4
zFa~Js;3=})S9U5>>Gs-ddD_ncTI;xXu1Rp%`pRQ(lx|S+!X>=69<6e}wYjv`6}7RH
z71r{uU$!y0rsTopeGezFUwBeK?|E{?%XST0X^kf{be=6(v``=*<CcijqoX(M?UMdY
z{+Pv^^~&e4o0;Ld*tOB;x7aS9x7hEhll%6qS$jicK8AJk1+5B+6ga}A#1imi8q0~V
zD)&$RWh?R&;dt1m-65L!_SA!|8et(Db}cTumAU%z%QxHdjpU7Y$7kG~d-LYpn=@7F
z{q_~#`(8Q!d*!^tufIsit}P1L5gWGqw3J=>6=|-1KP!%KcBQ7}O;M{j56b*uTGt`#
z-_f~x9`hr8clHNA9k-S4;J;Su{&@3atE~46&z(+IE_nGx_FYl>{m!yu^?n<Z3QfLc
zbnn>vN#x9)a}%l;I~eTme6v+!hqg;#lk0}a4DS5PFM5s{iO$}o{P6Hssmz&<y<Qnx
zr<R+24Po0AX_IT?KWAmw%0-e}mssSO`lUSI<v+X1@4Hl$#PZ+Q85T{;aq#PJ$T=c?
zs5Yjw`s9v<?IxQK@t?0u{P*1D+d&`GkgM0PT=&SIV_*GH`q%Fp4^=B3O3m5yHDT$R
z<ToN`UVI4M67s^dN_XM@$m6%3HqBX{Dp^sKBN!iRT*6&;pvQPG`}HXjVJhp=CvRKl
zb!xJA;gw6w7D28HT+Fs76h+?%OD`=pzI-bpMB+i$A752j9*?TT=Hx>cCO9s9F614&
zJvV)m@tkdk=V<F*pLYDkl#cM?`8BrJv^g$yMjluq_<$*V&xDtvwYN)d|G)A3=<{CY
z#6^ERrmo-=GYdKWQ#JJZg-?$@nO}Oe)0W*%!y~=yU8ej)JJ;o{ZA`1P%)3JKtfcGZ
z=e0}PAI!HtrJtMi%%SAd=J)L{XLnAYmhkdW<>|?PmiDSwTc58y&3t~=_Ke8gP73pC
z6oRLD*KGgxF5G`!*>|y=uoVSNai)%&=Gs+g7uX2waZdXs^=9E2xq~@s*Ioo=czxwE
zT|F`V(a%>pOHDTiB~Gj|^13Lv>_|h8*1MSdQ%@@!#QqYw_o`7s{OzR>(UV(#7TIdg
z-Y$PWraQi;KWd+bW&EluC!T7}D%Z%}=C%Fw;ahX{jx!Yhk<fbm;E&eK;tdZJ(&8>n
zf7$oyMN#{vZR<9jN>8;;Y`l?CEOat+XGCb`#gMFu6q5|g+>?R2j8VNTcUipueApd$
z!}CPp;kTlH|0<qX@9I$gflu{4$AV-YpDKf>)a#sk4t7+ChR>L@$}j!WcgyU}7L)z*
zA4#rl4F42kvQNS6Rd1B-S#GK6u?9ES<dlZqPgg#}`n!7P$)6QL@ABUDXMU{AJhSYK
zxA@wa>DO*QS{%KJwNCw3fJ|-L@98RhdpR~MzN$NQcIs@Q;4iy6W51O5{&~Txw?h2j
zZRZ5(9*(@m)gs?=4+q=dI{c(QB{#4@HqAfztjo4bZ;X%RO0IiRQS$rOSO1&p4p$HV
z(tnZ0^7*5W&&2mNdkp@v%wrN1xBvI~r&-bu!w?>+;@UfWn^(=+$=#cNK0b9_#PzA`
z{10l`%$|KgVg<)(o;~7>wFkpB=I=4H_nxM!y-MfH_Mg#z-rW9iu|9BqdX`0D#dZGw
zk9EZQ&nsEY+@h@Pyh=qoamIy{QJ+k>RJQIqa4_8}(^PTMWR|cLWADx>%(q!5#wtx{
ziR<H#ZQ4C$dEbf(!=R$aYlSK~C%(!Oa%(QyGk4W0)o`x~HZ`t4yF0>LpZCqP`QY@D
z<A`wSg)L1h9_FvzyzH>#kC~@V=y}?DEH`_yjqhvE508IWCtV7$`CWH$-y|m?``5N|
z)y=;po)?svUcdgg;Q!L@zv}DeE^eQE{`dpe)gKmqDfqPJ`_EU*mL8`MU3qtV`#Yn*
zvg~#d`-}6#<l0pq2ZjVMTy9|PK5g>r;A^Jrf6gY>uljJvB)`D#M>xwwUw<}*Vuokt
zt}XX?{=E!esd9A6rk|4zE}C*oh0XuyWzUS+*5w+7FRJS6b9Ke9um5!S%}&14){)uG
zTi3R>wR$_Wq(63<)5N_&X8$jS?!?5?3r?2z=Wb}+@>t^Sg+)R;88b!RG=_Tf>n9rQ
zm2_$8t`y+6+`zi*Zug;_OLaNXi!{YwSuVe+dqH!%Mrql>hsy3te^2`Udg_^Ho7!bR
z{LWYW^wHyN(9(M+q&<%OJpSbN_o4uXAm)P-mjZPDv{_A2u>Q2rFDfrY+WQ5UxY5S1
zb-~T{2^lGG@<N`6a7Vq{;Q4Un;?*)!&t+}1x=_2>N`ZCfk>2T?OPAfrJvLo5@o%{z
z_w{R;S^3%KTa3)kxBSyCfBmMHO;1%t^mmWj=BB_8w~Tn(i;tNHEt%e~{=wN$bCve;
zK9SPq8%_=)d#df3Y!+r@9SV7~V%<W{sab;lAx!7x-V3L%*z)SF&&SQvr6s0KV4ce}
zX};Uzb9)~@s{3ZU@Ba)rza4F^I@cb}zLL73!{6%dir&VRlQz!Uab;<?SORDJ{iE@L
zmTm`g9o4)=&3R&zI;Qo=-JfQWANeFksQhssn^Qf<1PgO9!B;$Mm$GbrV9?s0Yw%*C
z*WtWaUAZ$}IrmOINSV{v|A1?cn3{f*xPysVR(V0cT$sIDeYo=4sC*TdqurA}UMUwd
z&R?^KYrV-%#b2Bk?)3Wa+xLx^c?x^6X3=56xN|F)39R3=%g1SJtLgz8E@ojNc9(^v
z+m#P|{lB;<jOliVYMO)Ko^7A3ZRQ@9-X5Sn*X+tUo2d;e>PxTiNydr&w%Tr1`1N=9
z%y8924H>oelX7aE>gi%Lk56SN+1lZh-!y5H#YE2qv7#N<KXyEiY<7%Yp*=mxN>NwN
z-Kb*MlluYp8pJ*-pPaBbBy7z@!ApXBei&@jkvr(*bd&Xj`2S574{uMEteo_G5qCHL
z`joH<Yt%ce=aem++Bj3F;@sSAv8`OCk#o)kIK~|5TqBpV&UEwF4S_jkmS?uiP7x}r
zxxPQH^ncS8Q5&NdqB3d6{Qs(J94zS!7wEfrNLH&@$g}<Llgmm?-3D%dLyL~8PM?}p
z{Ie)%<GcA=!m|s6uS*^^)RvL*_#Dtxe*3PNQ`D`KEf+Y2y*y_7FsUs)!WyI?pz(nH
z#<ZNC`%JI5UV8QJ-PAR)C;cV&cj)fl(DU|KD^sQwqt7Abd6}0Q8W|=}IaktVv~aKX
zx))#8rAR3lG|K;c{qfbj_ciw|@Bei8voq_(+RvNbD@&I$uRic^)tR6lHlLdwI){`q
zzg9VX)$H;jC;y$xJD5NAREMuwf0sEd)?*^$4f`ML1`F6%&aJxlB&My$W~HX1q2_~E
zA2v-gSjCfVe=+?_Nzs?*8h0bA1E%qx(sZ03wf576vrqHbEG4BA)gEu?EnXn;t9ohB
z!jfy>nDTrbqpqz!bK3ZxW3k`Y1<%jLJ+%A%qUQg}-RB+)K3TXglJ)cdzriNCKR)le
z=p55{Yl>`2jlii-;nzMZ&RkV+Y2%9dI-I`7-`M`V;t=K%*j?a}msc!y;@qj0n?0Ay
ze$UZASjSZ^!KZ9q`d<F79^c&CcLi@;-_HIf?F!5G+ta<X8k)Z@UeWF(+h%g7$UlBX
z(NrGKSkKhu`#d^ITxQQ-<9l_{u{hHeGHJ6yKb<f0e6Y#LAuNsU%%zW0Z;NP_cs$B=
zDB={``(04$_QOZwhSqN$umAeCapFHl0na_hyi<RsX+D{*!1F>!ZKk|_rqtdQA0I9`
zJ$=&F*juH^(^vg!pD`<84qxNxvuu{L%?|PGef{yd#Z`j~%2PQGXmZKSlQ9nD)}Hpi
z$a3<`o7>JG?TpjV^zkoF&)&RrolAt~-aRiIo;}pptEpNSS^xgi%a5<Nc)hh$j_OLQ
zH<JoHbT1^7?}Xy5_iBw>Dzr6>o;nrpVdM+_Qn)qgLagWX=-fTss)oKSatD>Wni@=N
z5^hQSy1o6PQ|Mb6mtsp3X5XD%zgKEa5~#Q}g?G)KSe@(k$-Ao)&u7SfFsiHF{BhIN
z)04GBv&*?w8V8rRRLl+Dvig{Z182=4jkXDXtAdM)W}7wmO3v<>vQIMMPWC)glhaGG
z@2H<}abf-&7gbnUIa@=_>PF?W`;Xs0NS{%;eMer=y&G!^H~)XX_Rxj*8h;inJfa-=
zMrNPL?-#spHLfzbR7y85mw2~9a9)RL=#sUJY7<_mEj=!M=_2dlxv>g!G-BglsaeLq
z<o)p~ManSBURC;Df9&E@3SX`mnBH3zHTANZtNJAS$1gWN-u~(R)2iPO-tFUf7{9Yw
zLCC3JeA3FfW@bG+nu0SPt)Axm@#7hD#?6}jJlyjo#9F&Me9eU4DzLpy`gr69*PmI}
z{I2eH-Pv-m?f-T0jOj7DRyPlS54~-&mN)gtz9nnyW`=~lo$742>8`Bm+Kb{*lP(0O
zZ+YWCd2#72Bjs6^;(;o=_qKjrkbBU7-f>~U?t3oM7s^snlP@Q~JZ8Dywt1OcrtA6s
zg`Rip`}%on56rRMC{fS9{)mj+k?#Fb^PF>!yqvU%zh8B+bH<g9d1edTFKnq_crsmF
z{;y*D_d6?dzdsBW`PEo<Va5qlah~*VPxi#UtEjqKbWV9qyz%UV{Zbqg1V68ul*aT_
z-}lAd4~u76Srt6n_*SZ4Px4~<;pgY(E%x7EBIBRB@x9!}FW)9F`(7`5n)8aAtyz!S
zgp#kjb-IhW<4=72*|#RB>fpsg_VeHUF<LNtfiFu+<+?3T^3Np}Iqp~-TzUQa(Sxfz
zWd9yKcK5Z^%}Uc_Gux6imXvAVYna0|)h|=sxXATa<WA}3kH0>#x#2BzbMsrz7iR^x
zJoG3kaVlZtO#PLms>xkpGwJNfb=7mF&Q^J9T`&H@Y{6<D!ejm|wcxC4@4LxMO%E*y
zWz}@HmNLF}akIFM<?o~6-(olqmDNjYuNL_!xSh8{j7caxpep9ug_Q4(^L4JX+<bWW
z%CT<`?*#MAa?)FP{G#x3Gv4)i59WNh`pl@_D=#7U?(r`_gT>D+Y*(={TpzSb;EYaz
zr^6D?^<Je)=Up#%>ZpBD%M@Iczw~hY(nBIET9&#!JG3Bs;mMt+k`-?@tKU?fH*F7Z
z+%{p|WeF2xqPDza%JDIo!f^7@vuTf1t=#P9t=Z!knHLmkl3njD{mbrhcE(hedrw!2
zH13Q4wNj`3vfcEJYPV!2guLsoZ>s+Omc4pr!q**pBX~u{B%^j1WlWcTp|vTeDaYw#
zOUW#ko~`PWgtP3dp6ri2%UY>mZ!6ywA8fpVN!*$}e(?vD&;98(M|GlY3-(>T{x<)i
zUbgZ3!~fEcMx2_dJvDdv$0r+)&KLeCui#Z>P{SNoTw--Ga$VUWiF?<@>dwy>ni9Hc
z`iV1)+jcOBh|YKzc5Es`_|cz7^%9n?Jtr$?-hIE<Q+umG2FqLbCs%$+M--Vg>+XzB
zi2I}L6kafYx_R}^!y8|RShhIn26OK{BHNibUq;)<rhcu1v?<>o(?{8jnqD=!T6y}B
zH8v5G@|%A0ScaW`+x6mkNa2CW&e5@D2Twkl6%p9Uc0{f4I;W+nfDAwPlb>^1j|!;F
z3txK6Lo}Yz@}^RHbVmOJ5ytMHH!cO8Ro>Q-d;H0jgaVlz^S)i$HYse!+K+qVfA>AP
zqgI?B@4x6&s^^O9jn`Mpyt>wO*3dpw&3j&zTi}wm1G>xBie~pqT&&sh=*IEiwY3x8
zROTx<u*+;}znjIxx>P$cbCJUSB^@!F-PdlpB)0l!Uh+rdA5-HMiVL3mZDs9y&b(Kx
z%-d{XiSfcI{#(qq+)vjH-m!XzczUv(ZEkA-Pte;%&Pw7dl)^UVmmm6ePA=)iV{wfK
zb3U29*W0zwZpj48_%@&V;|-G-RX)Ejo3gHabJ@km1xMENgzb0SUH;m9MP4x9$$xDE
zIgj%1dgo`V_p-ZHNww9Q_j_Lq+wk^T;m4w@NsE`yS$88aadk?e;ky~FeE~`=j5G6O
zr!+UdviQ92_A6y&<CwQvAv^y+=$@ieQQ26w{!q4SW9f`Jhw_h1IknqzRch-JmaDV&
zda++GT3A$i`sk_&ELR;)g}j{~6mBw;q2BP9^5Xc9p{$u#RU>cQINT-_s8Y9q>HjRI
zJsJ%=<p1=4)#~qhWw&_JOP`Lf7p6U_ob~<I_eUESlyrtJ_AQP|zPe3KV~2v^R1Pj4
zWr>6tl5LSQYHRbqv9hHVvbjwwOktVg%2?<a5M3O@q4%<?%4_<U8^4a{zfjJsH_lk>
zJNwy;f7Z{>R)4R%U%tP3zuToJn;(8xb~Zm~#G{jV*0gR%gXZ)}Maru-P1LRU^SaZU
zW7*_#N8QVBsy=PIEWO2PuF_P$RQZaj|K!}#H(ojrc}wQ^?^O|8KThW;7EOJctJ1I5
zKk2KE-5(pCsjvD!&0y;_EPQ$JN3*}G9H+Xux1P4{x_<rN#y<iTSY6~|>JKm^f3!OC
z`*`QcbK9<@@w?6p>^`?l^kVmeOKBf--po63@!PtxM(>ElAuFz0+}QDBv;7~5EBnue
zDX2-O8ZPEs@uO;*hubxk#~)P1bpK_Dem;9d|LVydW=FY#3S6BhU({y$C@S!>$<u9*
z*1WzMcbD8`>EFKW7gs4~r*!WbMaAVCr4|RjNPqeM!pzle+hSh7=H{QHP;`g6OW>OD
zix(M6dyY%%JH$6}2c?;OGWoH(^w1}*p7pkm^0&3<oIT<vAGG*n>~7i9=6CXB`Wjkw
z_Z~^9NO&Src5<JWuf*3P=2>Fr{gW8yoD(@9#d>wRWI{@rY0{?Pv>$n<s%DQ)Pw`n9
zn7PJ3<gT%gmS~g(OO#EqUiZor=WQ>x`#<+}I-Jz>zG>-x%{{*+H!-sxO}b<7-StWC
z%Nr-<%JV;zx7<uEni;#&c3tPo%@N!8>(r~a|MQA9{P_42bLi9vAvOz3Q<m;eXG8<4
zW((dIsONhq_482F6zMBgv4*!_1QhDD`z^lwQuWKHp3XbFADn)F|ND(lK3<-`UZVR9
z>uay(<&=Lt@FPLH;@J(>M?qhFzKEn*d%yeoXZ17Bd7YcSJ5QQ&Hsz<tqz@AgZolZ2
z=5p$-M%Al0lgQg=eO>0suMB&>?kE4=85{PlQU4P3tcG(3;|J#m=4+`7dW{-5JSIF&
zkmkI^e#$Q=+DlmS%d#^Ud-qpOvNSyZhxh4RkNtb^UUj~~#1V1#cjM{yuWhR=^e?WT
zDC&}w*3GnU<&H(ndx~r&JXX$QGhZgTKzCl}oq78mgq*78KD9}G{q3Ib+wxuQ$uoBL
zikJz@Y+V-B$7RcvukpnCTCkAS2VK3rGZr6XE#WHW_WtrhPBJ}rR`Q7=Ua!J)-A9XV
z+L<kT9JG&3DQ$a+Rlxo$s*gUt;-7k?qV{{6gH^=kR_99sQ-2@(>tLgN@t6OL#_I|K
zk_F1zOCGp!Z&WqNO}#KvyKVdbH*XFsxa${kp?l`kPnWL8AATZpDb|@~?zsl`+@NhA
zUhP=abxH2ym-yxD?r}Z{+Q4kN<W%H#?%Sy|@@(#M&d^owIJvEHV%?ib$-T!Cu1HPs
zKX+p8#RskJK^~`m@Av6Ex1b@|DgE5tWVJ;T<Z=s6?RmRx!`&8trY^}%y^YWRxA0D4
zU9|T1OV>rVEt6IUb6waQ+x|OEN#V4Sy<rvS7X8$(r{>OZN#)<VYqt!eQjM`yv7qf~
z>&<$*ck~2Ljj;Os;zP9NgP#*02D0riJnir&X#0wNZZSvm15MeZY7^(&GfH<4soCV%
znfG2$=J((I^-I&9^7-g(-qvP&cb~CKf{wv6dGFF~GiB^bo?N&%NwodN)2OABw;alN
z(Rh4~vQ4od_avvvUbiLd>Mh*X%`U7L;;5FAu{+PeuOQIB$o0Tu?h2vpDgs<=%@(mA
z9$GE&i2L<-?TjcN%cU;MPv3gxW7d9Nc;Df7V)J%Yzy7sFetxHZN>Et6u~kHAQTVmI
zs+n$24Q|~LdAj*=cvSWA_KjwnC+Hh{nb;)7sb1bb>)Gy-PnWj7Jb!&@V8Mi&tLBU4
zyKP-^ZNY)9rAxxP@?Nd)JsNdbQ2$-O+1%}RYHwtN68!|j^oz?`Jtu#*Nc=ik%-m}0
zH;;wP?=v`Cs@j8o@2>XeOJZDp$3akLZI`wq>juk(6YPb=%HG}IX1{*}%l(}@{X*A!
z`7)=uCVX2xSJU|Uv&@=TUR55-wS7raQ>u2dob8{+@5a2ajQ^eWvz@cPD6IAK&03K3
z#i}!I=C0+AQ%+ar@Gd?3?QHaU9c{z=g}NE8|MZP_ZEcu){Mh=;Z>`^wZhsFE+tA5a
zn_8}TY;~XrCr4tW^E$@RNM64iS10hw=YQ*W-)Qi&&u7Ks*GrDDRW+=fJjqQ~tN27s
zukN=7S@WHK4f(fjt#Q09m~CMC%!+;9>_&z1?$;0EUv-*i=m+b!Ka`znEmfm9{XBR6
z{2v!=cK=wkq)PLI9>>kSA9mh+o4mi4qrS?m|AFnN+Kj^9aEU_R4h8;A`s?abvc5FU
zf4__I(u1rRE~CO(OPW0lm;b)yY`t4Z`ejd|^21u|uB^;7SGkQZ59H-pZt=67d!I4v
zjPU)MnIEHnu`UT(dTmNl5vyj%P2Mo2JB*9-SlnWxmG69(+B7fT+00t=x4;djg4o=r
z&JrGs=bNTGx*giLeb3aj*M!oiyis^=yg~GZ%8^RJOHXH1{J*2#Tf6!h|CE_Vvt>A+
z*7X=?9z66zs%2Av8F$vz$Stdk{FX|*pK$%yH=BoB@7`^E9N1)J_9jroyC`nTJ0;$m
z{Y!73Td`7G$h5@P@hqFaw|XMux&N8F{(F2pC9cue@I9|8;p?V*$qd>r9Hq`OKk(jv
zWX;<pCLSIoPMqeNiT5uqdpB|Zt<_xKKl7(Pe0*xrvscSy*z3KMWcDrO@VUdZK1Pyv
z$(>!io6Z|NdihabA!qKx4SZ8?FKwJ~U0l|tLTPqf$h^RiXW|y3JHp>wpBJ=bTc&$T
zWk%`StY4C4jp-hJ^UWsKs(ta;yVx;w(dpAW1ODk%tduu6R=0O$>U!z*+cwHFXINCc
zjf-zzaENd36SFx-)|WQ$ZV=^u_^R-b$cOI!-~;>-dlOVA8wL6a-*G+bv~Cjr*FdNB
zDeF?N+86z<UejA5FZ|AXCZDcNRL#5Q#0__51x&t^F(Lb-SET2)*)v?S{;RJH{dCzy
z#?84SN?>Q`<3E#rRvKpYxb2-$abbswtyIXQMG@15#G-REGuv;8S>0VCt92o97tfST
z_UM~kPAeM{F0!n-c%+*<#^*{icc*&tG6Th5oAbnzJ^pa-dtdv$_Wj<4^0`|~#DA~+
z7rWWkxYg1>Z}JvhpP#o3w(Z>P`S?O)^oPYsRlU=dZ1esw1;$p3X}l43zWLDgALo*v
z-vrv1eo<cj{mR0IAHo5DOKJ-FSeWzn_N_6W=6H3VTBYc=?+fd!Y|kuZ`?%^rLt(|#
z)}P^$dIDwV-O^fk*YC?NX*O|g@#)=ljBWS%UWo@=udhBE@i)>?L+s?*$18U}VgD!S
z_kCTF{nChvwQkM1bIq5xGEY9_C8HmEsNQ$(>v@&7+9xjDNqV^8O6ASf<q2V5|9vvL
z{r5@5_rnXnTUcK^wkGS`(!JYGN#z{pc2=AB=ES{2{m12Y3MJHidAXS-<@lvT+jPE}
z$AqrZotCxd&I+sMRVGg5m*;bwb*Qg@VtH5n<qkoK{Qr*AgVXo6J%4}HPWZ%h$8`#u
z6>Mhcp9y_h=Eb{CP59&Q<ahJ9VpaykUy1slIJ;^GQ_gAubK(2q{9AtQy7kb;-qe({
z;$F?N#t^G37jjn!Hy&49x%uTO(F3^)4yoO6|6SeulPS_)V#}$*;H(^jiG2^Ntk#`q
z@|R3Bo}NDSQ%tGz%#EL}WELDWmF&FKd@%EdVDhm)=BnJbcbvqwxNBy!2(ES1Rr~zs
zo;}M<_X?LeQH#qo{OA3#*Sz<#zqIt>lbvamYhxA#T$RXf3=`h<wk3F9*q3c<bbTzQ
z&NKS?V(FRZ+vCNmKi`{>YN>c;<4vZA9UEe`CTsFp8?Z|q3s~!DfA6%K+oT50z*Q1g
zO51&zA1HSf&MW&VW0v2&m-W;abq?MgSuZ&<6Q{45nZ>4|XX|HSHFMq!4^Of9{emij
zJ#M{?U#e!$saSd~Nws0-m-_~e_i~<wJa}>RZZAiy^rKEkH))S=Ul`Zje#hmUG-aVh
z!1`?w9zj97as;g|igr&k7t?z^@%g5?BF(cpB-ibU&fXZDa!=Q*_u^9LK*Mt!RrjMl
z+HB_Qm-`(RbS3;xh3)mopijOHj0|V3n6NIzBl_ZDQzIiTeWZ(rEi8~WP8*tV>AU45
zrWY%iae;SUJ2~Z7C`20?!_O`?$F>g7#T#^>yK}HJ`ibtK9mOT7xnT<CMu;_d5EsA?
zcF%?GjP}(B9Y&g?pR8Y?pQ>L7-v6AT58Cz|1igV5wDCDzzf=?AG`Gy0RAU7bQ;f@X
z!6NxdSzI<YT>5UAIVGt@3LsyVq`IUg=clA{>HDPSrI%zV7+D$^5x88pCX_osI9=|%
z&?aet4_B{FzIxYU={6D3Eq3p_rZtK62Z@OA3vx5Lnb`2?2g)%zDg4|dF;6MNP{=`v
zWp$4$JNNQy^P(JG*T;ow$sW&qdpBn5<3H2uc78T%uzGvf@}$b-Gt=LH|MmR4y2?2}
zp(X`2wiY&))-@kFd3bv`VjevI@hZ1*B8M?&;<U*JyjowLJEXHcvvkLw>E6n&MjSI(
z5``0AKiM|(ooTSjIhKce(%v5De)gMn*|MiACQrF-ERxS!r7fltzb`~^!kiU;UH#sH
zEyq%G{C)aP3)rs^5nTDvvs2RYvnZq1RHZu~yGvXvlByP2X&WZaaY@K3ib``^6eT!o
z)`S&)6FoSJOa-+#)gL|4nl8hsSUGvZndu()6jk1zR$Zt!$ycazxrUpQrxC}bjFPTt
zlY)A`s6Ur@Zg;chX5FRfHvYa#l2)h}P5m>cd;95z?2j#}!mI8)$@@J|&@%qqmx^a!
zrrR(^KI{?oD;L=Cf$>Px66H-3%QLI@uj<@$HhapPzXnUMWQT2dskQ0OH}jIFmsK67
ztSn#iW$CTjT$u2q@z?RXt4ZgW=C3$;lvOLgOfF=?+nT46Vrdf|+}_2gEoH&|@}rNG
zp!(S@PV+)54tw#~30||G(3jKZ`z3wr3!&_#UoLt%>ufGn)Cw=slK!fE%KMR%#+$y{
zz(#q#_pN*{TE5zTpJx}>SKGg#a?i#!eVGnV+buPg@GbK4&D7M=NHbqIVe86kadXZ-
z$oNyehvoPKiHNr8hmPOpF^}I;II~p!arVrtkkIp;J@4+FcfTfh$m_tQu!Y~(iM(=u
zc5!}&cYs*)-*}4vx1|fu#;xfxx>fa~Y}sD-{0)U+r?}^4K5X&VTr9Zi|5GLHTj^S>
z60>}+Uj1!x!`|p*#)O;f@m1wD4qx86*lSszi@dy2^w%vvzl=pzKX2X6nJoHyvSeyT
zxnX<p+wfF5<=B~NhSThfzeFuRuqg4zqm$=-gNs{bKiKl-xv!6r{qV>7o5UeIoqd0s
zQZIY2IVa7xMtZSjZ?Yq+=~o^fwf{9b)$bkOUC#B`d#czpXr5O>xtx7`O7c6IUDu-;
zvp$=y@W_7fr+a(WrWqc&<|m3R&VCI#eJ(lj+1z%atfz6MCS~n^Q@G>rhMbdHy>`XK
zpL})g8@4NHh@Ex`p8F_$mGN5Ty0u3hh*ng%a-|+Js=D}aP4?V*%;I|Y*|+7NlV-nB
zBlj|Erd5j75yvwbHBl)7k8f`ayEaMe^4r4+KM$3swU^|qJpJ@sPS$0<RP!lvI@ua~
zXIx*gS?#3umRwJ1n`R~EzmJ+$`>jp?|D*DzuXFpJO96*o&!|~)_Th)LEdEQ^!ahB{
zD*EQ5eyZl$_@j1-37_`PpLegbu4QhNOo*^~j)T~TO$WZZF}>pyEphH#=XChVOYcvm
zGI2Ta3p{Uce(L;}$MopzeyOu(4qmQuR!(2|=*OnMtn*q&%54%9=b5;lSheZ(Brlub
zsTusMm-Xn1|8!gSxaHmj6}dhQqnn>B=O|71@_mO(+hGs>hub)IU+3}SW?UD(u+F0@
zYQ@s4A^TURXs4^MT)S&hLKyFJjR|q`JN|{9*y+0UPVX=7yYUrqaiy%nI(4$y85Ps5
zGPSmEw4cQP`tRkbyYJP{J$!Da$sXT(`H_;_Q;)OP%`x8@8(w#5p-E4r@p+{Tog>c=
zA3CD8vLMFb67Pyt8;&f{*GUupr(&F*`>Lw{pxumP!XIL6#E+DJXw1C-=TEHZDv{@l
zmRvY+_L?4F^eLCb`C=Zdra#O|@9)_!=x=)@vohK9Y{VR;h^Sl1DS|>Sg?iT?9GbA@
zcYWvU1qt7RCmhyE*qfmA?a_uu%vB*5a*KXkc{Yc6j^$Mu^W(*pc`?`g%!>1Krs!{e
z)H<(HT)a!{-8Kg&ZN@7KKO&bn8M|D{659RVv;Ww7!w91?38(eJ+rOo=ck_y_Rcq$n
z#C#)k!yFmcDxao3mDXxmN1JZ({xkY*WoqdbY~>f+vCw79%bJ}X)0FIvUwGD)vAad<
z*1licpKB&p%jYNd#a@!`>$<srdiS}a4|(>btIe{{N;I3!TEk!_!E{{0M(N<o7k+PI
zjH4#{wfcC?V-1U1aD1W&53g6N-wfCJH^MKTj?(zsS8-U+Z71K<{O4DCuU!9a@-fC}
zYU8EH#y9?)QOV`{Ech*}UBysl{<L|s@BcHC`mnriYUTB99-ph&svl?G5IukRo`Ga_
z!~D0?Uf$u<TffWq>mrTg|23+0CS*vOE{ITBCTzE8w~y#wB|~Sg9d?sX_B`l4d8gt+
z(pRy=La+YIR~T|m`S^nM-kBNaU-RZJN<Fx%OOMZKfkgYBM-9h~lm2bGer$P<)D))~
z0$%ftX69KOm}K^<+;F$qr(-IDZ`wS?Pv4xoGGeaYiNbJq{rhK3zQ5v?eH80xby>6B
zF6r;R>E)a!7dL-te{`rd;$V%1nH!Vq+_moYvR8!``KMh8+!OdSK8hv&_zs(_({lTB
zomOv%SaU$P>D$k!Liza;f0`v?QWi8{e3-XU_m#i&7qN+f3a_jWapv`{6-w*>`!$SH
zd`jQiN8b-kKPGqY*bS?%ZQq{n<9M>;>5aKk@tWFiPp6z$mYIBmt2}Dy2FDAROI@qB
z%s!ZxwP~ejrnKenC*d2K;#bUKda<4Tv`OgG6-|~6TKt8FN?viik}ml%X{+n}vrmpm
zRBnB7TA}OAgAbAIveiF5E6+L|eBtuHIzsDCvzFAJqg69o?hCb_7xfp4uRS2U`;g4X
zhkWZ4^0v9fc(Erg=N4eiZhZ4no*`0%?{MG^O`8{~%qnt?cQ($`l$dtN>csMclm9&5
zK7GGjOeJryOkUML_S&mkraEfyzCL#Aixg+@g;PIRwlMiWJa!^^{loJ*<!2A^1RfOF
z@u&S<QEjGH&*L46dB-m?mF~0PpL2Qky)R0K44jR28*V&do|N&Rb&txkJG$b#EcI^}
zzKba<%=>(4&hkDhQxkIy<Cz@_x^I=TJRDU-_rCPauMtz<kRID|;$H*%zVp-XfB*dV
z(}tI^HD9)Pf2*o_&Fpjd|M#gY3&o$S6tVx(Ti?`MEuS9SvwUr{nQ~89;8izX0~3Su
zqDyAn)z_A^+0N4ca6^Lirky)$U3E@eN;~D<8Q5I5O(H}~wDjz`vT16GT<VM0@*ax{
zNSs^pp}ARExF&g~`m#^AR&EiqS9LJuzv|?5hVSjQT@$hztWUfSjZb-|xo_4+B{kti
zKjWQ`%_~@}&>&>EM|%I~4BeVZ9EVH(T3B8=k#YK?)3VG(^D;iQ@)#%Vw0~4?ke4id
zH&K!MjCqFfj=L9MFZ8&~V44+U=DV%^JllqzxSO0B(>dnceyfmkSGk8jXU}`9n5&hJ
zKK)P4H%)2OI(g(hcY9*Fh25-e(ViuX8(+N1F^|xA<5;@#yOqVf`O||f0-xuq9v7)Q
zoqo6JV(#A6hh?S-hFZo2g{p*$-&EJ`*mQE8Wfe>DMYV0OzjHAJ*(MiRM^1aMF2h&8
z|8D0>=Fi*14opAsO!`w~Xvfj)WnZ^VuA95~nrmT1XS}@3VfprFaR)-?&#1WUH^Z{+
z)0;5qSAkO&8EuiM7Svd_nD6HIFwgE8lNA>1e);itf=$F0Lk^3=OJ3ZwlC64=h{Ys1
zDQr1X!s_X$Zkzm3Vb&2(`CBtwC61eSue3el|7~%DlD)}(25FHbiAkqjbT(V~7arm6
z7n*Q?_A>pqA*`BOOQe>y84KOC&EGtcqeHhoHr>-ggLmWMKRgak7w+^5cDQ+<=#>4(
zKiyo1R{zK-Ht{ywTCiXLMB<A^KhM_<UMGvRzBFtv+y1JsdF9nRZXNAMyp<SF3tR0z
zn`i!x-{9U1t<rs={2^0y#Dh)WFTG+X^sMU}i{Sm=S3c>Sb64@1E|>FU|I<%NiSjBo
zLP;+k`2{`t@oy`0ld)#zTfd-B{ETc2q26h8v27$WA^X@T<lc*sfhE@Ni>{HWA*=&q
zV5wkfW*H0VLii=-rYh(=`Z~I}fR23%!r6T>vqW@XOpGm%Z(j)2_tXdP;mOu7gKn=W
z&aBV}^=d-&%k_&>%Tn|7^Ynf7EA^4?Tu9AK&nVH)K{@!T0J3KXvMmU<A1M`j@j^jj
zQEDD|lMdpt1#j?HB(Mx*3l6Be1mBdTp9$WI<PN&uDltbtT_3y;sT8gEgmD3tDM*Bv
z-jk`BDd?&$e7kdMrc?%qgv%X|H$L-4!902OZQortdjt1GOfY3LeR!uqW>Le_M&_dV
zhfNpowex&GvxTQ<v4Vktn@pfVg9f8$ufXDvMcG0VIzBQjmR>(~&$0Bi))TIT<u1+o
zU$g$z@3;5gf8O`^Xv0Fr0|sZVTs?pF@Zs{--SG|0f8QMC>SLN?dTej{fr~bI3l+c5
zJINH%b|t^-UdPW1N12YzJbZYX`dUwA?Szg*ruk<V@|Au2miO+Y=B6z>X51)|j{cr%
z#^>jkog1SXm{};8=xJ7$_;O?5qzxs16)&n8SSsmh#ipe{o;4#w*kJX9TP!Y~i!Xh1
zaXshzaGs9mNsoT7%^$t{dc3@u6wV)F>1fd1CUj$F4bPo}_Z!u3aMU!&b3AC}6#kL9
z!;yW$97aot2@DgM8wA;W7!AxBO&GcvBbXX=8BQ}sa5l&?^w~U6W7$_D(9vvK#lgV-
z_5u4DLG7b%8`9ald1mpdRXXmem#UK5_u%x8a+Zlr;Xk-+SoiDmh}aqbI`ZP=9-GHs
zkLmjy@^$kS_Whr_?P$)On&zF?l+Ite5R_w?{B@zI`lN2TGyU`Gn@=dViPdaaP`2>9
z(qY%D?+x~^jXrx%a!r8sMytN{+8Iqh4)gV1{lf8O?k71x-UFO@hK1{r>Mfe1J_uO8
zc2$4GeoKE^mS*n$psOce6zE%4PkUHlvFX(F)tf@JM3)9>-IVb%X?*6m@4?Nz>sBAP
z{&Z>fi-Od^A~DJOlKNzC@4p`xE|3eiPT3=yXd;y3v8UJVf4{BF(X$q;;TL(Pn<W~^
z<UJ}pW~}BC>YD1STj^5fGEH~7_|yw0Sk`7u_;~hSVk`d@kGp@=HgHy#wX(lo<m7aA
zTAJB~6GBm{2XqTWIq&*8n`iLpzT6eHEyOo$%8Kq!GBy)4jQ7e)K2f?C_35!xN)_kF
z%oMwt^Sfth=?8}!{C~{5`O7og0N<XI3o`|tT)uFp{_IzqRV$V(@i?d@oq9%pTfCCH
zh^x}`j3<pc6GZpgPY=~Pv1rqzPp{nXJ6sf~m6N*SbT2mOy$?_H;<aZlq)IhQo7%jH
z^p~+%aO$JyJ&|4Anp#0Cy-plzR%Or5zu)%5G_%}gjgG46R>h@@_ifv=Y1TjA^M1+S
zmsJ|PP`ap=>+3biYx1P1rMbCl*XC}S_uzeT{4=pn7Vl@q9yw?g7VCBGN%+ZPuTP&u
zOn&{mpZDj{-!)F2r&fQ;=9?NCzB;{Ba@I^&sW+cFBP<U-E;}53q~c@6oANKg8-r^l
zp1z-!C4Nq&ChE_}s!L1HEWAB4uKd}xdv#eK+MlWKJ=2-b-*;CnkY|^xOWrlRsfM2t
z%d$H59P10=yL4g4$KP7ISM8KG=ccS;j!cig)cSSG?+e<SnN<|0{5$<Cr0iAI*A>D0
z9v|E{^QVh;^en&MKP)$KhA7=LIU=|Bz#iM4;~GV>FIrq0e_g5F*8OVNc`ZM~T`YGT
z123OEv#aOO_4V;DHZ)#0D4BFTw>8gY)`Ey2iCNQibu{jrNDDaOZSc2?|E;2}&5t=P
zOznj!Z9mr4$I4n9SS9UuwM>4hY_D#>CN0+5y{Q{MbD37A&At3fR=Vkrgh<PypGB6d
zr%aO3o3XU?jhe`zqq+t6x>rZ7mdp6@(0fPSsh?9h7%SNJslBTydwMMQQ{UsKqTX}<
z&V6k9`&NnXtZj|4Ic9g)ORs#rV3&TX#S^XVOWKSkJ+N?{<+Va<f)@8mrqG32{UUp(
zp4Ps>wky0~`Q>8CP5(?ZOSXF-4$vuH6|vmXw`_@ts;6*~(_8uc773Htb80G&m%sU&
zR@JAfQW_I6S@ezc*BzQwg*;Y*8$RYYNi4lH_1@z4>$Qz<7gp(Q>dJH5&R!mRt;FE_
z{Kt!q?^+sTaPP>p^rzZ4?l4L5?(co<{FZ5nfCFp#k@?Y*Qh%6gO$#2jTs^QkLH5q~
zfG?}(ZJyC^%<sG)$Gy3t($0r-D*}V7A98Zdx<6x$cDRgAh-Rd#;pF}0&*Sv9oMJBS
z=?;9YsJ+r=n?kqa-yJ==79oMF^z;|M&bDH&U!s?Bbd%RIyIm$l?3z`=r+;}Le&LZ>
zvT8;V_YR9GCs$m_3gx|eZ$WPE*(=AM9}(-iUb9<9%IV?h<pD>|@Sgg+G&O0H_kX?q
zgeOzJD_@M>!ST;y%cBi4Q6+Qo-)eSUzHn18$0I3w+p>QZSDznV7+=%!OqokiW2)d@
zN8f-KA0<A``?KbHXPCXK&G{E^4_1E-bh|ISZ_>lVu03n|W$m5%=2rY$@lWRU^2Plw
zn{Ss-I{2pVjKr;YB|X3Syk&02<+WSF<a7Ep<)$C<6%PF+m8BNg$uLv%wUqY^6Gt1a
z=h>{Ueyv*nI;-`mXmXA$t1`={HM|_BJH)LNwB!usCsgK~*jfDMX4Ws8I?r0q|G`tY
z%Ivyc9cr=tP0!A{i;Z96Dz=!{I+$=>FG_N%+4CfY`RCQI^JZ^fms`x=!Sk(usp-ul
z_Ex|3dnN?0-oGV&*SV{HVN#bicdtA7*5`5>mn;8vm9?B(RR90E^xE`^{mdU*o$Jh2
zwcoowC-m)Q)fg!^nbU73*G$x~*|y$)Q)fx(&1YMV{e5+0s_^x?SF^MGlVyX;qjwzL
zd}i<RgeS_iCKVslCN?bo`@Va7N}jImOsDT*+e}|9X*b@a@^fNb^Fw<_rdf{JGZwh>
znR5J3E4|<sc_PosM#c6_tIIV0X^w~2@2Xz6<-&<a!b;v}>gJv}VRf^yu4uyB>~~Ap
z?W|+VyR5FuiC;Q!MQzH@u9N+brdj{nu9Eoaz3s`Fe>ZAeobgcp^k>=g88@W<t>nH{
znm9c@>|@%UhZcoD>}$d^Lnhyp)KmB=5&gU;?b5ZHdGA-H9?LB`#(F{Wd+Xw|Rqk3E
z9Vhm&wQ?v`Hz;`K2~G2uV#=wapeS&y>jcBAGY=*jX}Pc6aZNKMdVAN~Jr855Zb=th
zuw1^p{?qf{`}TaVeD~Y#{O7Qwx$i9e+#mZ_zC2zS6r`%>x^2I(yyM9ylTA$inaACF
zGFd1~uCIA@yYSg$@3VZ<-Es>{{gS<pU*kMgI8jCayj|qJ*>l!D{JlTw(4@OZdZpYI
zI2p?~$&@u7FLrnk)YEOGVqxyxcp|^(**ZnOH+q})Gwxc*{>?Oot^MKo6UVKltUI(x
zXdBP!uiv`T-(2IXP1|5%abQm32V<+=v#h$J4x4=DY?zsoax!P${yis}9Lx{dTt2o#
zSvjPmGEeAYQl6zprC4a7Iy;k`&f1&a0g^_a`WzO0u9&}KR(Z5)r^Dl_Hmws??^c{B
zo9tfsYeBQqnQM(Va(<t%>3&oq-?#Gl@|$k!IE4JSw`JU%91+}=V0?K}{0H}QXEY9d
zKb3q_pnOfA!=kD*7hO*G{i#3Zrbs<Zm%r)xM@pUHSJbb%AFqoxIUL{H%)e>I{0-sq
zk82YZy~_m4H#M<LRETg5Yr5XMds)8pn`^SB?mcId`O>Tf{U&5ot8Q4ewcKLzO!e-V
z?!z}OY>klZbWwZOcZ+Y$tY2Lzy5jlYr&{lrnY+{Yq4vi!QIb=Sot#$jyWT8(c00qi
z!)m?Dw*Q`2v~A|ZqsJdum>uF?y?8=LW~hi-3U~14O+`y&Bo%DW8Jvg+y>&Zg>)t<V
zQFb|xU4CYzO}hR{zH;f){7awCZdW@cpL*@~RLN}yS5jpX*)Lj)r_DceLgZN6Bb8b6
zuk>DjdAj#3SEcn?|9i(joj-Q#eAT6x|IgMGXXjr1K1ZQEXW{_|QQJn<*UR1o9Xpa(
zA70Is{U#_fg4;K7i^}6J>+A_<SEVR?zu$LGl9l!5(KTUfFFsQa=s8;u*2n*8*|}RK
zqT4s<-cO9Yd?hmXs=box>xz#N6LnmloT!lZ&FZV4r|f5Pf$goSLw}`MLB9jzIcc}~
zvwmn!VE8X|Kyw+_e4`bXp&upJB)ca>$^AU>`Ni`T#j2T#6=Aj|l^#E)e2|;OD)Tds
z>zMVGNcOkKC65@rj()`@IV(ppF4DR$%jK+K#Fp3{!tGmH3k7q<i(lVZ`04l7)(CHR
z-RM;g(Z$M>kFJUL`#!m3N}>7A`{y@pFZz~}wrugA$hT{}m;I>QaqE5Zqx%iv+v2%T
zw5L74Kea9Hhg-$pLr)cd9C8R_7b)85HD`6I|Klbv7IyVrVXFdCymor%KR4cZFjqT5
z$};?1^xfT+8hn|bcNwn_zFQllyms=nw%sotcQ0Pt8eO}+Lgrq;g{Oz#?o@ak9ueCm
zY8i1XEg{oL>7NhRw5;waTDgMDLsskVjhV93K50hl_jh*e$ERDrtA26s1%Gcy_LmJS
zPae!-Ict!yLQY3IT3LeqUg0DUUiLd)Ub-7v)*2*M8eV#y=-D(uNUHVn^J2wsQ$BFb
zPd?x4x1>cN%}y_K!~OMq(?gyVYvuB;OG)(1G%3_x==JemgxS*<;lj*J$!Y4hWj#bE
z{OsQU<H&p;^Ct21*+2iMC$Kp`Yvf*dpV{~mOU2VUQSJWQxE``4ACz5O_Oru6p+8BP
zf5ns#yBUFR<kP=bb}Am_G5j@a;^(%=x7+z`*!r{0d;WxQ+WeZVpt4_W#pJ8;dOO?o
zI_uBB5q$2o=(81<#fS7;h2Ad0*M(k1mo>ybez{*cY<kkFwHIdk&D|gqvgp_>y<FSd
zUrS$biTGK2Y>MCJ`z>|N>0=rn_c<RrKfiN5&z$VHYo09G5VfJ<XNq@7Lwv#GaPiyn
z2WC0tZAw&O>pb@?tKmc0@2=3F4fk24bB$RF<|?ieN*64SRsQPy*uSSIXr<=Lmn9FE
zt4`VW`(Db!=j-POyFbyda;$jG^mlUb#931~6=tkF;*~2|zVhj!WwYLHIMyDj9K7L{
zc7%l9{aT9#VOj3(Z)wa*t7i8tDzOa<zp=e%-4DA?L7o2DJ$$_U3HOuL6}H85HKp#{
zD0%2d*OI8o>-M~R)i&*G%CqH9(o52RemLr+Wpb$MhihS>*tFEspNpQ}*>u?2_;BR>
zsr3xzA9mcoSN*9=X_4Sx4x^2C&8nGHbOS6Mw*GJKZj$BExnMPWX0D}c?1^u`Vh^|+
z`LKIUJG1XSotbv^g1%9Io^v-|zke|x-(|skx26n%Dc(Ulm^U(ZHj4DG{Hf8EKe_g<
zT29c{xi24_`IUB>b=yW;-2**aG$ZEy5ldeqXC^I^CGYU9VY08s?(++d{Sv=-{)Eq?
zPb;<mivBA$H26@*ZV@W>e1%`i>EhxiCrpbh&n4A5znUc!@TSrxK~(E2Q$)y*3pWn*
zi3yusd8c;z?YXRCv%{;}rJ9+2q$~dH6|T4y!+OAY^7jL+-=}|metwnr#w}A$pYc8?
zz%6`gQr5XCuU5@Iq-%HkPVKY8mPqZY^3S<1L#}RGJ2&E*mFR)D(a{B>6}6u?a1~r#
zb8Fs`=nX%^lKKC$3mkSksP$*lD!0h^ESKdbp<CC!`Cj4ZG)GCzx5ubhsIO%Mw`r5I
zZtf<pZzs2AZ=W4B`$*`DgIT&O5<*!c7P?K^BRt6`@zl#Rn;xB7wCdBDUl*1*?>y)@
zM^(dP?g_omUt;P{2&CDx8C{yRSh@9&;l-B*#X{SyRn-h!c04^ACv|bz{&#X&KJV|v
zpT7F*&B5Ifg$iL_fj<8Xi}xDHhfjTN@nG_Q4!dt}-q~KiQxev@@2PE5=8dz}tKTm&
z|Lf#A=Y<%1!5+56>vMA07dm|4nC%+2&c-%sd;3?5E!Ik+nh)gnlrLXW)3xnbUMO$&
ztBKlDD?)RpKj34DH(JlG|26(%Rdu1t-}?PK{Ci%Dyzo_8^8LoY_-m`}mUSBUEWcK@
zqw(~L=`Ui7mR~&EJJWUf>}aD+3lBeBR?Md;B`L4vG)1h-Rx^Ry=yp;3mWTyYy>1J0
zElq83a19Jpzb(_(y6|K2%|AEpJd!`R!SdU*Ii1zN6X$kEZ^}9O^xux^Pd59XKmKdG
zU;K#gk@z_taue?}ooxIbQ0QlHZF*^y#R8`*t?y0l_mr2l#jY`$RqgR}hh_oCSJB;E
z+$)qqCocH3ZR?JjgUtU!P8dF7)Y_kt<ib_eD4Sa0oXeXg^?T1fCm#M^mEz*etxZA4
z#U52=SNL&To;i3W{M81bT-N}NGotAyn6jRH>@4T`Ah&1l^o7;(D*v>L-U;7)y7S+a
zAfMp0D=fXY>>kJNIDYtoT*j8(B>$&wljlu2u*h3+)030s7xr@&cI6+8UcmFBPJk(^
zbIF!10Y^0y<$NULWZy{DqzQfU)9}b!yy&(4wrBC*1ePe(OHRLI^r<>G$XRWljdHcG
zqUQb|(sz_Eep!_K-Gl8@-+%T$$%d{4F%=^0cY<{rT@|ac_G|IJVYnS=P<*gOLfvkz
zf|r8j!t!{A%Z_(`oOkf+&@yB`d#*@USE>8=&CRh9{MEa5&bPQ__2AXf-~7Qh^DfOj
zyYBSSPd7}ox=$?GG)4Mj!K$QP;yNNsoBtlw{V2TnKwaoR-3Z1y7k1m@w#`3UH+#Fx
zl$gFpC)0b~=JgsoG%eJ()n)CxIloMESC!Daj$q;9O)G?g>Z(<Y`jdZuiF~s6Pll|W
z-O1e_uN~Zw#v}fwl!b4$;R@TsSLaF0+@WaCbZ<{nllVmIf3v55`>1nR_^OX*E0=c3
zTd`SDYwY41)vGJxytYkiD8HuJ;b9jex~^X3^lu@yP5T5Yjtbr{45;Oqa(Mb5wHsWQ
z0uTO({mGT%{BPQk)Jo^;rY&n{8NTi8SRSePG3A*>d-H?JY57G*o_vu{jInU&t1JCC
zWzpV4UU}bhw?2tTdNMs&Iw)s;(%g6Zq!YR-3mN@G3QKk5!^$2jCZ;dA$t4?@dnY(`
zO<(5eyJy}VJ1V(TbLG!(hr+tPti1K*`Bp=L*Z1VJ9<)V0U}=r}uqwEyTqHp^XoAQc
zh0l8)*=*QVA@zAy(z(yaBwp=$;do?uUT8`0*50|wZC%%uJ-hDYYQFJj@37a6ooR1(
zW?_*p!+*Beo`#<nr*e1m2^1bY?6uBiT3%K4Pou{NJegwp|Li;zw%?_T(?e-DhmOtV
z``=pC4<%1s$M9^b1yfXJg659KYqB;46)GoUwnUv=@o}#Frx?kUb$QDi*B)HpWDq8F
zzC)}~>%++}X49S<mh;~h5y|cfiRu;4eOSS2B5(GRJ4a=PKGV!?)68!a%wD<fp2)<N
z4?BD(dtN$FTOgck^>Axxn^KTh+o7p5ZI(Cc?UGm+()lv-)&ga*&eHP-8{D)H&)#@V
z?wTaeiaQSPkBFWsIFM((cD4H1Uu;M1&YoVBc+Kg-6v;I@`CYTxKS*A-w9`=Yk62wE
z;VGd1Pw(=qY`dl(KW_a^E0QVst5kMc%Xgu_so;skP17q?uQ7-(`Ng&6?}der&*tTa
z$3J%9*x_|>MS-i;`Iigw#d9xCJ$!q?xdrOiRMh%TuX+`^Pb@oUO>vQ<!m7{`%YE9-
zkGmIqye_l3tYMGxBFXGXtH;eZUz_dqe}9Nu;NIJ(cXk~2H$MB}K%i-LZtsi-FD<I)
zeaP7w@-3%lW5}&jUn4@VzEe`GNV#?X1Jk`*hcCQ6I6G1EeW3e<ZcC@jTNzlbYkZ|5
zm`>Zik$dvyNAtgFX&+=*3o9h6BMrB;FXR<HvRO&lt5L!D+GRE2XYbNv1#hHY{3lnu
z;pcD92?hR17c#fMF5P@RxK;c9QQoX=p3YUiVh8(nnwFJvE)7ok_1TZ-J1?)Pu(3ws
zCtk-KTZSpTmyetcYbn@UYG1bNd*?;<)?GJl1g7WQ0p0q**VJ(r+wed6S1+Ru|69O^
z|3R$$yb{RrC0#=^*a9X)6Eke%|IWUk@&6D{Ljx{-&yvKP%w)&B^qf=$v}+$MkY)i)
zERkmc%D@BudHR*mMNAdoWlWHv{8W8c{UZHhebC(vCHn6Am`j*I*BPT+aBK<^A!ZQX
z$il#wz!Ih<q16Gx<#P8Yuq#YkwWI9L*4-J=-22?FOul?B)>|{ZJILi?SGu8%Qkz4E
zVvEO#Zq@a7ZBAG#OmMj;C|bkFBr3lmcWu)8#j?@aug}iyug`n->g)D9R)<+<&MrQ7
z?oO=r{{3~<pZ}hH{`Id8_ahfa9WiY?U2R?4?9-pVthvJ<6y{$a>AhHBZ-?uCDc9tj
zU!r{9oYm5^%0&LYdc*3Yl^lI!<<IBGV<uR#i|pgMQd}*zw<J;SNaDtd*~LFJSBI^y
zGvDh}6riPZQ{UUi%iquE<_1Mm!?iIAqGF;Q!kf8LezQJh-E?B9PGPm{!~g~B9a@HK
z*XR`9{^FAQ$jou6gO<3+`2(KoHKvE0WVv)?O;=K52#@2g8!Q^kw^&3Ayc85ej!i5Q
z(YYq+akME!V2eo8B!w5Td|&KXQk??C*l(R{{1kCPTX0c;$&_=4BFh(hEv`#?|Kv!~
zkvkH3()o@i`oBufyqWRv#+4h%oA1r|T6xF1@XVWYn$sS9n)O5T+7%_uT;8TsMzIPG
zuNx)TpUB*J`(fAYiDFCL7b|t_vg(OEr1S7q$&{Nd0`IJrpY_^#C*n^?$n!qg5Q!Mh
z=6j3R_^aPf^WVp7vf*e}akRktHls|>ATh~fMc>kmvIEuTg}dFH!#Df*qXX&=;@|Dw
zw*_miRL|x#%rkrK+i}d<a*tVdx9n~Pm6-0cuQn;!@ur3ZtL>Dl_FuT-R!82GSXPzo
z*Pm|rvM521-{I}k_nv36f>r&bPV71%9e3(p#>VXt8xJcq-%h+7T=XTAbG@6pY>4&B
z0~W4VCWh?YD3(59`Q8}Ch3aMty>ype*s;>tBK9PAgpRMDO<mX7++Q2DctR3?^%`*N
z>^?uQMxNurVZPPr3}35PicR0RkWXKDmdl?SX?fKvAzQC`n?BT=w|}O}---)QltMcu
z8VQR=T$S3qZI9Bj8S_^QF3>isVHE4z-njKXli9xq$C?+ezgRC5zmLy8L13o9-1e*w
zw{*^yz0oo#(k<&g+!x_F{ant1Eu}Z6nY?4Me;y!rO2kNMS=U8_{XYv0BR)M?y>MUN
zo=dV?9~b#$yExPw3(f6_lT2cK!8Uu{vd0P4%Bi^yO{Tn7fqO4FB&CZia#os>XuNrb
z=$T7joh7&T@w2%5J=(pu_EU03{07@QE!)5RKDM@_eZebJmB^*Xx2+b5Zh67DYV$=;
z*`l(C(ajq=PTZQ&{Z3KudrzBV&gslQS-&s5&@5T-cQKQ3rorov6|?^HaNa1N#kxqJ
z@nosl4vU#g=Wo2ecAH~zpNemU(7~${qJkPTY(pMz*c#V9(<e*Fv#P7ubMm@?h9&dv
zeGz@o5V3)0&(Gj*9@`u=#5oNwU#^IVlG<bX!0sAv#g5Iro6J~~{K~$|zjbG~z3sv(
zq~^Cra(dPe$=w&yBOLzEJ=mcaXzqCMdrp<`U!gh6mvf!%xU|~l&P}mb@(;h~radz#
zQ2F9LS+D*>y21b5`%O&+;tqLCvSNy!x$Rg)^ScRref_0&FC~txmzB3Q>!@Ns+v<Cs
z`+v{7E#IF1FJEWbGfR5i)Dp2jT+y>+a(`Si+tKsm!`k^9kCx6@lX1}2t3RS~hR5Q_
z{<9uRoQ>O+W_?g=SU8`TV?j&xy4z9hAFbV2Wc#IL-0wW=J>&W`BT3D}ujT)*k(+r-
z-~UTB+uXT3lv$eZ&-=OiZ1X%D9YMV`vw)?SB@?)u_N|w1eeq+0rAhvqc~9I934ge5
z7%^|v$;+p;Te!cAhz4$5v8(5k*N2AF;yG@AO4qXUO<UR3{fqBjb<ywc+iN8fF3yap
z7Eax2e|n>vTSsrip~rbsmvr|V$*9fpOcGmfzx(Ai^>n|VH9t%*a6C7j86)`d;rpVC
zvd?bcdnhL$ZPPtJUtYqdF|KgA(B;0hobodZa~^L0eBe)ay1vLA-vtM4KS<fE-7w4O
zx|E@zV&uGLAuaFp_WjrIx3}xDDytv6oLjn8Nu1^F?=Y^JDTlxO`lWl#&HCEwcNG?W
zReRYYmxjfxKd?15%1|+QdX|#9o2o(9>WPoG9V+gxI%s4)?ZXj=(+|F7P507Uxo!em
z$1#WS?D8e?3pHQA-@4HAhso=UQ~zgY&e-Yi8*?dR#X8qAx%=jK<X_}`Pd<BG%6_}8
zcdw(rq))`&DYF9?YpkfyvzU0xTXMf;u*_sm@#uA%9C<z3rJec`oKM(0Mb;jiaq*q;
zW8oJ9TUUn#>6=}DIJ0Md_O;1u!i!3;veleD7p7h&v}X3q$RCFSuEnYOg|@72U1nvu
zY5VGw9}fd3-1#8CRJBFLl6~rA-`=<L_`;>-B&=C29-r7d=fJ$4J$tK9Z{&Qm_*#ug
zb@|KVPBly7ZX9;^UX}XPD<*Ksy)3shoeeEg8)oaSRZiT}ER;P}tu?T7|KXm!4aT3i
zqbL75%M<^Lb>IAeY0uux*mmq-^!AI4+57&8JMEt>eQWQ-{+nE;-(EkoyZ(COzfX5l
zF7pYr$>-0F`2PM_)!)r)-XD-*XjXmT+f!)3xT7NehyP;PhT11KbzAdyJZG`Gw6$D&
z|EtnKvw7P0rtX)XTRH8fB%5~HloR{T{o^*4S3AWKY$zGLe4)r!UN-f6H*;TG6<rZ=
zldW5Ib@}3u-5Tx3AHLZjf2hBC=^d%`>W7vh8ysXjm`+~i-8(y8N#yb4SvB*&?B8@P
z_|z}1Kbv^$Uj6!Vu2p=swfpzIr_E&lznuE^#mZ}J2an8M#&P3Gb<P9U<q5M>1rFFR
z;EkQ4)$soMEEhJHw_zn)TBQBwoc=QH-$Ir3UY)&}-O=9l6Paz#<xMZW#rVH=r&-BM
z=?$-rWgKY@6+gJgJEw|Kmbbg7#icz%)-?C5?7sTU+vk?}&f9M}dCTFq=dS4GPrZF_
z$6~_}t=$KrmYNhC+LyJnR(RL;Z(e6t&khWm6fgR`+~n`2^0mG9f0o&8nmgOXRj)qj
z*OT0!Zt*$$_vSb!pE8-S)$ZByMnV0ZuXY=6Sa^(AhcE3<fMD$bvver~ty#NPKV5s%
ztmb-xYse?p-qZssGe6y)akXbH*R_2+&p!K8ZM-2NWBt0RT``mQ{6B1$!L;uEyHz>U
zy4U%XaZJ*C5oaVFw3m5vJIj`Wlt1h0lddH`lMk-<=>F#SX66NT)3udhm3iKA#mnbh
zelMFl_3m8X(n&u>D|ddpROoyA`kaW*B_}I?p5#_LGe>=^d3I=1+_C)LFqfY@vOaAJ
zU+`(;;te}CE--W5cVX)V!<bV~GVUE@&JJG}qa$ur9{t)zNm_9O8{6aZW?^Ig`sX!=
z{w)5;-v46Puh2?WS5?*0$x&+CPUz~rIjuMORR7Pr|7Y87Nqj$R@oIV9-8$xp-;PAO
z?9@NL=8nDFsRt$ZHoiBr-v2+At83!t1uX`@pM5`c+gRL4ZpZ)H_qEUDEA6+qOqSk#
zdDnx?{P+i7_Doo_qRVaP<E4R<yO&&buJ4}Sp!@3GOk2l)4>$dtZRWjxM);(d82PJH
z)b3BXa`m3T>4%}QX>axK2HvsV>{a*liKcg&r>^eoi13h*X;U|CO?m##R66|JMDAJp
zmnW|Lvb^^G(r3=h%Xj(S+oE8k8n|mu!mocvFK_dW)3(ojy=L;{>jiJ-?|gGX@8v$#
zyIVIq{(PRf{=oYqk?eWzV}3ZN)*W_QSkC{cVWak+ufNYPU9?{}SoX2<(#6^4elK3W
zoOwlgf7YQdshgLIh4`;t<DbdPcYjjli_e?=-%mTS_pjpdTgDs3bv554iPp`%KIx6T
zL!{A-omn4yB#Ua6a@XI||Fbve*7rwo+wON>zVTFS$Dij9V~&>2t9~dVC)dEh%<!sY
zWhJ%_h6UN{i!70LM;IA^x)qq)BXo^TK+B5^6)Y_*ux*cUc6Qcw_6<Tmr5L_B0_8e6
z)YV0)-~)>N^$YZ?Qj7BS(=zn~^b2tvP#g$e50sh*IdwQKQ$I+*n7|Rm;59+X`W5=6
z`l0&H`j8F_csUdJ&|k>1qEvkseblpw)Ad1XoRTw(l1p>ba#Abwu^v?nS^E^6nVy>%
z!=(?pz7FN!V#pe(O#MXtNPTzxD%j!0(4&i^^uaDjNrD_+oTcvxU0nq_ycl}$FnB$b
z2Xuv0uD%cK_~I0#!;4cZl5-Ms;f6tc1X_;;Ta8ten4Fzj0ulGq&xb6@(u6D!gY7W^
zU80BDK?8{p(?PQ^u^`kzTN9cc5*#kJZ~BawI4-+&*Q!6>>+q`WUB7W|Q1n`s!mcFt
zfM{9or-FjqiVhqT#1$vBJW)~fX!zj6(3qgjA8)btMS|<<a~6KlOUqV1wm4mQ>s3ik
zc(tC~t#hs=Ys>0NUPf)c_P6-muW$G6|J%3s{K1W!brOA#g|8o5JJmy_Tcwcmba>C-
zh!d@ecXZ|?|FH-=aCXK4!-JQN1CBEP>~Q2zU1*@qV&-oru<b*u<_v-3u8gyVf`yDP
zZJsn;KT_@FH1VftOWucdJogssnC|ZO&ux#H_pI3yXXywZSJf`_-aJY4k7Dqg8FObT
zhKlG4u0MN5M7_uLNvH6V%1bdzP2MUBdX`PIiB~);dOUTxXK|`Tn2^GuCYIn2H!E0v
z8f{~Xw$`4hWK~#fE_b6j^=r~5JDV3A%PhMx3-9ziY?PSR`q)uo*+D~l9_<4LO-Cen
zgp(sIT2m8lWbs^1jJV>XBYn8;Ja?nu44(KF{-19}a)ef}va`hd-%y>x(R(O+(Q_B^
zP6MT>0m8jUHvA8(_jkx>P=9dyz^(-w7W`STzL~rEw;GrFF+Z7ETk<YBoLKLa<<xm$
z&dH{e^G?S5Mw+ww)t0_GoB8rG+lkgE%P&i(<;*GkGP5K7RhnABWDW7J{<9WbEm5|W
z5R)y-xppP;TV%Y^$2URW7R(S>eqJrj{k$A+c>Dc1lg*xA-l>0nuWkOtJzX3&k3MXk
z_0#cl`I+!P9mkhwsQ-QO{otYU1CD$@KRCYQX8gk!r@DI8+cNc3_OfKr=1C9aTLbi)
z^yhlGYtOnV7RYx-xbIu{r!@`-os6YirLHLIm`0pB8{#RNk+7pK(E1A3XIG6)8H;(=
zE(x68p}#rnWA=gLtUnT#vj2Z(<6~X_+?Y}PwCjX`C(i#29KL-2*ZA+3RdA(h^0sGE
zDN`0X-o170!i8&_cV|bh+M=O9{pDHDl2b2TGY-Ap9O<%0XLr{+LC-3I(<eBppBG+m
zE$3zMR)4K*Ceoa&vxn_+9hb#XW-B|UX<^sG9b6)_sv@rNDRQ<R`8&Hd{rflOrTr6U
zdvTjiIkj}HxltPLg_oKl4j-P}ocK2R3ID+f`%CSY=-cWy$QK$e*?1&t>xQsy){IOM
zhSo*DxBog9vOoXqi=;`XjlXU(i%kxWe)~_@x^Hb<8`E~hHzzyv)&B*o^iB*su76+$
zr+wnH=5@#1_w3+R-ne9|Po~i&8{PKK()1K2Q(N~vmG35tPXDLGP<mjZ;l+ItcHca=
z%TC#9cpz<Cl;qxpTU>mnT7~qovF$w+EUfc4@9+PvWA&HS3b)Vm+p)r>^4sm4a>q^S
z(tBA1^E>{_=i2N%vDp1<^544R-RTAO`JU_AD^E`fT(v69Tp}`Ca>EM^mk)Oz%@1F>
zLrZ_o^Mm_a*K;LEhr60xS*)<bB_h-4N=D{Xui%iN#1(p}^=xgPHnW6#S|;%31w39d
zE99%z+KoQ(rxqw|xsh2iOUu{zXUBv<%^lT;PfObTSi75PM`4QO&%QlzE6-d}vz{^U
zqRPTkY393MWbIyj^4PZpM^mcny#2Nr#m~Du>HfW!xi1ssrp|rey8h15#1-u8zHvNI
zc~^ZYEY0|(hHizSTAQIn!_qlMmcD-1)2A<dG3Qahsx=1o?)T>0zxpt5o1sDCugeF1
zGRhXFY1GO*Ztj))^P%9sq{U{|d3V)!a6MhJYD0p**49sMcb<!%|8>v);FI^(+kdLn
zKE3mDc9~iHmSaNOv#s~qzWnep<=ftc%;|pr7XNn6f3G`xfB%MeH<Rx=pEhUM-85Cu
z-RkPiv;>psn^<>0@!YBT^5e{)&7M!^vM=Ay+5Gpm_4_}+xk7VW|4p2IEtm8D!>IlG
zZ5yXsdg+GjJeji5V7dN;Q;LV<f33`}y=%K%D@^Q&n_l=cL(S|H&ZqzFdEm6AzUIy{
zBT3nrwZ9L4>r$58yXI`+r;@3s>+eiG-gN9kmYe<3Sv72DZ|+`k=y$?q_WkA>4dD}K
zmN4vIHL>!WeW!uYyCn~<eSe_!f}eS2miPwi6<(9?uIZklbK~3|!G!{g1+rXaxvVtP
z0zS-qz0tI!^>W<Fe>%E4Pd=A9TU*93ISVheXKt<+|EX@9YZlq_^uVPRN&CBgFt{$7
zD{^ZW^IE5W8WS`tPuza7C1l6?`kMC^#gFQ=k0cnF+Btnl)_1S`!2O|`am}MUDm<}T
zCRc8)seZZZ)~vRwx)XDCxc0Lgo!+u_>bkC~RSS2xMdvZKC9$>Yt!zHeeb+48TW;+|
z(bqCLoPq80+!vO&tV>$Gw&$AI>#MV}HlIFn=!1kxpP-mDZyN8?byu%j&N&cz`oM+y
z%!}Pl!V7iF#jjt^-6pnus_gvDSK}&Hh|4{z{<kpvz}dzup<gbgz6(}HvYP08>YeKl
z9H<zODe=VF&MBIui%Z(kmiy;q5ALp6vmBFcjq`MF8Re~MG5=O-T<KS7@OES6SJUdb
zQ+p04GMnAv+p>(;a{b<~YT0_*qs~0e<BxAU5+U`kwe@3j1#ih`bEY13_KDTpA1h`b
z7yoH-bK!?)r?^CRM*ilCwvO5}x8F?Eau2_d?Vr^)kq2CRRVMnGZ@8^l?wPuB-JJ!-
zhA+PH2RcpWi_n>}Z`GD#Z&$2aSs}9OOHV-ZZMM~Itas9Wa8@2J(XE}abD~n_O~2#r
zr{iuMP0QEmbe7m!kRRf2viaGArF$lSS=%_-*>2nOuD|yLTFVxlesX)GuYi8a*YtxQ
z;#a<YP;^-GS<>UqzwR&hDIP68yT+Pv&z5<=bR!nuKccYzP;cw*mmfd<SzCYN`uW=v
zYCReF`zNGmZxA*3v?q7>vr9&cN*T7yPja8#@#WK_c;lHy6ZbyWtC(K*{q+A&v1<c;
zV<UG+O!l5$Iwx!WwV3Mst$qAkL>XOQFXmctls#z8`WH;1fsV{=B5my)4`)6R;89qh
zz|!HVm&Gc(BFLrd+BNn^%tyUgMMVRzuh_corg?F}T1&--va2so{heNX?%wa))%Ex9
zc_cskkvnCz)%rc{$`?a_yjK?Z%%?8r=rP+Pg2(tJN2itA%k0oK$w`~!CmC0C9*L>?
z)^zd(hw#J4mrMPZI#~X9T6LrF;112zeG7Y%g8w;shXh6}V#~bxX6d3|uh^dX&Aq;4
z<))o=-4<{9m5+KIT-bh4`Rw=qy#Eaj9q4mge0V8e#8potmKl8)mt_hs)w0z}S*=>$
zcV>1&yY3C8Xyd(Kk~GQ<rt0fV|1`19V5ySciKqM6I}#4;?R(Du+|2jJ@on$zYu_&0
zlKM+>`NrZ}8zz30r{dC|PxEPgcUy8p*6I_-%bCu+*2mmePH$cJ_zB~|S8t<^$0;;E
zZDnXmIqNF8XH!v$;HBfLD+6sNw*Ojp_ECUF!7{VV5V<$@oPA4mPaKM<dn;LJbJbEb
z=6G=(&r@BVCA--kZP};LxQo4x?ZK>KUcU2Z1**MS<T=7$?0C<YT`VbJzV+?hr5BeA
z<obC(nR5Et3eleLQO;!|(<l1Wq)iI&(rM3LnK5P3a)1BxrxUex?@MRTl=s;*BPZ|v
zv69FMCLBLoe{P<wY}UqZaF4q`zWbTUFQ2vZZl<66c}*x(KyIza9gDA%gd4s7d@<x{
zWHg@F_lcW>Ke%A89oJ%B{%Gx9zNu>`T+?cD{4l4@N8-!+U!Oj)R0>MVx0ty+ai96^
z{pshgoBVb?Jov-e=kePcOz(AfGV{&tPt@S~|K?xB^a(c;wfNW`dVfj!`SOvA-o+(W
zg|4@P{(U*9Sr=Sj7rlXVZJc^+>z~C<H%uSSPG+iJWw9w@N0DiN!h2UO{WGr|rauzl
z;=l4n(@Xi)7T)!u(>;v1%IDvn{CdXByFK5GHn<uI`HSS=w_x)>yzdf=NJM07-@C+Y
zO^JM#<L{-bcVEttb$PU^?Uk3{oR;vCwLhc2=4S5xeSY$>v!4q1&T(#I*}T*G^49Q_
zKEHpf_kWqtSM%<#bca=R{J&?FHDSEn?lud`-|?BuonRKTDko>xhD(>#9ll)+EBnWF
zOXlv5b24u;x>nwMru;YQ+bPLl+jCp*{`pwr96A4^^4hs<i9Y%poa`;!9=8N;T6#)U
zvi<N)AJ1vaY&JVZZCdQHu%kCnXJzbtzW0Y6B>0Ln4*r#nEwo?m$?}@tTHStk-I9Mx
z8js5REEUhUkDPMisGOte@ukZHdsj{}6`%F9>Y01pS98lbj%~}{P1wcmTaa3Pl0U@u
zk2=p!W5!3{{^ctlwF`Q;@6Vh6F?}zqrr&GYQ}b+trl(oa7Qv!xQ(u3`YyCB6&Gdua
zn~cg|Rv!~i&`zjnb>3UL<isn!{TFJxE|!L0S}t%X_RZ&S^&QE*uY+<AOWw)JR%^Li
zw)4qRUO^W}t-q5$-us+(Ehxt-K;3rtKFR)L?|+<&-g0x!l>O&tgojB5OXMXp@<xXj
z9s9xj(&mZa6KPpd;j_9QI)0pS-_`adA}UYslvaxNhT`uY>it1lPmgINpZB=Fe(itR
zLqe}B4xWCXz_VFz+2>0pGYfs@xXI2w^>D$u<Au_PM7p;eK3P&7=ALmasM$o#=<Ygy
ze*JA8#uNSax36t`m~_G0@8QX$+C9EMpRNwrkt?@N*elq4VF35yz*L#`?iL{_nUArC
z_Y$LDuWGVW{H8CxpsSqW8{3_?0=4OXoA^uvd?i=;#!PR$wIr-ks7mPGWQM;B{+`tB
zkN?<Ud*|_?)8ez1mfyYg!9eW%@$k$Gf$b%c$0H<kD#PqjcYZ&W8F8fd@b{MtzSk6$
zE^L@m74+Kfck%q4k1c;+lR6o#K5^~V;DA{!*ZS9Pe&Mtvd})U1Dv>a=;F??Y2NV6-
z^bhGh+0Mt_BwfaqKjRwbe24upQ)Vu>v`nq|hN+<Sx#FZ}4^u-6WL6#c9&!0}yWWkH
z2adj;VAX%K+la@k+W*}DmJ02ON<UV(O59RhRh2#AgOk%TQ%#G5LJ@tEGg|DQf4C67
z_>Ch+=r@6QuUmR-RpCX)_g<Lc@Y3k*^19-iUlqO0cL+awIsN@3CkET|&PN&9B?`Gy
zRFz&Q-0&^ox7MB-S0UEy?(t^El(GQ-qV2v9y%s1q8L1}TX1OMLMaa7Au&Tkg16ej!
z^R*{xIB33G#bfI6=H9GdK|%UIXP0tp4D+_zy>-2}%OO>!)agIZA6K<{T)RnLc3-=R
z&GFNk=DdPg7w#^Wd)l(&_S}N-)|ykhoc#KQ-+L#R>}Tq~<2^@#`=K?ro6DySlf{pf
zF3&xtJ8>$rWNpdxe@v%?rH<AtdLDguLY}pFRl~07g8OGiyCibTO<OXfbNaOdfs^K~
z?~Bd+Uu!roJxMrjIeW+z`Ji~YSH)RM&3iX$&+EB9`O5A|SM>K(t^VS~x_#@101vat
zy++(S_PxtgNcepB;q|*hoc%5LUv~A(QM-1)+vL<sjVTlT-K|uw&(2+QsPxFAc-hKW
z0hY~SM~qX~dL+LQPSt3!iup0!onz&i`8$^`f8-`mJMH$~tTgW&wdDd!p5)zC^Iq}n
zy4v#%g4@2oyLIixw|C!_R#@JB&#7^#;9IM}dFwefT*6T<hwiujzcC?yi=zBHPbZF-
zuK)J&{#?g!Ds}DqPagN*7#D5R+1k@%aqPz5gZDKanN^zVWbVKF)A-BlXa3*0*Y6dP
zI5_v5zC~2v1b&^Gl#N?noY=OEv)BD!&!Ox4){16x3o9?No+PZS6j{S|z2hNUsgn5J
zZ9hM%O}X+mM&<FYo+&zvJ8z$O;X6g+J4;CuGd~v_1FLtz&2>{^Pwu+%aMzYES41*z
zq>0?FeJr&zah2<=!%vQVlBhi!7JZIcdSA`q$H(4XlUjYNvpvE8*x7rLhqj08)LTDS
zS2?16*CO4XJ5S%f6rHekU1)G^Ros)FL;GGUb!_xo(miSGi~1?y)d9ibQs%ys6Slv8
zvnu><%=3FuTg8s19tiJVanwCG^J=VUn8qgo5nU+<C9Y3(Eh_4YPgq%;;uKf{7A#nx
zAXfTTYi;!E&0pWHxqVT~_4T)}cPloXo9BJy+Pl2;Z~cFY)t}G1|NZX!-?mRo_-b~!
zOL<ClaXu(~EBzp|^nm*j#ueKqKHX(1r1AGU_adg)%8fJ4GPSe5=uD|R)?sq*{84}Q
zqoq?tp41(CQ0VKgCdl4ZzVd2ySESD8d7`$GdGQOs#susYFtT+FDV-R#x%=4W)JN~w
zLN1-CvR2*npYinBBE8Ou87nm9HDq{&Pvk50eLHRXIr99HtC^-c<$jOc_Bt!SmhKFC
zdBtOiuey9b$I%lJ?{5puKa{r1W}#o*)5-5SZ0no!H9d|n3iM1DdiMQz@yWhp2X$mv
zPA91D;VMp0ZeIT&`bvq-OKpQjt{c+j@0o4+wF^w=$yiLT^_txN>g1<SQ+U)nf~PZ1
zoamY)@%Qjl_QS^e514f4+vfh)U%!MaN5tgEi=XQxo+;~e`8%}Kh}oQ*X7TA<sCv)V
z;<ZaA+!n}bSKi(_$IbuXihGJl6P|hgU%agMgVsD|?eFpzW=qX{x%KMjyo&}=%%^?Q
zQnYm3R8_OeB0Wovg;h20dAylNZ2hI+#NTOmTHXd-V5)uo`hCJ9oi)dTA1~95IsPSm
zd7X%#`^iV<OCyc8dWofl23D6ZnX=^KN6Wci^Nu(2|I6u*3_rQpHoR2tvg54cOML2g
zl7Bvv*;RbrP_Li6(fUg5^`!^BFD2^iYFuvk<M97$a^m;pzW2`elboUQxay$)otuFZ
zZk>?3(PMOfO536@^D5MqKb!DJrFQ2pc|KbsQISQLoJ@DSDSCS^G#C5EC$c%qIdl7_
zg-iCYDRuXDOs#tSOKShkP?0*htRs3MPcIls1siX=d_BSD(B@~y_B5-1P~9*uW6?Xu
z-loUP9~{zDR4M$tg7@mizw+Mp)|M5Lam9~*eynQKD498Por`Fx&XGQkhD|(Ary9Ip
zFE+RG{o7R*Qryl>%lD`EzV=ADJ?U20x%91~^G|G@^6TrVXr*hO_d8<#MZH;d>RraO
ze)(y!0q?&XuR6KmGONc#*CNG@aa^0@7Oyojuv)zMaKz*3H|%!2RpUJ$FWvOq?==7N
zx9Qtu`qugw{r>re<L1^tc9w!^D{hJSb3Bz5OMl2SNl@WNQdWDyu63L%d)CCRJUQKa
zZ{A6>DX-6~OfK7A*KGCjT>ivWQ%lvo|4e+!aC)aIZ&dKwzKc?KPq;a6(3E8V?K0(l
z)+MQx{_FSUKatd#eMp~mk6rcID|!*f3Le)-&N}Atq2xpL%oM$ETt5G1Jv`>&7q7H)
z+WiL{n+|U3SS~&1TZEFa?7ZoBo2<@jDYD-&J#{7F?ann1J8PS{R4--*dhDJoW3g<V
z=UrW0*HxEd*w%j(d!%trD=0*1ZP=@K?!3x>_O(3ljD7j|yYW_yjcu(q>%*r+FAR;y
z=w5awOCg-=z5Vjfv6;0J>NP*2-&uv;e!lH{e~jdMr$Q4(t502*U+tQ5H>h<}MChRh
z4C{H$KcC<cyUu8u_iXlnzbB?9KJmJl74OR|mKvs-eZn|rz2C9mz1ivycg}HIvOz)D
zvViC9WBwD<KloPEJlMgTyG}{&=x>iH!3(vGFCOdqG>c2jX-8DVi?yo!+Ed(aExA0g
z-99yDc{;0p+ha|oX6dzG-_27z`@Z4>YX<Y&Z+-q8{93DxH!WpNUAokjr%q5`z0A;U
z$(5;+T1&*-bANOE2-p{|U30W9FKmfLL`3uKLXEK0_dcFHQX9YCo%%xJ?vKv%OVl$y
zORc$dimUnFkpny)jXxt4FNtSfNxk%E%^Q`k9XfGpzwegZQ(sbl!Xful`i8@ykNDmd
zny+m9>%MANCR6g<E{_M3&%Y^qlKN!jl-BCVJsjo_uNK6FWQ9$Ay|l0Psq%uSihKBU
zzBk&%uk|V0G@+;6#p2a-k<TrS(^s9z)j9GZNl;R}Ey~8}5&upl#p|zT`be&xcuZld
z#s#@!zt`<Jusul0`LyW_|HCmGzpE~qRn&XyXu-utQ5(8C{O1KtlI%E~xyR#=g~_yX
z8=iLp4e{*)rwT2v8h%dvP{2OT?v!FU*E^}rJ0%Ybq=`E$kQKY#x}j-ua8~oKMNwIf
z*U!yO_ED>I@aPE<X>CjVs1=?x{r0mv*LNJ>sjQpdKdW)8@W1){?YUpEGHG21c1e6W
z?V<ZY<LwP0e<VVtKdze3a3n#n>6EbF!_JDLT)vL|j3>9;lA8G5zqRbdHq)5@-LV&n
z<;-e}Cf@kYnXtTX@wy#;%SyA?sP@(Uz1vYRQ}=pk{?=>qK57rYPFTHuUANt*i_a9y
z0-MaWrt3uL@cu1&{&I8s?q4}RJ?m6=&Mup?DJIqbU6gv{?7%s@C3&wHJapImzx4fa
z_x!B)&7K=}tcpGTqhr^Fa})RFz80#n<|tM9uJ>f)CRU}HPlA&<3k#h6I?vs>vflVd
zZeeNuzZq;Nn-do#+<8+SvBNGc{g7FhwBw@L+cr(hT>rjMe(CJ}r;oqBujO;XBW?S8
zzdLfS?m4;HXVN~)c%)CAv}t!*ebft<?_VGLIo@{d*sIv$K4-?M`%Px45u0DfnsxtP
zul>vE!;Aa=N0UGPSpUb7W%8_tu9H`?Xm(#YRinDQCj3YrM^)(w1{Q}C_xZoo7bvNp
zJo;~q%%^v|92I#!IGzvZ@|(WH`0?$q%Qy1d?B)88^Zq<sEMEO9SL~ZFr;lOxok>%V
zwk_8AzE|bWZ*whf&Ej&yXk)XJi(Zu2oZ^`%zG~N;-#5jo!@ccmm+6+RpSkvw+p0D4
z-Cmmy8tq>2Q%PjLV9{fR_M)tbZyk@s{>j#vXUzMb&HvYPAAv*b`3`He$1T*>4bv3S
zDs%i5{fWiu;Z!w_<Xj=%LL<jx`mbiakpEI~%8YluY8vY#orAq)&GUSACVcoNs<`Li
zUZ=(rfAepxwq3UNb<g?24ZhCiYv(R~cJEExLcQ)wCcd*x1Y>7ix|pZKxzJZ^R>~fy
z)2kDD7?TYiB=8)&ahz?x;g8;pmD3X97`<*y5a)G_+_cJbTIk!j&M3|7X<J_Jyy<xB
z+*ZkxT4pO}sYU*Kz5D+6x%Yq0egFNhfc&vfd49gVkycw@m3b}J4)5e#xp|xRgA%qj
z?yAf6-;!=saUFdp^k1y@%=w@u+cz99Eqi6%UYL7pJ59P)H>dBD;L{%ow_e)+Sa9(8
z&j&^|Pd}aD$rFDk*0s#NaqgbVm)Ea5_da~YSXGiDC2`VB`NFn~ytAIMsV>}b)mk@i
z@%^<gG;O9t$1Gp4%Zp34@=5W2kGhu!0`~d3UcY|w=*}bm78ZFMPp#D1{6OI2=kxpr
z-XAoLpR?=M-I9M>>$EC<aNO`)X2#e*CvU?_8@ofPMK`Th=u5TSJ`lhAPQn?{Mb);o
zX7WGPKP0b|*%R5U>tE{G+{2@&ac7E2@wFrgPWG34`$c0E?Hdgr{Jbt~yiKQ&IeCZP
zA>JQzS$|w(ntqet^w4>S{*neM!SosT)VA;6>b_(_=?A^{55*ruAJety4u5m+=8LYq
z+vR*N8BG0u^{KJAUWts~(ty9G8r@Gh&hP8%<Gs_AAYxZHd#{_GPm)-xV`O+{<Wip?
zp%r{zb~o2?1!{-}e_IsVt9kqHgLC(e8egyD%ea3~^Ls{*vdQLI@=w{UUX}jq3v~Ik
z@9#<7ITq6D?^b^ZnQ}@?HTB=Ag!$?M3of*IJX#(0Ex`Vfe8|6&{b4LtOF}MWeB9Bo
zPO99svUiVC?Y1|6`OnAia5eNQTe9A6e*f%eya%|-TnZj4lyHCb6|=o)WuLt<VES{v
z7qx<!>$MKA+xDg)L^gI;S*UJcsOt4Vj{T1%+>XUd2G!`~l-*~&HLu?Bm-)Y=#_8o%
zN8&!-@|zjCQsGHgnxynCTV|&xEsPoJ1uI-wj(JUY+$(P^<@)7mzR&u0uCp6j{p><G
z)@w!Y^Xr?C)G7GmdvnWg%liqgPUo_BZv9f~I?KMbMoWJoSN_rO6&ZJn1Vw(xbADPo
zbBoWj|0kaO_nv>+C2i{I^EtgeyY^+rs7Z@)E-ZL#tKv}Te|&TD?{jKvYWnZ|<F4s(
za@FvjG5_ft!ON38@BS=Q;<0-%e~DU^pGEtLiG`JU9q-PwX#R9jyb(Ulaq0B5u;&vm
z8ZR=h+PK1a_TM@B;tPbkCyVV>=-D>=h<<th(|@yN3b&;$$%uO4?d`KWDeKfS@$N7y
zFQsJRss=glYbp18)P3USR*S85%bqm9-czNlVpT?F_}uO79h3e$@<#;Dk$AQDj9sFr
z{{NXXHrRYGQR)n{-6?6?D0kfH=uF#-wVy1?n*Oss7s(J4JAE`rb87sA>p|{n`~F#m
zwd~NIUssY`^IK8u&aR!eFYf+Z^e@}yMY&V!hi@;|z7}J?ur;uER@BxOfpX2caqE?@
zsK2z_<-BKUl<!N0>Fpg;*Ht}@T<?`}+-v9IvyyXKK6&c>nQ>DyMK&V2bm^+jS7Mz$
zM^&n}Bz$*N)!-4o#Ju#qiSJ53ZCTyBp-km-7jK$k5jAgLZh6%YKh>p$%zORxGcIR2
zoSyVIN_=Cy+unQ67xkniyeQ!^I<)zKYu(p>JEb?fGHYqaUeGsun<qYH#w4p}9d-Aw
z_?|GdRW=IftuoH&-E~MqVn(KmzR!oEce)2k>-1_ShVJ_jC&C}BRk`ad>+E^Cf+2t9
zzJ3<`uKaT4&x73ZLFwB3pW+3dKT&HwAH#o5rl|76;mtmmK7~y<bARI3SEuz&{O2!v
zu)Id(d{YJQmYk&*ga6bnSg^iBi@WFQe)nA)T#sztep-_4NO6sa{(J5Tk+UZA+O-{V
z>z-INbNR#htzrAKA0?%jbcs5+oO;!uDBORnaP3AH&lMZKTn~OdQFd*c^NqtV8YXhI
zEp}V?M_|GP*Qf-KqYu+_qy)bi_%GV;UK3`WX(p*;*KNAiTl9VYQ={@i*Z+Swo3(>B
z#`I}-6?U1-Nea5Hw^FTSf#+q1T*tZ64?fO#R#tZMtt6Y>wuG0nZ>$h`{38C*iw(}z
zXZ)nEzIA=JN_NH5PTvjI%Wg9A<ho?AR4DzGJ@|L(qYon2%x{?-Et9fq`yIS(tJzJ@
z)f=y7E_r|8gRDs3%A<Uzy>3OH{bp7b>627#X|}9$s?gF6<~DY(KXNWRw(Kl($`yrY
zlPWE~3(mQ{uyoZ@mtL=xc}u?iOSx|QX8n~g<3yufzrRd$<FjYEQZ2WZMS4xd7RzG`
za)Y-E=<YT%lUcm!@}{ZorA&W>4zU?HKC*x7`A0%K%5<)5%jKMnmMi@3KZsbcf4M=3
zfR?}xt;R546SHexN_pBA&G8=;{$=phe`&j85U{a?PiNP=?4C{2AMZSsYIew;OTTs5
zS2?4q+eep_aGp(E8>*F_FP*$!PEt^O@yd4$YPNzhOmW`?QuiNf>$d&KC{uUtl1|Zu
zg2#_my{TAm)nuLS%85@>Coak|UvMzswt(P@vJ=@UypQ%g{1cphEbUoyNXc)Oy0o>^
zg_FVxXTCR<ZV9ulPW+}8;JncLMp^FRZLimzH0H5X5&3Z8#3TOXCu|RvKj3|{D=6an
z(cr5~7MuRKsQ*(u<7*Ma;s-`t8KPC<qM?7@pQ`yTT&r<|(>vE@O7ipIec}HF#c%&U
zaY$;tsb1be$?q@hStS^Bq9%r5F6c2fF~z!|2Yn?xm%bnPgdaCUE`7JmqT&+gjKm@Z
z11^1^L@3+P(u_+#JTs*vqgWx@)W}qU63j)3W{}=d156c0!(h;cK`fWPYhH4GN@iZV
zf{B@df`LL1m%dYCajIK>UJ2+NEf*gb7j0+XkPu7A@+p_p;^d;tf|C3q1rtLfuzEW?
zP<95boH8^4o!kpzfzIg-sVqoU03SJwGZPyTmx+xH6-+6>T$E@A=^Zt|P+>F-25lG+
z%*4(vu0G&Q3|j1(pI3sCiA~Tmu>pxSu`yAZ*xcAu!O+0SP{GpFSi!>7M8U$)T*1=R
zRKdc+6e5O1n;V)cm{}NtF<29r;4(HbP%t((Q7|(!#=w?FMhd1TCJJW87H}g$>I@AH
zEEEilOiaL*K#ed~Ff%rTI0vi-<}Q#0Cgx@eAPkZKxfLvCV4(n_L1J7Wf*1_a0LJFV
zV7pDtEfheQ3uG$DxfW)Y5T}BiY+$TlZU#EZ&<GqVCZ?7OX2zh<GE)EtouR2ESi;iC
zK!MA`*i-?;u!M$_g{hH(rLm;~$W%ikGh;9V#4$IqggD&T3_=?kgK2O$m|8+Y860dD
zh6<);hKS&`Fa#?E2e*kim<^5uaI_d2DR6-qCguvJ24)H-7RHb;1I3w%IoMZbCgutt
z3^v`+Si#W9$P^{kz-}-xuuvcubCIhNrVnfYICNnN0AIp{=>jEKSONuy0ytd21SGmi
zOQ2k+DHLP`D0QJ`YC~`)MX8ycynR5K+9?8CrUq@lMPA)(3CiUpRLr1D0|>XSO-wBm
zz}V1S!32cOjTB6fu&ITy0tmyzjE#*IOij(exd5CKOfAh7K-k<El*-K%OpPoc7^)GZ
z8HCME4M3~#;n>i?#6$s1aG6^gDS$9Y83>yhgE9^RTNs!rAY(%#b5MC;ZlPddXb8q!
z7Urf3AZ%u4u7C|&Sb*{=b_`MvHvnV^2%8xiDuA$sv9W@op`jr-P(U6Ba|}%l4I#p4
zEG|O>Q!@oi6BDp{kY;pjXae##$Oj11K;}ctg|oOoW`I2kR%T#epa9m1%7euUJkX(m
z5AqTSa~Xm)q7$Z|f)hrVn_Iwx%*50{0U3kjKo}fFpr|JobCIhNrVnfYIH7_PEGVIZ
zFj7JV1qCSafG|uGNDPEQd@fMPfl@3OlaXk-Kq(lUV8H|^!GeMYHIqY{)2Nx;#ot@o
z+1E7!w2d9qCP%5dL3?0Oayf}Lw<&Qow}F|0C8&xrH&-yXFj6oFRo*7X3KoW-Y-5f>
zn}N~;wBWZiH&6g!E@LBO1!Gea1yeIi3~XUytYB(j0TzcD2vTQgU}&OXXlQJ%U}0{q
z05QVI7_1EB7LXDU4Uz;IZ(?Gm0Ky<~n3%DJsRBq2B*tZGZlD0iSlj_p1i~N<Fbp!t
z)Ywu1gt<T*kYmj)Eg?QOGf*%$vrsSxInlyI0VHQ)2r2I@%uN)`4M6$C$O0?@(#!=?
z4Psarfl4P(*<%WkGy#<oriO5inWYij;UKrb+yxE=5C_yS00kP1h6OH&57GeQn;95@
z4FQD`NF1b(3&a3PfPxBi%?gNyiGe~NBnQGE!$BGh4ME;V3NEk{zyS*iTrw~hC7MBc
z!3KZ=7vwQeaN<jnAPpc4_8T;5a)BBppmYhsu+Rc|79E3P6c!L513;F6)NrAuO^^{F
zVbr{gt-^Nobp&l1Gso;n8$o*Bh@P}1r~)UUzBVH&C!1M<TEQj?poXWpB`9f{Dp(qu
zDOgyTDS&dWxw(OYxgn_eW}skhVys|hVxa&|4u+QC<{g)*k%5A#g(bM5ZDM4sU}k0s
z)@WvFs$gnvtN@ZXGqX@IwFJo-DVQ3WE0`G@E0|fBE0`OaC~%pZnkkrr3^6fKFtapJ
zurxIQD>gB<R4_LMRg1=!plpv!7#mwEfUv2BsR9Udfe2zSND~NKSc0;psRE4VGBY$#
zurRe$urLFaVwMV)#wH3DAQu>cx+5UI8Ms+%W^ANj3Ciadpw@<krGlk_DLC-B%#F+y
zEDa14EX)iQ%nghb%*;&{Km|I8HZ(9dQLr>NS1>a-0t=d$87aUpI7fjAE)!6K1cilx
zkpiem0BVk#niwgVnwo<#C~!>-K#c)o1v3M41!FTq1#r>>rG8U069q1CR2Z2km>L^^
z3n>$0h)Yb(4HYbm%)s$yY7UAnGX-NyO9c}XBL#DiT2RI{wuD3nsD2|CgDX~YHG}kl
z4InmIf;51zg#{vcav`TrQ1SzZ38)E0Wb))fPM@IU2}&`jc^NdQg*Gha<mv{xAIsMh
zTV{sT<4Bp=oV1~BkeP%V-=NeCaw~`i<pyLL#Kwlf2@j+ggt@S(z$XUQ4JKf!xWGIx
z0WuMU!5jnuQi<T18(1iSFhT^(0x9A$HiBk)a4BSN07~niD%22E6dHiLlAw|sBnz^~
z!q`v&j4h498Ji1auB9Ppx2~~*nUR44sMT&}Xr^FcXrW*R%Dd*4U_(Ilg#{>QS{f-B
z8k-n{OF&BlGX*XS&`koyW(t-T&`fP&p<oU&(Z~Q)CYdT&7+NZro0%wB7#S;o+<}h4
zZUDK%6qG5EF|_D{l>(r619<|3!Rlcd5?rZ)d-^5{CYB~}TR<TM!pH`LG=jvCF(g7j
zwFz#_g<A?D!({*tQII1+W`i7wOoP}k4AKB&gJ_8TARQnK5+MbH69dEum^QEwh=ZCX
zLETyOEa~C}%96p6pzMP-$YlgkkCY`rO=lA7S5P0DaF#R!wTO*D13AVDphC^u#0Z>5
z%`HIHCa6j@S1>aKRSHH5W+ny-re<aeriK;@pkAE`C<U4rTPT=Vnk$%?SwdRO=4Rjy
zw3&f1I5~ji!L3+Ba|KW#Z(?k&U<xwG(oDh3$V`FD%+yf9%m`H7m?@ZAf@%Q^1ye&%
z-C?X?W(umsKz%{fE*+>l3BslZ1_~g|1tN&SAWa|)s`x<aVKjKC7}Vi0H?>p%jg(jz
zf!fIy3T7t83g#AO;4m=(IU6+mXJQE+<^#3HEWm?c#tK|!po+@UPyu8BXfVXo!bHIg
zIwk<>+ky-<1&uXX7%LcCSi&))$I1m7j{x;-O^hrROhDrfMg|HdW}u-eP+JBRe4r6A
zQ}8T?sga?A5vV-`s*w#06ih5Y6E>hQ2X!k<4I%MiW~g8a>N8rHDwrFB1~H5jOe{f$
zg1Q+-3dSHe8iN`R1`4210mlWXx*`{Y>qc@lgY<z7AT~{cG=Q+VIU;RxAtz2y+9Ne>
zav>*9P}&3q3~ElsR=K)3d1*WQ`hw4HL+|t&fvN+PPA{koA|We-CbEdg%I3xj7N9{Q
zP*D#`jfTbw=9cE*E+4q~H?x3L17;QqW~QKKGH6WMP{9&>8l3^C#|p~ApzH~1f1zRv
z3rOj1YHkKL5Y#g?HL+B%G%;5&G%z&>o6KcoZlVCH6irPHAWi{QW>6=A#6fLl5C-W4
zISC{NN`xR9B*q0Ih`}HYFbpyXriTl}0ejli6zon5Ljwg+%hw##@-;R92MD;&3u;Fj
znJAcnM!G>QVoRtOK#IYJSQsgQ$}o^e!3J7_JZf$THUT663PO+*Kz;?&pmA#>OGq%9
znt)10Xpos$f=fb>B2Wbhaw~`p!XUm8cq|VRA0T~PAOa)-?(Twm5}?*KXow$FyBdOu
zRnQ6nLj_n!8XACxcT5lw28jm?6L1CxhcAh2E^;&>>j4`83R_|lBupbHs6n9$3U+Y6
zAC@vfA!Q5-1SCI#LJ@><B}^`qlnF|hAl0ZD88r5UUL`xbfkv-FJVDhbdX)^SfsymE
zIf?lgJR(LoBZC%UP=ZGnFM#U8(PcElH65U4Vo)AL%fyZW&aU9eV{nE;%f-eJ4Ty%d
zDJWZ$P#YT(w~h-mnqg#V3Lez}t;hiJVKj)14I3Jm8N=6&a6wdn>LoL<DG)wxHdr^9
zfT`pH^S}hiY7ho<5Cljif@cP5*_v1?AVk0{kRmQ43k!%is1pampjIsigTm9)5;Q1g
z0PZP+Y%w<jwL1__=K`5*0Wuvl>;|rTjlh$)=AecMXwulg1Uym(8fmjIFjp`)HdHV)
zGJ}j=S(q3paDhhmEX*tvEDb=Dw4mWJGX*m<P#*!*<px#vpn*CAQ1b*dlnv>%gWL(j
zU^jr=0h%H~#vliSFsNMs!k}0K@j)1*9z=u0xWLn>mY~5$Q*Z|eW-=&zKp5FjkVcRg
zGKNG4D7<iEqPn_9W(pt&fy@Ru4w(kAVHji!j18h8_JeeQFi6D02oXmRK7r%~F#@I(
zo;pyoB&6$#GArch=N_Q#>>C`3rCv2gAAK@KKG%wfHCcwlEy@DT0)e|*md2*w4jp)s
z6%?PKX&;an5)Gc;H2|d~P!|+7dB|mK3hg#Q=Sx9zrZ8+_X{KOmVg{K<g&GBtGc*9t
z-x`=JfGma>VQK_c26hfaje!AJ8f1Zqg`olngCsy&z+#{-F;o{9NP-v)(g?#KgTN!J
z=9UUvAP&g67N9vCkW)bob<j|e1!y+cNC6~g0vb*?GEuNJ0u6M7LIKn}w*<|snJRFB
z2A064SQsmqnVTtCn1hC3%)mMgjX;B0pn$bBQ!qC%Q~<dF<X&VN91b8skZy3WfkqBY
z%)pISm^erSsCj5+Vgfb<5?<zzFy;d31j&HH%EZC~5@sMt6BDp|Kyn}qHXSsBZDa%q
zcChh=h6-RefV$n}VsM|GT+JYTU;~Iwm>?Y>3<_*m0_8F{0L2X~g~CIOgapcknnFQF
zfI<j0Q)8JPa`X)VW$GZ%R1SJA3n>E-wJdn0CMmTnaci_d6OWdr777-YCg3#_po#}P
z%K;i|1&JZiX6A+pu(cK-Js`|wYzXS~g2qWe^FgQ>H0cDH<}inp7nUXprskkUVJ1cj
zhK8WEP?jbNP$LY$-9?a@ASECg<R*~uCMM<zAPf?Ri5Y{2febCd#&Llph`}Jkz!=oM
z2Dt?^6K!Iwzy&fD<XF(aF?fU-Jm(FXw=z+%Gyq`(1ryLf4`?>cz)%4cYK8`uM$ic%
z&@2~dj0-eQ460F$Efp+4{bdVC^=oJdT1^7-t(m2Qxq-0)$PJ)Q8i)qD8$^Rc!4$j%
z%o02|1PW=;WSX%lByd4|kU|h2JU3(rS{-HqjuDU{Tp$G?2@`W;1rt*faFD^oEQ~?H
zYYv`N0>=m_77Rf%aps6913Lj6u%N&t19MTL8Kf6%04Q)_(GRL&a3x8Q1`q~C7%XXm
z0|BHNgkhlt3LSI|ifwQ}fW|GLX&j`6%g_KhZGwyd2@{c(ok9IxC#<VBjL`?M3_-b@
zl*~-r;w(^k4xUZ`O-+L4UqR{I!a%{o5Hzv{n#@4ZW~QL=V^ak)BhZAf1$em!moa#)
zAZXbJXx#;<g$be|*aDPVK;y;cpoN?egG|kgL31{sSsZYcVG7F3pyh_3=A|LnOpp?o
zn?S~c#}ti0t3Mz{fW(Z=O%*^iNG+GC8O&Z74Y402iHt!Sz!<bH1(b@R%f%r}vp_xv
zWkEwD1q(CK6ey@Y3!3IOQ2@;)nt+N93qu79(1@}*r~zySk~C1TFfmo&0<FpfF+dZ<
zpztxbFjlYtwWUo#vqEM@3ZSq6VKWO0h{HikCqXMg%s`pj7!nGmphYpDUbKM$IFwD{
zfolZjLmY3SU}|XsHUvC>3{r0fT51VmSek%W=!549K$FW*F$+T@uqKd3&>%c0R16J4
zlAzuX6hq<?6tHAsE^w@nsTrgfYyh!I5~KlyK}i*sG`T=w4@x^A3=b`^|4@?#C@R1K
zftEBu%QleGCddd-SP{<5uHL@d&c03&;D#}J%?#@9B9CI3f@*eBGBa^&us|~>pbitb
z2s8$*!vbX(WAH#RXtER3c`^gdrWl$lm|1{Q1gQ0Fu3%zrpa7Zy;W9BZS1>gO4R@L;
z7=v1MhM;t30I4v*6Got^DFg7z4oJOWqyQS81}%XwGc!=&0?lWcnHegWSc2+(BLxeP
zEue;^g(b8G1ZRH~0@SSnVNeGNguxR-AO;}}(gebwt`SHrjOH>0t;PVgg$+QHL!iZB
zpxHFgA`~M9(4>$BsJa79)PM>)P<z=3R3;gL)>c89G+bt&WC2?90?LTs{sm}`%2L71
z5Y$sQFj4?5-U7`VgF4Tk4lE3VyJuj6%fuK|Dw;wnRx?nbnJbup7MU1=X3#+GX(RAz
z4HM8>3sX=jV6I>ZTJd6Hs$dFQ24iY$s$gOcTG{~`%{GL#(m|4-o<1o0K<i*lAtT+O
zWtAYug4Wj<gC?p>A+Z6PtsxhKr-sPY4AKWSfY?+C(g4DsCI7J0$ptDAVab!6)X9aM
zJVB`wlweSEGnTm}M{hR|@Z1uXuCocKi;tX{jY(X%VF+rw6EP%h2#RU)F_$TI3@`yF
zMpVOKV)$t;P%6faVP3;+2-FL>6o3qX$${7)4C6y+s0+{~V0;)2Q4Db@ObkL3Z~?ML
z>};qDuuDR0#3cuE0ccd6I?)I*4K*5x6N82Uaf-27KpO*4GchDnqK<!gIfAO>kPvKD
zvI+VC7^%%`(E1U=nb_Ri0zAzRqCw3KWE#ZAhQR|aAjKfeg-r!MF|ckh0aJyvLLX!z
z2!rJj1V|-<2O5U}VT1^n1yaNXnm7gXKuiBY7_@#0ghAmCUj7d1BY;{F2B1k`BL#CK
zP}OSzUf~EHLj$cSH3Lm78ksAYn;U{Ra+rgf)}V2FP|asz3SKN~Ze|2t`)O!o09v2|
znnnh#TmjYUptYyqHK(A~3#dB+s!NR_moR|#e1X<mgLV;_fkvxQH*0{M0P-BTfecyz
z2*sdK0b$rW5zrC@5Fdm=>OnL}j0?2c0<>xcM1#hKK!E_lpx^;vWP?E(L1M@l5*wi4
z!i|X;kOr9vauA3HIS!cyv0)fw3yck-A@+lGfG|je6bz1gh!HStU?C6(HA8~(6Z#yH
zt21Qn6}CAd6Nm=H=#??3(M(Dk8B|vj&XH!I5f{)XixFrukvVw!#2nNH1oh@XVn{To
z%?z7n0k^9`D}F!?2xCys3EFuCwLD=MWDsaZ0>lT6LBLw1mZqR)qd8>Yp9^FH2!m9C
zjD^u4)gW<LTM{g8WDcHp04>%B$$`X3ZXkm+f($nWtsyorQ~*zNf!u0tYODZur=g*O
zIcO;?Xqlw3i2_ItG)`h_0-8)SRR9H=r8#JA3uLZ>3#1riB50W;D1<<UfHZ-yp#f-3
z7AQzT>&;9o!R`mS8{`Za4Gshl2c#PuWS~V-=AbPNpq0vo3LtTi25?ZDK^nB+zyeKs
z8H0A&f*7E#hM|c9sBaDmHIOFI{zQ;-Kr{%04F^qaAy4#yYz8|46t3iAE^;-(^nnck
zg)PWq;NS#x+CZycL7|6~5J7S<O(4I)5+)bO!(h!8rr=-(hZYG5lM5wfg2EdVGN?Hj
z)K^8%$(|nIO$wkaht}6MK_9p>CUs_s$fZ{Xpgl#Pxen06T~K8M+Hqs3U=CU>2^w`a
zHC8aS1TFNnP%s1S2?Fs!+enQ~6pSrR6}U`{K(iO1aZk_^KQjf;T6xfFNzl@86VTEt
z&_*{?Qw384Q}9B26HuN9iCGwcH>h%%fyP%1LA%*NJ9f<#KnsIGia`-&W@4ydX>N&v
zjm(V{Kp4Cn(9%GG3&tQsgEWCKs7eH>h0$D~HJj$3>}mp<G=mJ<nS*LRkeIm<c;6yu
zwZEweXcaVQWhrQ?2{bNXq5#_S3tsVK4q9FYs&qkx18Cc{8EAOdP{Gm&GH7QCTDxX$
zpkNFdu!3Tk*SJg!4Z+<56GJlv6VTpj14~GM*8;S<6tt1cM8VkDM8O0Uh=v9VMxgmD
z(B4i9P}kNF6b7J0RiKe)(E3Txw3P`Yv_Yi}Xz0)sw9gu}ffO>{XAD|=X#^Uf0Ii<{
zjd~fID}Z{9<YI6am0ZmreP9DXgCQ1%gi|9(0|<lX;GwCK3$%R*G*|#imgJ;LF3<{A
zQ)sdTrAkm@LCwS1`naBspq;_Ko>-g5pvo7ylWPcCxJ5#3Y-B*(UL(*jGpMO(YM@|d
zZmwVk+QJKJ8A8QCYY0KDEf5Xf!vPvm1})wLt!FR?jU9tGuz_+ZXix<egSKOVwwi(#
zc7Y54VNjz7w4uk+%ow~+n9Io2K*1Q4&_F}KU|UVWGch1rLE<K$mA+7Un3yq=9-`Ml
zgA9XVkU=1qfG~K|Cuj*IXk-}VL~~=%Zdu3~1)!}aAUR`mb8tR02Tw<XrdrJ*Yb;Gc
zgKlOfV84L&PJxz2f(-!$B53;&Xgem94GKVz3qZCa(_AnPD6l{nqyR*N#6dKO4`PEb
zhz|-g&}<dRGLRfN3_uc~Iv5mS;A+SSH1uTvj#99kxv2t34x|CxW&|-{7!nPjU?mfC
zf#ZZs%^<yC13;_DK^_Ce55D9G(g4DskOqY+C?LR7ilC$g+S?5ZDR3Y_Qx43ZAR1S)
z<N|4irAtr{gA}7?V^AhUuZrEkvq&LWv#}|t^^cs5K?abLi-}uz1zL1(X<)2i0jh^U
zOM*ZfS`AGgtN1};pqWl6Z3?P~!K0m);7Lu;UKK8510w|!&`ubrBuo*Awg9#7K$EDT
z;uSO`3tB=9+J6I@j|5Gqf^6ji&ANdwNC(I%Fd8HY5(iDif-p!NCI+fYKyn~4E)YQs
z25A6ckRdP(_5+v$@-%3{GRVWAH5}kI;h@PM&_-TRH3({Fn1lE5f&<M0bie>;TQF!o
z7_<)rG$#fc#sxLVL53KDDq+wbXV3u!P!4FzAIJ$H=OWYKKma9SP+b7p*8!RgF*UVN
zFf}$)0JTU!a<HHV9c==dUNQ$wIe~i3#-On#@X|0-1v5~5fHZ=J@j;THVj5%!lnw4k
zn1VJW8<;78oB_jNCxFA%+(LmInu{Dw$a=sAfWwxE1PRj!+HQjC1<;6uk%<B<v|y6R
zG_HinWr>_JVG)Fyks*y_)Zr=@Z&2^pIoKIn_t+GDyb5FjDLI+A^;)150~*-?_2)sO
z<=~MGaGeYt#(@pzfZBSXtu~;xoGECpj<Etr9~Wpy!Wfh&uoQftQWZ2j0xH*F<3b=d
zD8E9steRUWfK33I0+In438O(y0*S*$Xh7m{F=J!!FdIk=Tp58FgfPf37zP;x>L`LR
zWXKKVX;4oL<Y6<=z9K^fGf;0Cw66zL&48wlz_}gNy)ad<1eH!8Js>ZD4!r@H2wE=$
z8WaP279<Ip3^o95bAoa}14JMvfSig<g98C12+|D>GEg%ZG>--gT2nKyhrvN@1Q}xl
z2Nozk3=9+?M^PAAC>VoI39vK;?|lLp25KsToCBgk7;HFfw-?w(XvBe?0BWj|i^1(;
zay5hWfej!wL4q`ZFxYR<gb5A=P^f?~D0so41@#}YUvVW&E|ioBG6AFuH78^19lN-I
zTGl~W^D+7`7m1TcMntaB0xdEHZAt|lR%2-d9>4*u<^^p@0}UV`)1X=byn+H$8Cif9
zB7zoJfwqzxL${oRJ9(gv9t49{&w!2rGzE=TfYLo^pBw0y91GAOENByuxdNAwshNVY
z0i@LmS|bHsAOUp|NZbU}Q#63ATLQTVBxY=C0o4N<-$An#yz~Z(7+537wV)-;ppj>&
z8ZMBjU_XPFl!BaT3L06qgk)n-_tFHkEf92^5Xi}v3TB`%18v>{?LRa#SKu-;w*Zfh
znHzyRvPR(jd|(4X+kq`D!G|A!_@Dp;xdJqu1ECGU-r$09K!F9qATNMukT{42@j+=4
z#s`HND6GJ-0a_~wQUFqDVq~ZQ3NT|(j2MG<ej0$I)Wpn0!NkH0EC*6+XaFjgp#cCA
zfJ6f*Sjog(;5Z>uGe|Gk0C3PkBOkO@3pC~h3OVFt2#PL{1`q~`gF+P)5L~86=@JxD
z;6Om~Bgmg1j4N4kSs<lLP!NL@qh?}IvlzWy?d%K6#35L>7n*`<U*vW*sJl!`ZA|3i
zEYMOUP|5|(g@F3^pb7{ywgXP;MhfOgG<fLB#00!F12hr=!d#$%03*<m4xqtRGz=Oz
zG6AhHumtTPfUGD0jV^(9cUf8*D}Y9sAO?W8vs!{im(0LhSwSX)BteG528BQx;bNer
z@=!e_k8yzv1sMd{18)pkSOr>&WujmPauUeDpqU@g%ns-z4$w>wXgm*eY!G-?Fz7@r
zPzeUw&0qrYf|(g;e*$PG$`Bkl;6MWfqA_R<FKF`ulw)dX2_K&WIRoS;5Dg9l5C?Qd
z9Vo<LG%RF6e2_vAA2cKfVuJz+Bo5NY1!90CAfW|XZVhn?NDSm05Dmg0!$BHA!)qWK
zhQTf{HZoHn7ju!T5vC7p0BBP>$X}rNF~gG_VVb~R15NRnfKDL+^=!aP-a#!FBLz@k
z!Tg6z<4TrX$mtRk!XQnkxfokjjC2J%`W|8MCM4ucY-j+=)}&-(bCiQ|K~*_QDH4*I
zn_8?Jl%JcJ$Ay^KGBhG_MBK;%zctSJrA3*kMaWiwcU+O+6JrCStk8AJ&q+bD2eeDn
zK!Fr{jPTpzk(yJMT9TQZh;9?87DTrRb|x{GzDs6WT53^hUUF)&LbQT`zI$SBZlZ#v
zen4@if}w%Fe{O1eqJp6@<TCi;%)IoRR0TsLbN!Ue)S}el%wh#YBMbeq%;L<XoYdli
z#N<@2SR`MXn1NCjsxL{mJ1qy(%Hq<3f}+&oVl?YOeLZ5WD@ZI#&C5wmD@n>sSFqGi
zDoRXFEy_&K0P_tE^b_;aL1NjdB``&X#`<Nc6(y;8DJl7-Nzjl;EGo(`Pf5y2DglQD
z+*GH`^mH`WfyR=FbsesVNC!s{C<;n4K~Z6$Ur?NhW)G;POsqY*nR%tf3YPlGnMKJt
zsSuu_0gPLkQ<7PbQwd4|5CzHk1(ii0pPK6z7bK=YTmTLNP#~eX1JpPm)*ZO~OG4yh
zmO-SawZhW;l2lyj97m!9m0rYpGrcIWELA@-xwIq|9LA-&X*sDC`X!k;DXIFoiOEIz
zdHP93sb#79DfuOd$;qjCCGfn)rC*epm#&|jnv$85lc=9jnwOqfRGOQUSX!c=pPrwW
znysIl2r?igza%HMxHwZksWc}iwFF9WL1~gH@--?LTcVU4mS+0k008G_6vx3Fg$Vzo
z#Nt%_w4D5+%shx0pgfjXoXVx2nv;`RP@Gw;pOToKo>~N@Qj&6zL$n~Zs3ar5v^X&@
zML!r4Ea|10IpC-TB~^WYSN#40y9BHf%mSATaEBnoQ<8GPQgFjk^HLIvGxSq)!4xE7
zONtUxQgaiFvh|D6oC4OXpPvfX4h@w^SOE*lX341vhGr)E$)!c0lDbmC(9BFfsVF}?
zH7_Z#NWsv|0-i+l!TA$Zh;ixX7p0_uGIVBMs)C`pk$z5odS-HBPF{YAenw?MMrxjZ
zQEGZ-aY<@XY6>jrrKF}8rKai^<dhbJivs<U^8Dh`g4CkS{30&>l8mC%R2UbUh;vI7
z3@wcH!Aep<$rWrIERE*pA=Kv=rQ{|SCzs}c9b{plpP!dnSejT=l3K(CVrL}gq(Q8J
ziWVyvS{ms)f>VsXBP7o_f{Gz%rg4M>t|L6C96|YmOW)B|-x=lrSBP#`h;COT-L7zL
zo)9&jU^QI&o=A#3;fh>KGW7i*7WzZf`-9c%`y(m$2P@#x_lIlCg_fZD{>3?<WDyF{
z8w$}IiljFbt|t;K$)z8XkzbUjpPpKjo0yl9lvAvq2+^Dfme)^2(wqpkSU(YNMj|9A
z5>xe)VL_1!(VYs>or<J86|OB4q9zlphD$#aNl_+TQEEwsejdcae2DsduzLM`B<1;F
z1zh_1aBV4>Wtl0d`uUK6D23=Oh3G6r(pd`EQ3;j=r8`hSRKmnjY8lK1MnGbEDwlo$
zsCF+=FoewG=m(`1=a&|NS~;LfIEYK%IX|x?HLs*t0n}tbY0Hvqq9MAGm=`x-R!sz4
zX$a~UBRkU&RLh{a6SFN$z)T~M&ydZ;I2O|g6d0&g86h)4Z4DGNA%THtv>Rcz0tlH2
z@hVajfr1a&??#}|A<3QKW<82KLBWS?rZFgVNHY`SRfIb+_J$jSLWeXnAzno?6BK;N
z?gX!*C&^6cid}@6CLph(m<jR;9y3j#F@nfN;Om5t!xLi_q6vXG!ZZ^)=ZfS`^f&^~
z<&fk~Q&0>byVDfpRb;=Lf&!Q{GohgYFG4T|wXk%1P|`f6-_0P-LipVblogTPX$JBM
zN$xa5PfKPXucDX<@(F2XLZSr8ouFt&Hq#uGxJWY79Nq8c=zcdR+3)7)em6(=yE(~z
zH%IroIlA91K(!4Xzgs|kipWP65U(P_(*hKH$l+;0!0%YhMEAP|y5B7b_#KOx=zh0A
z_q!#?;UxLp5*ixtd}Ij;3`E^w39^+WGYt(u&Opxah6bQWK@L$v1CTu=8ViaARAV8o
zM>y8dfaFj$Gyr)J)mZd!H3T<dNOLW;0fI<XpsNc&cTXX?7Tjtf(O5`2LN*o>EXc-!
z5+8}iLcEM@EGQ&VqRbE!P<V_r1UFrRxR4rph8XP~LyQKGp%Ew+Ni`QE7%<L1H3T1{
zNUFIQ;b4Rj4g^~%Si->=<VTc5hS5+lB-m2HW-chIQO$*f3{rByvc(UjCd3wR;C0Wa
z=0ZXS$y|c1AS~|1Xa^Z$G=vPn%@`8n4Z3g}Dg8oQN6794#U!cbg3>%nIDp$!DER{1
zW+KsCa4QPMT=1@H6mu;>F^SJyOGuO;=Qm4`A5qK&AG42YF33-$nG4#+1S-1_;cJ9Z
zq#F?`(hV`)Yh(Z^ypYX><P=1_8DY7s3pM>>GZ#G^jKI?)$l+jQ017@5!vS0oAcwCJ
zwE94DuOX=VBh_4puaUw5T7Mv$3koYz%|$OCjKFK5QNjV-ttHi5P#QuB2WW2@$-Ur`
zo<wtDMFzY*Vg#*0kj({!6{+Te@)C-BG3pB=LiL3ac<KwKelr61f>F(dq&y_|g8RLA
z+>6azXzhTM9>BE@O1y#V6jIH_2nTSjgK91)&5&v?C@-Oe1Gv^fH5Zg-NHiB(J0OJv
zxYj{27hI>1YAz@*p|}@(uP3Uxps*s<TuAIAyB8FisOEygibQk4bquO|L7|CaF1Q9E
z)m%_sLNOOwGa;p4aQ~fDb0NM)3I}i>AJx5}u)=39_y{o6{02Vh57oV(&_pqpP|x28
zi@6wme<O^}zY(F{KUQ-w!U1Cdz{re@a4>_!K2rFaVT1#g(}q#%O>FLkcKeac1&<}5
zgfDokfW&x%cKwmfh2%h_bOs(TAk|!muaV6Kg(j+dL19IrxzHg1By+*z3Ml4+#|=m|
z7vgJVb0IkpDICB<1*Dn_@inr!kd%jPE-0+<nF}61K+SKKkd8aDxuDQQ2?y|y0jcI<
zgadRW0?ECE+P|Rfc;H4UVkpN5qy1}y(f$S9f`Gml12tb@h689v4A?3}y97Kgf*cOU
z;9(Ea!ok=868nho1+Cc!*@OrOV{jXpRC6J*k8CceHbZqUD9w;+E+qDm%>|_@6m!9C
zWD?DVwsw)s1-GJ6%>{)Ospdj_jchI?<spSH`1T!A&4u_H*<4U)qPiCpR(Q-chBbB(
z>DL(A+C?%K+=@mqm(X|#R&z1J0i*p3TKI-HUtl#CBOEZsOF#?TNjBFQ!@U^oRAcZd
zgCvG8_*@3$_Jc7-I~8;%5XtVvXs3eixJApygxaat!WTRig5q9`cB(OW?1RK`fR17y
zr8DS!2vWW<AtU{Q+n^}!g|=Lg%mueFNpvr`4T@?ms5C&y7vL5qK69aKCXvQVK$k>-
zVhJf6FeZ|W!EH_w%>}nXQQQk{bRvZVxP?ioxscKe$-U5)E3&zuyhEzFkkSj;Tu2Rq
zY%VCTlV~ou4T>5Lpj3qtZ{QXtspdjrAIZJYmMfBb3C&o6*6M>JAF2EWw?R?d3vIa~
zn+pmnQr!#jHL`m_p@|X>;1(u{=7QUxDDH)}T#?)ho=GCrTu>T9H5Zcdkj(|95Pass
z8jncf3!Sn;3J35!7)m&Rn_ncF3vE3jnG0@}qM8fx0jcJK{D=|`;8rQBxrEXKmT-W!
z9+BOPo*qEk&GFYmnC6;*$6%4&YXWYSBD>cF+~y=L96%>vfU^p`{R_Ia6C{F251`xK
zNOv#9*NAX10ngweyB9}uvY1QXJ2RzNAsRH=8l(VeE-HZAazP5<sj46aNCQg&y!<6d
z0Wwyn02xSAfV3wRAj3(qpv6d~d7!mQ@MTNjY8BZb;2IJ$+~5v@)XWNys#O78%LOTb
zE2SU>NPVCH9zqCG0QdNV6u<>vkOH`z3Q_=1h6fSl5*#@i?h<fG5~Kj0whmH&<S+$r
zwhB^!q&x-41Z<E3WX2Q}e&C)S=n_Z;0|gKtobris4rBrePskWT;{!6)7X-Sf17Zm@
zE+A81K?<O|u)&r?Vg+=gJ478g=z|nM2Y4GO5En*}*#>-$g5+ccLuiOV<}ZR2AoC3%
z8k{y2jG#%&2z-cjkb)6-yd0FcAR%T1ZjTe^D9BJR9!Eh2p@S5Rz=Osh8eGvS7=atR
zAU?PvQ7{5GCW91=Ak$n5M$lAe1ZjXN7(p6LL`5HD90;GIOhF}Fkb)636+=eCKzyh;
zq?T7O0*?#@DHuU&Q3WH&Y7GS=NG+vc1RmKSGNi!C6`!LZRf&QTq@V{MAO%W0knVku
z0;D?*qCv$zh=w@U7+jtNflr_YsW*lc8AOE?q=k;hQK0?uU_&8k0=(r3%m<Iv2Pr`M
zEFc;ZjmFSugtXy<6pX=b?jZ2h6~rcVNHYeXqo8FFq#+xmU<__}f@p9huV4%rI#e)*
zmPf|W0ts|%3)u0{;skW28nKQ77oK?B1dRk}z6O_Ppke{EC<Ih`LvtQv!bJg+K!d>N
zFM%BdE!QDF4^lviI|F#}4ccjsT0t3u>q|V2GPVGhc?!nhv=^jcYza*|kWnS@0Wcu@
zAvI`_0;I-6q-S${mRo>g9FOJT5Cho>DOHgCWX`4Uo0^iD=#*cf5Dk(AZDljJG(z3w
z0}3)!<DC;r5_9s?L5@mKEe3C*M-33r6|9IF+qoz;u_QA;&n2-WRYAkW%Fxo%(!kQl
z($LJn!pK~cOFy6}KczG|wMaq3F}Wx|DX~PsC9}9BGbbmtNWnQj7qmiJ!C22gAuYd1
zAvixLu_&`x!AQ?oAu%sSAt$jUwMZdGBRIe@$T>z+Av`rjAvm=_LBT}9(8S8v)XLOA
zA;2XBR2Z9Sa_NKJl3%2tky4gfP#mL?9iypWs%K%Q;0)UP0$N)SQfa9Wl$ZiqPp{xw
znW_++pH@<ySd^;Cr5}=6l9Q^SQIY}L9;KI3mZ^!fA*!M%HI2&vbZj`60URipnSu_i
zPE!Dj85^0JfC^TSv_c+448#T%6(AZ(40J6#NXP&tW^8C`04n!Df(S7S(EYw3AtZH{
zpd)io#f%I<`+(8J3_-U?qKFxRV#GoLMa<aP#2l2-L4t65jZ95Jvzo|a1_lNeptcXH
zm=P8?8ySMyDah)K4b3gl%`-MK1>H3dQU>>%fq{_`D2IatVQw)nFfjmiz>&p3dO>*%
zS<Jw|1ay4}NC?S1Q%lgIQIH_aJYyqMbI{^HWHAE+GXqeg2TjZvG=_#OW^7~%x+DQ4
zgk*=A325vJBnY#^z`z__harm@8<~QxnFI+T=`}Y7EkXbZBJ^6AfGT5TF=Hb$15m||
zEM{O}0lMxOB!pz1r7@_L0TP6nXKZ9<2x@^Kiy0VLf{q0O2_f_v8i4KsMG-SLG%*CN
zH3JF4%`-H$1XZ1=VrG`0aS9YMBQtPQ3R%p+&;WE`K1c}3UPA*=GY=#Px5LN`T=yf3
z85kNGf=1y`#f%L>H6gN?v9XyEdVVuDHnG5PvyquGXq7FpUIRm8a9aaa%+vxjN{1|F
zY-nr<YHFg08JU3&`~nFf`OVZ4BV8F<VEE10$jlTYZy8#E4i-Z-&&a?OREL2C;bCQ9
z37%y@5i>LZw>nY93=PrqjIoiK8EE|lvN{7J19Q-*I;xnFIcOaWvY4@vnK`J}h%9Dc
zWMlzqaH5KtSYk=fpu>ki$`D~?WNHXnu>%r>`OUz{6tny@umGK{2vP>uYiwi&x~U39
z%)rRZ0Mj4lmgxR9HZrpWHF`ms5%yXbfaZTt#VkRa>On$C_L>`Dq)8)73(yK7kV3e5
z#)hE#AwWXNdcpl4kRXye&^c)!A-FmNV`DSWs5VFtrq0;d6r(&aHZljVRYF#0U~Fs-
z>K>wsnSjn}0|~+H0O<uaazKJGI}D6X4baoQfw7r6dU`fCFvrM8#zyAg#vrPBW|p9K
z5~`Rb=&V1G5W+16My8-ugdjnfTZ|2iLC3Cugpkykn1cHJAVGvWQxj056IIL%bi^b`
z2%*==+yuQ&F)%SO0F8No6vE6iFfjtJdqNg7HZljDYyc91n`dBR1UeNPRm{}b9HZ<s
zFa(`UhN8~c$Ov?_0GgP&8K{d35`??O)YuZV1`Acp40II-NC@s0V<U5O^fYc@YG#R1
zzL;7XfqD%f%`iKRjm#}D@}Q|D=stRoGPoTEW`>|Umr=w(deO^R12a%zhuYpSFf#@n
z28FH{bov8|n1PwGA*gc-5`?+Wz{~`6sw+qc?iOQXQ$tYy5hMsxXKZ9)fZhf%Ff%bj
zPrC+YW}vG!Kw1&z8Ce*jw}%YO%*-(Ihq(dhUTieIMxg7D(8Vl4!#5y7B=;GCMtzXQ
z49pEoLHz|(F(c4TXCNVD_ZefP4Ra&VF_<Xo49v~JoqLcVlD(iqqd`J&^9;<*jX|TJ
zAVHWq19MAbbhm(NM)dq<U~Y*K9|jhNrs(O<*ucOP-42j>ppg_5do2vjK{J`CVn!Hk
z24f=&&|!BVWe9&*fFcepty!2Dpx05xMi!tG_|f#5fG*iX6|*z}50-!g;o)LwVgee|
zKo<k8<wO$$Uk`vPW@-pp!-FOUy7L7jgz$%@sRep^F|af<#AyFnnqjsbEzQh8BL*M?
z5pFgE9qtJdLbAggv#hf;2c0v7t`2n2C%PEu8Ywg}3-F44kRZZd3lq?22AUY?03?tQ
zl3Oed(A(JtmX=1KK?RUPgn5>x7<~gvOVDX^AZ2j#K&Pytw{r|ZodW~Zv|(sqfKg5w
z8W>ojw+Rgm3_-^yq1j<*3Ys?p3BufGXkds@*BTla8K9RXh6YC98FN&<MyBXxlc9l;
z1$w*0(7@OLG%t#(*VqWXY&SG81|8-NQic>R#^&gKQ$qt21N6KKy4MfAKVxWMVgee6
z02zqzuZcN&eF^G9pqEXC2BwDSZ7E|T3k%TfD5`m;Slny|I;b0@4DJtOV^i>O8b}c4
z7Gom|OVE%IvY4TPnI(F<GBmINo$UxxhA_{_(g3}EWoTewf!@wGG&HaPjVpmPBkZ*V
z4^1PB85)987Ft>}Gy>gm1yY7=FL;C)BnUIl(9qZby-YMTGzG7AM^<NSWC=P+2qXkI
z&(P4+7`+c>XlQPX9_PkJmd2oweUN5^z2>IqZDm74OLO#mWNc(<0-D!E)eFjmX#O=a
z1h0ccR%dKv3A$4bB!qCYk)bhYj29#bcZ-pcF?xAwY-DMM-iI(WGBUwPyGF*~!A4~B
zjEyYK(c6=TM#i8ULqW=r++t!08X5)(!rWqPY-)mD4jCI+f-bWLDMQk0Y6zPD2MNOT
z8XB2lxX;+g5~B?Vx_lfou!^eJ!Wh#n1_q!RI5c&p=<OUsV*?Do85<jbuBQNLMY!46
zzzib~8XFsc=7B*9Vg4{SHZVjVmohXqHUdqKA*(YqHUVAP3KD|bVQg#wUZn~Wgqde(
zY+`}l_BJ#&10B8#QiiP87^CboHZw=Be+`W-Oh9vHAk8p4jExOImr8?#;N}?`TY&Dd
zLlrYI0FR)91d;TDZi4^`A@rIUm|~Q5CPpUcV>iae23YJcGD9DuFf=hX!zdGtO+go2
zpxA3{Yydh=3`NY)#MlDezlJ8JpgS&6)PeM3lqDvnpmWwy)ESzX8>06sK*<0!whmGV
z3l~EZb0duOVuIP0GB!4_M9(vZCKjMWMM1_P!qn6Nvy3n{G{CUK)Brr54$=&Fi>V>#
z;6#uR+&p7rLqm)@z|_zZGz$k(h|p_<(bq6G29*eCWtge4A*NmvQ;e}HV?$%~c8;N`
zi5X~p4XVAS=Ahjf$YRFe0XB4dO)=xw)Epx{gY<%CAd$^8G&RR8V@)m1(Ax*b#-^Z?
zNkLkX!_O3>UNE)97%Me2GsIA5Y;0(TQ7@Pog034!vBS^|G;)jTUt?oKbBwSuGX`D6
ziKf@o9KCO9Y-|X+SRP%S1$w{M(98mK%L|G+V`D>0jC#S$!UR1p7@C86j_7VSGQemf
znHyk+l{sh{1Vb-Ielr9$y$w;-8Je45l(C><7o!d^Hvz9k19=Xf#?4JJ#)d(9LGx2+
z>OeQAfP~=bz|h>>2s51;8DrD|=H{5~2y+YYtT@O(m|KjEO)<yZjEz9oT7r}z*=qrw
z1qBJh^cq?ifEQ~ciy0dmnPSun76za@SwPAV=2;kHw4aTQj154OmLP>NJB$p>G3Gjq
z49qPs+ENxK1{iHAV<XT#pCIFq>@_g}%~yj2VRjf=m}0ou7&J(R9_JROnEA-U%o4qA
zW^8O^fnE+7T9{+@H7qQ^yP1*QVr*<=iQbPlw6HJ&&BY_DGqkY8&}(FAX$D#igRBl@
z9!5Q5VQGX>7F&Ww@KMvaF{q+3Min!(G%&(ww_6%w^qq}C1qXWgSsEIFCZUntXJ~1N
zF{Ww^N<^0E_8NjN{{d-5#HFQ?DSG?V*w_qXY{}RdG>e9Ao{<?wezP>PL~p-<v|{u>
zER78?`k|J_mgwWL#>U2`7<G@Oi2+7?($WMYT^So2gAQUx^REfU_^zQP<~$upFGk&C
zX$rd05Y0R@&;iaUV#dbC<{0%1sCkbzFKK9LjybnzY>Y8>ZD?t3h~8E<v@{3Zc8qQ>
z=$a7}F;Eu=J$?->EkMVqqo^}BHZj2He^^>z%()s`TAE|FpG^!g>KRK*3-s|sBLf37
z^md)Gu^C3c8#En&K0ah@Y+{679~l`Kn1j~cfII>#hl~si!K(w2#f*(jjM3{nBLhQI
z^gfu8ff0rs#>OV#H4Vt-85tOXSF50k85^Rfagbj0{9$BZj4^L&WPq*QH8Dl6kBkgV
z4AJL0j0{Xc7uSQF0?*UN#wHkJ07eF82I&16BP{b8Mh51fgU3<K1JxDi<&_a=5Yz;<
zJOEA6qqj?p3@j``EA>GJ!sE!$6r)}>GBgEU2>?<C_lJ?88R+sAG%<4n&>AX`Ai_Lz
zjPXAsLko=Z)Cg4knWDMb(9#4wJsW`%5n5g~GBUuJ?*Yx^W27M?LnHM0G9x2H3-q*M
zWMpK3UPc%h8G|lq2YC$<2B2mMS{-0yWQIkr8OD5y5oln*2+hCXMiRQ1i6MIZYh-L<
zjJ~b_G^Bt&Cv0SF3c4B?)y>8hpzF@i#W2=%7@3$FVWbTcQ_vmrsCrGz4KUT2o1*tG
zjX=o?Z4A`N)C6?D1FCtZW`-E~($oy2Uu$G$WP}keW=5b(p-{~O4dJ1OvzZ0>5M_`;
zcseyV2i@ri5<<kUxrHG{I9p)$^FSm2=<_K?7Uo76Wvqoc=)yx(J1h-M(EFT5mWBrC
z_8J=*8=|)@j6sPAEiZsZW6{&Sv5_&xIE}H9u^D<l+1SX~0=;c!Y-Ehtel{|}n0Gcd
zHp3W0Ha0c`-HZqKZ%I*NW=?7mmyHdVesE@0DtIxIeo%gXiGm5JU91qqrSF-SmahO=
z;RWKkC`8*Bnx-ZvCYqTgB^jqBCYhv}CnlSNYFN`0<77i~b4xqID!^;bic1oUN-99h
SsEm!xEG&$<R8?L5-M9ed?rpCC

literal 0
HcmV?d00001

diff --git a/src/.gitignore b/src/.gitignore
new file mode 100644
index 0000000..871caa1
--- /dev/null
+++ b/src/.gitignore
@@ -0,0 +1,4 @@
+*\.class
+*/*\.class
+*/*/*\.class
+*~
\ No newline at end of file
diff --git a/src/C3aVM.java b/src/C3aVM.java
new file mode 100644
index 0000000..a8bb341
--- /dev/null
+++ b/src/C3aVM.java
@@ -0,0 +1,67 @@
+import java.io.IOException;
+import c3a.C3a;
+import c3a.C3aEval;
+import c3a.LoadC3a;
+import ts.Ts;
+import ts.TsParser;
+
+public class C3aVM {
+    private int verboseLevel = 0;
+    private TsParser stParser;
+    private String symbolsTableFileName;
+    private String C3AFileName;
+    private int stackSize;
+	private C3a code;
+	private Ts globalTable;
+	private LoadC3a loadC3a;
+    
+    public C3aVM(String symbolsTableFileName, String C3AFileName, int stackSize, int verboseLevel){
+	this.stackSize = stackSize;
+	this.verboseLevel = verboseLevel;
+	this.symbolsTableFileName = symbolsTableFileName;
+	this.C3AFileName = C3AFileName;
+	stParser = new TsParser();
+	this.globalTable = stParser.parse(symbolsTableFileName);
+	loadC3a = new LoadC3a(C3AFileName, this.globalTable);
+	this.code = loadC3a.getC3a();
+    }
+    
+    
+    public void run() throws IOException {
+	if(verboseLevel > 0)
+	    code.affiche(null);
+	C3aEval c3aEval = new C3aEval(code, globalTable, stackSize, verboseLevel);
+	code.accept(c3aEval);
+	c3aEval.affiche(null);
+	//        eval.affiche(C3AFileName.substring(0, C3AFileName.length() - 4));
+
+    }
+
+    public static void main(String[] args){
+	int verboseLevel = 0;
+	String symbolsTableFileName = null;
+	String C3AFileName = null;
+	int stackSize = 10000;
+
+        try {
+	    for (int i = 0; i < args.length; i++) {
+		if(args[i].equals("-v"))
+		    verboseLevel = Integer.parseInt(args[++i]);
+		else if(args[i].equals("-s"))
+		    stackSize = Integer.parseInt(args[++i]);
+		else if(args[i].equals("-c3a"))
+		    C3AFileName = args[++i];
+		else if(args[i].equals("-ts"))
+		    symbolsTableFileName = args[++i];
+	    }
+	    if(C3AFileName == null || symbolsTableFileName == null){
+		System.out.println("java C3aVM -c3a C3AFile -ts TSFile -s stackSize -v verboseLevel");
+		System.exit(1);
+	    }
+	    C3aVM vm = new C3aVM(symbolsTableFileName, C3AFileName, stackSize, verboseLevel);
+	    vm.run();
+	}catch(IOException e){
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/Compiler.java b/src/Compiler.java
new file mode 100644
index 0000000..39aebb8
--- /dev/null
+++ b/src/Compiler.java
@@ -0,0 +1,215 @@
+import lParser.parser.*;
+import lParser.lexer.*;
+import lParser.node.*;
+import java.io.*;
+import sc.*;
+import sa.*;
+import ts.*;
+import c3a.*;
+import nasm.*;
+import fg.*;
+import ig.*;
+import util.Error;
+
+
+public class Compiler
+{
+	private static String baseName = null;
+	private static String inputFileName = null;
+	private static int verboseLevel = 0;
+	private static Start scRoot = null;
+	private static SaProg saRoot = null;
+	private static Ts tableGlobale = null;
+	private static C3a c3a = null;
+	private static Nasm nasm = null;
+	private static Fg flowGraph = null;
+	private static FgSolution flowGraphSolution = null;
+	private static Ig interferenceGraph = null;
+
+
+	public static void main(String[] args) {
+		processCommandLine(args);
+		System.out.println("[BUILD SC] ");
+		buildSc();
+		/*		System.out.println("[BUILD SA] ");
+		buildSa();
+		System.out.println("[BUILD TS] ");
+		buildTs();
+		System.out.println("[TYPE CHECKING]");
+		typeCheck();
+		System.out.println("[BUILD C3A] ");
+		buildC3a();
+		System.out.println("[BUILD PRE NASM] ");
+		buildPreNasm();
+		System.out.println("[BUILD FLOW GRAPH] ");
+		buildFg();
+		System.out.println("[SOLVE FLOW GRAPH]");
+		solveFg();
+		System.out.println("[BUILD INTERFERENCE GRAPH] ");
+		buildIg();
+		System.out.println("[ALLOCATE REGISTERS]");
+		interferenceGraph.allocateRegisters();
+		System.out.println("[PRINT NASM]");
+		nasm.afficheNasm(baseName);
+		System.exit(Error.NOERROR.code());*/
+	}
+
+	private static void processCommandLine(String[] args) {
+		for (int i = 0; i < args.length; i++) {
+			if (args[i].equals("-v")) {
+				verboseLevel = Integer.parseInt(args[++i]);
+			} else {
+				inputFileName = args[i];
+				baseName = removeSuffix(inputFileName, ".l");
+			}
+		}
+		if (inputFileName == null) {
+			System.out.println("java Compiler input_file -v verbose_level");
+			System.exit(1);
+		}
+	}
+
+	private static void buildSc() {
+		PushbackReader fileReader = null;
+		Parser parser = null;
+		try {
+			fileReader = new PushbackReader(new FileReader(inputFileName));
+		} catch (IOException e) {
+			System.err.println("cannot open input file");
+			e.printStackTrace();
+		}
+		try {
+			parser = new Parser(new Lexer(fileReader));
+			scRoot = parser.parse();
+		} catch (ParserException e) {
+			System.err.println("syntax error");
+			e.printStackTrace();
+			System.exit(Error.SYNT.code());
+		} catch (LexerException e) {
+			System.err.println("lexical error");
+			e.printStackTrace();
+			System.exit(Error.LEX.code());
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT SC]");
+			scRoot.apply(new Sc2Xml(baseName));
+		}
+	}
+
+	private static void buildSa() {
+		try {
+			Sc2sa sc2sa = new Sc2sa();
+			scRoot.apply(sc2sa);
+			saRoot = sc2sa.getRoot();
+		} catch (Exception ignored) {
+		}
+		PrintStream out = System.out;
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT SA]");
+			try {
+				out = new PrintStream(baseName + ".sa");
+			}
+			catch (IOException e) {
+				System.err.println("Error: " + e.getMessage());
+			}
+			out.println(saRoot);
+			//new Sa2Xml(saRoot, baseName);
+		}
+	}
+
+	private static void buildTs() {
+		try {
+			Sa2ts sa2ts = new Sa2ts();
+			saRoot.accept(sa2ts);
+			tableGlobale = sa2ts.getTableGlobale();
+			SaCheckLinkage saCheckLinkage = new SaCheckLinkage();
+			saCheckLinkage.visit(saRoot);
+			if (tableGlobale.getFct("main") == null)
+				throw new ErrorException(Error.TS, "la fonction main n'est pas définie");
+		} catch (ErrorException e) {
+			System.err.print("ERREUR TABLE DES SYMBOLES : ");
+			System.err.println(e.getMessage());
+			System.exit(e.getCode());
+		} catch (Exception ignored) {
+		}
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT TS]");
+			tableGlobale.afficheTout(baseName);
+		}
+	}
+
+	private static void typeCheck() {
+		new SaTypeCheck(saRoot);
+	}
+
+	private static void buildC3a() {
+		try{
+			Sa2c3a sa2c3a = new Sa2c3a(saRoot, tableGlobale);
+			saRoot.accept(sa2c3a);
+			c3a = sa2c3a.getC3a();
+		}
+		catch(Exception e){}
+
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT C3A] ");
+			c3a.affiche(baseName);
+		}
+	}
+
+	private static void buildPreNasm() {
+		C3a2nasm c3a2nasm = new C3a2nasm(c3a, tableGlobale);
+		c3a.accept(c3a2nasm);
+		nasm = c3a2nasm.getNasm();
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT PRE NASM] ");
+			nasm.affichePreNasm(baseName);
+		}
+	}
+
+
+	private static void buildFg() {
+		flowGraph = new Fg(nasm);
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT FLOW GRAPH] ");
+			flowGraph.affiche(baseName);
+		}
+	}
+
+	private static void solveFg() {
+		flowGraphSolution = new FgSolution(nasm, flowGraph);
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT FLOW GRAPH SOLUTION] ");
+			flowGraphSolution.affiche(baseName);
+		}
+	}
+
+	private static void buildIg() {
+		interferenceGraph = new Ig(flowGraphSolution);
+		if (verboseLevel > 1) {
+			System.out.println("[PRINT INTERFERENCE GRAPH] ");
+			interferenceGraph.affiche(baseName);
+		}
+	}
+
+
+
+	/*catch (Exception e)
+	{
+		e.printStackTrace();
+		System.out.println(e.getMessage());
+		System.exit(1);
+	}
+    }*/
+
+
+    public static String removeSuffix(final String s, final String suffix)
+    {
+		if (s != null && suffix != null && s.endsWith(suffix)){
+			return s.substring(0, s.length() - suffix.length());
+		}
+		return s;
+    }
+
+}
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..b64a54c
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,52 @@
+all: Compiler C3aVM NasmVM SaVM
+
+SaVM: SaVM.java saParser
+	javac SaVM.java
+
+NasmVM.jar : NasmVM
+	jar cmf NasmVM.mf NasmVM.jar NasmVM.class nasm
+
+C3aVM: C3aVM.java c3aParser
+	javac C3aVM.java
+
+NasmVM: NasmVM.java nasmParser
+	javac NasmVM.java
+
+Compiler.jar : Compiler
+	jar cmf Compiler.mf Compiler.jar *.class sc sa ts nasm util c3a fg ig lParser
+
+Compiler: Compiler.java lParser
+	javac Compiler.java
+
+lParser: l.cfg
+	java -jar ../sablecc/sablecc.jar l.cfg
+
+saParser: sa.cfg
+	java -jar ../sablecc/sablecc.jar sa.cfg
+
+c3aParser: c3a.cfg
+	java -jar ../sablecc/sablecc.jar c3a.cfg
+
+nasmParser: nasm.cfg
+	java -jar ../sablecc/sablecc.jar nasm.cfg
+
+ualParser: ual.cfg
+	java -jar ../sablecc/sablecc.jar ual.cfg
+
+clean:
+	-rm *.class
+	-rm sc/*.class
+	-rm sa/*.class
+	-rm c3a/*.class
+	-rm ts/*.class
+	-rm nasm/*.class
+	-rm fg/*.class
+	-rm ig/*.class
+	-rm util/intset/*.class
+	-rm util/graph/*.class
+	-rm util/*.class
+	-rm -r lParser
+	-rm -r saParser
+	-rm -r c3aParser
+	-rm -r nasmParser
+
diff --git a/src/NasmVM.java b/src/NasmVM.java
new file mode 100644
index 0000000..28c41c6
--- /dev/null
+++ b/src/NasmVM.java
@@ -0,0 +1,66 @@
+import ts.Ts;
+import ts.TsParser;
+import nasm.NasmEval;
+import nasm.Nasm;
+import nasm.LoadNasm;
+import java.io.IOException;
+
+
+public class NasmVM {
+    private int verboseLevel;
+    private int stackSize;
+    private Nasm code;
+    private String nasmFileName;
+
+    public NasmVM(String nasmFileName, int stackSize, int verboseLevel){
+	this.nasmFileName = nasmFileName;
+	this.stackSize = stackSize;
+	this.verboseLevel = verboseLevel;
+    }
+    
+    public void run() throws IOException {
+	LoadNasm loadNasm = new LoadNasm(nasmFileName);
+	this.code = loadNasm.getNasm();
+
+	if(verboseLevel > 0)
+       		code.afficheNasm(null);
+	
+        NasmEval eval = new NasmEval(code, stackSize, verboseLevel);
+	eval.displayOutput();
+    }
+
+    public static void main(String[] args){
+	int verboseLevel = 0;
+	int stackSize = 10000;
+	String nasmFileName = null;
+
+        try {
+	    for (int i = 0; i < args.length; i++) {
+		if(args[i].equals("-v"))
+		    verboseLevel = Integer.parseInt(args[++i]);
+		else if(args[i].equals("-s"))
+		    stackSize = Integer.parseInt(args[++i]);
+		else if(args[i].equals("-nasm"))
+		    nasmFileName = args[++i];
+	    }
+	    if(nasmFileName == null){
+		System.out.println("java NasmVM -nasm nasmFile -s stackSize -v verboseLevel");
+		System.exit(1);
+	    }
+	    var vm = new NasmVM(nasmFileName, stackSize, verboseLevel);
+	    vm.run();
+	}catch(IOException e){
+            e.printStackTrace();
+        }
+    }
+}
+
+/*
+        else{
+            var pathTab = preNasmFilePath.split("/");
+            var fileNamePreNasm = pathTab[pathTab.length - 1];
+            var fileName =  outputPath + fileNamePreNasm.substring(0, fileNamePreNasm.length()-3)+ ".out";
+            vm.displayOutput(fileName);
+        }
+    }
+*/
diff --git a/src/SaVM.java b/src/SaVM.java
new file mode 100644
index 0000000..0588a6e
--- /dev/null
+++ b/src/SaVM.java
@@ -0,0 +1,46 @@
+import sa.*;
+import ts.*;
+
+public class SaVM {
+
+  public static void main(String[] args) {
+    int verboseLevel = 0;
+    String saFileName = null;
+
+    try {
+		for (int i = 0; i < args.length; i++) {
+			if(args[i].equals("-v"))
+				verboseLevel = Integer.parseInt(args[++i]);
+			else if(args[i].equals("-sa"))
+				saFileName = args[++i];
+		}
+		if(saFileName == null){
+			System.out.println("java SaVM -sa saFile -v verboseLevel");
+			System.exit(1);
+		}
+
+      if(verboseLevel > 0)
+		  System.err.println("parsing xml document");
+      if(verboseLevel > 0)
+		  System.err.println("building sa tree");
+      
+	  SaProg prog = new LoadSa(saFileName).getRoot();
+      if(verboseLevel > 0)
+		  System.out.println(prog);
+      
+      if(verboseLevel > 0)
+	  	System.err.println("building symbol table");
+	  	Sa2ts sa2ts = new Sa2ts();
+		prog.accept(sa2ts);
+		Ts tableGlobale = sa2ts.getTableGlobale();
+
+      if(verboseLevel > 0)
+		  System.err.println("evaluating sa tree");
+      SaEval saEval = new SaEval(prog, tableGlobale);
+      saEval.affiche(null);
+      
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}
diff --git a/src/c3a.cfg b/src/c3a.cfg
new file mode 100644
index 0000000..0737c8b
--- /dev/null
+++ b/src/c3a.cfg
@@ -0,0 +1,113 @@
+Package c3aParser;
+
+Helpers
+
+lettre = [['a' .. 'z'] + ['A' .. 'Z']];
+chiffre = ['0' .. '9'];
+alpha = [lettre + ['_' + '$']];
+alphanum = [lettre + chiffre];
+
+Tokens
+
+espaces = (' ' | 13 | 10 | 9)+;
+commentaire= '#' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
+
+
+co         = '[';
+cf         = ']';
+call       = 'call';
+stop       = 'stop';
+fbegin     = 'fbegin';
+fend       = 'fend';
+aff        = '=';
+noteq      = '!=';
+inf        = '<';
+infeq      = '<=';
+sup        = '>';
+supeq      = '>=';
+eq         = '==';
+goto       = 'goto';
+param      = 'param';
+ret        = 'ret';
+if         = 'if';
+moins      = '-';
+plus       = '+';
+fois       = '*';
+divise     = '/';
+write      = 'write';
+read       = 'read';
+nombre  = chiffre+;
+prefixe_temp = '@';
+identif    = alpha alphanum*;
+
+
+Ignored Tokens
+
+espaces, commentaire;
+
+Productions
+
+prog = listeinst;
+
+listeinst = {recursif} inst listeinst |
+        {final} inst
+	;
+
+inst = {add}      add |
+       {sub}      sub |
+       {mul}      mul |
+       {div}      div |
+       {aff}      affect |
+       {jmp}      jmp |
+       {jmpeg}    jmpeg |
+       {jmpneg}   jmpneg |
+       {jmpinf}   jmpinf |
+       {jminfeg}  jmpinfeg |
+       {jmpsup}   jmpsup |
+       {jmpsupeg} jmpsupeg |
+       {fcall}    fcall |
+       {iwrite}   iwrite |
+       {iread}    iread |
+       {arg}      arg |
+       {return}   return |
+       {begin}    begin |
+       {end}      end |
+       {stop}     istop
+       ;
+       
+add      = etiqop [result]:tv aff [op1]:ctv plus   [op2]:ctv; 
+sub      = etiqop [result]:tv aff [op1]:ctv moins  [op2]:ctv; 
+mul      = etiqop [result]:tv aff [op1]:ctv fois   [op2]:ctv; 
+div      = etiqop [result]:tv aff [op1]:ctv divise [op2]:ctv; 
+affect   = etiqop [result]:tv aff [op1]:ctv;
+jmpeg    = etiqop if [op1]:ctv eq   [op2]:ctv goto [result]:constante;
+jmpneg   = etiqop if [op1]:ctv noteq [op2]:ctv goto [result]:constante;
+jmpinf   = etiqop if [op1]:ctv inf   [op2]:ctv goto [result]:constante;
+jmpinfeg = etiqop if [op1]:ctv infeq [op2]:ctv goto [result]:constante;
+jmpsup   = etiqop if [op1]:ctv sup   [op2]:ctv goto [result]:constante;
+jmpsupeg = etiqop if [op1]:ctv supeq [op2]:ctv goto [result]:constante;
+jmp      = etiqop goto [result]:constante;
+begin    = identif fbegin;
+end      = etiqop fend;
+fcall    = etiqop [result]:tv aff call identif;
+iwrite   = etiqop write ctv;
+iread    = etiqop [result]:tv aff read;
+arg      = etiqop param ctv;
+return   = etiqop ret ctv;
+istop    = etiqop stop ctv;
+
+
+ctv = {c} constante | {t} temporaire | {v} variable;
+tv = {t} temporaire | {v} variable;
+
+constante = nombre;
+
+temporaire = prefixe_temp nombre;
+
+variable = {scalaire} identif |
+           {tab} identif co ctv cf
+           ;
+
+etiqop = {cte} nombre |
+         {vide}
+         ;
diff --git a/src/c3a/C3a.java b/src/c3a/C3a.java
new file mode 100644
index 0000000..9fe8ad5
--- /dev/null
+++ b/src/c3a/C3a.java
@@ -0,0 +1,87 @@
+package c3a;
+import java.util.*;
+import java.io.*;
+import ts.*;
+import sa.*;
+
+    
+public class C3a{
+    public List<C3aInst> listeInst;
+    // compteur des temporaires, pour générer des noms uniques
+    private int tempCounter;
+    // étiquette de la prochaine instruction, on retarde l'ajout de l'étiquette
+    private C3aLabel nextLabel;
+    private int labelCounter;
+    public C3aConstant True;
+    public C3aConstant False;
+
+    public C3a(){
+	this.listeInst = new ArrayList<C3aInst>();
+	this.labelCounter = 0;
+	this.tempCounter = 0;
+	this.nextLabel = null;
+	this.True = new C3aConstant(1); // constantes utilisées partout
+	this.False = new C3aConstant(0); // constantes utilisées partout
+    }
+
+	public int getTempCounter(){return this.tempCounter;}
+	public void setTempCounter(int value){this.tempCounter = value;}
+	public int getLabelCounter(){return this.labelCounter;}
+	public void setLableCounter(int value){this.labelCounter = value;}
+
+	public void ajouteInst(C3aInst inst){
+	if(this.nextLabel != null){
+	    inst.setLabel(this.nextLabel);
+	    this.nextLabel = null;
+	}
+	this.listeInst.add(inst);
+    }
+    
+    public C3aLabel newAutoLabel(){
+	return new C3aLabel(this.labelCounter++);
+    }
+
+    public C3aTemp newTemp(){
+	return new C3aTemp(this.tempCounter++);
+    }
+
+    public void addLabelToNextInst(C3aLabel label){
+	if(this.nextLabel != null){
+      label.affect(this.nextLabel);
+	    System.err.println("WARNING : Étiquette précédente ignorée " + this.nextLabel.getNumber());
+	}
+	this.nextLabel = label;
+	//	if(etiquette->oper_type == O_ETIQUETTE){
+	//   etiquette->u.oper_etiquette.ligne = c3a->next;
+	//}
+	//if(etiquette->oper_type == O_FCT){
+	//   etiquette->u.oper_fct->adresse = c3a->next;
+	//}
+    }
+
+    public void affiche(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".c3a";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+    	Iterator<C3aInst> iter = this.listeInst.iterator();
+    	while(iter.hasNext()){
+    	    out.println(iter.next());
+    	}
+    }
+	public <T> T accept(C3aVisitor <T> visitor) {
+		return visitor.visit(this);
+	}
+	
+}
+
diff --git a/src/c3a/C3aBooleanConstant.java b/src/c3a/C3aBooleanConstant.java
new file mode 100644
index 0000000..419e5e9
--- /dev/null
+++ b/src/c3a/C3aBooleanConstant.java
@@ -0,0 +1,15 @@
+package c3a;
+
+public class C3aBooleanConstant extends C3aOperand{
+    public boolean val;
+
+    public C3aBooleanConstant(boolean val){
+	this.val = val;
+    }
+
+    public String toString(){return String.valueOf(this.val);}
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aConstant.java b/src/c3a/C3aConstant.java
new file mode 100644
index 0000000..657cdd3
--- /dev/null
+++ b/src/c3a/C3aConstant.java
@@ -0,0 +1,15 @@
+package c3a;
+
+public class C3aConstant extends C3aOperand{
+    public int val;
+
+    public C3aConstant(int val){
+	this.val = val;
+    }
+
+    public String toString(){return Integer.toString(this.val);}
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aEval.java b/src/c3a/C3aEval.java
new file mode 100644
index 0000000..e1f2fd2
--- /dev/null
+++ b/src/c3a/C3aEval.java
@@ -0,0 +1,385 @@
+package c3a;
+import java.util.*;
+import java.io.*;
+import ts.*;
+import util.Memory;
+import util.Type;
+
+public class C3aEval implements C3aVisitor <Integer> {
+    private C3a c3a;
+    private Ts tableGlobale;
+    private int nbReg;
+    private int[] reg;
+    private int[] stack;
+    private Memory varGlob;
+    private int eip;
+    private int ebp;
+    private int esp;
+    private int stackSize;
+    private Map< Integer, Integer> label2index;
+    private Map< String, Integer> function2index;
+    private boolean debug;
+    private boolean stop;
+    private ArrayList<String> programOutput = new ArrayList<String>();
+    private TsItemFct currentFct;
+    private Stack<TsItemFct> stackCurrentFct;
+    
+    private C3aOperand storeReturnValue;
+    private Stack<C3aOperand> stackStoreReturnValue;
+	private int verboseLevel;
+
+    
+    public C3aEval(C3a c3a, Ts tableGlobale, int stackSize, int verboseLevel){
+	debug = true;
+	this.verboseLevel = verboseLevel;
+	this.c3a = c3a;
+  	stack = new int[stackSize];
+	nbReg = c3a.getTempCounter();
+  	reg = new int[nbReg];
+  	esp = 0; 
+	varGlob = new Memory(tableGlobale.getAdrVarCourante(), 0);
+  	this.tableGlobale = tableGlobale;
+  	this.currentFct = null;
+  	storeReturnValue = null;
+  	label2index = new HashMap< Integer, Integer>();
+  	function2index = new HashMap< String, Integer>();
+  	C3aInst c3aInst = null;
+	stackCurrentFct = new Stack<>();
+	stackStoreReturnValue = new Stack<>();
+	eip = 0;
+	
+  	for(int i = 0; i < c3a.listeInst.size(); i++){
+  	    c3aInst = c3a.listeInst.get(i);
+  	    if(c3aInst.label != null){
+  		label2index.put(c3aInst.label.number, i);
+  	    }
+	    if(c3aInst instanceof C3aInstFBegin){
+		String identif = ((C3aInstFBegin)c3aInst).val.identif;
+		function2index.put(identif, i);
+	    }
+  	}
+
+  }
+
+  public C3a getC3a(){
+		return this.c3a;
+  }
+    public void afficheEtat(C3aInst inst){
+	System.out.println("---------------------------------------------");
+	System.out.println("eip = " + eip + "\tesp = " + esp + "\tebp = " + ebp);
+	System.out.print("PILE : ");
+	affichePile();
+	System.out.print("REGISTRES : ");
+	afficheReg();
+	System.out.println(inst);
+    }
+
+
+    
+    public void affiche(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+	
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".c3aout";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	for (String line : programOutput)
+	    out.println(line);
+    }
+    
+    
+    public void affichePileVertical(){
+	for(int i = esp-1; i >= 0; i--){
+	    System.out.println(i + ":" + stack[i]);
+	}
+    }
+
+    public void affichePile(){
+	for(int i = 0; i < esp; i++){
+	    System.out.print(stack[i] + " ");
+	}
+	    System.out.println("");
+	
+    }
+
+    public void push(int i){
+	if(esp == stackSize){
+	    System.out.println("stack overflow !!!");
+	    System.exit(1);
+	}
+	stack[esp] = i;
+	esp++;
+    }
+
+    public void afficheReg(){
+	for(int i=0; i <nbReg; i++)
+	    System.out.print(i + ":" + reg[i] + " ");
+	System.out.println("");
+    }
+    
+    public void pushReg(){
+	//	System.out.println("pushReg " + nbReg + " registers");
+	for(int i=0; i <nbReg; i++)
+	    push(reg[i]);
+    }
+    
+    public void popReg(){
+	//	System.out.println("popReg " + nbReg + " registers");
+	for(int i=nbReg-1; i >=0; i--)
+	    reg[i] = pop();
+    }
+    
+    public int pop(){
+	if(esp == 0){
+	    System.out.println("cannot pop empty stack !!!");
+	    System.exit(1);
+	}
+	esp--;
+	return stack[esp];
+    }
+
+	public Integer visit(C3a c3a){
+		stop = false;
+		C3aInst c3aInst;
+		while(!stop){
+			c3aInst = c3a.listeInst.get(eip);
+			//	    System.out.println("<" + c3aInst.getClass().getSimpleName() + ">");
+			if(verboseLevel > 0)
+				afficheEtat(c3aInst);
+
+			c3aInst.accept(this);
+		}
+		return 0;
+	}
+    public Integer visit(C3aConstant constant){
+	return constant.val;
+    }
+    
+    public Integer visit(C3aBooleanConstant constant){
+	return (constant.val == true)? 1 : 0;
+    }
+    
+    public Integer visit(C3aTemp temp){
+	return reg[temp.num];
+    }
+ 
+    public Integer visit(C3aVar var){
+	int adresse = var.item.adresse;
+	Type type =   var.item.type;
+	// variable globale
+	if(var.item.portee == this.tableGlobale){ 
+	    int offset = (var.index != null)? var.index.accept(this) : 0;
+	    //	    return varGlob[adresse/4 + offset];
+	    //	    System.out.println("adresse = " + adresse + " taille = " + type.taille());
+	    return varGlob.readNBytes(adresse + offset * type.taille(), type.taille());
+	}
+	if(var.item.isParam){ // parametre
+	    int nbArgs = this.currentFct.nbArgs;
+	    return stack[ebp - 2 - nbArgs + adresse / 4];
+	}
+	// variable locale
+	return stack[ebp + 1 + adresse / 4];
+    }
+
+    public void affect(C3aOperand op, int val){
+	if(op instanceof C3aVar){
+	    C3aVar var = (C3aVar) op;
+	    int adresse = var.item.adresse;
+	    int size = var.item.getType().taille();
+	    // variable globale
+	    if(var.item.portee == this.tableGlobale){ 
+		int offset = (var.index != null)? var.index.accept(this) : 0;
+		varGlob.writeInt(adresse + offset * size, val);
+	    }
+	    else if(var.item.isParam){ // parametre
+		int nbArgs = this.currentFct.nbArgs;
+		stack[ebp - 2 - nbArgs + adresse/4] = val;
+	    }
+	    else // variable locale
+		stack[ebp + 1 + adresse/4] = val;
+	}
+	else if(op instanceof C3aTemp){
+	    C3aTemp temp = (C3aTemp) op;
+	    reg[temp.num] = val;
+	}
+    }
+
+    public Integer visit(C3aFunction fct){
+	return null;
+    }
+
+    public Integer visit(C3aLabel label){
+	return label.number;
+    }
+    /*--------------------------------------------------------------------------------------------------------------*/
+    
+    public Integer visit(C3aInstStop inst){
+	stop = true;
+	return null;
+    }
+
+    public Integer visit(C3aInstAdd inst){
+	//if(debug){afficheEtat(inst);}
+	affect(inst.result, inst.op1.accept(this) + inst.op2.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstSub inst){
+	//if(debug){afficheEtat(inst);}
+	affect(inst.result, inst.op1.accept(this) - inst.op2.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstMult inst){
+	//if(debug){afficheEtat(inst);}
+	affect(inst.result, inst.op1.accept(this) * inst.op2.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstDiv inst){
+	//if(debug){afficheEtat(inst);}
+	affect(inst.result, inst.op1.accept(this) / inst.op2.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstJumpIfLess inst){
+	//if(debug){afficheEtat(inst);}
+	if(inst.op1.accept(this) < inst.op2.accept(this))
+	    eip = label2index.get(inst.result.accept(this));
+	else
+	    eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstJumpIfEqual inst){
+	//if(debug){afficheEtat(inst);}
+	if(inst.op1.accept(this) == inst.op2.accept(this))
+	    eip = label2index.get(inst.result.accept(this));
+	else
+	    eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstJumpIfNotEqual inst){
+	//if(debug){afficheEtat(inst);}
+	if(inst.op1.accept(this) != inst.op2.accept(this))
+	    eip = label2index.get(inst.result.accept(this));
+	else
+	    eip++;
+	return null;
+    }
+    
+    public Integer visit(C3aInstJump inst){
+	//if(debug){afficheEtat(inst);}
+	eip =  label2index.get(inst.result.accept(this));
+	return null;
+    }
+
+    public Integer visit(C3aInstAffect inst){
+	//if(debug){afficheEtat(inst);}
+	affect(inst.result, inst.op1.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstParam inst){
+	//if(debug){afficheEtat(inst);}
+	push(inst.op1.accept(this));
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstReturn inst){
+	//if(debug){afficheEtat(inst);}
+	stack[ebp - 2] = (inst.op1 != null)? inst.op1.accept(this) : 0;
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstWrite inst){
+	//if(debug){afficheEtat(inst);}
+	programOutput.add(inst.op1.accept(this).toString());
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstCall inst){
+	//if(debug){afficheEtat(inst);}
+	//	storeReturnValue = inst.result;
+	stackStoreReturnValue.push(inst.result);
+	// allocation mémoire pour la valeur de retour
+	//if(debug){System.out.println("allocation mémoire pour la valeur de retour, esp++");}
+	esp++;
+	//if(debug){System.out.println("sauvegarde de l'index de l'instruction à effectuer après l'appel : push(eip + 1)");}
+	push(eip + 1);
+	stackCurrentFct.push(currentFct);
+	eip = function2index.get(inst.op1.val.identif);
+	return null;
+   }
+
+    public Integer visit(C3aInstFBegin inst){
+	//if(debug){afficheEtat(inst);}
+	currentFct = inst.val;
+	int nbVarLoc = currentFct.getTable().getAdrVarCourante();
+	
+	//if(debug){System.out.println("sauvegarde de l'ancienne valeur de ebp");}
+	push(ebp);
+	//if(debug){System.out.println("nouvelle valeur de ebp");}
+	ebp = esp - 1;
+	//if(debug){System.out.println("allocation des variables locales");}
+	esp = esp + nbVarLoc;
+	pushReg();
+	eip++;
+	return null;
+    }
+
+    public Integer visit(C3aInstFEnd inst){
+	//if(debug){afficheEtat(inst);}
+	int nbVarLoc = currentFct.getTable().getAdrVarCourante();
+	int nbParam = currentFct.nbArgs;
+	popReg();
+	esp = esp - nbVarLoc;
+	ebp = pop();
+	eip = pop();
+	int rv = pop();
+	storeReturnValue = stackStoreReturnValue.pop();
+	if(storeReturnValue != null){
+	    affect(storeReturnValue, rv);
+	    storeReturnValue = null;
+	}
+	currentFct = stackCurrentFct.pop();
+	esp = esp - nbParam;
+	return null;
+    }
+
+    public Integer visit(C3aInstRead inst){
+	/*	Int label = (inst.label != null) ? inst.label.accept(this) : null;
+	Int result  = inst.result.accept(this);
+	NasmRegister reg_eax = nasm.newRegister();
+	reg_eax.colorRegister(Nasm.REG_EAX);
+
+	nasm.ajouteInst(new NasmMov (label, reg_eax, new NasmLabel("sinput"), "Read 1"));
+	nasm.ajouteInst(new NasmCall(null, new NasmLabel("readline"), "Read 2"));
+	nasm.ajouteInst(new NasmMov (null, reg_eax, new NasmLabel("sinput"), "Read 3"));
+	nasm.ajouteInst(new NasmMov (null, result, reg_eax , "Read 4"));*/
+	eip++;
+	return null;
+    }
+
+
+    public Integer visit(C3aInst inst){
+	return null;}
+    
+}
diff --git a/src/c3a/C3aFunction.java b/src/c3a/C3aFunction.java
new file mode 100644
index 0000000..5966b6a
--- /dev/null
+++ b/src/c3a/C3aFunction.java
@@ -0,0 +1,20 @@
+package c3a;
+import ts.*;
+
+
+public class C3aFunction extends C3aOperand{
+    public TsItemFct val;
+
+    public C3aFunction(TsItemFct val){
+	this.val = val;
+    }
+
+    public TsItemFct getValue(){return val;}
+
+    public String toString(){
+	return this.val.getIdentif();
+    }
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aInst.java b/src/c3a/C3aInst.java
new file mode 100644
index 0000000..9aafc68
--- /dev/null
+++ b/src/c3a/C3aInst.java
@@ -0,0 +1,16 @@
+package c3a;
+
+public class C3aInst{
+    public C3aLabel label ;   // étiquette optionnelle, si la ligne est cible d'un saut
+    public String comment;    // commentaire explicatif - utile pour le débogage
+
+    public void setLabel(C3aLabel label){
+	this.label = label;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstAdd.java b/src/c3a/C3aInstAdd.java
new file mode 100644
index 0000000..49b9d92
--- /dev/null
+++ b/src/c3a/C3aInstAdd.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstAdd extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstAdd(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	if(this.label != null)
+	    return this.label + "\t" + this.result + " = " + this.op1 + " + " + this.op2 + this.comment;
+	else
+	    return              "\t" + this.result + " = " + this.op1 + " + " + this.op2 + this.comment;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstAffect.java b/src/c3a/C3aInstAffect.java
new file mode 100644
index 0000000..8596b7b
--- /dev/null
+++ b/src/c3a/C3aInstAffect.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstAffect extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstAffect(C3aOperand op1, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null) s = s + this.label;
+	s = s + "\t";
+	s = s + this.result + " = " + this.op1 + this.comment;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+
+}
+
diff --git a/src/c3a/C3aInstCall.java b/src/c3a/C3aInstCall.java
new file mode 100644
index 0000000..dc5794f
--- /dev/null
+++ b/src/c3a/C3aInstCall.java
@@ -0,0 +1,28 @@
+package c3a;
+
+public class C3aInstCall extends C3aInst{
+    public C3aFunction op1;    // opérande 1 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstCall(C3aFunction op1, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	if(this.result != null)
+	    s = s + this.result + " =";
+	s = s + " call " + this.op1 + this.comment;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstDiv.java b/src/c3a/C3aInstDiv.java
new file mode 100644
index 0000000..77885d1
--- /dev/null
+++ b/src/c3a/C3aInstDiv.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstDiv extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstDiv(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	if(this.label != null)
+	    return this.label + "\t" + this.result + " = " + this.op1 + " / " + this.op2 + this.comment;
+	else
+	    return              "\t" + this.result + " = " + this.op1 + " / " + this.op2 + this.comment;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstFBegin.java b/src/c3a/C3aInstFBegin.java
new file mode 100644
index 0000000..c8a5f2c
--- /dev/null
+++ b/src/c3a/C3aInstFBegin.java
@@ -0,0 +1,23 @@
+package c3a;
+import ts.*;
+
+public class C3aInstFBegin extends C3aInst{
+    public TsItemFct val;
+    public C3aInstFBegin(TsItemFct val, String comment){
+	this.val = val;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	//	String s = "";
+	//	if(this.label != null)
+	//	    s = s + this.label;
+	return this.val.getIdentif() + "\tfbegin\t#" + this.comment;
+	//	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstFEnd.java b/src/c3a/C3aInstFEnd.java
new file mode 100644
index 0000000..8e0380f
--- /dev/null
+++ b/src/c3a/C3aInstFEnd.java
@@ -0,0 +1,21 @@
+package c3a;
+
+public class C3aInstFEnd extends C3aInst{
+    public C3aInstFEnd(String comment){
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "fend";
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstJump.java b/src/c3a/C3aInstJump.java
new file mode 100644
index 0000000..1324e5e
--- /dev/null
+++ b/src/c3a/C3aInstJump.java
@@ -0,0 +1,24 @@
+package c3a;
+
+public class C3aInstJump extends C3aInst{
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstJump(C3aOperand result, String comment){
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "goto " + this.result;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstJumpIfEqual.java b/src/c3a/C3aInstJumpIfEqual.java
new file mode 100644
index 0000000..98bdb79
--- /dev/null
+++ b/src/c3a/C3aInstJumpIfEqual.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstJumpIfEqual extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstJumpIfEqual(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\tif " + this.op1 + " == " + this.op2 + " goto " + this.result;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstJumpIfLess.java b/src/c3a/C3aInstJumpIfLess.java
new file mode 100644
index 0000000..a88a20e
--- /dev/null
+++ b/src/c3a/C3aInstJumpIfLess.java
@@ -0,0 +1,28 @@
+package c3a;
+
+public class C3aInstJumpIfLess extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstJumpIfLess(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "if " + this.op1 + " < " + this.op2 + " goto " + this.result;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstJumpIfNotEqual.java b/src/c3a/C3aInstJumpIfNotEqual.java
new file mode 100644
index 0000000..06bc8c4
--- /dev/null
+++ b/src/c3a/C3aInstJumpIfNotEqual.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstJumpIfNotEqual extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstJumpIfNotEqual(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\tif " + this.op1 + " != " + this.op2 + " goto " + this.result;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstMult.java b/src/c3a/C3aInstMult.java
new file mode 100644
index 0000000..282d20a
--- /dev/null
+++ b/src/c3a/C3aInstMult.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstMult extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstMult(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	if(this.label != null)
+	    return this.label + "\t" + this.result + " = " + this.op1 + " * " + this.op2 + this.comment;
+	else
+	    return              "\t" + this.result + " = " + this.op1 + " * " + this.op2 + this.comment;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstParam.java b/src/c3a/C3aInstParam.java
new file mode 100644
index 0000000..44b96e2
--- /dev/null
+++ b/src/c3a/C3aInstParam.java
@@ -0,0 +1,25 @@
+package c3a;
+
+public class C3aInstParam extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+
+    public C3aInstParam(C3aOperand op1, String comment){
+	this.op1 = op1;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "param " + this.op1;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstRead.java b/src/c3a/C3aInstRead.java
new file mode 100644
index 0000000..4586c03
--- /dev/null
+++ b/src/c3a/C3aInstRead.java
@@ -0,0 +1,25 @@
+package c3a;
+
+public class C3aInstRead extends C3aInst{
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstRead(C3aOperand result, String comment){
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + this.result + " = read #" + this.comment;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstReturn.java b/src/c3a/C3aInstReturn.java
new file mode 100644
index 0000000..48d47a3
--- /dev/null
+++ b/src/c3a/C3aInstReturn.java
@@ -0,0 +1,25 @@
+package c3a;
+
+public class C3aInstReturn extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+
+    public C3aInstReturn(C3aOperand op1, String comment){
+	this.op1 = op1;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "ret " + this.op1;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstStop.java b/src/c3a/C3aInstStop.java
new file mode 100644
index 0000000..12404d5
--- /dev/null
+++ b/src/c3a/C3aInstStop.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstStop extends C3aInst{
+    public C3aOperand returnValue; 
+
+    public C3aInstStop(C3aOperand returnValue, String comment){
+	this.returnValue = returnValue;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "stop ";
+	if(this.returnValue != null)
+	    s = s + this.returnValue;
+	s = s + this.comment;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
+
diff --git a/src/c3a/C3aInstSub.java b/src/c3a/C3aInstSub.java
new file mode 100644
index 0000000..18a9853
--- /dev/null
+++ b/src/c3a/C3aInstSub.java
@@ -0,0 +1,27 @@
+package c3a;
+
+public class C3aInstSub extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand op2;    // opérande 2 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstSub(C3aOperand op1, C3aOperand op2, C3aOperand result, String comment){
+	this.op1 = op1;
+	this.op2 = op2;
+	this.result = result;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	if(this.label != null)
+	    return this.label + "\t" + this.result + " = " + this.op1 + " - " + this.op2 + this.comment;
+	else
+	    return              "\t" + this.result + " = " + this.op1 + " - " + this.op2 + this.comment;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aInstWrite.java b/src/c3a/C3aInstWrite.java
new file mode 100644
index 0000000..0e1b1a7
--- /dev/null
+++ b/src/c3a/C3aInstWrite.java
@@ -0,0 +1,26 @@
+package c3a;
+
+public class C3aInstWrite extends C3aInst{
+    public C3aOperand op1;    // opérande 1 (ou null)
+    public C3aOperand result; // résultat ou destination du saut (ou NULL)
+
+    public C3aInstWrite(C3aOperand op1, String comment){
+	this.op1 = op1;
+	this.comment = comment;
+    }
+
+    public String toString(){
+	String s = "";
+	if(this.label != null)
+	    s = s + this.label;
+	s = s + "\t";
+	s = s + "write " + this.op1 + "\t" + this.comment;
+	return s;
+    }
+
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
+
diff --git a/src/c3a/C3aLabel.java b/src/c3a/C3aLabel.java
new file mode 100644
index 0000000..f70d1c3
--- /dev/null
+++ b/src/c3a/C3aLabel.java
@@ -0,0 +1,29 @@
+package c3a;
+
+public class C3aLabel extends C3aOperand{
+    public int number; // numéro de l'étiquette
+    private int line;   // ligne de l'opération correspondant à l'étiquette
+    //    public String name;
+    
+    //    public C3aLabel(int number, int line, String name){
+    public C3aLabel(int number){
+	this.number = number;
+	this.line = 0;
+	//	this.name = name;
+    }
+
+    public int getNumber(){return this.number;}
+    public int getLine(){return this.line;}
+
+    public String toString(){return String.valueOf(this.number);}
+//    public String toString(){return "l" + this.number;}
+
+    public void affect(C3aLabel other) {
+      this.number = other.number;
+      this.line = other.line;
+    }
+    
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aOp.java b/src/c3a/C3aOp.java
new file mode 100644
index 0000000..e03daf6
--- /dev/null
+++ b/src/c3a/C3aOp.java
@@ -0,0 +1,24 @@
+package c3a;
+
+public enum C3aOp{
+	arithAdd,
+	arithSub,
+	arithMult,
+	arithDiv,
+	funcCall,
+	funcParam,
+	funcValRet,
+	funcBegin,
+	funcEnd,
+	assign,                                                    //affectation et transferts temporaires <-> variables
+	alloc, // allouer de la place pour variables
+	jump,
+	jump_if_less,
+	jump_if_less_or_equal,
+	jumpIfEqual,
+	jump_if_not_equal,
+	jump_if_greater,
+	jump_if_greater_or_equal,
+	sys_read,
+	sys_write; // lire et écrire (interruptions système)
+}
diff --git a/src/c3a/C3aOperand.java b/src/c3a/C3aOperand.java
new file mode 100644
index 0000000..7744c0d
--- /dev/null
+++ b/src/c3a/C3aOperand.java
@@ -0,0 +1,7 @@
+package c3a;
+
+public abstract class C3aOperand {
+
+    public abstract <T> T accept(C3aVisitor <T> visitor);
+
+}
diff --git a/src/c3a/C3aTemp.java b/src/c3a/C3aTemp.java
new file mode 100644
index 0000000..6958c45
--- /dev/null
+++ b/src/c3a/C3aTemp.java
@@ -0,0 +1,16 @@
+package c3a;
+
+public class C3aTemp extends C3aOperand{
+    public int num;
+
+    public C3aTemp(int num){
+	this.num = num;
+    }
+
+    public String toString(){
+	return "@" + this.num;
+    }
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aVar.java b/src/c3a/C3aVar.java
new file mode 100644
index 0000000..dcef2c2
--- /dev/null
+++ b/src/c3a/C3aVar.java
@@ -0,0 +1,24 @@
+package c3a;
+import ts.*;
+
+public class C3aVar extends C3aOperand{
+    public TsItemVar item;
+    public C3aOperand index;
+
+    public C3aVar(TsItemVar item, C3aOperand index){
+	this.item = item;
+	this.index = index;
+    }
+
+    public String toString(){
+	if(this.index != null)
+	    //	    return this.item.getIdentif() + "[" + this.item.getTaille() + "]";
+	    return this.item.getIdentif() + "[" + this.index + "]";
+	else
+	    return this.item.getIdentif();
+    }
+    
+    public <T> T accept(C3aVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+}
diff --git a/src/c3a/C3aVisitor.java b/src/c3a/C3aVisitor.java
new file mode 100644
index 0000000..b8f2b96
--- /dev/null
+++ b/src/c3a/C3aVisitor.java
@@ -0,0 +1,30 @@
+package c3a;
+
+public interface C3aVisitor <T> {
+    public T visit(C3a c3a);
+    public T visit(C3aInstAdd inst);
+    public T visit(C3aInstCall inst);
+    public T visit(C3aInstFBegin inst);
+    public T visit(C3aInst inst);
+    public T visit(C3aInstJumpIfLess inst);
+    public T visit(C3aInstMult inst);
+    public T visit(C3aInstRead inst);
+    public T visit(C3aInstSub inst);
+    public T visit(C3aInstAffect inst);
+    public T visit(C3aInstDiv inst);
+    public T visit(C3aInstFEnd inst);
+    public T visit(C3aInstJumpIfEqual inst);
+    public T visit(C3aInstJumpIfNotEqual inst);
+    public T visit(C3aInstJump inst);
+    public T visit(C3aInstParam inst);
+    public T visit(C3aInstReturn inst);
+    public T visit(C3aInstWrite inst);
+    public T visit(C3aInstStop inst);
+
+    public T visit(C3aConstant oper);
+    public T visit(C3aBooleanConstant oper);
+    public T visit(C3aLabel oper);
+    public T visit(C3aTemp oper);
+    public T visit(C3aVar oper);
+    public T visit(C3aFunction oper);
+}
diff --git a/src/c3a/LoadC3a.java b/src/c3a/LoadC3a.java
new file mode 100644
index 0000000..c321ea9
--- /dev/null
+++ b/src/c3a/LoadC3a.java
@@ -0,0 +1,473 @@
+package c3a;
+import c3aParser.analysis.DepthFirstAdapter;
+import ts.*;
+import c3aParser.lexer.Lexer;
+import c3aParser.lexer.LexerException;
+import c3aParser.node.*;
+import c3aParser.parser.Parser;
+import c3aParser.parser.ParserException;
+import util.Error;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PushbackReader;
+
+public class LoadC3a extends DepthFirstAdapter {
+    private C3a c3a;
+    private C3aInst inst;
+    private C3aOperand operand;
+    private C3aLabel label;
+    private Ts tableGlobale;
+    private Ts tableLocale = null;
+
+    public LoadC3a(String c3aFileName, Ts tableGlobale) {
+        this.tableGlobale = tableGlobale;
+        PushbackReader fileReader = null;
+        Parser parser = null;
+        Start root = null;
+        try {
+            fileReader = new PushbackReader(new FileReader(c3aFileName));
+        } catch (IOException e) {
+            System.err.println("cannot open input file");
+            e.printStackTrace();
+        }
+        try {
+            parser = new Parser(new Lexer(fileReader));
+            root = parser.parse();
+        } catch (ParserException e) {
+            System.err.println("syntax error");
+            e.printStackTrace();
+            System.exit(Error.SYNT.code());
+        } catch (LexerException e) {
+            System.err.println("lexical error");
+            e.printStackTrace();
+            System.exit(Error.LEX.code());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        root.apply(this);
+    }
+
+    public void defaultIn(Node node)
+    {
+        //System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(Node node)
+    {
+        //System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+    public C3a getC3a(){return c3a;}
+    //prog = listeinst;
+    @Override
+    public void caseAProg(AProg node)
+    {
+        inAProg(node);
+        c3a = new C3a();
+        if(node.getListeinst() != null)
+        {
+            node.getListeinst().apply(this);
+        }
+        outAProg(node);
+    }
+//listeinst = {recursif} inst listeinst
+    @Override
+    public void caseARecursifListeinst(ARecursifListeinst node)
+    {
+        inARecursifListeinst(node);
+        node.getInst().apply(this);
+        c3a.ajouteInst(inst);
+        label = null;
+        node.getListeinst().apply(this);
+        outARecursifListeinst(node);
+    }
+
+//    listeinst = {final} inst
+    @Override
+    public void caseAFinalListeinst(AFinalListeinst node)
+    {
+        inAFinalListeinst(node);
+        node.getInst().apply(this);
+        c3a.ajouteInst(inst);
+        label = null;
+        outAFinalListeinst(node);
+    }
+
+    //add      = etiqop [result]:tv aff [op1]:ctv plus   [op2]:ctv;
+    @Override
+    public void caseAAdd(AAdd node)
+    {
+        inAAdd(node);
+        if(node.getEtiqop() != null)
+        {
+            node.getEtiqop().apply(this);
+            c3a.addLabelToNextInst(label);
+        }
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+        node.getOp1().apply(this);
+        C3aOperand op1 = operand;
+        node.getOp2().apply(this);
+        C3aOperand op2 = operand;
+        inst = new C3aInstAdd(op1, op2, result, "");
+        outAAdd(node);
+    }
+
+    //sub      = etiqop [result]:tv aff [op1]:ctv moins  [op2]:ctv;
+    @Override
+    public void caseASub(ASub node)
+    {
+        inASub(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        node.getOp1().apply(this);
+        C3aOperand op1 = operand;
+
+        node.getOp2().apply(this);
+        C3aOperand op2 = operand;
+
+        inst = new C3aInstSub(op1, op2, result, "");
+        outASub(node);
+    }
+
+    //mul      = etiqop [result]:tv aff [op1]:ctv fois   [op2]:ctv;
+    @Override
+    public void caseAMul(AMul node)
+    {
+        inAMul(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        node.getOp1().apply(this);
+        C3aOperand op1 = operand;
+
+        node.getOp2().apply(this);
+        C3aOperand op2 = operand;
+
+        inst = new C3aInstMult(op1,op2, result, "");
+        outAMul(node);
+    }
+
+    //div      = etiqop [result]:tv aff [op1]:ctv divise [op2]:ctv;
+    @Override
+    public void caseADiv(ADiv node)
+    {
+        inADiv(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        node.getOp1().apply(this);
+        C3aOperand op1 = operand;
+
+        node.getOp2().apply(this);
+        C3aOperand op2 = operand;
+
+        inst = new C3aInstDiv(op1,op2, result, "");
+        outADiv(node);
+    }
+
+
+    //istop    = etiqop stop ctv;
+    @Override
+    public void caseAIstop(AIstop node)
+    {
+        inAIstop(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getCtv().apply(this);
+        C3aOperand op1 = operand;
+
+        inst = new C3aInstStop(op1, "");
+        outAIstop(node);
+    }
+
+//    iwrite   = etiqop write ctv;
+
+    @Override
+    public void caseAIwrite(AIwrite node)
+    {
+        inAIwrite(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getCtv().apply(this);
+        C3aOperand op = operand;
+
+        inst = new C3aInstWrite(op, "");
+        outAIwrite(node);
+    }
+
+    // iread    = etiqop [result]:tv aff read;
+
+    @Override
+    public void caseAIread(AIread node)
+    {
+        inAIread(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        inst = new C3aInstRead(result, "");
+        outAIread(node);
+    }
+
+    //    end      = etiqop fend;
+@Override
+public void caseAEnd(AEnd node)
+{
+    inAEnd(node);
+    if(node.getEtiqop() != null)
+    {
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+    }
+    inst = new C3aInstFEnd("");
+    outAEnd(node);
+}
+
+//    affect   = etiqop [result]:tv aff [op1]:ctv;
+
+    @Override
+    public void caseAAffect(AAffect node)
+    {
+        inAAffect(node);
+        if(node.getEtiqop() != null)
+        {
+            node.getEtiqop().apply(this);
+            c3a.addLabelToNextInst(label);
+        }
+            node.getResult().apply(this);
+            C3aOperand result = operand;
+
+            node.getOp1().apply(this);
+            C3aOperand op1 = operand;
+            inst = new C3aInstAffect(op1, result, "");
+        outAAffect(node);
+    }
+
+//    jmpeg    = etiqop if [op1]:ctv aff  [op2]:ctv goto [result]:constante;
+@Override
+public void caseAJmpeg(AJmpeg node)
+{
+    inAJmpeg(node);
+    node.getEtiqop().apply(this);
+    c3a.addLabelToNextInst(label);
+
+    node.getOp1().apply(this);
+    C3aOperand op1 = operand;
+
+    node.getOp2().apply(this);
+    C3aOperand op2 = operand;
+
+    node.getResult().apply(this);
+    C3aOperand result = operand;
+
+    inst = new C3aInstJumpIfEqual(op1, op2, result, "");
+    outAJmpeg(node);
+}
+
+//    jmpinf   = etiqop if [op1]:ctv inf   [op2]:ctv goto [result]:constante;
+@Override
+public void caseAJmpinf(AJmpinf node)
+{
+    inAJmpinf(node);
+    node.getEtiqop().apply(this);
+    c3a.addLabelToNextInst(label);
+
+    node.getOp1().apply(this);
+    C3aOperand op1 = operand;
+
+    node.getOp2().apply(this);
+    C3aOperand op2 = operand;
+
+    node.getResult().apply(this);
+    C3aOperand result = operand;
+
+    inst = new C3aInstJumpIfLess(op1, op2, result, "");
+    outAJmpinf(node);
+}
+
+//    jmpneg = etiqop if [op1]:ctv noteg [op2]:ctv goto [result]:constante;
+@Override
+public void caseAJmpneg(AJmpneg node)
+{
+    inAJmpneg(node);
+    node.getEtiqop().apply(this);
+    c3a.addLabelToNextInst(label);
+
+    node.getOp1().apply(this);
+    C3aOperand op1 = operand;
+
+    node.getOp2().apply(this);
+    C3aOperand op2 = operand;
+
+    node.getResult().apply(this);
+    C3aOperand result = operand;
+
+    inst = new C3aInstJumpIfNotEqual(op1, op2, result, "");
+    outAJmpneg(node);
+}
+
+    @Override
+    public void caseAJmp(AJmp node)
+    {
+        inAJmp(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        inst = new C3aInstJump(result, "");
+        outAJmp(node);
+    }
+
+
+    //arg      = etiqop param ctv;
+    @Override
+    public void caseAArg(AArg node)
+    {
+        inAArg(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+
+        node.getCtv().apply(this);
+        C3aOperand op1 = operand;
+        inst = new C3aInstParam(op1, "");
+        outAArg(node);
+    }
+//return   = etiqop ret ctv;
+
+    @Override
+    public void caseAReturn(AReturn node)
+    {
+        inAReturn(node);
+        node.getEtiqop().apply(this);
+        c3a.addLabelToNextInst(label);
+        node.getCtv().apply(this);
+        C3aOperand op1 = operand;
+        inst = new C3aInstReturn(op1, "");
+        outAReturn(node);
+    }
+
+//temporaire = prefixe_temp constante;
+    @Override
+    public void caseATemporaire(ATemporaire node)
+    {
+        inATemporaire(node);
+        int num = Integer.parseInt(node.getNombre().getText());
+        if(num >= c3a.getTempCounter())
+            c3a.setTempCounter(num + 1);
+        operand = new C3aTemp(num);
+        outATemporaire(node);
+    }
+
+//constante = nombre;
+@Override
+public void caseAConstante(AConstante node) {
+    inAConstante(node);
+    int num = Integer.parseInt(node.getNombre().getText());
+    operand = new C3aConstant(num);
+    outAConstante(node);
+}
+
+@Override
+    public void caseAVideEtiqop(AVideEtiqop node)
+    {
+        inAVideEtiqop(node);
+        outAVideEtiqop(node);
+    }
+    //etiqop = {cte} constante;
+    @Override
+    public void caseACteEtiqop(ACteEtiqop node)
+    {
+        inACteEtiqop(node);
+        int num = Integer.parseInt(node.getNombre().getText());
+        this.label = new C3aLabel(num);
+        if (num >= c3a.getLabelCounter())
+            c3a.setLableCounter(num + 1);
+        outACteEtiqop(node);
+    }
+
+//    variable = {scalaire} identif
+    @Override
+    public void caseAScalaireVariable(AScalaireVariable node)
+    {
+        inAScalaireVariable(node);
+        String identif = node.getIdentif().getText();
+        TsItemVarSimple tsItemVarSimple = null;
+        if(tableLocale != null)
+            tsItemVarSimple = (TsItemVarSimple) tableLocale.getVar(identif);
+        if(tsItemVarSimple == null)
+            tsItemVarSimple = (TsItemVarSimple) tableGlobale.getVar(identif);
+        operand = new C3aVar(tsItemVarSimple, null);
+        outAScalaireVariable(node);
+    }
+
+//    variable = {tab} identif co ctv cf
+    @Override
+    public void caseATabVariable(ATabVariable node)
+    {
+        inATabVariable(node);
+        String identif = node.getIdentif().getText();
+        TsItemVarTab tsItemVarTab = null;
+        if(tableLocale != null)
+            tsItemVarTab = (TsItemVarTab) tableLocale.getVar(identif);
+        if(tsItemVarTab == null)
+            tsItemVarTab = (TsItemVarTab) tableGlobale.getVar(identif);
+        node.getCtv().apply(this);
+        C3aOperand index = operand;
+        operand = new C3aVar(tsItemVarTab, index);
+        outATabVariable(node);
+    }
+
+
+    @Override
+    public void caseABegin(ABegin node)
+    {
+        inABegin(node);
+
+        String functionName = node.getIdentif().getText();
+        TsItemFct tsItemFct = tableGlobale.getFct(functionName);
+        tableLocale = tsItemFct.getTable();
+        inst = new C3aInstFBegin(tsItemFct, "");
+        outABegin(node);
+    }
+
+    //fcall    = etiqop [result]:tv aff call identif;
+    @Override
+    public void caseAFcall(AFcall node)
+    {
+        inAFcall(node);
+        if(node.getEtiqop() != null)
+        {
+            node.getEtiqop().apply(this);
+        }
+        node.getResult().apply(this);
+        C3aOperand result = operand;
+
+        C3aFunction op1 = new C3aFunction(tableGlobale.getFct(node.getIdentif().getText()));
+        inst = new C3aInstCall(op1, result, "");
+
+        outAFcall(node);
+    }
+
+
+}
+
+
+
diff --git a/src/c3a/Sa2c3a.java b/src/c3a/Sa2c3a.java
new file mode 100644
index 0000000..8e1a01f
--- /dev/null
+++ b/src/c3a/Sa2c3a.java
@@ -0,0 +1,49 @@
+package c3a;
+import ts.*;
+import sa.*;
+
+
+public class Sa2c3a extends SaDepthFirstVisitor <C3aOperand> {
+    private C3a c3a;
+    int indentation;
+    public C3a getC3a(){return this.c3a;}
+    
+    public Sa2c3a(SaNode root, Ts tableGlobale){
+	c3a = new C3a();
+	C3aTemp result = c3a.newTemp();
+	C3aFunction fct = new C3aFunction(tableGlobale.getFct("main"));
+	c3a.ajouteInst(new C3aInstCall(fct, result, ""));
+	c3a.ajouteInst(new C3aInstStop(result, ""));
+	indentation = 0;
+    }
+
+    public void defaultIn(SaNode node)
+    {
+	//for(int i = 0; i < indentation; i++){System.out.print(" ");}
+	//indentation++;
+	//System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(SaNode node)
+    {
+	//indentation--;
+	//	for(int i = 0; i < indentation; i++){System.out.print(" ");}
+	//	System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+    
+
+    // EXP -> op2 EXP EXP
+    public C3aOperand visit(SaExpAdd node) throws Exception
+    {
+	defaultIn(node);
+	C3aOperand op1 = node.getOp1().accept(this);
+	C3aOperand op2 = node.getOp2().accept(this);
+	C3aOperand result = c3a.newTemp();
+
+	c3a.ajouteInst(new C3aInstAdd(op1, op2, result, ""));
+	defaultOut(node);
+	return result;
+    }
+
+
+}
diff --git a/src/fg/Fg.java b/src/fg/Fg.java
new file mode 100644
index 0000000..c306fd5
--- /dev/null
+++ b/src/fg/Fg.java
@@ -0,0 +1,87 @@
+package fg;
+import nasm.*;
+import util.graph.*;
+import java.util.*;
+import java.io.*;
+
+public class Fg implements NasmVisitor <Void> {
+    public Nasm nasm;
+    public Graph graph;
+    Map< NasmInst, Node> inst2Node;
+    Map< Node, NasmInst> node2Inst;
+    Map< String, NasmInst> label2Inst;
+
+    public Fg(Nasm nasm){
+	this.nasm = nasm;
+	this.inst2Node = new HashMap< NasmInst, Node>();
+	this.node2Inst = new HashMap< Node, NasmInst>();
+	this.label2Inst = new HashMap< String, NasmInst>();
+	this.graph = new Graph();
+    }
+
+    public void affiche(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+	
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".fg";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	
+	for(NasmInst nasmInst : nasm.sectionText){
+	    Node n = this.inst2Node.get(nasmInst);
+	    out.print(n + " : ( ");
+	    for(NodeList q=n.succ(); q!=null; q=q.tail) {
+		out.print(q.head.toString());
+		out.print(" ");
+	    }
+	    out.println(")\t" + nasmInst);
+	}
+	
+    }
+
+    public Void visit(NasmAdd inst){return null;}
+    public Void visit(NasmCall inst){return null;}
+    public Void visit(NasmDiv inst){return null;}
+    public Void visit(NasmJe inst){return null;}
+    public Void visit(NasmJle inst){return null;}
+    public Void visit(NasmJne inst){return null;}
+    public Void visit(NasmMul inst){return null;}
+    public Void visit(NasmOr inst){return null;}
+    public Void visit(NasmCmp inst){return null;}
+    public Void visit(NasmInst inst){return null;}
+    public Void visit(NasmJge inst){return null;}
+    public Void visit(NasmJl inst){return null;}
+    public Void visit(NasmNot inst){return null;}
+    public Void visit(NasmPop inst){return null;}
+    public Void visit(NasmRet inst){return null;}
+    public Void visit(NasmXor inst){return null;}
+    public Void visit(NasmAnd inst){return null;}
+    public Void visit(NasmJg inst){return null;}
+    public Void visit(NasmJmp inst){return null;}
+    public Void visit(NasmMov inst){return null;}
+    public Void visit(NasmPush inst){return null;}
+    public Void visit(NasmSub inst){return null;}
+    public Void visit(NasmEmpty inst){return null;}
+    public Void visit(NasmInt inst){return null;}
+    public Void visit(NasmAddress operand){return null;}
+    public Void visit(NasmConstant operand){return null;}
+    public Void visit(NasmLabel operand){return null;}
+    public Void visit(NasmRegister operand){return null;}
+    public Void visit(NasmResb pseudoInst){return null;}
+    public Void visit(NasmResw pseudoInst){return null;}
+    public Void visit(NasmResd pseudoInst){return null;}
+    public Void visit(NasmResq pseudoInst){return null;}
+    public Void visit(NasmRest pseudoInst){return null;}
+    public Void visit(NasmExpPlus exp){return null;}
+    public Void visit(NasmExpMinus exp){return null;}
+    public Void visit(NasmExpTimes exp){return null;}
+    public Void visit(NasmExp exp){return null;}
+}
diff --git a/src/fg/FgSolution.java b/src/fg/FgSolution.java
new file mode 100644
index 0000000..0970759
--- /dev/null
+++ b/src/fg/FgSolution.java
@@ -0,0 +1,51 @@
+package fg;
+import util.graph.*;
+import nasm.*;
+import util.intset.*;
+import java.io.*;
+import java.util.*;
+
+public class FgSolution{
+    int iterNum = 0;
+    public Nasm nasm;
+    Fg fg;
+    public Map< NasmInst, IntSet> use;
+    public Map< NasmInst, IntSet> def;
+    public Map< NasmInst, IntSet> in;
+    public Map< NasmInst, IntSet> out;
+    
+    public FgSolution(Nasm nasm, Fg fg){
+	this.nasm = nasm;
+	this.fg = fg;
+	this.use = new HashMap< NasmInst, IntSet>();
+	this.def = new HashMap< NasmInst, IntSet>();
+	this.in =  new HashMap< NasmInst, IntSet>();
+	this.out = new HashMap< NasmInst, IntSet>();
+    }
+    
+    public void affiche(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".fgs";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	
+	out.println("iter num = " + iterNum);
+	for(NasmInst nasmInst : this.nasm.sectionText){
+	    out.println("use = "+ this.use.get(nasmInst) + " def = "+ this.def.get(nasmInst) + "\tin = " + this.in.get(nasmInst) + "\t \tout = " + this.out.get(nasmInst) + "\t \t" + nasmInst);
+	}
+	
+    }
+
+
+
+}
diff --git a/src/ig/Ig.java b/src/ig/Ig.java
new file mode 100644
index 0000000..eaf4886
--- /dev/null
+++ b/src/ig/Ig.java
@@ -0,0 +1,61 @@
+package ig;
+
+import fg.*;
+import nasm.*;
+import util.graph.*;
+import util.intset.*;
+import java.util.*;
+import java.io.*;
+
+public class Ig {
+    public Graph graph;
+    public FgSolution fgs;
+    public int regNb;
+    public Nasm nasm;
+    public Node int2Node[];
+    
+    
+    public Ig(FgSolution fgs){
+	this.fgs = fgs;
+ 	this.graph = new Graph();
+	this.nasm = fgs.nasm;
+	this.regNb = this.nasm.getTempCounter();
+	this.int2Node = new Node[regNb];
+	this.build();
+    }
+    
+    public void build(){
+    }
+
+    public void affiche(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+	
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".ig";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	
+	for(int i = 0; i < regNb; i++){
+	    Node n = this.int2Node[i];
+	    out.print(n + " : ( ");
+	    for(NodeList q=n.succ(); q!=null; q=q.tail) {
+		out.print(q.head.toString());
+		out.print(" ");
+	    }
+	    out.println(")");
+	}
+    }
+}
+	    
+    
+
+    
+    
diff --git a/src/l.cfg b/src/l.cfg
new file mode 100644
index 0000000..5159f48
--- /dev/null
+++ b/src/l.cfg
@@ -0,0 +1,32 @@
+Package lParser;
+
+Helpers
+
+lettre = [['a' .. 'z'] + ['A' .. 'Z']];
+chiffre = ['0' .. '9'];
+alpha = [lettre + ['_' + '$']];
+alphanum = [lettre + chiffre];
+
+Tokens
+
+espaces = (' ' | 13 | 10)+;
+commentaire= '#' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
+plus = '+';
+nombre = chiffre+;
+
+
+Ignored Tokens
+
+espaces, commentaire;
+
+Productions
+
+// l'axiome
+
+programme = exp ;
+
+exp =
+     {plus} exp plus nombre |
+     {nb} nombre ;
+
+
diff --git a/src/nasm.cfg b/src/nasm.cfg
new file mode 100644
index 0000000..cbc3812
--- /dev/null
+++ b/src/nasm.cfg
@@ -0,0 +1,210 @@
+Package nasmParser;
+
+Helpers
+
+letter = [['a' .. 'z'] + ['A' .. 'Z']];
+digit = ['0' .. '9'];
+alpha = [letter + ['_' + '$']];
+alphanum = [letter + digit];
+
+Tokens
+
+spaces = (' ' | 13 | 10 | 9)+;
+comment= ';' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
+
+plus       = '+';
+minus      = '-';
+times      = '*';
+brackopen  = '[';
+brackclose = ']';
+semicol    = ':';
+comma      = ',';
+quote      = ''';
+dot        = '.';
+percentage = '%';
+byte       = 'byte';
+word       = 'word';
+dword      = 'dword';
+prefix_register = '@';
+
+inc = 'include';
+section = 'section';
+
+data =             '.data';
+definebyte =       'db';
+defineword =       'dw';
+definedoubleword = 'dd';
+definequadword =   'dq';
+definetenbytes =   'dt';
+
+bss =               '.bss';
+reservebyte =       'resb';
+reserveword =       'resw';
+reservedoubleword = 'resd';
+reservequadword =   'resq';
+reservetenbytes =   'rest';
+
+text = '.text';
+
+global = 'global';
+
+mov =  'mov';
+push = 'push';
+pop =  'pop';
+add =  'add';
+sub =  'sub';
+imul = 'imul';
+idiv = 'idiv';
+and =  'and';
+or =   'or';
+xor =  'xor';
+not =  'not';
+cmp =  'cmp';
+jmp =  'jmp';
+je =   'je';
+jne =  'jne';
+jg =   'jg';
+jge =  'jge';
+jl =   'jl';
+jle =  'jle';
+call = 'call';
+ret =   'ret';
+int =	'int 0x80';
+
+eax =  'eax';
+ebx =  'ebx';
+ecx =  'ecx';
+edx =  'edx';
+ebp =  'ebp';
+esp =  'esp';
+
+number  = digit+;
+
+id    = alpha alphanum*;
+
+Ignored Tokens
+
+spaces, comment;
+
+Productions
+
+prog = linclude secdata secbss sectext;
+
+linclude = {rec} include linclude 
+         | {empty};
+
+include = percentage inc [open]: quote filename [close]: quote ;
+
+filename =   {simple} label 
+           | {complex} [prefix]: label dot [suffix]: label
+           ;
+
+secdata =   {nonempty} section data lconst
+          | {empty}
+	  ;
+
+lconst =   {rec} const lconst
+         | {empty} ;
+
+const =        {db} label definebyte numconst
+             | {dw} label defineword numconst
+             | {dd} label definedoubleword numconst
+             | {dq} label definequadword numconst
+             | {dt} label definetenbytes numconst
+             ;
+
+secbss =   {nonempty} section bss lvar
+         | {empty}
+	 ;
+
+lvar =   {rec} var lvar
+       | {empty}
+       ;
+
+var =          {resb} label semicol reservebyte number
+             | {resw} label semicol reserveword number
+             | {resd} label semicol reservedoubleword number
+             | {resq} label semicol reservequadword number
+             | {rest} label semicol reservetenbytes number
+             ;
+
+sectext = section text lglobal linst;
+
+lglobal = {rec} global label lglobal
+        | {empty}
+        ;
+
+linst = {rec} inst linst |
+        {last} inst
+	;
+
+inst =   {mov}    oplabel mov  ar comma acr
+       | {push}   oplabel push acr
+       | {pop}    oplabel pop  ar
+       | {add}    oplabel add  ar comma acr
+       | {sub}    oplabel sub  ar comma acr
+       | {imul}   oplabel imul ar comma acr
+       | {idiv}   oplabel idiv ar
+       | {and}    oplabel and  ar comma acr
+       | {or}     oplabel or   ar comma acr
+       | {xor}    oplabel xor  ar comma acr
+       | {not}    oplabel not  ar
+       | {cmp}    oplabel cmp  ar comma acr
+       | {jmp}    oplabel jmp  label
+       | {je}     oplabel je   label
+       | {jne}    oplabel jne  label
+       | {jg}     oplabel jg   label
+       | {jge}    oplabel jge  label
+       | {jl}     oplabel jl   label
+       | {call}   oplabel call label
+       | {ret}    oplabel ret
+       | {inter}  oplabel int
+       ;
+
+acr = {address} address
+    | {numconst} numconst
+    | {register} register
+    ;
+
+ar = {address} address
+   | {register} register
+   ;
+
+address = opsizeof brackopen exp brackclose;
+
+opsizeof = {byte} byte
+	 | {word} word
+	 | {dword} dword
+	 | {empty}
+	 ; 
+
+exp = {plus}  exp plus exp1
+    | {minus} exp minus exp1
+    | {next}  exp1
+    ;
+
+exp1 = {times} exp1 times exp2
+     | {next}  exp2
+     ;
+
+exp2 = {label} label
+     | {numconst} numconst
+     | {register} register
+     ;
+
+numconst = number;
+
+register = {temp} prefix_register number 
+         | {eax} eax
+	 | {ebx} ebx
+	 | {ecx} ecx
+	 | {edx} edx
+	 | {ebp} ebp
+	 | {esp} esp
+	 ;
+
+oplabel = {label} label semicol
+        | {empty}
+        ;
+
+label = id;
diff --git a/src/nasm/C3a2nasm.java b/src/nasm/C3a2nasm.java
new file mode 100644
index 0000000..de33f5c
--- /dev/null
+++ b/src/nasm/C3a2nasm.java
@@ -0,0 +1,59 @@
+package nasm;
+import java.util.*;
+import ts.*;
+import c3a.*;
+
+public class C3a2nasm implements C3aVisitor <NasmOperand> {
+    private C3a c3a;
+    private Nasm nasm;
+    private Ts tableGlobale;
+    private TsItemFct currentFct;
+    private NasmRegister esp;
+    private NasmRegister ebp;
+
+    
+    public C3a2nasm(C3a c3a, Ts tableGlobale){
+		this.c3a = c3a;
+		nasm = new Nasm(tableGlobale);
+		nasm.setTempCounter(c3a.getTempCounter());
+
+		this.tableGlobale = tableGlobale;
+		this.currentFct = null;
+		esp = new NasmRegister(-1);
+		esp.colorRegister(Nasm.REG_ESP);
+
+		ebp = new NasmRegister(-1);
+		ebp.colorRegister(Nasm.REG_EBP);
+    }
+
+    public Nasm getNasm(){return nasm;}
+
+
+    public NasmOperand visit(C3a c3a){return null;}
+    public NasmOperand visit(C3aInstAdd inst){return null;}
+    public NasmOperand visit(C3aInstCall inst){return null;}
+    public NasmOperand visit(C3aInstFBegin inst){return null;}
+    public NasmOperand visit(C3aInst inst){return null;}
+    public NasmOperand visit(C3aInstJumpIfLess inst){return null;}
+    public NasmOperand visit(C3aInstMult inst){return null;}
+    public NasmOperand visit(C3aInstRead inst){return null;}
+    public NasmOperand visit(C3aInstSub inst){return null;}
+    public NasmOperand visit(C3aInstAffect inst){return null;}
+    public NasmOperand visit(C3aInstDiv inst){return null;}
+    public NasmOperand visit(C3aInstFEnd inst){return null;}
+    public NasmOperand visit(C3aInstJumpIfEqual inst){return null;}
+    public NasmOperand visit(C3aInstJumpIfNotEqual inst){return null;}
+    public NasmOperand visit(C3aInstJump inst){return null;}
+    public NasmOperand visit(C3aInstParam inst){return null;}
+    public NasmOperand visit(C3aInstReturn inst){return null;}
+    public NasmOperand visit(C3aInstWrite inst){return null;}
+    public NasmOperand visit(C3aInstStop inst){return null;}
+
+    public NasmOperand visit(C3aConstant oper){return null;}
+    public NasmOperand visit(C3aBooleanConstant oper){return null;}
+    public NasmOperand visit(C3aLabel oper){return null;}
+    public NasmOperand visit(C3aTemp oper){return null;}
+    public NasmOperand visit(C3aVar oper){return null;}
+    public NasmOperand visit(C3aFunction oper){return null;}
+    
+}
diff --git a/src/nasm/LoadNasm.java b/src/nasm/LoadNasm.java
new file mode 100644
index 0000000..e68802c
--- /dev/null
+++ b/src/nasm/LoadNasm.java
@@ -0,0 +1,1117 @@
+package nasm;
+import nasmParser.analysis.DepthFirstAdapter;
+import nasmParser.lexer.Lexer;
+import nasmParser.lexer.LexerException;
+import nasmParser.node.*;
+import nasmParser.parser.Parser;
+import nasmParser.parser.ParserException;
+//import sc.analysis.DepthFirstAdapter;
+import util.Error;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PushbackReader;
+
+public class LoadNasm extends DepthFirstAdapter {
+    private Nasm nasm;
+    private NasmInst inst;
+    private NasmPseudoInst pseudoInst;
+    private NasmOperand operand;
+    private NasmLabel label;
+    private NasmExp exp;
+    private NasmSize size;
+    public LoadNasm(String nasmFileName) {
+        nasm = new Nasm();
+        PushbackReader fileReader = null;
+        Parser parser = null;
+        Start root = null;
+        try {
+            fileReader = new PushbackReader(new FileReader(nasmFileName));
+        } catch (IOException e) {
+            System.err.println("cannot open input file");
+            e.printStackTrace();
+        }
+        try {
+            parser = new Parser(new Lexer(fileReader));
+            root = parser.parse();
+        } catch (ParserException e) {
+            System.err.println("syntax error");
+            e.printStackTrace();
+            System.exit(Error.SYNT.code());
+        } catch (LexerException e) {
+            System.err.println("lexical error");
+            e.printStackTrace();
+            System.exit(Error.LEX.code());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        root.apply(this);
+    }
+
+    public void defaultIn(Node node)
+    {
+	//        System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(Node node)
+    {
+	//        System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+    public Nasm getNasm(){return nasm;}
+
+
+    // prog = linclude secdata secbss sectext
+    @Override
+    public void caseAProg(AProg node)
+    {
+        inAProg(node);
+        if(node.getLinclude() != null)
+        {
+            node.getLinclude().apply(this);
+        }
+        if(node.getSecdata() != null)
+        {
+            node.getSecdata().apply(this);
+        }
+        if(node.getSecbss() != null)
+        {
+            node.getSecbss().apply(this);
+        }
+        if(node.getSectext() != null)
+        {
+            node.getSectext().apply(this);
+        }
+        outAProg(node);
+    }
+
+    // linclude = {rec} include linclude 
+    @Override
+    public void caseARecLinclude(ARecLinclude node)
+    {
+        inARecLinclude(node);
+        if(node.getInclude() != null)
+        {
+            node.getInclude().apply(this);
+        }
+        if(node.getLinclude() != null)
+        {
+            node.getLinclude().apply(this);
+        }
+        outARecLinclude(node);
+    }
+
+    // linclude = {empty}
+    @Override
+    public void caseAEmptyLinclude(AEmptyLinclude node)
+    {
+        inAEmptyLinclude(node);
+        outAEmptyLinclude(node);
+    }
+    
+    // include = percentage inc [open]: quote filename [close]: quote 
+    @Override
+    public void caseAInclude(AInclude node)
+    {
+        inAInclude(node);
+        if(node.getPercentage() != null)
+        {
+            node.getPercentage().apply(this);
+        }
+        if(node.getInc() != null)
+        {
+            node.getInc().apply(this);
+        }
+        if(node.getOpen() != null)
+        {
+            node.getOpen().apply(this);
+        }
+        if(node.getFilename() != null)
+        {
+            node.getFilename().apply(this);
+        }
+        if(node.getClose() != null)
+        {
+            node.getClose().apply(this);
+        }
+        outAInclude(node);
+    }
+
+    // filename =  {simple} label 
+    @Override
+    public void caseASimpleFilename(ASimpleFilename node)
+    {
+        inASimpleFilename(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        outASimpleFilename(node);
+    }
+
+    // filename =  {complex} [prefix]: label dot [suffix]: label
+    @Override
+    public void caseAComplexFilename(AComplexFilename node)
+    {
+        inAComplexFilename(node);
+        if(node.getPrefix() != null)
+        {
+            node.getPrefix().apply(this);
+        }
+        if(node.getDot() != null)
+        {
+            node.getDot().apply(this);
+        }
+        if(node.getSuffix() != null)
+        {
+            node.getSuffix().apply(this);
+        }
+        outAComplexFilename(node);
+    }
+
+    // secdata =   {nonempty} section data lconst
+    @Override
+    public void caseANonemptySecdata(ANonemptySecdata node)
+    {
+        inANonemptySecdata(node);
+        if(node.getSection() != null)
+        {
+            node.getSection().apply(this);
+        }
+        if(node.getData() != null)
+        {
+            node.getData().apply(this);
+        }
+        if(node.getLconst() != null)
+        {
+            node.getLconst().apply(this);
+        }
+        outANonemptySecdata(node);
+    }
+
+    // secdata =   {empty}
+    @Override
+    public void caseAEmptySecdata(AEmptySecdata node)
+    {
+        inAEmptySecdata(node);
+        outAEmptySecdata(node);
+    }
+
+    // lconst =   {rec} const lconst
+    @Override
+    public void caseARecLconst(ARecLconst node)
+    {
+        inARecLconst(node);
+        if(node.getConst() != null)
+        {
+            node.getConst().apply(this);
+        }
+        if(node.getLconst() != null)
+        {
+            node.getLconst().apply(this);
+        }
+        outARecLconst(node);
+    }
+
+
+    // lconst =   {empty} 
+    @Override
+    public void caseAEmptyLconst(AEmptyLconst node)
+    {
+        inAEmptyLconst(node);
+        outAEmptyLconst(node);
+    }
+
+    // const = {db} label definebyte numconst
+    @Override
+    public void caseADbConst(ADbConst node)
+    {
+        inADbConst(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getDefinebyte() != null)
+        {
+            node.getDefinebyte().apply(this);
+        }
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outADbConst(node);
+    }
+
+    // const = {dw} label defineword numconst
+    @Override
+    public void caseADwConst(ADwConst node)
+    {
+        inADwConst(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getDefineword() != null)
+        {
+            node.getDefineword().apply(this);
+        }
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outADwConst(node);
+    }
+
+    // const = {dd} label definedoubleword numconst
+    @Override
+    public void caseADdConst(ADdConst node)
+    {
+        inADdConst(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getDefinedoubleword() != null)
+        {
+            node.getDefinedoubleword().apply(this);
+        }
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outADdConst(node);
+    }
+    // const = {dq} label definequadword numconst
+    @Override
+    public void caseADqConst(ADqConst node)
+    {
+        inADqConst(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getDefinequadword() != null)
+        {
+            node.getDefinequadword().apply(this);
+        }
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outADqConst(node);
+    }
+    // const = {dt} label definetenbytes numconst
+    @Override
+    public void caseADtConst(ADtConst node)
+    {
+        inADtConst(node);
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getDefinetenbytes() != null)
+        {
+            node.getDefinetenbytes().apply(this);
+        }
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outADtConst(node);
+    }
+
+
+    // secbss =   {nonempty} section bss lvar
+    @Override
+    public void caseANonemptySecbss(ANonemptySecbss node)
+    {
+        inANonemptySecbss(node);
+        if(node.getSection() != null)
+        {
+            node.getSection().apply(this);
+        }
+        if(node.getBss() != null)
+        {
+            node.getBss().apply(this);
+        }
+        if(node.getLvar() != null)
+        {
+            node.getLvar().apply(this);
+        }
+        outANonemptySecbss(node);
+    }
+    // secbss =   {empty}
+    @Override
+    public void caseAEmptySecbss(AEmptySecbss node)
+    {
+        inAEmptySecbss(node);
+        outAEmptySecbss(node);
+    }
+
+    // lvar =   {rec} var lvar
+    @Override
+    public void caseARecLvar(ARecLvar node)
+    {
+        inARecLvar(node);
+        node.getVar().apply(this);
+        nasm.ajoutePseudoInst(pseudoInst);
+        node.getLvar().apply(this);
+        outARecLvar(node);
+    }
+    // lvar =   {empty}
+    @Override
+    public void caseAEmptyLvar(AEmptyLvar node)
+    {
+        inAEmptyLvar(node);
+        outAEmptyLvar(node);
+    }
+
+    // var = {resb} label reservebyte number
+    @Override
+    public void caseAResbVar(AResbVar node)
+    {
+        inAResbVar(node);
+        node.getLabel().apply(this);
+
+        int nb = Integer.parseInt(node.getNumber().getText());
+        pseudoInst = new NasmResb(label,nb,"");
+        outAResbVar(node);
+    }
+    // var = {resw} label reserveword number
+    @Override
+    public void caseAReswVar(AReswVar node)
+    {
+        inAReswVar(node);
+        node.getLabel().apply(this);
+        int nb = Integer.parseInt(node.getNumber().getText());
+        pseudoInst = new NasmResw(label,nb,"");
+        outAReswVar(node);
+    }
+    // var = {resd} label reservedoubleword number
+    @Override
+    public void caseAResdVar(AResdVar node)
+    {
+        inAResdVar(node);
+        node.getLabel().apply(this);
+        int nb = Integer.parseInt(node.getNumber().getText());
+        pseudoInst = new NasmResd(label,nb,"");
+        outAResdVar(node);
+    }
+    // var = {resq} label reservequadword number
+    @Override
+    public void caseAResqVar(AResqVar node)
+    {
+        inAResqVar(node);
+        node.getLabel().apply(this);
+        int nb = Integer.parseInt(node.getNumber().getText());
+        pseudoInst = new NasmResq(label,nb,"");
+        outAResqVar(node);
+    }
+    // var = {rest} label reservetenbytes number
+    @Override
+    public void caseARestVar(ARestVar node)
+    {
+        inARestVar(node);
+        node.getLabel().apply(this);
+        int nb = Integer.parseInt(node.getNumber().getText());
+        pseudoInst = new NasmRest(label,nb,"");
+        outARestVar(node);
+    }
+
+    // sectext = section text lglobal linst
+    //////////////////////
+    @Override
+    public void caseASectext(ASectext node)
+    {
+        inASectext(node);
+        if(node.getSection() != null)
+        {
+            node.getSection().apply(this);
+        }
+        if(node.getText() != null)
+        {
+            node.getText().apply(this);
+        }
+        if(node.getLglobal() != null)
+        {
+            node.getLglobal().apply(this);
+        }
+        if(node.getLinst() != null)
+        {
+            node.getLinst().apply(this);
+        }
+        outASectext(node);
+    }
+
+    // lglobal = {rec} global label lglobal
+    @Override
+    public void caseARecLglobal(ARecLglobal node)
+    {
+        inARecLglobal(node);
+        if(node.getGlobal() != null)
+        {
+            node.getGlobal().apply(this);
+        }
+        if(node.getLabel() != null)
+        {
+            node.getLabel().apply(this);
+        }
+        if(node.getLglobal() != null)
+        {
+            node.getLglobal().apply(this);
+        }
+        outARecLglobal(node);
+    }
+    // lglobal = {empty}
+    @Override
+    public void caseAEmptyLglobal(AEmptyLglobal node)
+    {
+        inAEmptyLglobal(node);
+        outAEmptyLglobal(node);
+    }
+
+
+    // linst = {rec} inst linst
+    @Override
+    public void caseARecLinst(ARecLinst node)
+    {
+        inARecLinst(node);
+        node.getInst().apply(this);
+        nasm.ajouteInst(inst);
+        label = null;
+        exp = null;
+        size = null;
+        operand = null;
+
+        node.getLinst().apply(this);
+        outARecLinst(node);
+    }
+    
+    // linst = {last} inst
+    @Override
+    public void caseALastLinst(ALastLinst node)
+    {
+        inALastLinst(node);
+        node.getInst().apply(this);
+        nasm.ajouteInst(inst);
+        label = null;
+        exp = null;
+        size = null;
+        operand = null;
+        outALastLinst(node);
+    }
+
+
+    // inst =  {mov}    oplabel mov  ar comma acr
+    @Override
+    public void caseAMovInst(AMovInst node)
+    {
+        inAMovInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+
+        inst = new NasmMov(lineLabel, destination, source, "");
+        outAMovInst(node);
+    }
+
+    // inst =  {push}   oplabel push acr
+    @Override
+    public void caseAPushInst(APushInst node)
+    {
+        inAPushInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmPush(lineLabel, source, "");
+        outAPushInst(node);
+    }
+
+    // inst =  {pop}    oplabel pop  ar
+    @Override
+    public void caseAPopInst(APopInst node)
+    {
+        inAPopInst(node);
+        node.getOplabel().apply(this);
+	NasmLabel lineLabel = label;
+
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        inst = new NasmPop(lineLabel, destination, "");
+        outAPopInst(node);
+    }
+
+    // inst =  {add}    oplabel add  ar comma acr
+    @Override
+    public void caseAAddInst(AAddInst node)
+    {
+        inAAddInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmAdd(lineLabel, destination, source, "");
+        outAAddInst(node);
+    }
+
+    // inst =  {sub}    oplabel sub  ar comma acr
+    @Override
+    public void caseASubInst(ASubInst node)
+    {
+        inASubInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmSub(lineLabel, destination, source, "");
+        outASubInst(node);
+    }
+
+    // inst =  {imul}   oplabel imul ar comma acr
+    @Override
+    public void caseAImulInst(AImulInst node)
+    {
+        inAImulInst(node);
+        node.getOplabel().apply(this);
+	        NasmLabel lineLabel = label;
+
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmMul(lineLabel, destination, source, "");
+        outAImulInst(node);
+    }
+
+    // inst =  {idiv}   oplabel idiv ar
+    @Override
+    public void caseAIdivInst(AIdivInst node)
+    {
+        inAIdivInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmDiv(lineLabel, source, "");
+        outAIdivInst(node);
+    }
+
+    // inst =  {and}    oplabel and  ar comma acr
+    @Override
+    public void caseAAndInst(AAndInst node)
+    {
+        inAAndInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = label;
+        inst = new NasmOr(lineLabel, destination, source, "");
+        outAAndInst(node);
+    }
+
+    // inst =  {or}     oplabel or   ar comma acr
+    @Override
+    public void caseAOrInst(AOrInst node)
+    {
+        inAOrInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmOr(lineLabel, destination, source, "");
+        outAOrInst(node);
+    }
+
+    // inst =  {xor}    oplabel xor  ar comma acr
+    @Override
+    public void caseAXorInst(AXorInst node)
+    {
+        inAXorInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmXor(lineLabel, destination, source, "");
+        outAXorInst(node);
+    }
+
+    // inst =  {not}    oplabel not  ar
+    @Override
+    public void caseANotInst(ANotInst node)
+    {
+        inANotInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        inst = new NasmNot(lineLabel, destination, "");
+        outANotInst(node);
+    }
+
+    // inst =  {cmp}    oplabel cmp  ar comma acr
+    @Override
+    public void caseACmpInst(ACmpInst node)
+    {
+        inACmpInst(node);
+	node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getAr().apply(this);
+        NasmOperand destination = operand;
+        node.getAcr().apply(this);
+        NasmOperand source = operand;
+        inst = new NasmCmp(lineLabel, destination, source, "");
+        outACmpInst(node);
+    }
+
+    // inst =  {jmp}    oplabel jmp  label
+    @Override
+    public void caseAJmpInst(AJmpInst node)
+    {
+        inAJmpInst(node);
+	node.getOplabel().apply(this);
+        NasmOperand lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJmp(lineLabel, jumpTo, "");
+        outAJmpInst(node);
+    }
+
+    // inst =  {je}     oplabel je   label
+    @Override
+    public void caseAJeInst(AJeInst node)
+    {
+        inAJeInst(node);
+	node.getOplabel().apply(this);
+        NasmOperand lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJe(lineLabel, jumpTo, "");
+        outAJeInst(node);
+    }
+
+    // inst =  {jne}    oplabel jne  label
+    @Override
+    public void caseAJneInst(AJneInst node)
+    {
+        inAJneInst(node);
+	node.getOplabel().apply(this);
+        NasmOperand lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJne(lineLabel, jumpTo, "");
+   }
+
+    // inst =  {jg}     oplabel jg   label
+    @Override
+    public void caseAJgInst(AJgInst node)
+    {
+        inAJgInst(node);
+	node.getOplabel().apply(this);
+	NasmOperand lineLabel = label;
+
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJg(lineLabel, jumpTo, "");
+        outAJgInst(node);
+    }
+
+    // inst =  {jge}    oplabel jge  label
+    @Override
+    public void caseAJgeInst(AJgeInst node)
+    {
+        inAJgeInst(node);
+	node.getOplabel().apply(this);
+        NasmOperand lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJge(lineLabel, jumpTo, "");
+        outAJgeInst(node);
+    }
+
+    // inst =  {jl}     oplabel jl   label
+    @Override
+    public void caseAJlInst(AJlInst node)
+    {
+        inAJlInst(node);
+	node.getOplabel().apply(this);
+        NasmOperand lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmJl(lineLabel, jumpTo, "");
+        outAJlInst(node);
+    }
+
+    // inst =  {call}   oplabel call label
+    @Override
+    public void caseACallInst(ACallInst node)
+    {
+        inACallInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        node.getLabel().apply(this);
+        NasmOperand jumpTo = label;
+        inst = new NasmCall(lineLabel, jumpTo, "");
+        outACallInst(node);
+    }
+
+    // inst =  {ret}    oplabel ret
+    @Override
+    public void caseARetInst(ARetInst node)
+    {
+        inARetInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        inst = new NasmRet(lineLabel, "");
+        outARetInst(node);
+    }
+
+    // inst =  {inter}  oplabel int
+    @Override
+    public void caseAInterInst(AInterInst node)
+    {
+        inAInterInst(node);
+        node.getOplabel().apply(this);
+        NasmLabel lineLabel = label;
+        inst = new NasmInt(lineLabel, "");
+        outAInterInst(node);
+    }
+
+    // acr = {address} address
+    @Override
+    public void caseAAddressAcr(AAddressAcr node)
+    {
+        inAAddressAcr(node);
+        if(node.getAddress() != null)
+        {
+            node.getAddress().apply(this);
+        }
+        outAAddressAcr(node);
+    }
+
+    // acr = {numconst} numconst
+    @Override
+    public void caseANumconstAcr(ANumconstAcr node)
+    {
+        inANumconstAcr(node);
+        if(node.getNumconst() != null)
+        {
+            node.getNumconst().apply(this);
+        }
+        outANumconstAcr(node);
+    }
+
+    // acr = {register} register
+    @Override
+    public void caseARegisterAcr(ARegisterAcr node)
+    {
+        inARegisterAcr(node);
+        if(node.getRegister() != null)
+        {
+            node.getRegister().apply(this);
+        }
+        outARegisterAcr(node);
+    }
+
+
+    // ar = {address} address
+    @Override
+    public void caseAAddressAr(AAddressAr node)
+    {
+        inAAddressAr(node);
+        if(node.getAddress() != null)
+        {
+            node.getAddress().apply(this);
+        }
+        outAAddressAr(node);
+    }
+
+    // ar = {register} register
+    @Override
+    public void caseARegisterAr(ARegisterAr node)
+    {
+        inARegisterAr(node);
+        if(node.getRegister() != null)
+        {
+            node.getRegister().apply(this);
+        }
+        outARegisterAr(node);
+    }
+    
+    // address = opsizeof brackopen exp brackclose
+    @Override
+    public void caseAAddress(AAddress node)
+    {
+        inAAddress(node);
+        node.getOpsizeof().apply(this);
+        NasmSize sizeof = size;
+        node.getExp().apply(this);
+        NasmExp val = exp;
+        operand = new NasmAddress(val, sizeof);
+        outAAddress(node);
+    }
+
+
+    // opsizeof = {byte} byte
+    @Override
+    public void caseAByteOpsizeof(AByteOpsizeof node)
+    {
+        inAByteOpsizeof(node);
+        size = NasmSize.BYTE;
+        outAByteOpsizeof(node);
+    }
+
+    // opsizeof = {word} word
+    @Override
+    public void caseAWordOpsizeof(AWordOpsizeof node)
+    {
+        inAWordOpsizeof(node);
+        size = NasmSize.WORD;
+        outAWordOpsizeof(node);
+    }
+
+    // opsizeof = {dword} dword
+    @Override
+    public void caseADwordOpsizeof(ADwordOpsizeof node)
+    {
+        inADwordOpsizeof(node);
+        size = NasmSize.DWORD;
+        outADwordOpsizeof(node);
+    }
+
+    // opsizeof = {empty}
+    @Override
+    public void caseAEmptyOpsizeof(AEmptyOpsizeof node)
+    {
+        inAEmptyOpsizeof(node);
+        size = NasmSize.UNDEFINED;
+        outAEmptyOpsizeof(node);
+    }
+
+    // exp = {plus}  exp plus exp1
+    @Override
+    public void caseAPlusExp(APlusExp node)
+    {
+        inAPlusExp(node);
+        node.getExp().apply(this);
+        NasmExp op1 = exp;
+        node.getExp1().apply(this);
+        NasmExp op2 = exp;
+        exp = new NasmExpPlus(op1, op2);
+        outAPlusExp(node);
+    }
+
+    // exp = {minus} exp minus exp1
+    @Override
+    public void caseAMinusExp(AMinusExp node)
+    {
+        inAMinusExp(node);
+        node.getExp().apply(this);
+        NasmExp op1 = exp;
+        node.getExp1().apply(this);
+        NasmExp op2 = exp;
+        exp = new NasmExpMinus(op1, op2);
+        outAMinusExp(node);
+    }
+
+    // exp = {next}  exp1
+    @Override
+    public void caseANextExp(ANextExp node)
+    {
+        inANextExp(node);
+        if(node.getExp1() != null)
+        {
+            node.getExp1().apply(this);
+        }
+        outANextExp(node);
+    }
+
+
+    // exp1 = {times} exp1 times exp2
+    @Override
+    public void caseATimesExp1(ATimesExp1 node)
+    {
+        inATimesExp1(node);
+        node.getExp1().apply(this);
+        NasmExp op1 = exp;
+        node.getExp2().apply(this);
+        NasmExp op2 = exp;
+        exp = new NasmExpTimes(op1, op2);
+        outATimesExp1(node);
+    }
+
+    // exp1 = {next}  exp2
+    @Override
+    public void caseANextExp1(ANextExp1 node)
+    {
+        inANextExp1(node);
+        if(node.getExp2() != null)
+        {
+            node.getExp2().apply(this);
+        }
+        outANextExp1(node);
+    }
+
+
+    // exp2 = {label} label
+    @Override
+    public void caseALabelExp2(ALabelExp2 node)
+    {
+        inALabelExp2(node);
+        node.getLabel().apply(this);
+        exp = label;
+        outALabelExp2(node);
+    }
+
+    // exp2 = {numconst} numconst
+    @Override
+    public void caseANumconstExp2(ANumconstExp2 node)
+    {
+        inANumconstExp2(node);
+        node.getNumconst().apply(this);
+        exp = (NasmConstant)operand;
+        outANumconstExp2(node);
+    }
+
+    // exp2 = {register} register
+    @Override
+    public void caseARegisterExp2(ARegisterExp2 node)
+    {
+        inARegisterExp2(node);
+        node.getRegister().apply(this);
+        exp = (NasmRegister) operand;
+        outARegisterExp2(node);
+    }
+
+    // numconst = number
+    @Override
+    public void caseANumconst(ANumconst node)
+    {
+        inANumconst(node);
+        operand = new NasmConstant(Integer.parseInt(node.getNumber().getText()));
+        outANumconst(node);
+    }
+
+    // register = {temp} prefix_register number
+    @Override
+    public void caseATempRegister(ATempRegister node)
+    {
+        inATempRegister(node);
+	int regNb = Integer.parseInt(node.getNumber().getText());
+	if (regNb > nasm.getTempCounter())
+	    nasm.setTempCounter(regNb);
+        operand = new NasmRegister(regNb);
+        outATempRegister(node);
+    }
+
+    // register = {eax} eax
+    @Override
+    public void caseAEaxRegister(AEaxRegister node)
+    {
+        inAEaxRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_EAX);
+        operand = reg;
+        outAEaxRegister(node);
+    }
+
+    // register = {ebx} ebx
+    @Override
+    public void caseAEbxRegister(AEbxRegister node)
+    {
+        inAEbxRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_EBX);
+        operand = reg;
+        outAEbxRegister(node);
+    }
+
+    // register = {ecx} ecx
+    @Override
+    public void caseAEcxRegister(AEcxRegister node)
+    {
+        inAEcxRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_ECX);
+        operand = reg;
+        outAEcxRegister(node);
+    }
+
+    // register = {edx} edx
+    @Override
+    public void caseAEdxRegister(AEdxRegister node)
+    {
+        inAEdxRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_EDX);
+        operand = reg;
+        outAEdxRegister(node);
+    }
+
+    // register = {ebp} ebp
+    @Override
+    public void caseAEbpRegister(AEbpRegister node)
+    {
+        inAEbpRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_EBP);
+        operand = reg;
+        outAEbpRegister(node);
+    }
+
+    // register = {esp} esp
+    @Override
+    public void caseAEspRegister(AEspRegister node)
+    {
+        inAEspRegister(node);
+        NasmRegister reg  = new NasmRegister(0);
+        reg.colorRegister(Nasm.REG_ESP);
+        operand = reg;
+        outAEspRegister(node);
+    }
+
+
+    // oplabel = {label} label semicol
+    @Override
+    public void caseALabelOplabel(ALabelOplabel node)
+    {
+        inALabelOplabel(node);
+        node.getLabel().apply(this);
+        outALabelOplabel(node);
+    }
+
+    // oplabel = {empty}
+    @Override
+    public void caseAEmptyOplabel(AEmptyOplabel node)
+    {
+        inAEmptyOplabel(node);
+        label = null;
+        outAEmptyOplabel(node);
+    }
+
+    // label = id
+    @Override
+    public void caseALabel(ALabel node)
+    {
+        inALabel(node);
+        label = new NasmLabel(node.getId().getText());
+        outALabel(node);
+    }
+}
+
+
+
diff --git a/src/nasm/Nasm.java b/src/nasm/Nasm.java
new file mode 100644
index 0000000..3bd34e4
--- /dev/null
+++ b/src/nasm/Nasm.java
@@ -0,0 +1,172 @@
+package nasm;
+import java.util.*;
+import java.io.*;
+import ts.*;
+    
+public class Nasm{
+    public List<NasmInst> sectionText;
+    public List<NasmPseudoInst> sectionBss;
+    protected int tempCounter = 0;
+    Ts tableGlobale;
+    public static int REG_EAX = 0;
+    public static int REG_EBX = 1;
+    public static int REG_ECX = 2;
+    public static int REG_EDX = 3;
+    public static int REG_ESP = 4;
+    public static int REG_EBP = 5;
+    public static int REG_UNK = 6;
+    //    public static int NB_PREDEFINED_REG = 7;
+
+
+    public Nasm(Ts tableGlobale){
+	this.tableGlobale = tableGlobale;
+	this.sectionBss = new ArrayList<NasmPseudoInst>();
+	this.sectionText = new ArrayList<NasmInst>();
+	populateSectionBss(tableGlobale);
+    }
+
+    public Nasm(){
+	this.sectionBss = new ArrayList<NasmPseudoInst>();
+	this.sectionText = new ArrayList<NasmInst>();
+    }
+
+    public int getTempCounter(){return this.tempCounter;}
+    public int setTempCounter(int c){return this.tempCounter = c;}
+    
+    public void ajoutePseudoInst(NasmPseudoInst pseudoInst){
+	this.sectionBss.add(pseudoInst);
+    }
+    
+    public void ajouteInst(NasmInst inst){
+	if(inst instanceof NasmMov && inst.destination instanceof NasmAddress && inst.source instanceof NasmAddress){
+	    NasmRegister newReg = newRegister();
+	    this.sectionText.add(new NasmMov(inst.label, newReg, inst.source, inst.comment)); 
+	    this.sectionText.add(new NasmMov(null, inst.destination, newReg, "on passe par un registre temporaire"));
+	    return;
+	}
+	if(inst instanceof NasmAdd && inst.destination instanceof NasmAddress && inst.source instanceof NasmAddress){
+	    NasmRegister newReg = newRegister();
+	    this.sectionText.add(new NasmMov(inst.label, newReg, inst.source, inst.comment)); 
+	    this.sectionText.add(new NasmAdd(null, inst.destination, newReg, "on passe par un registre temporaire"));
+	    return;
+	}
+	if(inst instanceof NasmSub && inst.destination instanceof NasmAddress && inst.source instanceof NasmAddress){
+	    NasmRegister newReg = newRegister();
+	    this.sectionText.add(new NasmMov(inst.label, newReg, inst.source, inst.comment)); 
+	    this.sectionText.add(new NasmSub(null, inst.destination, newReg, "on passe par un registre temporaire"));
+	    return;
+	}
+	if(inst instanceof NasmMul && inst.destination instanceof NasmAddress && inst.source instanceof NasmAddress){
+	    NasmRegister newReg = newRegister();
+	    this.sectionText.add(new NasmMov(inst.label, newReg, inst.source, inst.comment)); 
+	    this.sectionText.add(new NasmMul(null, inst.destination, newReg, "on passe par un registre temporaire"));
+	    return;
+	}
+
+	
+	//	if(inst instanceof NasmCmp && inst.destination instanceof NasmConstant && inst.source instanceof NasmConstant){
+	if(inst instanceof NasmCmp
+	   && (inst.destination instanceof NasmConstant
+	       || (inst.destination instanceof NasmAddress && inst.source instanceof NasmAddress))){
+		NasmRegister newReg = newRegister();
+		this.sectionText.add(new NasmMov(inst.label, newReg, inst.destination, inst.comment)); 
+		this.sectionText.add(new NasmCmp(null, newReg, inst.source, "on passe par un registre temporaire"));
+		return;
+	    }
+	
+	this.sectionText.add(inst);
+    }
+
+    public NasmRegister newRegister(){
+	return new NasmRegister(tempCounter++);
+    }
+
+    public void populateSectionBss(Ts tableGlobale){
+	ajoutePseudoInst(new NasmResb(new NasmLabel("sinput"), 255, "reserve a 255 byte space in memory for the users input string"));
+	Set< Map.Entry< String, TsItemVar> > st = tableGlobale.variables.entrySet();    
+	for (Map.Entry< String, TsItemVar> me:st){
+	    TsItemVar tsItem = me.getValue(); 
+	    String identif = me.getKey();
+	    if(tsItem instanceof TsItemVarSimple)
+		ajoutePseudoInst(new NasmResd(new NasmLabel(identif), tsItem.type.taille(), "variable globale"));
+	    if(tsItem instanceof TsItemVarTab)
+		ajoutePseudoInst(new NasmResd(new NasmLabel(identif), tsItem.type.taille() * ((TsItemVarTab)tsItem).taille, "variable globale"));
+	    //	    ajoutePseudoInst(new NasmResd(new NasmLabel(identif), tsItem.taille*4, "variable globale"));
+	}
+    }
+
+
+    public void affichePreNasm(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".pre-nasm";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	affiche(out);
+    }
+
+    public void afficheNasm(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".nasm";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+	affiche(out);
+    }
+
+    public void affiche(PrintStream out){
+	out.println("%include\t'io.asm'\n");
+	out.println("section\t.bss");
+    	Iterator<NasmPseudoInst> iter = this.sectionBss.iterator();
+    	while(iter.hasNext()){
+    	    out.println(iter.next());
+    	}
+	
+	out.println("\nsection\t.text");
+	out.println("global _start");
+	out.println("_start:");
+    	Iterator<NasmInst> iter2 = this.sectionText.iterator();
+    	while(iter2.hasNext()){
+    	    out.println(iter2.next());
+    	}
+    }
+}
+/*
+    public void affichePreambule(PrintStream out)
+    {
+	out.println("%include\t'io.asm'\n");
+	out.println("section\t.bss");
+	out.println("sinput:\tresb\t255\t;reserve a 255 byte space in memory for the users input string");
+
+
+	Set< Map.Entry< String, TsItemVar> > st = tableGlobale.variables.entrySet();    
+	for (Map.Entry< String, TsItemVar> me:st){
+	    TsItemVar tsItem = me.getValue(); 
+	    String identif = me.getKey();
+	    out.println(identif + " :\tresd\t" + tsItem.taille * 4);
+	}
+	out.println("\nsection\t.text");
+	out.println("global _start");
+	out.println("_start:");
+    }
+
+
+    */
diff --git a/src/nasm/NasmAdd.java b/src/nasm/NasmAdd.java
new file mode 100644
index 0000000..340d0df
--- /dev/null
+++ b/src/nasm/NasmAdd.java
@@ -0,0 +1,25 @@
+package nasm;
+
+public class NasmAdd extends NasmInst {
+    
+    public NasmAdd(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "add", this.destination, this.source, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmAddress.java b/src/nasm/NasmAddress.java
new file mode 100644
index 0000000..f81e92a
--- /dev/null
+++ b/src/nasm/NasmAddress.java
@@ -0,0 +1,26 @@
+package nasm;
+
+public class NasmAddress extends NasmOperand {
+
+    public NasmExp val;
+    public NasmSize size;
+
+    public NasmAddress(NasmExp val, NasmSize size){
+    this.val = val;
+    this.size = size;
+    }
+
+    public String toString(){
+        return this.size.toString() + " [" + this.val.toString() + "]";
+    }
+
+    public boolean isGeneralRegister(){
+	return false;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+	}
+
+
+}
diff --git a/src/nasm/NasmAnd.java b/src/nasm/NasmAnd.java
new file mode 100644
index 0000000..c4c32e3
--- /dev/null
+++ b/src/nasm/NasmAnd.java
@@ -0,0 +1,24 @@
+package nasm;
+
+public class NasmAnd extends NasmInst {
+    
+    public NasmAnd(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "and", this.destination, this.source, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmCall.java b/src/nasm/NasmCall.java
new file mode 100644
index 0000000..d7a43e1
--- /dev/null
+++ b/src/nasm/NasmCall.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmCall extends NasmInst {
+    
+    public NasmCall(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "call", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmCmp.java b/src/nasm/NasmCmp.java
new file mode 100644
index 0000000..6926d8f
--- /dev/null
+++ b/src/nasm/NasmCmp.java
@@ -0,0 +1,23 @@
+package nasm;
+
+public class NasmCmp extends NasmInst {
+    
+    public NasmCmp(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	srcUse= true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "cmp", this.destination, this.source, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmConstant.java b/src/nasm/NasmConstant.java
new file mode 100644
index 0000000..9f6a749
--- /dev/null
+++ b/src/nasm/NasmConstant.java
@@ -0,0 +1,28 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmConstant extends NasmOperand implements NasmExp{
+    public int val;
+    public NasmConstant(int val){
+	this.val = val;
+    }
+
+    public String toString(){
+	return Integer.toString(this.val);
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	return registerList;
+    }
+}
diff --git a/src/nasm/NasmDiv.java b/src/nasm/NasmDiv.java
new file mode 100644
index 0000000..c3cc45f
--- /dev/null
+++ b/src/nasm/NasmDiv.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmDiv extends NasmInst {
+    
+    public NasmDiv(NasmOperand label, NasmOperand source, String comment){
+	srcUse = true;
+	this.label = label;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	    return super.formatInst(this.label, "idiv", this.source, null, this.comment);
+	}
+}
diff --git a/src/nasm/NasmEmpty.java b/src/nasm/NasmEmpty.java
new file mode 100644
index 0000000..808f690
--- /dev/null
+++ b/src/nasm/NasmEmpty.java
@@ -0,0 +1,18 @@
+package nasm;
+
+public class NasmEmpty extends NasmInst {
+    
+    public NasmEmpty(NasmOperand label, String comment){
+	this.label = label;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "", null, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmEval.java b/src/nasm/NasmEval.java
new file mode 100644
index 0000000..3178a3c
--- /dev/null
+++ b/src/nasm/NasmEval.java
@@ -0,0 +1,410 @@
+package nasm;
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import util.Memory;
+
+/*
+This class emulates pre-nasm and nasm code for x86-64 architecture.
+It handles only integers on 4 bytes and have unlimited register.
+ */
+
+public class NasmEval implements NasmVisitor<Integer>{
+    private Nasm code;
+    private int dataSize = 0;
+
+    private int regNb;
+    private HashMap<String, Integer> labelToAddress;
+    private Memory memory;
+    private boolean stop;
+    private ArrayList<Integer> output;
+
+    // registers
+    private int[] registers;
+    
+    private int ebp;
+    private int eip = 0;
+    private int eax = 0; 
+    private int ebx = 0; 
+    private int ecx = 0; 
+    private int edx = 0; 
+    
+    //flags
+    // Carry Flag -> not used
+    private boolean CF = false;
+    // Parity Flag -> not used
+    private boolean PF = false;
+    // Zero Flag
+    private boolean ZF = false;
+    // Sign Flag
+    private boolean SF = false;
+    // Overflow Flag -> not used
+    private boolean OF = false;
+	
+    private int verboseLevel;
+
+    public NasmEval(Nasm code, int stackSize, int verboseLevel){
+        this.code = code;
+	this.verboseLevel = verboseLevel;
+	regNb = this.code.getTempCounter();
+        registers = new int[regNb+1];
+        eip = 0;
+        stop = false;
+
+        output = new ArrayList<>();
+	labelToAddress = new HashMap<>();
+
+	associateLabelToAddress();
+       	memory = new Memory(dataSize, stackSize);
+	
+        while(!stop && eip < code.sectionText.size()){
+	    NasmInst inst = this.code.sectionText.get(eip);
+	    if(verboseLevel > 0){
+		System.out.println("--------------------------------------");
+
+		PrintGlobalVariables();
+		//		System.out.println("eip = " + eip + "\tesp = " + memory.getTopInt() + "\t ebp = " + ebp);
+		System.out.println("eip = " + eip + "\tesp = " + memory.esp + "\t ebp = " + ebp);
+		System.out.println("eax = " + eax + "\tebx = " + ebx + "\tecx = " + ecx + "\tedx = " + edx);
+		System.out.println("CF = " + CF + "\tPF = " + PF + "\tZF = " + ZF + "\tSF = " + SF + "\tOF = " + OF);
+		printRegisters();
+		System.out.print("PILE : \t");
+		memory.printStack();
+		System.out.println(inst);
+	    }
+            eip = inst.accept(this);
+        }
+	//	displayOutput();
+    }
+
+    public void PrintGlobalVariables(){
+    for (HashMap.Entry<String, Integer> e : labelToAddress.entrySet())
+
+	    //   	System.out.println("[" + e.getValue() + "]\t" + e.getKey() + " = " + memory.readInt(e.getValue()));
+	System.out.println(e.getKey() + " = " + memory.readInt(e.getValue()) + " adr: " + e.getValue());
+
+    }
+	
+    public void printRegisters(){
+	for(int i=0; i < regNb; i++){
+	    System.out.print("r" + i + ":" + registers[i] + "\t");
+	}
+	//	System.out.println();
+    }
+
+    public void displayOutput(){
+        for(var val : output)
+            System.out.println(val);
+    }
+
+    public void displayOutput(String outputFile) throws FileNotFoundException {
+        var out = new PrintStream(outputFile);
+        for(var val : output)
+            out.println(val);
+    }
+
+    private void associateLabelToAddress(){
+        var instructions = code.sectionText;
+	// associate labels to line numbers
+        for(int lineNb = 0; lineNb <instructions.size(); lineNb++){
+            if(instructions.get(lineNb).label != null) {
+                var label = (NasmLabel)instructions.get(lineNb).label;
+                labelToAddress.put(label.val, lineNb);
+            }
+        }
+	// compute addresses of global variables and associate them to labels
+	for(int i = 0; i < code.sectionBss.size(); i++){
+	    NasmPseudoInst pseudoInst = this.code.sectionBss.get(i);
+	    labelToAddress.put(pseudoInst.label.val, dataSize);
+	    //	    System.out.println("var :" + pseudoInst.label.val + " address = " + dataSize);
+	    dataSize += pseudoInst.nb * pseudoInst.sizeInBytes;
+	}
+    }
+
+    /*------------------------------------------*/
+    private void copy(NasmOperand dest, int value){
+	if(dest instanceof NasmAddress)
+	    copy((NasmAddress) dest, value);
+	else if(dest instanceof NasmRegister)
+	    copy((NasmRegister) dest, value);
+    }
+    
+    private void copy(NasmAddress dest, int value){
+	int address = dest.val.accept(this);
+	memory.writeInt(address, value);
+    }
+    
+
+    private void copy(NasmRegister dest, int value){
+	writeToRegister(dest, value);
+    }
+
+    /*------------------------------------------*/
+
+    // return value stored in regiter
+    private int readFromRegister(NasmRegister reg){
+	if(reg.color == Nasm.REG_EAX)
+	    return eax;
+	if (reg.color == Nasm.REG_EBX)
+	    return ebx;
+	if (reg.color == Nasm.REG_ECX)
+	    return ecx;
+	if (reg.color == Nasm.REG_EDX)
+	    return edx;
+	if (reg.color == Nasm.REG_ESP)
+	    return memory.esp;
+	if (reg.color == Nasm.REG_EBP)
+	    return ebp;
+	else
+	    return registers[reg.val];
+
+    }
+    // write in a register
+    
+    private void writeToRegister(NasmRegister reg, int value){
+	if(reg.color == Nasm.REG_EAX)
+	    eax = value;
+	else if (reg.color == Nasm.REG_EBX)
+	    ebx = value;
+	else if (reg.color == Nasm.REG_ECX)
+	    ecx = value;
+	else if (reg.color == Nasm.REG_EDX)
+	    edx = value;
+	else if (reg.color == Nasm.REG_ESP)
+	    memory.esp = value;
+	else if (reg.color == Nasm.REG_EBP)
+	    ebp = value;
+	else
+	    registers[reg.val] = value;
+    }
+
+    /* visit address -> return the value stored at this address */
+    @Override
+    public Integer visit(NasmAddress adr) {
+	return memory.readInt(adr.val.accept(this));
+    }
+
+    /* visit register -> return the value stored in the register */
+    @Override
+    public Integer visit(NasmRegister operand) {
+	if(operand.color == Nasm.REG_EAX)
+	    return eax;
+	if (operand.color == Nasm.REG_EBX)
+	    return ebx;
+	if (operand.color == Nasm.REG_ECX)
+	    return ecx;
+	if (operand.color == Nasm.REG_EDX)
+	    return edx;
+	if (operand.color == Nasm.REG_ESP)
+	    return memory.esp;
+	if (operand.color == Nasm.REG_EBP)
+	    return ebp;
+	else
+	    return registers[operand.val];
+    }
+
+    /* visit constant -> return value of the constant */
+    @Override
+    public Integer visit(NasmConstant operand) {
+        return operand.val;
+    }
+
+    /* visit label -> return address corresponding to the label */
+    @Override
+    public Integer visit(NasmLabel operand) {
+        if(labelToAddress.containsKey(operand.val))
+	    return labelToAddress.get(operand.val);
+	else
+	    throw new RuntimeException("label " + operand.val + "does not correspond to address");
+    }
+
+
+    /* visiting an instruction returns new value of eip */
+    /* arithmetic operations */
+    
+    @Override
+    public Integer visit(NasmAdd inst) {
+	copy(inst.destination, inst.source.accept(this) + inst.destination.accept(this));
+        return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmSub inst) {
+        copy(inst.destination, inst.destination.accept(this) - inst.source.accept(this));
+	return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmMul inst) {
+        copy(inst.destination, inst.source.accept(this) * inst.destination.accept(this));
+	return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmDiv inst) {
+        var divisor  = inst.source.accept(this);
+        var temp = eax;
+        eax = temp / divisor;
+        edx = temp % divisor;
+	return eip + 1;
+    }
+
+    /* logical operations */
+    @Override
+    public Integer visit(NasmOr inst) {
+        copy(inst.destination, inst.source.accept(this) | inst.destination.accept(this));
+        return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmNot inst) {
+        copy(inst.destination, ~ inst.destination.accept(this));
+        return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmXor inst) {
+        copy(inst.destination, inst.source.accept(this) ^ inst.destination.accept(this));
+	return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmAnd inst) {
+        copy(inst.destination, inst.source.accept(this) & inst.destination.accept(this));
+	return eip + 1;
+    }
+
+    /* function call */
+    @Override
+    public Integer visit(NasmCall inst) {
+        if(inst.address instanceof NasmLabel && ((NasmLabel)inst.address).val.equals("iprintLF")){
+            output.add(eax);
+	    return eip + 1;
+	}
+	memory.pushInt(eip);
+	return inst.address.accept(this);
+    }
+
+    /* comparison */
+    @Override
+    public Integer visit(NasmCmp inst) {
+        int valSrc = inst.source.accept(this);
+        int valDest = inst.destination.accept(this);
+        ZF = (valDest == valSrc)? true : false;
+	SF = (valDest < valSrc)? true : false;
+        return eip + 1;
+    }
+    
+    /* jumps */
+    @Override
+    public Integer visit(NasmJe inst) {
+        return (ZF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJle inst) {
+        return (ZF || SF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJne inst) {
+        return (!ZF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJge inst) {
+        return (ZF || !SF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJl inst) {
+	return (!ZF && SF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJg inst) {
+        return (!ZF || SF)? inst.address.accept(this) : eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmJmp inst) {
+        return inst.address.accept(this);
+    }
+
+    @Override
+    public Integer visit(NasmPop inst) {
+        copy(inst.destination, memory.popInt());
+	return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmPush inst) {
+        memory.pushInt(inst.source.accept(this));
+        return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmRet inst) {
+        return memory.popInt() + 1;
+    }
+
+    @Override
+    public Integer visit(NasmMov inst) {
+        copy(inst.destination, inst.source.accept(this));
+	return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmInt inst) {
+        if(eax == 1)
+            stop = true;
+        return eip + 1;
+    }
+
+    @Override
+    public Integer visit(NasmInst inst) {
+        return 0;
+    }
+
+    @Override
+    public Integer visit(NasmEmpty inst) {
+        return eip + 1;
+    }
+
+    public Integer visit(NasmResb pseudoInst){return 0;}
+    public Integer visit(NasmResw pseudoInst){return 0;}
+    public Integer visit(NasmResd pseudoInst){return 0;}
+    public Integer visit(NasmResq pseudoInst){return 0;}
+    public Integer visit(NasmRest pseudoInst){return 0;}
+
+    /* visit expression -> returns an address */
+    
+    public Integer visit(NasmExp exp) { /* c'est moche, il faudrait modifier ça !! */
+	if(exp instanceof NasmLabel)
+	    return ((NasmLabel)exp).accept(this);
+
+	if(exp instanceof NasmRegister)
+	    return ((NasmRegister)exp).accept(this);
+
+	if(exp instanceof NasmLabel)
+	    return ((NasmLabel)exp).accept(this);
+
+	if(exp instanceof NasmConstant)
+	    return ((NasmConstant)exp).accept(this);
+
+	if(exp instanceof NasmExpPlus)
+	    return ((NasmExpPlus)exp).accept(this);
+
+	if(exp instanceof NasmExpMinus)
+	    return ((NasmExpMinus)exp).accept(this);
+
+	//	if(exp instanceof NasmExpTimes)
+	    return ((NasmExpTimes)exp).accept(this);
+    }
+    public Integer visit(NasmExpPlus exp) {return exp.op1.accept(this) + exp.op2.accept(this);}
+    public Integer visit(NasmExpMinus exp){return exp.op1.accept(this) - exp.op2.accept(this);}
+    public Integer visit(NasmExpTimes exp){return exp.op1.accept(this) * exp.op2.accept(this);}
+
+
+}
diff --git a/src/nasm/NasmExp.java b/src/nasm/NasmExp.java
new file mode 100644
index 0000000..6e51c1d
--- /dev/null
+++ b/src/nasm/NasmExp.java
@@ -0,0 +1,11 @@
+package nasm;
+import java.util.ArrayList;
+
+public interface NasmExp {
+    //    public boolean isStackAddress();
+    public ArrayList<NasmRegister> getRegisters();
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList);
+
+
+    public <T> T accept(NasmVisitor <T> visitor);
+}
diff --git a/src/nasm/NasmExpMinus.java b/src/nasm/NasmExpMinus.java
new file mode 100644
index 0000000..419c1c1
--- /dev/null
+++ b/src/nasm/NasmExpMinus.java
@@ -0,0 +1,34 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmExpMinus implements NasmExp{
+    public NasmExp op1;
+    public NasmExp op2;
+
+    public NasmExpMinus(NasmExp op1, NasmExp op2){
+        this.op1 = op1;
+        this.op2 = op2;
+    }
+
+    @Override
+    public String toString() {
+        return op1.toString() + "-" + op2.toString();
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	this.op1.getRegisters(registerList);
+	this.op2.getRegisters(registerList);
+	return registerList;
+    }
+}
diff --git a/src/nasm/NasmExpPlus.java b/src/nasm/NasmExpPlus.java
new file mode 100644
index 0000000..440d310
--- /dev/null
+++ b/src/nasm/NasmExpPlus.java
@@ -0,0 +1,34 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmExpPlus implements NasmExp{
+    public NasmExp op1;
+    public NasmExp op2;
+
+    public NasmExpPlus(NasmExp op1, NasmExp op2){
+        this.op1 = op1;
+        this.op2 = op2;
+    }
+
+    @Override
+    public String toString() {
+        return op1.toString() + "+" + op2.toString();
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	this.op1.getRegisters(registerList);
+	this.op2.getRegisters(registerList);
+	return registerList;
+    }
+}
diff --git a/src/nasm/NasmExpTimes.java b/src/nasm/NasmExpTimes.java
new file mode 100644
index 0000000..efc07f3
--- /dev/null
+++ b/src/nasm/NasmExpTimes.java
@@ -0,0 +1,34 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmExpTimes implements NasmExp{
+    public NasmExp op1;
+    public NasmExp op2;
+
+    public NasmExpTimes(NasmExp op1, NasmExp op2){
+        this.op1 = op1;
+        this.op2 = op2;
+    }
+
+    @Override
+    public String toString() {
+        return op1.toString() + "+" + op2.toString();
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	this.op1.getRegisters(registerList);
+	this.op2.getRegisters(registerList);
+	return registerList;
+    }
+}
diff --git a/src/nasm/NasmInst.java b/src/nasm/NasmInst.java
new file mode 100644
index 0000000..5d81f8f
--- /dev/null
+++ b/src/nasm/NasmInst.java
@@ -0,0 +1,36 @@
+package nasm;
+
+public abstract class NasmInst{
+    public NasmOperand label = null;
+    public NasmOperand destination = null;
+    public NasmOperand source = null;
+    public NasmOperand address = null;
+    public boolean destUse = false;
+    public boolean destDef = false;
+    public boolean srcUse = false;
+    public boolean srcDef = false;
+    String comment;
+    
+    void addLabel(String formatInst, NasmOperand label){
+	formatInst += label;
+    }
+    
+    public String formatInst(NasmOperand label, String opcode, NasmOperand arg1, NasmOperand arg2, String comment){
+	String s = "";
+	if(label != null)
+	    s = s + label + " :";
+	s = s + "\t" + opcode;
+	if(arg1 != null)
+		s = s + "\t" + arg1;
+	if(arg2 != null)
+		s = s + ",\t" + arg2;
+	if(comment != null & comment != "")
+	    s = s + "\t;" + comment;
+	return s;
+    }
+
+        public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+}
diff --git a/src/nasm/NasmInt.java b/src/nasm/NasmInt.java
new file mode 100644
index 0000000..3e6a5b5
--- /dev/null
+++ b/src/nasm/NasmInt.java
@@ -0,0 +1,18 @@
+package nasm;
+
+public class NasmInt extends NasmInst {
+    
+    public NasmInt(NasmOperand label, String comment){
+	this.label = label;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "int 0x80", null, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJe.java b/src/nasm/NasmJe.java
new file mode 100644
index 0000000..e40ab6c
--- /dev/null
+++ b/src/nasm/NasmJe.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJe extends NasmInst {
+    
+    public NasmJe(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "je", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJg.java b/src/nasm/NasmJg.java
new file mode 100644
index 0000000..1f6881c
--- /dev/null
+++ b/src/nasm/NasmJg.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJg extends NasmInst {
+    
+    public NasmJg(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "jg", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJge.java b/src/nasm/NasmJge.java
new file mode 100644
index 0000000..d5091cb
--- /dev/null
+++ b/src/nasm/NasmJge.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJge extends NasmInst {
+    
+    public NasmJge(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "jge", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJl.java b/src/nasm/NasmJl.java
new file mode 100644
index 0000000..5216ba3
--- /dev/null
+++ b/src/nasm/NasmJl.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJl extends NasmInst {
+    
+    public NasmJl(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "jl", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJle.java b/src/nasm/NasmJle.java
new file mode 100644
index 0000000..ac84e86
--- /dev/null
+++ b/src/nasm/NasmJle.java
@@ -0,0 +1,25 @@
+package nasm;
+
+public class NasmJle extends NasmInst {
+    
+    public NasmJle(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	//	String formatInst
+	//	addLabel(label);
+
+	//return formatInst;
+
+	
+	return super.formatInst(this.label, "jle", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJmp.java b/src/nasm/NasmJmp.java
new file mode 100644
index 0000000..62377f1
--- /dev/null
+++ b/src/nasm/NasmJmp.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJmp extends NasmInst {
+    
+    public NasmJmp(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "jmp", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmJne.java b/src/nasm/NasmJne.java
new file mode 100644
index 0000000..06531c8
--- /dev/null
+++ b/src/nasm/NasmJne.java
@@ -0,0 +1,19 @@
+package nasm;
+
+public class NasmJne extends NasmInst {
+    
+    public NasmJne(NasmOperand label, NasmOperand address, String comment){
+	this.label = label;
+	this.address = address;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "jne", this.address, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmLabel.java b/src/nasm/NasmLabel.java
new file mode 100644
index 0000000..85d4909
--- /dev/null
+++ b/src/nasm/NasmLabel.java
@@ -0,0 +1,28 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmLabel extends NasmOperand implements NasmExp {
+    public String val;
+
+    public NasmLabel(String val){
+	this.val = val;
+    }
+    public String toString(){
+	return this.val;
+    }
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    public boolean isStackAddress(){return false;}
+
+        public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	return registerList;
+    }
+}
diff --git a/src/nasm/NasmMov.java b/src/nasm/NasmMov.java
new file mode 100644
index 0000000..8d3d743
--- /dev/null
+++ b/src/nasm/NasmMov.java
@@ -0,0 +1,22 @@
+package nasm;
+
+public class NasmMov extends NasmInst {
+    
+    public NasmMov(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "mov", this.destination, this.source, this.comment);
+    }
+    
+}
diff --git a/src/nasm/NasmMul.java b/src/nasm/NasmMul.java
new file mode 100644
index 0000000..3be1297
--- /dev/null
+++ b/src/nasm/NasmMul.java
@@ -0,0 +1,26 @@
+package nasm;
+
+public class NasmMul extends NasmInst {
+    public NasmMul(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    /*    public String toString(){
+	return super.formatInst(this.label, "imul", this.source, null, this.comment);
+	}*/
+
+    public String toString(){
+	return super.formatInst(this.label, "imul", this.destination, this.source, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmNot.java b/src/nasm/NasmNot.java
new file mode 100644
index 0000000..c43ddf2
--- /dev/null
+++ b/src/nasm/NasmNot.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmNot extends NasmInst {
+    
+    public NasmNot(NasmOperand label, NasmOperand destination, String comment){
+	destUse = true;
+	destDef = true;
+	this.label = label;
+	this.destination = destination;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "not", this.destination, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmOperand.java b/src/nasm/NasmOperand.java
new file mode 100644
index 0000000..5fb05ba
--- /dev/null
+++ b/src/nasm/NasmOperand.java
@@ -0,0 +1,8 @@
+package nasm;
+
+public abstract class NasmOperand {
+    public boolean isGeneralRegister(){
+	return false;
+    }
+    public  abstract <T> T accept(NasmVisitor <T> visitor);
+}
diff --git a/src/nasm/NasmOr.java b/src/nasm/NasmOr.java
new file mode 100644
index 0000000..3dd09f3
--- /dev/null
+++ b/src/nasm/NasmOr.java
@@ -0,0 +1,24 @@
+package nasm;
+
+public class NasmOr extends NasmInst {
+    
+    public NasmOr(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "or", this.destination, this.source, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmPop.java b/src/nasm/NasmPop.java
new file mode 100644
index 0000000..88c46bf
--- /dev/null
+++ b/src/nasm/NasmPop.java
@@ -0,0 +1,20 @@
+package nasm;
+
+public class NasmPop extends NasmInst {
+    
+    public NasmPop(NasmOperand label, NasmOperand destination, String comment){
+	destDef = true;
+	this.label = label;
+	this.destination = destination;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "pop", this.destination, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmPseudoInst.java b/src/nasm/NasmPseudoInst.java
new file mode 100644
index 0000000..27e14c7
--- /dev/null
+++ b/src/nasm/NasmPseudoInst.java
@@ -0,0 +1,28 @@
+package nasm;
+
+public abstract class NasmPseudoInst{
+    public NasmLabel label = null;
+    public int nb = 1;
+    public int sizeInBytes;
+    String comment;
+    
+    void addLabel(String formatInst, NasmOperand label){
+	formatInst += label;
+    }
+    
+    public String formatInst(NasmOperand label, String opcode, int nb, String comment){
+	String s = "";
+	if(label != null)
+	    s = s + label + " :";
+	s = s + "\t" + opcode;
+	s = s + "\t" + nb;
+	if(comment != null)
+	    s = s + "\t;" + comment;
+	return s;
+    }
+
+    /*        public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+	}*/
+
+}
diff --git a/src/nasm/NasmPush.java b/src/nasm/NasmPush.java
new file mode 100644
index 0000000..a663634
--- /dev/null
+++ b/src/nasm/NasmPush.java
@@ -0,0 +1,20 @@
+package nasm;
+
+public class NasmPush extends NasmInst {
+    
+    public NasmPush(NasmOperand label, NasmOperand source, String comment){
+	//	srcUse = true;
+	this.label = label;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "push", this.source, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmRegister.java b/src/nasm/NasmRegister.java
new file mode 100644
index 0000000..9f00453
--- /dev/null
+++ b/src/nasm/NasmRegister.java
@@ -0,0 +1,57 @@
+package nasm;
+import java.util.ArrayList;
+
+public class NasmRegister extends NasmOperand implements NasmExp{
+    public int val;
+    public int color = Nasm.REG_UNK;
+
+    public NasmRegister(int val){
+	this.val = val;
+    }
+
+    public void colorRegister(int color){
+	this.color = color;
+    }
+
+    public String toString(){
+	if(this.color == Nasm.REG_ESP) return "esp";
+	if(this.color == Nasm.REG_EBP) return "ebp";
+	if(this.color == Nasm.REG_EAX) return "eax";
+	if(this.color == Nasm.REG_EBX) return "ebx";
+	if(this.color == Nasm.REG_ECX) return "ecx";
+	if(this.color == Nasm.REG_EDX) return "edx";
+	else
+	    return "@" + this.val;
+    }
+
+    public boolean isEbp(){
+	if(this.color == Nasm.REG_EBP) return true;
+	return false;
+    }
+    
+    public boolean isGeneralRegister(){
+	if(this.color == Nasm.REG_EAX) return true;
+	if(this.color == Nasm.REG_EBX) return true;
+	if(this.color == Nasm.REG_ECX) return true;
+	if(this.color == Nasm.REG_EDX) return true;
+	if(this.color == Nasm.REG_UNK) return true;
+	return false;
+    }
+    
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public ArrayList<NasmRegister> getRegisters()
+    {
+	ArrayList<NasmRegister> registerList = new ArrayList<NasmRegister>();
+	this.getRegisters(registerList);
+	return registerList;
+    }
+    public ArrayList<NasmRegister> getRegisters(ArrayList<NasmRegister> registerList)
+    {
+	registerList.add(this);
+	return registerList;
+    }
+
+}
diff --git a/src/nasm/NasmResb.java b/src/nasm/NasmResb.java
new file mode 100644
index 0000000..c58418c
--- /dev/null
+++ b/src/nasm/NasmResb.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmResb extends NasmPseudoInst {
+    
+    public NasmResb(NasmLabel label, int nb, String comment){
+	this.label = label;
+	this.nb = nb;
+	this.sizeInBytes = 1;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "resb", this.nb, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmResd.java b/src/nasm/NasmResd.java
new file mode 100644
index 0000000..5b4e73f
--- /dev/null
+++ b/src/nasm/NasmResd.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmResd extends NasmPseudoInst {
+    
+    public NasmResd(NasmLabel label, int nb, String comment){
+	this.label = label;
+	this.nb = nb;
+	this.sizeInBytes = 4;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "resd", this.nb, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmResq.java b/src/nasm/NasmResq.java
new file mode 100644
index 0000000..671bbfa
--- /dev/null
+++ b/src/nasm/NasmResq.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmResq extends NasmPseudoInst {
+    
+    public NasmResq(NasmLabel label, int nb, String comment){
+	this.label = label;
+	this.nb = nb;
+	this.sizeInBytes = 8;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "resq", this.nb, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmRest.java b/src/nasm/NasmRest.java
new file mode 100644
index 0000000..6b1c2c0
--- /dev/null
+++ b/src/nasm/NasmRest.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmRest extends NasmPseudoInst {
+    
+    public NasmRest(NasmLabel label, int nb, String comment){
+	this.label = label;
+	this.nb = nb;
+	this.sizeInBytes = 10;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "rest", this.nb, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmResw.java b/src/nasm/NasmResw.java
new file mode 100644
index 0000000..47bedc9
--- /dev/null
+++ b/src/nasm/NasmResw.java
@@ -0,0 +1,21 @@
+package nasm;
+
+public class NasmResw extends NasmPseudoInst {
+    
+    public NasmResw(NasmLabel label, int nb, String comment){
+	this.label = label;
+	this.nb = nb;
+	this.sizeInBytes = 2;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "resw", this.nb, this.comment);
+    }
+
+
+}
diff --git a/src/nasm/NasmRet.java b/src/nasm/NasmRet.java
new file mode 100644
index 0000000..0c95b98
--- /dev/null
+++ b/src/nasm/NasmRet.java
@@ -0,0 +1,18 @@
+package nasm;
+
+public class NasmRet extends NasmInst {
+    
+    public NasmRet(NasmOperand label, String comment){
+	this.label = label;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+	return super.formatInst(this.label, "ret", null, null, this.comment);
+    }
+
+}
diff --git a/src/nasm/NasmSize.java b/src/nasm/NasmSize.java
new file mode 100644
index 0000000..3812007
--- /dev/null
+++ b/src/nasm/NasmSize.java
@@ -0,0 +1,20 @@
+package nasm;
+
+public enum NasmSize {
+
+    BYTE(1, "byte"),
+    WORD(2, "word"),
+    DWORD(4, "dword"),
+    UNDEFINED(0, "");
+    private final String name;
+    private final int value;
+
+    NasmSize(int value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+
+    public String toString(){return name;}
+    public String getName(){return this.name;}
+    public int getValue(){return value;}
+}
\ No newline at end of file
diff --git a/src/nasm/NasmSub.java b/src/nasm/NasmSub.java
new file mode 100644
index 0000000..5162718
--- /dev/null
+++ b/src/nasm/NasmSub.java
@@ -0,0 +1,22 @@
+package nasm;
+
+public class NasmSub extends NasmInst {
+    
+    public NasmSub(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+        
+    public String toString(){
+	return super.formatInst(this.label, "sub", this.destination, this.source, this.comment);
+    }
+}
diff --git a/src/nasm/NasmVisitor.java b/src/nasm/NasmVisitor.java
new file mode 100644
index 0000000..091f20e
--- /dev/null
+++ b/src/nasm/NasmVisitor.java
@@ -0,0 +1,47 @@
+package nasm;
+
+public interface NasmVisitor <T> {
+    public T visit(NasmAdd inst);
+    public T visit(NasmCall inst);
+    public T visit(NasmDiv inst);
+    public T visit(NasmJe inst);
+    public T visit(NasmJle inst);
+    public T visit(NasmJne inst);
+    public T visit(NasmMul inst);
+    public T visit(NasmOr inst);
+    public T visit(NasmCmp inst);
+    public T visit(NasmInst inst);
+    public T visit(NasmJge inst);
+    public T visit(NasmJl inst);
+    public T visit(NasmNot inst);
+    public T visit(NasmPop inst);
+    public T visit(NasmRet inst);
+    public T visit(NasmXor inst);
+    public T visit(NasmAnd inst);
+    public T visit(NasmJg inst);
+    public T visit(NasmJmp inst);
+    public T visit(NasmMov inst);
+    public T visit(NasmPush inst);
+    public T visit(NasmSub inst);
+    public T visit(NasmEmpty inst);
+    public T visit(NasmInt inst);
+
+    public T visit(NasmAddress operand);
+    public T visit(NasmConstant operand);
+    public T visit(NasmLabel operand);
+    public T visit(NasmRegister operand);
+
+    public T visit(NasmResb pseudoInst);
+    public T visit(NasmResw pseudoInst);
+    public T visit(NasmResd pseudoInst);
+    public T visit(NasmResq pseudoInst);
+    public T visit(NasmRest pseudoInst);
+
+    public T visit(NasmExp exp);
+    public T visit(NasmExpPlus exp);
+    public T visit(NasmExpMinus exp);
+    public T visit(NasmExpTimes exp);
+
+}
+	
+
diff --git a/src/nasm/NasmXor.java b/src/nasm/NasmXor.java
new file mode 100644
index 0000000..28a0803
--- /dev/null
+++ b/src/nasm/NasmXor.java
@@ -0,0 +1,24 @@
+package nasm;
+
+public class NasmXor extends NasmInst {
+    
+    public NasmXor(NasmOperand label, NasmOperand destination, NasmOperand source, String comment){
+	destUse = true;
+	destDef = true;
+	srcUse = true;
+	this.label = label;
+	this.destination = destination;
+	this.source = source;
+	this.comment = comment;
+    }
+
+    public <T> T accept(NasmVisitor <T> visitor) {
+        return visitor.visit(this);
+    }
+    
+    public String toString(){
+	return super.formatInst(this.label, "xor", this.destination, this.source, this.comment);
+    }
+
+
+}
diff --git a/src/sa.cfg b/src/sa.cfg
new file mode 100644
index 0000000..60ff9b8
--- /dev/null
+++ b/src/sa.cfg
@@ -0,0 +1,127 @@
+Package saParser;
+
+Helpers
+
+lettre = [['a' .. 'z'] + ['A' .. 'Z']];
+chiffre = ['0' .. '9'];
+alpha = [lettre + ['_' + '$']];
+alphanum = [lettre + chiffre];
+
+Tokens
+
+espaces = (' ' | 13 | 10 | 9)+;
+commentaire= '#' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
+
+
+po             = '(';
+pf             = ')';
+saappel        = 'SaAppel';
+sadecfonc      = 'SaDecFonc';
+sadectab       = 'SaDecTab';
+sadecvar       = 'SaDecVar';
+sadecvarsimple = 'SaDecVarSimple';
+saexpadd       = 'SaExpAdd';
+saexpand       = 'SaExpAnd';
+saexpappel     = 'SaExpAppel';
+saexpdiv       = 'SaExpDiv';
+saexpequal     = 'SaExpEqual';
+saexpfaux      = 'SaExpFaux';
+saexpinf       = 'SaExpInf';
+saexpint = 'SaExpInt';
+saexplire = 'SaExpLire';
+saexpmult = 'SaExpMult';
+saexpnot = 'SaExpNot';
+saexpor = 'SaExpOr';
+saexpsub = 'SaExpSub';
+saexpvar = 'SaExpVar';
+saexpvrai = 'SaExpVrai';
+sainstaffect = 'SaInstAffect';
+sainstbloc = 'SaInstBloc';
+sainstecriture = 'SaInstEcriture';
+sainstretour = 'SaInstRetour';
+sainstsi = 'SaInstSi';
+sainsttantque = 'SaInstTantQue';
+saldecfonc = 'SaLDecFonc';
+saldecvar = 'SaLDecVar';
+salexp = 'SaLExp';
+salinst = 'SaLInst';
+saprog = 'SaProg';
+savarindicee = 'SaVarIndicee';
+savarsimple = 'SaVarSimple';
+faux = 'faux';
+vrai = 'vrai';
+lire = 'lire';
+null = 'null';
+entier = 'entier';
+bool = 'bool';
+nul = 'nul';
+integer  = chiffre+;
+id    = alpha alphanum*;
+
+Ignored Tokens
+
+espaces, commentaire;
+
+Productions
+
+prog =         po saprog ldecvar ldecfonc pf;
+
+
+exp = {add}       po saexpadd   [op1]:exp [op2]:exp pf
+    | {and}       po saexpand   [op1]:exp [op2]:exp pf
+    | {div}       po saexpdiv   [op1]:exp [op2]:exp pf
+    | {equal}     po saexpequal [op1]:exp [op2]:exp pf
+    | {inf}       po saexpinf   [op1]:exp [op2]:exp pf
+    | {mult}      po saexpmult  [op1]:exp [op2]:exp pf
+    | {or}        po saexpor    [op1]:exp [op2]:exp pf
+    | {sub}       po saexpsub   [op1]:exp [op2]:exp pf
+    | {not}       po saexpnot         exp pf
+    | {appel}     po saexpappel appel pf
+    | {var}       po saexpvar var pf
+    | {faux}      faux
+    | {vrai}      vrai
+    | {int}       integer
+    | {lire}      lire
+    ;
+
+inst = {affect}   po sainstaffect   var exp pf
+     | {bloc}     po sainstbloc     linst pf
+     | {ecriture} po sainstecriture exp pf
+     | {retour}   po sainstretour   exp pf
+     | {si}       po sainstsi       exp [alors]:inst [sinon]:inst pf
+     | {si2}      po sainstsi       exp [alors]:inst null pf
+     | {tantque}  po sainsttantque  exp inst pf
+     | {appel}    appel
+     ;
+
+ldecfonc = {rec} po saldecfonc decfonc ldecfonc pf
+         | {fin} null
+	 ;
+
+ldecvar = {rec} po saldecvar decvar ldecvar pf
+        | {fin} null
+	;
+	
+lexp = {rec} po salexp exp lexp pf
+     | {fin} null
+     ;
+     
+linst = {rec} po salinst inst linst pf
+      | {fin} null
+      ;
+
+decfonc =      po sadecfonc id type [param]:ldecvar [variables]:ldecvar inst pf;
+
+decvar =  {tab}    po sadectab id type integer pf
+       |  {simple} po sadecvarsimple id type pf
+       ;
+
+var = {indicee} po savarindicee id exp pf
+    | {simple} po savarsimple id pf;
+
+appel = po saappel id lexp pf;
+
+type = {entier} entier
+     | {bool} bool
+     | {null} nul
+     ;
\ No newline at end of file
diff --git a/src/sa/ErrorException.java b/src/sa/ErrorException.java
new file mode 100644
index 0000000..61963e6
--- /dev/null
+++ b/src/sa/ErrorException.java
@@ -0,0 +1,23 @@
+package sa;
+import util.Error;
+
+public class ErrorException extends Exception{
+    private Error error;
+    private String message;
+
+
+    public ErrorException(Error error, String message){
+	this.error = error;
+	this.message = message;
+    }
+
+    public String getMessage(){
+	return message;
+    }
+
+    public int getCode(){
+	return error.code();
+    }
+
+    
+}
diff --git a/src/sa/LoadSa.java b/src/sa/LoadSa.java
new file mode 100644
index 0000000..209de9c
--- /dev/null
+++ b/src/sa/LoadSa.java
@@ -0,0 +1,547 @@
+package sa;
+import saParser.analysis.DepthFirstAdapter;
+import saParser.lexer.Lexer;
+import saParser.lexer.LexerException;
+import saParser.node.*;
+import saParser.parser.Parser;
+import saParser.parser.ParserException;
+import util.Error;
+import util.Type;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PushbackReader;
+
+public class LoadSa extends DepthFirstAdapter {
+    private SaProg root;
+    private SaNode returnValue;
+    private Type returnType;
+
+    public LoadSa(String saFileName) {
+        PushbackReader fileReader = null;
+        Parser parser = null;
+        Start root = null;
+        try {
+            fileReader = new PushbackReader(new FileReader(saFileName));
+        } catch (IOException e) {
+            System.err.println("cannot open input file");
+            e.printStackTrace();
+        }
+        try {
+            parser = new Parser(new Lexer(fileReader));
+            root = parser.parse();
+        } catch (ParserException e) {
+            System.err.println("syntax error");
+            e.printStackTrace();
+            System.exit(Error.SYNT.code());
+        } catch (LexerException e) {
+            System.err.println("lexical error");
+            e.printStackTrace();
+            System.exit(Error.LEX.code());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        root.apply(this);
+    }
+
+    public void defaultIn(Node node)
+    {
+        //System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(Node node)
+    {
+        //System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+    public SaProg getRoot(){return root;}
+
+
+
+
+    
+// prog =         po saprog ldecvar ldecfonc pf
+    @Override
+    public void caseAProg(AProg node)
+    {
+        inAProg(node);
+	SaLDecVar ldecVar = null;
+	SaLDecFonc ldecFonc = null;
+        if(node.getLdecvar() != null)
+        {
+            node.getLdecvar().apply(this);
+	    ldecVar = (SaLDecVar) returnValue;
+        }
+        if(node.getLdecfonc() != null)
+        {
+            node.getLdecfonc().apply(this);
+	    ldecFonc  = (SaLDecFonc) returnValue;
+        }
+	root = new SaProg(ldecVar, ldecFonc);
+        outAProg(node);
+    }
+
+// exp = {add}       po saexpadd   [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAAddExp(AAddExp node)
+    {
+        inAAddExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpAdd(op1,op2);
+        outAAddExp(node);
+    }
+
+// exp = {and}       po saexpand   [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAAndExp(AAndExp node)
+    {
+        inAAndExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpAnd(op1,op2);
+        outAAndExp(node);
+    }
+
+// exp = {div}       po saexpdiv   [op1]:exp [op2]:exp pf
+    @Override
+    public void caseADivExp(ADivExp node)
+    {
+        inADivExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpDiv(op1,op2);
+        outADivExp(node);
+    }
+
+// exp = {equal}     po saexpequal [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAEqualExp(AEqualExp node)
+    {
+        inAEqualExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpEqual(op1,op2);
+        outAEqualExp(node);
+    }
+
+// exp = {inf}       po saexpinf   [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAInfExp(AInfExp node)
+    {
+        inAInfExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpInf(op1,op2);
+        outAInfExp(node);
+    }
+
+// exp = {mult}      po saexpmult  [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAMultExp(AMultExp node)
+    {
+        inAMultExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpMult(op1,op2);
+        outAMultExp(node);
+    }
+
+// exp = {or}        po saexpor    [op1]:exp [op2]:exp pf
+    @Override
+    public void caseAOrExp(AOrExp node)
+    {
+        inAOrExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpOr(op1,op2);
+    }
+
+// exp = {sub}       po saexpsub   [op1]:exp [op2]:exp pf
+    @Override
+    public void caseASubExp(ASubExp node)
+    {
+        inASubExp(node);
+	node.getOp1().apply(this);
+	SaExp op1 = (SaExp) returnValue;
+	node.getOp2().apply(this);
+	SaExp op2 = (SaExp) returnValue;
+	returnValue = new SaExpSub(op1,op2);
+        outASubExp(node);
+    }
+
+// exp = {not}       po saexpnot         exp pf
+    @Override
+    public void caseANotExp(ANotExp node)
+    {
+        inANotExp(node);
+	node.getExp().apply(this);
+	SaExp exp = (SaExp) returnValue;
+	returnValue = new SaExpNot(exp);
+        outANotExp(node);
+    }
+
+// exp = {appel}     po saexpappel appel pf
+    @Override
+    public void caseAAppelExp(AAppelExp node)
+    {
+        inAAppelExp(node);
+	node.getAppel().apply(this);
+	SaAppel appel = (SaAppel) returnValue;
+	returnValue = new SaExpAppel(appel);
+        outAAppelExp(node);
+    }
+
+// exp = {var}       po saexpvar var pf
+    @Override
+    public void caseAVarExp(AVarExp node)
+    {
+        inAVarExp(node);
+	node.getVar().apply(this);
+	SaVar var = (SaVar) returnValue;
+	returnValue = new SaExpVar(var);
+        outAVarExp(node);
+    }
+
+// exp = {faux}      faux
+    @Override
+    public void caseAFauxExp(AFauxExp node)
+    {
+        inAFauxExp(node);
+	returnValue = new SaExpFaux();
+        outAFauxExp(node);
+    }
+
+// exp = {vrai}      vrai
+    @Override
+    public void caseAVraiExp(AVraiExp node)
+    {
+        inAVraiExp(node);
+	returnValue = new SaExpVrai();
+        outAVraiExp(node);
+    }
+
+// exp = {int}       integer
+    @Override
+    public void caseAIntExp(AIntExp node)
+    {
+        inAIntExp(node);
+	int value = Integer.parseInt(node.getInteger().getText());
+	returnValue = new SaExpInt(value);
+        outAIntExp(node);
+    }
+
+// exp = {lire}      lire
+    @Override
+    public void caseALireExp(ALireExp node)
+    {
+        inALireExp(node);
+	returnValue = new SaExpLire();
+        outALireExp(node);
+    }
+
+// inst = {affect}   po sainstaffect   var exp pf
+    @Override
+    public void caseAAffectInst(AAffectInst node)
+    {
+        inAAffectInst(node);
+	node.getVar().apply(this);
+	SaVar var = (SaVar) returnValue;
+	node.getExp().apply(this);
+	SaExp exp = (SaExp) returnValue;
+	returnValue = new SaInstAffect(var, exp);
+        outAAffectInst(node);
+    }
+
+// inst = {bloc}     po sainstbloc     linst pf
+    @Override
+    public void caseABlocInst(ABlocInst node)
+    {
+        inABlocInst(node);
+	node.getLinst().apply(this);
+	SaLInst linst = (SaLInst) returnValue;
+	returnValue = new SaInstBloc(linst);
+        outABlocInst(node);
+    }
+
+// inst = {ecriture} po sainstecriture exp pf
+    @Override
+    public void caseAEcritureInst(AEcritureInst node)
+    {
+        inAEcritureInst(node);
+	node.getExp().apply(this);
+	SaExp exp = (SaExp) returnValue;
+	returnValue = new SaInstEcriture(exp);
+        outAEcritureInst(node);
+    }
+
+// inst = {retour}   po sainstretour   exp pf
+    @Override
+    public void caseARetourInst(ARetourInst node)
+    {
+        inARetourInst(node);
+	node.getExp().apply(this);
+	SaExp exp = (SaExp) returnValue;
+	returnValue = new SaInstRetour(exp);
+        outARetourInst(node);
+    }
+
+// inst = {si}       po sainstsi       exp [alors]:inst [sinon]:inst pf
+    @Override
+    public void caseASiInst(ASiInst node)
+    {
+        inASiInst(node);
+	node.getExp().apply(this);
+	SaExp si = (SaExp) returnValue;
+	node.getAlors().apply(this);
+	SaInst alors = (SaInst) returnValue;
+	SaInst sinon = null;
+        if(node.getSinon() != null)
+        {
+            node.getSinon().apply(this);
+	    sinon = (SaInst) returnValue;
+        }
+	returnValue = new SaInstSi(si, alors, sinon);
+        outASiInst(node);
+    }
+
+    // inst = {si2}      po sainstsi       exp [alors]:inst null pf
+
+    @Override
+    public void caseASi2Inst(ASi2Inst node)
+    {
+        inASi2Inst(node);
+        node.getExp().apply(this);
+        SaExp si = (SaExp) returnValue;
+        node.getAlors().apply(this);
+        SaInst alors = (SaInst) returnValue;
+        returnValue = new SaInstSi(si, alors, null);
+        outASi2Inst(node);
+    }
+
+
+    // inst = {tantque}  po sainsttantque  exp inst pf
+   @Override
+    public void caseATantqueInst(ATantqueInst node)
+    {
+        inATantqueInst(node);
+	node.getExp().apply(this);
+	SaExp test = (SaExp) returnValue;
+	node.getInst().apply(this);
+	SaInst bloc = (SaInst) returnValue;
+	returnValue = new SaInstTantQue(test, bloc);
+        outATantqueInst(node);
+    }
+
+// ldecfonc = {rec} po saldecfonc decfonc ldecfonc pf
+    @Override
+    public void caseARecLdecfonc(ARecLdecfonc node)
+    {
+        inARecLdecfonc(node);
+	node.getDecfonc().apply(this);
+	SaDecFonc dec = (SaDecFonc) returnValue;
+	node.getLdecfonc().apply(this);
+	SaLDecFonc ldec = (SaLDecFonc) returnValue; 
+        returnValue = new SaLDecFonc(dec, ldec);
+        outARecLdecfonc(node);
+    }
+
+// ldecfonc = {fin} null
+    @Override
+    public void caseAFinLdecfonc(AFinLdecfonc node)
+    {
+        inAFinLdecfonc(node);
+	returnValue = null;
+        outAFinLdecfonc(node);
+    }
+
+// ldecvar = {rec} po saldecvar decvar ldecvar pf
+    @Override
+    public void caseARecLdecvar(ARecLdecvar node)
+    {
+        inARecLdecvar(node);
+	node.getDecvar().apply(this);
+	SaDecVar dec = (SaDecVar) returnValue;
+	node.getLdecvar().apply(this);
+	SaLDecVar ldec = (SaLDecVar) returnValue;
+	returnValue = new SaLDecVar(dec, ldec);
+        outARecLdecvar(node);
+    }
+
+// ldecvar = {fin} null
+    @Override
+    public void caseAFinLdecvar(AFinLdecvar node)
+    {
+        inAFinLdecvar(node);
+	returnValue = null;
+        outAFinLdecvar(node);
+    }
+
+// lexp = {rec} po salexp exp lexp pf
+    @Override
+    public void caseARecLexp(ARecLexp node)
+    {
+        inARecLexp(node);
+	node.getExp().apply(this);
+	SaExp exp = (SaExp) returnValue;
+	node.getLexp().apply(this);
+	SaLExp lexp = (SaLExp) returnValue;
+	returnValue = new SaLExp(exp, lexp);
+        outARecLexp(node);
+    }
+
+// lexp = {fin} null
+    @Override
+    public void caseAFinLexp(AFinLexp node)
+    {
+        inAFinLexp(node);
+	returnValue = null;
+        outAFinLexp(node);
+    }
+
+// linst = {rec} po salinst inst linst pf
+    @Override
+    public void caseARecLinst(ARecLinst node)
+    {
+        inARecLinst(node);
+	node.getInst().apply(this);
+	SaInst inst = (SaInst) returnValue;
+	node.getLinst().apply(this);
+	SaLInst linst = (SaLInst) returnValue;
+	returnValue = new SaLInst(inst, linst);
+        outARecLinst(node);
+    }
+
+// linst = {fin} null
+    @Override
+    public void caseAFinLinst(AFinLinst node)
+    {
+        inAFinLinst(node);
+	returnValue = null;
+        outAFinLinst(node);
+    }
+
+// decfonc =      po sadecfonc id [param]:ldecvar [variables]:ldecvar inst type pf
+    @Override
+    public void caseADecfonc(ADecfonc node)
+    {
+        inADecfonc(node);
+	String foncName = node.getId().getText();
+	node.getParam().apply(this);
+	SaLDecVar params = (SaLDecVar) returnValue;
+	node.getVariables().apply(this);
+	SaLDecVar variables = (SaLDecVar) returnValue;
+	node.getInst().apply(this);
+	SaInst corps = (SaInst) returnValue;
+	node.getType().apply(this);
+	Type type = returnType;
+	returnValue = new SaDecFonc(foncName, type, params, variables, corps);
+        outADecfonc(node);
+    }
+
+// decvar =  {tab}    po sadectab id integer type pf
+    @Override
+    public void caseATabDecvar(ATabDecvar node)
+    {
+        inATabDecvar(node);
+	String nom = node.getId().getText();
+	int taille = Integer.parseInt(node.getInteger().getText());
+	node.getType().apply(this);
+	Type type = returnType;
+	returnValue = new SaDecTab(nom, type, taille);
+        outATabDecvar(node);
+    }
+
+// decvar =  {simple} po sadecvarsimple id type pf
+    @Override
+    public void caseASimpleDecvar(ASimpleDecvar node)
+    {
+        inASimpleDecvar(node);
+	String nom = node.getId().getText();
+	node.getType().apply(this);
+	Type type = returnType;
+	returnValue = new SaDecVarSimple(nom, type);
+        outASimpleDecvar(node);
+    }
+
+    // var = {indicee} po savarindicee id exp pf
+    @Override
+    public void caseAIndiceeVar(AIndiceeVar node)
+    {
+        inAIndiceeVar(node);
+	String nom = node.getId().getText();
+	node.getExp().apply(this);
+	SaExp indice = (SaExp) returnValue;
+	returnValue = new SaVarIndicee(nom, indice);
+        outAIndiceeVar(node);
+    }
+
+    // var = {simple} po savarsimple id pf
+    @Override
+    public void caseASimpleVar(ASimpleVar node)
+    {
+        inASimpleVar(node);
+	String nom = node.getId().getText();
+	returnValue = new SaVarSimple(nom);
+        outASimpleVar(node);
+    }
+
+// appel = po saappel id lexp pf
+    @Override
+    public void caseAAppel(AAppel node)
+    {
+        inAAppel(node);
+	String nom = node.getId().getText();
+	node.getLexp().apply(this);
+	SaLExp arguments = (SaLExp) returnValue;
+	returnValue = new SaAppel(nom, arguments);
+        outAAppel(node);
+    }
+
+// type = {entier} entier
+    @Override
+    public void caseAEntierType(AEntierType node)
+    {
+        inAEntierType(node);
+	returnType = Type.ENTIER;
+        outAEntierType(node);
+    }
+
+// type = {bool} bool
+    @Override
+    public void caseABoolType(ABoolType node)
+    {
+        inABoolType(node);
+	returnType = Type.BOOL;
+        outABoolType(node);
+    }
+
+// type = {null} nul
+    @Override
+    public void caseANullType(ANullType node)
+    {
+        inANullType(node);
+	returnType = Type.NUL;
+        outANullType(node);
+    }
+}
+
+
+
+
+
+
diff --git a/src/sa/SaAppel.java b/src/sa/SaAppel.java
new file mode 100644
index 0000000..84a3f77
--- /dev/null
+++ b/src/sa/SaAppel.java
@@ -0,0 +1,33 @@
+package sa;
+import ts.*;
+import util.Type;
+
+
+public class SaAppel implements SaExp, SaInst{
+    private String nom;
+    private SaLExp arguments;
+    public TsItemFct tsItem;
+
+    public SaAppel(String nom, SaLExp arguments){
+	this.nom = nom;
+	this.arguments = arguments;
+	this.tsItem = null;
+    }
+
+    public String getNom(){return this.nom;}
+    public SaLExp getArguments(){return this.arguments;}
+
+
+    public Type getType(){
+	return tsItem.typeRetour;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName()+ " " + nom + " " + arguments + ")";
+    }
+}
diff --git a/src/sa/SaCheckLinkage.java b/src/sa/SaCheckLinkage.java
new file mode 100644
index 0000000..f25f017
--- /dev/null
+++ b/src/sa/SaCheckLinkage.java
@@ -0,0 +1,42 @@
+package sa;
+
+import util.Error;
+
+public class SaCheckLinkage extends SaDepthFirstVisitor <Void>{
+
+    public Void visit(SaDecFonc node) throws Exception {
+        defaultIn(node);
+        if (node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaDecFonc");
+        if(node.getParametres() != null) node.getParametres().accept(this);
+        if(node.getVariable() != null) node.getVariable().accept(this);
+        if(node.getCorps() != null) node.getCorps().accept(this);
+        defaultOut(node);
+        return null;
+
+    }
+
+    public Void visit(SaDecVarSimple node) throws ErrorException {
+        if (node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaDecVarSimple");
+        return null;
+    }
+
+    public Void visit(SaDecTab node) throws ErrorException {
+        if(node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaDecTab");
+        return null;
+    }
+
+    public Void visit(SaAppel node) throws ErrorException{
+        if(node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaAppel");
+        return null;
+    }
+
+    public Void visit(SaVarSimple node) throws ErrorException{
+        if(node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaVarSimple");
+        return null;
+    }
+    public Void visit(SaVarIndicee node) throws ErrorException{
+        if(node.tsItem == null) throw new ErrorException(Error.TS, "linkage error in SaVarIndicee");
+        return null;
+    }
+}
+
diff --git a/src/sa/SaDec.java b/src/sa/SaDec.java
new file mode 100644
index 0000000..275b4b6
--- /dev/null
+++ b/src/sa/SaDec.java
@@ -0,0 +1,5 @@
+package sa;
+
+public interface SaDec extends SaNode {
+    public String getNom();
+}
diff --git a/src/sa/SaDecFonc.java b/src/sa/SaDecFonc.java
new file mode 100644
index 0000000..7f4b817
--- /dev/null
+++ b/src/sa/SaDecFonc.java
@@ -0,0 +1,34 @@
+package sa;
+import ts.*;
+import util.Type;
+
+public class SaDecFonc implements SaDec{
+    private String    nom;
+    private SaLDecVar parametres;
+    private SaLDecVar variables;
+    private SaInst    corps;
+    private Type      typeRetour;
+    public  TsItemFct tsItem;
+
+    public SaDecFonc(String nom, Type typeRetour, SaLDecVar parametres, SaLDecVar variables, SaInst corps){
+	this.nom = nom;
+	this.typeRetour = typeRetour;
+	this.parametres = parametres;
+	this.variables = variables;
+	this.corps = corps;
+	this.tsItem = null;
+    }
+
+    public String    getNom(){return this.nom;}
+    public Type      getTypeRetour(){return this.typeRetour;}
+    public SaLDecVar getParametres(){return this.parametres;}
+    public SaLDecVar getVariable(){return this.variables;}
+    public SaInst    getCorps(){return this.corps;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+    public String toString(){
+        return "(" + this.getClass().getSimpleName() + " " + nom + " " + typeRetour + " " + parametres + " " + variables + " " + corps + ")";
+    }
+}
diff --git a/src/sa/SaDecTab.java b/src/sa/SaDecTab.java
new file mode 100644
index 0000000..8eaf209
--- /dev/null
+++ b/src/sa/SaDecTab.java
@@ -0,0 +1,31 @@
+package sa;
+import ts.*;
+import util.Type;
+
+public class SaDecTab implements SaDecVar{
+    private String       nom;
+    private int          taille;
+    private Type         type;
+    public  TsItemVar    tsItem;
+
+    public SaDecTab(String nom, Type type, int taille){
+	this.nom = nom;
+	this.type = type;
+	this.taille = taille;
+	this.tsItem = null;
+    }
+
+    public String       getNom(){return this.nom;}
+    public int          getTaille(){return this.taille;}
+    public Type         getType(){return this.type;}
+    public TsItemVar    getTsItem(){return this.tsItem;}
+    public void         setTsItem(TsItemVar tsItem){this.tsItem = tsItem;}
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + nom + " " + type + " " + taille + ")";
+    }
+}
diff --git a/src/sa/SaDecVar.java b/src/sa/SaDecVar.java
new file mode 100644
index 0000000..9cc6f02
--- /dev/null
+++ b/src/sa/SaDecVar.java
@@ -0,0 +1,11 @@
+package sa;
+import util.Type;
+import ts.*;
+
+public interface SaDecVar extends SaNode {
+    public String    getNom();
+    public Type      getType();
+    public TsItemVar getTsItem();
+    public void      setTsItem(TsItemVar tsItem);
+
+}
diff --git a/src/sa/SaDecVarSimple.java b/src/sa/SaDecVarSimple.java
new file mode 100644
index 0000000..557cf28
--- /dev/null
+++ b/src/sa/SaDecVarSimple.java
@@ -0,0 +1,29 @@
+package sa;
+import ts.*;
+import util.Type;
+
+public class SaDecVarSimple implements SaDecVar{
+    private String          nom;
+    private Type            type;
+    public  TsItemVar       tsItem;
+
+    public SaDecVarSimple(String nom, Type type){
+	this.nom = nom;
+	this.type = type;
+	this.tsItem = null;
+    }
+
+    public String          getNom(){return this.nom;}
+    public Type            getType(){return this.type;}
+    public TsItemVar       getTsItem(){return this.tsItem;}
+    public void            setTsItem(TsItemVar tsItem){this.tsItem = tsItem;}
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + nom + " " + type + ")";
+    }
+}
diff --git a/src/sa/SaDepthFirstVisitor.java b/src/sa/SaDepthFirstVisitor.java
new file mode 100644
index 0000000..ded93ad
--- /dev/null
+++ b/src/sa/SaDepthFirstVisitor.java
@@ -0,0 +1,386 @@
+package sa;
+
+
+// P -> LDEC LDEC 
+
+// DEC -> var id taille 
+// DEC -> fct id LDEC LDEC LINST 
+// DEC -> var id 
+
+// LDEC -> DEC LDEC 
+// LDEC -> null 
+
+// VAR  ->simple id 
+// VAR  ->indicee id EXP
+
+// LINST -> INST LINST 
+// LINST -> null 
+
+// INST -> aff VAR EXP 
+// INST -> si EXP LINST LINST 
+// INST -> tq EXP LINST 
+// INST -> app APP 
+// INST -> ret EXP 
+// INST -> ecr EXP 
+
+// APP -> id LEXP 
+
+// LEXP -> EXP LEXP 
+// LEXP -> null 
+
+// EXP -> op2 EXP EXP 
+// EXP -> op1 EXP 
+// EXP -> VAR 
+// EXP -> entier 
+// EXP -> APP 
+// EXP -> lire
+
+
+//**********
+
+// VAR  ->simple id 
+// VAR  ->indicee id EXP
+
+// LINST -> INST LINST 
+// LINST -> null 
+
+// INST -> aff VAR EXP 
+// INST -> si EXP LINST LINST 
+// INST -> tq EXP LINST 
+// INST -> app APP 
+// INST -> ecr EXP 
+
+// APP -> id LEXP 
+
+// LEXP -> EXP LEXP 
+// LEXP -> null 
+
+
+// EXP -> op1 EXP 
+// EXP -> VAR 
+
+// EXP -> lire
+
+
+public class SaDepthFirstVisitor <T> implements SaVisitor <T>{
+    
+    //   private NouvelleClasse x;
+    public void defaultIn(SaNode node)
+    {
+    }
+
+    public void defaultOut(SaNode node)
+    {
+    }
+
+    // P -> LDEC LDEC 
+    public T visit(SaProg node) throws Exception
+    {
+	defaultIn(node);
+	if(node.getVariables() != null)
+	    node.getVariables().accept(this);
+	if(node.getFonctions() != null)
+	    node.getFonctions().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    // DEC -> var id taille 
+    public T visit(SaDecTab node) throws Exception{
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaExp node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    // EXP -> entier
+    public T visit(SaExpInt node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    // EXP -> vrai
+    public T visit(SaExpVrai node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    // EXP -> faux
+    public T visit(SaExpFaux node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaExpVar node) throws Exception
+    {
+	defaultIn(node);
+	node.getVar().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaInstEcriture node) throws Exception
+    {
+	defaultIn(node);
+	node.getArg().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaInstTantQue node) throws Exception
+    {
+	defaultIn(node);
+	node.getTest().accept(this);
+	if (node.getFaire() != null)
+  	node.getFaire().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    public T visit(SaLInst node) throws Exception
+    {
+	defaultIn(node);
+	if(node != null){
+	    if(node.getTete() != null)node.getTete().accept(this);
+	    if(node.getQueue() != null) node.getQueue().accept(this);
+	}
+	defaultOut(node);
+	return null;
+    }
+
+    // DEC -> fct id LDEC LDEC LINST 
+    public T visit(SaDecFonc node) throws Exception
+    {
+	defaultIn(node);
+	if(node.getParametres() != null) node.getParametres().accept(this);
+	if(node.getVariable() != null) node.getVariable().accept(this);
+	if(node.getCorps() != null) node.getCorps().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    // DEC -> var id 
+    public T visit(SaDecVar node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaInstAffect node) throws Exception
+    {
+	defaultIn(node);
+	node.getLhs().accept(this);
+	node.getRhs().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    // LDEC -> DEC LDEC 
+    // LDEC -> null 
+    /*    public T visit(SaLDec node) throws Exception
+    {
+	defaultIn(node);
+	node.getTete().accept(this);
+	if(node.getQueue() != null) node.getQueue().accept(this);
+	defaultOut(node);
+	return null;
+	}*/
+    
+    public T visit(SaLDecVar node) throws Exception
+    {
+	defaultIn(node);
+	node.getTete().accept(this);
+	if(node.getQueue() != null) node.getQueue().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaLDecFonc node) throws Exception
+    {
+	defaultIn(node);
+	node.getTete().accept(this);
+	if(node.getQueue() != null) node.getQueue().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaVarSimple node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaAppel node) throws Exception
+    {
+	defaultIn(node);
+	if(node.getArguments() != null) node.getArguments().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaExpAppel node) throws Exception
+    {
+	defaultIn(node);
+	node.getVal().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> add EXP EXP
+    public T visit(SaExpAdd node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> sub EXP EXP
+    public T visit(SaExpSub node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> mult EXP EXP
+    public T visit(SaExpMult node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> div EXP EXP
+    public T visit(SaExpDiv node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    // EXP -> inf EXP EXP
+    public T visit(SaExpInf node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> eq EXP EXP
+    public T visit(SaExpEqual node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> and EXP EXP
+    public T visit(SaExpAnd node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+
+    // EXP -> or EXP EXP
+    public T visit(SaExpOr node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	node.getOp2().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    // EXP -> not EXP
+    public T visit(SaExpNot node) throws Exception
+    {
+	defaultIn(node);
+	node.getOp1().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+
+    public T visit(SaExpLire node) throws Exception
+    {
+	defaultIn(node);
+	defaultOut(node);
+	return null;
+    }
+
+    public T visit(SaInstBloc node) throws Exception
+    {
+	defaultIn(node);
+	node.getVal().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+    public T visit(SaInstSi node) throws Exception
+    {
+	defaultIn(node);
+	node.getTest().accept(this);
+	if (node.getAlors() != null)
+  	node.getAlors().accept(this);
+	if(node.getSinon() != null) node.getSinon().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+// INST -> ret EXP 
+    public T visit(SaInstRetour node) throws Exception
+    {
+	defaultIn(node);
+	node.getVal().accept(this);
+	defaultOut(node);
+	return null;
+    }
+
+    
+    public T visit(SaLExp node) throws Exception
+    {
+	defaultIn(node);
+	node.getTete().accept(this);
+	if(node.getQueue() != null)
+	    node.getQueue().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    public T visit(SaVarIndicee node) throws Exception
+    {
+	defaultIn(node);
+	node.getIndice().accept(this);
+	defaultOut(node);
+	return null;
+    }
+    
+}
diff --git a/src/sa/SaEnvironment.java b/src/sa/SaEnvironment.java
new file mode 100644
index 0000000..1c85759
--- /dev/null
+++ b/src/sa/SaEnvironment.java
@@ -0,0 +1,33 @@
+package sa;
+import java.util.*;
+import ts.*;
+import util.Memory;
+
+public class SaEnvironment {
+    public Memory vars;
+    public Memory args;
+    public TypeVal returnValue;
+
+    public SaEnvironment (TsItemFct fct)
+    {
+	SaLExp lArgs = null;
+	Ts localTable = fct.getTable();
+	int i = 0;
+
+	args = new Memory(localTable.getAdrArgCourante(), 0);
+	vars = new Memory(localTable.getAdrVarCourante(), 0);
+
+	//	args = new Memory(200, 0);
+	//	vars = new Memory(200, 0);
+
+	returnValue = null;
+	//	System.out.println("allocation d'un nouvel environnement, fonction " + fct.getIdentif());
+	//	System.out.println("dim var = " + localTable.getAdrVarCourante());
+	//	System.out.println("dim arg = " + localTable.getAdrArgCourante());
+	
+    }
+
+
+    public TypeVal getReturnValue(){return returnValue;}
+    public void setReturnValue(TypeVal typeVal){returnValue = typeVal;}
+}
diff --git a/src/sa/SaEval.java b/src/sa/SaEval.java
new file mode 100644
index 0000000..b66416e
--- /dev/null
+++ b/src/sa/SaEval.java
@@ -0,0 +1,465 @@
+package sa;
+import java.util.*;
+import java.io.*;
+import ts.*;
+import util.Memory;
+import util.Type;
+
+
+public class SaEval extends SaDepthFirstVisitor <TypeVal> {
+    private Ts tableGlobale;
+    private SaEnvironment curEnv;
+    private Memory varGlob;
+    private ArrayList<String> programOutput = new ArrayList<String>();
+    private boolean stop;
+
+	public SaEval(SaNode root, Ts tableGlobale){
+		this.tableGlobale = tableGlobale;
+		curEnv = null;
+		varGlob = new Memory(tableGlobale.getAdrVarCourante(), 0);
+		stop = false;
+		SaAppel appelMain = new SaAppel("main", null);
+		appelMain.tsItem = tableGlobale.getFct("main");
+
+		try{
+			appelMain.accept(this);
+		} catch(Exception e){}
+	}
+
+	public TypeVal getVar(SaVarSimple saVar){
+		TsItemVarSimple tsItem = saVar.getTsItem();
+		return getVar(tsItem);
+    }
+    
+    public TypeVal getVar(TsItemVarSimple tsItem){
+		Memory container = null;
+		if(tsItem.portee == this.tableGlobale) // variable globale
+			container = varGlob;
+		else
+			container = (tsItem.isParam)? curEnv.args : curEnv.vars;
+		if(tsItem.type == Type.ENTIER)
+			return new TypeVal(container.readInt(tsItem.adresse));
+		//	    if(tsItem.type == Type.BOOL)
+		return new TypeVal(container.readBoolean(tsItem.adresse));
+    }
+
+    public void setVar(SaVarSimple saVar, TypeVal typeVal){
+		TsItemVarSimple tsItem = saVar.getTsItem();
+		setVar(tsItem, typeVal);
+    }
+
+
+	public void setVar(TsItemVarSimple tsItem, TypeVal typeVal){
+		Memory container = null;
+		// trois cas possibles : une variable locale, une variable globale ou un argument
+		if(tsItem.portee == this.tableGlobale) // variable globale
+			container = varGlob;
+		else if (tsItem.isParam)
+			container = curEnv.args;
+		else
+			container = curEnv.vars;
+
+		if(tsItem.type == Type.ENTIER)
+			container.writeInt(tsItem.adresse, typeVal.valInt);
+		if(tsItem.type == Type.BOOL)
+			container.writeBoolean(tsItem.adresse, typeVal.valBool);
+    }
+    
+    private TypeVal getVarGlobIndicee(SaVarIndicee saVarIndicee, TypeVal indice){
+		TsItemVar tsItem = saVarIndicee.getTsItem();
+		if(tsItem.type == Type.ENTIER)
+			return new TypeVal(varGlob.readInt(tsItem.adresse + tsItem.type.taille() * indice.valInt));
+		//	if(tsItem.type == Type.BOOL)
+		return new TypeVal(varGlob.readBoolean(tsItem.adresse + tsItem.type.taille() * indice.valInt));
+    }
+
+	private void setVarGlobIndicee(SaVarIndicee saVarIndicee, TypeVal indice, TypeVal typeVal){
+		TsItemVar tsItem = saVarIndicee.getTsItem();
+		if(tsItem.type == Type.ENTIER)
+			varGlob.writeInt(tsItem.adresse + tsItem.type.taille() * indice.valInt, typeVal.valInt);
+		if(tsItem.type == Type.BOOL)
+			varGlob.writeBoolean(tsItem.adresse + tsItem.type.taille() * indice.valInt , typeVal.valBool);
+    }
+
+
+	public void affiche(String baseFileName){
+		String fileName;
+		PrintStream out = System.out;
+
+		if (baseFileName != null){
+			try {
+				baseFileName = baseFileName;
+				fileName = baseFileName + ".saout";
+				out = new PrintStream(fileName);
+			} catch (IOException e) {
+				System.err.println("Error: " + e.getMessage());
+			}
+		}
+		for (String line : programOutput)
+			out.println(line);
+    }
+
+
+    
+    public void defaultIn(SaNode node)
+    {
+    }
+
+    public void defaultOut(SaNode node)
+    {
+    }
+
+    // P -> LDEC LDEC 
+    public TypeVal visit(SaProg node) throws Exception
+    {
+		defaultIn(node);
+		System.out.println("dans prog");
+		if(node.getVariables() != null)
+			node.getVariables().accept(this);
+		if(node.getFonctions() != null)
+			node.getFonctions().accept(this);
+		defaultOut(node);
+		return null;
+    }
+    
+    // DEC -> var id taille 
+    public TypeVal visit(SaDecTab node) throws Exception{
+		defaultIn(node);
+		defaultOut(node);
+		return null;
+    }
+    
+    public TypeVal visit(SaExp node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return null;
+    }
+    
+    // EXP -> entier
+    public TypeVal visit(SaExpInt node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return new TypeVal(node.getVal());
+    }
+
+
+    // EXP -> vrai
+    public TypeVal visit(SaExpVrai node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return new TypeVal(true);
+    }
+    
+    // EXP -> faux
+    public TypeVal visit(SaExpFaux node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return new TypeVal(false);
+    }
+        
+    public TypeVal visit(SaExpVar node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal typeVal = node.getVar().accept(this);
+		defaultOut(node);
+		return typeVal;
+    }
+    
+    public TypeVal visit(SaInstEcriture node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal arg = node.getArg().accept(this);
+		if(arg.type == Type.ENTIER)
+			programOutput.add(String.valueOf(arg.valInt));
+		else if(arg.type == Type.BOOL){
+			if(arg.valBool == true)
+				programOutput.add(String.valueOf(1));
+			else
+				programOutput.add(String.valueOf(0));
+		}
+		defaultOut(node);
+		return null;
+    }
+    
+    public TypeVal visit(SaInstTantQue node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal test = node.getTest().accept(this);
+		while (test.valBool == true){
+			if (node.getFaire() != null)
+				node.getFaire().accept(this);
+			else{
+				System.out.println("Infinite loop detected, breaking out");
+				break;
+			}
+			test = node.getTest().accept(this);
+		}
+		defaultOut(node);
+		return null;
+    }
+    
+    public TypeVal visit(SaLInst node) throws Exception
+    {
+		defaultIn(node);
+		stop = false;
+		TypeVal valRet = node.getTete().accept(this);
+		if(!stop && node.getQueue() != null) node.getQueue().accept(this);
+		defaultOut(node);
+		return null;
+    }
+
+    // DEC -> fct id LDEC LDEC LINST 
+    public TypeVal visit(SaDecFonc node) throws Exception
+    {
+		defaultIn(node);
+		if(node.getParametres() != null) node.getParametres().accept(this);
+		if(node.getVariable() != null) node.getVariable().accept(this);
+		node.getCorps().accept(this);
+		defaultOut(node);
+		return null;
+    }
+    
+    // DEC -> var id 
+    public TypeVal visit(SaDecVar node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return null;
+    }
+    
+    public TypeVal visit(SaInstAffect node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal typeVal = node.getRhs().accept(this);
+		if(node.getLhs() instanceof SaVarIndicee){ // c'est une case de tableau, donc forcément globale
+			SaVarIndicee lhsIndicee = (SaVarIndicee) node.getLhs();
+			TypeVal indice = lhsIndicee.getIndice().accept(this);
+			setVarGlobIndicee(lhsIndicee, indice, typeVal);
+		} else{
+			setVar((SaVarSimple) node.getLhs(), typeVal);
+		}
+
+		defaultOut(node);
+		return null;
+    }
+    
+    // LDEC -> DEC LDEC 
+    // LDEC -> null 
+    /*    public TypeVal visit(SaLDec node) throws Exception
+    {
+	defaultIn(node);
+	node.getTete().accept(this);
+	if(node.getQueue() != null) node.getQueue().accept(this);
+	defaultOut(node);
+	return null;
+	}*/
+    
+    public TypeVal visit(SaVarSimple node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal typeVal = getVar(node);
+		defaultOut(node);
+		return typeVal;
+    }
+    
+    public TypeVal visit(SaAppel node) throws Exception
+    {
+		defaultIn(node);
+		TsItemFct fct = node.tsItem;
+		SaLExp lArgs = null;
+		SaLDecVar lParam = null;
+		Ts localTable = fct.getTable();
+		// on construit la liste des arguments d'appel de la fonction
+		ArrayList<TypeVal> listeArguments = new ArrayList<TypeVal>();
+		for(lArgs = node.getArguments(); lArgs != null; lArgs = lArgs.getQueue()){
+			listeArguments.add(lArgs.getTete().accept(this));
+		}
+
+		//on sauvegarde de l'environnement courant pour le restaurer après l'appel
+		SaEnvironment oldEnv = curEnv;
+		// on crée un nouvel environnement pour la fonction appelée
+		// le nouvel environnement est l'environnement courant
+		curEnv = new SaEnvironment(fct);
+
+		// on stocke les valeurs des arguments dans l'environnement
+		int n = 0;
+		for(lParam = fct.saDecFonc.getParametres(); lParam != null; lParam = lParam.getQueue()){
+			setVar((TsItemVarSimple)((SaDecVar)lParam.getTete()).getTsItem(), listeArguments.get(n));
+			n++;
+		}
+		// on exécute le corps de la fonction
+		if(fct.saDecFonc.getCorps() != null)
+			fct.saDecFonc.getCorps().accept(this);
+
+		// on récupère la valeur de retour
+		TypeVal returnValue = curEnv.getReturnValue();
+
+		//restauration de l'environnement d'avant appel
+		curEnv = oldEnv;
+		defaultOut(node);
+		return returnValue;
+    }
+    
+    public TypeVal visit(SaExpAppel node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal typeVal = node.getVal().accept(this);
+		defaultOut(node);
+		return typeVal;
+    }
+
+    // EXP -> add EXP EXP
+    public TypeVal visit(SaExpAdd node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal(op1.valInt + op2.valInt);
+    }
+
+    // EXP -> sub EXP EXP
+    public TypeVal visit(SaExpSub node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal(op1.valInt - op2.valInt);
+    }
+
+    // EXP -> mult EXP EXP
+    public TypeVal visit(SaExpMult node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal(op1.valInt * op2.valInt);
+    }
+
+    // EXP -> div EXP EXP
+    public TypeVal visit(SaExpDiv node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal((int) op1.valInt / op2.valInt);
+    }
+    
+    // EXP -> inf EXP EXP
+    public TypeVal visit(SaExpInf node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal((op1.valInt < op2.valInt)? true : false);
+    }
+
+    // EXP -> eq EXP EXP
+    public TypeVal visit(SaExpEqual node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		if(op1.type == Type.ENTIER)
+			return new TypeVal((op1.valInt == op2.valInt)? true : false);
+		else
+			return new TypeVal((op1.valBool == op2.valBool)? true : false);
+    }
+
+    // EXP -> and EXP EXP
+    public TypeVal visit(SaExpAnd node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal(op1.valBool && op2.valBool);
+    }
+    
+    // EXP -> or EXP EXP
+    public TypeVal visit(SaExpOr node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		TypeVal op2 = node.getOp2().accept(this);
+		defaultOut(node);
+		return new TypeVal(op1.valBool || op2.valBool);
+    }
+
+    // EXP -> not EXP
+    public TypeVal visit(SaExpNot node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal op1 = node.getOp1().accept(this);
+		defaultOut(node);
+		return new TypeVal(!op1.valBool);
+    }
+
+
+    public TypeVal visit(SaExpLire node) throws Exception
+    {
+		defaultIn(node);
+		defaultOut(node);
+		return null;
+    }
+
+    public TypeVal visit(SaInstBloc node) throws Exception
+    {
+		defaultIn(node);
+		node.getVal().accept(this);
+		defaultOut(node);
+		return null;
+    }
+    
+    public TypeVal visit(SaInstSi node) throws Exception
+    {
+		defaultIn(node);
+		TypeVal test = node.getTest().accept(this);
+		if(test.valBool && node.getAlors() != null)
+			node.getAlors().accept(this);
+		if(!test.valBool && node.getSinon() != null)
+			node.getSinon().accept(this);
+		defaultOut(node);
+		return null;
+    }
+
+// INST -> ret EXP 
+    public TypeVal visit(SaInstRetour node) throws Exception
+    {
+		defaultIn(node);
+		curEnv.setReturnValue(node.getVal().accept(this));
+		stop = true;
+		defaultOut(node);
+		return null;
+    }
+
+    
+    public TypeVal visit(SaLExp node) throws Exception
+    {
+		defaultIn(node);
+		node.getTete().accept(this);
+		if(node.getQueue() != null)
+			node.getQueue().accept(this);
+		defaultOut(node);
+		return null;
+    }
+
+    public TypeVal visit(SaVarIndicee node) throws Exception
+    {
+		defaultIn(node);
+		node.getIndice().accept(this);
+		TypeVal indice = node.getIndice().accept(this);
+		defaultOut(node);
+		return getVarGlobIndicee(node, indice);
+    }
+    
+}
diff --git a/src/sa/SaExp.java b/src/sa/SaExp.java
new file mode 100644
index 0000000..81cbf3c
--- /dev/null
+++ b/src/sa/SaExp.java
@@ -0,0 +1,6 @@
+package sa;
+import util.Type;
+
+public interface SaExp extends SaNode {
+    public Type getType();
+}
diff --git a/src/sa/SaExpAdd.java b/src/sa/SaExpAdd.java
new file mode 100644
index 0000000..0041eed
--- /dev/null
+++ b/src/sa/SaExpAdd.java
@@ -0,0 +1,26 @@
+package sa;
+import util.Type;
+
+public class SaExpAdd implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpAdd(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.ENTIER;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+    public String toString(){
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpAnd.java b/src/sa/SaExpAnd.java
new file mode 100644
index 0000000..df94c5b
--- /dev/null
+++ b/src/sa/SaExpAnd.java
@@ -0,0 +1,26 @@
+package sa;
+import util.Type;
+
+public class SaExpAnd implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpAnd(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpAppel.java b/src/sa/SaExpAppel.java
new file mode 100644
index 0000000..611aa6a
--- /dev/null
+++ b/src/sa/SaExpAppel.java
@@ -0,0 +1,25 @@
+package sa;
+import util.Type;
+
+public class SaExpAppel implements SaExp{
+    private SaAppel val;
+
+    public SaExpAppel(SaAppel val){
+	this.val = val;
+    }
+
+    public SaAppel getVal(){return this.val;}
+
+    public Type getType(){
+	return val.getType();
+    }
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + val + ")";
+    }
+}
diff --git a/src/sa/SaExpDiv.java b/src/sa/SaExpDiv.java
new file mode 100644
index 0000000..cc2db6e
--- /dev/null
+++ b/src/sa/SaExpDiv.java
@@ -0,0 +1,27 @@
+package sa;
+import util.Type;
+
+public class SaExpDiv implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpDiv(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.ENTIER;
+    }
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpEqual.java b/src/sa/SaExpEqual.java
new file mode 100644
index 0000000..01eeb01
--- /dev/null
+++ b/src/sa/SaExpEqual.java
@@ -0,0 +1,27 @@
+package sa;
+import util.Type;
+
+public class SaExpEqual implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpEqual(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpFaux.java b/src/sa/SaExpFaux.java
new file mode 100644
index 0000000..125956f
--- /dev/null
+++ b/src/sa/SaExpFaux.java
@@ -0,0 +1,28 @@
+package sa;
+import util.Type;
+
+public class SaExpFaux implements SaExp{
+    private final boolean val;
+
+    public SaExpFaux(){
+	this.val = false;
+    }
+
+    public boolean getVal(){
+	return this.val;
+    }
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "faux";
+    }
+}
diff --git a/src/sa/SaExpInf.java b/src/sa/SaExpInf.java
new file mode 100644
index 0000000..1f7c54a
--- /dev/null
+++ b/src/sa/SaExpInf.java
@@ -0,0 +1,28 @@
+package sa;
+import util.Type;
+
+public class SaExpInf implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpInf(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception {
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpInt.java b/src/sa/SaExpInt.java
new file mode 100644
index 0000000..10bd6d6
--- /dev/null
+++ b/src/sa/SaExpInt.java
@@ -0,0 +1,26 @@
+package sa;
+import util.Type;
+
+public class SaExpInt implements SaExp{
+    private int val;
+
+    public SaExpInt(int val){
+	this.val = val;
+    }
+
+    public int getVal(){
+	return this.val;
+    }
+    
+    public Type getType(){
+	return Type.ENTIER;
+    }
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return Integer.toString(val);
+    }
+}
diff --git a/src/sa/SaExpLire.java b/src/sa/SaExpLire.java
new file mode 100644
index 0000000..53d8520
--- /dev/null
+++ b/src/sa/SaExpLire.java
@@ -0,0 +1,21 @@
+package sa;
+import util.Type;
+
+public class SaExpLire implements SaExp{
+
+    public SaExpLire(){
+    }
+
+    public Type getType(){
+	return Type.ENTIER;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return this.getClass().getSimpleName();
+    }
+}
diff --git a/src/sa/SaExpMult.java b/src/sa/SaExpMult.java
new file mode 100644
index 0000000..597038d
--- /dev/null
+++ b/src/sa/SaExpMult.java
@@ -0,0 +1,27 @@
+package sa;
+import util.Type;
+
+public class SaExpMult implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpMult(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.ENTIER;
+    }
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpNot.java b/src/sa/SaExpNot.java
new file mode 100644
index 0000000..60a1c08
--- /dev/null
+++ b/src/sa/SaExpNot.java
@@ -0,0 +1,26 @@
+package sa;
+import util.Type;
+
+public class SaExpNot implements SaExp{
+    private SaExp op1;
+
+    public SaExpNot(SaExp op1){
+	this.op1 = op1;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return null;}
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + ")";
+    }
+}
diff --git a/src/sa/SaExpOr.java b/src/sa/SaExpOr.java
new file mode 100644
index 0000000..ec9807d
--- /dev/null
+++ b/src/sa/SaExpOr.java
@@ -0,0 +1,28 @@
+package sa;
+import util.Type;
+
+public class SaExpOr implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpOr(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpSub.java b/src/sa/SaExpSub.java
new file mode 100644
index 0000000..bf02733
--- /dev/null
+++ b/src/sa/SaExpSub.java
@@ -0,0 +1,28 @@
+package sa;
+import util.Type;
+
+public class SaExpSub implements SaExp{
+    private SaExp op1;
+    private SaExp op2;
+
+    public SaExpSub(SaExp op1, SaExp op2){
+	this.op1 = op1;
+	this.op2 = op2;
+    }
+
+    public SaExp getOp1(){return this.op1;}
+    public SaExp getOp2(){return this.op2;}
+    
+    public Type getType(){
+	return Type.ENTIER;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + op1 + " " + op2 + ")";
+    }
+}
diff --git a/src/sa/SaExpVar.java b/src/sa/SaExpVar.java
new file mode 100644
index 0000000..f983c1f
--- /dev/null
+++ b/src/sa/SaExpVar.java
@@ -0,0 +1,24 @@
+package sa;
+import util.Type;
+
+public class SaExpVar implements SaExp{
+    private SaVar var;
+
+    public SaExpVar(SaVar var){
+	this.var = var;
+    }
+
+    public SaVar getVar(){return this.var;}
+
+    public Type getType(){
+	return this.var.getTsItem().getType();
+    }
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + var + ")";
+    }
+}
diff --git a/src/sa/SaExpVrai.java b/src/sa/SaExpVrai.java
new file mode 100644
index 0000000..ef99211
--- /dev/null
+++ b/src/sa/SaExpVrai.java
@@ -0,0 +1,27 @@
+package sa;
+import util.Type;
+
+public class SaExpVrai implements SaExp{
+    private final boolean val;
+
+    public SaExpVrai(){
+	this.val = true;
+    }
+
+    public boolean getVal(){
+	return this.val;
+    }
+    
+    public Type getType(){
+	return Type.BOOL;
+    }
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "vrai";
+    }
+}
diff --git a/src/sa/SaInst.java b/src/sa/SaInst.java
new file mode 100644
index 0000000..409ef53
--- /dev/null
+++ b/src/sa/SaInst.java
@@ -0,0 +1,5 @@
+package sa;
+
+public interface SaInst extends SaNode {
+    
+}
diff --git a/src/sa/SaInstAffect.java b/src/sa/SaInstAffect.java
new file mode 100644
index 0000000..126f741
--- /dev/null
+++ b/src/sa/SaInstAffect.java
@@ -0,0 +1,22 @@
+package sa;
+
+public class SaInstAffect implements SaInst{
+    private SaVar lhs;
+    private SaExp rhs;
+
+    public SaInstAffect(SaVar lhs, SaExp rhs){
+	this.lhs = lhs;
+	this.rhs = rhs;
+    }
+    public SaVar getLhs(){return this.lhs;}
+    public SaExp getRhs(){return this.rhs;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName()+ " " + lhs + " " + rhs + ")";
+    }
+}
diff --git a/src/sa/SaInstBloc.java b/src/sa/SaInstBloc.java
new file mode 100644
index 0000000..8f13f49
--- /dev/null
+++ b/src/sa/SaInstBloc.java
@@ -0,0 +1,19 @@
+package sa;
+
+public class SaInstBloc implements SaInst{
+    private SaLInst val;
+
+    public SaInstBloc(SaLInst val){
+	this.val = val;
+    }
+
+    public SaLInst getVal(){return this.val;}
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + val + ")";
+    }
+}
diff --git a/src/sa/SaInstEcriture.java b/src/sa/SaInstEcriture.java
new file mode 100644
index 0000000..4ba2af3
--- /dev/null
+++ b/src/sa/SaInstEcriture.java
@@ -0,0 +1,20 @@
+package sa;
+
+public class SaInstEcriture implements SaInst{
+    private SaExp arg;
+
+    public SaInstEcriture(SaExp arg){
+	this.arg = arg;
+    }
+
+    public SaExp getArg(){return this.arg;}
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + arg + ")";
+    }
+}
diff --git a/src/sa/SaInstRetour.java b/src/sa/SaInstRetour.java
new file mode 100644
index 0000000..c3993e8
--- /dev/null
+++ b/src/sa/SaInstRetour.java
@@ -0,0 +1,24 @@
+package sa;
+import util.Type;
+
+public class SaInstRetour implements SaInst{
+    private SaExp val;
+
+    public SaInstRetour(SaExp val){
+	this.val = val;
+    }
+
+    public Type getType(){
+	return val.getType();
+    }
+    public SaExp getVal(){return this.val;}
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + val + ")";
+    }
+}
diff --git a/src/sa/SaInstSi.java b/src/sa/SaInstSi.java
new file mode 100644
index 0000000..fc8c1d7
--- /dev/null
+++ b/src/sa/SaInstSi.java
@@ -0,0 +1,26 @@
+package sa;
+
+public class SaInstSi implements SaInst{
+    private SaExp test;
+    private SaInst alors;
+    private SaInst sinon;
+
+    public SaInstSi(SaExp test, SaInst alors, SaInst sinon){
+	this.test = test;
+	this.alors = alors;
+	this.sinon = sinon;
+    }
+
+    public SaExp getTest(){return this.test;}
+    public SaInst getAlors(){return this.alors;}
+    public SaInst getSinon(){return this.sinon;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + test + " " + alors + " " + sinon + ")";
+    }
+}
diff --git a/src/sa/SaInstTantQue.java b/src/sa/SaInstTantQue.java
new file mode 100644
index 0000000..dfc87e1
--- /dev/null
+++ b/src/sa/SaInstTantQue.java
@@ -0,0 +1,23 @@
+package sa;
+
+public class SaInstTantQue implements SaInst{
+    private SaExp test;
+    private SaInst faire;
+
+    public SaInstTantQue(SaExp test, SaInst faire){
+	this.test = test;
+	this.faire = faire;
+    }
+
+    public SaExp getTest(){return this.test;}
+    public SaInst getFaire(){return this.faire;}
+
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + test + " " +  faire + ")";
+    }
+}
diff --git a/src/sa/SaLDecFonc.java b/src/sa/SaLDecFonc.java
new file mode 100644
index 0000000..73135ae
--- /dev/null
+++ b/src/sa/SaLDecFonc.java
@@ -0,0 +1,28 @@
+package sa;
+
+public class SaLDecFonc implements SaNode{
+    private SaDecFonc tete;
+    private SaLDecFonc queue;
+
+    public SaLDecFonc(SaDecFonc tete, SaLDecFonc queue){
+	this.tete = tete;
+	this.queue = queue;
+    }
+
+    public SaDecFonc getTete(){return this.tete;}
+    public SaLDecFonc getQueue(){return this.queue;}
+
+    public int length(){
+	if(this.queue == null) return 1;
+	return 1 + this.queue.length() ;
+    }
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + tete + " " + queue + ")";
+    }
+
+}
diff --git a/src/sa/SaLDecVar.java b/src/sa/SaLDecVar.java
new file mode 100644
index 0000000..9f69dc3
--- /dev/null
+++ b/src/sa/SaLDecVar.java
@@ -0,0 +1,27 @@
+package sa;
+
+public class SaLDecVar implements SaNode{
+    private SaDecVar tete;
+    private SaLDecVar queue;
+
+    public SaLDecVar(SaDecVar tete, SaLDecVar queue){
+	this.tete = tete;
+	this.queue = queue;
+    }
+
+    public SaDecVar getTete(){return this.tete;}
+    public SaLDecVar getQueue(){return this.queue;}
+
+    public int length(){
+	if(this.queue == null) return 1;
+	return 1 + this.queue.length() ;
+    }
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception {
+        return visitor.visit(this);
+    }
+    public String toString(){
+        return "(" + this.getClass().getSimpleName() + " " + tete + " " + queue + ")";
+    }
+
+}
diff --git a/src/sa/SaLExp.java b/src/sa/SaLExp.java
new file mode 100644
index 0000000..a6e489f
--- /dev/null
+++ b/src/sa/SaLExp.java
@@ -0,0 +1,30 @@
+package sa;
+
+public class SaLExp implements SaNode{
+    private SaExp tete;
+    private SaLExp queue;
+
+    public SaLExp(SaExp tete, SaLExp queue){
+	this.tete = tete;
+	this.queue = queue;
+    }
+
+    public SaExp getTete(){return this.tete;}
+    public SaLExp getQueue(){return this.queue;}
+
+    public int length(){
+	if(this.queue == null) return 1;
+	return 1 + this.queue.length() ;
+    }
+    
+
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + tete + " " + queue + ")";
+    }
+}
diff --git a/src/sa/SaLInst.java b/src/sa/SaLInst.java
new file mode 100644
index 0000000..29c7cd0
--- /dev/null
+++ b/src/sa/SaLInst.java
@@ -0,0 +1,23 @@
+package sa;
+
+public class SaLInst implements SaNode{
+    private SaInst tete;
+    private SaLInst queue;
+
+    public SaLInst(SaInst tete, SaLInst queue){
+	this.tete = tete;
+	this.queue = queue;
+    }
+
+    public SaInst getTete(){return this.tete;}
+    public SaLInst getQueue(){return this.queue;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    public String toString(){
+        return "(" + this.getClass().getSimpleName() + " " + tete + " " + queue +")";
+    }
+
+}
diff --git a/src/sa/SaNode.java b/src/sa/SaNode.java
new file mode 100644
index 0000000..cd65a01
--- /dev/null
+++ b/src/sa/SaNode.java
@@ -0,0 +1,6 @@
+package sa;
+
+public interface SaNode{
+    public <T> T accept(SaVisitor <T> visitor) throws Exception;
+}
+
diff --git a/src/sa/SaProg.java b/src/sa/SaProg.java
new file mode 100644
index 0000000..f0081db
--- /dev/null
+++ b/src/sa/SaProg.java
@@ -0,0 +1,21 @@
+package sa;
+
+public class SaProg implements SaNode{
+    private SaLDecVar variables;
+    private SaLDecFonc fonctions;
+
+    public SaProg(SaLDecVar variables, SaLDecFonc fonctions){
+	this.variables = variables;
+	this.fonctions = fonctions;
+    }
+
+    public SaLDecVar getVariables(){return this.variables;}
+    public SaLDecFonc getFonctions(){return this.fonctions;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+    public String toString(){
+        return "(" + this.getClass().getSimpleName() + " " + variables  + " " + fonctions +")";
+    }
+}
diff --git a/src/sa/SaTypeCheck.java b/src/sa/SaTypeCheck.java
new file mode 100644
index 0000000..60e71ef
--- /dev/null
+++ b/src/sa/SaTypeCheck.java
@@ -0,0 +1,32 @@
+package sa;
+import util.Type;
+import util.Error;
+import ts.*;
+
+public class SaTypeCheck extends SaDepthFirstVisitor <Void>{
+    private TsItemFct fonctionCourante;
+
+    public SaTypeCheck(SaNode root)
+    {
+		try{
+			root.accept(this);
+		} catch(ErrorException e){
+			System.err.print("ERREUR DE TYPAGE : ");
+			System.err.println(e.getMessage());
+			System.exit(e.getCode());
+		} catch(Exception e){}
+	}
+
+    public void defaultIn(SaNode node)
+    {
+		//			System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(SaNode node)
+    {
+		//		System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+
+
+}
diff --git a/src/sa/SaVar.java b/src/sa/SaVar.java
new file mode 100644
index 0000000..8e5536e
--- /dev/null
+++ b/src/sa/SaVar.java
@@ -0,0 +1,6 @@
+package sa;
+import ts.*;
+
+public interface SaVar extends SaNode {
+    TsItemVar getTsItem();
+}
diff --git a/src/sa/SaVarIndicee.java b/src/sa/SaVarIndicee.java
new file mode 100644
index 0000000..d125b11
--- /dev/null
+++ b/src/sa/SaVarIndicee.java
@@ -0,0 +1,27 @@
+package sa;
+import ts.*;
+
+public class SaVarIndicee implements SaVar{
+    private String nom;
+    private SaExp indice;
+    public TsItemVar tsItem;
+    
+    public SaVarIndicee(String nom, SaExp indice){
+	this.nom = nom;
+	this.indice = indice;
+	this.tsItem = null;
+    }
+
+    public TsItemVar getTsItem(){return this.tsItem;}
+    public String getNom(){return this.nom;}
+    public SaExp getIndice(){return this.indice;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName() + " " + nom + " " + indice +")";
+    }
+}
diff --git a/src/sa/SaVarSimple.java b/src/sa/SaVarSimple.java
new file mode 100644
index 0000000..d496e74
--- /dev/null
+++ b/src/sa/SaVarSimple.java
@@ -0,0 +1,24 @@
+package sa;
+import ts.*;
+
+public class SaVarSimple implements SaVar{
+    public String nom;
+    public TsItemVarSimple tsItem;
+
+    public SaVarSimple(String nom){
+	this.nom = nom;
+	this.tsItem = null;
+    }
+
+    public String getNom(){return this.nom;}
+    public TsItemVarSimple getTsItem(){return this.tsItem;}
+    
+    public <T> T accept(SaVisitor <T> visitor) throws Exception{
+        return visitor.visit(this);
+    }
+
+    @Override
+    public String toString() {
+        return "(" + this.getClass().getSimpleName()+ " " + nom + ")";
+    }
+}
diff --git a/src/sa/SaVisitor.java b/src/sa/SaVisitor.java
new file mode 100644
index 0000000..3d28bb7
--- /dev/null
+++ b/src/sa/SaVisitor.java
@@ -0,0 +1,38 @@
+package sa;
+
+interface SaVisitor <T> {
+    public T visit(SaProg node) throws Exception;
+    public T visit(SaInstEcriture node) throws Exception;
+    public T visit(SaInstTantQue node) throws Exception;
+    public T visit(SaInstBloc node) throws Exception;
+    public T visit(SaInstSi node) throws Exception;
+    public T visit(SaInstAffect node) throws Exception;
+    public T visit(SaInstRetour node) throws Exception;
+    public T visit(SaLInst node) throws Exception;
+    public T visit(SaDecFonc node) throws Exception;
+    public T visit(SaDecVar node) throws Exception;
+    public T visit(SaDecTab node) throws Exception;
+    //    public T visit(SaLDec node) throws Exception;
+    public T visit(SaLDecVar node) throws Exception;
+    public T visit(SaLDecFonc node) throws Exception;
+    public T visit(SaVarSimple node) throws Exception;
+    public T visit(SaVarIndicee node) throws Exception;
+    public T visit(SaAppel node) throws Exception;
+    public T visit(SaExp node) throws Exception;
+    public T visit(SaExpLire node) throws Exception;
+    public T visit(SaExpInt node) throws Exception;
+    public T visit(SaExpVrai node) throws Exception;
+    public T visit(SaExpFaux node) throws Exception;
+    public T visit(SaExpVar node) throws Exception;
+    public T visit(SaExpAppel node) throws Exception;
+    public T visit(SaExpAdd node) throws Exception;
+    public T visit(SaExpSub node) throws Exception;
+    public T visit(SaExpMult node) throws Exception;
+    public T visit(SaExpDiv node) throws Exception;
+    public T visit(SaExpInf node) throws Exception;
+    public T visit(SaExpEqual node) throws Exception;
+    public T visit(SaExpAnd node) throws Exception;
+    public T visit(SaExpOr node) throws Exception;
+    public T visit(SaExpNot node) throws Exception;
+    public T visit(SaLExp node) throws Exception;
+}
diff --git a/src/sa/Sc2sa.java b/src/sa/Sc2sa.java
new file mode 100644
index 0000000..0bc4abd
--- /dev/null
+++ b/src/sa/Sc2sa.java
@@ -0,0 +1,43 @@
+package sa;
+import lParser.analysis.*;
+import lParser.node.*;
+import util.Type;
+
+public class Sc2sa extends DepthFirstAdapter
+{
+    private SaNode returnValue;
+    private Type returnType;
+    private SaProg saRoot = null;
+
+    public void defaultIn(@SuppressWarnings("unused") Node node)
+    {
+	//System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(@SuppressWarnings("unused") Node node)
+    {
+	//System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+    
+    public SaProg getRoot()
+    {
+	return this.saRoot;
+    }
+
+
+    // exp3 = {plus} exp3 plus exp4 
+    /*    @Override
+    public void caseAPlusExp3(APlusExp3 node)
+    {
+	SaExp op1 = null;
+	SaExp op2 = null;
+        inAPlusExp3(node);
+	node.getExp3().apply(this);
+	op1 = (SaExp) this.returnValue;
+	node.getExp4().apply(this);
+	op2 = (SaExp) this.returnValue;
+	this.returnValue = new SaExpAdd(op1, op2);
+        outAPlusExp3(node);
+	}*/
+}
+
diff --git a/src/sa/TypeVal.java b/src/sa/TypeVal.java
new file mode 100644
index 0000000..54cf58b
--- /dev/null
+++ b/src/sa/TypeVal.java
@@ -0,0 +1,31 @@
+package sa;
+import util.Type;
+
+public class TypeVal{
+    public Type type;
+    public boolean valBool;
+    public int valInt;
+
+    public TypeVal(int val)
+    {
+	type = Type.ENTIER;
+	valInt = val;
+    }
+    
+    public TypeVal(boolean val)
+    {
+	type = Type.BOOL;
+	valBool = val;
+    }
+
+    public String toString(){
+	if(type == Type.BOOL){
+	    return (valBool == true)? String.valueOf(1): String.valueOf(0);
+	}
+	else{
+	    return String.valueOf(valInt);
+	}
+    }
+
+    
+}
diff --git a/src/sc/Sc2Xml.java b/src/sc/Sc2Xml.java
new file mode 100644
index 0000000..a70781c
--- /dev/null
+++ b/src/sc/Sc2Xml.java
@@ -0,0 +1,48 @@
+package sc;
+import java.io.*;
+import lParser.analysis.*;
+import lParser.node.*;
+
+public class Sc2Xml extends DepthFirstAdapter
+{
+    private int indentation;
+    private String baseFileName;
+    private String fileName;
+    private PrintStream out;
+    
+    public Sc2Xml(String baseFileName)
+    {
+
+	if (baseFileName == null){
+	    this.out = System.out;
+	    
+	}
+	else{
+	    try {
+		this.baseFileName = baseFileName;
+		this.fileName = baseFileName + ".sc";
+		this.out = new PrintStream(this.fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+    }
+    
+    
+    public void defaultIn(@SuppressWarnings("unused") Node node)
+    {
+	for(int i = 0; i < this.indentation; i++){this.out.print(" ");}
+	this.indentation++;
+	this.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(@SuppressWarnings("unused") Node node)
+    {
+	this.indentation--;
+	for(int i = 0; i < this.indentation; i++){this.out.print(" ");}
+	this.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+}
diff --git a/src/ts/Sa2ts.java b/src/ts/Sa2ts.java
new file mode 100644
index 0000000..50a80a6
--- /dev/null
+++ b/src/ts/Sa2ts.java
@@ -0,0 +1,36 @@
+package ts;
+import sa.*;
+import util.Error;
+
+public class Sa2ts extends SaDepthFirstVisitor <Void> {
+    enum Context {
+	LOCAL,
+	GLOBAL,
+	PARAM
+    }
+    
+    private Ts tableGlobale;
+    private Ts tableLocaleCourante;
+    private Context context;
+    
+    public Ts getTableGlobale(){return this.tableGlobale;}
+
+    public Sa2ts()
+    {
+	tableGlobale = new Ts();
+	tableLocaleCourante = null;
+	context = Context.GLOBAL;
+    }
+
+    public void defaultIn(SaNode node)
+    {
+	//	System.out.println("<" + node.getClass().getSimpleName() + ">");
+    }
+
+    public void defaultOut(SaNode node)
+    {
+	//	System.out.println("</" + node.getClass().getSimpleName() + ">");
+    }
+
+
+}
diff --git a/src/ts/Ts.java b/src/ts/Ts.java
new file mode 100644
index 0000000..d95fb75
--- /dev/null
+++ b/src/ts/Ts.java
@@ -0,0 +1,147 @@
+package ts;
+import java.io.*;
+import java.util.*;
+import sa.*;
+import util.Type;
+
+public class Ts
+{
+    public Map< String, TsItemFct> fonctions;
+    public Map< String, TsItemVar> variables;
+    private int adrVarCourante;
+    private int adrArgCourante;
+
+    public int getAdrVarCourante(){return adrVarCourante;}
+    public int getAdrArgCourante(){return adrArgCourante;}
+
+    public Ts(){
+	this.fonctions = new HashMap< String, TsItemFct>();
+	this.variables = new HashMap< String, TsItemVar>();
+	this.adrVarCourante = 0;
+	this.adrArgCourante = 0;
+    }
+    
+    public TsItemVar addVar(String identif, Type type)
+    {
+	TsItemVar item = new TsItemVarSimple(identif, type);
+	item.portee = this;
+	item.adresse = this.adrVarCourante;
+	item.isParam = false;
+	this.adrVarCourante += type.taille();
+	this.variables.put(identif, item);
+	return item;
+    }
+
+    public TsItemVar addParam(String identif, Type type)
+    {
+	TsItemVar item = new TsItemVarSimple(identif, type);
+	item.portee = this;
+	item.adresse = this.adrArgCourante;
+	item.isParam = true;
+	this.adrArgCourante += type.taille();
+	this.variables.put(identif, item);
+	return item;
+    }
+
+    public TsItemVar addTab(String identif, Type type, int taille)
+    {
+	TsItemVar item = new TsItemVarTab(identif, type, taille);
+	item.portee = this;
+	item.adresse = this.adrVarCourante;
+	this.adrVarCourante += taille * type.taille();
+	this.variables.put(identif, item);
+	return item;
+    }
+
+    public TsItemFct addFct(String identif, Type typeRetour, int nbArgs, Ts table, SaDecFonc saDecFonc)
+    {
+	TsItemFct item = new TsItemFct(identif, typeRetour, nbArgs, table, saDecFonc);
+	this.fonctions.put(identif, item);
+	return item;
+    }
+
+    public TsItemVar getVar(String identif)
+    {
+	return variables.get(identif);
+    }
+    
+    public TsItemFct getFct(String identif)
+    {
+	return fonctions.get(identif);
+    }
+    
+    public Ts getTableLocale(String identif){
+	TsItemFct item = this.fonctions.get(identif);
+	if(item == null)
+	    return null;
+	else
+	    return item.getTable();
+    }
+    
+	 
+    public void affiche(PrintStream out){
+	ArrayList< Map.Entry< String, TsItemVar> > stVar = new ArrayList<Map.Entry< String, TsItemVar>>(this.variables.entrySet());
+	Collections.sort(stVar, new Comparator<Map.Entry< String, TsItemVar>>() {
+		@Override
+		public int compare(Map.Entry< String, TsItemVar> entry1, Map.Entry< String, TsItemVar> entry2)
+		{
+		    return entry1.getKey().compareTo(entry2.getKey());
+		}
+	    });
+	for (Map.Entry< String, TsItemVar> me:stVar){ 
+	    out.println(me.getValue());
+	    //	    out.println(me.getKey() + ":\t" + me.getValue());
+	}
+	
+	ArrayList< Map.Entry< String, TsItemFct> > stFct = new ArrayList<Map.Entry< String, TsItemFct>>(this.fonctions.entrySet());
+	Collections.sort(stFct, new Comparator<Map.Entry< String, TsItemFct>>() {
+		@Override
+		public int compare(Map.Entry< String, TsItemFct> entry1, Map.Entry< String, TsItemFct> entry2)
+		{
+		    return entry1.getKey().compareTo(entry2.getKey());
+		}
+	    });
+	for (Map.Entry< String, TsItemFct> me:stFct){ 
+	    out.println(me.getValue());
+	    //	    out.println(me.getKey() + ":\t" + me.getValue());
+	}
+    }
+	
+    public void afficheTablesLocales(PrintStream out){
+	ArrayList< Map.Entry< String, TsItemFct> > st = new ArrayList<Map.Entry< String, TsItemFct>>(this.fonctions.entrySet());
+	Collections.sort(st, new Comparator<Map.Entry< String, TsItemFct>>() {
+		@Override
+		public int compare(Map.Entry< String, TsItemFct> entry1, Map.Entry< String, TsItemFct> entry2)
+		{
+		    return entry1.getKey().compareTo(entry2.getKey());
+		}
+	    });
+	for (Map.Entry< String, TsItemFct> me:st){
+	    if(me.getValue().getTable() != null){
+		out.println("TABLE LOCALE : " + me.getKey());
+		me.getValue().getTable().affiche(out);
+	    }
+	}
+    }
+    
+    public void afficheTout(String baseFileName){
+	String fileName;
+	PrintStream out = System.out;
+	
+	if (baseFileName != null){
+	    try {
+		baseFileName = baseFileName;
+		fileName = baseFileName + ".ts";
+		out = new PrintStream(fileName);
+	    }
+	    
+	    catch (IOException e) {
+		System.err.println("Error: " + e.getMessage());
+	    }
+	}
+       	out.println("TABLE GLOBALE");
+	this.affiche(out);
+	this.afficheTablesLocales(out);
+    }
+
+}
diff --git a/src/ts/TsItemFct.java b/src/ts/TsItemFct.java
new file mode 100644
index 0000000..03e87f6
--- /dev/null
+++ b/src/ts/TsItemFct.java
@@ -0,0 +1,30 @@
+package ts;
+import sa.*;
+import util.Type;
+
+
+public class TsItemFct {
+    public String identif;
+    public int nbArgs;
+    public Ts table;
+    public SaDecFonc saDecFonc;
+    public Type typeRetour;
+    
+    public TsItemFct(String identif, Type typeRetour, int nbArgs, Ts table, SaDecFonc saDecFonc){
+	this.identif = identif;
+	this.nbArgs = nbArgs;
+	this.table = table;
+	this.saDecFonc = saDecFonc;
+	this.typeRetour = typeRetour;
+    }
+
+    public int getNbArgs(){return this.nbArgs;}
+    public Ts getTable(){return this.table;}
+    public Type getTypeRetour(){return this.typeRetour;}
+    public String getIdentif(){return this.identif;}
+    public String toString(){
+    	return this.identif +  "\tFCT\t" + typeRetour + "\t" + this.nbArgs;
+    }
+
+}
+
diff --git a/src/ts/TsItemVar.java b/src/ts/TsItemVar.java
new file mode 100644
index 0000000..7dae2bb
--- /dev/null
+++ b/src/ts/TsItemVar.java
@@ -0,0 +1,20 @@
+package ts;
+import util.Type;
+
+public abstract class TsItemVar {
+    public Ts      portee;
+    public int     adresse;
+    public String  identif;
+    public int     taille;
+    public boolean isParam;
+    public Type    type;
+
+    public int    getAdresse(){return this.adresse;}
+    public String getIdentif(){return this.identif;}
+    public Ts     getPortee() {return this.portee;}
+    public Type   getType()   {return this.type;}
+    public int    getTaille(){return this.taille;}
+    
+    
+}
+
diff --git a/src/ts/TsItemVarSimple.java b/src/ts/TsItemVarSimple.java
new file mode 100644
index 0000000..ae2a555
--- /dev/null
+++ b/src/ts/TsItemVarSimple.java
@@ -0,0 +1,22 @@
+package ts;
+import util.Type;
+
+public class TsItemVarSimple extends TsItemVar{
+    public TsItemVarSimple(String identif, Type type){
+	this.identif = identif;
+	this.adresse = 0;
+	this.portee =  null;
+	this.taille =  1;
+	this.isParam = false;
+	this.type =    type;
+    }
+
+    public String toString(){
+	if(this.isParam)
+	    return this.identif + "\tPARAM\t" + this.type + "\t" + this.adresse;
+	else
+	    return this.identif + "\tVAR  \t" + this.type + "\t" + this.adresse;
+    }
+    
+}
+
diff --git a/src/ts/TsItemVarTab.java b/src/ts/TsItemVarTab.java
new file mode 100644
index 0000000..56c0a11
--- /dev/null
+++ b/src/ts/TsItemVarTab.java
@@ -0,0 +1,19 @@
+package ts;
+import util.Type;
+
+public class TsItemVarTab  extends TsItemVar{
+    public TsItemVarTab(String identif, Type type, int taille){
+	this.identif = identif;
+	this.adresse = 0;
+	this.portee = null;
+	this.taille = taille;
+	this.isParam = false;
+	this.type = type;
+    }
+
+    public String toString(){
+	    return this.identif + "\tTAB  \t" + this.type + "\t" + this.adresse + "\t" + this.taille;
+    }
+    
+}
+
diff --git a/src/ts/TsParser.java b/src/ts/TsParser.java
new file mode 100644
index 0000000..509bff6
--- /dev/null
+++ b/src/ts/TsParser.java
@@ -0,0 +1,71 @@
+package ts;
+
+import ts.Ts;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import util.Type;
+
+public class TsParser {
+    private Ts tableCourante = null;
+    private Ts tableGlobale = null;
+
+    public TsParser(){
+
+    }
+    
+    public Ts parse(String filePath){
+        try {
+            Files.lines(Paths.get(filePath)).forEachOrdered(this::processLine);;
+        } catch(IOException e){
+            e.printStackTrace();
+        }
+        return tableGlobale;
+    }
+
+    private void processLine(String line){
+//		System.out.println(line);
+        var tokens = line.split("([ ]|[\t])+");
+		if(tokens[1].equals("GLOBALE")){
+			tableGlobale = new Ts();
+			tableCourante = tableGlobale;
+			return;
+		}
+		if(tokens[1].equals("LOCALE")){
+			tableCourante = tableGlobale.getFct(tokens[3]).getTable();
+			return;
+		}
+		if(tokens[1].equals("VAR")){
+			tableCourante.addVar(tokens[0], Type.fromString(tokens[2]));
+			return;
+		}
+		if(tokens[1].equals("PARAM")){
+			tableCourante.addParam(tokens[0], Type.fromString(tokens[2]));
+			return;
+		}
+		if(tokens[1].equals("TAB")){
+			tableCourante.addTab(tokens[0], Type.fromString(tokens[2]), Integer.parseInt(tokens[4]));
+			return;
+		}
+		if(tokens[1].equals("FCT")){
+			tableGlobale.addFct(tokens[0], Type.fromString(tokens[2]), Integer.parseInt(tokens[3]), new Ts(), null);
+			return;
+		}
+    }
+    /*
+    public static void main(String args[]){
+        var parser = new SymbolsTableParser();
+        var r = parser.parse("function.ts");
+        System.out.println("---Table Globale---");
+        r.affiche(System.out);
+        System.out.println("---Tables Locales---");
+        r.afficheTablesLocales(System.out);
+	}*/
+}
diff --git a/src/util/Error.java b/src/util/Error.java
new file mode 100644
index 0000000..4a75000
--- /dev/null
+++ b/src/util/Error.java
@@ -0,0 +1,21 @@
+package util;
+
+public enum Error{
+    NOERROR(0, "sortie normale"),
+    TYPE(3, "erreur de types"),
+    TS(4, "table des symboles"),
+    SYNT(5,"erreur de syntaxe"),
+    LEX(6, "lexical error");
+
+    private final String message;
+    private final int code;
+    
+    Error(int code, String message){
+	this.code = code;
+	this.message = message;
+    }
+
+    public String toString(){return message;}
+    public String message(){return message;}
+    public int code(){return code;}
+}
diff --git a/src/util/Memory.java b/src/util/Memory.java
new file mode 100644
index 0000000..688a9da
--- /dev/null
+++ b/src/util/Memory.java
@@ -0,0 +1,224 @@
+package util;
+
+/* Big Endian */
+
+public class Memory{
+    /* stack segment */
+    private int ss;
+
+    /* data segment */
+    private int ds;
+
+    public int esp; // adresse du sommet de la pile en octets
+    private int memSize;
+    private int dataSize;
+    private int stackSize;
+    private byte[] mem;
+
+    public Memory(int dataSize, int stackSize){
+	this.dataSize = dataSize;
+	this.stackSize = stackSize;
+	this.memSize = dataSize + stackSize;
+	mem = new byte[memSize];
+	ss = memSize - 1;
+	esp = ss;
+	ds = 0;
+    }
+
+    public void printStack(){
+	for(int adr = ss - 3; adr > esp; adr = adr - 4){
+	    System.out.print(readInt(adr) + "\t");
+	}
+	System.out.println();
+    }
+    
+    public int readInt(int address){
+	if((address < 0) || (address + 3 > ss))
+            throw new RuntimeException("segmentation fault");
+	return bytesToInt(mem[address], mem[address + 1], mem[address + 2], mem[address + 3]);
+    }
+
+   
+    public boolean readBoolean(int address){
+	if((address < 0) || (address > ss))
+            throw new RuntimeException("segmentation fault");
+	return byteToBoolean(mem[address]);
+    }
+
+    public byte readByte(int address){
+	if((address < 0) || (address > ss))
+            throw new RuntimeException("segmentation fault");
+	return mem[address];
+    }
+
+    public void writeInt(int address, int value){
+	if((address < 0) || (address + 3 > ss))
+            throw new RuntimeException("segmentation fault");
+
+	byte[] fourBytes = intToBytes(value);
+	mem[address] = fourBytes[0];
+	mem[address + 1] = fourBytes[1];
+	mem[address + 2] = fourBytes[2];
+	mem[address + 3] = fourBytes[3];
+    }
+
+    public void writeToMemory(int address, int value){
+	if((address < 0) || (address + 3 > ss))
+            throw new RuntimeException("segmentation fault");
+	
+	byte[] fourBytes = intToBytes(value);
+	mem[address] = fourBytes[0];
+	mem[address + 1] = fourBytes[1];
+	mem[address + 2] = fourBytes[2];
+	mem[address + 3] = fourBytes[3];
+    }
+
+    /*    public void writeToMemory(int address, boolean value)
+    {
+	if((address < 0) || (address > ss))
+            throw new RuntimeException("segmentation fault");
+	mem[address] = booleanToByte(value);
+	}*/
+
+
+    /* revoir c'est quoi cette affaire */
+        public int readNBytes(int address, int n){
+	//	System.out.println("read memory at address " + address);
+	if((address < 0) || (address + n - 1 > ss))
+            throw new RuntimeException("segmentation fault");
+	if(n == 1)
+	    return (int)mem[address];
+	//	if(n == 4) revoir pourquoi c'est commenté !!
+	return bytesToInt(mem[address], mem[address + 1], mem[address + 2], mem[address + 3]);
+	
+	}
+
+    /*    public void writeNBytes(int address, int value){
+	if((address < 0) || (address + n - 1 > ss))
+            throw new RuntimeException("segmentation fault");
+
+	byte[] fourBytes = intToBytes(value);
+	mem[address] = fourBytes[0];
+	mem[address + 1] = fourBytes[1];
+	mem[address + 2] = fourBytes[2];
+	mem[address + 3] = fourBytes[3];
+	}*/
+
+
+    
+       public void writeBoolean(int address, boolean value)
+    {
+	if((address < 0) || (address > ss))
+            throw new RuntimeException("segmentation fault");
+	mem[address] = booleanToByte(value);
+	}
+    
+    public void pushInt(int value){
+	if(esp - 3 < dataSize)
+            throw new RuntimeException("stack overflow");
+
+	byte[] fourBytes = intToBytes(value);
+	mem[--esp] = fourBytes[3];
+	mem[--esp] = fourBytes[2];
+	mem[--esp] = fourBytes[1];
+	mem[--esp] = fourBytes[0];
+
+
+    }
+    /*
+    public void pushBoolean(boolean value){
+	if(esp == dataSize)
+            throw new RuntimeException("stack overflow");
+	mem[esp] = booleanToByte(value);
+	esp--;
+
+	}*/
+
+    public int getTopInt(){
+	//	if(esp == ss)
+	//  throw new RuntimeException("empty stack");
+	byte byte0 = mem[esp];
+	byte byte1 = mem[esp-1];
+	byte byte2 = mem[esp-2];
+	byte byte3 = mem[esp-3];
+	return bytesToInt(byte0, byte1, byte2, byte3);
+    }
+    
+    public int popInt(){
+	if(esp + 3 >= ss)
+            throw new RuntimeException("stack underflow");
+       	byte byte0 = mem[esp++];
+	byte byte1 = mem[esp++];
+	byte byte2 = mem[esp++];
+	byte byte3 = mem[esp++];
+	
+	return bytesToInt(byte0, byte1, byte2, byte3);
+    }
+
+    /*    public boolean popBoolean()
+    {
+	if(esp == ss)
+	    throw new RuntimeException("stack underflow");
+	byte byte0 = mem[esp];
+	esp++;
+	return byteToBoolean(byte0);
+	}*/
+
+    public int bytesToInt(byte byte0, byte byte1, byte byte2, byte byte3){
+        return  ((byte0 & 0xFF) << 24) |
+                ((byte1 & 0xFF) << 16) |
+                ((byte2 & 0xFF) << 8) |
+                ((byte3 & 0xFF) << 0);
+    }
+    
+    public byte[] intToBytes2( int data ) {    
+    byte[] result = new byte[4];
+    result[0] = (byte) ((data & 0xFF000000) >> 24);
+    result[1] = (byte) ((data & 0x00FF0000) >> 16);
+    result[2] = (byte) ((data & 0x0000FF00) >> 8);
+    result[3] = (byte) ((data & 0x000000FF) >> 0);
+    return result;        
+}
+    public byte[] intToBytes(int i)
+    {
+	byte[] result = new byte[4];
+	
+	result[0] = (byte) (i >> 24);
+	result[1] = (byte) (i >> 16);
+	result[2] = (byte) (i >> 8);
+	result[3] = (byte) (i /*>> 0*/);
+	
+	return result;
+    }
+    
+    public byte booleanToByte(boolean value)
+    {
+	return (value == true)? (byte) 1 : (byte) 0; 
+	}
+
+    public boolean byteToBoolean(byte value)
+    {
+	return (value == 1)? true : false;
+    }
+
+    
+    /*        public static void main(String[] args){
+	Memory mem = new Memory(100, 100);
+	mem.pushInt(3467);
+	int v = mem.popInt();
+	System.out.println("val =" + v);
+	mem.pushInt(3468);
+	v = mem.popInt();
+	System.out.println("val =" + v);
+
+	mem.writeInt(96, 234);
+	int val = mem.readInt(96);
+	System.out.println("val =" + val);
+	
+	mem.writeInt(150, 23);
+	val = mem.readInt(250);
+	System.out.println("val =" + val);
+	
+	}*/
+    
+}
diff --git a/src/util/Type.java b/src/util/Type.java
new file mode 100644
index 0000000..89e5574
--- /dev/null
+++ b/src/util/Type.java
@@ -0,0 +1,30 @@
+package util;
+
+public enum Type{
+    NUL("nul", 0),
+    ENTIER("entier", 4),
+    BOOL("bool", 1);
+
+    private final String nom;
+    private final int taille; // taille en octets
+
+    Type(String nom, int taille){
+	this.nom = nom;
+	this.taille = taille;
+    }
+
+    public String toString(){return nom;}
+    public static Type fromString(String nom){
+	if(nom.equals("entier")){return Type.ENTIER;}
+	if(nom.equals("ENTIER")){return Type.ENTIER;}
+	if(nom.equals("bool")){return Type.BOOL;}
+	if(nom.equals("BOOL")){return Type.BOOL;}
+	if(nom.equals("nul")){return Type.NUL;}
+	if(nom.equals("NUL")){return Type.NUL;}
+	return null;
+    }
+    
+    public String nom(){return nom;}
+    public int taille(){return taille;}
+    public static boolean checkCompatibility(Type t1, Type t2){return t1 == t2;}
+}
diff --git a/src/util/graph/ColorGraph.java b/src/util/graph/ColorGraph.java
new file mode 100644
index 0000000..55b867e
--- /dev/null
+++ b/src/util/graph/ColorGraph.java
@@ -0,0 +1,38 @@
+package util.graph;
+
+import util.graph.*;
+import util.intset.*;
+import java.util.*;
+import java.io.*;
+
+public class ColorGraph {
+    public  Graph          graph;
+    public  int            vertexNb;
+    private Stack<Integer> stack;
+    public  IntSet         removed;
+    public  IntSet         spill;
+    public  int[]          color;
+    public  int            colorNb;
+    public  Node[]         int2Node;
+    static  int            NOCOLOR = -1;
+
+    public ColorGraph(Graph graph, int colorNb, int[] preColoredVertices){
+	this.graph   = graph;
+	this.colorNb = colorNb;
+	stack        = new Stack<Integer>(); 
+	vertexNb     = graph.nodeCount();
+	color        = new int[vertexNb];
+	removed      = new IntSet(vertexNb);
+	spill        = new IntSet(vertexNb);
+	int2Node     = graph.nodeArray();
+	for(int v=0; v < vertexNb; v++){
+	    int preColor = preColoredVertices[v];
+	    if(preColor >= 0 && preColor < colorNb)
+		color[v] = preColoredVertices[v];
+	    else
+		color[v] = NOCOLOR;
+	}
+    }
+
+
+}
diff --git a/src/util/graph/Graph.java b/src/util/graph/Graph.java
new file mode 100644
index 0000000..d62bdb0
--- /dev/null
+++ b/src/util/graph/Graph.java
@@ -0,0 +1,83 @@
+package util.graph;
+
+public class Graph {
+
+  int nodecount=0;
+  NodeList mynodes, mylast;
+  public NodeList nodes() { return mynodes;} 
+
+  public Node newNode() {
+	return new Node(this);
+  }
+
+    void check(Node n) {
+	if (n.mygraph != this)
+	    throw new Error("Graph.addEdge using nodes from the wrong graph");
+    }
+    
+    public int nodeCount(){
+	return nodecount;
+    }
+	
+	static boolean inList(Node a, NodeList l) {
+	for(NodeList p=l; p!=null; p=p.tail)
+	    if (p.head==a) return true;
+	return false;
+    }
+
+    public Node[] nodeArray(){
+	Node[] array = new Node[nodecount];
+	for(NodeList q=mynodes; q!=null; q=q.tail) {
+	    array[q.head.mykey] = q.head;
+	}
+	return array;
+    }
+    
+
+  public void addNOEdge(Node from, Node to) {
+      check(from); check(to);
+      if (! from.goesTo(to)){
+	  to.preds=new NodeList(from, to.preds);
+	  from.succs=new NodeList(to, from.succs);
+      }
+      if (! to.goesTo(from)){
+	  from.preds=new NodeList(to, from.preds);
+	  to.succs=new NodeList(from, to.succs);
+      }
+  }
+
+  public void addEdge(Node from, Node to) {
+      check(from); check(to);
+      if (from.goesTo(to)) return;
+      to.preds=new NodeList(from, to.preds);
+      from.succs=new NodeList(to, from.succs);
+  }
+
+  NodeList delete(Node a, NodeList l) {
+	if (l==null) throw new Error("Graph.rmEdge: edge nonexistent");
+        else if (a==l.head) return l.tail;
+	else return new NodeList(l.head, delete(a, l.tail));
+  }
+
+  public void rmEdge(Node from, Node to) {
+	to.preds=delete(from,to.preds);
+        from.succs=delete(to,from.succs);
+  }
+
+ /**
+  * Print a human-readable dump for debugging.
+  */
+     public void show(java.io.PrintStream out) {
+	for (NodeList p=nodes(); p!=null; p=p.tail) {
+	  Node n = p.head;
+	  out.print(n.toString());
+	  out.print(": ");
+	  for(NodeList q=n.succ(); q!=null; q=q.tail) {
+	     out.print(q.head.toString());
+	     out.print(" ");
+	  }
+	  out.println();
+	}
+     }
+
+}
diff --git a/src/util/graph/Node.java b/src/util/graph/Node.java
new file mode 100644
index 0000000..040f118
--- /dev/null
+++ b/src/util/graph/Node.java
@@ -0,0 +1,55 @@
+package util.graph;
+
+public class Node {
+    Graph mygraph;
+    int mykey;
+    NodeList succs;
+    NodeList preds;
+ 
+    private Node(){}
+    public Node(Graph g) {
+	mygraph=g; 
+	mykey= g.nodecount++;
+	NodeList p = new NodeList(this, null);
+	if (g.mylast==null)
+	   g.mynodes=g.mylast=p;
+	else g.mylast = g.mylast.tail = p;
+    }
+
+    public NodeList succ() {return succs;}
+    public NodeList pred() {return preds;}
+
+    public int label() {return mykey;}
+    
+    
+    NodeList cat(NodeList a, NodeList b) {
+	if (a==null) return b;
+	else return new NodeList(a.head, cat(a.tail,b));
+    }
+    public NodeList adj() {return cat(succ(), pred());}
+
+    int len(NodeList l) {
+	int i=0;
+	for(NodeList p=l; p!=null; p=p.tail) i++;
+	return i;
+    }
+
+    public int inDegree() {return len(pred());}
+    public int outDegree() {return len(succ());}
+    public int degree() {return inDegree()+outDegree();} 
+
+    public boolean goesTo(Node n) {
+	return Graph.inList(n, succ());
+    }
+
+    public boolean comesFrom(Node n) {
+	return Graph.inList(n, pred());
+    }
+
+    public boolean adj(Node n) {
+	return goesTo(n) || comesFrom(n);
+    }
+
+    public String toString() {return String.valueOf(mykey);}
+
+}
diff --git a/src/util/graph/NodeList.java b/src/util/graph/NodeList.java
new file mode 100644
index 0000000..4493b7f
--- /dev/null
+++ b/src/util/graph/NodeList.java
@@ -0,0 +1,10 @@
+package util.graph;
+
+public class NodeList {
+  public Node head;
+  public NodeList tail;
+  public NodeList(Node h, NodeList t) {head=h; tail=t;}
+}
+
+
+
diff --git a/src/util/graph/TestColorGraph.java b/src/util/graph/TestColorGraph.java
new file mode 100644
index 0000000..c496fae
--- /dev/null
+++ b/src/util/graph/TestColorGraph.java
@@ -0,0 +1,77 @@
+package util.graph;
+import util.graph.*;
+import util.intset.*;
+import java.util.*;
+import java.io.*;
+
+public class TestColorGraph
+{
+    public static void main(String[] args)
+    {
+	Graph g = new Graph();
+	/*
+	Node n0 = g.newNode();
+	Node n1 = g.newNode();
+	Node n2 = g.newNode();
+	Node n3 = g.newNode();
+	Node n4 = g.newNode();
+	
+		g.addNOEdge(n0, n1);
+	g.addNOEdge(n0, n2);
+	g.addNOEdge(n0, n3);
+       	g.addNOEdge(n0, n4);
+
+	g.addNOEdge(n1, n2);
+       	g.addNOEdge(n1, n3);
+	g.addNOEdge(n1, n4);
+
+	g.addNOEdge(n2, n3);
+	g.addNOEdge(n2, n4);
+
+	g.addNOEdge(n3, n4);
+	*/
+
+
+	Node n1 = g.newNode();
+	Node n2 = g.newNode();
+	Node n3 = g.newNode();
+	Node n4 = g.newNode();
+	Node n5 = g.newNode();
+	Node n6 = g.newNode();
+	Node n7 = g.newNode();
+	Node n8 = g.newNode();
+	Node n9 = g.newNode();
+	Node n10 = g.newNode();
+
+	g.addNOEdge(n1, n2);
+	g.addNOEdge(n1, n4);
+	g.addNOEdge(n1, n9);
+
+	g.addNOEdge(n2, n10);
+
+	g.addNOEdge(n3, n8);
+	g.addNOEdge(n3, n9);
+	g.addNOEdge(n3, n10);
+
+	g.addNOEdge(n4, n5);
+	g.addNOEdge(n4, n8);
+	g.addNOEdge(n4, n10);
+
+	g.addNOEdge(n5, n8);
+	g.addNOEdge(n5, n10);
+
+	g.addNOEdge(n6, n7);
+	g.addNOEdge(n6, n8);
+	g.addNOEdge(n6, n9);
+
+	g.addNOEdge(n7, n8);
+
+	g.addNOEdge(n8, n9);
+
+	g.show(System.out);
+	int[] colors = new int[]{ -3,-3,-3,0,-3,2,1,-3,-3,-3};
+	ColorGraph cg = new ColorGraph(g, 3, colors);
+	cg.color();
+	cg.affiche();
+    }
+}
diff --git a/src/util/intset/IntSet.java b/src/util/intset/IntSet.java
new file mode 100644
index 0000000..3d0d5f4
--- /dev/null
+++ b/src/util/intset/IntSet.java
@@ -0,0 +1,94 @@
+package util.intset;
+
+public class IntSet{
+    private int size;
+    private boolean array[];
+    
+    public IntSet(int size){
+	this.size = size;
+	array = new boolean[size];
+	for (int i = 0; i < size; i++)
+	    array[i] = false;
+    }
+
+    public int getSize(){
+	return size;
+    }
+
+    public void empty(){
+	for (int i = 0; i < size; i++)
+	    array[i] = false;
+    }
+    
+    public boolean isMember(int elt){
+	if(elt >= size) return false;
+	return array[elt];
+    }
+
+    public boolean isEmpty(){
+	for (int i = 0; i < size; i++)
+	    if(array[i] == true)
+		return false;
+	return true;
+    }
+
+    
+    public void add(int elt){
+	if(elt >= size){
+	    System.err.println("ERROR : set is too small !!!!");
+	}
+	array[elt] = true;
+    }
+
+    public void remove(int elt){
+	if(elt >= size){
+	    System.err.println("ERROR : set is too small !!!!");
+	}
+	array[elt] = false;
+    }
+
+    public IntSet minus(IntSet s){
+	for (int i = 0; i < s.size; i++)
+	    if(s.array[i])
+		array[i] = false;
+	return this;
+    }
+
+    public IntSet copy(){
+	IntSet c = new IntSet(size);
+	for (int i = 0; i < size; i++)
+	    c.array[i] = array[i];
+	return c;
+    }
+
+    public IntSet inter(IntSet s){
+	for (int i = 0; i < s.size; i++)
+	    array[i] = array[i] && s.array[i];
+	return this;
+    }
+
+    public IntSet union(IntSet s){
+	for (int i = 0; i < s.size; i++)
+	    array[i] = array[i] || s.array[i];
+	return this;
+    }
+
+    public boolean equal(IntSet s){
+	for (int i = 0; i < s.size; i++)
+	    if(array[i] != s.array[i])
+		return false;
+	return true;
+    }
+
+    public String toString(){
+	String s = "(";
+	for (int i = 0; i < size; i++)
+	    if(array[i] == true){
+		s += i;
+		s += " ";
+	    }
+	s+= ")";
+	return s;
+    }
+    
+}
diff --git a/test/c3a-ref/add1.c3a b/test/c3a-ref/add1.c3a
new file mode 100644
index 0000000..380ea2a
--- /dev/null
+++ b/test/c3a-ref/add1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 3 + 10
+	write @1	
+	fend
diff --git a/test/c3a-ref/add2.c3a b/test/c3a-ref/add2.c3a
new file mode 100644
index 0000000..0b62ecf
--- /dev/null
+++ b/test/c3a-ref/add2.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 2 + 4
+	@2 = @1 + 8
+	write @2	
+	fend
diff --git a/test/c3a-ref/affect1.c3a b/test/c3a-ref/affect1.c3a
new file mode 100644
index 0000000..6745f48
--- /dev/null
+++ b/test/c3a-ref/affect1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	a = 1
+	write a	
+	fend
diff --git a/test/c3a-ref/affect2.c3a b/test/c3a-ref/affect2.c3a
new file mode 100644
index 0000000..6745f48
--- /dev/null
+++ b/test/c3a-ref/affect2.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	a = 1
+	write a	
+	fend
diff --git a/test/c3a-ref/affect3.c3a b/test/c3a-ref/affect3.c3a
new file mode 100644
index 0000000..5b21472
--- /dev/null
+++ b/test/c3a-ref/affect3.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	a = 1
+	write a	
+	fend
+main	fbegin	#entree fonction
+	param 3
+	@1 = call f
+	fend
diff --git a/test/c3a-ref/and1.c3a b/test/c3a-ref/and1.c3a
new file mode 100644
index 0000000..6b1e7f6
--- /dev/null
+++ b/test/c3a-ref/and1.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 1
+	if 1 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/and2.c3a b/test/c3a-ref/and2.c3a
new file mode 100644
index 0000000..86ec350
--- /dev/null
+++ b/test/c3a-ref/and2.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 1
+	if 0 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/and3.c3a b/test/c3a-ref/and3.c3a
new file mode 100644
index 0000000..6495068
--- /dev/null
+++ b/test/c3a-ref/and3.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 == 0 goto 1
+	if 1 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/and4.c3a b/test/c3a-ref/and4.c3a
new file mode 100644
index 0000000..e86a090
--- /dev/null
+++ b/test/c3a-ref/and4.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 == 0 goto 1
+	if 0 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/and5.c3a b/test/c3a-ref/and5.c3a
new file mode 100644
index 0000000..df33a00
--- /dev/null
+++ b/test/c3a-ref/and5.c3a
@@ -0,0 +1,15 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 3
+	if 0 == 0 goto 3
+	@2 = 1
+	goto 2
+3	@2 = 0
+2	if @2 == 0 goto 1
+	if 1 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/appel-param1.c3a b/test/c3a-ref/appel-param1.c3a
new file mode 100644
index 0000000..f7a67d8
--- /dev/null
+++ b/test/c3a-ref/appel-param1.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	write a	
+	fend
+main	fbegin	#entree fonction
+	param 1
+	@1 = call f
+	fend
diff --git a/test/c3a-ref/appel-param2.c3a b/test/c3a-ref/appel-param2.c3a
new file mode 100644
index 0000000..280c4b9
--- /dev/null
+++ b/test/c3a-ref/appel-param2.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	write a	
+	write b	
+	fend
+main	fbegin	#entree fonction
+	param 1
+	param 456
+	@1 = call f
+	fend
diff --git a/test/c3a-ref/appel-param3.c3a b/test/c3a-ref/appel-param3.c3a
new file mode 100644
index 0000000..68a53cf
--- /dev/null
+++ b/test/c3a-ref/appel-param3.c3a
@@ -0,0 +1,17 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	write a	
+	write b	
+	write c	
+	write d	
+	write e	
+	fend
+main	fbegin	#entree fonction
+	param 1
+	param 2
+	param 3
+	param 4
+	param 5
+	@1 = call f
+	fend
diff --git a/test/c3a-ref/appel-retour1.c3a b/test/c3a-ref/appel-retour1.c3a
new file mode 100644
index 0000000..7aac5ea
--- /dev/null
+++ b/test/c3a-ref/appel-retour1.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	ret a
+	fend
+	fend
+main	fbegin	#entree fonction
+	param 3712
+	@1 = call f
+	write @1	
+	fend
diff --git a/test/c3a-ref/appel1.c3a b/test/c3a-ref/appel1.c3a
new file mode 100644
index 0000000..1b31ff0
--- /dev/null
+++ b/test/c3a-ref/appel1.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	write 1	
+	fend
+main	fbegin	#entree fonction
+	@1 = call f
+	fend
diff --git a/test/c3a-ref/appel2.c3a b/test/c3a-ref/appel2.c3a
new file mode 100644
index 0000000..5431ed3
--- /dev/null
+++ b/test/c3a-ref/appel2.c3a
@@ -0,0 +1,12 @@
+	@0 = call main
+	stop @0
+g	fbegin	#entree fonction
+	write 2	
+	fend
+f	fbegin	#entree fonction
+	write 1	
+	@1 = call g
+	fend
+main	fbegin	#entree fonction
+	@2 = call f
+	fend
diff --git a/test/c3a-ref/appel3.c3a b/test/c3a-ref/appel3.c3a
new file mode 100644
index 0000000..cf066d8
--- /dev/null
+++ b/test/c3a-ref/appel3.c3a
@@ -0,0 +1,12 @@
+	@0 = call main
+	stop @0
+g	fbegin	#entree fonction
+	write 2	
+	fend
+f	fbegin	#entree fonction
+	write 1	
+	fend
+main	fbegin	#entree fonction
+	@1 = call f
+	@2 = call g
+	fend
diff --git a/test/c3a-ref/div1.c3a b/test/c3a-ref/div1.c3a
new file mode 100644
index 0000000..240d4f4
--- /dev/null
+++ b/test/c3a-ref/div1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 4 / 2
+	write @1	
+	fend
diff --git a/test/c3a-ref/div2.c3a b/test/c3a-ref/div2.c3a
new file mode 100644
index 0000000..64c4af5
--- /dev/null
+++ b/test/c3a-ref/div2.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 0 / 712
+	write @1	
+	fend
diff --git a/test/c3a-ref/div3.c3a b/test/c3a-ref/div3.c3a
new file mode 100644
index 0000000..9275013
--- /dev/null
+++ b/test/c3a-ref/div3.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 4 / 2
+	@2 = @1 / 2
+	write @2	
+	fend
diff --git a/test/c3a-ref/div4.c3a b/test/c3a-ref/div4.c3a
new file mode 100644
index 0000000..37d4c26
--- /dev/null
+++ b/test/c3a-ref/div4.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 2 / 3
+	write @1	
+	fend
diff --git a/test/c3a-ref/ecrire1.c3a b/test/c3a-ref/ecrire1.c3a
new file mode 100644
index 0000000..fa9b045
--- /dev/null
+++ b/test/c3a-ref/ecrire1.c3a
@@ -0,0 +1,5 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	write 3456	
+	fend
diff --git a/test/c3a-ref/ecrire2.c3a b/test/c3a-ref/ecrire2.c3a
new file mode 100644
index 0000000..bab1223
--- /dev/null
+++ b/test/c3a-ref/ecrire2.c3a
@@ -0,0 +1,5 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	write 0	
+	fend
diff --git a/test/c3a-ref/egal1.c3a b/test/c3a-ref/egal1.c3a
new file mode 100644
index 0000000..8284ba6
--- /dev/null
+++ b/test/c3a-ref/egal1.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 123 == 123 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/egal2.c3a b/test/c3a-ref/egal2.c3a
new file mode 100644
index 0000000..13efbcd
--- /dev/null
+++ b/test/c3a-ref/egal2.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 412 == 34 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/egal3.c3a b/test/c3a-ref/egal3.c3a
new file mode 100644
index 0000000..e173597
--- /dev/null
+++ b/test/c3a-ref/egal3.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 1
+	if 2 == 2 goto 1
+	@2 = 0
+1	@1 = 1
+	if @2 == 1 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/err5.c3a b/test/c3a-ref/err5.c3a
new file mode 100644
index 0000000..4f8b67f
--- /dev/null
+++ b/test/c3a-ref/err5.c3a
@@ -0,0 +1,7 @@
+f	fbegin	#entree fonction
+	write 1	
+	fend
+main	fbegin	#entree fonction
+	t0 = call f
+	f = t0
+	fend
diff --git a/test/c3a-ref/fibo.c3a b/test/c3a-ref/fibo.c3a
new file mode 100644
index 0000000..a67a525
--- /dev/null
+++ b/test/c3a-ref/fibo.c3a
@@ -0,0 +1,25 @@
+	@0 = call main
+	stop @0
+fibo	fbegin	#entree fonction
+	@1 = 1
+	if n < 2 goto 2
+	@1 = 0
+2	if @1 == 0 goto 0
+	ret 1
+	fend
+	goto 1
+0	@3 = n - 1
+	param @3
+	@2 = call fibo
+	@5 = n - 2
+	param @5
+	@4 = call fibo
+	@6 = @2 + @4
+	ret @6
+	fend
+1	fend
+main	fbegin	#entree fonction
+	param 9
+	@7 = call fibo
+	write @7	
+	fend
diff --git a/test/c3a-ref/inf1.c3a b/test/c3a-ref/inf1.c3a
new file mode 100644
index 0000000..2d1a313
--- /dev/null
+++ b/test/c3a-ref/inf1.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 3 < 3 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/inf2.c3a b/test/c3a-ref/inf2.c3a
new file mode 100644
index 0000000..de2ab0f
--- /dev/null
+++ b/test/c3a-ref/inf2.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 4 < 1 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/inf3.c3a b/test/c3a-ref/inf3.c3a
new file mode 100644
index 0000000..83499a0
--- /dev/null
+++ b/test/c3a-ref/inf3.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 312 < 475 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/inf4.c3a b/test/c3a-ref/inf4.c3a
new file mode 100644
index 0000000..98e7d23
--- /dev/null
+++ b/test/c3a-ref/inf4.c3a
@@ -0,0 +1,11 @@
+	t0 = call main
+	stop t0
+main	fbegin	#entree fonction
+	t2 = 1
+	if 3 < 2 goto l1
+	t2 = 0
+l1	t1 = 1
+	if t2 < 1 goto l0
+	t1 = 0
+l0	write t1	
+	fend
diff --git a/test/c3a-ref/mult1.c3a b/test/c3a-ref/mult1.c3a
new file mode 100644
index 0000000..34d20ee
--- /dev/null
+++ b/test/c3a-ref/mult1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 2 * 3
+	write @1	
+	fend
diff --git a/test/c3a-ref/mult2.c3a b/test/c3a-ref/mult2.c3a
new file mode 100644
index 0000000..78089fe
--- /dev/null
+++ b/test/c3a-ref/mult2.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 0 * 321
+	write @1	
+	fend
diff --git a/test/c3a-ref/mult3.c3a b/test/c3a-ref/mult3.c3a
new file mode 100644
index 0000000..b28dfa9
--- /dev/null
+++ b/test/c3a-ref/mult3.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 3 * 3
+	@2 = @1 * 2
+	write @2	
+	fend
diff --git a/test/c3a-ref/not1.c3a b/test/c3a-ref/not1.c3a
new file mode 100644
index 0000000..991e63e
--- /dev/null
+++ b/test/c3a-ref/not1.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 1 == 0 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/not2.c3a b/test/c3a-ref/not2.c3a
new file mode 100644
index 0000000..482f3d5
--- /dev/null
+++ b/test/c3a-ref/not2.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 1
+	if 0 == 0 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/not3.c3a b/test/c3a-ref/not3.c3a
new file mode 100644
index 0000000..c0800ee
--- /dev/null
+++ b/test/c3a-ref/not3.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 1
+	if 0 == 0 goto 1
+	@2 = 0
+1	@1 = 1
+	if @2 == 0 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/or1.c3a b/test/c3a-ref/or1.c3a
new file mode 100644
index 0000000..844f198
--- /dev/null
+++ b/test/c3a-ref/or1.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 != 0 goto 1
+	if 1 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/or2.c3a b/test/c3a-ref/or2.c3a
new file mode 100644
index 0000000..894e598
--- /dev/null
+++ b/test/c3a-ref/or2.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 != 0 goto 1
+	if 0 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/or3.c3a b/test/c3a-ref/or3.c3a
new file mode 100644
index 0000000..08ea85a
--- /dev/null
+++ b/test/c3a-ref/or3.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 != 0 goto 1
+	if 1 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/or4.c3a b/test/c3a-ref/or4.c3a
new file mode 100644
index 0000000..dfe6660
--- /dev/null
+++ b/test/c3a-ref/or4.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 != 0 goto 1
+	if 0 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/or5.c3a b/test/c3a-ref/or5.c3a
new file mode 100644
index 0000000..c7fae5b
--- /dev/null
+++ b/test/c3a-ref/or5.c3a
@@ -0,0 +1,15 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 != 0 goto 3
+	if 1 != 0 goto 3
+	@2 = 0
+	goto 2
+3	@2 = 1
+2	if @2 != 0 goto 1
+	if 0 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/parenth1.c3a b/test/c3a-ref/parenth1.c3a
new file mode 100644
index 0000000..3cdcdf5
--- /dev/null
+++ b/test/c3a-ref/parenth1.c3a
@@ -0,0 +1,5 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	write 1	
+	fend
diff --git a/test/c3a-ref/parenth2.c3a b/test/c3a-ref/parenth2.c3a
new file mode 100644
index 0000000..ebfa3df
--- /dev/null
+++ b/test/c3a-ref/parenth2.c3a
@@ -0,0 +1,5 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	write 2	
+	fend
diff --git a/test/c3a-ref/prio23-1.c3a b/test/c3a-ref/prio23-1.c3a
new file mode 100644
index 0000000..9b257f0
--- /dev/null
+++ b/test/c3a-ref/prio23-1.c3a
@@ -0,0 +1,9 @@
+	t0 = call main
+	stop t0
+main	fbegin	#entree fonction
+	t1 = 1
+	if 0 = 0 goto l0
+	t1 = 0
+l0	t2 = t1 * 10
+	write t2	
+	fend
diff --git a/test/c3a-ref/prio23-2.c3a b/test/c3a-ref/prio23-2.c3a
new file mode 100644
index 0000000..c675df7
--- /dev/null
+++ b/test/c3a-ref/prio23-2.c3a
@@ -0,0 +1,9 @@
+	t0 = call main
+	stop t0
+main	fbegin	#entree fonction
+	t1 = 1
+	if 10 = 0 goto l0
+	t1 = 0
+l0	t2 = 3 * t1
+	write t2	
+	fend
diff --git a/test/c3a-ref/prio23-3.c3a b/test/c3a-ref/prio23-3.c3a
new file mode 100644
index 0000000..00a6d37
--- /dev/null
+++ b/test/c3a-ref/prio23-3.c3a
@@ -0,0 +1,9 @@
+	t0 = call main
+	stop t0
+main	fbegin	#entree fonction
+	t1 = 1
+	if 0 = 0 goto l0
+	t1 = 0
+l0	t2 = t1 / 1
+	write t2	
+	fend
diff --git a/test/c3a-ref/prio23-4.c3a b/test/c3a-ref/prio23-4.c3a
new file mode 100644
index 0000000..ac5ed73
--- /dev/null
+++ b/test/c3a-ref/prio23-4.c3a
@@ -0,0 +1,12 @@
+	t0 = call main
+	stop t0
+main	fbegin	#entree fonction
+	t1 = 1
+	if 1 = 0 goto l0
+	t1 = 0
+l0	t2 = 1
+	if 0 = 0 goto l1
+	t2 = 0
+l1	t3 = t1 / t2
+	write t3	
+	fend
diff --git a/test/c3a-ref/prio34-1.c3a b/test/c3a-ref/prio34-1.c3a
new file mode 100644
index 0000000..bf1aae0
--- /dev/null
+++ b/test/c3a-ref/prio34-1.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 3 * 4
+	@2 = 2 + @1
+	write @2	
+	fend
diff --git a/test/c3a-ref/prio34-2.c3a b/test/c3a-ref/prio34-2.c3a
new file mode 100644
index 0000000..599e604
--- /dev/null
+++ b/test/c3a-ref/prio34-2.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 2 * 3
+	@2 = @1 - 4
+	write @2	
+	fend
diff --git a/test/c3a-ref/prio34-3.c3a b/test/c3a-ref/prio34-3.c3a
new file mode 100644
index 0000000..21ac788
--- /dev/null
+++ b/test/c3a-ref/prio34-3.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 6 / 3
+	@2 = @1 - 72
+	write @2	
+	fend
diff --git a/test/c3a-ref/prio34-4.c3a b/test/c3a-ref/prio34-4.c3a
new file mode 100644
index 0000000..5b08bc8
--- /dev/null
+++ b/test/c3a-ref/prio34-4.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 20 / 10
+	@2 = 6 + @1
+	write @2	
+	fend
diff --git a/test/c3a-ref/prio45-1.c3a b/test/c3a-ref/prio45-1.c3a
new file mode 100644
index 0000000..66f66e7
--- /dev/null
+++ b/test/c3a-ref/prio45-1.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 0 + 1
+	@1 = 1
+	if 2 == @2 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio45-2.c3a b/test/c3a-ref/prio45-2.c3a
new file mode 100644
index 0000000..1941178
--- /dev/null
+++ b/test/c3a-ref/prio45-2.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 1 + 234
+	@1 = 1
+	if @2 == 1 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio45-3.c3a b/test/c3a-ref/prio45-3.c3a
new file mode 100644
index 0000000..71e45e2
--- /dev/null
+++ b/test/c3a-ref/prio45-3.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 11 + 100
+	@1 = 1
+	if 12 < @2 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio45-4.c3a b/test/c3a-ref/prio45-4.c3a
new file mode 100644
index 0000000..0b01672
--- /dev/null
+++ b/test/c3a-ref/prio45-4.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 21 - 21
+	@1 = 1
+	if @2 < 1 goto 0
+	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio56-1.c3a b/test/c3a-ref/prio56-1.c3a
new file mode 100644
index 0000000..683b54f
--- /dev/null
+++ b/test/c3a-ref/prio56-1.c3a
@@ -0,0 +1,13 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 1
+	if 1 == 2 goto 2
+	@2 = 0
+2	if @2 == 0 goto 1
+	if 1 == 0 goto 1
+	@1 = 1
+	goto 0
+1	@1 = 0
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio56-2.c3a b/test/c3a-ref/prio56-2.c3a
new file mode 100644
index 0000000..e9c62a7
--- /dev/null
+++ b/test/c3a-ref/prio56-2.c3a
@@ -0,0 +1,13 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@2 = 1
+	if 0 == 1 goto 2
+	@2 = 0
+2	if 1 != 0 goto 1
+	if @2 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio67-1.c3a b/test/c3a-ref/prio67-1.c3a
new file mode 100644
index 0000000..ce8a86e
--- /dev/null
+++ b/test/c3a-ref/prio67-1.c3a
@@ -0,0 +1,15 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 == 0 goto 3
+	if 1 == 0 goto 3
+	@2 = 1
+	goto 2
+3	@2 = 0
+2	if @2 != 0 goto 1
+	if 1 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/prio67-2.c3a b/test/c3a-ref/prio67-2.c3a
new file mode 100644
index 0000000..684cec0
--- /dev/null
+++ b/test/c3a-ref/prio67-2.c3a
@@ -0,0 +1,15 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 3
+	if 0 == 0 goto 3
+	@2 = 1
+	goto 2
+3	@2 = 0
+2	if 1 != 0 goto 1
+	if @2 != 0 goto 1
+	@1 = 0
+	goto 0
+1	@1 = 1
+0	write @1	
+	fend
diff --git a/test/c3a-ref/rec1.c3a b/test/c3a-ref/rec1.c3a
new file mode 100644
index 0000000..322131a
--- /dev/null
+++ b/test/c3a-ref/rec1.c3a
@@ -0,0 +1,22 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	@1 = 1
+	if a == 1 goto 2
+	@1 = 0
+2	if @1 == 0 goto 0
+	ret 1
+	fend
+	goto 1
+0	@3 = a - 1
+	param @3
+	@2 = call f
+	@4 = 1 + @2
+	ret @4
+	fend
+1	fend
+main	fbegin	#entree fonction
+	param 100
+	@5 = call f
+	write @5	
+	fend
diff --git a/test/c3a-ref/si1.c3a b/test/c3a-ref/si1.c3a
new file mode 100644
index 0000000..fc0a927
--- /dev/null
+++ b/test/c3a-ref/si1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 1
+	write 1	
+1	fend
diff --git a/test/c3a-ref/si2.c3a b/test/c3a-ref/si2.c3a
new file mode 100644
index 0000000..3bc635d
--- /dev/null
+++ b/test/c3a-ref/si2.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 == 0 goto 0
+	write 1	
+	goto 1
+0	write 0	
+1	fend
diff --git a/test/c3a-ref/si3.c3a b/test/c3a-ref/si3.c3a
new file mode 100644
index 0000000..77f57ae
--- /dev/null
+++ b/test/c3a-ref/si3.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 0
+	write 1	
+	goto 1
+0	write 0	
+1	write 1	
+	fend
diff --git a/test/c3a-ref/si4.c3a b/test/c3a-ref/si4.c3a
new file mode 100644
index 0000000..4820034
--- /dev/null
+++ b/test/c3a-ref/si4.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 0 == 0 goto 0
+	write 1	
+	goto 1
+0	write 0	
+1	write 1	
+	fend
diff --git a/test/c3a-ref/si5.c3a b/test/c3a-ref/si5.c3a
new file mode 100644
index 0000000..0b8d4f2
--- /dev/null
+++ b/test/c3a-ref/si5.c3a
@@ -0,0 +1,9 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	if 1 == 0 goto 3
+	write 1	
+	if 1 == 0 goto 3
+	write 1	
+3	write 1	
+	fend
diff --git a/test/c3a-ref/sub1.c3a b/test/c3a-ref/sub1.c3a
new file mode 100644
index 0000000..1b0e46f
--- /dev/null
+++ b/test/c3a-ref/sub1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 10 - 5
+	write @1	
+	fend
diff --git a/test/c3a-ref/sub2.c3a b/test/c3a-ref/sub2.c3a
new file mode 100644
index 0000000..e489973
--- /dev/null
+++ b/test/c3a-ref/sub2.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 7 - 20
+	write @1	
+	fend
diff --git a/test/c3a-ref/sub3.c3a b/test/c3a-ref/sub3.c3a
new file mode 100644
index 0000000..7ccf2bf
--- /dev/null
+++ b/test/c3a-ref/sub3.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	@1 = 2 - 1
+	@2 = @1 - 1
+	write @2	
+	fend
diff --git a/test/c3a-ref/tab1.c3a b/test/c3a-ref/tab1.c3a
new file mode 100644
index 0000000..453f472
--- /dev/null
+++ b/test/c3a-ref/tab1.c3a
@@ -0,0 +1,10 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	tab[0] = 0
+	tab[1] = 1
+	tab[2] = 2
+	write tab[0]	
+	write tab[1]	
+	write tab[2]	
+	fend
diff --git a/test/c3a-ref/tab2.c3a b/test/c3a-ref/tab2.c3a
new file mode 100644
index 0000000..db4c77a
--- /dev/null
+++ b/test/c3a-ref/tab2.c3a
@@ -0,0 +1,14 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	base = 2
+	@1 = base + 0
+	tab[@1] = 34
+	@2 = base + 1
+	tab[@2] = 74
+	@3 = base + 2
+	tab[@3] = 16
+	write tab[2]	
+	write tab[3]	
+	write tab[4]	
+	fend
diff --git a/test/c3a-ref/tab3.c3a b/test/c3a-ref/tab3.c3a
new file mode 100644
index 0000000..2483abb
--- /dev/null
+++ b/test/c3a-ref/tab3.c3a
@@ -0,0 +1,17 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	base = 2
+	offset = 0
+	@1 = base + offset
+	tab[@1] = 34
+	offset = 1
+	@2 = base + offset
+	tab[@2] = 74
+	offset = 2
+	@3 = base + offset
+	tab[@3] = 16
+	write tab[2]	
+	write tab[3]	
+	write tab[4]	
+	fend
diff --git a/test/c3a-ref/tab4.c3a b/test/c3a-ref/tab4.c3a
new file mode 100644
index 0000000..1613664
--- /dev/null
+++ b/test/c3a-ref/tab4.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	tab[0] = 1
+	tab[tab[0]] = 12
+	@1 = tab[0] + 1
+	tab[@1] = 13
+	write tab[0]	
+	write tab[1]	
+	write tab[2]	
+	fend
diff --git a/test/c3a-ref/tantque1.c3a b/test/c3a-ref/tantque1.c3a
new file mode 100644
index 0000000..78d3f86
--- /dev/null
+++ b/test/c3a-ref/tantque1.c3a
@@ -0,0 +1,14 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	a = 10
+0	@1 = 1
+	if 0 < a goto 2
+	@1 = 0
+2	if @1 == 0 goto 1
+	write a	
+	@2 = a - 1
+	a = @2
+	goto 0
+1	write 0	
+	fend
diff --git a/test/c3a-ref/tantque2.c3a b/test/c3a-ref/tantque2.c3a
new file mode 100644
index 0000000..3adbfa4
--- /dev/null
+++ b/test/c3a-ref/tantque2.c3a
@@ -0,0 +1,22 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	a = 0
+0	@1 = 1
+	if a < 4 goto 2
+	@1 = 0
+2	if @1 == 0 goto 1
+	b = 0
+3	@2 = 1
+	if b < 4 goto 5
+	@2 = 0
+5	if @2 == 0 goto 4
+	write a	
+	write b	
+	@3 = b + 1
+	b = @3
+	goto 3
+4	@4 = a + 1
+	a = @4
+	goto 0
+1	fend
diff --git a/test/c3a-ref/tri.c3a b/test/c3a-ref/tri.c3a
new file mode 100644
index 0000000..f1052ff
--- /dev/null
+++ b/test/c3a-ref/tri.c3a
@@ -0,0 +1,71 @@
+	@0 = call main
+	stop @0
+initialiser	fbegin	#entree fonction
+	tab[0] = 8
+	tab[1] = 6
+	tab[2] = 9
+	tab[3] = 9
+	tab[4] = 4
+	tab[5] = 2
+	tab[6] = 3
+	tab[7] = 1
+	tab[8] = 4
+	tab[9] = 5
+	fend
+afficher	fbegin	#entree fonction
+	i = 0
+0	@1 = 1
+	if i < n goto 2
+	@1 = 0
+2	if @1 == 0 goto 1
+	write tab[i]	
+	@2 = i + 1
+	i = @2
+	goto 0
+1	write 0	
+	fend
+echanger	fbegin	#entree fonction
+	temp = tab[j]
+	tab[j] = tab[i]
+	tab[i] = temp
+	fend
+trier	fbegin	#entree fonction
+	m = n
+	echange = 1
+3	@3 = 1
+	if echange == 1 goto 5
+	@3 = 0
+5	if @3 == 0 goto 4
+	echange = 0
+	j = 0
+6	@5 = m - 1
+	@4 = 1
+	if j < @5 goto 8
+	@4 = 0
+8	if @4 == 0 goto 7
+	@7 = j + 1
+	@6 = 1
+	if tab[@7] < tab[j] goto 11
+	@6 = 0
+11	if @6 == 0 goto 10
+	param j
+	@9 = j + 1
+	param @9
+	@8 = call echanger
+	echange = 1
+10	@10 = j + 1
+	j = @10
+	goto 6
+7	@11 = m - 1
+	m = @11
+	goto 3
+4	fend
+main	fbegin	#entree fonction
+	@12 = call initialiser
+	param 10
+	@13 = call afficher
+	param 10
+	@14 = call trier
+	param 10
+	@15 = call afficher
+	fend
diff --git a/test/c3a-ref/varglob1.c3a b/test/c3a-ref/varglob1.c3a
new file mode 100644
index 0000000..c681ada
--- /dev/null
+++ b/test/c3a-ref/varglob1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	variable = 6834
+	write variable	
+	fend
diff --git a/test/c3a-ref/varglob2.c3a b/test/c3a-ref/varglob2.c3a
new file mode 100644
index 0000000..bdaee50
--- /dev/null
+++ b/test/c3a-ref/varglob2.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	variable = 10
+	@1 = variable + 50
+	write @1	
+	fend
diff --git a/test/c3a-ref/varglob3.c3a b/test/c3a-ref/varglob3.c3a
new file mode 100644
index 0000000..eb8ce56
--- /dev/null
+++ b/test/c3a-ref/varglob3.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	var1 = 10
+	var2 = 34
+	write var1	
+	write var2	
+	fend
diff --git a/test/c3a-ref/varglob4.c3a b/test/c3a-ref/varglob4.c3a
new file mode 100644
index 0000000..c5b8635
--- /dev/null
+++ b/test/c3a-ref/varglob4.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	var1 = 10
+	var2 = 34
+	@1 = var1 + var2
+	write @1	
+	fend
diff --git a/test/c3a-ref/varloc1.c3a b/test/c3a-ref/varloc1.c3a
new file mode 100644
index 0000000..c681ada
--- /dev/null
+++ b/test/c3a-ref/varloc1.c3a
@@ -0,0 +1,6 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	variable = 6834
+	write variable	
+	fend
diff --git a/test/c3a-ref/varloc2.c3a b/test/c3a-ref/varloc2.c3a
new file mode 100644
index 0000000..bdaee50
--- /dev/null
+++ b/test/c3a-ref/varloc2.c3a
@@ -0,0 +1,7 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	variable = 10
+	@1 = variable + 50
+	write @1	
+	fend
diff --git a/test/c3a-ref/varloc3.c3a b/test/c3a-ref/varloc3.c3a
new file mode 100644
index 0000000..7dbbadb
--- /dev/null
+++ b/test/c3a-ref/varloc3.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	var1 = 10
+	var2 = 30
+	write var1	
+	write var2	
+	fend
diff --git a/test/c3a-ref/varloc4.c3a b/test/c3a-ref/varloc4.c3a
new file mode 100644
index 0000000..71e8be7
--- /dev/null
+++ b/test/c3a-ref/varloc4.c3a
@@ -0,0 +1,8 @@
+	@0 = call main
+	stop @0
+main	fbegin	#entree fonction
+	var1 = 10
+	var2 = 30
+	@1 = var1 + var2
+	write @1	
+	fend
diff --git a/test/c3a-ref/varloc5.c3a b/test/c3a-ref/varloc5.c3a
new file mode 100644
index 0000000..3c18306
--- /dev/null
+++ b/test/c3a-ref/varloc5.c3a
@@ -0,0 +1,11 @@
+	@0 = call main
+	stop @0
+f	fbegin	#entree fonction
+	var1 = 10
+	write var1	
+	fend
+main	fbegin	#entree fonction
+	var1 = 20
+	@1 = call f
+	write var1	
+	fend
diff --git a/test/evaluate.py b/test/evaluate.py
new file mode 100755
index 0000000..febaaf2
--- /dev/null
+++ b/test/evaluate.py
@@ -0,0 +1,473 @@
+#! /usr/bin/python3 -u
+
+import sys
+import os
+import subprocess
+import inspect
+import argparse
+
+# code de sortie du compilateur
+
+NOERROR_CODE = 0
+ERR_TYPE_CODE = 3
+ERR_SYMBOL_TABLE_CODE = 4
+ERR_SYNTAX_CODE = 5
+ERR_LEX_CODE = 6
+
+# coefficients pour le calcul de la note finale
+SC_COEFF = 4
+SA_DIFF_COEFF = 0
+TS_DIFF_COEFF = 0
+SA_COEFF = 3
+C3A_DIFF_COEFF = 0
+C3A_COEFF = 3
+PRE_NASM_DIFF = 0
+PRE_NASM_COEFF = 3
+NASM_DIFF_COEFF = 0
+NASM_COEFF = 3
+EXE_COEFF = 0
+ERR_TS_COEFF = 2
+ERR_TYPE_COEFF = 2
+
+# Paths relative to this file (evaluate.py)
+inputPath = "./input/"
+errInputPathTs = "./input_err_ts/"
+errInputPathType = "./input_err_type/"
+refPath = "./"
+srcPath = "../src/"
+# Keep empty
+classpath = ""
+# Outputs files (don't change this, it's set in the main)
+outErr = sys.stderr
+outScore = sys.stdout
+outVerbose = open(os.devnull,"w")
+outputFilename = "result.txt"
+
+################################################################################
+def compileCompiler() :
+  global classpath
+  for file in ["Compiler.java", "SaVM.java", "C3aVM.java", "NasmVM.java"] :
+    if not os.path.isfile(srcPath+file) :
+      print("Skipping compilation of %s"%file, file=outVerbose)
+      continue
+    package = file.lower().split('.')[0].replace('vm', '')
+    if package in ["c3a", "nasm"] and not os.path.isdir(srcPath+package) :
+      print("Skipping compilation of %s"%file, file=outVerbose)
+      continue
+    print("Compiling %s..."%file, end="", file=outVerbose)
+    proc = subprocess.Popen("cd %s && javac %s %s %s"%(srcPath, "-cp " if len(classpath) > 0 else "", classpath, file), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    errMess = proc.stderr.read().decode('utf8')
+    returnCode = proc.wait()
+    if returnCode == 0 :
+      print("Done", file=outVerbose)
+    else :
+      print("", file=outVerbose)
+      print("ERROR !", file=outErr)
+      print(errMess, file=outErr)
+      exit(1)
+    print("", file=outVerbose)
+    classpath = "../xerces-2_12_1/*:%s"%srcPath
+  classpath = ""
+################################################################################
+
+################################################################################
+def deleteClasses() :
+
+  for root, subdirs, files in os.walk("%s.."%srcPath) :
+    if ".git" in root :
+      continue
+    for filename in files :
+      if os.path.splitext(filename)[1] == ".class" :
+        os.remove(root+"/"+filename)
+        
+  return classpath
+################################################################################
+
+################################################################################
+def findClasspath() :
+  global classpath
+
+  if len(classpath) > 0 :
+    return classpath
+
+  for root, subdirs, files in os.walk("%s.."%srcPath) :
+    if ".git" in root :
+      continue
+    for filename in files :
+      if os.path.splitext(filename)[1] in [".class", ".jar"] :
+        classpath += ("" if len(classpath) == 0 else ":") + root
+        break
+
+  classpath += ("" if len(classpath) == 0 else ":")+"../xerces-2_12_1/*"
+  return classpath
+################################################################################
+
+################################################################################
+def compiler(verbose="-v 2") :
+  return "java -classpath %s Compiler %s"%(findClasspath(), verbose)
+################################################################################
+
+################################################################################
+def green(string) :
+  return "\033[92m%s\033[0m"%string
+################################################################################
+
+################################################################################
+def purple(string) :
+  return "\033[95m%s\033[0m"%string
+################################################################################
+
+################################################################################
+def red(string) :
+  return "\033[91m%s\033[0m"%string
+################################################################################
+
+################################################################################
+def changeExtension(filename, newExtension) :
+  return os.path.splitext(filename)[0] + newExtension
+################################################################################
+
+################################################################################
+def findInputFiles(path) :
+  inputFiles = []
+  for filename in os.listdir(path) :
+    if os.path.splitext(filename)[1] == ".l" :
+      inputFiles.append(filename)
+  inputFiles.sort()
+  return inputFiles
+################################################################################
+
+################################################################################
+def deleteCompilationOutputs() :
+  outputExtensions = [".exe", ".exeout", ".o", ".out", ".sa", ".saout", ".sc", ".ts", ".nasm", ".nasmout", ".pre-nasm", ".pre-nasmout", ".c3a", ".c3aout", ".fg", ".fgs", ".ig"]
+  for filename in os.listdir(inputPath) :
+    if os.path.splitext(filename)[1] in outputExtensions :
+      os.remove(inputPath+filename)
+################################################################################
+
+################################################################################
+def compileInputFiles(inputFiles) :
+  evaluation = getNewEvaluationResult(ERR_SYNTAX_CODE)
+  for inputFile in inputFiles :
+    lightFilename = inputFile.split("/")[-1]
+    print("Compiling %s..."%inputFile, file=outVerbose, flush=True, end='')
+    returnCode = subprocess.Popen("{} {}{}".format(compiler(), inputPath, inputFile), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait()
+    if returnCode == NOERROR_CODE :
+      evaluation[1]["correct"].append(lightFilename)
+      print("Done", file=outVerbose)
+    else :
+      evaluation[1]["incorrect"].append(lightFilename)
+      print("ERROR !", file=outErr)
+  print("", file=outVerbose)
+  return evaluation
+################################################################################
+
+################################################################################
+def getNewEvaluationResult(name) :
+  return [name, {"correct" : [], "incorrect" : [], "notfound" : []}]
+################################################################################
+
+################################################################################
+def evaluateCompilationErrors(inputFiles, expectedCode, name) :
+  evaluation = getNewEvaluationResult(name)
+
+  print(file=outVerbose)
+
+  for inputFile in inputFiles :
+    if not os.path.isfile(inputFile) :
+      print("ERROR : could not find '%s'"%inputFile, file=outErr)
+      exit(1)
+    lightFilename = inputFile.split("/")[-1]
+    print("Compiling %s..."%lightFilename, end="", file=outVerbose)
+    returnCode = subprocess.Popen("{} {}".format(compiler(verbose=""), inputFile), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait()
+    print("Done (%d)"%returnCode, file=outVerbose)
+    if returnCode == expectedCode :
+      evaluation[1]["correct"].append(lightFilename)
+    else :
+      evaluation[1]["incorrect"].append(lightFilename)
+  print("", file=outVerbose)
+
+  return evaluation
+################################################################################
+
+################################################################################
+def evaluateDiff(inputFiles, extension, extensionRef, path, name) :
+  evaluation = getNewEvaluationResult(name)
+
+  for filename in inputFiles :
+    producedFile = changeExtension(filename, extension)
+    if not os.path.isfile(inputPath+producedFile) :
+      evaluation[1]["notfound"].append(producedFile)
+      continue
+    
+    ref = refPath+path+changeExtension(producedFile, extensionRef)
+    if not os.path.isfile(ref) :
+      print("ATTENTION : Fichier non trouvé : %s"%ref, file=sys.stderr)
+      continue
+
+    refContent = []
+    for line in open(ref, "r") :
+      line = line.strip()
+      if len(line) > 0 :
+        refContent.append(line)
+    producedContent = []
+    for line in open(inputPath+producedFile, "r") :
+      line = line.strip()
+      if len(line) > 0 :
+        producedContent.append(line)
+
+    if producedContent == refContent :
+      evaluation[1]["correct"].append(producedFile)
+    else :
+      evaluation[1]["incorrect"].append(producedFile)
+
+  return evaluation
+################################################################################
+
+################################################################################
+def evaluateSa(inputFiles) :
+  errs = []
+  for filename in inputFiles :
+    saFilename = inputPath+changeExtension(filename, ".sa")
+    outFilename = inputPath+changeExtension(filename, ".saout")
+    if not os.path.isfile(saFilename) :
+      continue
+
+    command = "java -classpath %s SaVM -sa %s > %s"%(findClasspath(), saFilename, outFilename)
+    out = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read().decode()
+    if len(out) != 0 :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+
+  return evaluateDiff(inputFiles, ".saout", ".out", "out-ref/", "Execution de sa"), errs
+################################################################################
+
+################################################################################
+def evaluateC3a(inputFiles) :
+  errs = []
+  for filename in inputFiles :
+    c3aFilename = inputPath+changeExtension(filename, ".c3a")
+    tsFilename = inputPath+changeExtension(filename, ".ts")
+    outFilename = inputPath+changeExtension(filename, ".c3aout")
+    if not os.path.isfile(c3aFilename) or not os.path.isfile(tsFilename) :
+      continue
+
+    command = "java -classpath %s C3aVM -c3a %s -ts %s > %s"%(findClasspath(), c3aFilename, tsFilename, outFilename)
+    out = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read().decode()
+    if len(out) != 0 :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+
+  return evaluateDiff(inputFiles, ".c3aout", ".out", "out-ref/", "Execution du c3a"), errs
+################################################################################
+
+################################################################################
+def evaluatePreNasm(inputFiles) :
+  errs = []
+  for filename in inputFiles :
+    nasmFilename = inputPath+changeExtension(filename, ".pre-nasm")
+    outFilename = inputPath+changeExtension(filename, ".pre-nasmout")
+    if not os.path.isfile(nasmFilename) :
+      continue
+
+    command = "java -classpath %s NasmVM -nasm %s > %s"%(findClasspath(), nasmFilename, outFilename)
+    out = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read().decode()
+    if len(out) != 0 :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+
+  return evaluateDiff(inputFiles, ".pre-nasmout", ".out", "out-ref/", "Execution du pre-nasm"), errs
+################################################################################
+
+################################################################################
+def evaluateNasm(inputFiles) :
+  errs = []
+  for filename in inputFiles :
+    nasmFilename = inputPath+changeExtension(filename, ".nasm")
+    outFilename = inputPath+changeExtension(filename, ".nasmout")
+    if not os.path.isfile(nasmFilename) :
+      continue
+
+    command = "java -classpath %s NasmVM -nasm %s > %s"%(findClasspath(), nasmFilename, outFilename)
+    out = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read().decode()
+    if len(out) != 0 :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+
+  return evaluateDiff(inputFiles, ".nasmout", ".out", "out-ref/", "Execution du nasm"), errs
+################################################################################
+
+################################################################################
+def evaluateExecutable(inputFiles) :
+  errs = []
+  for filename in inputFiles :
+    nasmFilename = changeExtension(filename, ".nasm")
+    objectFilename = changeExtension(filename, ".o")
+    execFilename = changeExtension(filename, ".exe")
+    outFilename = changeExtension(filename, ".exeout")
+    if not os.path.isfile(inputPath+nasmFilename) :
+      continue
+
+    out = subprocess.Popen("cd {} && nasm -f elf -dwarf -g {}".format(inputPath+"..","input/"+nasmFilename), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read()
+    if not os.path.isfile(inputPath+objectFilename) :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+      continue
+    out = subprocess.Popen("ld -m elf_i386 -o {}{} {}{}".format(inputPath,execFilename,inputPath,objectFilename), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read()
+    if not os.path.isfile(inputPath+execFilename) :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+      continue
+    out = subprocess.Popen("{}{} > {}{}".format(inputPath,execFilename,inputPath,outFilename), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).stderr.read()
+    if not os.path.isfile(inputPath+outFilename) :
+      errs.append("ERROR %s for input %s : '%s'"%(inspect.stack()[0][3], filename, out))
+      continue
+
+  return evaluateDiff(inputFiles, ".exeout", ".out", "out-ref/", "Execution du binaire"), errs
+################################################################################
+
+################################################################################
+def printListElements(destination, elements, colorFunction, useColor, resultStr) :
+  if len(elements) == 0 :
+    return
+  maxColumnSize = len(max(elements, key=len))
+  for filename in elements :
+    if useColor :
+      print("\t{}".format(colorFunction(filename)), file=destination)
+    else :
+      print("\t{:{}} {}".format(filename, maxColumnSize+2, resultStr), file=destination)
+################################################################################
+
+################################################################################
+def printEvaluationResult(destination, evaluationResult, useColor) :
+  name = evaluationResult[0]
+  correct = evaluationResult[1]["correct"]
+  incorrect = evaluationResult[1]["incorrect"]
+  notfound = evaluationResult[1]["notfound"]
+
+  nbCorrect = len(correct)
+  nbTotal = len(correct) + len(incorrect) + len(notfound)
+
+  score = 0.0
+  if nbTotal > 0 :
+    score = 100.0*nbCorrect/nbTotal
+  for dest, color in [(destination, useColor), (open(outputFilename, "a"), False)] :
+    print("Évaluation de %s :"%name, file=dest)
+    print("{}/{} correct ({:6.2f}%)".format(nbCorrect, nbTotal, score), file=dest)
+    if nbCorrect+len(incorrect) > 0 :
+      printListElements(dest, correct, green, color, "CORRECT")
+      printListElements(dest, incorrect, purple, color, "INCORRECT")
+      printListElements(dest, notfound, red, color, "NON-EXISTANT")
+  return score
+################################################################################
+
+################################################################################
+if __name__ == "__main__" :
+  parser = argparse.ArgumentParser()
+  parser.add_argument("--verbose", "-v", default=False, action="store_true",
+    help="Verbose output (obsolete, verbose is default).")
+  parser.add_argument("--silent", "-s", default=False, action="store_true",
+    help="Less verbose output.")
+  parser.add_argument("--noColors", default=False, action="store_true",
+    help="Disable colors in output.")
+  parser.add_argument("--clean", "-c", default=False, action="store_true",
+    help="Clean input dir then exit.")
+  parser.add_argument("--number", "-n", default=None, type=int,
+    help="Restrict tests to n inputs.")
+  parser.add_argument("--files", "-f", default=[], nargs="*",
+    help="Specify input files.")
+  args = parser.parse_args()
+
+  args.verbose = not args.silent
+
+  if args.verbose :
+    outVerbose = outScore
+  if args.clean :
+      deleteCompilationOutputs()
+      exit(0)
+
+  with open(outputFilename, "w") as _ :
+    pass
+
+  inputFiles = args.files[:args.number]
+  if len(inputFiles) == 0 :
+    inputFiles = findInputFiles(inputPath)[:args.number]
+
+  errInputFilesTs = [errInputPathTs+"/"+f for f in findInputFiles(errInputPathTs)[:args.number]]
+  errInputFilesType = [errInputPathType+"/"+f for f in findInputFiles(errInputPathType)[:args.number]]
+
+  deleteCompilationOutputs()
+
+  compileCompiler()
+
+
+  scores = []
+  names = []
+  errors = []
+  names.append("SC           ")
+  res = compileInputFiles(inputFiles)
+  scores.append(printEvaluationResult(outVerbose, res, not args.noColors))
+  msg = "Diff de %s"
+  dfSa = lambda files : (evaluateDiff(inputFiles, ".sa", ".sa", "sa-ref/", msg%"sa"), [])
+  dfTs = lambda files : (evaluateDiff(inputFiles, ".ts", ".ts", "ts-ref/", msg%"ts"), [])
+  dfC3a = lambda files : (evaluateDiff(inputFiles, ".c3a", ".c3a", "c3a-ref/", msg%"c3a"), [])
+  dfPreNasm = lambda files : (evaluateDiff(inputFiles, ".pre-nasm", ".pre-nasm", "pre-nasm-ref/", msg%"pre-nasm"), [])
+  dfNasm = lambda files : (evaluateDiff(inputFiles, ".nasm", ".nasm", "nasm-ref/", msg%"nasm"), [])
+
+  # Evaluation of normal (working) examples
+  for evalTarget in [ 
+                     ("SA-DIFF      ", dfSa),
+                     ("TS-DIFF      ", dfTs),
+                     ("SA           ", evaluateSa),
+                     ("C3A-DIFF     ", dfC3a),
+                     ("C3A          ", evaluateC3a),
+                     ("PRE-NASM-DIFF", dfPreNasm),
+                     ("PRE-NASM     ", evaluatePreNasm),
+                     ("NASM-DIFF    ", dfNasm),
+                     ("NASM         ", evaluateNasm),
+                     ("EXE          ", evaluateExecutable),
+                    ] :
+    names.append(evalTarget[0])
+    res, err = evalTarget[1](inputFiles)
+    scores.append(printEvaluationResult(outVerbose, res, not args.noColors))
+    errors += err
+
+  # Evaluation of ill formed examples, that should trigger a compilation error
+  for evalTarget in [
+                     ("ERR_TS       ", evaluateCompilationErrors, errInputFilesTs, ERR_SYMBOL_TABLE_CODE),
+                     ("ERR_TYPE     ", evaluateCompilationErrors, errInputFilesType, ERR_TYPE_CODE),
+                    ] :
+    names.append(evalTarget[0])
+    res = evalTarget[1](evalTarget[2], evalTarget[3], evalTarget[0])
+    scores.append(printEvaluationResult(outVerbose, res, not args.noColors))
+
+  deleteClasses()
+
+  # The rest of the script will now print the results
+
+  if not args.noColors :
+    print("Légende : {}  {}  {}".format(green("CORRECT"), purple("INCORRECT"), red("NON-EXISTANT")), file=outVerbose)
+
+  errorsStr = ""
+
+  if len(errors) > 0 :
+    errorsStr = "%s\n%s"%((30*"-")+("EVALUATION ERRORS")+(30*"-"), "\n\n".join(errors))
+
+  print(errorsStr)
+  print(errorsStr, file=open(outputFilename, "a"))
+
+  for i in range(len(scores)):
+    print(names[i], "\t", scores[i])
+  
+  print("Copy-pastable scores :", file=outScore)
+  print("\t".join(names), file=outScore)
+  print("\t".join(["%6.2f"%scores[i] for i in range(len(scores))]), file=outScore)
+
+  print("\nSauvegardé dans le fichier %s"%outputFilename)
+
+# les coefficients associés à chaque partie pour le calcul de la note finale
+  coeffs = [SC_COEFF, SA_DIFF_COEFF, TS_DIFF_COEFF, SA_COEFF, C3A_DIFF_COEFF, C3A_COEFF, PRE_NASM_DIFF, PRE_NASM_COEFF, NASM_DIFF_COEFF, NASM_COEFF, EXE_COEFF, ERR_TS_COEFF, ERR_TYPE_COEFF]
+
+# calcul de la note finale
+
+  note = 0
+  for i in range(len(scores)):
+    note += scores[i] / 100 * coeffs[i]
+  print ("note = ",  note)
+
+################################################################################
+
diff --git a/test/fg-ref/add1.fg b/test/fg-ref/add1.fg
new file mode 100644
index 0000000..c297a4b
--- /dev/null
+++ b/test/fg-ref/add1.fg
@@ -0,0 +1,14 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	3	;
+8 : ( 9 )		add	r0,	10	;
+9 : ( 10 )		mov	eax,	r0	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( )		ret	;
diff --git a/test/fg-ref/add2.fg b/test/fg-ref/add2.fg
new file mode 100644
index 0000000..083fd7b
--- /dev/null
+++ b/test/fg-ref/add2.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	2	;
+8 : ( 9 )		add	r0,	4	;
+9 : ( 10 )		mov	r1,	r0	;
+10 : ( 11 )		add	r1,	8	;
+11 : ( 12 )		mov	eax,	r1	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/affect1.fg b/test/fg-ref/affect1.fg
new file mode 100644
index 0000000..61923e5
--- /dev/null
+++ b/test/fg-ref/affect1.fg
@@ -0,0 +1,13 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [a],	1	;Affect
+8 : ( 9 )		mov	eax,	dword [a]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	0	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( )		ret	;
diff --git a/test/fg-ref/affect2.fg b/test/fg-ref/affect2.fg
new file mode 100644
index 0000000..a464fa6
--- /dev/null
+++ b/test/fg-ref/affect2.fg
@@ -0,0 +1,13 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	1	;Affect
+8 : ( 9 )		mov	eax,	dword [ebp-4*1]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	4	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( )		ret	;
diff --git a/test/fg-ref/affect3.fg b/test/fg-ref/affect3.fg
new file mode 100644
index 0000000..333c3c4
--- /dev/null
+++ b/test/fg-ref/affect3.fg
@@ -0,0 +1,24 @@
+0 : ( 13 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp+4*3],	1	;Affect
+8 : ( 9 )		mov	eax,	dword [ebp+4*3]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	0	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( 13 )		ret	;
+13 : ( 14 )	main :	push	ebp	;sauvegarde la valeur de ebp
+14 : ( 15 )		mov	ebp,	esp	;nouvelle valeur de ebp
+15 : ( 16 )		sub	esp,	4	;allocation des variables locales
+16 : ( 17 )		push	3	;Param
+17 : ( 18 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+18 : ( 4 )		call	f	;
+19 : ( 20 )		pop	r0	;récupération de la valeur de retour
+20 : ( 21 )		add	esp,	4	;désallocation des arguments
+21 : ( 22 )		add	esp,	4	;désallocation des variables locales
+22 : ( 23 )		pop	ebp	;restaure la valeur de ebp
+23 : ( )		ret	;
diff --git a/test/fg-ref/and1.fg b/test/fg-ref/and1.fg
new file mode 100644
index 0000000..750f4f1
--- /dev/null
+++ b/test/fg-ref/and1.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	3	;JumpIfEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l1	;JumpIfEqual 2
+10 : ( 11 )		mov	r4,	1	;JumpIfEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l1	;JumpIfEqual 2
+13 : ( 14 )		mov	r0,	1	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/and2.fg b/test/fg-ref/and2.fg
new file mode 100644
index 0000000..2a49f43
--- /dev/null
+++ b/test/fg-ref/and2.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	4	;JumpIfEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l1	;JumpIfEqual 2
+10 : ( 11 )		mov	r4,	0	;JumpIfEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l1	;JumpIfEqual 2
+13 : ( 14 )		mov	r0,	1	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/and3.fg b/test/fg-ref/and3.fg
new file mode 100644
index 0000000..5a994c3
--- /dev/null
+++ b/test/fg-ref/and3.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	0	;JumpIfEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l1	;JumpIfEqual 2
+10 : ( 11 )		mov	r4,	1024	;JumpIfEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l1	;JumpIfEqual 2
+13 : ( 14 )		mov	r0,	1	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/and4.fg b/test/fg-ref/and4.fg
new file mode 100644
index 0000000..3c441de
--- /dev/null
+++ b/test/fg-ref/and4.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	0	;JumpIfEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l1	;JumpIfEqual 2
+10 : ( 11 )		mov	r4,	0	;JumpIfEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l1	;JumpIfEqual 2
+13 : ( 14 )		mov	r0,	1	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/and5.fg b/test/fg-ref/and5.fg
new file mode 100644
index 0000000..479056e
--- /dev/null
+++ b/test/fg-ref/and5.fg
@@ -0,0 +1,29 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r4,	1	;JumpIfEqual 1
+8 : ( 9 )		cmp	r4,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l3	;JumpIfEqual 2
+10 : ( 11 )		mov	r5,	0	;JumpIfEqual 1
+11 : ( 12 )		cmp	r5,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l3	;JumpIfEqual 2
+13 : ( 14 )		mov	r1,	1	;Affect
+14 : ( 16 )		jmp	l2	;Jump
+15 : ( 16 )	l3 :	mov	r1,	0	;Affect
+16 : ( 17 )	l2 :	cmp	r1,	0	;JumpIfEqual 1
+17 : ( 18 23 )		je	l1	;JumpIfEqual 2
+18 : ( 19 )		mov	r6,	1	;JumpIfEqual 1
+19 : ( 20 )		cmp	r6,	0	;on passe par un registre temporaire
+20 : ( 21 23 )		je	l1	;JumpIfEqual 2
+21 : ( 22 )		mov	r0,	1	;Affect
+22 : ( 24 )		jmp	l0	;Jump
+23 : ( 24 )	l1 :	mov	r0,	0	;Affect
+24 : ( 25 )	l0 :	mov	eax,	r0	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		add	esp,	0	;désallocation des variables locales
+27 : ( 28 )		pop	ebp	;restaure la valeur de ebp
+28 : ( )		ret	;
diff --git a/test/fg-ref/appel-param1.fg b/test/fg-ref/appel-param1.fg
new file mode 100644
index 0000000..41c20bf
--- /dev/null
+++ b/test/fg-ref/appel-param1.fg
@@ -0,0 +1,23 @@
+0 : ( 12 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	dword [ebp+4*3]	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	main :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	0	;allocation des variables locales
+15 : ( 16 )		push	1	;Param
+16 : ( 17 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+17 : ( 4 )		call	f	;
+18 : ( 19 )		pop	r0	;récupération de la valeur de retour
+19 : ( 20 )		add	esp,	4	;désallocation des arguments
+20 : ( 21 )		add	esp,	0	;désallocation des variables locales
+21 : ( 22 )		pop	ebp	;restaure la valeur de ebp
+22 : ( )		ret	;
diff --git a/test/fg-ref/appel-param2.fg b/test/fg-ref/appel-param2.fg
new file mode 100644
index 0000000..4b41c80
--- /dev/null
+++ b/test/fg-ref/appel-param2.fg
@@ -0,0 +1,26 @@
+0 : ( 14 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	dword [ebp+4*4]	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		mov	eax,	dword [ebp+4*3]	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( 14 )		ret	;
+14 : ( 15 )	main :	push	ebp	;sauvegarde la valeur de ebp
+15 : ( 16 )		mov	ebp,	esp	;nouvelle valeur de ebp
+16 : ( 17 )		sub	esp,	0	;allocation des variables locales
+17 : ( 18 )		push	1	;Param
+18 : ( 19 )		push	456	;Param
+19 : ( 20 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+20 : ( 4 )		call	f	;
+21 : ( 22 )		pop	r0	;récupération de la valeur de retour
+22 : ( 23 )		add	esp,	8	;désallocation des arguments
+23 : ( 24 )		add	esp,	0	;désallocation des variables locales
+24 : ( 25 )		pop	ebp	;restaure la valeur de ebp
+25 : ( )		ret	;
diff --git a/test/fg-ref/appel-param3.fg b/test/fg-ref/appel-param3.fg
new file mode 100644
index 0000000..a4d7228
--- /dev/null
+++ b/test/fg-ref/appel-param3.fg
@@ -0,0 +1,35 @@
+0 : ( 20 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	dword [ebp+4*7]	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		mov	eax,	dword [ebp+4*6]	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		mov	eax,	dword [ebp+4*5]	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		mov	eax,	dword [ebp+4*4]	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )		mov	eax,	dword [ebp+4*3]	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		add	esp,	0	;désallocation des variables locales
+18 : ( 19 )		pop	ebp	;restaure la valeur de ebp
+19 : ( 20 )		ret	;
+20 : ( 21 )	main :	push	ebp	;sauvegarde la valeur de ebp
+21 : ( 22 )		mov	ebp,	esp	;nouvelle valeur de ebp
+22 : ( 23 )		sub	esp,	0	;allocation des variables locales
+23 : ( 24 )		push	1	;Param
+24 : ( 25 )		push	2	;Param
+25 : ( 26 )		push	3	;Param
+26 : ( 27 )		push	4	;Param
+27 : ( 28 )		push	5	;Param
+28 : ( 29 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+29 : ( 4 )		call	f	;
+30 : ( 31 )		pop	r0	;récupération de la valeur de retour
+31 : ( 32 )		add	esp,	20	;désallocation des arguments
+32 : ( 33 )		add	esp,	0	;désallocation des variables locales
+33 : ( 34 )		pop	ebp	;restaure la valeur de ebp
+34 : ( )		ret	;
diff --git a/test/fg-ref/appel-retour1.fg b/test/fg-ref/appel-retour1.fg
new file mode 100644
index 0000000..dc08c96
--- /dev/null
+++ b/test/fg-ref/appel-retour1.fg
@@ -0,0 +1,25 @@
+0 : ( 12 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	dword [ebp+4*3]	;ecriture de la valeur de retour
+8 : ( 9 )		mov	dword [ebp+4*2],	r3	;on passe par un registre temporaire
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	main :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	0	;allocation des variables locales
+15 : ( 16 )		push	3712	;Param
+16 : ( 17 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+17 : ( 4 )		call	f	;
+18 : ( 19 )		pop	r0	;récupération de la valeur de retour
+19 : ( 20 )		add	esp,	4	;désallocation des arguments
+20 : ( 21 )		mov	eax,	r0	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fg-ref/appel1.fg b/test/fg-ref/appel1.fg
new file mode 100644
index 0000000..c3ca7da
--- /dev/null
+++ b/test/fg-ref/appel1.fg
@@ -0,0 +1,21 @@
+0 : ( 12 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	1	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	main :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	0	;allocation des variables locales
+15 : ( 16 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+16 : ( 4 )		call	f	;
+17 : ( 18 )		pop	r0	;récupération de la valeur de retour
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/appel2.fg b/test/fg-ref/appel2.fg
new file mode 100644
index 0000000..5dd8046
--- /dev/null
+++ b/test/fg-ref/appel2.fg
@@ -0,0 +1,32 @@
+0 : ( 23 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	g :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	2	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	f :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	0	;allocation des variables locales
+15 : ( 16 )		mov	eax,	1	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+18 : ( 4 )		call	g	;
+19 : ( 20 )		pop	r0	;récupération de la valeur de retour
+20 : ( 21 )		add	esp,	0	;désallocation des variables locales
+21 : ( 22 )		pop	ebp	;restaure la valeur de ebp
+22 : ( 23 )		ret	;
+23 : ( 24 )	main :	push	ebp	;sauvegarde la valeur de ebp
+24 : ( 25 )		mov	ebp,	esp	;nouvelle valeur de ebp
+25 : ( 26 )		sub	esp,	0	;allocation des variables locales
+26 : ( 27 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+27 : ( 12 )		call	f	;
+28 : ( 29 )		pop	r1	;récupération de la valeur de retour
+29 : ( 30 )		add	esp,	0	;désallocation des variables locales
+30 : ( 31 )		pop	ebp	;restaure la valeur de ebp
+31 : ( )		ret	;
diff --git a/test/fg-ref/appel3.fg b/test/fg-ref/appel3.fg
new file mode 100644
index 0000000..d4964b3
--- /dev/null
+++ b/test/fg-ref/appel3.fg
@@ -0,0 +1,32 @@
+0 : ( 20 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	g :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	2	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	f :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	0	;allocation des variables locales
+15 : ( 16 )		mov	eax,	1	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		add	esp,	0	;désallocation des variables locales
+18 : ( 19 )		pop	ebp	;restaure la valeur de ebp
+19 : ( 20 )		ret	;
+20 : ( 21 )	main :	push	ebp	;sauvegarde la valeur de ebp
+21 : ( 22 )		mov	ebp,	esp	;nouvelle valeur de ebp
+22 : ( 23 )		sub	esp,	0	;allocation des variables locales
+23 : ( 24 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+24 : ( 12 )		call	f	;
+25 : ( 26 )		pop	r0	;récupération de la valeur de retour
+26 : ( 27 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+27 : ( 4 )		call	g	;
+28 : ( 29 )		pop	r1	;récupération de la valeur de retour
+29 : ( 30 )		add	esp,	0	;désallocation des variables locales
+30 : ( 31 )		pop	ebp	;restaure la valeur de ebp
+31 : ( )		ret	;
diff --git a/test/fg-ref/div1.fg b/test/fg-ref/div1.fg
new file mode 100644
index 0000000..eccd4da
--- /dev/null
+++ b/test/fg-ref/div1.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	4	;
+8 : ( 9 )		mov	r4,	2	;
+9 : ( 10 )		idiv	r4	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	eax,	r0	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/div2.fg b/test/fg-ref/div2.fg
new file mode 100644
index 0000000..7a56fa1
--- /dev/null
+++ b/test/fg-ref/div2.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	0	;
+8 : ( 9 )		mov	r4,	712	;
+9 : ( 10 )		idiv	r4	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	eax,	r0	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/div3.fg b/test/fg-ref/div3.fg
new file mode 100644
index 0000000..a7e9224
--- /dev/null
+++ b/test/fg-ref/div3.fg
@@ -0,0 +1,20 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	4	;
+8 : ( 9 )		mov	r5,	2	;
+9 : ( 10 )		idiv	r5	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	eax,	r0	;
+12 : ( 13 )		mov	r8,	2	;
+13 : ( 14 )		idiv	r8	;
+14 : ( 15 )		mov	r1,	eax	;
+15 : ( 16 )		mov	eax,	r1	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		add	esp,	0	;désallocation des variables locales
+18 : ( 19 )		pop	ebp	;restaure la valeur de ebp
+19 : ( )		ret	;
diff --git a/test/fg-ref/div4.fg b/test/fg-ref/div4.fg
new file mode 100644
index 0000000..1290454
--- /dev/null
+++ b/test/fg-ref/div4.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	2	;
+8 : ( 9 )		mov	r4,	3	;
+9 : ( 10 )		idiv	r4	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	eax,	r0	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/ecrire1.fg b/test/fg-ref/ecrire1.fg
new file mode 100644
index 0000000..77c65e8
--- /dev/null
+++ b/test/fg-ref/ecrire1.fg
@@ -0,0 +1,12 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	3456	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( )		ret	;
diff --git a/test/fg-ref/ecrire2.fg b/test/fg-ref/ecrire2.fg
new file mode 100644
index 0000000..31b3bc5
--- /dev/null
+++ b/test/fg-ref/ecrire2.fg
@@ -0,0 +1,12 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	0	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( )		ret	;
diff --git a/test/fg-ref/egal1.fg b/test/fg-ref/egal1.fg
new file mode 100644
index 0000000..c8c0ce0
--- /dev/null
+++ b/test/fg-ref/egal1.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	123	;JumpIfEqual 1
+9 : ( 10 )		cmp	r3,	123	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/egal2.fg b/test/fg-ref/egal2.fg
new file mode 100644
index 0000000..4122164
--- /dev/null
+++ b/test/fg-ref/egal2.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	412	;JumpIfEqual 1
+9 : ( 10 )		cmp	r3,	34	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/egal3.fg b/test/fg-ref/egal3.fg
new file mode 100644
index 0000000..7ceae35
--- /dev/null
+++ b/test/fg-ref/egal3.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;Affect
+8 : ( 9 )		mov	r4,	2	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	2	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l1	;JumpIfEqual 2
+11 : ( 12 )		mov	r1,	0	;Affect
+12 : ( 13 )	l1 :	mov	r0,	1	;Affect
+13 : ( 14 )		cmp	r1,	1	;JumpIfEqual 1
+14 : ( 15 16 )		je	l0	;JumpIfEqual 2
+15 : ( 16 )		mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/err5.fg b/test/fg-ref/err5.fg
new file mode 100644
index 0000000..be06113
--- /dev/null
+++ b/test/fg-ref/err5.fg
@@ -0,0 +1,22 @@
+0 : ( 12 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	1	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( 12 )		ret	;
+12 : ( 13 )	main :	push	ebp	;sauvegarde la valeur de ebp
+13 : ( 14 )		mov	ebp,	esp	;nouvelle valeur de ebp
+14 : ( 15 )		sub	esp,	4	;allocation des variables locales
+15 : ( 16 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+16 : ( 4 )		call	f	;
+17 : ( 18 )		pop	r0	;récupération de la valeur de retour
+18 : ( 19 )		mov	dword [ebp-4*1],	r0	;Affect
+19 : ( 20 )		add	esp,	4	;désallocation des variables locales
+20 : ( 21 )		pop	ebp	;restaure la valeur de ebp
+21 : ( )		ret	;
diff --git a/test/fg-ref/fibo.fg b/test/fg-ref/fibo.fg
new file mode 100644
index 0000000..70c1ca0
--- /dev/null
+++ b/test/fg-ref/fibo.fg
@@ -0,0 +1,80 @@
+0 : ( 1 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+1 : ( 2 )		call	main	;
+2 : ( 3 )		pop	r0	;récupération de la valeur de retour
+3 : ( 4 )		mov	ebx,	0	; valeur de retour du programme
+4 : ( 5 )		mov	eax,	1	; code de sortie
+5 : ( 6 )		int 0x80	;
+6 : ( 7 )	fibo :	push	ebp	;sauvegarde la valeur de ebp
+7 : ( 8 )		mov	ebp,	esp	;nouvelle valeur de ebp
+8 : ( 9 )		push	eax	;sauvegarde de eax
+9 : ( 10 )		push	ebx	;sauvegarde de ebx
+10 : ( 11 )		push	ecx	;sauvegarde de ecx
+11 : ( 12 )		push	edx	;sauvegarde de edx
+12 : ( 13 )		sub	esp,	0	;allocation des variables locales
+13 : ( 14 )		mov	r1,	1	;Affect
+14 : ( 15 )		cmp	dword [ebp+12],	2	;JumpIfLess 1
+15 : ( 16 17 )		jl	l2	;JumpIfLess 2
+16 : ( 17 )		mov	r1,	0	;Affect
+17 : ( 18 )	l2 :	cmp	r1,	0	;JumpIfEqual 1
+18 : ( 19 28 )		je	l0	;JumpIfEqual 2
+19 : ( 20 )		mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+20 : ( 21 )		add	esp,	0	;désallocation des variables locales
+21 : ( 22 )		pop	edx	;restaure edx
+22 : ( 23 )		pop	ecx	;restaure ecx
+23 : ( 24 )		pop	ebx	;restaure ebx
+24 : ( 25 )		pop	eax	;restaure eax
+25 : ( 26 )		pop	ebp	;restaure la valeur de ebp
+26 : ( )		ret	;
+27 : ( 52 )		jmp	l1	;Jump
+28 : ( 29 )	l0 :	mov	r3,	dword [ebp+12]	;
+29 : ( 30 )		sub	r3,	1	;
+30 : ( 31 )		push	r3	;Param
+31 : ( 32 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+32 : ( 33 )		call	fibo	;
+33 : ( 34 )		pop	r2	;récupération de la valeur de retour
+34 : ( 35 )		add	esp,	4	;désallocation des arguments
+35 : ( 36 )		mov	r5,	dword [ebp+12]	;
+36 : ( 37 )		sub	r5,	2	;
+37 : ( 38 )		push	r5	;Param
+38 : ( 39 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+39 : ( 40 )		call	fibo	;
+40 : ( 41 )		pop	r4	;récupération de la valeur de retour
+41 : ( 42 )		add	esp,	4	;désallocation des arguments
+42 : ( 43 )		mov	r6,	r2	;
+43 : ( 44 )		add	r6,	r4	;
+44 : ( 45 )		mov	dword [ebp+8],	r6	;ecriture de la valeur de retour
+45 : ( 46 )		add	esp,	0	;désallocation des variables locales
+46 : ( 47 )		pop	edx	;restaure edx
+47 : ( 48 )		pop	ecx	;restaure ecx
+48 : ( 49 )		pop	ebx	;restaure ebx
+49 : ( 50 )		pop	eax	;restaure eax
+50 : ( 51 )		pop	ebp	;restaure la valeur de ebp
+51 : ( )		ret	;
+52 : ( 53 )	l1 :	add	esp,	0	;désallocation des variables locales
+53 : ( 54 )		pop	edx	;restaure edx
+54 : ( 55 )		pop	ecx	;restaure ecx
+55 : ( 56 )		pop	ebx	;restaure ebx
+56 : ( 57 )		pop	eax	;restaure eax
+57 : ( 58 )		pop	ebp	;restaure la valeur de ebp
+58 : ( )		ret	;
+59 : ( 60 )	main :	push	ebp	;sauvegarde la valeur de ebp
+60 : ( 61 )		mov	ebp,	esp	;nouvelle valeur de ebp
+61 : ( 62 )		push	eax	;sauvegarde de eax
+62 : ( 63 )		push	ebx	;sauvegarde de ebx
+63 : ( 64 )		push	ecx	;sauvegarde de ecx
+64 : ( 65 )		push	edx	;sauvegarde de edx
+65 : ( 66 )		sub	esp,	0	;allocation des variables locales
+66 : ( 67 )		push	9	;Param
+67 : ( 68 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+68 : ( 69 )		call	fibo	;
+69 : ( 70 )		pop	r7	;récupération de la valeur de retour
+70 : ( 71 )		add	esp,	4	;désallocation des arguments
+71 : ( 72 )		mov	eax,	r7	;Write 1
+72 : ( 73 )		call	iprintLF	;Write 2
+73 : ( 74 )		add	esp,	0	;désallocation des variables locales
+74 : ( 75 )		pop	edx	;restaure edx
+75 : ( 76 )		pop	ecx	;restaure ecx
+76 : ( 77 )		pop	ebx	;restaure ebx
+77 : ( 78 )		pop	eax	;restaure eax
+78 : ( 79 )		pop	ebp	;restaure la valeur de ebp
+79 : ( )		ret	;
diff --git a/test/fg-ref/inf1.fg b/test/fg-ref/inf1.fg
new file mode 100644
index 0000000..3b96a9b
--- /dev/null
+++ b/test/fg-ref/inf1.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	3	;JumpIfLess 1
+9 : ( 10 )		cmp	r3,	3	;on passe par un registre temporaire
+10 : ( 11 12 )		jl	l0	;JumpIfLess 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/inf2.fg b/test/fg-ref/inf2.fg
new file mode 100644
index 0000000..caaacf3
--- /dev/null
+++ b/test/fg-ref/inf2.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	4	;JumpIfLess 1
+9 : ( 10 )		cmp	r3,	1	;on passe par un registre temporaire
+10 : ( 11 12 )		jl	l0	;JumpIfLess 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/inf3.fg b/test/fg-ref/inf3.fg
new file mode 100644
index 0000000..22bb0d9
--- /dev/null
+++ b/test/fg-ref/inf3.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	312	;JumpIfLess 1
+9 : ( 10 )		cmp	r3,	475	;on passe par un registre temporaire
+10 : ( 11 12 )		jl	l0	;JumpIfLess 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/inf4.fg b/test/fg-ref/inf4.fg
new file mode 100644
index 0000000..3da39ec
--- /dev/null
+++ b/test/fg-ref/inf4.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;Affect
+8 : ( 9 )		mov	r4,	3	;JumpIfLess 1
+9 : ( 10 )		cmp	r4,	2	;on passe par un registre temporaire
+10 : ( 11 12 )		jl	l1	;JumpIfLess 2
+11 : ( 12 )		mov	r1,	0	;Affect
+12 : ( 13 )	l1 :	mov	r0,	1	;Affect
+13 : ( 14 )		cmp	r1,	1	;JumpIfLess 1
+14 : ( 15 16 )		jl	l0	;JumpIfLess 2
+15 : ( 16 )		mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/mult1.fg b/test/fg-ref/mult1.fg
new file mode 100644
index 0000000..227aefc
--- /dev/null
+++ b/test/fg-ref/mult1.fg
@@ -0,0 +1,14 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	2	;
+8 : ( 9 )		imul	r0,	3	;
+9 : ( 10 )		mov	eax,	r0	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( )		ret	;
diff --git a/test/fg-ref/mult2.fg b/test/fg-ref/mult2.fg
new file mode 100644
index 0000000..bc8b6a5
--- /dev/null
+++ b/test/fg-ref/mult2.fg
@@ -0,0 +1,14 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	0	;
+8 : ( 9 )		imul	r0,	321	;
+9 : ( 10 )		mov	eax,	r0	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( )		ret	;
diff --git a/test/fg-ref/mult3.fg b/test/fg-ref/mult3.fg
new file mode 100644
index 0000000..2e78fb6
--- /dev/null
+++ b/test/fg-ref/mult3.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	3	;
+8 : ( 9 )		imul	r0,	3	;
+9 : ( 10 )		mov	r1,	r0	;
+10 : ( 11 )		imul	r1,	2	;
+11 : ( 12 )		mov	eax,	r1	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/not1.fg b/test/fg-ref/not1.fg
new file mode 100644
index 0000000..7b67cd6
--- /dev/null
+++ b/test/fg-ref/not1.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	312	;JumpIfEqual 1
+9 : ( 10 )		cmp	r3,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/not2.fg b/test/fg-ref/not2.fg
new file mode 100644
index 0000000..6b7e911
--- /dev/null
+++ b/test/fg-ref/not2.fg
@@ -0,0 +1,17 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r3,	0	;JumpIfEqual 1
+9 : ( 10 )		cmp	r3,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;Write 1
+13 : ( )		call	iprintLF	;Write 2
+14 : ( 15 )		add	esp,	0	;désallocation des variables locales
+15 : ( 16 )		pop	ebp	;restaure la valeur de ebp
+16 : ( )		ret	;
diff --git a/test/fg-ref/not3.fg b/test/fg-ref/not3.fg
new file mode 100644
index 0000000..a2d3434
--- /dev/null
+++ b/test/fg-ref/not3.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;Affect
+8 : ( 9 )		mov	r4,	0	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l1	;JumpIfEqual 2
+11 : ( 12 )		mov	r1,	0	;Affect
+12 : ( 13 )	l1 :	mov	r0,	1	;Affect
+13 : ( 14 )		cmp	r1,	0	;JumpIfEqual 1
+14 : ( 15 16 )		je	l0	;JumpIfEqual 2
+15 : ( 16 )		mov	r0,	0	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/or1.fg b/test/fg-ref/or1.fg
new file mode 100644
index 0000000..d5799f4
--- /dev/null
+++ b/test/fg-ref/or1.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	1	;jumpIfNotEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		jne	l1	;jumpIfNotEqual 2
+10 : ( 11 )		mov	r4,	1	;jumpIfNotEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		jne	l1	;jumpIfNotEqual 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	1	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/or2.fg b/test/fg-ref/or2.fg
new file mode 100644
index 0000000..e56cdf0
--- /dev/null
+++ b/test/fg-ref/or2.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	1	;jumpIfNotEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		jne	l1	;jumpIfNotEqual 2
+10 : ( 11 )		mov	r4,	0	;jumpIfNotEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		jne	l1	;jumpIfNotEqual 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	1	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/or3.fg b/test/fg-ref/or3.fg
new file mode 100644
index 0000000..f045f74
--- /dev/null
+++ b/test/fg-ref/or3.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	0	;jumpIfNotEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		jne	l1	;jumpIfNotEqual 2
+10 : ( 11 )		mov	r4,	315	;jumpIfNotEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		jne	l1	;jumpIfNotEqual 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	1	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/or4.fg b/test/fg-ref/or4.fg
new file mode 100644
index 0000000..f55660b
--- /dev/null
+++ b/test/fg-ref/or4.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	0	;jumpIfNotEqual 1
+8 : ( 9 )		cmp	r3,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		jne	l1	;jumpIfNotEqual 2
+10 : ( 11 )		mov	r4,	0	;jumpIfNotEqual 1
+11 : ( 12 )		cmp	r4,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		jne	l1	;jumpIfNotEqual 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 16 )		jmp	l0	;Jump
+15 : ( 16 )	l1 :	mov	r0,	1	;Affect
+16 : ( 17 )	l0 :	mov	eax,	r0	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/or5.fg b/test/fg-ref/or5.fg
new file mode 100644
index 0000000..a374a43
--- /dev/null
+++ b/test/fg-ref/or5.fg
@@ -0,0 +1,29 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r4,	0	;jumpIfNotEqual 1
+8 : ( 9 )		cmp	r4,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		jne	l3	;jumpIfNotEqual 2
+10 : ( 11 )		mov	r5,	1	;jumpIfNotEqual 1
+11 : ( 12 )		cmp	r5,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		jne	l3	;jumpIfNotEqual 2
+13 : ( 14 )		mov	r1,	0	;Affect
+14 : ( 16 )		jmp	l2	;Jump
+15 : ( 16 )	l3 :	mov	r1,	1	;Affect
+16 : ( 17 )	l2 :	cmp	r1,	0	;jumpIfNotEqual 1
+17 : ( 18 23 )		jne	l1	;jumpIfNotEqual 2
+18 : ( 19 )		mov	r6,	0	;jumpIfNotEqual 1
+19 : ( 20 )		cmp	r6,	0	;on passe par un registre temporaire
+20 : ( 21 23 )		jne	l1	;jumpIfNotEqual 2
+21 : ( 22 )		mov	r0,	0	;Affect
+22 : ( 24 )		jmp	l0	;Jump
+23 : ( 24 )	l1 :	mov	r0,	1	;Affect
+24 : ( 25 )	l0 :	mov	eax,	r0	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		add	esp,	0	;désallocation des variables locales
+27 : ( 28 )		pop	ebp	;restaure la valeur de ebp
+28 : ( )		ret	;
diff --git a/test/fg-ref/parenth1.fg b/test/fg-ref/parenth1.fg
new file mode 100644
index 0000000..cae97fc
--- /dev/null
+++ b/test/fg-ref/parenth1.fg
@@ -0,0 +1,12 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	1	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( )		ret	;
diff --git a/test/fg-ref/parenth2.fg b/test/fg-ref/parenth2.fg
new file mode 100644
index 0000000..11ce321
--- /dev/null
+++ b/test/fg-ref/parenth2.fg
@@ -0,0 +1,12 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	2	;Write 1
+8 : ( )		call	iprintLF	;Write 2
+9 : ( 10 )		add	esp,	0	;désallocation des variables locales
+10 : ( 11 )		pop	ebp	;restaure la valeur de ebp
+11 : ( )		ret	;
diff --git a/test/fg-ref/prio23-1.fg b/test/fg-ref/prio23-1.fg
new file mode 100644
index 0000000..64a2316
--- /dev/null
+++ b/test/fg-ref/prio23-1.fg
@@ -0,0 +1,19 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r4,	0	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	r1,	r0	;
+13 : ( 14 )		imul	r1,	10	;
+14 : ( 15 )		mov	eax,	r1	;Write 1
+15 : ( )		call	iprintLF	;Write 2
+16 : ( 17 )		add	esp,	0	;désallocation des variables locales
+17 : ( 18 )		pop	ebp	;restaure la valeur de ebp
+18 : ( )		ret	;
diff --git a/test/fg-ref/prio23-2.fg b/test/fg-ref/prio23-2.fg
new file mode 100644
index 0000000..40ad4e9
--- /dev/null
+++ b/test/fg-ref/prio23-2.fg
@@ -0,0 +1,19 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r4,	10	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	r1,	3	;
+13 : ( 14 )		imul	r1,	r0	;
+14 : ( 15 )		mov	eax,	r1	;Write 1
+15 : ( )		call	iprintLF	;Write 2
+16 : ( 17 )		add	esp,	0	;désallocation des variables locales
+17 : ( 18 )		pop	ebp	;restaure la valeur de ebp
+18 : ( )		ret	;
diff --git a/test/fg-ref/prio23-3.fg b/test/fg-ref/prio23-3.fg
new file mode 100644
index 0000000..b816b70
--- /dev/null
+++ b/test/fg-ref/prio23-3.fg
@@ -0,0 +1,21 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r4,	0	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	eax,	r0	;
+13 : ( 14 )		mov	r6,	1	;
+14 : ( 15 )		idiv	r6	;
+15 : ( 16 )		mov	r1,	eax	;
+16 : ( 17 )		mov	eax,	r1	;Write 1
+17 : ( )		call	iprintLF	;Write 2
+18 : ( 19 )		add	esp,	0	;désallocation des variables locales
+19 : ( 20 )		pop	ebp	;restaure la valeur de ebp
+20 : ( )		ret	;
diff --git a/test/fg-ref/prio23-4.fg b/test/fg-ref/prio23-4.fg
new file mode 100644
index 0000000..08cb33a
--- /dev/null
+++ b/test/fg-ref/prio23-4.fg
@@ -0,0 +1,25 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	1	;Affect
+8 : ( 9 )		mov	r5,	1	;JumpIfEqual 1
+9 : ( 10 )		cmp	r5,	0	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l0	;JumpIfEqual 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l0 :	mov	r1,	1	;Affect
+13 : ( 14 )		mov	r6,	0	;JumpIfEqual 1
+14 : ( 15 )		cmp	r6,	0	;on passe par un registre temporaire
+15 : ( 16 17 )		je	l1	;JumpIfEqual 2
+16 : ( 17 )		mov	r1,	0	;Affect
+17 : ( 18 )	l1 :	mov	eax,	r0	;
+18 : ( 19 )		idiv	r1	;
+19 : ( 20 )		mov	r2,	eax	;
+20 : ( 21 )		mov	eax,	r2	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fg-ref/prio34-1.fg b/test/fg-ref/prio34-1.fg
new file mode 100644
index 0000000..9eeb40e
--- /dev/null
+++ b/test/fg-ref/prio34-1.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	3	;
+8 : ( 9 )		imul	r0,	4	;
+9 : ( 10 )		mov	r1,	2	;
+10 : ( 11 )		add	r1,	r0	;
+11 : ( 12 )		mov	eax,	r1	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/prio34-2.fg b/test/fg-ref/prio34-2.fg
new file mode 100644
index 0000000..fb90144
--- /dev/null
+++ b/test/fg-ref/prio34-2.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	2	;
+8 : ( 9 )		imul	r0,	3	;
+9 : ( 10 )		mov	r1,	r0	;
+10 : ( 11 )		sub	r1,	4	;
+11 : ( 12 )		mov	eax,	r1	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/prio34-3.fg b/test/fg-ref/prio34-3.fg
new file mode 100644
index 0000000..9c8c152
--- /dev/null
+++ b/test/fg-ref/prio34-3.fg
@@ -0,0 +1,18 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	6	;
+8 : ( 9 )		mov	r5,	3	;
+9 : ( 10 )		idiv	r5	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	r1,	r0	;
+12 : ( 13 )		sub	r1,	72	;
+13 : ( 14 )		mov	eax,	r1	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )		add	esp,	0	;désallocation des variables locales
+16 : ( 17 )		pop	ebp	;restaure la valeur de ebp
+17 : ( )		ret	;
diff --git a/test/fg-ref/prio34-4.fg b/test/fg-ref/prio34-4.fg
new file mode 100644
index 0000000..9f93a00
--- /dev/null
+++ b/test/fg-ref/prio34-4.fg
@@ -0,0 +1,18 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	eax,	20	;
+8 : ( 9 )		mov	r5,	10	;
+9 : ( 10 )		idiv	r5	;
+10 : ( 11 )		mov	r0,	eax	;
+11 : ( 12 )		mov	r1,	6	;
+12 : ( 13 )		add	r1,	r0	;
+13 : ( 14 )		mov	eax,	r1	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )		add	esp,	0	;désallocation des variables locales
+16 : ( 17 )		pop	ebp	;restaure la valeur de ebp
+17 : ( )		ret	;
diff --git a/test/fg-ref/prio45-1.fg b/test/fg-ref/prio45-1.fg
new file mode 100644
index 0000000..d74cf0c
--- /dev/null
+++ b/test/fg-ref/prio45-1.fg
@@ -0,0 +1,19 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	0	;
+8 : ( 9 )		add	r1,	1	;
+9 : ( 10 )		mov	r0,	1	;Affect
+10 : ( 11 )		mov	r4,	2	;JumpIfEqual 1
+11 : ( 12 )		cmp	r4,	r1	;on passe par un registre temporaire
+12 : ( 13 14 )		je	l0	;JumpIfEqual 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 15 )	l0 :	mov	eax,	r0	;Write 1
+15 : ( )		call	iprintLF	;Write 2
+16 : ( 17 )		add	esp,	0	;désallocation des variables locales
+17 : ( 18 )		pop	ebp	;restaure la valeur de ebp
+18 : ( )		ret	;
diff --git a/test/fg-ref/prio45-2.fg b/test/fg-ref/prio45-2.fg
new file mode 100644
index 0000000..296352a
--- /dev/null
+++ b/test/fg-ref/prio45-2.fg
@@ -0,0 +1,18 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;
+8 : ( 9 )		add	r1,	234	;
+9 : ( 10 )		mov	r0,	1	;Affect
+10 : ( 11 )		cmp	r1,	1	;JumpIfEqual 1
+11 : ( 12 13 )		je	l0	;JumpIfEqual 2
+12 : ( 13 )		mov	r0,	0	;Affect
+13 : ( 14 )	l0 :	mov	eax,	r0	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )		add	esp,	0	;désallocation des variables locales
+16 : ( 17 )		pop	ebp	;restaure la valeur de ebp
+17 : ( )		ret	;
diff --git a/test/fg-ref/prio45-3.fg b/test/fg-ref/prio45-3.fg
new file mode 100644
index 0000000..3d0b534
--- /dev/null
+++ b/test/fg-ref/prio45-3.fg
@@ -0,0 +1,19 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	11	;
+8 : ( 9 )		add	r1,	100	;
+9 : ( 10 )		mov	r0,	1	;Affect
+10 : ( 11 )		mov	r4,	12	;JumpIfLess 1
+11 : ( 12 )		cmp	r4,	r1	;on passe par un registre temporaire
+12 : ( 13 14 )		jl	l0	;JumpIfLess 2
+13 : ( 14 )		mov	r0,	0	;Affect
+14 : ( 15 )	l0 :	mov	eax,	r0	;Write 1
+15 : ( )		call	iprintLF	;Write 2
+16 : ( 17 )		add	esp,	0	;désallocation des variables locales
+17 : ( 18 )		pop	ebp	;restaure la valeur de ebp
+18 : ( )		ret	;
diff --git a/test/fg-ref/prio45-4.fg b/test/fg-ref/prio45-4.fg
new file mode 100644
index 0000000..9374e20
--- /dev/null
+++ b/test/fg-ref/prio45-4.fg
@@ -0,0 +1,18 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	21	;
+8 : ( 9 )		sub	r1,	21	;
+9 : ( 10 )		mov	r0,	1	;Affect
+10 : ( 11 )		cmp	r1,	1	;JumpIfLess 1
+11 : ( 12 13 )		jl	l0	;JumpIfLess 2
+12 : ( 13 )		mov	r0,	0	;Affect
+13 : ( 14 )	l0 :	mov	eax,	r0	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )		add	esp,	0	;désallocation des variables locales
+16 : ( 17 )		pop	ebp	;restaure la valeur de ebp
+17 : ( )		ret	;
diff --git a/test/fg-ref/prio56-1.fg b/test/fg-ref/prio56-1.fg
new file mode 100644
index 0000000..52cb826
--- /dev/null
+++ b/test/fg-ref/prio56-1.fg
@@ -0,0 +1,25 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;Affect
+8 : ( 9 )		mov	r4,	1	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	2	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l2	;JumpIfEqual 2
+11 : ( 12 )		mov	r1,	0	;Affect
+12 : ( 13 )	l2 :	cmp	r1,	0	;JumpIfEqual 1
+13 : ( 14 19 )		je	l1	;JumpIfEqual 2
+14 : ( 15 )		mov	r5,	1	;JumpIfEqual 1
+15 : ( 16 )		cmp	r5,	0	;on passe par un registre temporaire
+16 : ( 17 19 )		je	l1	;JumpIfEqual 2
+17 : ( 18 )		mov	r0,	1	;Affect
+18 : ( 20 )		jmp	l0	;Jump
+19 : ( 20 )	l1 :	mov	r0,	0	;Affect
+20 : ( 21 )	l0 :	mov	eax,	r0	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fg-ref/prio56-2.fg b/test/fg-ref/prio56-2.fg
new file mode 100644
index 0000000..bf9bdab
--- /dev/null
+++ b/test/fg-ref/prio56-2.fg
@@ -0,0 +1,25 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r1,	1	;Affect
+8 : ( 9 )		mov	r4,	2	;JumpIfEqual 1
+9 : ( 10 )		cmp	r4,	1	;on passe par un registre temporaire
+10 : ( 11 12 )		je	l2	;JumpIfEqual 2
+11 : ( 12 )		mov	r1,	0	;Affect
+12 : ( 13 )	l2 :	mov	r5,	1	;JumpIfEqual 1
+13 : ( 14 )		cmp	r5,	0	;on passe par un registre temporaire
+14 : ( 15 19 )		je	l1	;JumpIfEqual 2
+15 : ( 16 )		cmp	r1,	0	;JumpIfEqual 1
+16 : ( 17 19 )		je	l1	;JumpIfEqual 2
+17 : ( 18 )		mov	r0,	1	;Affect
+18 : ( 20 )		jmp	l0	;Jump
+19 : ( 20 )	l1 :	mov	r0,	0	;Affect
+20 : ( 21 )	l0 :	mov	eax,	r0	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fg-ref/prio67-1.fg b/test/fg-ref/prio67-1.fg
new file mode 100644
index 0000000..f7a44e6
--- /dev/null
+++ b/test/fg-ref/prio67-1.fg
@@ -0,0 +1,29 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r4,	0	;JumpIfEqual 1
+8 : ( 9 )		cmp	r4,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l3	;JumpIfEqual 2
+10 : ( 11 )		mov	r5,	1	;JumpIfEqual 1
+11 : ( 12 )		cmp	r5,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l3	;JumpIfEqual 2
+13 : ( 14 )		mov	r1,	1	;Affect
+14 : ( 16 )		jmp	l2	;Jump
+15 : ( 16 )	l3 :	mov	r1,	0	;Affect
+16 : ( 17 )	l2 :	cmp	r1,	0	;jumpIfNotEqual 1
+17 : ( 18 23 )		jne	l1	;jumpIfNotEqual 2
+18 : ( 19 )		mov	r6,	1	;jumpIfNotEqual 1
+19 : ( 20 )		cmp	r6,	0	;on passe par un registre temporaire
+20 : ( 21 23 )		jne	l1	;jumpIfNotEqual 2
+21 : ( 22 )		mov	r0,	0	;Affect
+22 : ( 24 )		jmp	l0	;Jump
+23 : ( 24 )	l1 :	mov	r0,	1	;Affect
+24 : ( 25 )	l0 :	mov	eax,	r0	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		add	esp,	0	;désallocation des variables locales
+27 : ( 28 )		pop	ebp	;restaure la valeur de ebp
+28 : ( )		ret	;
diff --git a/test/fg-ref/prio67-2.fg b/test/fg-ref/prio67-2.fg
new file mode 100644
index 0000000..2d932b7
--- /dev/null
+++ b/test/fg-ref/prio67-2.fg
@@ -0,0 +1,29 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r4,	1	;JumpIfEqual 1
+8 : ( 9 )		cmp	r4,	0	;on passe par un registre temporaire
+9 : ( 10 15 )		je	l3	;JumpIfEqual 2
+10 : ( 11 )		mov	r5,	0	;JumpIfEqual 1
+11 : ( 12 )		cmp	r5,	0	;on passe par un registre temporaire
+12 : ( 13 15 )		je	l3	;JumpIfEqual 2
+13 : ( 14 )		mov	r1,	1	;Affect
+14 : ( 16 )		jmp	l2	;Jump
+15 : ( 16 )	l3 :	mov	r1,	0	;Affect
+16 : ( 17 )	l2 :	mov	r6,	1	;jumpIfNotEqual 1
+17 : ( 18 )		cmp	r6,	0	;on passe par un registre temporaire
+18 : ( 19 23 )		jne	l1	;jumpIfNotEqual 2
+19 : ( 20 )		cmp	r1,	0	;jumpIfNotEqual 1
+20 : ( 21 23 )		jne	l1	;jumpIfNotEqual 2
+21 : ( 22 )		mov	r0,	0	;Affect
+22 : ( 24 )		jmp	l0	;Jump
+23 : ( 24 )	l1 :	mov	r0,	1	;Affect
+24 : ( 25 )	l0 :	mov	eax,	r0	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		add	esp,	0	;désallocation des variables locales
+27 : ( 28 )		pop	ebp	;restaure la valeur de ebp
+28 : ( )		ret	;
diff --git a/test/fg-ref/rec1.fg b/test/fg-ref/rec1.fg
new file mode 100644
index 0000000..755d8ec
--- /dev/null
+++ b/test/fg-ref/rec1.fg
@@ -0,0 +1,73 @@
+0 : ( 1 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+1 : ( 2 )		call	main	;
+2 : ( 3 )		pop	r0	;récupération de la valeur de retour
+3 : ( 4 )		mov	ebx,	0	; valeur de retour du programme
+4 : ( 5 )		mov	eax,	1	; code de sortie
+5 : ( 6 )		int 0x80	;
+6 : ( 7 )	f :	push	ebp	;sauvegarde la valeur de ebp
+7 : ( 8 )		mov	ebp,	esp	;nouvelle valeur de ebp
+8 : ( 9 )		push	eax	;sauvegarde de eax
+9 : ( 10 )		push	ebx	;sauvegarde de ebx
+10 : ( 11 )		push	ecx	;sauvegarde de ecx
+11 : ( 12 )		push	edx	;sauvegarde de edx
+12 : ( 13 )		sub	esp,	0	;allocation des variables locales
+13 : ( 14 )		mov	r1,	1	;Affect
+14 : ( 15 )		cmp	dword [ebp+12],	1	;JumpIfEqual 1
+15 : ( 16 17 )		je	l2	;JumpIfEqual 2
+16 : ( 17 )		mov	r1,	0	;Affect
+17 : ( 18 )	l2 :	cmp	r1,	0	;JumpIfEqual 1
+18 : ( 19 28 )		je	l0	;JumpIfEqual 2
+19 : ( 20 )		mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+20 : ( 21 )		add	esp,	0	;désallocation des variables locales
+21 : ( 22 )		pop	edx	;restaure edx
+22 : ( 23 )		pop	ecx	;restaure ecx
+23 : ( 24 )		pop	ebx	;restaure ebx
+24 : ( 25 )		pop	eax	;restaure eax
+25 : ( 26 )		pop	ebp	;restaure la valeur de ebp
+26 : ( )		ret	;
+27 : ( 45 )		jmp	l1	;Jump
+28 : ( 29 )	l0 :	mov	r3,	dword [ebp+12]	;
+29 : ( 30 )		sub	r3,	1	;
+30 : ( 31 )		push	r3	;Param
+31 : ( 32 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+32 : ( 33 )		call	f	;
+33 : ( 34 )		pop	r2	;récupération de la valeur de retour
+34 : ( 35 )		add	esp,	4	;désallocation des arguments
+35 : ( 36 )		mov	r4,	1	;
+36 : ( 37 )		add	r4,	r2	;
+37 : ( 38 )		mov	dword [ebp+8],	r4	;ecriture de la valeur de retour
+38 : ( 39 )		add	esp,	0	;désallocation des variables locales
+39 : ( 40 )		pop	edx	;restaure edx
+40 : ( 41 )		pop	ecx	;restaure ecx
+41 : ( 42 )		pop	ebx	;restaure ebx
+42 : ( 43 )		pop	eax	;restaure eax
+43 : ( 44 )		pop	ebp	;restaure la valeur de ebp
+44 : ( )		ret	;
+45 : ( 46 )	l1 :	add	esp,	0	;désallocation des variables locales
+46 : ( 47 )		pop	edx	;restaure edx
+47 : ( 48 )		pop	ecx	;restaure ecx
+48 : ( 49 )		pop	ebx	;restaure ebx
+49 : ( 50 )		pop	eax	;restaure eax
+50 : ( 51 )		pop	ebp	;restaure la valeur de ebp
+51 : ( )		ret	;
+52 : ( 53 )	main :	push	ebp	;sauvegarde la valeur de ebp
+53 : ( 54 )		mov	ebp,	esp	;nouvelle valeur de ebp
+54 : ( 55 )		push	eax	;sauvegarde de eax
+55 : ( 56 )		push	ebx	;sauvegarde de ebx
+56 : ( 57 )		push	ecx	;sauvegarde de ecx
+57 : ( 58 )		push	edx	;sauvegarde de edx
+58 : ( 59 )		sub	esp,	0	;allocation des variables locales
+59 : ( 60 )		push	100	;Param
+60 : ( 61 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+61 : ( 62 )		call	f	;
+62 : ( 63 )		pop	r5	;récupération de la valeur de retour
+63 : ( 64 )		add	esp,	4	;désallocation des arguments
+64 : ( 65 )		mov	eax,	r5	;Write 1
+65 : ( 66 )		call	iprintLF	;Write 2
+66 : ( 67 )		add	esp,	0	;désallocation des variables locales
+67 : ( 68 )		pop	edx	;restaure edx
+68 : ( 69 )		pop	ecx	;restaure ecx
+69 : ( 70 )		pop	ebx	;restaure ebx
+70 : ( 71 )		pop	eax	;restaure eax
+71 : ( 72 )		pop	ebp	;restaure la valeur de ebp
+72 : ( )		ret	;
diff --git a/test/fg-ref/si1.fg b/test/fg-ref/si1.fg
new file mode 100644
index 0000000..d613104
--- /dev/null
+++ b/test/fg-ref/si1.fg
@@ -0,0 +1,15 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r2,	1	;JumpIfEqual 1
+8 : ( 9 )		cmp	r2,	0	;on passe par un registre temporaire
+9 : ( 10 12 )		je	l1	;JumpIfEqual 2
+10 : ( 11 )		mov	eax,	1	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 13 )	l1 :	add	esp,	0	;désallocation des variables locales
+13 : ( 14 )		pop	ebp	;restaure la valeur de ebp
+14 : ( )		ret	;
diff --git a/test/fg-ref/si2.fg b/test/fg-ref/si2.fg
new file mode 100644
index 0000000..80160c1
--- /dev/null
+++ b/test/fg-ref/si2.fg
@@ -0,0 +1,18 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r2,	0	;JumpIfEqual 1
+8 : ( 9 )		cmp	r2,	0	;on passe par un registre temporaire
+9 : ( 10 13 )		je	l0	;JumpIfEqual 2
+10 : ( 11 )		mov	eax,	1	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 15 )		jmp	l1	;Jump
+13 : ( 14 )	l0 :	mov	eax,	0	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )	l1 :	add	esp,	0	;désallocation des variables locales
+16 : ( 17 )		pop	ebp	;restaure la valeur de ebp
+17 : ( )		ret	;
diff --git a/test/fg-ref/si3.fg b/test/fg-ref/si3.fg
new file mode 100644
index 0000000..4a59086
--- /dev/null
+++ b/test/fg-ref/si3.fg
@@ -0,0 +1,20 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r2,	1	;JumpIfEqual 1
+8 : ( 9 )		cmp	r2,	0	;on passe par un registre temporaire
+9 : ( 10 13 )		je	l0	;JumpIfEqual 2
+10 : ( 11 )		mov	eax,	1	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 15 )		jmp	l1	;Jump
+13 : ( 14 )	l0 :	mov	eax,	0	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )	l1 :	mov	eax,	3	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		add	esp,	0	;désallocation des variables locales
+18 : ( 19 )		pop	ebp	;restaure la valeur de ebp
+19 : ( )		ret	;
diff --git a/test/fg-ref/si4.fg b/test/fg-ref/si4.fg
new file mode 100644
index 0000000..887ca37
--- /dev/null
+++ b/test/fg-ref/si4.fg
@@ -0,0 +1,20 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r2,	0	;JumpIfEqual 1
+8 : ( 9 )		cmp	r2,	0	;on passe par un registre temporaire
+9 : ( 10 13 )		je	l0	;JumpIfEqual 2
+10 : ( 11 )		mov	eax,	1	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 15 )		jmp	l1	;Jump
+13 : ( 14 )	l0 :	mov	eax,	0	;Write 1
+14 : ( )		call	iprintLF	;Write 2
+15 : ( 16 )	l1 :	mov	eax,	3	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		add	esp,	0	;désallocation des variables locales
+18 : ( 19 )		pop	ebp	;restaure la valeur de ebp
+19 : ( )		ret	;
diff --git a/test/fg-ref/si5.fg b/test/fg-ref/si5.fg
new file mode 100644
index 0000000..db829b9
--- /dev/null
+++ b/test/fg-ref/si5.fg
@@ -0,0 +1,32 @@
+0 : ( 1 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+1 : ( 2 )		call	main	;
+2 : ( 3 )		pop	r0	;récupération de la valeur de retour
+3 : ( 4 )		mov	ebx,	0	; valeur de retour du programme
+4 : ( 5 )		mov	eax,	1	; code de sortie
+5 : ( 6 )		int 0x80	;
+6 : ( 7 )	main :	push	ebp	;sauvegarde la valeur de ebp
+7 : ( 8 )		mov	ebp,	esp	;nouvelle valeur de ebp
+8 : ( 9 )		push	eax	;sauvegarde de eax
+9 : ( 10 )		push	ebx	;sauvegarde de ebx
+10 : ( 11 )		push	ecx	;sauvegarde de ecx
+11 : ( 12 )		push	edx	;sauvegarde de edx
+12 : ( 13 )		sub	esp,	0	;allocation des variables locales
+13 : ( 14 )		mov	r7,	1	;JumpIfEqual 1
+14 : ( 15 )		cmp	r7,	0	;on passe par un registre temporaire
+15 : ( 16 23 )		je	l3	;JumpIfEqual 2
+16 : ( 17 )		mov	eax,	1	;Write 1
+17 : ( 18 )		call	iprintLF	;Write 2
+18 : ( 19 )		mov	r9,	1	;JumpIfEqual 1
+19 : ( 20 )		cmp	r9,	0	;on passe par un registre temporaire
+20 : ( 21 23 )		je	l3	;JumpIfEqual 2
+21 : ( 22 )		mov	eax,	2	;Write 1
+22 : ( 23 )		call	iprintLF	;Write 2
+23 : ( 24 )	l3 :	mov	eax,	3	;Write 1
+24 : ( 25 )		call	iprintLF	;Write 2
+25 : ( 26 )		add	esp,	0	;désallocation des variables locales
+26 : ( 27 )		pop	edx	;restaure edx
+27 : ( 28 )		pop	ecx	;restaure ecx
+28 : ( 29 )		pop	ebx	;restaure ebx
+29 : ( 30 )		pop	eax	;restaure eax
+30 : ( 31 )		pop	ebp	;restaure la valeur de ebp
+31 : ( )		ret	;
diff --git a/test/fg-ref/sub1.fg b/test/fg-ref/sub1.fg
new file mode 100644
index 0000000..e208bab
--- /dev/null
+++ b/test/fg-ref/sub1.fg
@@ -0,0 +1,14 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	10	;
+8 : ( 9 )		sub	r0,	5	;
+9 : ( 10 )		mov	eax,	r0	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( )		ret	;
diff --git a/test/fg-ref/sub2.fg b/test/fg-ref/sub2.fg
new file mode 100644
index 0000000..d9faa90
--- /dev/null
+++ b/test/fg-ref/sub2.fg
@@ -0,0 +1,14 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	7	;
+8 : ( 9 )		sub	r0,	20	;
+9 : ( 10 )		mov	eax,	r0	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		add	esp,	0	;désallocation des variables locales
+12 : ( 13 )		pop	ebp	;restaure la valeur de ebp
+13 : ( )		ret	;
diff --git a/test/fg-ref/sub3.fg b/test/fg-ref/sub3.fg
new file mode 100644
index 0000000..4d4b04e
--- /dev/null
+++ b/test/fg-ref/sub3.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r0,	2	;
+8 : ( 9 )		sub	r0,	1	;
+9 : ( 10 )		mov	r1,	r0	;
+10 : ( 11 )		sub	r1,	1	;
+11 : ( 12 )		mov	eax,	r1	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/tab1.fg b/test/fg-ref/tab1.fg
new file mode 100644
index 0000000..abbe0a1
--- /dev/null
+++ b/test/fg-ref/tab1.fg
@@ -0,0 +1,25 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r2,	0	;
+8 : ( 9 )		mov	dword [tab+4*r2],	0	;Affect
+9 : ( 10 )		mov	r3,	1	;
+10 : ( 11 )		mov	dword [tab+4*r3],	1	;Affect
+11 : ( 12 )		mov	r4,	2	;
+12 : ( 13 )		mov	dword [tab+4*r4],	2	;Affect
+13 : ( 14 )		mov	r6,	0	;
+14 : ( 15 )		mov	eax,	dword [tab+4*r6]	;Write 1
+15 : ( )		call	iprintLF	;Write 2
+16 : ( 17 )		mov	r8,	1	;
+17 : ( 18 )		mov	eax,	dword [tab+4*r8]	;Write 1
+18 : ( )		call	iprintLF	;Write 2
+19 : ( 20 )		mov	r10,	2	;
+20 : ( 21 )		mov	eax,	dword [tab+4*r10]	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fg-ref/tab2.fg b/test/fg-ref/tab2.fg
new file mode 100644
index 0000000..ec81509
--- /dev/null
+++ b/test/fg-ref/tab2.fg
@@ -0,0 +1,32 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	2	;Affect
+8 : ( 9 )		mov	r0,	dword [ebp-4*1]	;
+9 : ( 10 )		add	r0,	0	;
+10 : ( 11 )		mov	r5,	r0	;
+11 : ( 12 )		mov	dword [tab+4*r5],	34	;Affect
+12 : ( 13 )		mov	r1,	dword [ebp-4*1]	;
+13 : ( 14 )		add	r1,	1	;
+14 : ( 15 )		mov	r6,	r1	;
+15 : ( 16 )		mov	dword [tab+4*r6],	74	;Affect
+16 : ( 17 )		mov	r2,	dword [ebp-4*1]	;
+17 : ( 18 )		add	r2,	2	;
+18 : ( 19 )		mov	r7,	r2	;
+19 : ( 20 )		mov	dword [tab+4*r7],	16	;Affect
+20 : ( 21 )		mov	r9,	2	;
+21 : ( 22 )		mov	eax,	dword [tab+4*r9]	;Write 1
+22 : ( )		call	iprintLF	;Write 2
+23 : ( 24 )		mov	r11,	3	;
+24 : ( 25 )		mov	eax,	dword [tab+4*r11]	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		mov	r13,	4	;
+27 : ( 28 )		mov	eax,	dword [tab+4*r13]	;Write 1
+28 : ( )		call	iprintLF	;Write 2
+29 : ( 30 )		add	esp,	4	;désallocation des variables locales
+30 : ( 31 )		pop	ebp	;restaure la valeur de ebp
+31 : ( )		ret	;
diff --git a/test/fg-ref/tab3.fg b/test/fg-ref/tab3.fg
new file mode 100644
index 0000000..fc912f6
--- /dev/null
+++ b/test/fg-ref/tab3.fg
@@ -0,0 +1,35 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	8	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	2	;Affect
+8 : ( 9 )		mov	dword [ebp-4*2],	0	;Affect
+9 : ( 10 )		mov	r0,	dword [ebp-4*1]	;
+10 : ( 11 )		add	r0,	dword [ebp-4*2]	;
+11 : ( 12 )		mov	r5,	r0	;
+12 : ( 13 )		mov	dword [tab+4*r5],	34	;Affect
+13 : ( 14 )		mov	dword [ebp-4*2],	1	;Affect
+14 : ( 15 )		mov	r1,	dword [ebp-4*1]	;
+15 : ( 16 )		add	r1,	dword [ebp-4*2]	;
+16 : ( 17 )		mov	r6,	r1	;
+17 : ( 18 )		mov	dword [tab+4*r6],	74	;Affect
+18 : ( 19 )		mov	dword [ebp-4*2],	2	;Affect
+19 : ( 20 )		mov	r2,	dword [ebp-4*1]	;
+20 : ( 21 )		add	r2,	dword [ebp-4*2]	;
+21 : ( 22 )		mov	r7,	r2	;
+22 : ( 23 )		mov	dword [tab+4*r7],	16	;Affect
+23 : ( 24 )		mov	r9,	2	;
+24 : ( 25 )		mov	eax,	dword [tab+4*r9]	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		mov	r11,	3	;
+27 : ( 28 )		mov	eax,	dword [tab+4*r11]	;Write 1
+28 : ( )		call	iprintLF	;Write 2
+29 : ( 30 )		mov	r13,	4	;
+30 : ( 31 )		mov	eax,	dword [tab+4*r13]	;Write 1
+31 : ( )		call	iprintLF	;Write 2
+32 : ( 33 )		add	esp,	8	;désallocation des variables locales
+33 : ( 34 )		pop	ebp	;restaure la valeur de ebp
+34 : ( )		ret	;
diff --git a/test/fg-ref/tab4.fg b/test/fg-ref/tab4.fg
new file mode 100644
index 0000000..20eaf9b
--- /dev/null
+++ b/test/fg-ref/tab4.fg
@@ -0,0 +1,29 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	r3,	0	;
+8 : ( 9 )		mov	dword [tab+4*r3],	1	;Affect
+9 : ( 10 )		mov	r5,	0	;
+10 : ( 11 )		mov	r4,	dword [tab+4*r5]	;
+11 : ( 12 )		mov	dword [tab+4*r4],	12	;Affect
+12 : ( 13 )		mov	r6,	0	;
+13 : ( 14 )		mov	r0,	dword [tab+4*r6]	;
+14 : ( 15 )		add	r0,	1	;
+15 : ( 16 )		mov	r7,	r0	;
+16 : ( 17 )		mov	dword [tab+4*r7],	13	;Affect
+17 : ( 18 )		mov	r9,	0	;
+18 : ( 19 )		mov	eax,	dword [tab+4*r9]	;Write 1
+19 : ( )		call	iprintLF	;Write 2
+20 : ( 21 )		mov	r11,	1	;
+21 : ( 22 )		mov	eax,	dword [tab+4*r11]	;Write 1
+22 : ( )		call	iprintLF	;Write 2
+23 : ( 24 )		mov	r13,	2	;
+24 : ( 25 )		mov	eax,	dword [tab+4*r13]	;Write 1
+25 : ( )		call	iprintLF	;Write 2
+26 : ( 27 )		add	esp,	0	;désallocation des variables locales
+27 : ( 28 )		pop	ebp	;restaure la valeur de ebp
+28 : ( )		ret	;
diff --git a/test/fg-ref/tantque1.fg b/test/fg-ref/tantque1.fg
new file mode 100644
index 0000000..55ad059
--- /dev/null
+++ b/test/fg-ref/tantque1.fg
@@ -0,0 +1,26 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	10	;Affect
+8 : ( 9 )	l0 :	mov	r0,	1	;Affect
+9 : ( 10 )		mov	r4,	0	;JumpIfLess 1
+10 : ( 11 )		cmp	r4,	dword [ebp-4*1]	;on passe par un registre temporaire
+11 : ( 12 13 )		jl	l2	;JumpIfLess 2
+12 : ( 13 )		mov	r0,	0	;Affect
+13 : ( 14 )	l2 :	cmp	r0,	0	;JumpIfEqual 1
+14 : ( 15 21 )		je	l1	;JumpIfEqual 2
+15 : ( 16 )		mov	eax,	dword [ebp-4*1]	;Write 1
+16 : ( )		call	iprintLF	;Write 2
+17 : ( 18 )		mov	r1,	dword [ebp-4*1]	;
+18 : ( 19 )		sub	r1,	1	;
+19 : ( 20 )		mov	dword [ebp-4*1],	r1	;Affect
+20 : ( 8 )		jmp	l0	;Jump
+21 : ( 22 )	l1 :	mov	eax,	0	;Write 1
+22 : ( )		call	iprintLF	;Write 2
+23 : ( 24 )		add	esp,	4	;désallocation des variables locales
+24 : ( 25 )		pop	ebp	;restaure la valeur de ebp
+25 : ( )		ret	;
diff --git a/test/fg-ref/tantque2.fg b/test/fg-ref/tantque2.fg
new file mode 100644
index 0000000..2c74761
--- /dev/null
+++ b/test/fg-ref/tantque2.fg
@@ -0,0 +1,36 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	8	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	0	;Affect
+8 : ( 9 )	l0 :	mov	r0,	1	;Affect
+9 : ( 10 )		cmp	dword [ebp-4*1],	4	;JumpIfLess 1
+10 : ( 11 12 )		jl	l2	;JumpIfLess 2
+11 : ( 12 )		mov	r0,	0	;Affect
+12 : ( 13 )	l2 :	cmp	r0,	0	;JumpIfEqual 1
+13 : ( 14 33 )		je	l1	;JumpIfEqual 2
+14 : ( 15 )		mov	dword [ebp-4*2],	0	;Affect
+15 : ( 16 )	l3 :	mov	r1,	1	;Affect
+16 : ( 17 )		cmp	dword [ebp-4*2],	4	;JumpIfLess 1
+17 : ( 18 19 )		jl	l5	;JumpIfLess 2
+18 : ( 19 )		mov	r1,	0	;Affect
+19 : ( 20 )	l5 :	cmp	r1,	0	;JumpIfEqual 1
+20 : ( 21 29 )		je	l4	;JumpIfEqual 2
+21 : ( 22 )		mov	eax,	dword [ebp-4*1]	;Write 1
+22 : ( )		call	iprintLF	;Write 2
+23 : ( 24 )		mov	eax,	dword [ebp-4*2]	;Write 1
+24 : ( )		call	iprintLF	;Write 2
+25 : ( 26 )		mov	r2,	dword [ebp-4*2]	;
+26 : ( 27 )		add	r2,	1	;
+27 : ( 28 )		mov	dword [ebp-4*2],	r2	;Affect
+28 : ( 15 )		jmp	l3	;Jump
+29 : ( 30 )	l4 :	mov	r3,	dword [ebp-4*1]	;
+30 : ( 31 )		add	r3,	1	;
+31 : ( 32 )		mov	dword [ebp-4*1],	r3	;Affect
+32 : ( 8 )		jmp	l0	;Jump
+33 : ( 34 )	l1 :	add	esp,	8	;désallocation des variables locales
+34 : ( 35 )		pop	ebp	;restaure la valeur de ebp
+35 : ( )		ret	;
diff --git a/test/fg-ref/varglob1.fg b/test/fg-ref/varglob1.fg
new file mode 100644
index 0000000..d577f3c
--- /dev/null
+++ b/test/fg-ref/varglob1.fg
@@ -0,0 +1,13 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [variable],	6834	;Affect
+8 : ( 9 )		mov	eax,	dword [variable]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	0	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( )		ret	;
diff --git a/test/fg-ref/varglob2.fg b/test/fg-ref/varglob2.fg
new file mode 100644
index 0000000..5dff65a
--- /dev/null
+++ b/test/fg-ref/varglob2.fg
@@ -0,0 +1,15 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [variable],	10	;Affect
+8 : ( 9 )		mov	r0,	dword [variable]	;
+9 : ( 10 )		add	r0,	50	;
+10 : ( 11 )		mov	eax,	r0	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 13 )		add	esp,	0	;désallocation des variables locales
+13 : ( 14 )		pop	ebp	;restaure la valeur de ebp
+14 : ( )		ret	;
diff --git a/test/fg-ref/varglob3.fg b/test/fg-ref/varglob3.fg
new file mode 100644
index 0000000..869643f
--- /dev/null
+++ b/test/fg-ref/varglob3.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [var1],	10	;Affect
+8 : ( 9 )		mov	dword [var2],	34	;Affect
+9 : ( 10 )		mov	eax,	dword [var1]	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		mov	eax,	dword [var2]	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/varglob4.fg b/test/fg-ref/varglob4.fg
new file mode 100644
index 0000000..e020f56
--- /dev/null
+++ b/test/fg-ref/varglob4.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	0	;allocation des variables locales
+7 : ( 8 )		mov	dword [var1],	10	;Affect
+8 : ( 9 )		mov	dword [var2],	34	;Affect
+9 : ( 10 )		mov	r0,	dword [var1]	;
+10 : ( 11 )		add	r0,	dword [var2]	;
+11 : ( 12 )		mov	eax,	r0	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	0	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/varloc1.fg b/test/fg-ref/varloc1.fg
new file mode 100644
index 0000000..292336d
--- /dev/null
+++ b/test/fg-ref/varloc1.fg
@@ -0,0 +1,13 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	6834	;Affect
+8 : ( 9 )		mov	eax,	dword [ebp-4*1]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	4	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( )		ret	;
diff --git a/test/fg-ref/varloc2.fg b/test/fg-ref/varloc2.fg
new file mode 100644
index 0000000..6e14583
--- /dev/null
+++ b/test/fg-ref/varloc2.fg
@@ -0,0 +1,15 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	10	;Affect
+8 : ( 9 )		mov	r0,	dword [ebp-4*1]	;
+9 : ( 10 )		add	r0,	50	;
+10 : ( 11 )		mov	eax,	r0	;Write 1
+11 : ( )		call	iprintLF	;Write 2
+12 : ( 13 )		add	esp,	4	;désallocation des variables locales
+13 : ( 14 )		pop	ebp	;restaure la valeur de ebp
+14 : ( )		ret	;
diff --git a/test/fg-ref/varloc3.fg b/test/fg-ref/varloc3.fg
new file mode 100644
index 0000000..6d47bc1
--- /dev/null
+++ b/test/fg-ref/varloc3.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	8	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	10	;Affect
+8 : ( 9 )		mov	dword [ebp-4*2],	30	;Affect
+9 : ( 10 )		mov	eax,	dword [ebp-4*1]	;Write 1
+10 : ( )		call	iprintLF	;Write 2
+11 : ( 12 )		mov	eax,	dword [ebp-4*2]	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	8	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/varloc4.fg b/test/fg-ref/varloc4.fg
new file mode 100644
index 0000000..d35e291
--- /dev/null
+++ b/test/fg-ref/varloc4.fg
@@ -0,0 +1,16 @@
+0 : ( 4 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	main :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	8	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	10	;Affect
+8 : ( 9 )		mov	dword [ebp-4*2],	30	;Affect
+9 : ( 10 )		mov	r0,	dword [ebp-4*1]	;
+10 : ( 11 )		add	r0,	dword [ebp-4*2]	;
+11 : ( 12 )		mov	eax,	r0	;Write 1
+12 : ( )		call	iprintLF	;Write 2
+13 : ( 14 )		add	esp,	8	;désallocation des variables locales
+14 : ( 15 )		pop	ebp	;restaure la valeur de ebp
+15 : ( )		ret	;
diff --git a/test/fg-ref/varloc5.fg b/test/fg-ref/varloc5.fg
new file mode 100644
index 0000000..a4a15a3
--- /dev/null
+++ b/test/fg-ref/varloc5.fg
@@ -0,0 +1,25 @@
+0 : ( 13 )		call	main	;
+1 : ( 2 )		mov	ebx,	0	; valeur de retour du programme
+2 : ( 3 )		mov	eax,	1	;
+3 : ( 4 )		int 0x80	;
+4 : ( 5 )	f :	push	ebp	;sauvegarde la valeur de ebp
+5 : ( 6 )		mov	ebp,	esp	;nouvelle valeur de ebp
+6 : ( 7 )		sub	esp,	4	;allocation des variables locales
+7 : ( 8 )		mov	dword [ebp-4*1],	10	;Affect
+8 : ( 9 )		mov	eax,	dword [ebp-4*1]	;Write 1
+9 : ( )		call	iprintLF	;Write 2
+10 : ( 11 )		add	esp,	4	;désallocation des variables locales
+11 : ( 12 )		pop	ebp	;restaure la valeur de ebp
+12 : ( 13 )		ret	;
+13 : ( 14 )	main :	push	ebp	;sauvegarde la valeur de ebp
+14 : ( 15 )		mov	ebp,	esp	;nouvelle valeur de ebp
+15 : ( 16 )		sub	esp,	0	;allocation des variables locales
+16 : ( 17 )		mov	dword [var1],	20	;Affect
+17 : ( 18 )		sub	esp,	4	;allocation mémoire pour la valeur de retour
+18 : ( 4 )		call	f	;
+19 : ( 20 )		pop	r0	;récupération de la valeur de retour
+20 : ( 21 )		mov	eax,	dword [var1]	;Write 1
+21 : ( )		call	iprintLF	;Write 2
+22 : ( 23 )		add	esp,	0	;désallocation des variables locales
+23 : ( 24 )		pop	ebp	;restaure la valeur de ebp
+24 : ( )		ret	;
diff --git a/test/fgs-ref/add1.fgs b/test/fgs-ref/add1.fgs
new file mode 100644
index 0000000..17c0fa4
--- /dev/null
+++ b/test/fgs-ref/add1.fgs
@@ -0,0 +1,15 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	3	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	10	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/add2.fgs b/test/fgs-ref/add2.fgs
new file mode 100644
index 0000000..d8a2e66
--- /dev/null
+++ b/test/fgs-ref/add2.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	2	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	4	;
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 		mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	8	;
+use = (1 ) def = (4 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/affect1.fgs b/test/fgs-ref/affect1.fgs
new file mode 100644
index 0000000..859a4d2
--- /dev/null
+++ b/test/fgs-ref/affect1.fgs
@@ -0,0 +1,14 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [a],	1	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [a]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/affect2.fgs b/test/fgs-ref/affect2.fgs
new file mode 100644
index 0000000..b254e12
--- /dev/null
+++ b/test/fgs-ref/affect2.fgs
@@ -0,0 +1,14 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	1	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/affect3.fgs b/test/fgs-ref/affect3.fgs
new file mode 100644
index 0000000..82b824f
--- /dev/null
+++ b/test/fgs-ref/affect3.fgs
@@ -0,0 +1,25 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp+4*3],	1	;Affect
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*3]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	3	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des arguments
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/and1.fgs b/test/fgs-ref/and1.fgs
new file mode 100644
index 0000000..6939350
--- /dev/null
+++ b/test/fgs-ref/and1.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	3	;JumpIfEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	1	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/and2.fgs b/test/fgs-ref/and2.fgs
new file mode 100644
index 0000000..d0cb5b7
--- /dev/null
+++ b/test/fgs-ref/and2.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	4	;JumpIfEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/and3.fgs b/test/fgs-ref/and3.fgs
new file mode 100644
index 0000000..6ce5107
--- /dev/null
+++ b/test/fgs-ref/and3.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	0	;JumpIfEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	1024	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/and4.fgs b/test/fgs-ref/and4.fgs
new file mode 100644
index 0000000..a83cb5a
--- /dev/null
+++ b/test/fgs-ref/and4.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	0	;JumpIfEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/and5.fgs b/test/fgs-ref/and5.fgs
new file mode 100644
index 0000000..b0d28d2
--- /dev/null
+++ b/test/fgs-ref/and5.fgs
@@ -0,0 +1,30 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	1	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	0	;JumpIfEqual 1
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		jmp	l2	;Jump
+use = () def = (1 )	in = ()	 	out = (1 )	 	l3 :	mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (6 )	in = ()	 	out = (6 )	 		mov	r6,	1	;JumpIfEqual 1
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		cmp	r6,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (7 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel-param1.fgs b/test/fgs-ref/appel-param1.fgs
new file mode 100644
index 0000000..2e08d57
--- /dev/null
+++ b/test/fgs-ref/appel-param1.fgs
@@ -0,0 +1,24 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*3]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	1	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des arguments
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel-param2.fgs b/test/fgs-ref/appel-param2.fgs
new file mode 100644
index 0000000..2ffaa39
--- /dev/null
+++ b/test/fgs-ref/appel-param2.fgs
@@ -0,0 +1,27 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*4]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*3]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	1	;Param
+use = () def = ()	in = ()	 	out = ()	 		push	456	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	8	;désallocation des arguments
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel-param3.fgs b/test/fgs-ref/appel-param3.fgs
new file mode 100644
index 0000000..3bbb753
--- /dev/null
+++ b/test/fgs-ref/appel-param3.fgs
@@ -0,0 +1,36 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*7]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*6]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (5 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*5]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (6 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*4]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (7 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp+4*3]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	1	;Param
+use = () def = ()	in = ()	 	out = ()	 		push	2	;Param
+use = () def = ()	in = ()	 	out = ()	 		push	3	;Param
+use = () def = ()	in = ()	 	out = ()	 		push	4	;Param
+use = () def = ()	in = ()	 	out = ()	 		push	5	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	20	;désallocation des arguments
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel-retour1.fgs b/test/fgs-ref/appel-retour1.fgs
new file mode 100644
index 0000000..1b39c79
--- /dev/null
+++ b/test/fgs-ref/appel-retour1.fgs
@@ -0,0 +1,26 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	dword [ebp+4*3]	;ecriture de la valeur de retour
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		mov	dword [ebp+4*2],	r3	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	3712	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = (0 )	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = (0 )	 	out = (0 )	 		add	esp,	4	;désallocation des arguments
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel1.fgs b/test/fgs-ref/appel1.fgs
new file mode 100644
index 0000000..9849940
--- /dev/null
+++ b/test/fgs-ref/appel1.fgs
@@ -0,0 +1,22 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel2.fgs b/test/fgs-ref/appel2.fgs
new file mode 100644
index 0000000..3835666
--- /dev/null
+++ b/test/fgs-ref/appel2.fgs
@@ -0,0 +1,33 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	g :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	2	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (5 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	g	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (1 )	in = ()	 	out = ()	 		pop	r1	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/appel3.fgs b/test/fgs-ref/appel3.fgs
new file mode 100644
index 0000000..08f8812
--- /dev/null
+++ b/test/fgs-ref/appel3.fgs
@@ -0,0 +1,33 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	g :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	2	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (5 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	g	;
+use = () def = (1 )	in = ()	 	out = ()	 		pop	r1	;récupération de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/div1.fgs b/test/fgs-ref/div1.fgs
new file mode 100644
index 0000000..d1f1064
--- /dev/null
+++ b/test/fgs-ref/div1.fgs
@@ -0,0 +1,17 @@
+iter num = 20
+use = () def = ()	in = (5 )	 	out = (5 )	 		call	main	;
+use = () def = (1 )	in = (5 )	 	out = (5 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = (5 )	 	out = (5 )	 		mov	eax,	1	;
+use = () def = ()	in = (5 )	 	out = (5 )	 		int 0x80	;
+use = () def = ()	in = (5 )	 	out = (5 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = (5 )	 	out = (5 )	 		mov	eax,	4	;
+use = () def = (4 )	in = (5 )	 	out = (4 5 )	 		mov	r4,	2	;
+use = (4 ) def = ()	in = (4 5 )	 	out = (5 )	 		idiv	r4	;
+use = (5 ) def = (0 )	in = (5 )	 	out = (0 )	 		mov	r0,	eax	;
+use = (0 ) def = (6 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/div2.fgs b/test/fgs-ref/div2.fgs
new file mode 100644
index 0000000..eeaaedb
--- /dev/null
+++ b/test/fgs-ref/div2.fgs
@@ -0,0 +1,17 @@
+iter num = 20
+use = () def = ()	in = (5 )	 	out = (5 )	 		call	main	;
+use = () def = (1 )	in = (5 )	 	out = (5 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = (5 )	 	out = (5 )	 		mov	eax,	1	;
+use = () def = ()	in = (5 )	 	out = (5 )	 		int 0x80	;
+use = () def = ()	in = (5 )	 	out = (5 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = (5 )	 	out = (5 )	 		mov	eax,	0	;
+use = () def = (4 )	in = (5 )	 	out = (4 5 )	 		mov	r4,	712	;
+use = (4 ) def = ()	in = (4 5 )	 	out = (5 )	 		idiv	r4	;
+use = (5 ) def = (0 )	in = (5 )	 	out = (0 )	 		mov	r0,	eax	;
+use = (0 ) def = (6 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/div3.fgs b/test/fgs-ref/div3.fgs
new file mode 100644
index 0000000..1fb235a
--- /dev/null
+++ b/test/fgs-ref/div3.fgs
@@ -0,0 +1,21 @@
+iter num = 28
+use = () def = ()	in = (6 9 )	 	out = (6 9 )	 		call	main	;
+use = () def = (2 )	in = (6 9 )	 	out = (6 9 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = (6 9 )	 	out = (6 9 )	 		mov	eax,	1	;
+use = () def = ()	in = (6 9 )	 	out = (6 9 )	 		int 0x80	;
+use = () def = ()	in = (6 9 )	 	out = (6 9 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (6 9 )	 	out = (6 9 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (6 9 )	 	out = (6 9 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = (6 9 )	 	out = (6 9 )	 		mov	eax,	4	;
+use = () def = (5 )	in = (6 9 )	 	out = (5 6 9 )	 		mov	r5,	2	;
+use = (5 ) def = ()	in = (5 6 9 )	 	out = (6 9 )	 		idiv	r5	;
+use = (6 ) def = (0 )	in = (6 9 )	 	out = (0 9 )	 		mov	r0,	eax	;
+use = (0 ) def = (7 )	in = (0 9 )	 	out = (9 )	 		mov	eax,	r0	;
+use = () def = (8 )	in = (9 )	 	out = (8 9 )	 		mov	r8,	2	;
+use = (8 ) def = ()	in = (8 9 )	 	out = (9 )	 		idiv	r8	;
+use = (9 ) def = (1 )	in = (9 )	 	out = (1 )	 		mov	r1,	eax	;
+use = (1 ) def = (10 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/div4.fgs b/test/fgs-ref/div4.fgs
new file mode 100644
index 0000000..388ed25
--- /dev/null
+++ b/test/fgs-ref/div4.fgs
@@ -0,0 +1,17 @@
+iter num = 20
+use = () def = ()	in = (5 )	 	out = (5 )	 		call	main	;
+use = () def = (1 )	in = (5 )	 	out = (5 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = (5 )	 	out = (5 )	 		mov	eax,	1	;
+use = () def = ()	in = (5 )	 	out = (5 )	 		int 0x80	;
+use = () def = ()	in = (5 )	 	out = (5 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (5 )	 	out = (5 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = (5 )	 	out = (5 )	 		mov	eax,	2	;
+use = () def = (4 )	in = (5 )	 	out = (4 5 )	 		mov	r4,	3	;
+use = (4 ) def = ()	in = (4 5 )	 	out = (5 )	 		idiv	r4	;
+use = (5 ) def = (0 )	in = (5 )	 	out = (0 )	 		mov	r0,	eax	;
+use = (0 ) def = (6 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/ecrire1.fgs b/test/fgs-ref/ecrire1.fgs
new file mode 100644
index 0000000..b592fbb
--- /dev/null
+++ b/test/fgs-ref/ecrire1.fgs
@@ -0,0 +1,13 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	3456	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/ecrire2.fgs b/test/fgs-ref/ecrire2.fgs
new file mode 100644
index 0000000..4968122
--- /dev/null
+++ b/test/fgs-ref/ecrire2.fgs
@@ -0,0 +1,13 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/egal1.fgs b/test/fgs-ref/egal1.fgs
new file mode 100644
index 0000000..0548751
--- /dev/null
+++ b/test/fgs-ref/egal1.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	123	;JumpIfEqual 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	123	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/egal2.fgs b/test/fgs-ref/egal2.fgs
new file mode 100644
index 0000000..41b4e6b
--- /dev/null
+++ b/test/fgs-ref/egal2.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	412	;JumpIfEqual 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	34	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/egal3.fgs b/test/fgs-ref/egal3.fgs
new file mode 100644
index 0000000..8122de0
--- /dev/null
+++ b/test/fgs-ref/egal3.fgs
@@ -0,0 +1,22 @@
+iter num = 11
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = (4 )	in = (1 )	 	out = (1 4 )	 		mov	r4,	2	;JumpIfEqual 1
+use = (4 ) def = ()	in = (1 4 )	 	out = (1 )	 		cmp	r4,	2	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l1	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 	l1 :	mov	r0,	1	;Affect
+use = (1 ) def = ()	in = (0 1 )	 	out = (0 )	 		cmp	r1,	1	;JumpIfEqual 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/err5.fgs b/test/fgs-ref/err5.fgs
new file mode 100644
index 0000000..a381c27
--- /dev/null
+++ b/test/fgs-ref/err5.fgs
@@ -0,0 +1,23 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = (0 )	 		pop	r0	;récupération de la valeur de retour
+use = (0 ) def = ()	in = (0 )	 	out = ()	 		mov	dword [ebp-4*1],	r0	;Affect
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/fibo.fgs b/test/fgs-ref/fibo.fgs
new file mode 100644
index 0000000..5806ac5
--- /dev/null
+++ b/test/fgs-ref/fibo.fgs
@@ -0,0 +1,81 @@
+iter num = 19
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = (8 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (9 )	in = ()	 	out = ()	 		mov	eax,	1	; code de sortie
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	fibo :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		push	eax	;sauvegarde de eax
+use = () def = ()	in = ()	 	out = ()	 		push	ebx	;sauvegarde de ebx
+use = () def = ()	in = ()	 	out = ()	 		push	ecx	;sauvegarde de ecx
+use = () def = ()	in = ()	 	out = ()	 		push	edx	;sauvegarde de edx
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		cmp	dword [ebp+12],	2	;JumpIfLess 1
+use = () def = ()	in = (1 )	 	out = (1 )	 		jl	l2	;JumpIfLess 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l0	;JumpIfEqual 2
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (14 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (15 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (16 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (17 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 		jmp	l1	;Jump
+use = () def = (3 )	in = ()	 	out = (3 )	 	l0 :	mov	r3,	dword [ebp+12]	;
+use = (3 ) def = (3 )	in = (3 )	 	out = ()	 		sub	r3,	1	;
+use = () def = ()	in = ()	 	out = ()	 		push	r3	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	fibo	;
+use = () def = (2 )	in = ()	 	out = (2 )	 		pop	r2	;récupération de la valeur de retour
+use = () def = ()	in = (2 )	 	out = (2 )	 		add	esp,	4	;désallocation des arguments
+use = () def = (5 )	in = (2 )	 	out = (2 5 )	 		mov	r5,	dword [ebp+12]	;
+use = (5 ) def = (5 )	in = (2 5 )	 	out = (2 )	 		sub	r5,	2	;
+use = () def = ()	in = (2 )	 	out = (2 )	 		push	r5	;Param
+use = () def = ()	in = (2 )	 	out = (2 )	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = (2 )	 	out = (2 )	 		call	fibo	;
+use = () def = (4 )	in = (2 )	 	out = (2 4 )	 		pop	r4	;récupération de la valeur de retour
+use = () def = ()	in = (2 4 )	 	out = (2 4 )	 		add	esp,	4	;désallocation des arguments
+use = (2 ) def = (6 )	in = (2 4 )	 	out = (4 6 )	 		mov	r6,	r2	;
+use = (4 6 ) def = (6 )	in = (4 6 )	 	out = (6 )	 		add	r6,	r4	;
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		mov	dword [ebp+8],	r6	;ecriture de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (18 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (19 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (20 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (21 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	l1 :	add	esp,	0	;désallocation des variables locales
+use = () def = (22 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (23 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (24 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (25 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		push	eax	;sauvegarde de eax
+use = () def = ()	in = ()	 	out = ()	 		push	ebx	;sauvegarde de ebx
+use = () def = ()	in = ()	 	out = ()	 		push	ecx	;sauvegarde de ecx
+use = () def = ()	in = ()	 	out = ()	 		push	edx	;sauvegarde de edx
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	9	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	fibo	;
+use = () def = (7 )	in = ()	 	out = (7 )	 		pop	r7	;récupération de la valeur de retour
+use = () def = ()	in = (7 )	 	out = (7 )	 		add	esp,	4	;désallocation des arguments
+use = (7 ) def = (30 )	in = (7 )	 	out = ()	 		mov	eax,	r7	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (31 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (32 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (33 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (34 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/inf1.fgs b/test/fgs-ref/inf1.fgs
new file mode 100644
index 0000000..8688816
--- /dev/null
+++ b/test/fgs-ref/inf1.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	3	;JumpIfLess 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	3	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/inf2.fgs b/test/fgs-ref/inf2.fgs
new file mode 100644
index 0000000..8be613b
--- /dev/null
+++ b/test/fgs-ref/inf2.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	4	;JumpIfLess 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	1	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/inf3.fgs b/test/fgs-ref/inf3.fgs
new file mode 100644
index 0000000..7484453
--- /dev/null
+++ b/test/fgs-ref/inf3.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	312	;JumpIfLess 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	475	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/inf4.fgs b/test/fgs-ref/inf4.fgs
new file mode 100644
index 0000000..7f8fd1c
--- /dev/null
+++ b/test/fgs-ref/inf4.fgs
@@ -0,0 +1,22 @@
+iter num = 11
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = (4 )	in = (1 )	 	out = (1 4 )	 		mov	r4,	3	;JumpIfLess 1
+use = (4 ) def = ()	in = (1 4 )	 	out = (1 )	 		cmp	r4,	2	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		jl	l1	;JumpIfLess 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 	l1 :	mov	r0,	1	;Affect
+use = (1 ) def = ()	in = (0 1 )	 	out = (0 )	 		cmp	r1,	1	;JumpIfLess 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/mult1.fgs b/test/fgs-ref/mult1.fgs
new file mode 100644
index 0000000..744a496
--- /dev/null
+++ b/test/fgs-ref/mult1.fgs
@@ -0,0 +1,15 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	2	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		imul	r0,	3	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/mult2.fgs b/test/fgs-ref/mult2.fgs
new file mode 100644
index 0000000..283b9c8
--- /dev/null
+++ b/test/fgs-ref/mult2.fgs
@@ -0,0 +1,15 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		imul	r0,	321	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/mult3.fgs b/test/fgs-ref/mult3.fgs
new file mode 100644
index 0000000..7a190b6
--- /dev/null
+++ b/test/fgs-ref/mult3.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	3	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		imul	r0,	3	;
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 		mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		imul	r1,	2	;
+use = (1 ) def = (4 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/not1.fgs b/test/fgs-ref/not1.fgs
new file mode 100644
index 0000000..eab7c02
--- /dev/null
+++ b/test/fgs-ref/not1.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	312	;JumpIfEqual 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/not2.fgs b/test/fgs-ref/not2.fgs
new file mode 100644
index 0000000..73c8d3f
--- /dev/null
+++ b/test/fgs-ref/not2.fgs
@@ -0,0 +1,18 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (3 )	in = (0 )	 	out = (0 3 )	 		mov	r3,	0	;JumpIfEqual 1
+use = (3 ) def = ()	in = (0 3 )	 	out = (0 )	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/not3.fgs b/test/fgs-ref/not3.fgs
new file mode 100644
index 0000000..2a71dd0
--- /dev/null
+++ b/test/fgs-ref/not3.fgs
@@ -0,0 +1,22 @@
+iter num = 11
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = (4 )	in = (1 )	 	out = (1 4 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (1 4 )	 	out = (1 )	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l1	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 	l1 :	mov	r0,	1	;Affect
+use = (1 ) def = ()	in = (0 1 )	 	out = (0 )	 		cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/or1.fgs b/test/fgs-ref/or1.fgs
new file mode 100644
index 0000000..aa71c4c
--- /dev/null
+++ b/test/fgs-ref/or1.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	1	;jumpIfNotEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	1	;jumpIfNotEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/or2.fgs b/test/fgs-ref/or2.fgs
new file mode 100644
index 0000000..7094e61
--- /dev/null
+++ b/test/fgs-ref/or2.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	1	;jumpIfNotEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;jumpIfNotEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/or3.fgs b/test/fgs-ref/or3.fgs
new file mode 100644
index 0000000..5b331bd
--- /dev/null
+++ b/test/fgs-ref/or3.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	0	;jumpIfNotEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	315	;jumpIfNotEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/or4.fgs b/test/fgs-ref/or4.fgs
new file mode 100644
index 0000000..86503bb
--- /dev/null
+++ b/test/fgs-ref/or4.fgs
@@ -0,0 +1,22 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	0	;jumpIfNotEqual 1
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		cmp	r3,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;jumpIfNotEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/or5.fgs b/test/fgs-ref/or5.fgs
new file mode 100644
index 0000000..a14bf64
--- /dev/null
+++ b/test/fgs-ref/or5.fgs
@@ -0,0 +1,30 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;jumpIfNotEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l3	;jumpIfNotEqual 2
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	1	;jumpIfNotEqual 1
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l3	;jumpIfNotEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		jmp	l2	;Jump
+use = () def = (1 )	in = ()	 	out = (1 )	 	l3 :	mov	r1,	1	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;jumpIfNotEqual 1
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (6 )	in = ()	 	out = (6 )	 		mov	r6,	0	;jumpIfNotEqual 1
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		cmp	r6,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (7 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/parenth1.fgs b/test/fgs-ref/parenth1.fgs
new file mode 100644
index 0000000..2aed1a1
--- /dev/null
+++ b/test/fgs-ref/parenth1.fgs
@@ -0,0 +1,13 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/parenth2.fgs b/test/fgs-ref/parenth2.fgs
new file mode 100644
index 0000000..8f2d299
--- /dev/null
+++ b/test/fgs-ref/parenth2.fgs
@@ -0,0 +1,13 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	2	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio23-1.fgs b/test/fgs-ref/prio23-1.fgs
new file mode 100644
index 0000000..d50f451
--- /dev/null
+++ b/test/fgs-ref/prio23-1.fgs
@@ -0,0 +1,20 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 )	 	out = (0 4 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (0 4 )	 	out = (0 )	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 	l0 :	mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		imul	r1,	10	;
+use = (1 ) def = (5 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio23-2.fgs b/test/fgs-ref/prio23-2.fgs
new file mode 100644
index 0000000..ca8580f
--- /dev/null
+++ b/test/fgs-ref/prio23-2.fgs
@@ -0,0 +1,20 @@
+iter num = 11
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 )	 	out = (0 4 )	 		mov	r4,	10	;JumpIfEqual 1
+use = (4 ) def = ()	in = (0 4 )	 	out = (0 )	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = (1 )	in = (0 )	 	out = (0 1 )	 	l0 :	mov	r1,	3	;
+use = (0 1 ) def = (1 )	in = (0 1 )	 	out = (1 )	 		imul	r1,	r0	;
+use = (1 ) def = (5 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio23-3.fgs b/test/fgs-ref/prio23-3.fgs
new file mode 100644
index 0000000..6bb0cc3
--- /dev/null
+++ b/test/fgs-ref/prio23-3.fgs
@@ -0,0 +1,22 @@
+iter num = 28
+use = () def = ()	in = (7 )	 	out = (7 )	 		call	main	;
+use = () def = (2 )	in = (7 )	 	out = (7 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = (7 )	 	out = (7 )	 		mov	eax,	1	;
+use = () def = ()	in = (7 )	 	out = (7 )	 		int 0x80	;
+use = () def = ()	in = (7 )	 	out = (7 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (7 )	 	out = (7 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (7 )	 	out = (7 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = (7 )	 	out = (0 7 )	 		mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 7 )	 	out = (0 4 7 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (0 4 7 )	 	out = (0 7 )	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 7 )	 	out = (0 7 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = (7 )	 	out = (0 7 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 7 )	 	out = (7 )	 	l0 :	mov	eax,	r0	;
+use = () def = (6 )	in = (7 )	 	out = (6 7 )	 		mov	r6,	1	;
+use = (6 ) def = ()	in = (6 7 )	 	out = (7 )	 		idiv	r6	;
+use = (7 ) def = (1 )	in = (7 )	 	out = (1 )	 		mov	r1,	eax	;
+use = (1 ) def = (8 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio23-4.fgs b/test/fgs-ref/prio23-4.fgs
new file mode 100644
index 0000000..31cb97e
--- /dev/null
+++ b/test/fgs-ref/prio23-4.fgs
@@ -0,0 +1,26 @@
+iter num = 34
+use = () def = ()	in = (8 )	 	out = (8 )	 		call	main	;
+use = () def = (3 )	in = (8 )	 	out = (8 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (4 )	in = (8 )	 	out = (8 )	 		mov	eax,	1	;
+use = () def = ()	in = (8 )	 	out = (8 )	 		int 0x80	;
+use = () def = ()	in = (8 )	 	out = (8 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (8 )	 	out = (8 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (8 )	 	out = (8 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = (8 )	 	out = (0 8 )	 		mov	r0,	1	;Affect
+use = () def = (5 )	in = (0 8 )	 	out = (0 5 8 )	 		mov	r5,	1	;JumpIfEqual 1
+use = (5 ) def = ()	in = (0 5 8 )	 	out = (0 8 )	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 8 )	 	out = (0 8 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = (8 )	 	out = (0 8 )	 		mov	r0,	0	;Affect
+use = () def = (1 )	in = (0 8 )	 	out = (0 1 8 )	 	l0 :	mov	r1,	1	;Affect
+use = () def = (6 )	in = (0 1 8 )	 	out = (0 1 6 8 )	 		mov	r6,	0	;JumpIfEqual 1
+use = (6 ) def = ()	in = (0 1 6 8 )	 	out = (0 1 8 )	 		cmp	r6,	0	;on passe par un registre temporaire
+use = () def = ()	in = (0 1 8 )	 	out = (0 1 8 )	 		je	l1	;JumpIfEqual 2
+use = () def = (1 )	in = (0 8 )	 	out = (0 1 8 )	 		mov	r1,	0	;Affect
+use = (0 ) def = (7 )	in = (0 1 8 )	 	out = (1 8 )	 	l1 :	mov	eax,	r0	;
+use = (1 ) def = ()	in = (1 8 )	 	out = (8 )	 		idiv	r1	;
+use = (8 ) def = (2 )	in = (8 )	 	out = (2 )	 		mov	r2,	eax	;
+use = (2 ) def = (9 )	in = (2 )	 	out = ()	 		mov	eax,	r2	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio34-1.fgs b/test/fgs-ref/prio34-1.fgs
new file mode 100644
index 0000000..fadac07
--- /dev/null
+++ b/test/fgs-ref/prio34-1.fgs
@@ -0,0 +1,17 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	3	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		imul	r0,	4	;
+use = () def = (1 )	in = (0 )	 	out = (0 1 )	 		mov	r1,	2	;
+use = (0 1 ) def = (1 )	in = (0 1 )	 	out = (1 )	 		add	r1,	r0	;
+use = (1 ) def = (4 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio34-2.fgs b/test/fgs-ref/prio34-2.fgs
new file mode 100644
index 0000000..ffeb7df
--- /dev/null
+++ b/test/fgs-ref/prio34-2.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	2	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		imul	r0,	3	;
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 		mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		sub	r1,	4	;
+use = (1 ) def = (4 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio34-3.fgs b/test/fgs-ref/prio34-3.fgs
new file mode 100644
index 0000000..aba8655
--- /dev/null
+++ b/test/fgs-ref/prio34-3.fgs
@@ -0,0 +1,19 @@
+iter num = 20
+use = () def = ()	in = (6 )	 	out = (6 )	 		call	main	;
+use = () def = (2 )	in = (6 )	 	out = (6 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = (6 )	 	out = (6 )	 		mov	eax,	1	;
+use = () def = ()	in = (6 )	 	out = (6 )	 		int 0x80	;
+use = () def = ()	in = (6 )	 	out = (6 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (6 )	 	out = (6 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (6 )	 	out = (6 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = (6 )	 	out = (6 )	 		mov	eax,	6	;
+use = () def = (5 )	in = (6 )	 	out = (5 6 )	 		mov	r5,	3	;
+use = (5 ) def = ()	in = (5 6 )	 	out = (6 )	 		idiv	r5	;
+use = (6 ) def = (0 )	in = (6 )	 	out = (0 )	 		mov	r0,	eax	;
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 		mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		sub	r1,	72	;
+use = (1 ) def = (7 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio34-4.fgs b/test/fgs-ref/prio34-4.fgs
new file mode 100644
index 0000000..088f3df
--- /dev/null
+++ b/test/fgs-ref/prio34-4.fgs
@@ -0,0 +1,19 @@
+iter num = 20
+use = () def = ()	in = (6 )	 	out = (6 )	 		call	main	;
+use = () def = (2 )	in = (6 )	 	out = (6 )	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = (6 )	 	out = (6 )	 		mov	eax,	1	;
+use = () def = ()	in = (6 )	 	out = (6 )	 		int 0x80	;
+use = () def = ()	in = (6 )	 	out = (6 )	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = (6 )	 	out = (6 )	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = (6 )	 	out = (6 )	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = (6 )	 	out = (6 )	 		mov	eax,	20	;
+use = () def = (5 )	in = (6 )	 	out = (5 6 )	 		mov	r5,	10	;
+use = (5 ) def = ()	in = (5 6 )	 	out = (6 )	 		idiv	r5	;
+use = (6 ) def = (0 )	in = (6 )	 	out = (0 )	 		mov	r0,	eax	;
+use = () def = (1 )	in = (0 )	 	out = (0 1 )	 		mov	r1,	6	;
+use = (0 1 ) def = (1 )	in = (0 1 )	 	out = (1 )	 		add	r1,	r0	;
+use = (1 ) def = (7 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio45-1.fgs b/test/fgs-ref/prio45-1.fgs
new file mode 100644
index 0000000..c4e774f
--- /dev/null
+++ b/test/fgs-ref/prio45-1.fgs
@@ -0,0 +1,20 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	1	;
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 		mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 1 )	 	out = (0 1 4 )	 		mov	r4,	2	;JumpIfEqual 1
+use = (1 4 ) def = ()	in = (0 1 4 )	 	out = (0 )	 		cmp	r4,	r1	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio45-2.fgs b/test/fgs-ref/prio45-2.fgs
new file mode 100644
index 0000000..581d854
--- /dev/null
+++ b/test/fgs-ref/prio45-2.fgs
@@ -0,0 +1,19 @@
+iter num = 7
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	234	;
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 		mov	r0,	1	;Affect
+use = (1 ) def = ()	in = (0 1 )	 	out = (0 )	 		cmp	r1,	1	;JumpIfEqual 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		je	l0	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio45-3.fgs b/test/fgs-ref/prio45-3.fgs
new file mode 100644
index 0000000..9519f6c
--- /dev/null
+++ b/test/fgs-ref/prio45-3.fgs
@@ -0,0 +1,20 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	11	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	100	;
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 		mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 1 )	 	out = (0 1 4 )	 		mov	r4,	12	;JumpIfLess 1
+use = (1 4 ) def = ()	in = (0 1 4 )	 	out = (0 )	 		cmp	r4,	r1	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (5 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio45-4.fgs b/test/fgs-ref/prio45-4.fgs
new file mode 100644
index 0000000..2e64d12
--- /dev/null
+++ b/test/fgs-ref/prio45-4.fgs
@@ -0,0 +1,19 @@
+iter num = 7
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	21	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		sub	r1,	21	;
+use = () def = (0 )	in = (1 )	 	out = (0 1 )	 		mov	r0,	1	;Affect
+use = (1 ) def = ()	in = (0 1 )	 	out = (0 )	 		cmp	r1,	1	;JumpIfLess 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l0	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = (4 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio56-1.fgs b/test/fgs-ref/prio56-1.fgs
new file mode 100644
index 0000000..7b84beb
--- /dev/null
+++ b/test/fgs-ref/prio56-1.fgs
@@ -0,0 +1,26 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = (4 )	in = (1 )	 	out = (1 4 )	 		mov	r4,	1	;JumpIfEqual 1
+use = (4 ) def = ()	in = (1 4 )	 	out = (1 )	 		cmp	r4,	2	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l2	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	1	;JumpIfEqual 1
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (6 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio56-2.fgs b/test/fgs-ref/prio56-2.fgs
new file mode 100644
index 0000000..f4c98dd
--- /dev/null
+++ b/test/fgs-ref/prio56-2.fgs
@@ -0,0 +1,26 @@
+iter num = 15
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = (4 )	in = (1 )	 	out = (1 4 )	 		mov	r4,	2	;JumpIfEqual 1
+use = (4 ) def = ()	in = (1 4 )	 	out = (1 )	 		cmp	r4,	1	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l2	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = () def = (5 )	in = (1 )	 	out = (1 5 )	 	l2 :	mov	r5,	1	;JumpIfEqual 1
+use = (5 ) def = ()	in = (1 5 )	 	out = (1 )	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l1	;JumpIfEqual 2
+use = (1 ) def = ()	in = (1 )	 	out = ()	 		cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	0	;Affect
+use = (0 ) def = (6 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio67-1.fgs b/test/fgs-ref/prio67-1.fgs
new file mode 100644
index 0000000..daa97c7
--- /dev/null
+++ b/test/fgs-ref/prio67-1.fgs
@@ -0,0 +1,30 @@
+iter num = 5
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	0	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	1	;JumpIfEqual 1
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		jmp	l2	;Jump
+use = () def = (1 )	in = ()	 	out = (1 )	 	l3 :	mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;jumpIfNotEqual 1
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (6 )	in = ()	 	out = (6 )	 		mov	r6,	1	;jumpIfNotEqual 1
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		cmp	r6,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (7 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/prio67-2.fgs b/test/fgs-ref/prio67-2.fgs
new file mode 100644
index 0000000..2837740
--- /dev/null
+++ b/test/fgs-ref/prio67-2.fgs
@@ -0,0 +1,30 @@
+iter num = 11
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	1	;JumpIfEqual 1
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		cmp	r4,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	0	;JumpIfEqual 1
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		cmp	r5,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		jmp	l2	;Jump
+use = () def = (1 )	in = ()	 	out = (1 )	 	l3 :	mov	r1,	0	;Affect
+use = () def = (6 )	in = (1 )	 	out = (1 6 )	 	l2 :	mov	r6,	1	;jumpIfNotEqual 1
+use = (6 ) def = ()	in = (1 6 )	 	out = (1 )	 		cmp	r6,	0	;on passe par un registre temporaire
+use = () def = ()	in = (1 )	 	out = (1 )	 		jne	l1	;jumpIfNotEqual 2
+use = (1 ) def = ()	in = (1 )	 	out = ()	 		cmp	r1,	0	;jumpIfNotEqual 1
+use = () def = ()	in = ()	 	out = ()	 		jne	l1	;jumpIfNotEqual 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		jmp	l0	;Jump
+use = () def = (0 )	in = ()	 	out = (0 )	 	l1 :	mov	r0,	1	;Affect
+use = (0 ) def = (7 )	in = (0 )	 	out = ()	 	l0 :	mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/rec1.fgs b/test/fgs-ref/rec1.fgs
new file mode 100644
index 0000000..3ca7549
--- /dev/null
+++ b/test/fgs-ref/rec1.fgs
@@ -0,0 +1,74 @@
+iter num = 7
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = (6 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (7 )	in = ()	 	out = ()	 		mov	eax,	1	; code de sortie
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		push	eax	;sauvegarde de eax
+use = () def = ()	in = ()	 	out = ()	 		push	ebx	;sauvegarde de ebx
+use = () def = ()	in = ()	 	out = ()	 		push	ecx	;sauvegarde de ecx
+use = () def = ()	in = ()	 	out = ()	 		push	edx	;sauvegarde de edx
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		cmp	dword [ebp+12],	1	;JumpIfEqual 1
+use = () def = ()	in = (1 )	 	out = (1 )	 		je	l2	;JumpIfEqual 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l2 :	cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l0	;JumpIfEqual 2
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (12 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (13 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (14 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (15 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 		jmp	l1	;Jump
+use = () def = (3 )	in = ()	 	out = (3 )	 	l0 :	mov	r3,	dword [ebp+12]	;
+use = (3 ) def = (3 )	in = (3 )	 	out = ()	 		sub	r3,	1	;
+use = () def = ()	in = ()	 	out = ()	 		push	r3	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (2 )	in = ()	 	out = (2 )	 		pop	r2	;récupération de la valeur de retour
+use = () def = ()	in = (2 )	 	out = (2 )	 		add	esp,	4	;désallocation des arguments
+use = () def = (4 )	in = (2 )	 	out = (2 4 )	 		mov	r4,	1	;
+use = (2 4 ) def = (4 )	in = (2 4 )	 	out = (4 )	 		add	r4,	r2	;
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		mov	dword [ebp+8],	r4	;ecriture de la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (16 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (17 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (18 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (19 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	l1 :	add	esp,	0	;désallocation des variables locales
+use = () def = (20 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (21 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (22 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (23 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		push	eax	;sauvegarde de eax
+use = () def = ()	in = ()	 	out = ()	 		push	ebx	;sauvegarde de ebx
+use = () def = ()	in = ()	 	out = ()	 		push	ecx	;sauvegarde de ecx
+use = () def = ()	in = ()	 	out = ()	 		push	edx	;sauvegarde de edx
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		push	100	;Param
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (5 )	in = ()	 	out = (5 )	 		pop	r5	;récupération de la valeur de retour
+use = () def = ()	in = (5 )	 	out = (5 )	 		add	esp,	4	;désallocation des arguments
+use = (5 ) def = (28 )	in = (5 )	 	out = ()	 		mov	eax,	r5	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (29 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (30 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (31 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (32 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/si1.fgs b/test/fgs-ref/si1.fgs
new file mode 100644
index 0000000..d394ed0
--- /dev/null
+++ b/test/fgs-ref/si1.fgs
@@ -0,0 +1,16 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	1	;JumpIfEqual 1
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		cmp	r2,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 	l1 :	add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/si2.fgs b/test/fgs-ref/si2.fgs
new file mode 100644
index 0000000..f752f20
--- /dev/null
+++ b/test/fgs-ref/si2.fgs
@@ -0,0 +1,19 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	0	;JumpIfEqual 1
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		cmp	r2,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l0	;JumpIfEqual 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		jmp	l1	;Jump
+use = () def = (4 )	in = ()	 	out = ()	 	l0 :	mov	eax,	0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 	l1 :	add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/si3.fgs b/test/fgs-ref/si3.fgs
new file mode 100644
index 0000000..d60ffe2
--- /dev/null
+++ b/test/fgs-ref/si3.fgs
@@ -0,0 +1,21 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	1	;JumpIfEqual 1
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		cmp	r2,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l0	;JumpIfEqual 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		jmp	l1	;Jump
+use = () def = (4 )	in = ()	 	out = ()	 	l0 :	mov	eax,	0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (5 )	in = ()	 	out = ()	 	l1 :	mov	eax,	3	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/si4.fgs b/test/fgs-ref/si4.fgs
new file mode 100644
index 0000000..8f0dfb3
--- /dev/null
+++ b/test/fgs-ref/si4.fgs
@@ -0,0 +1,21 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	0	;JumpIfEqual 1
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		cmp	r2,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l0	;JumpIfEqual 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		jmp	l1	;Jump
+use = () def = (4 )	in = ()	 	out = ()	 	l0 :	mov	eax,	0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (5 )	in = ()	 	out = ()	 	l1 :	mov	eax,	3	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/si5.fgs b/test/fgs-ref/si5.fgs
new file mode 100644
index 0000000..9f931ee
--- /dev/null
+++ b/test/fgs-ref/si5.fgs
@@ -0,0 +1,33 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	; code de sortie
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		push	eax	;sauvegarde de eax
+use = () def = ()	in = ()	 	out = ()	 		push	ebx	;sauvegarde de ebx
+use = () def = ()	in = ()	 	out = ()	 		push	ecx	;sauvegarde de ecx
+use = () def = ()	in = ()	 	out = ()	 		push	edx	;sauvegarde de edx
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (7 )	in = ()	 	out = (7 )	 		mov	r7,	1	;JumpIfEqual 1
+use = (7 ) def = ()	in = (7 )	 	out = ()	 		cmp	r7,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (8 )	in = ()	 	out = ()	 		mov	eax,	1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (9 )	in = ()	 	out = (9 )	 		mov	r9,	1	;JumpIfEqual 1
+use = (9 ) def = ()	in = (9 )	 	out = ()	 		cmp	r9,	0	;on passe par un registre temporaire
+use = () def = ()	in = ()	 	out = ()	 		je	l3	;JumpIfEqual 2
+use = () def = (10 )	in = ()	 	out = ()	 		mov	eax,	2	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (11 )	in = ()	 	out = ()	 	l3 :	mov	eax,	3	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = (12 )	in = ()	 	out = ()	 		pop	edx	;restaure edx
+use = () def = (13 )	in = ()	 	out = ()	 		pop	ecx	;restaure ecx
+use = () def = (14 )	in = ()	 	out = ()	 		pop	ebx	;restaure ebx
+use = () def = (15 )	in = ()	 	out = ()	 		pop	eax	;restaure eax
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/sub1.fgs b/test/fgs-ref/sub1.fgs
new file mode 100644
index 0000000..5b3cd76
--- /dev/null
+++ b/test/fgs-ref/sub1.fgs
@@ -0,0 +1,15 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	10	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		sub	r0,	5	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/sub2.fgs b/test/fgs-ref/sub2.fgs
new file mode 100644
index 0000000..cec410f
--- /dev/null
+++ b/test/fgs-ref/sub2.fgs
@@ -0,0 +1,15 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	7	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		sub	r0,	20	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/sub3.fgs b/test/fgs-ref/sub3.fgs
new file mode 100644
index 0000000..95d9b35
--- /dev/null
+++ b/test/fgs-ref/sub3.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	2	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		sub	r0,	1	;
+use = (0 ) def = (1 )	in = (0 )	 	out = (1 )	 		mov	r1,	r0	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		sub	r1,	1	;
+use = (1 ) def = (4 )	in = (1 )	 	out = ()	 		mov	eax,	r1	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tab1.fgs b/test/fgs-ref/tab1.fgs
new file mode 100644
index 0000000..231b91a
--- /dev/null
+++ b/test/fgs-ref/tab1.fgs
@@ -0,0 +1,26 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	0	;
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		mov	dword [tab+4*r2],	0	;Affect
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	1	;
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		mov	dword [tab+4*r3],	1	;Affect
+use = () def = (4 )	in = ()	 	out = (4 )	 		mov	r4,	2	;
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		mov	dword [tab+4*r4],	2	;Affect
+use = () def = (6 )	in = ()	 	out = (6 )	 		mov	r6,	0	;
+use = (6 ) def = (5 )	in = (6 )	 	out = ()	 		mov	eax,	dword [tab+4*r6]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (8 )	in = ()	 	out = (8 )	 		mov	r8,	1	;
+use = (8 ) def = (7 )	in = (8 )	 	out = ()	 		mov	eax,	dword [tab+4*r8]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (10 )	in = ()	 	out = (10 )	 		mov	r10,	2	;
+use = (10 ) def = (9 )	in = (10 )	 	out = ()	 		mov	eax,	dword [tab+4*r10]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tab2.fgs b/test/fgs-ref/tab2.fgs
new file mode 100644
index 0000000..de80c12
--- /dev/null
+++ b/test/fgs-ref/tab2.fgs
@@ -0,0 +1,33 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (3 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	2	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [ebp-4*1]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	0	;
+use = (0 ) def = (5 )	in = (0 )	 	out = (5 )	 		mov	r5,	r0	;
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		mov	dword [tab+4*r5],	34	;Affect
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	dword [ebp-4*1]	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	1	;
+use = (1 ) def = (6 )	in = (1 )	 	out = (6 )	 		mov	r6,	r1	;
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		mov	dword [tab+4*r6],	74	;Affect
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	dword [ebp-4*1]	;
+use = (2 ) def = (2 )	in = (2 )	 	out = (2 )	 		add	r2,	2	;
+use = (2 ) def = (7 )	in = (2 )	 	out = (7 )	 		mov	r7,	r2	;
+use = (7 ) def = ()	in = (7 )	 	out = ()	 		mov	dword [tab+4*r7],	16	;Affect
+use = () def = (9 )	in = ()	 	out = (9 )	 		mov	r9,	2	;
+use = (9 ) def = (8 )	in = (9 )	 	out = ()	 		mov	eax,	dword [tab+4*r9]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (11 )	in = ()	 	out = (11 )	 		mov	r11,	3	;
+use = (11 ) def = (10 )	in = (11 )	 	out = ()	 		mov	eax,	dword [tab+4*r11]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (13 )	in = ()	 	out = (13 )	 		mov	r13,	4	;
+use = (13 ) def = (12 )	in = (13 )	 	out = ()	 		mov	eax,	dword [tab+4*r13]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tab3.fgs b/test/fgs-ref/tab3.fgs
new file mode 100644
index 0000000..95adfbb
--- /dev/null
+++ b/test/fgs-ref/tab3.fgs
@@ -0,0 +1,36 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (3 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	8	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	2	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	0	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [ebp-4*1]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	dword [ebp-4*2]	;
+use = (0 ) def = (5 )	in = (0 )	 	out = (5 )	 		mov	r5,	r0	;
+use = (5 ) def = ()	in = (5 )	 	out = ()	 		mov	dword [tab+4*r5],	34	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	1	;Affect
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	dword [ebp-4*1]	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		add	r1,	dword [ebp-4*2]	;
+use = (1 ) def = (6 )	in = (1 )	 	out = (6 )	 		mov	r6,	r1	;
+use = (6 ) def = ()	in = (6 )	 	out = ()	 		mov	dword [tab+4*r6],	74	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	2	;Affect
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	dword [ebp-4*1]	;
+use = (2 ) def = (2 )	in = (2 )	 	out = (2 )	 		add	r2,	dword [ebp-4*2]	;
+use = (2 ) def = (7 )	in = (2 )	 	out = (7 )	 		mov	r7,	r2	;
+use = (7 ) def = ()	in = (7 )	 	out = ()	 		mov	dword [tab+4*r7],	16	;Affect
+use = () def = (9 )	in = ()	 	out = (9 )	 		mov	r9,	2	;
+use = (9 ) def = (8 )	in = (9 )	 	out = ()	 		mov	eax,	dword [tab+4*r9]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (11 )	in = ()	 	out = (11 )	 		mov	r11,	3	;
+use = (11 ) def = (10 )	in = (11 )	 	out = ()	 		mov	eax,	dword [tab+4*r11]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (13 )	in = ()	 	out = (13 )	 		mov	r13,	4	;
+use = (13 ) def = (12 )	in = (13 )	 	out = ()	 		mov	eax,	dword [tab+4*r13]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	8	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tab4.fgs b/test/fgs-ref/tab4.fgs
new file mode 100644
index 0000000..c0d4f8a
--- /dev/null
+++ b/test/fgs-ref/tab4.fgs
@@ -0,0 +1,30 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = (3 )	in = ()	 	out = (3 )	 		mov	r3,	0	;
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		mov	dword [tab+4*r3],	1	;Affect
+use = () def = (5 )	in = ()	 	out = (5 )	 		mov	r5,	0	;
+use = (5 ) def = (4 )	in = (5 )	 	out = (4 )	 		mov	r4,	dword [tab+4*r5]	;
+use = (4 ) def = ()	in = (4 )	 	out = ()	 		mov	dword [tab+4*r4],	12	;Affect
+use = () def = (6 )	in = ()	 	out = (6 )	 		mov	r6,	0	;
+use = (6 ) def = (0 )	in = (6 )	 	out = (0 )	 		mov	r0,	dword [tab+4*r6]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	1	;
+use = (0 ) def = (7 )	in = (0 )	 	out = (7 )	 		mov	r7,	r0	;
+use = (7 ) def = ()	in = (7 )	 	out = ()	 		mov	dword [tab+4*r7],	13	;Affect
+use = () def = (9 )	in = ()	 	out = (9 )	 		mov	r9,	0	;
+use = (9 ) def = (8 )	in = (9 )	 	out = ()	 		mov	eax,	dword [tab+4*r9]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (11 )	in = ()	 	out = (11 )	 		mov	r11,	1	;
+use = (11 ) def = (10 )	in = (11 )	 	out = ()	 		mov	eax,	dword [tab+4*r11]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (13 )	in = ()	 	out = (13 )	 		mov	r13,	2	;
+use = (13 ) def = (12 )	in = (13 )	 	out = ()	 		mov	eax,	dword [tab+4*r13]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tantque1.fgs b/test/fgs-ref/tantque1.fgs
new file mode 100644
index 0000000..d7bf6e0
--- /dev/null
+++ b/test/fgs-ref/tantque1.fgs
@@ -0,0 +1,27 @@
+iter num = 9
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (2 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	10	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 	l0 :	mov	r0,	1	;Affect
+use = () def = (4 )	in = (0 )	 	out = (0 4 )	 		mov	r4,	0	;JumpIfLess 1
+use = (4 ) def = ()	in = (0 4 )	 	out = (0 )	 		cmp	r4,	dword [ebp-4*1]	;on passe par un registre temporaire
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l2	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = ()	in = (0 )	 	out = ()	 	l2 :	cmp	r0,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = (5 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	dword [ebp-4*1]	;
+use = (1 ) def = (1 )	in = (1 )	 	out = (1 )	 		sub	r1,	1	;
+use = (1 ) def = ()	in = (1 )	 	out = ()	 		mov	dword [ebp-4*1],	r1	;Affect
+use = () def = ()	in = ()	 	out = ()	 		jmp	l0	;Jump
+use = () def = (6 )	in = ()	 	out = ()	 	l1 :	mov	eax,	0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/tantque2.fgs b/test/fgs-ref/tantque2.fgs
new file mode 100644
index 0000000..279c4df
--- /dev/null
+++ b/test/fgs-ref/tantque2.fgs
@@ -0,0 +1,37 @@
+iter num = 7
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (4 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (5 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	8	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	0	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 	l0 :	mov	r0,	1	;Affect
+use = () def = ()	in = (0 )	 	out = (0 )	 		cmp	dword [ebp-4*1],	4	;JumpIfLess 1
+use = () def = ()	in = (0 )	 	out = (0 )	 		jl	l2	;JumpIfLess 2
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	0	;Affect
+use = (0 ) def = ()	in = (0 )	 	out = ()	 	l2 :	cmp	r0,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l1	;JumpIfEqual 2
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	0	;Affect
+use = () def = (1 )	in = ()	 	out = (1 )	 	l3 :	mov	r1,	1	;Affect
+use = () def = ()	in = (1 )	 	out = (1 )	 		cmp	dword [ebp-4*2],	4	;JumpIfLess 1
+use = () def = ()	in = (1 )	 	out = (1 )	 		jl	l5	;JumpIfLess 2
+use = () def = (1 )	in = ()	 	out = (1 )	 		mov	r1,	0	;Affect
+use = (1 ) def = ()	in = (1 )	 	out = ()	 	l5 :	cmp	r1,	0	;JumpIfEqual 1
+use = () def = ()	in = ()	 	out = ()	 		je	l4	;JumpIfEqual 2
+use = () def = (6 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (7 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*2]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (2 )	in = ()	 	out = (2 )	 		mov	r2,	dword [ebp-4*2]	;
+use = (2 ) def = (2 )	in = (2 )	 	out = (2 )	 		add	r2,	1	;
+use = (2 ) def = ()	in = (2 )	 	out = ()	 		mov	dword [ebp-4*2],	r2	;Affect
+use = () def = ()	in = ()	 	out = ()	 		jmp	l3	;Jump
+use = () def = (3 )	in = ()	 	out = (3 )	 	l4 :	mov	r3,	dword [ebp-4*1]	;
+use = (3 ) def = (3 )	in = (3 )	 	out = (3 )	 		add	r3,	1	;
+use = (3 ) def = ()	in = (3 )	 	out = ()	 		mov	dword [ebp-4*1],	r3	;Affect
+use = () def = ()	in = ()	 	out = ()	 		jmp	l0	;Jump
+use = () def = ()	in = ()	 	out = ()	 	l1 :	add	esp,	8	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varglob1.fgs b/test/fgs-ref/varglob1.fgs
new file mode 100644
index 0000000..72148c7
--- /dev/null
+++ b/test/fgs-ref/varglob1.fgs
@@ -0,0 +1,14 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [variable],	6834	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [variable]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varglob2.fgs b/test/fgs-ref/varglob2.fgs
new file mode 100644
index 0000000..b4190b6
--- /dev/null
+++ b/test/fgs-ref/varglob2.fgs
@@ -0,0 +1,16 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [variable],	10	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [variable]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	50	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varglob3.fgs b/test/fgs-ref/varglob3.fgs
new file mode 100644
index 0000000..35eebac
--- /dev/null
+++ b/test/fgs-ref/varglob3.fgs
@@ -0,0 +1,17 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [var1],	10	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [var2],	34	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [var1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [var2]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varglob4.fgs b/test/fgs-ref/varglob4.fgs
new file mode 100644
index 0000000..6405a6f
--- /dev/null
+++ b/test/fgs-ref/varglob4.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [var1],	10	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [var2],	34	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [var1]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	dword [var2]	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varloc1.fgs b/test/fgs-ref/varloc1.fgs
new file mode 100644
index 0000000..591bef1
--- /dev/null
+++ b/test/fgs-ref/varloc1.fgs
@@ -0,0 +1,14 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	6834	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varloc2.fgs b/test/fgs-ref/varloc2.fgs
new file mode 100644
index 0000000..3d7d2c7
--- /dev/null
+++ b/test/fgs-ref/varloc2.fgs
@@ -0,0 +1,16 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	10	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [ebp-4*1]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	50	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varloc3.fgs b/test/fgs-ref/varloc3.fgs
new file mode 100644
index 0000000..e38d572
--- /dev/null
+++ b/test/fgs-ref/varloc3.fgs
@@ -0,0 +1,17 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (0 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (1 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	8	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	10	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	30	;Affect
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*2]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	8	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varloc4.fgs b/test/fgs-ref/varloc4.fgs
new file mode 100644
index 0000000..0357bac
--- /dev/null
+++ b/test/fgs-ref/varloc4.fgs
@@ -0,0 +1,17 @@
+iter num = 3
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	8	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	10	;Affect
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*2],	30	;Affect
+use = () def = (0 )	in = ()	 	out = (0 )	 		mov	r0,	dword [ebp-4*1]	;
+use = (0 ) def = (0 )	in = (0 )	 	out = (0 )	 		add	r0,	dword [ebp-4*2]	;
+use = (0 ) def = (3 )	in = (0 )	 	out = ()	 		mov	eax,	r0	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	8	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/fgs-ref/varloc5.fgs b/test/fgs-ref/varloc5.fgs
new file mode 100644
index 0000000..74ee639
--- /dev/null
+++ b/test/fgs-ref/varloc5.fgs
@@ -0,0 +1,26 @@
+iter num = 1
+use = () def = ()	in = ()	 	out = ()	 		call	main	;
+use = () def = (1 )	in = ()	 	out = ()	 		mov	ebx,	0	; valeur de retour du programme
+use = () def = (2 )	in = ()	 	out = ()	 		mov	eax,	1	;
+use = () def = ()	in = ()	 	out = ()	 		int 0x80	;
+use = () def = ()	in = ()	 	out = ()	 	f :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [ebp-4*1],	10	;Affect
+use = () def = (3 )	in = ()	 	out = ()	 		mov	eax,	dword [ebp-4*1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	4	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
+use = () def = ()	in = ()	 	out = ()	 	main :	push	ebp	;sauvegarde la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		mov	ebp,	esp	;nouvelle valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	0	;allocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		mov	dword [var1],	20	;Affect
+use = () def = ()	in = ()	 	out = ()	 		sub	esp,	4	;allocation mémoire pour la valeur de retour
+use = () def = ()	in = ()	 	out = ()	 		call	f	;
+use = () def = (0 )	in = ()	 	out = ()	 		pop	r0	;récupération de la valeur de retour
+use = () def = (4 )	in = ()	 	out = ()	 		mov	eax,	dword [var1]	;Write 1
+use = () def = ()	in = ()	 	out = ()	 		call	iprintLF	;Write 2
+use = () def = ()	in = ()	 	out = ()	 		add	esp,	0	;désallocation des variables locales
+use = () def = ()	in = ()	 	out = ()	 		pop	ebp	;restaure la valeur de ebp
+use = () def = ()	in = ()	 	out = ()	 		ret	;
diff --git a/test/ig-ref/add1.ig b/test/ig-ref/add1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/add1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/add2.ig b/test/ig-ref/add2.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/add2.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/affect1.ig b/test/ig-ref/affect1.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/affect1.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/affect2.ig b/test/ig-ref/affect2.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/affect2.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/affect3.ig b/test/ig-ref/affect3.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/affect3.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/and1.ig b/test/ig-ref/and1.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/and1.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/and2.ig b/test/ig-ref/and2.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/and2.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/and3.ig b/test/ig-ref/and3.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/and3.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/and4.ig b/test/ig-ref/and4.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/and4.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/and5.ig b/test/ig-ref/and5.ig
new file mode 100644
index 0000000..b8523b9
--- /dev/null
+++ b/test/ig-ref/and5.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
diff --git a/test/ig-ref/appel-param1.ig b/test/ig-ref/appel-param1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/appel-param1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/appel-param2.ig b/test/ig-ref/appel-param2.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/appel-param2.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/appel-param3.ig b/test/ig-ref/appel-param3.ig
new file mode 100644
index 0000000..b8523b9
--- /dev/null
+++ b/test/ig-ref/appel-param3.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
diff --git a/test/ig-ref/appel-retour1.ig b/test/ig-ref/appel-retour1.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/appel-retour1.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/appel1.ig b/test/ig-ref/appel1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/appel1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/appel2.ig b/test/ig-ref/appel2.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/appel2.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/appel3.ig b/test/ig-ref/appel3.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/appel3.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/div1.ig b/test/ig-ref/div1.ig
new file mode 100644
index 0000000..310c1f5
--- /dev/null
+++ b/test/ig-ref/div1.ig
@@ -0,0 +1,7 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 5 )
+5 : ( 4 )
+6 : ( )
diff --git a/test/ig-ref/div2.ig b/test/ig-ref/div2.ig
new file mode 100644
index 0000000..310c1f5
--- /dev/null
+++ b/test/ig-ref/div2.ig
@@ -0,0 +1,7 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 5 )
+5 : ( 4 )
+6 : ( )
diff --git a/test/ig-ref/div3.ig b/test/ig-ref/div3.ig
new file mode 100644
index 0000000..cc89801
--- /dev/null
+++ b/test/ig-ref/div3.ig
@@ -0,0 +1,11 @@
+0 : ( 9 )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( 9 6 )
+6 : ( 5 9 )
+7 : ( )
+8 : ( 9 )
+9 : ( 8 0 5 6 )
+10 : ( )
diff --git a/test/ig-ref/div4.ig b/test/ig-ref/div4.ig
new file mode 100644
index 0000000..310c1f5
--- /dev/null
+++ b/test/ig-ref/div4.ig
@@ -0,0 +1,7 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 5 )
+5 : ( 4 )
+6 : ( )
diff --git a/test/ig-ref/ecrire1.ig b/test/ig-ref/ecrire1.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/ecrire1.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/ecrire2.ig b/test/ig-ref/ecrire2.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/ecrire2.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/egal1.ig b/test/ig-ref/egal1.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/egal1.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/egal2.ig b/test/ig-ref/egal2.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/egal2.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/egal3.ig b/test/ig-ref/egal3.ig
new file mode 100644
index 0000000..36be12e
--- /dev/null
+++ b/test/ig-ref/egal3.ig
@@ -0,0 +1,6 @@
+0 : ( 1 )
+1 : ( 0 4 )
+2 : ( )
+3 : ( )
+4 : ( 1 )
+5 : ( )
diff --git a/test/ig-ref/err5.ig b/test/ig-ref/err5.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/err5.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/fibo.ig b/test/ig-ref/fibo.ig
new file mode 100644
index 0000000..995a6d6
--- /dev/null
+++ b/test/ig-ref/fibo.ig
@@ -0,0 +1,35 @@
+0 : ( )
+1 : ( )
+2 : ( 4 5 )
+3 : ( )
+4 : ( 6 2 )
+5 : ( 2 )
+6 : ( 4 )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
+14 : ( )
+15 : ( )
+16 : ( )
+17 : ( )
+18 : ( )
+19 : ( )
+20 : ( )
+21 : ( )
+22 : ( )
+23 : ( )
+24 : ( )
+25 : ( )
+26 : ( )
+27 : ( )
+28 : ( )
+29 : ( )
+30 : ( )
+31 : ( )
+32 : ( )
+33 : ( )
+34 : ( )
diff --git a/test/ig-ref/inf1.ig b/test/ig-ref/inf1.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/inf1.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/inf2.ig b/test/ig-ref/inf2.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/inf2.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/inf3.ig b/test/ig-ref/inf3.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/inf3.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/inf4.ig b/test/ig-ref/inf4.ig
new file mode 100644
index 0000000..36be12e
--- /dev/null
+++ b/test/ig-ref/inf4.ig
@@ -0,0 +1,6 @@
+0 : ( 1 )
+1 : ( 0 4 )
+2 : ( )
+3 : ( )
+4 : ( 1 )
+5 : ( )
diff --git a/test/ig-ref/mult1.ig b/test/ig-ref/mult1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/mult1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/mult2.ig b/test/ig-ref/mult2.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/mult2.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/mult3.ig b/test/ig-ref/mult3.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/mult3.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/not1.ig b/test/ig-ref/not1.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/not1.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/not2.ig b/test/ig-ref/not2.ig
new file mode 100644
index 0000000..409eea4
--- /dev/null
+++ b/test/ig-ref/not2.ig
@@ -0,0 +1,5 @@
+0 : ( 3 )
+1 : ( )
+2 : ( )
+3 : ( 0 )
+4 : ( )
diff --git a/test/ig-ref/not3.ig b/test/ig-ref/not3.ig
new file mode 100644
index 0000000..36be12e
--- /dev/null
+++ b/test/ig-ref/not3.ig
@@ -0,0 +1,6 @@
+0 : ( 1 )
+1 : ( 0 4 )
+2 : ( )
+3 : ( )
+4 : ( 1 )
+5 : ( )
diff --git a/test/ig-ref/or1.ig b/test/ig-ref/or1.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/or1.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/or2.ig b/test/ig-ref/or2.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/or2.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/or3.ig b/test/ig-ref/or3.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/or3.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/or4.ig b/test/ig-ref/or4.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/or4.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/or5.ig b/test/ig-ref/or5.ig
new file mode 100644
index 0000000..b8523b9
--- /dev/null
+++ b/test/ig-ref/or5.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
diff --git a/test/ig-ref/parenth1.ig b/test/ig-ref/parenth1.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/parenth1.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/parenth2.ig b/test/ig-ref/parenth2.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/parenth2.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/prio23-1.ig b/test/ig-ref/prio23-1.ig
new file mode 100644
index 0000000..01906f1
--- /dev/null
+++ b/test/ig-ref/prio23-1.ig
@@ -0,0 +1,6 @@
+0 : ( 4 )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 0 )
+5 : ( )
diff --git a/test/ig-ref/prio23-2.ig b/test/ig-ref/prio23-2.ig
new file mode 100644
index 0000000..3c46084
--- /dev/null
+++ b/test/ig-ref/prio23-2.ig
@@ -0,0 +1,6 @@
+0 : ( 1 4 )
+1 : ( 0 )
+2 : ( )
+3 : ( )
+4 : ( 0 )
+5 : ( )
diff --git a/test/ig-ref/prio23-3.ig b/test/ig-ref/prio23-3.ig
new file mode 100644
index 0000000..2c85526
--- /dev/null
+++ b/test/ig-ref/prio23-3.ig
@@ -0,0 +1,9 @@
+0 : ( 4 7 )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 7 0 )
+5 : ( )
+6 : ( 7 )
+7 : ( 6 4 0 )
+8 : ( )
diff --git a/test/ig-ref/prio23-4.ig b/test/ig-ref/prio23-4.ig
new file mode 100644
index 0000000..a6f0114
--- /dev/null
+++ b/test/ig-ref/prio23-4.ig
@@ -0,0 +1,10 @@
+0 : ( 6 1 5 8 )
+1 : ( 6 8 0 )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( 8 0 )
+6 : ( 8 1 0 )
+7 : ( )
+8 : ( 6 1 5 0 )
+9 : ( )
diff --git a/test/ig-ref/prio34-1.ig b/test/ig-ref/prio34-1.ig
new file mode 100644
index 0000000..651a70a
--- /dev/null
+++ b/test/ig-ref/prio34-1.ig
@@ -0,0 +1,5 @@
+0 : ( 1 )
+1 : ( 0 )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/prio34-2.ig b/test/ig-ref/prio34-2.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/prio34-2.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/prio34-3.ig b/test/ig-ref/prio34-3.ig
new file mode 100644
index 0000000..896201f
--- /dev/null
+++ b/test/ig-ref/prio34-3.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( 6 )
+6 : ( 5 )
+7 : ( )
diff --git a/test/ig-ref/prio34-4.ig b/test/ig-ref/prio34-4.ig
new file mode 100644
index 0000000..160bcbd
--- /dev/null
+++ b/test/ig-ref/prio34-4.ig
@@ -0,0 +1,8 @@
+0 : ( 1 )
+1 : ( 0 )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( 6 )
+6 : ( 5 )
+7 : ( )
diff --git a/test/ig-ref/prio45-1.ig b/test/ig-ref/prio45-1.ig
new file mode 100644
index 0000000..3e68789
--- /dev/null
+++ b/test/ig-ref/prio45-1.ig
@@ -0,0 +1,6 @@
+0 : ( 4 1 )
+1 : ( 4 0 )
+2 : ( )
+3 : ( )
+4 : ( 1 0 )
+5 : ( )
diff --git a/test/ig-ref/prio45-2.ig b/test/ig-ref/prio45-2.ig
new file mode 100644
index 0000000..651a70a
--- /dev/null
+++ b/test/ig-ref/prio45-2.ig
@@ -0,0 +1,5 @@
+0 : ( 1 )
+1 : ( 0 )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/prio45-3.ig b/test/ig-ref/prio45-3.ig
new file mode 100644
index 0000000..3e68789
--- /dev/null
+++ b/test/ig-ref/prio45-3.ig
@@ -0,0 +1,6 @@
+0 : ( 4 1 )
+1 : ( 4 0 )
+2 : ( )
+3 : ( )
+4 : ( 1 0 )
+5 : ( )
diff --git a/test/ig-ref/prio45-4.ig b/test/ig-ref/prio45-4.ig
new file mode 100644
index 0000000..651a70a
--- /dev/null
+++ b/test/ig-ref/prio45-4.ig
@@ -0,0 +1,5 @@
+0 : ( 1 )
+1 : ( 0 )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/prio56-1.ig b/test/ig-ref/prio56-1.ig
new file mode 100644
index 0000000..5a5fe88
--- /dev/null
+++ b/test/ig-ref/prio56-1.ig
@@ -0,0 +1,7 @@
+0 : ( )
+1 : ( 4 )
+2 : ( )
+3 : ( )
+4 : ( 1 )
+5 : ( )
+6 : ( )
diff --git a/test/ig-ref/prio56-2.ig b/test/ig-ref/prio56-2.ig
new file mode 100644
index 0000000..70471f1
--- /dev/null
+++ b/test/ig-ref/prio56-2.ig
@@ -0,0 +1,7 @@
+0 : ( )
+1 : ( 5 4 )
+2 : ( )
+3 : ( )
+4 : ( 1 )
+5 : ( 1 )
+6 : ( )
diff --git a/test/ig-ref/prio67-1.ig b/test/ig-ref/prio67-1.ig
new file mode 100644
index 0000000..b8523b9
--- /dev/null
+++ b/test/ig-ref/prio67-1.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
diff --git a/test/ig-ref/prio67-2.ig b/test/ig-ref/prio67-2.ig
new file mode 100644
index 0000000..2ca8a44
--- /dev/null
+++ b/test/ig-ref/prio67-2.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( 6 )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( 1 )
+7 : ( )
diff --git a/test/ig-ref/rec1.ig b/test/ig-ref/rec1.ig
new file mode 100644
index 0000000..38c4a8b
--- /dev/null
+++ b/test/ig-ref/rec1.ig
@@ -0,0 +1,33 @@
+0 : ( )
+1 : ( )
+2 : ( 4 )
+3 : ( )
+4 : ( 2 )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
+14 : ( )
+15 : ( )
+16 : ( )
+17 : ( )
+18 : ( )
+19 : ( )
+20 : ( )
+21 : ( )
+22 : ( )
+23 : ( )
+24 : ( )
+25 : ( )
+26 : ( )
+27 : ( )
+28 : ( )
+29 : ( )
+30 : ( )
+31 : ( )
+32 : ( )
diff --git a/test/ig-ref/si1.ig b/test/ig-ref/si1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/si1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/si2.ig b/test/ig-ref/si2.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/si2.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/si3.ig b/test/ig-ref/si3.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/si3.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/si4.ig b/test/ig-ref/si4.ig
new file mode 100644
index 0000000..9fbbbab
--- /dev/null
+++ b/test/ig-ref/si4.ig
@@ -0,0 +1,6 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
diff --git a/test/ig-ref/si5.ig b/test/ig-ref/si5.ig
new file mode 100644
index 0000000..99b007e
--- /dev/null
+++ b/test/ig-ref/si5.ig
@@ -0,0 +1,16 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
+14 : ( )
+15 : ( )
diff --git a/test/ig-ref/sub1.ig b/test/ig-ref/sub1.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/sub1.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/sub2.ig b/test/ig-ref/sub2.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/sub2.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/sub3.ig b/test/ig-ref/sub3.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/sub3.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/ig-ref/tab1.ig b/test/ig-ref/tab1.ig
new file mode 100644
index 0000000..296dc40
--- /dev/null
+++ b/test/ig-ref/tab1.ig
@@ -0,0 +1,11 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
diff --git a/test/ig-ref/tab2.ig b/test/ig-ref/tab2.ig
new file mode 100644
index 0000000..3687f68
--- /dev/null
+++ b/test/ig-ref/tab2.ig
@@ -0,0 +1,14 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
diff --git a/test/ig-ref/tab3.ig b/test/ig-ref/tab3.ig
new file mode 100644
index 0000000..3687f68
--- /dev/null
+++ b/test/ig-ref/tab3.ig
@@ -0,0 +1,14 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
diff --git a/test/ig-ref/tab4.ig b/test/ig-ref/tab4.ig
new file mode 100644
index 0000000..3687f68
--- /dev/null
+++ b/test/ig-ref/tab4.ig
@@ -0,0 +1,14 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
+8 : ( )
+9 : ( )
+10 : ( )
+11 : ( )
+12 : ( )
+13 : ( )
diff --git a/test/ig-ref/tantque1.ig b/test/ig-ref/tantque1.ig
new file mode 100644
index 0000000..95f1f94
--- /dev/null
+++ b/test/ig-ref/tantque1.ig
@@ -0,0 +1,7 @@
+0 : ( 4 )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( 0 )
+5 : ( )
+6 : ( )
diff --git a/test/ig-ref/tantque2.ig b/test/ig-ref/tantque2.ig
new file mode 100644
index 0000000..b8523b9
--- /dev/null
+++ b/test/ig-ref/tantque2.ig
@@ -0,0 +1,8 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
+5 : ( )
+6 : ( )
+7 : ( )
diff --git a/test/ig-ref/varglob1.ig b/test/ig-ref/varglob1.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/varglob1.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/varglob2.ig b/test/ig-ref/varglob2.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varglob2.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varglob3.ig b/test/ig-ref/varglob3.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varglob3.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varglob4.ig b/test/ig-ref/varglob4.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varglob4.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varloc1.ig b/test/ig-ref/varloc1.ig
new file mode 100644
index 0000000..9081252
--- /dev/null
+++ b/test/ig-ref/varloc1.ig
@@ -0,0 +1,3 @@
+0 : ( )
+1 : ( )
+2 : ( )
diff --git a/test/ig-ref/varloc2.ig b/test/ig-ref/varloc2.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varloc2.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varloc3.ig b/test/ig-ref/varloc3.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varloc3.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varloc4.ig b/test/ig-ref/varloc4.ig
new file mode 100644
index 0000000..3ac5b32
--- /dev/null
+++ b/test/ig-ref/varloc4.ig
@@ -0,0 +1,4 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
diff --git a/test/ig-ref/varloc5.ig b/test/ig-ref/varloc5.ig
new file mode 100644
index 0000000..858571f
--- /dev/null
+++ b/test/ig-ref/varloc5.ig
@@ -0,0 +1,5 @@
+0 : ( )
+1 : ( )
+2 : ( )
+3 : ( )
+4 : ( )
diff --git a/test/input/.gitignore b/test/input/.gitignore
new file mode 100644
index 0000000..970de74
--- /dev/null
+++ b/test/input/.gitignore
@@ -0,0 +1,17 @@
+*\.sc
+*\.sa
+*\.saout
+*\.ts
+*\.c3a
+*\.c3aout
+*\.pre-nasm
+*\.pre-nasmout
+*\.fg
+*\.fgs
+*\.ig
+*\.nasm
+*\.nasmout
+*\.exe
+*\.exeout
+*\.out
+*\.o
diff --git a/test/input/add1.l b/test/input/add1.l
new file mode 100644
index 0000000..ba80541
--- /dev/null
+++ b/test/input/add1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(3 + 10);
+}
diff --git a/test/input/add1.s b/test/input/add1.s
new file mode 100644
index 0000000..e37fb34
--- /dev/null
+++ b/test/input/add1.s
@@ -0,0 +1,20 @@
+.include "io_arm.asm"
+
+
+.data
+
+.text
+.global _start
+_start:
+	bl	main	 
+	mov	r7,	#1	 //exit syscall
+	svc	#0	 //Syscall
+main :	push	{r11,r14}	 //prologue func
+	mov	r0,	#3	 
+	add	r0,	r0,	#10	 
+	push	{r7,r14}	 //Sauvegarde r7 et lr
+	mov	r7,	#4	 //Write syscall
+	svc	#0	 	//syscall
+	pop	{r7,r15}	 //Restauration de r7 et pc
+	pop	{r11,r15}	 //epilogue func
+	bx	lr
diff --git a/test/input/add2.l b/test/input/add2.l
new file mode 100644
index 0000000..7f179b2
--- /dev/null
+++ b/test/input/add2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 + 4 + 8);
+}
diff --git a/test/input/add2.s b/test/input/add2.s
new file mode 100644
index 0000000..308cfa2
--- /dev/null
+++ b/test/input/add2.s
@@ -0,0 +1,21 @@
+.include "io_arm.asm"
+
+
+.data
+
+.text
+.global _start
+_start:
+	bl	main	 
+	mov	r7,	#1	 //exit syscall
+	svc	#0	 //Syscall
+main :	push	{r11,r14}	 //prologue func
+	mov	r1,	#2	 
+	add	r1,	r1,	#4	 
+	add	r0,	r2,	#8	 
+	push	{r7,r14}	 //Sauvegarde r7 et lr
+	mov	r7,	#4	 //Write syscall
+	svc	#0	 	//syscall
+	pop	{r7,r15}	 //Restauration de r7 et pc
+	pop	{r11,r15}	 //epilogue func
+	bx	lr
diff --git a/test/input/affect1.l b/test/input/affect1.l
new file mode 100644
index 0000000..cff6425
--- /dev/null
+++ b/test/input/affect1.l
@@ -0,0 +1,6 @@
+entier a
+main()
+{
+a = 1;
+ecrire(a);
+}
diff --git a/test/input/affect1.s b/test/input/affect1.s
new file mode 100644
index 0000000..bc09581
--- /dev/null
+++ b/test/input/affect1.s
@@ -0,0 +1,22 @@
+.include "io_arm.asm"
+
+
+.data
+
+.global a
+a:.worda	VAR  	1	0
+
+.text
+.global _start
+_start:
+	bl	main	 
+	mov	r7,	#1	 //exit syscall
+	svc	#0	 //Syscall
+main :	push	{r11,r14}	 //prologue func
+	mov	 a,	#1	 //Affect
+	push	{r7,r14}	 //Sauvegarde r7 et lr
+	mov	r7,	#4	 //Write syscall
+	svc	#0	 	//syscall
+	pop	{r7,r15}	 //Restauration de r7 et pc
+	pop	{r11,r15}	 //epilogue func
+	bx	lr
diff --git a/test/input/affect2.l b/test/input/affect2.l
new file mode 100644
index 0000000..06a3ae4
--- /dev/null
+++ b/test/input/affect2.l
@@ -0,0 +1,6 @@
+main()
+entier a
+{
+a = 1;
+ecrire(a);
+}
diff --git a/test/input/affect2.s b/test/input/affect2.s
new file mode 100644
index 0000000..91743b4
--- /dev/null
+++ b/test/input/affect2.s
@@ -0,0 +1,19 @@
+.include "io_arm.asm"
+
+
+.data
+
+.text
+.global _start
+_start:
+	bl	main	 
+	mov	r7,	#1	 //exit syscall
+	svc	#0	 //Syscall
+main :	push	{r11,r14}	 //prologue func
+	mov	r0,	#1	 //Affect
+	push	{r7,r14}	 //Sauvegarde r7 et lr
+	mov	r7,	#4	 //Write syscall
+	svc	#0	 	//syscall
+	pop	{r7,r15}	 //Restauration de r7 et pc
+	pop	{r11,r15}	 //epilogue func
+	bx	lr
diff --git a/test/input/affect3.l b/test/input/affect3.l
new file mode 100644
index 0000000..cb1da14
--- /dev/null
+++ b/test/input/affect3.l
@@ -0,0 +1,11 @@
+f(entier a)
+{
+a = 1;
+ecrire(a);
+}
+
+main()
+entier a
+{
+f(3);
+}
diff --git a/test/input/and1.l b/test/input/and1.l
new file mode 100644
index 0000000..722352f
--- /dev/null
+++ b/test/input/and1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai & vrai);
+}
diff --git a/test/input/and2.l b/test/input/and2.l
new file mode 100644
index 0000000..7f27e0b
--- /dev/null
+++ b/test/input/and2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai & faux);
+}
diff --git a/test/input/and3.l b/test/input/and3.l
new file mode 100644
index 0000000..8b824bf
--- /dev/null
+++ b/test/input/and3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux & vrai);
+}
diff --git a/test/input/and4.l b/test/input/and4.l
new file mode 100644
index 0000000..015b9dd
--- /dev/null
+++ b/test/input/and4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux & faux);
+}
diff --git a/test/input/and5.l b/test/input/and5.l
new file mode 100644
index 0000000..b32c729
--- /dev/null
+++ b/test/input/and5.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai & faux & vrai);
+}
diff --git a/test/input/appel-param1.l b/test/input/appel-param1.l
new file mode 100644
index 0000000..3856000
--- /dev/null
+++ b/test/input/appel-param1.l
@@ -0,0 +1,9 @@
+f(entier a)
+{
+ecrire(a);
+}
+
+main()
+{
+f(1);
+}
diff --git a/test/input/appel-param2.l b/test/input/appel-param2.l
new file mode 100644
index 0000000..5278f1a
--- /dev/null
+++ b/test/input/appel-param2.l
@@ -0,0 +1,10 @@
+f(entier a, entier b)
+{
+ecrire(a);
+ecrire(b);
+}
+
+main()
+{
+f(1, 456);
+}
diff --git a/test/input/appel-param3.l b/test/input/appel-param3.l
new file mode 100644
index 0000000..02cbc4c
--- /dev/null
+++ b/test/input/appel-param3.l
@@ -0,0 +1,13 @@
+f(entier a, entier b, entier c, entier d, entier e)
+{
+ecrire(a);
+ecrire(b);
+ecrire(c);
+ecrire(d);
+ecrire(e);
+}
+
+main()
+{
+f(1, 2, 3, 4, 5);
+}
diff --git a/test/input/appel-retour1.l b/test/input/appel-retour1.l
new file mode 100644
index 0000000..262eaa7
--- /dev/null
+++ b/test/input/appel-retour1.l
@@ -0,0 +1,9 @@
+entier f(entier a)
+{
+retour(a);
+}
+
+main()
+{
+ecrire(f(3712));
+}
diff --git a/test/input/appel1.l b/test/input/appel1.l
new file mode 100644
index 0000000..50282cb
--- /dev/null
+++ b/test/input/appel1.l
@@ -0,0 +1,9 @@
+f()
+{
+ecrire(1);
+}
+
+main()
+{
+f();
+}
diff --git a/test/input/appel2.l b/test/input/appel2.l
new file mode 100644
index 0000000..a96f3aa
--- /dev/null
+++ b/test/input/appel2.l
@@ -0,0 +1,15 @@
+g()
+{
+ecrire(2);
+}
+
+f()
+{
+ecrire(1);
+g();
+}
+
+main()
+{
+f();
+}
diff --git a/test/input/appel3.l b/test/input/appel3.l
new file mode 100644
index 0000000..a0a511b
--- /dev/null
+++ b/test/input/appel3.l
@@ -0,0 +1,15 @@
+g()
+{
+ecrire(2);
+}
+
+f()
+{
+ecrire(1);
+}
+
+main()
+{
+f();
+g();
+}
diff --git a/test/input/clean b/test/input/clean
new file mode 100755
index 0000000..9f8b584
--- /dev/null
+++ b/test/input/clean
@@ -0,0 +1,14 @@
+rm *.c3a
+rm *.c3aout
+rm *.exe
+rm *.fg
+rm *.fgs
+rm *.ig
+rm *.nasm
+rm *.o
+rm *.out
+rm *.pre-nasm
+rm *.sa
+rm *.saout
+rm *.sc
+rm *.ts
diff --git a/test/input/div1.l b/test/input/div1.l
new file mode 100644
index 0000000..1883db1
--- /dev/null
+++ b/test/input/div1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(4 / 2);
+}
diff --git a/test/input/div2.l b/test/input/div2.l
new file mode 100644
index 0000000..bbf4a3a
--- /dev/null
+++ b/test/input/div2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(0 / 712);
+}
diff --git a/test/input/div3.l b/test/input/div3.l
new file mode 100644
index 0000000..3ba8af5
--- /dev/null
+++ b/test/input/div3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(4 / 2 / 2);
+}
diff --git a/test/input/div4.l b/test/input/div4.l
new file mode 100644
index 0000000..6d7ad34
--- /dev/null
+++ b/test/input/div4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 / 3);
+}
diff --git a/test/input/ecrire1.l b/test/input/ecrire1.l
new file mode 100644
index 0000000..fb46c63
--- /dev/null
+++ b/test/input/ecrire1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(3456);
+}
diff --git a/test/input/ecrire2.l b/test/input/ecrire2.l
new file mode 100644
index 0000000..04a17b4
--- /dev/null
+++ b/test/input/ecrire2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(0);
+}
diff --git a/test/input/egal1.l b/test/input/egal1.l
new file mode 100644
index 0000000..db5eb0d
--- /dev/null
+++ b/test/input/egal1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(123 = 123);
+}
diff --git a/test/input/egal2.l b/test/input/egal2.l
new file mode 100644
index 0000000..c6df09c
--- /dev/null
+++ b/test/input/egal2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(412 = 34);
+}
diff --git a/test/input/egal3.l b/test/input/egal3.l
new file mode 100644
index 0000000..af96195
--- /dev/null
+++ b/test/input/egal3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 = 2 = vrai);
+}
diff --git a/test/input/fibo.l b/test/input/fibo.l
new file mode 100644
index 0000000..f67922d
--- /dev/null
+++ b/test/input/fibo.l
@@ -0,0 +1,14 @@
+entier fibo( entier n ) 
+{
+  si n < 2 alors {
+    retour 1;
+  }
+  sinon {
+    retour fibo( n - 1 ) + fibo( n - 2 );
+  }
+}
+
+main()
+{
+  ecrire( fibo( 9 ) );
+}
diff --git a/test/input/inf1.l b/test/input/inf1.l
new file mode 100644
index 0000000..57528bd
--- /dev/null
+++ b/test/input/inf1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(3 < 3);
+}
diff --git a/test/input/inf2.l b/test/input/inf2.l
new file mode 100644
index 0000000..23255bc
--- /dev/null
+++ b/test/input/inf2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(4 < 1);
+}
diff --git a/test/input/inf3.l b/test/input/inf3.l
new file mode 100644
index 0000000..dbb6666
--- /dev/null
+++ b/test/input/inf3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(312 < 475);
+}
diff --git a/test/input/mult1.l b/test/input/mult1.l
new file mode 100644
index 0000000..1d0e8ff
--- /dev/null
+++ b/test/input/mult1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 * 3);
+}
diff --git a/test/input/mult2.l b/test/input/mult2.l
new file mode 100644
index 0000000..06428e5
--- /dev/null
+++ b/test/input/mult2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(0 * 321);
+}
diff --git a/test/input/mult3.l b/test/input/mult3.l
new file mode 100644
index 0000000..6f25bfe
--- /dev/null
+++ b/test/input/mult3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(3 * 3 * 2);
+}
diff --git a/test/input/nettoie.sh b/test/input/nettoie.sh
new file mode 100644
index 0000000..e997393
--- /dev/null
+++ b/test/input/nettoie.sh
@@ -0,0 +1,16 @@
+rm *.c3a
+rm *.c3aout
+rm *.exe
+rm *.exeout
+rm *.fg
+rm *.fgs
+rm *.ig
+rm *.nasm
+rm *.nasmout
+rm *.o
+rm *.pre-nasm
+rm *.pre-nasmout
+rm *.sa
+rm *.saout
+rm *.sc
+rm *.ts
diff --git a/test/input/not1.l b/test/input/not1.l
new file mode 100644
index 0000000..6508335
--- /dev/null
+++ b/test/input/not1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(! vrai);
+}
diff --git a/test/input/not2.l b/test/input/not2.l
new file mode 100644
index 0000000..fee0155
--- /dev/null
+++ b/test/input/not2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(! faux);
+}
diff --git a/test/input/not3.l b/test/input/not3.l
new file mode 100644
index 0000000..e26acb5
--- /dev/null
+++ b/test/input/not3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(! ! faux);
+}
diff --git a/test/input/or1.l b/test/input/or1.l
new file mode 100644
index 0000000..de6482a
--- /dev/null
+++ b/test/input/or1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai | vrai);
+}
diff --git a/test/input/or2.l b/test/input/or2.l
new file mode 100644
index 0000000..5c16db1
--- /dev/null
+++ b/test/input/or2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai | faux);
+}
diff --git a/test/input/or3.l b/test/input/or3.l
new file mode 100644
index 0000000..990b4aa
--- /dev/null
+++ b/test/input/or3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux | vrai);
+}
diff --git a/test/input/or4.l b/test/input/or4.l
new file mode 100644
index 0000000..96e588b
--- /dev/null
+++ b/test/input/or4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux | faux);
+}
diff --git a/test/input/or5.l b/test/input/or5.l
new file mode 100644
index 0000000..be6b474
--- /dev/null
+++ b/test/input/or5.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux | vrai | faux);
+}
diff --git a/test/input/parenth1.l b/test/input/parenth1.l
new file mode 100644
index 0000000..358d525
--- /dev/null
+++ b/test/input/parenth1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((1));
+}
diff --git a/test/input/parenth2.l b/test/input/parenth2.l
new file mode 100644
index 0000000..fd2f997
--- /dev/null
+++ b/test/input/parenth2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(((2)));
+}
diff --git a/test/input/prio34-1.l b/test/input/prio34-1.l
new file mode 100644
index 0000000..3980bbf
--- /dev/null
+++ b/test/input/prio34-1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 + 3 * 4);
+}
diff --git a/test/input/prio34-2.l b/test/input/prio34-2.l
new file mode 100644
index 0000000..4ff0447
--- /dev/null
+++ b/test/input/prio34-2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 * 3 - 4);
+}
diff --git a/test/input/prio34-3.l b/test/input/prio34-3.l
new file mode 100644
index 0000000..d6c2838
--- /dev/null
+++ b/test/input/prio34-3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(6 / 3 - 72);
+}
diff --git a/test/input/prio34-4.l b/test/input/prio34-4.l
new file mode 100644
index 0000000..943c397
--- /dev/null
+++ b/test/input/prio34-4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(6 + 20 / 10);
+}
diff --git a/test/input/prio45-1.l b/test/input/prio45-1.l
new file mode 100644
index 0000000..126e9fb
--- /dev/null
+++ b/test/input/prio45-1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 = 0 + 1);
+}
diff --git a/test/input/prio45-2.l b/test/input/prio45-2.l
new file mode 100644
index 0000000..66fe6fd
--- /dev/null
+++ b/test/input/prio45-2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 + 234 = 1);
+}
diff --git a/test/input/prio45-3.l b/test/input/prio45-3.l
new file mode 100644
index 0000000..5adb3a7
--- /dev/null
+++ b/test/input/prio45-3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(12 <  11 + 100);
+}
diff --git a/test/input/prio45-4.l b/test/input/prio45-4.l
new file mode 100644
index 0000000..4e5398f
--- /dev/null
+++ b/test/input/prio45-4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(21 -  21 < 1);
+}
diff --git a/test/input/prio56-1.l b/test/input/prio56-1.l
new file mode 100644
index 0000000..62a4354
--- /dev/null
+++ b/test/input/prio56-1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 = 2 & vrai);
+}
diff --git a/test/input/prio56-2.l b/test/input/prio56-2.l
new file mode 100644
index 0000000..83f2ec7
--- /dev/null
+++ b/test/input/prio56-2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai | faux = vrai);
+}
diff --git a/test/input/prio67-1.l b/test/input/prio67-1.l
new file mode 100644
index 0000000..6ef5a73
--- /dev/null
+++ b/test/input/prio67-1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(faux & vrai | vrai);
+}
diff --git a/test/input/prio67-2.l b/test/input/prio67-2.l
new file mode 100644
index 0000000..d35a1a0
--- /dev/null
+++ b/test/input/prio67-2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai | vrai & faux);
+}
diff --git a/test/input/rec1.l b/test/input/rec1.l
new file mode 100644
index 0000000..aad2b96
--- /dev/null
+++ b/test/input/rec1.l
@@ -0,0 +1,14 @@
+entier f(entier a)
+{
+si (a = 1) alors {
+retour(1);
+}
+sinon{
+retour(1 + f(a-1));
+}
+}
+
+main()
+{
+ecrire(f(100));
+}
diff --git a/test/input/si1.l b/test/input/si1.l
new file mode 100644
index 0000000..e722414
--- /dev/null
+++ b/test/input/si1.l
@@ -0,0 +1,6 @@
+main()
+{
+si (vrai) alors {
+ecrire(vrai);
+}
+}
diff --git a/test/input/si2.l b/test/input/si2.l
new file mode 100644
index 0000000..e607615
--- /dev/null
+++ b/test/input/si2.l
@@ -0,0 +1,9 @@
+main()
+{
+si (faux) alors {
+ecrire(1);
+}
+sinon{
+ecrire(0);
+}
+}
diff --git a/test/input/si3.l b/test/input/si3.l
new file mode 100644
index 0000000..1872b14
--- /dev/null
+++ b/test/input/si3.l
@@ -0,0 +1,10 @@
+main()
+{
+si (vrai) alors {
+ecrire(vrai);
+}
+sinon{
+ecrire(faux);
+}
+ecrire(vrai);
+}
diff --git a/test/input/si4.l b/test/input/si4.l
new file mode 100644
index 0000000..5fe6f1b
--- /dev/null
+++ b/test/input/si4.l
@@ -0,0 +1,10 @@
+main()
+{
+si (faux) alors {
+ecrire(vrai);
+}
+sinon{
+ecrire(faux);
+}
+ecrire(vrai);
+}
diff --git a/test/input/si5.l b/test/input/si5.l
new file mode 100644
index 0000000..d3c5759
--- /dev/null
+++ b/test/input/si5.l
@@ -0,0 +1,13 @@
+main()
+{
+  si (vrai) alors
+  {
+    ecrire(vrai);
+    si (vrai) alors
+    {
+      ecrire(vrai);
+    }
+  }
+  ecrire(vrai);
+}
+
diff --git a/test/input/sub1.l b/test/input/sub1.l
new file mode 100644
index 0000000..32394ae
--- /dev/null
+++ b/test/input/sub1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(10 - 5);
+}
diff --git a/test/input/sub2.l b/test/input/sub2.l
new file mode 100644
index 0000000..6733990
--- /dev/null
+++ b/test/input/sub2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(7 - 20);
+}
diff --git a/test/input/sub3.l b/test/input/sub3.l
new file mode 100644
index 0000000..e37d955
--- /dev/null
+++ b/test/input/sub3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(2 - 1 - 1);
+}
diff --git a/test/input/tab1.l b/test/input/tab1.l
new file mode 100644
index 0000000..ebaf73f
--- /dev/null
+++ b/test/input/tab1.l
@@ -0,0 +1,10 @@
+entier tab[3]
+main()
+{
+tab[0] = 0;
+tab[1] = 1;
+tab[2] = 2;
+ecrire(tab[0]);
+ecrire(tab[1]);
+ecrire(tab[2]);
+}
diff --git a/test/input/tab2.l b/test/input/tab2.l
new file mode 100644
index 0000000..dcb20bd
--- /dev/null
+++ b/test/input/tab2.l
@@ -0,0 +1,12 @@
+entier tab[5]
+main()
+entier base
+{
+base = 2;
+tab[base + 0] = 34;
+tab[base + 1] = 74;
+tab[base + 2] = 16;
+ecrire(tab[2]);
+ecrire(tab[3]);
+ecrire(tab[4]);
+}
diff --git a/test/input/tab3.l b/test/input/tab3.l
new file mode 100644
index 0000000..aecacad
--- /dev/null
+++ b/test/input/tab3.l
@@ -0,0 +1,15 @@
+entier tab[5]
+main()
+entier base, entier offset
+{
+base = 2;
+offset = 0;
+tab[base + offset] = 34;
+offset = 1;
+tab[base + offset] = 74;
+offset = 2;
+tab[base + offset] = 16;
+ecrire(tab[2]);
+ecrire(tab[3]);
+ecrire(tab[4]);
+}
diff --git a/test/input/tab4.l b/test/input/tab4.l
new file mode 100644
index 0000000..1a41cba
--- /dev/null
+++ b/test/input/tab4.l
@@ -0,0 +1,10 @@
+entier tab[3]
+main()
+{
+tab[0] = 1;
+tab[tab[0]] = 12;
+tab[tab[0]+1] = 13;
+ecrire(tab[0]);
+ecrire(tab[1]);
+ecrire(tab[2]);
+}
diff --git a/test/input/tantque1.l b/test/input/tantque1.l
new file mode 100644
index 0000000..4af77aa
--- /dev/null
+++ b/test/input/tantque1.l
@@ -0,0 +1,10 @@
+main()
+entier a
+{
+a = 10;
+tantque (0 < a) faire {
+ecrire(a);
+a = a - 1;
+}
+ecrire(0);
+}
diff --git a/test/input/tantque2.l b/test/input/tantque2.l
new file mode 100644
index 0000000..4b1c59c
--- /dev/null
+++ b/test/input/tantque2.l
@@ -0,0 +1,14 @@
+main()
+  entier a, entier b
+  {
+  a = 0;
+  tantque (a < 4) faire {
+    b = 0;
+    tantque (b < 4) faire {
+      ecrire(a);
+      ecrire(b);
+      b = b + 1;
+    }
+    a = a + 1;
+  }
+}
diff --git a/test/input/tri.l b/test/input/tri.l
new file mode 100644
index 0000000..ea46356
--- /dev/null
+++ b/test/input/tri.l
@@ -0,0 +1,57 @@
+entier tab[ 10 ]
+
+initialiser()
+{
+    tab[0] = 8;    tab[1] = 6;    tab[2] = 9;
+    tab[3] = 9;    tab[4] = 4;    tab[5] = 2;
+    tab[6] = 3;    tab[7] = 1;    tab[8] = 4;
+    tab[9] = 5;    
+}
+
+afficher( entier n )
+entier i
+{
+    i = 0;
+    tantque i < n faire {
+        ecrire( tab[ i ] );
+        i = i + 1;
+    }    
+    ecrire( 0 ); # marqueur fin de tableau         
+}
+
+echanger( entier i, entier j )
+entier temp
+{
+    temp = tab[ j ];
+    tab[ j ] = tab[ i ];
+    tab[ i ] = temp;
+}
+
+trier( entier n )
+entier echange, entier j, entier m
+{
+    m = n;
+    echange = 1;
+    tantque echange = 1 faire
+    {
+        echange = 0;
+        j = 0;
+        tantque j < m - 1 faire 
+        {
+            si tab[ j + 1 ] < tab[ j ] alors {
+                echanger( j, j + 1 );
+                echange = 1;
+            }
+            j = j + 1;
+        }
+        m = m - 1;        
+    }    
+}
+
+main()
+{
+    initialiser();
+    afficher( 10 );
+    trier( 10 );
+    afficher( 10 );
+}
diff --git a/test/input/varglob1.l b/test/input/varglob1.l
new file mode 100644
index 0000000..c8dc7af
--- /dev/null
+++ b/test/input/varglob1.l
@@ -0,0 +1,6 @@
+entier variable
+main()
+{
+variable = 6834;
+ecrire(variable);
+}
diff --git a/test/input/varglob2.l b/test/input/varglob2.l
new file mode 100644
index 0000000..30f2aad
--- /dev/null
+++ b/test/input/varglob2.l
@@ -0,0 +1,6 @@
+entier variable
+main()
+{
+variable = 10;
+ecrire(variable + 50 );
+}
diff --git a/test/input/varglob3.l b/test/input/varglob3.l
new file mode 100644
index 0000000..8211c24
--- /dev/null
+++ b/test/input/varglob3.l
@@ -0,0 +1,8 @@
+entier var1, entier var2
+main()
+{
+var1 = 10;
+var2 = 34;
+ecrire(var1);
+ecrire(var2);
+}
diff --git a/test/input/varglob4.l b/test/input/varglob4.l
new file mode 100644
index 0000000..fa170c9
--- /dev/null
+++ b/test/input/varglob4.l
@@ -0,0 +1,7 @@
+entier var1, entier var2
+main()
+{
+var1 = 10;
+var2 = 34;
+ecrire(var1 + var2);
+}
diff --git a/test/input/varloc1.l b/test/input/varloc1.l
new file mode 100644
index 0000000..babef23
--- /dev/null
+++ b/test/input/varloc1.l
@@ -0,0 +1,6 @@
+main()
+entier variable
+{
+variable = 6834;
+ecrire(variable);
+}
diff --git a/test/input/varloc2.l b/test/input/varloc2.l
new file mode 100644
index 0000000..7899e08
--- /dev/null
+++ b/test/input/varloc2.l
@@ -0,0 +1,6 @@
+main()
+entier variable
+{
+variable = 10;
+ecrire(variable + 50 );
+}
diff --git a/test/input/varloc3.l b/test/input/varloc3.l
new file mode 100644
index 0000000..34125a0
--- /dev/null
+++ b/test/input/varloc3.l
@@ -0,0 +1,8 @@
+main()
+entier var1, entier var2
+{
+var1 = 10;
+var2 = 30;
+ecrire(var1);
+ecrire(var2);
+}
diff --git a/test/input/varloc4.l b/test/input/varloc4.l
new file mode 100644
index 0000000..5b315ab
--- /dev/null
+++ b/test/input/varloc4.l
@@ -0,0 +1,7 @@
+main()
+entier var1, entier var2
+{
+var1 = 10;
+var2 = 30;
+ecrire(var1 + var2);
+}
diff --git a/test/input/varloc5.l b/test/input/varloc5.l
new file mode 100644
index 0000000..d595344
--- /dev/null
+++ b/test/input/varloc5.l
@@ -0,0 +1,15 @@
+entier var1
+
+f()
+entier var1
+{
+var1 = 10;
+ecrire(var1);
+}
+
+main()
+{
+var1 = 20;
+f();
+ecrire(var1);
+}
diff --git a/test/input_err_ts/double_dec1.l b/test/input_err_ts/double_dec1.l
new file mode 100644
index 0000000..5f55b85
--- /dev/null
+++ b/test/input_err_ts/double_dec1.l
@@ -0,0 +1,4 @@
+entier a, bool a
+main(){
+
+}
diff --git a/test/input_err_ts/double_dec2.l b/test/input_err_ts/double_dec2.l
new file mode 100644
index 0000000..3929133
--- /dev/null
+++ b/test/input_err_ts/double_dec2.l
@@ -0,0 +1,4 @@
+entier a, bool a[10]
+main(){
+
+}
diff --git a/test/input_err_ts/double_dec3.l b/test/input_err_ts/double_dec3.l
new file mode 100644
index 0000000..bb9b7e3
--- /dev/null
+++ b/test/input_err_ts/double_dec3.l
@@ -0,0 +1,7 @@
+f(entier a)
+entier a
+{
+}
+main(){
+
+}
diff --git a/test/input_err_ts/double_dec4.l b/test/input_err_ts/double_dec4.l
new file mode 100644
index 0000000..36d911c
--- /dev/null
+++ b/test/input_err_ts/double_dec4.l
@@ -0,0 +1,10 @@
+f(entier a)
+{
+}
+
+f(entier b)
+{
+}
+main(){
+
+}
diff --git a/test/input_err_ts/fct_inconnue1.l b/test/input_err_ts/fct_inconnue1.l
new file mode 100644
index 0000000..f1a3992
--- /dev/null
+++ b/test/input_err_ts/fct_inconnue1.l
@@ -0,0 +1,3 @@
+main(){
+f(2);
+}
diff --git a/test/input_err_ts/mauvais_nb_arg1.l b/test/input_err_ts/mauvais_nb_arg1.l
new file mode 100644
index 0000000..7281910
--- /dev/null
+++ b/test/input_err_ts/mauvais_nb_arg1.l
@@ -0,0 +1,7 @@
+entier f(entier a, entier b)
+{
+}
+
+main(){
+f(2);
+}
diff --git a/test/input_err_ts/var_inconnue1.l b/test/input_err_ts/var_inconnue1.l
new file mode 100644
index 0000000..5257ff8
--- /dev/null
+++ b/test/input_err_ts/var_inconnue1.l
@@ -0,0 +1,3 @@
+main(){
+a = 1;
+}
diff --git a/test/input_err_type/add1.l b/test/input_err_type/add1.l
new file mode 100644
index 0000000..a030276
--- /dev/null
+++ b/test/input_err_type/add1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 + vrai);
+}
diff --git a/test/input_err_type/add2.l b/test/input_err_type/add2.l
new file mode 100644
index 0000000..b96ee72
--- /dev/null
+++ b/test/input_err_type/add2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai + 1);
+}
diff --git a/test/input_err_type/add3.l b/test/input_err_type/add3.l
new file mode 100644
index 0000000..93bcee1
--- /dev/null
+++ b/test/input_err_type/add3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai + faux);
+}
diff --git a/test/input_err_type/add4.l b/test/input_err_type/add4.l
new file mode 100644
index 0000000..e71571e
--- /dev/null
+++ b/test/input_err_type/add4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(!(1 + 1));
+}
diff --git a/test/input_err_type/affect1.l b/test/input_err_type/affect1.l
new file mode 100644
index 0000000..0a0a692
--- /dev/null
+++ b/test/input_err_type/affect1.l
@@ -0,0 +1,5 @@
+entier a
+main()
+{
+a = vrai;
+}
diff --git a/test/input_err_type/affect2.l b/test/input_err_type/affect2.l
new file mode 100644
index 0000000..b9b8586
--- /dev/null
+++ b/test/input_err_type/affect2.l
@@ -0,0 +1,5 @@
+bool a
+main()
+{
+a = 1;
+}
diff --git a/test/input_err_type/affect3.l b/test/input_err_type/affect3.l
new file mode 100644
index 0000000..4ce9a7b
--- /dev/null
+++ b/test/input_err_type/affect3.l
@@ -0,0 +1,5 @@
+entier t[1]
+main()
+{
+t[1] = vrai;
+}
diff --git a/test/input_err_type/affect4.l b/test/input_err_type/affect4.l
new file mode 100644
index 0000000..d2791d8
--- /dev/null
+++ b/test/input_err_type/affect4.l
@@ -0,0 +1,5 @@
+bool t[1]
+main()
+{
+t[1] = 1;
+}
diff --git a/test/input_err_type/and1.l b/test/input_err_type/and1.l
new file mode 100644
index 0000000..3dccb99
--- /dev/null
+++ b/test/input_err_type/and1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai & 1);
+}
diff --git a/test/input_err_type/and2.l b/test/input_err_type/and2.l
new file mode 100644
index 0000000..b42f40a
--- /dev/null
+++ b/test/input_err_type/and2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 & vrai);
+}
diff --git a/test/input_err_type/and3.l b/test/input_err_type/and3.l
new file mode 100644
index 0000000..3444bc0
--- /dev/null
+++ b/test/input_err_type/and3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 & 1);
+}
diff --git a/test/input_err_type/and4.l b/test/input_err_type/and4.l
new file mode 100644
index 0000000..21f7fc2
--- /dev/null
+++ b/test/input_err_type/and4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((vrai & vrai) + 1);
+}
diff --git a/test/input_err_type/appel1.l b/test/input_err_type/appel1.l
new file mode 100644
index 0000000..4c91222
--- /dev/null
+++ b/test/input_err_type/appel1.l
@@ -0,0 +1,8 @@
+entier f(entier a)
+{
+}
+
+main()
+{
+f(vrai);
+}
diff --git a/test/input_err_type/appel2.l b/test/input_err_type/appel2.l
new file mode 100644
index 0000000..196542b
--- /dev/null
+++ b/test/input_err_type/appel2.l
@@ -0,0 +1,8 @@
+bool f(bool a)
+{
+}
+
+main()
+{
+f(1);
+}
diff --git a/test/input_err_type/appel3.l b/test/input_err_type/appel3.l
new file mode 100644
index 0000000..f4254ae
--- /dev/null
+++ b/test/input_err_type/appel3.l
@@ -0,0 +1,8 @@
+bool f(bool a, bool b)
+{
+}
+
+main()
+{
+f(vrai, 1);
+}
diff --git a/test/input_err_type/appel4.l b/test/input_err_type/appel4.l
new file mode 100644
index 0000000..2ccd99f
--- /dev/null
+++ b/test/input_err_type/appel4.l
@@ -0,0 +1,8 @@
+bool f(entier a, entier b)
+{
+}
+
+main()
+{
+f(1, faux);
+}
diff --git a/test/input_err_type/div1.l b/test/input_err_type/div1.l
new file mode 100644
index 0000000..321b3c8
--- /dev/null
+++ b/test/input_err_type/div1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 / vrai);
+}
diff --git a/test/input_err_type/div2.l b/test/input_err_type/div2.l
new file mode 100644
index 0000000..10e5ab3
--- /dev/null
+++ b/test/input_err_type/div2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai / 1);
+}
diff --git a/test/input_err_type/div3.l b/test/input_err_type/div3.l
new file mode 100644
index 0000000..5bc1aab
--- /dev/null
+++ b/test/input_err_type/div3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai / faux);
+}
diff --git a/test/input_err_type/div4.l b/test/input_err_type/div4.l
new file mode 100644
index 0000000..f9b3c30
--- /dev/null
+++ b/test/input_err_type/div4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(!(1 / 1));
+}
diff --git a/test/input_err_type/egal1.l b/test/input_err_type/egal1.l
new file mode 100644
index 0000000..bcbc766
--- /dev/null
+++ b/test/input_err_type/egal1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 = vrai);
+}
diff --git a/test/input_err_type/egal2.l b/test/input_err_type/egal2.l
new file mode 100644
index 0000000..e33cf97
--- /dev/null
+++ b/test/input_err_type/egal2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai = 1);
+}
diff --git a/test/input_err_type/egal3.l b/test/input_err_type/egal3.l
new file mode 100644
index 0000000..923e15d
--- /dev/null
+++ b/test/input_err_type/egal3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((1 = 1) + 1);
+}
diff --git a/test/input_err_type/egal3.nasm b/test/input_err_type/egal3.nasm
new file mode 100644
index 0000000..9e9eac4
--- /dev/null
+++ b/test/input_err_type/egal3.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/input_err_type/inf1.l b/test/input_err_type/inf1.l
new file mode 100644
index 0000000..80b0a60
--- /dev/null
+++ b/test/input_err_type/inf1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 < vrai);
+}
diff --git a/test/input_err_type/inf2.l b/test/input_err_type/inf2.l
new file mode 100644
index 0000000..28ce301
--- /dev/null
+++ b/test/input_err_type/inf2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai < 1);
+}
diff --git a/test/input_err_type/inf3.l b/test/input_err_type/inf3.l
new file mode 100644
index 0000000..a57d7f4
--- /dev/null
+++ b/test/input_err_type/inf3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai < faux);
+}
diff --git a/test/input_err_type/inf3.nasm b/test/input_err_type/inf3.nasm
new file mode 100644
index 0000000..cd004aa
--- /dev/null
+++ b/test/input_err_type/inf3.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	1	;JumpIfLess 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/input_err_type/inf4.l b/test/input_err_type/inf4.l
new file mode 100644
index 0000000..f0301e2
--- /dev/null
+++ b/test/input_err_type/inf4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((1 < 1) + 1);
+}
diff --git a/test/input_err_type/mult1.l b/test/input_err_type/mult1.l
new file mode 100644
index 0000000..8f4d378
--- /dev/null
+++ b/test/input_err_type/mult1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 * vrai);
+}
diff --git a/test/input_err_type/mult2.l b/test/input_err_type/mult2.l
new file mode 100644
index 0000000..48f4598
--- /dev/null
+++ b/test/input_err_type/mult2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai * 1);
+}
diff --git a/test/input_err_type/mult3.l b/test/input_err_type/mult3.l
new file mode 100644
index 0000000..b836a33
--- /dev/null
+++ b/test/input_err_type/mult3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai * faux);
+}
diff --git a/test/input_err_type/mult4.l b/test/input_err_type/mult4.l
new file mode 100644
index 0000000..07a49bb
--- /dev/null
+++ b/test/input_err_type/mult4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(!(1 * 1));
+}
diff --git a/test/input_err_type/not1.l b/test/input_err_type/not1.l
new file mode 100644
index 0000000..12d8b42
--- /dev/null
+++ b/test/input_err_type/not1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(! 1);
+}
diff --git a/test/input_err_type/or1.l b/test/input_err_type/or1.l
new file mode 100644
index 0000000..4c9d129
--- /dev/null
+++ b/test/input_err_type/or1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai | 1);
+}
diff --git a/test/input_err_type/or2.l b/test/input_err_type/or2.l
new file mode 100644
index 0000000..f4324ff
--- /dev/null
+++ b/test/input_err_type/or2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 | faux);
+}
diff --git a/test/input_err_type/or3.l b/test/input_err_type/or3.l
new file mode 100644
index 0000000..7bfcff9
--- /dev/null
+++ b/test/input_err_type/or3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((vrai | vrai) + 1);
+}
diff --git a/test/input_err_type/or4.l b/test/input_err_type/or4.l
new file mode 100644
index 0000000..7bfcff9
--- /dev/null
+++ b/test/input_err_type/or4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire((vrai | vrai) + 1);
+}
diff --git a/test/input_err_type/retour1.l b/test/input_err_type/retour1.l
new file mode 100644
index 0000000..dd2a19b
--- /dev/null
+++ b/test/input_err_type/retour1.l
@@ -0,0 +1,9 @@
+bool f(entier a)
+{
+retour(a);
+}
+
+main()
+{
+f(3712);
+}
diff --git a/test/input_err_type/retour2.l b/test/input_err_type/retour2.l
new file mode 100644
index 0000000..beedbe7
--- /dev/null
+++ b/test/input_err_type/retour2.l
@@ -0,0 +1,9 @@
+entier f(bool a)
+{
+retour(a);
+}
+
+main()
+{
+f(vrai);
+}
diff --git a/test/input_err_type/retour3.l b/test/input_err_type/retour3.l
new file mode 100644
index 0000000..76ced64
--- /dev/null
+++ b/test/input_err_type/retour3.l
@@ -0,0 +1,9 @@
+f(entier a)
+{
+retour(a);
+}
+
+main()
+{
+f(3712);
+}
diff --git a/test/input_err_type/si1.l b/test/input_err_type/si1.l
new file mode 100644
index 0000000..cb24148
--- /dev/null
+++ b/test/input_err_type/si1.l
@@ -0,0 +1,5 @@
+main()
+{
+si (1) alors {
+}
+}
diff --git a/test/input_err_type/sub1.l b/test/input_err_type/sub1.l
new file mode 100644
index 0000000..8b8dd55
--- /dev/null
+++ b/test/input_err_type/sub1.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(1 - vrai);
+}
diff --git a/test/input_err_type/sub2.l b/test/input_err_type/sub2.l
new file mode 100644
index 0000000..252c03f
--- /dev/null
+++ b/test/input_err_type/sub2.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai - 1);
+}
diff --git a/test/input_err_type/sub3.l b/test/input_err_type/sub3.l
new file mode 100644
index 0000000..c36f785
--- /dev/null
+++ b/test/input_err_type/sub3.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(vrai - vrai);
+}
diff --git a/test/input_err_type/sub4.l b/test/input_err_type/sub4.l
new file mode 100644
index 0000000..b6b7bfb
--- /dev/null
+++ b/test/input_err_type/sub4.l
@@ -0,0 +1,4 @@
+main()
+{
+ecrire(!( 1 - 1));
+}
diff --git a/test/input_err_type/tantque1.l b/test/input_err_type/tantque1.l
new file mode 100644
index 0000000..6344c62
--- /dev/null
+++ b/test/input_err_type/tantque1.l
@@ -0,0 +1,5 @@
+main()
+{
+tantque (1) faire {
+}
+}
diff --git a/test/io.asm b/test/io.asm
new file mode 100644
index 0000000..cee4da2
--- /dev/null
+++ b/test/io.asm
@@ -0,0 +1,205 @@
+	global iprintLF
+;------------------------------------------
+; void readline
+; Read a line from stdin, store string after [$eax]
+; WARNING: does not check for buffer overflow - insecure!
+readline:    
+    push    edx        ; preserve edx on stack to be restored after function
+    push    ecx        ; preserve ecx on stack to be restored after function
+    push    ebx        ; preserve ebx on stack to be restored after function
+    push    eax        ; preserve eax on stack to be restored after function
+    mov ecx, eax       ; address where store result
+continue_reading:
+    mov	eax, 3         ; syscall is read = 3
+    mov	ebx, 0         ; fd is stdin = 0    
+    mov	edx, 1         ; nb. of bytes to read
+    int 80h            ; call interruption
+    cmp eax, 0         ; if no byte read, then we reached EOF, stop
+    je end_reading    
+    cmp BYTE [ecx], 10 ; Found '\n', stop reading string
+    je end_reading
+    cmp BYTE [ecx], 13 ; Found '\r', stop reading string
+    je end_reading
+    inc ecx            ; None of above, increment pointer and read next byte
+    jmp continue_reading
+end_reading:
+    mov BYTE [ecx], 0  ; Add zero to yield null-terminated string
+    pop     eax        ; restore eax from value pushed onto stack at start
+    pop     ebx        ; restore eax from value pushed onto stack at start
+    pop     ecx        ; restore eax from value pushed onto stack at start
+    pop     edx        ; restore eax from value pushed onto stack at start
+    ret
+
+;------------------------------------------
+; void iprint(Integer number)
+; Integer printing function (itoa)
+iprint:
+    push    eax             ; preserve eax on the stack to be restored after function runs
+    push    ecx             ; preserve ecx on the stack to be restored after function runs
+    push    edx             ; preserve edx on the stack to be restored after function runs
+    push    esi             ; preserve esi on the stack to be restored after function runs
+    
+    cmp	    eax, 0
+    jge      positive
+    push    eax             ; preserve eax value
+    mov     ebx, '-'
+    push    ebx
+    mov     eax, esp    
+    call sprint
+    pop     eax             ; remove '-' sign
+    pop     eax             ; retrieve eax value
+    neg     eax
+positive:
+    mov     ecx, 0          ; counter of how many bytes we need to print in the end 
+divideLoop:
+    inc     ecx             ; count each byte to print - number of characters
+    mov     edx, 0          ; empty edx
+    mov     esi, 10         ; mov 10 into esi
+    idiv    esi             ; divide eax by esi
+    add     edx, 48         ; convert edx to it's ascii representation - edx holds the remainder after a divide instruction
+    push    edx             ; push edx (string representation of an intger) onto the stack
+    cmp     eax, 0          ; can the integer be divided anymore?
+    jnz     divideLoop      ; jump if not zero to the label divideLoop
+ 
+printLoop:
+    dec     ecx             ; count down each byte that we put on the stack
+    mov     eax, esp        ; mov the stack pointer into eax for printing
+    call    sprint          ; call our string print function
+    pop     eax             ; remove last character from the stack to move esp forward
+    cmp     ecx, 0          ; have we printed all bytes we pushed onto the stack?
+    jnz     printLoop       ; jump is not zero to the label printLoop
+ 
+    pop     esi             ; restore esi from the value we pushed onto the stack at the start
+    pop     edx             ; restore edx from the value we pushed onto the stack at the start
+    pop     ecx             ; restore ecx from the value we pushed onto the stack at the start
+    pop     eax             ; restore eax from the value we pushed onto the stack at the start
+    ret
+ 
+ 
+;------------------------------------------
+; void iprintLF(Integer number)
+; Integer printing function with linefeed (itoa)
+iprintLF:
+    call    iprint          ; call our integer printing function
+ 
+    push    eax             ; push eax onto the stack to preserve it while we use the eax register in this function
+    mov     eax, 0Ah        ; move 0Ah into eax - 0Ah is the ascii character for a linefeed
+    push    eax             ; push the linefeed onto the stack so we can get the address
+    mov     eax, esp        ; move the address of the current stack pointer into eax for sprint
+    call    sprint          ; call our sprint function
+    pop     eax             ; remove our linefeed character from the stack
+    pop     eax             ; restore the original value of eax before our function was called
+    ret
+ 
+ 
+;------------------------------------------
+; int slen(String message)
+; String length calculation function
+slen:
+    push    ebx
+    mov     ebx, eax
+ 
+nextchar:
+    cmp     byte [eax], 0
+    jz      finished
+    inc     eax
+    jmp     nextchar
+ 
+finished:
+    sub     eax, ebx
+    pop     ebx
+    ret
+ 
+ 
+;------------------------------------------
+; void sprint(String message)
+; String printing function
+sprint:
+    push    edx
+    push    ecx
+    push    ebx
+    push    eax
+    call    slen
+ 
+    mov     edx, eax
+    pop     eax
+ 
+    mov     ecx, eax
+    mov     ebx, 1
+    mov     eax, 4
+    int     80h
+ 
+    pop     ebx
+    pop     ecx
+    pop     edx
+    ret
+ 
+ 
+;------------------------------------------
+; void sprintLF(String message)
+; String printing with line feed function
+sprintLF:
+    call    sprint
+ 
+    push    eax
+    mov     eax, 0AH
+    push    eax
+    mov     eax, esp
+    call    sprint
+    pop     eax
+    pop     eax
+    ret
+ 
+ 
+;------------------------------------------
+; void exit()
+; Exit program and restore resources
+quit:
+    mov     ebx, 0
+    mov     eax, 1
+    int     80h
+    ret
+
+;------------------------------------------
+; int atoi(Integer number)
+; Ascii to integer function (atoi)
+atoi:
+    push    ebx             ; preserve ebx on the stack to be restored after function runs
+    push    ecx             ; preserve ecx on the stack to be restored after function runs
+    push    edx             ; preserve edx on the stack to be restored after function runs
+    push    esi             ; preserve esi on the stack to be restored after function runs
+    xor     ebx, ebx        ; initialize forming answer
+    xor     ecx, ecx        ; initialize sign flag
+    mov     esi, eax
+atoi1: 
+    lodsb                   ; scan off whitespace
+    cmp     al, ' '         ; ignore leading blanks
+    je atoi1
+    cmp al, '+'             ; if + sign proceed
+    je atoi2
+    cmp al, '-'             ; is it - sign?
+    jne atoi3               ; no, test if numeric
+    dec ecx                 ; was - sign, set flag for negative result
+atoi2: 
+    lodsb                   ; get next character
+atoi3: 
+    cmp al,'0'        ; is character valid?
+    jb atoi4          ; jump if not '0' to '9'
+    cmp al,'9'
+    ja atoi4          ; jump if not '0' to '9'
+    and eax, 000fh     ; isolate lower four bits
+    xchg ebx, eax      ; multiply answer x 10
+    mov edx, 10
+    mul edx
+    add ebx, eax      ; add this digit
+    jmp atoi2         ; convert next digit
+atoi4: 
+    mov eax,ebx ; result into AX
+    jcxz atoi5 ; jump if sign flag clear
+    neg eax ; make result negative
+atoi5:
+    pop     esi             ; restore esi from the value we pushed onto the stack at the start
+    pop     edx             ; restore edx from the value we pushed onto the stack at the start
+    pop     ecx             ; restore ecx from the value we pushed onto the stack at the start
+    pop     ebx             ; restore ebx from the value we pushed onto the stack at the start
+    ret
diff --git a/test/nasm-ref/add1.nasm b/test/nasm-ref/add1.nasm
new file mode 100644
index 0000000..bc09d48
--- /dev/null
+++ b/test/nasm-ref/add1.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	3
+	add	eax,	10
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/add2.nasm b/test/nasm-ref/add2.nasm
new file mode 100644
index 0000000..4410bca
--- /dev/null
+++ b/test/nasm-ref/add2.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2
+	add	eax,	4
+	mov	eax,	eax
+	add	eax,	8
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/affect1.nasm b/test/nasm-ref/affect1.nasm
new file mode 100644
index 0000000..7279263
--- /dev/null
+++ b/test/nasm-ref/affect1.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+a :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [a],	1	;Affect
+	mov	eax,	dword [a]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/affect2.nasm b/test/nasm-ref/affect2.nasm
new file mode 100644
index 0000000..13e0f37
--- /dev/null
+++ b/test/nasm-ref/affect2.nasm
@@ -0,0 +1,31 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	1	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/affect3.nasm b/test/nasm-ref/affect3.nasm
new file mode 100644
index 0000000..0a52b93
--- /dev/null
+++ b/test/nasm-ref/affect3.nasm
@@ -0,0 +1,50 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [ebp+12],	1	;Affect
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	push	3	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/and1.nasm b/test/nasm-ref/and1.nasm
new file mode 100644
index 0000000..a4246bc
--- /dev/null
+++ b/test/nasm-ref/and1.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/and2.nasm b/test/nasm-ref/and2.nasm
new file mode 100644
index 0000000..c1132c6
--- /dev/null
+++ b/test/nasm-ref/and2.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/and3.nasm b/test/nasm-ref/and3.nasm
new file mode 100644
index 0000000..47d936c
--- /dev/null
+++ b/test/nasm-ref/and3.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/and4.nasm b/test/nasm-ref/and4.nasm
new file mode 100644
index 0000000..ae6df09
--- /dev/null
+++ b/test/nasm-ref/and4.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/and5.nasm b/test/nasm-ref/and5.nasm
new file mode 100644
index 0000000..fa2e52f
--- /dev/null
+++ b/test/nasm-ref/and5.nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	eax,	0	;Affect
+l2 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel-param1.nasm b/test/nasm-ref/appel-param1.nasm
new file mode 100644
index 0000000..54428e3
--- /dev/null
+++ b/test/nasm-ref/appel-param1.nasm
@@ -0,0 +1,49 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel-param2.nasm b/test/nasm-ref/appel-param2.nasm
new file mode 100644
index 0000000..0ebec5e
--- /dev/null
+++ b/test/nasm-ref/appel-param2.nasm
@@ -0,0 +1,52 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	push	456	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	8	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel-param3.nasm b/test/nasm-ref/appel-param3.nasm
new file mode 100644
index 0000000..efa0855
--- /dev/null
+++ b/test/nasm-ref/appel-param3.nasm
@@ -0,0 +1,61 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+28]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+24]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+20]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	push	2	;Param
+	push	3	;Param
+	push	4	;Param
+	push	5	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	20	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel-retour1.nasm b/test/nasm-ref/appel-retour1.nasm
new file mode 100644
index 0000000..45a6fd9
--- /dev/null
+++ b/test/nasm-ref/appel-retour1.nasm
@@ -0,0 +1,58 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+12]	;ecriture de la valeur de retour
+	mov	dword [ebp+8],	eax	;on passe par un registre temporaire
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	3712	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel1.nasm b/test/nasm-ref/appel1.nasm
new file mode 100644
index 0000000..6759776
--- /dev/null
+++ b/test/nasm-ref/appel1.nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel2.nasm b/test/nasm-ref/appel2.nasm
new file mode 100644
index 0000000..7cc2d8f
--- /dev/null
+++ b/test/nasm-ref/appel2.nasm
@@ -0,0 +1,66 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+g :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	g
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/appel3.nasm b/test/nasm-ref/appel3.nasm
new file mode 100644
index 0000000..2b9a9df
--- /dev/null
+++ b/test/nasm-ref/appel3.nasm
@@ -0,0 +1,66 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+g :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	g
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/div1.nasm b/test/nasm-ref/div1.nasm
new file mode 100644
index 0000000..ef462e7
--- /dev/null
+++ b/test/nasm-ref/div1.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	4	;affectation des bits de poids faible du dividende
+	mov	ebx,	2
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/div2.nasm b/test/nasm-ref/div2.nasm
new file mode 100644
index 0000000..e861d6e
--- /dev/null
+++ b/test/nasm-ref/div2.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	0	;affectation des bits de poids faible du dividende
+	mov	ebx,	712
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/div3.nasm b/test/nasm-ref/div3.nasm
new file mode 100644
index 0000000..ffabe24
--- /dev/null
+++ b/test/nasm-ref/div3.nasm
@@ -0,0 +1,42 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	4	;affectation des bits de poids faible du dividende
+	mov	ebx,	2
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	ebx,	eax
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	ebx	;affectation des bits de poids faible du dividende
+	mov	ebx,	2
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/div4.nasm b/test/nasm-ref/div4.nasm
new file mode 100644
index 0000000..f5097bb
--- /dev/null
+++ b/test/nasm-ref/div4.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	2	;affectation des bits de poids faible du dividende
+	mov	ebx,	3
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/ecrire1.nasm b/test/nasm-ref/ecrire1.nasm
new file mode 100644
index 0000000..b54f3ee
--- /dev/null
+++ b/test/nasm-ref/ecrire1.nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	3456	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/ecrire2.nasm b/test/nasm-ref/ecrire2.nasm
new file mode 100644
index 0000000..f1e10ef
--- /dev/null
+++ b/test/nasm-ref/ecrire2.nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/egal1.nasm b/test/nasm-ref/egal1.nasm
new file mode 100644
index 0000000..2f92dc2
--- /dev/null
+++ b/test/nasm-ref/egal1.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	123	;JumpIfEqual 1
+	cmp	eax,	123	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/egal2.nasm b/test/nasm-ref/egal2.nasm
new file mode 100644
index 0000000..e18e7e7
--- /dev/null
+++ b/test/nasm-ref/egal2.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	412	;JumpIfEqual 1
+	cmp	eax,	34	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/egal3.nasm b/test/nasm-ref/egal3.nasm
new file mode 100644
index 0000000..ad070f9
--- /dev/null
+++ b/test/nasm-ref/egal3.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	2	;JumpIfEqual 1
+	cmp	eax,	2	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l1 :	mov	eax,	1	;Affect
+	cmp	ebx,	1	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/fibo.nasm b/test/nasm-ref/fibo.nasm
new file mode 100644
index 0000000..ec408a3
--- /dev/null
+++ b/test/nasm-ref/fibo.nasm
@@ -0,0 +1,88 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+fibo :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Affect
+	cmp	dword [ebp+12],	2	;JumpIfLess 1
+	jl	l2	;JumpIfLess 2
+	mov	eax,	0	;Affect
+l2 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	jmp	l1	;Jump
+l0 :	mov	eax,	dword [ebp+12]
+	sub	eax,	1
+	push	eax	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	ecx	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	dword [ebp+12]
+	sub	eax,	2
+	push	eax	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	ebx	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	ecx
+	add	eax,	ebx
+	mov	dword [ebp+8],	eax	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	9	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/inf1.nasm b/test/nasm-ref/inf1.nasm
new file mode 100644
index 0000000..bd13a5f
--- /dev/null
+++ b/test/nasm-ref/inf1.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	3	;JumpIfLess 1
+	cmp	eax,	3	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/inf2.nasm b/test/nasm-ref/inf2.nasm
new file mode 100644
index 0000000..affb58c
--- /dev/null
+++ b/test/nasm-ref/inf2.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	4	;JumpIfLess 1
+	cmp	eax,	1	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/inf3.nasm b/test/nasm-ref/inf3.nasm
new file mode 100644
index 0000000..5885172
--- /dev/null
+++ b/test/nasm-ref/inf3.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	312	;JumpIfLess 1
+	cmp	eax,	475	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/inf4.nasm b/test/nasm-ref/inf4.nasm
new file mode 100644
index 0000000..013435e
--- /dev/null
+++ b/test/nasm-ref/inf4.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	3	;JumpIfLess 1
+	cmp	eax,	2	;on passe par un registre temporaire
+	jl	l1	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l1 :	mov	eax,	1	;Affect
+	cmp	ebx,	1	;JumpIfLess 1
+	jl	l0	;JumpIfLess 2
+	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/nasm-ref/mult1.nasm b/test/nasm-ref/mult1.nasm
new file mode 100644
index 0000000..f76c441
--- /dev/null
+++ b/test/nasm-ref/mult1.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2
+	imul	eax,	3
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/mult2.nasm b/test/nasm-ref/mult2.nasm
new file mode 100644
index 0000000..6e1901e
--- /dev/null
+++ b/test/nasm-ref/mult2.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0
+	imul	eax,	321
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/mult3.nasm b/test/nasm-ref/mult3.nasm
new file mode 100644
index 0000000..63f4199
--- /dev/null
+++ b/test/nasm-ref/mult3.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	3
+	imul	eax,	3
+	mov	eax,	eax
+	imul	eax,	2
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/not1.nasm b/test/nasm-ref/not1.nasm
new file mode 100644
index 0000000..fa6921f
--- /dev/null
+++ b/test/nasm-ref/not1.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/not2.nasm b/test/nasm-ref/not2.nasm
new file mode 100644
index 0000000..7f55870
--- /dev/null
+++ b/test/nasm-ref/not2.nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/not3.nasm b/test/nasm-ref/not3.nasm
new file mode 100644
index 0000000..a2c8f2e
--- /dev/null
+++ b/test/nasm-ref/not3.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l1 :	mov	eax,	1	;Affect
+	cmp	ebx,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/or1.nasm b/test/nasm-ref/or1.nasm
new file mode 100644
index 0000000..7573ac5
--- /dev/null
+++ b/test/nasm-ref/or1.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/or2.nasm b/test/nasm-ref/or2.nasm
new file mode 100644
index 0000000..49b925d
--- /dev/null
+++ b/test/nasm-ref/or2.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/or3.nasm b/test/nasm-ref/or3.nasm
new file mode 100644
index 0000000..03655bc
--- /dev/null
+++ b/test/nasm-ref/or3.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/or4.nasm b/test/nasm-ref/or4.nasm
new file mode 100644
index 0000000..aab7000
--- /dev/null
+++ b/test/nasm-ref/or4.nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/or5.nasm b/test/nasm-ref/or5.nasm
new file mode 100644
index 0000000..f5d577d
--- /dev/null
+++ b/test/nasm-ref/or5.nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l3	;jumpIfNotEqual 2
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l3	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l2	;Jump
+l3 :	mov	eax,	1	;Affect
+l2 :	cmp	eax,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/parenth1.nasm b/test/nasm-ref/parenth1.nasm
new file mode 100644
index 0000000..62131a5
--- /dev/null
+++ b/test/nasm-ref/parenth1.nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/parenth2.nasm b/test/nasm-ref/parenth2.nasm
new file mode 100644
index 0000000..a0a06fc
--- /dev/null
+++ b/test/nasm-ref/parenth2.nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio23-1.nasm b/test/nasm-ref/prio23-1.nasm
new file mode 100644
index 0000000..fe42a0a
--- /dev/null
+++ b/test/nasm-ref/prio23-1.nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;
+	imul	eax,	10	;
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/nasm-ref/prio23-2.nasm b/test/nasm-ref/prio23-2.nasm
new file mode 100644
index 0000000..3534b14
--- /dev/null
+++ b/test/nasm-ref/prio23-2.nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	10	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	3	;
+	imul	eax,	ebx	;
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/nasm-ref/prio23-3.nasm b/test/nasm-ref/prio23-3.nasm
new file mode 100644
index 0000000..1eaf5d1
--- /dev/null
+++ b/test/nasm-ref/prio23-3.nasm
@@ -0,0 +1,41 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ecx,	1	;Affect
+	mov	ebx,	0	;JumpIfEqual 1
+	cmp	ebx,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ecx,	0	;Affect
+l0 :	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	ecx	;affectation des bits de poids faible du dividende
+	mov	ebx,	1	;
+	idiv	ebx	;
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax	;
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/nasm-ref/prio23-4.nasm b/test/nasm-ref/prio23-4.nasm
new file mode 100644
index 0000000..e4ffdc7
--- /dev/null
+++ b/test/nasm-ref/prio23-4.nasm
@@ -0,0 +1,45 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ecx,	1	;Affect
+	mov	ebx,	1	;JumpIfEqual 1
+	cmp	ebx,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ecx,	0	;Affect
+l0 :	mov	ebx,	1	;Affect
+	mov	edx,	0	;JumpIfEqual 1
+	cmp	edx,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l1 :	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	ecx	;affectation des bits de poids faible du dividende
+	idiv	ebx	;
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax	;
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/nasm-ref/prio34-1.nasm b/test/nasm-ref/prio34-1.nasm
new file mode 100644
index 0000000..cd6c5ee
--- /dev/null
+++ b/test/nasm-ref/prio34-1.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	3
+	imul	ebx,	4
+	mov	eax,	2
+	add	eax,	ebx
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio34-2.nasm b/test/nasm-ref/prio34-2.nasm
new file mode 100644
index 0000000..7021326
--- /dev/null
+++ b/test/nasm-ref/prio34-2.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2
+	imul	eax,	3
+	mov	eax,	eax
+	sub	eax,	4
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio34-3.nasm b/test/nasm-ref/prio34-3.nasm
new file mode 100644
index 0000000..1f40cf8
--- /dev/null
+++ b/test/nasm-ref/prio34-3.nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	6	;affectation des bits de poids faible du dividende
+	mov	ebx,	3
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	eax,	eax
+	mov	eax,	eax
+	sub	eax,	72
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio34-4.nasm b/test/nasm-ref/prio34-4.nasm
new file mode 100644
index 0000000..3de8b05
--- /dev/null
+++ b/test/nasm-ref/prio34-4.nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	20	;affectation des bits de poids faible du dividende
+	mov	ebx,	10
+	idiv	ebx
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	ebx,	eax
+	mov	eax,	6
+	add	eax,	ebx
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio45-1.nasm b/test/nasm-ref/prio45-1.nasm
new file mode 100644
index 0000000..16084c6
--- /dev/null
+++ b/test/nasm-ref/prio45-1.nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	0
+	add	ebx,	1
+	mov	ecx,	1	;Affect
+	mov	eax,	2	;JumpIfEqual 1
+	cmp	eax,	ebx	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	ecx,	0	;Affect
+l0 :	mov	eax,	ecx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio45-2.nasm b/test/nasm-ref/prio45-2.nasm
new file mode 100644
index 0000000..1df1bfc
--- /dev/null
+++ b/test/nasm-ref/prio45-2.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1
+	add	eax,	234
+	mov	ebx,	1	;Affect
+	cmp	eax,	1	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio45-3.nasm b/test/nasm-ref/prio45-3.nasm
new file mode 100644
index 0000000..866931f
--- /dev/null
+++ b/test/nasm-ref/prio45-3.nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	11
+	add	ebx,	100
+	mov	ecx,	1	;Affect
+	mov	eax,	12	;JumpIfLess 1
+	cmp	eax,	ebx	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	ecx,	0	;Affect
+l0 :	mov	eax,	ecx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio45-4.nasm b/test/nasm-ref/prio45-4.nasm
new file mode 100644
index 0000000..64778dc
--- /dev/null
+++ b/test/nasm-ref/prio45-4.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	21
+	sub	eax,	21
+	mov	ebx,	1	;Affect
+	cmp	eax,	1	;JumpIfLess 1
+	jl	l0	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l0 :	mov	eax,	ebx	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio56-1.nasm b/test/nasm-ref/prio56-1.nasm
new file mode 100644
index 0000000..dad8599
--- /dev/null
+++ b/test/nasm-ref/prio56-1.nasm
@@ -0,0 +1,43 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	2	;on passe par un registre temporaire
+	je	l2	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l2 :	cmp	ebx,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio56-2.nasm b/test/nasm-ref/prio56-2.nasm
new file mode 100644
index 0000000..5b41fc4
--- /dev/null
+++ b/test/nasm-ref/prio56-2.nasm
@@ -0,0 +1,43 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	ebx,	1	;Affect
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	1	;on passe par un registre temporaire
+	je	l2	;JumpIfEqual 2
+	mov	ebx,	0	;Affect
+l2 :	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	cmp	ebx,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio67-1.nasm b/test/nasm-ref/prio67-1.nasm
new file mode 100644
index 0000000..dd5f56b
--- /dev/null
+++ b/test/nasm-ref/prio67-1.nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	eax,	0	;Affect
+l2 :	cmp	eax,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/prio67-2.nasm b/test/nasm-ref/prio67-2.nasm
new file mode 100644
index 0000000..94d07a6
--- /dev/null
+++ b/test/nasm-ref/prio67-2.nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	ebx,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	ebx,	0	;Affect
+l2 :	mov	eax,	1	;jumpIfNotEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	cmp	ebx,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	eax,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	1	;Affect
+l0 :	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/rec1.nasm b/test/nasm-ref/rec1.nasm
new file mode 100644
index 0000000..c0f7379
--- /dev/null
+++ b/test/nasm-ref/rec1.nasm
@@ -0,0 +1,81 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Affect
+	cmp	dword [ebp+12],	1	;JumpIfEqual 1
+	je	l2	;JumpIfEqual 2
+	mov	eax,	0	;Affect
+l2 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	jmp	l1	;Jump
+l0 :	mov	eax,	dword [ebp+12]
+	sub	eax,	1
+	push	eax	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	ebx	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	1
+	add	eax,	ebx
+	mov	dword [ebp+8],	eax	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	100	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/si1.nasm b/test/nasm-ref/si1.nasm
new file mode 100644
index 0000000..cc1e237
--- /dev/null
+++ b/test/nasm-ref/si1.nasm
@@ -0,0 +1,33 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/si2.nasm b/test/nasm-ref/si2.nasm
new file mode 100644
index 0000000..a79e6a0
--- /dev/null
+++ b/test/nasm-ref/si2.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/si3.nasm b/test/nasm-ref/si3.nasm
new file mode 100644
index 0000000..4f10ce8
--- /dev/null
+++ b/test/nasm-ref/si3.nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/si4.nasm b/test/nasm-ref/si4.nasm
new file mode 100644
index 0000000..4af0c4e
--- /dev/null
+++ b/test/nasm-ref/si4.nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/si5.nasm b/test/nasm-ref/si5.nasm
new file mode 100644
index 0000000..0676633
--- /dev/null
+++ b/test/nasm-ref/si5.nasm
@@ -0,0 +1,40 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	1	;JumpIfEqual 1
+	cmp	eax,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+l3 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/sub1.nasm b/test/nasm-ref/sub1.nasm
new file mode 100644
index 0000000..70cc077
--- /dev/null
+++ b/test/nasm-ref/sub1.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	10
+	sub	eax,	5
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/sub2.nasm b/test/nasm-ref/sub2.nasm
new file mode 100644
index 0000000..f8201ed
--- /dev/null
+++ b/test/nasm-ref/sub2.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	7
+	sub	eax,	20
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/sub3.nasm b/test/nasm-ref/sub3.nasm
new file mode 100644
index 0000000..f45bc07
--- /dev/null
+++ b/test/nasm-ref/sub3.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2
+	sub	eax,	1
+	mov	eax,	eax
+	sub	eax,	1
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tab1.nasm b/test/nasm-ref/tab1.nasm
new file mode 100644
index 0000000..c5ab2ad
--- /dev/null
+++ b/test/nasm-ref/tab1.nasm
@@ -0,0 +1,50 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	12	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0
+	imul	eax,	4
+	mov	dword [tab+eax],	0	;Affect
+	mov	eax,	1
+	imul	eax,	4
+	mov	dword [tab+eax],	1	;Affect
+	mov	eax,	2
+	imul	eax,	4
+	mov	dword [tab+eax],	2	;Affect
+	mov	eax,	0
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	1
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	2
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tab2.nasm b/test/nasm-ref/tab2.nasm
new file mode 100644
index 0000000..11220cb
--- /dev/null
+++ b/test/nasm-ref/tab2.nasm
@@ -0,0 +1,57 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	20	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	2	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	0
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	34	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	1
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	74	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	2
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	16	;Affect
+	mov	eax,	2
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	3
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	4
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tab3.nasm b/test/nasm-ref/tab3.nasm
new file mode 100644
index 0000000..a992cbd
--- /dev/null
+++ b/test/nasm-ref/tab3.nasm
@@ -0,0 +1,60 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	20	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	2	;Affect
+	mov	dword [ebp-8],	0	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	dword [ebp-8]
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	34	;Affect
+	mov	dword [ebp-8],	1	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	dword [ebp-8]
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	74	;Affect
+	mov	dword [ebp-8],	2	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	dword [ebp-8]
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	16	;Affect
+	mov	eax,	2
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	3
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	4
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tab4.nasm b/test/nasm-ref/tab4.nasm
new file mode 100644
index 0000000..ebef473
--- /dev/null
+++ b/test/nasm-ref/tab4.nasm
@@ -0,0 +1,56 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	12	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0
+	imul	eax,	4
+	mov	dword [tab+eax],	1	;Affect
+	mov	eax,	0
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]
+	imul	eax,	4
+	mov	dword [tab+eax],	12	;Affect
+	mov	eax,	0
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]
+	add	eax,	1
+	mov	eax,	eax
+	imul	eax,	4
+	mov	dword [tab+eax],	13	;Affect
+	mov	eax,	0
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	1
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	2
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tantque1.nasm b/test/nasm-ref/tantque1.nasm
new file mode 100644
index 0000000..7d86ffb
--- /dev/null
+++ b/test/nasm-ref/tantque1.nasm
@@ -0,0 +1,44 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+l0 :	mov	ebx,	1	;Affect
+	mov	eax,	0	;JumpIfLess 1
+	cmp	eax,	dword [ebp-4]	;on passe par un registre temporaire
+	jl	l2	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l2 :	cmp	ebx,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-4]
+	sub	eax,	1
+	mov	dword [ebp-4],	eax	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tantque2.nasm b/test/nasm-ref/tantque2.nasm
new file mode 100644
index 0000000..760a377
--- /dev/null
+++ b/test/nasm-ref/tantque2.nasm
@@ -0,0 +1,54 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	0	;Affect
+l0 :	mov	eax,	1	;Affect
+	cmp	dword [ebp-4],	4	;JumpIfLess 1
+	jl	l2	;JumpIfLess 2
+	mov	eax,	0	;Affect
+l2 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	dword [ebp-8],	0	;Affect
+l3 :	mov	eax,	1	;Affect
+	cmp	dword [ebp-8],	4	;JumpIfLess 1
+	jl	l5	;JumpIfLess 2
+	mov	eax,	0	;Affect
+l5 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l4	;JumpIfEqual 2
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-8]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-8]
+	add	eax,	1
+	mov	dword [ebp-8],	eax	;Affect
+	jmp	l3	;Jump
+l4 :	mov	eax,	dword [ebp-4]
+	add	eax,	1
+	mov	dword [ebp-4],	eax	;Affect
+	jmp	l0	;Jump
+l1 :	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/tri.nasm b/test/nasm-ref/tri.nasm
new file mode 100644
index 0000000..ed7a9fd
--- /dev/null
+++ b/test/nasm-ref/tri.nasm
@@ -0,0 +1,214 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	40	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+initialiser :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0
+	imul	eax,	4
+	mov	dword [tab+eax],	8	;Affect
+	mov	eax,	1
+	imul	eax,	4
+	mov	dword [tab+eax],	6	;Affect
+	mov	eax,	2
+	imul	eax,	4
+	mov	dword [tab+eax],	9	;Affect
+	mov	eax,	3
+	imul	eax,	4
+	mov	dword [tab+eax],	9	;Affect
+	mov	eax,	4
+	imul	eax,	4
+	mov	dword [tab+eax],	4	;Affect
+	mov	eax,	5
+	imul	eax,	4
+	mov	dword [tab+eax],	2	;Affect
+	mov	eax,	6
+	imul	eax,	4
+	mov	dword [tab+eax],	3	;Affect
+	mov	eax,	7
+	imul	eax,	4
+	mov	dword [tab+eax],	1	;Affect
+	mov	eax,	8
+	imul	eax,	4
+	mov	dword [tab+eax],	4	;Affect
+	mov	eax,	9
+	imul	eax,	4
+	mov	dword [tab+eax],	5	;Affect
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+afficher :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	0	;Affect
+l0 :	mov	ebx,	1	;Affect
+	mov	eax,	dword [ebp-4]	;JumpIfLess 1
+	cmp	eax,	dword [ebp+12]	;on passe par un registre temporaire
+	jl	l2	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l2 :	cmp	ebx,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	eax,	dword [ebp-4]
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-4]
+	add	eax,	1
+	mov	dword [ebp-4],	eax	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+echanger :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	eax,	dword [ebp+12]
+	imul	eax,	4
+	mov	eax,	dword [tab+eax]	;Affect
+	mov	dword [ebp-4],	eax	;on passe par un registre temporaire
+	mov	eax,	dword [ebp+16]
+	imul	eax,	4
+	mov	ebx,	dword [ebp+12]
+	imul	ebx,	4
+	mov	eax,	dword [tab+eax]	;Affect
+	mov	dword [tab+ebx],	eax	;on passe par un registre temporaire
+	mov	ebx,	dword [ebp+16]
+	imul	ebx,	4
+	mov	eax,	dword [ebp-4]	;Affect
+	mov	dword [tab+ebx],	eax	;on passe par un registre temporaire
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+trier :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	12	;allocation des variables locales
+	mov	eax,	dword [ebp+12]	;Affect
+	mov	dword [ebp-12],	eax	;on passe par un registre temporaire
+	mov	dword [ebp-4],	1	;Affect
+l3 :	mov	eax,	1	;Affect
+	cmp	dword [ebp-4],	1	;JumpIfEqual 1
+	je	l5	;JumpIfEqual 2
+	mov	eax,	0	;Affect
+l5 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l4	;JumpIfEqual 2
+	mov	dword [ebp-4],	0	;Affect
+	mov	dword [ebp-8],	0	;Affect
+l6 :	mov	eax,	dword [ebp-12]
+	sub	eax,	1
+	mov	ebx,	1	;Affect
+	cmp	dword [ebp-8],	eax	;JumpIfLess 1
+	jl	l8	;JumpIfLess 2
+	mov	ebx,	0	;Affect
+l8 :	cmp	ebx,	0	;JumpIfEqual 1
+	je	l7	;JumpIfEqual 2
+	mov	ebx,	dword [ebp-8]
+	add	ebx,	1
+	mov	eax,	1	;Affect
+	mov	ebx,	ebx
+	imul	ebx,	4
+	mov	ecx,	dword [ebp-8]
+	imul	ecx,	4
+	mov	ebx,	dword [tab+ebx]	;JumpIfLess 1
+	cmp	ebx,	dword [tab+ecx]	;on passe par un registre temporaire
+	jl	l11	;JumpIfLess 2
+	mov	eax,	0	;Affect
+l11 :	cmp	eax,	0	;JumpIfEqual 1
+	je	l10	;JumpIfEqual 2
+	push	dword [ebp-8]	;Param
+	mov	eax,	dword [ebp-8]
+	add	eax,	1
+	push	eax	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	echanger
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	8	;désallocation des arguments
+	mov	dword [ebp-4],	1	;Affect
+l10 :	mov	eax,	dword [ebp-8]
+	add	eax,	1
+	mov	dword [ebp-8],	eax	;Affect
+	jmp	l6	;Jump
+l7 :	mov	eax,	dword [ebp-12]
+	sub	eax,	1
+	mov	dword [ebp-12],	eax	;Affect
+	jmp	l3	;Jump
+l4 :	add	esp,	12	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	initialiser
+	pop	eax	;récupération de la valeur de retour
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	afficher
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	trier
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	afficher
+	pop	eax	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varglob1.nasm b/test/nasm-ref/varglob1.nasm
new file mode 100644
index 0000000..f2d6bb5
--- /dev/null
+++ b/test/nasm-ref/varglob1.nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+variable :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [variable],	6834	;Affect
+	mov	eax,	dword [variable]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varglob2.nasm b/test/nasm-ref/varglob2.nasm
new file mode 100644
index 0000000..0d3aa1a
--- /dev/null
+++ b/test/nasm-ref/varglob2.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+variable :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [variable],	10	;Affect
+	mov	eax,	dword [variable]
+	add	eax,	50
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varglob3.nasm b/test/nasm-ref/varglob3.nasm
new file mode 100644
index 0000000..3e82be4
--- /dev/null
+++ b/test/nasm-ref/varglob3.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var2 :	resd	4	;variable globale
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	10	;Affect
+	mov	dword [var2],	34	;Affect
+	mov	eax,	dword [var1]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [var2]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varglob4.nasm b/test/nasm-ref/varglob4.nasm
new file mode 100644
index 0000000..426256a
--- /dev/null
+++ b/test/nasm-ref/varglob4.nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var2 :	resd	4	;variable globale
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	10	;Affect
+	mov	dword [var2],	34	;Affect
+	mov	eax,	dword [var1]
+	add	eax,	dword [var2]
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varloc1.nasm b/test/nasm-ref/varloc1.nasm
new file mode 100644
index 0000000..f16e7b4
--- /dev/null
+++ b/test/nasm-ref/varloc1.nasm
@@ -0,0 +1,31 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	6834	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varloc2.nasm b/test/nasm-ref/varloc2.nasm
new file mode 100644
index 0000000..6fa1b7f
--- /dev/null
+++ b/test/nasm-ref/varloc2.nasm
@@ -0,0 +1,33 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	50
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varloc3.nasm b/test/nasm-ref/varloc3.nasm
new file mode 100644
index 0000000..821c6cd
--- /dev/null
+++ b/test/nasm-ref/varloc3.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	dword [ebp-8],	30	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-8]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varloc4.nasm b/test/nasm-ref/varloc4.nasm
new file mode 100644
index 0000000..931ea58
--- /dev/null
+++ b/test/nasm-ref/varloc4.nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	dword [ebp-8],	30	;Affect
+	mov	eax,	dword [ebp-4]
+	add	eax,	dword [ebp-8]
+	mov	eax,	eax	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/nasm-ref/varloc5.nasm b/test/nasm-ref/varloc5.nasm
new file mode 100644
index 0000000..58b8668
--- /dev/null
+++ b/test/nasm-ref/varloc5.nasm
@@ -0,0 +1,52 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	eax	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	20	;Affect
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	eax	;récupération de la valeur de retour
+	mov	eax,	dword [var1]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/out-ref/add1.out b/test/out-ref/add1.out
new file mode 100644
index 0000000..b1bd38b
--- /dev/null
+++ b/test/out-ref/add1.out
@@ -0,0 +1 @@
+13
diff --git a/test/out-ref/add2.out b/test/out-ref/add2.out
new file mode 100644
index 0000000..8351c19
--- /dev/null
+++ b/test/out-ref/add2.out
@@ -0,0 +1 @@
+14
diff --git a/test/out-ref/affect1.out b/test/out-ref/affect1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/affect1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/affect2.out b/test/out-ref/affect2.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/affect2.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/affect3.out b/test/out-ref/affect3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/affect3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/and1.out b/test/out-ref/and1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/and1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/and2.out b/test/out-ref/and2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/and2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/and3.out b/test/out-ref/and3.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/and3.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/and4.out b/test/out-ref/and4.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/and4.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/and5.out b/test/out-ref/and5.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/and5.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/appel-param1.out b/test/out-ref/appel-param1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/appel-param1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/appel-param2.out b/test/out-ref/appel-param2.out
new file mode 100644
index 0000000..fe3862e
--- /dev/null
+++ b/test/out-ref/appel-param2.out
@@ -0,0 +1,2 @@
+1
+456
diff --git a/test/out-ref/appel-param3.out b/test/out-ref/appel-param3.out
new file mode 100644
index 0000000..8a1218a
--- /dev/null
+++ b/test/out-ref/appel-param3.out
@@ -0,0 +1,5 @@
+1
+2
+3
+4
+5
diff --git a/test/out-ref/appel-retour1.out b/test/out-ref/appel-retour1.out
new file mode 100644
index 0000000..810283d
--- /dev/null
+++ b/test/out-ref/appel-retour1.out
@@ -0,0 +1 @@
+3712
diff --git a/test/out-ref/appel1.out b/test/out-ref/appel1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/appel1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/appel2.out b/test/out-ref/appel2.out
new file mode 100644
index 0000000..1191247
--- /dev/null
+++ b/test/out-ref/appel2.out
@@ -0,0 +1,2 @@
+1
+2
diff --git a/test/out-ref/appel3.out b/test/out-ref/appel3.out
new file mode 100644
index 0000000..1191247
--- /dev/null
+++ b/test/out-ref/appel3.out
@@ -0,0 +1,2 @@
+1
+2
diff --git a/test/out-ref/div1.out b/test/out-ref/div1.out
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/test/out-ref/div1.out
@@ -0,0 +1 @@
+2
diff --git a/test/out-ref/div2.out b/test/out-ref/div2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/div2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/div3.out b/test/out-ref/div3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/div3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/div4.out b/test/out-ref/div4.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/div4.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/ecrire1.out b/test/out-ref/ecrire1.out
new file mode 100644
index 0000000..169efa8
--- /dev/null
+++ b/test/out-ref/ecrire1.out
@@ -0,0 +1 @@
+3456
diff --git a/test/out-ref/ecrire2.out b/test/out-ref/ecrire2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/ecrire2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/egal1.out b/test/out-ref/egal1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/egal1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/egal2.out b/test/out-ref/egal2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/egal2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/egal3.out b/test/out-ref/egal3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/egal3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/err5.out b/test/out-ref/err5.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/err5.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/fibo.out b/test/out-ref/fibo.out
new file mode 100644
index 0000000..c3f407c
--- /dev/null
+++ b/test/out-ref/fibo.out
@@ -0,0 +1 @@
+55
diff --git a/test/out-ref/inf1.out b/test/out-ref/inf1.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/inf1.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/inf2.out b/test/out-ref/inf2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/inf2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/inf3.out b/test/out-ref/inf3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/inf3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/inf4.out b/test/out-ref/inf4.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/inf4.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/mult1.out b/test/out-ref/mult1.out
new file mode 100644
index 0000000..1e8b314
--- /dev/null
+++ b/test/out-ref/mult1.out
@@ -0,0 +1 @@
+6
diff --git a/test/out-ref/mult2.out b/test/out-ref/mult2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/mult2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/mult3.out b/test/out-ref/mult3.out
new file mode 100644
index 0000000..3c03207
--- /dev/null
+++ b/test/out-ref/mult3.out
@@ -0,0 +1 @@
+18
diff --git a/test/out-ref/not1.out b/test/out-ref/not1.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/not1.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/not2.out b/test/out-ref/not2.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/not2.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/not3.out b/test/out-ref/not3.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/not3.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/or1.out b/test/out-ref/or1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/or1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/or2.out b/test/out-ref/or2.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/or2.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/or3.out b/test/out-ref/or3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/or3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/or4.out b/test/out-ref/or4.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/or4.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/or5.out b/test/out-ref/or5.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/or5.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/parenth1.out b/test/out-ref/parenth1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/parenth1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/parenth2.out b/test/out-ref/parenth2.out
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/test/out-ref/parenth2.out
@@ -0,0 +1 @@
+2
diff --git a/test/out-ref/prio23-1.out b/test/out-ref/prio23-1.out
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/test/out-ref/prio23-1.out
@@ -0,0 +1 @@
+10
diff --git a/test/out-ref/prio23-2.out b/test/out-ref/prio23-2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/prio23-2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/prio23-3.out b/test/out-ref/prio23-3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio23-3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/prio23-4.out b/test/out-ref/prio23-4.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/prio23-4.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/prio34-1.out b/test/out-ref/prio34-1.out
new file mode 100644
index 0000000..8351c19
--- /dev/null
+++ b/test/out-ref/prio34-1.out
@@ -0,0 +1 @@
+14
diff --git a/test/out-ref/prio34-2.out b/test/out-ref/prio34-2.out
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/test/out-ref/prio34-2.out
@@ -0,0 +1 @@
+2
diff --git a/test/out-ref/prio34-3.out b/test/out-ref/prio34-3.out
new file mode 100644
index 0000000..6446481
--- /dev/null
+++ b/test/out-ref/prio34-3.out
@@ -0,0 +1 @@
+-70
diff --git a/test/out-ref/prio34-4.out b/test/out-ref/prio34-4.out
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/test/out-ref/prio34-4.out
@@ -0,0 +1 @@
+8
diff --git a/test/out-ref/prio45-1.out b/test/out-ref/prio45-1.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/prio45-1.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/prio45-2.out b/test/out-ref/prio45-2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/prio45-2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/prio45-3.out b/test/out-ref/prio45-3.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio45-3.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/prio45-4.out b/test/out-ref/prio45-4.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio45-4.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/prio56-1.out b/test/out-ref/prio56-1.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/prio56-1.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/prio56-2.out b/test/out-ref/prio56-2.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio56-2.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/prio67-1.out b/test/out-ref/prio67-1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio67-1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/prio67-2.out b/test/out-ref/prio67-2.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/prio67-2.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/rec1.out b/test/out-ref/rec1.out
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/test/out-ref/rec1.out
@@ -0,0 +1 @@
+100
diff --git a/test/out-ref/si1.out b/test/out-ref/si1.out
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/out-ref/si1.out
@@ -0,0 +1 @@
+1
diff --git a/test/out-ref/si2.out b/test/out-ref/si2.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/si2.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/si3.out b/test/out-ref/si3.out
new file mode 100644
index 0000000..6ed281c
--- /dev/null
+++ b/test/out-ref/si3.out
@@ -0,0 +1,2 @@
+1
+1
diff --git a/test/out-ref/si4.out b/test/out-ref/si4.out
new file mode 100644
index 0000000..0d66ea1
--- /dev/null
+++ b/test/out-ref/si4.out
@@ -0,0 +1,2 @@
+0
+1
diff --git a/test/out-ref/si5.out b/test/out-ref/si5.out
new file mode 100644
index 0000000..e8183f0
--- /dev/null
+++ b/test/out-ref/si5.out
@@ -0,0 +1,3 @@
+1
+1
+1
diff --git a/test/out-ref/sub1.out b/test/out-ref/sub1.out
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/test/out-ref/sub1.out
@@ -0,0 +1 @@
+5
diff --git a/test/out-ref/sub2.out b/test/out-ref/sub2.out
new file mode 100644
index 0000000..995f07c
--- /dev/null
+++ b/test/out-ref/sub2.out
@@ -0,0 +1 @@
+-13
diff --git a/test/out-ref/sub3.out b/test/out-ref/sub3.out
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/out-ref/sub3.out
@@ -0,0 +1 @@
+0
diff --git a/test/out-ref/tab1.out b/test/out-ref/tab1.out
new file mode 100644
index 0000000..4539bbf
--- /dev/null
+++ b/test/out-ref/tab1.out
@@ -0,0 +1,3 @@
+0
+1
+2
diff --git a/test/out-ref/tab2.out b/test/out-ref/tab2.out
new file mode 100644
index 0000000..ecfe662
--- /dev/null
+++ b/test/out-ref/tab2.out
@@ -0,0 +1,3 @@
+34
+74
+16
diff --git a/test/out-ref/tab3.out b/test/out-ref/tab3.out
new file mode 100644
index 0000000..ecfe662
--- /dev/null
+++ b/test/out-ref/tab3.out
@@ -0,0 +1,3 @@
+34
+74
+16
diff --git a/test/out-ref/tab4.out b/test/out-ref/tab4.out
new file mode 100644
index 0000000..fa56b0b
--- /dev/null
+++ b/test/out-ref/tab4.out
@@ -0,0 +1,3 @@
+1
+12
+13
diff --git a/test/out-ref/tantque1.out b/test/out-ref/tantque1.out
new file mode 100644
index 0000000..30b148d
--- /dev/null
+++ b/test/out-ref/tantque1.out
@@ -0,0 +1,11 @@
+10
+9
+8
+7
+6
+5
+4
+3
+2
+1
+0
diff --git a/test/out-ref/tantque2.out b/test/out-ref/tantque2.out
new file mode 100644
index 0000000..4ee1d37
--- /dev/null
+++ b/test/out-ref/tantque2.out
@@ -0,0 +1,32 @@
+0
+0
+0
+1
+0
+2
+0
+3
+1
+0
+1
+1
+1
+2
+1
+3
+2
+0
+2
+1
+2
+2
+2
+3
+3
+0
+3
+1
+3
+2
+3
+3
diff --git a/test/out-ref/tri.out b/test/out-ref/tri.out
new file mode 100644
index 0000000..d32f608
--- /dev/null
+++ b/test/out-ref/tri.out
@@ -0,0 +1,22 @@
+8
+6
+9
+9
+4
+2
+3
+1
+4
+5
+0
+1
+2
+3
+4
+4
+5
+6
+8
+9
+9
+0
diff --git a/test/out-ref/varglob1.out b/test/out-ref/varglob1.out
new file mode 100644
index 0000000..0f94b34
--- /dev/null
+++ b/test/out-ref/varglob1.out
@@ -0,0 +1 @@
+6834
diff --git a/test/out-ref/varglob2.out b/test/out-ref/varglob2.out
new file mode 100644
index 0000000..abdfb05
--- /dev/null
+++ b/test/out-ref/varglob2.out
@@ -0,0 +1 @@
+60
diff --git a/test/out-ref/varglob3.out b/test/out-ref/varglob3.out
new file mode 100644
index 0000000..8ba133e
--- /dev/null
+++ b/test/out-ref/varglob3.out
@@ -0,0 +1,2 @@
+10
+34
diff --git a/test/out-ref/varglob4.out b/test/out-ref/varglob4.out
new file mode 100644
index 0000000..c739b42
--- /dev/null
+++ b/test/out-ref/varglob4.out
@@ -0,0 +1 @@
+44
diff --git a/test/out-ref/varloc1.out b/test/out-ref/varloc1.out
new file mode 100644
index 0000000..0f94b34
--- /dev/null
+++ b/test/out-ref/varloc1.out
@@ -0,0 +1 @@
+6834
diff --git a/test/out-ref/varloc2.out b/test/out-ref/varloc2.out
new file mode 100644
index 0000000..abdfb05
--- /dev/null
+++ b/test/out-ref/varloc2.out
@@ -0,0 +1 @@
+60
diff --git a/test/out-ref/varloc3.out b/test/out-ref/varloc3.out
new file mode 100644
index 0000000..3d1851c
--- /dev/null
+++ b/test/out-ref/varloc3.out
@@ -0,0 +1,2 @@
+10
+30
diff --git a/test/out-ref/varloc4.out b/test/out-ref/varloc4.out
new file mode 100644
index 0000000..425151f
--- /dev/null
+++ b/test/out-ref/varloc4.out
@@ -0,0 +1 @@
+40
diff --git a/test/out-ref/varloc5.out b/test/out-ref/varloc5.out
new file mode 100644
index 0000000..3b86147
--- /dev/null
+++ b/test/out-ref/varloc5.out
@@ -0,0 +1,2 @@
+10
+20
diff --git a/test/pre-nasm-ref/add1.pre-nasm b/test/pre-nasm-ref/add1.pre-nasm
new file mode 100644
index 0000000..a85129f
--- /dev/null
+++ b/test/pre-nasm-ref/add1.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	3
+	add	@1,	10
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/add2.pre-nasm b/test/pre-nasm-ref/add2.pre-nasm
new file mode 100644
index 0000000..c32aa25
--- /dev/null
+++ b/test/pre-nasm-ref/add2.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	2
+	add	@1,	4
+	mov	@2,	@1
+	add	@2,	8
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/affect1.pre-nasm b/test/pre-nasm-ref/affect1.pre-nasm
new file mode 100644
index 0000000..58fe6a9
--- /dev/null
+++ b/test/pre-nasm-ref/affect1.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+a :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [a],	1	;Affect
+	mov	eax,	dword [a]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/affect2.pre-nasm b/test/pre-nasm-ref/affect2.pre-nasm
new file mode 100644
index 0000000..c5e4bb7
--- /dev/null
+++ b/test/pre-nasm-ref/affect2.pre-nasm
@@ -0,0 +1,31 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	1	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/affect3.pre-nasm b/test/pre-nasm-ref/affect3.pre-nasm
new file mode 100644
index 0000000..cad08c4
--- /dev/null
+++ b/test/pre-nasm-ref/affect3.pre-nasm
@@ -0,0 +1,50 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [ebp+12],	1	;Affect
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	push	3	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/and1.pre-nasm b/test/pre-nasm-ref/and1.pre-nasm
new file mode 100644
index 0000000..13ff14a
--- /dev/null
+++ b/test/pre-nasm-ref/and1.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	1	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/and2.pre-nasm b/test/pre-nasm-ref/and2.pre-nasm
new file mode 100644
index 0000000..cc749c5
--- /dev/null
+++ b/test/pre-nasm-ref/and2.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	1	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@9,	0	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/and3.pre-nasm b/test/pre-nasm-ref/and3.pre-nasm
new file mode 100644
index 0000000..9629341
--- /dev/null
+++ b/test/pre-nasm-ref/and3.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	0	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/and4.pre-nasm b/test/pre-nasm-ref/and4.pre-nasm
new file mode 100644
index 0000000..99c1ee1
--- /dev/null
+++ b/test/pre-nasm-ref/and4.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	0	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@9,	0	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/and5.pre-nasm b/test/pre-nasm-ref/and5.pre-nasm
new file mode 100644
index 0000000..cace673
--- /dev/null
+++ b/test/pre-nasm-ref/and5.pre-nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@10,	0	;JumpIfEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@2,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	@2,	0	;Affect
+l2 :	cmp	@2,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	@11,	1	;JumpIfEqual 1
+	cmp	@11,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel-param1.pre-nasm b/test/pre-nasm-ref/appel-param1.pre-nasm
new file mode 100644
index 0000000..fd584ca
--- /dev/null
+++ b/test/pre-nasm-ref/appel-param1.pre-nasm
@@ -0,0 +1,49 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel-param2.pre-nasm b/test/pre-nasm-ref/appel-param2.pre-nasm
new file mode 100644
index 0000000..1a57087
--- /dev/null
+++ b/test/pre-nasm-ref/appel-param2.pre-nasm
@@ -0,0 +1,52 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	push	456	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	8	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel-param3.pre-nasm b/test/pre-nasm-ref/appel-param3.pre-nasm
new file mode 100644
index 0000000..78e7ab7
--- /dev/null
+++ b/test/pre-nasm-ref/appel-param3.pre-nasm
@@ -0,0 +1,61 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	dword [ebp+28]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+24]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+20]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp+12]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	1	;Param
+	push	2	;Param
+	push	3	;Param
+	push	4	;Param
+	push	5	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	20	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel-retour1.pre-nasm b/test/pre-nasm-ref/appel-retour1.pre-nasm
new file mode 100644
index 0000000..0841180
--- /dev/null
+++ b/test/pre-nasm-ref/appel-retour1.pre-nasm
@@ -0,0 +1,58 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	dword [ebp+12]	;ecriture de la valeur de retour
+	mov	dword [ebp+8],	@8	;on passe par un registre temporaire
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	3712	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel1.pre-nasm b/test/pre-nasm-ref/appel1.pre-nasm
new file mode 100644
index 0000000..ff03435
--- /dev/null
+++ b/test/pre-nasm-ref/appel1.pre-nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel2.pre-nasm b/test/pre-nasm-ref/appel2.pre-nasm
new file mode 100644
index 0000000..354f579
--- /dev/null
+++ b/test/pre-nasm-ref/appel2.pre-nasm
@@ -0,0 +1,66 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+g :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	g
+	pop	@1	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@2	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/appel3.pre-nasm b/test/pre-nasm-ref/appel3.pre-nasm
new file mode 100644
index 0000000..6246b00
--- /dev/null
+++ b/test/pre-nasm-ref/appel3.pre-nasm
@@ -0,0 +1,66 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+g :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	g
+	pop	@2	;récupération de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/div1.pre-nasm b/test/pre-nasm-ref/div1.pre-nasm
new file mode 100644
index 0000000..fdbadf0
--- /dev/null
+++ b/test/pre-nasm-ref/div1.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	4	;affectation des bits de poids faible du dividende
+	mov	@10,	2
+	idiv	@10
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/div2.pre-nasm b/test/pre-nasm-ref/div2.pre-nasm
new file mode 100644
index 0000000..03e43c7
--- /dev/null
+++ b/test/pre-nasm-ref/div2.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	0	;affectation des bits de poids faible du dividende
+	mov	@10,	712
+	idiv	@10
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/div3.pre-nasm b/test/pre-nasm-ref/div3.pre-nasm
new file mode 100644
index 0000000..27cec5c
--- /dev/null
+++ b/test/pre-nasm-ref/div3.pre-nasm
@@ -0,0 +1,42 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	4	;affectation des bits de poids faible du dividende
+	mov	@11,	2
+	idiv	@11
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	@1	;affectation des bits de poids faible du dividende
+	mov	@15,	2
+	idiv	@15
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@2,	eax
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/div4.pre-nasm b/test/pre-nasm-ref/div4.pre-nasm
new file mode 100644
index 0000000..af05666
--- /dev/null
+++ b/test/pre-nasm-ref/div4.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	2	;affectation des bits de poids faible du dividende
+	mov	@10,	3
+	idiv	@10
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/ecrire1.pre-nasm b/test/pre-nasm-ref/ecrire1.pre-nasm
new file mode 100644
index 0000000..e49a65c
--- /dev/null
+++ b/test/pre-nasm-ref/ecrire1.pre-nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	3456	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/ecrire2.pre-nasm b/test/pre-nasm-ref/ecrire2.pre-nasm
new file mode 100644
index 0000000..cf9c039
--- /dev/null
+++ b/test/pre-nasm-ref/ecrire2.pre-nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/egal1.pre-nasm b/test/pre-nasm-ref/egal1.pre-nasm
new file mode 100644
index 0000000..427c6ce
--- /dev/null
+++ b/test/pre-nasm-ref/egal1.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	123	;JumpIfEqual 1
+	cmp	@8,	123	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/egal2.pre-nasm b/test/pre-nasm-ref/egal2.pre-nasm
new file mode 100644
index 0000000..b85f93d
--- /dev/null
+++ b/test/pre-nasm-ref/egal2.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	412	;JumpIfEqual 1
+	cmp	@8,	34	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/egal3.pre-nasm b/test/pre-nasm-ref/egal3.pre-nasm
new file mode 100644
index 0000000..e0e2b89
--- /dev/null
+++ b/test/pre-nasm-ref/egal3.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	1	;Affect
+	mov	@9,	2	;JumpIfEqual 1
+	cmp	@9,	2	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@2,	0	;Affect
+l1 :	mov	@1,	1	;Affect
+	cmp	@2,	1	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/fibo.pre-nasm b/test/pre-nasm-ref/fibo.pre-nasm
new file mode 100644
index 0000000..bea531a
--- /dev/null
+++ b/test/pre-nasm-ref/fibo.pre-nasm
@@ -0,0 +1,88 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+fibo :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	cmp	dword [ebp+12],	2	;JumpIfLess 1
+	jl	l2	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l2 :	cmp	@1,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	jmp	l1	;Jump
+l0 :	mov	@3,	dword [ebp+12]
+	sub	@3,	1
+	push	@3	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	@2	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	@5,	dword [ebp+12]
+	sub	@5,	2
+	push	@5	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	@4	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	@6,	@2
+	add	@6,	@4
+	mov	dword [ebp+8],	@6	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	9	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	fibo
+	pop	@7	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	@7	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/inf1.pre-nasm b/test/pre-nasm-ref/inf1.pre-nasm
new file mode 100644
index 0000000..a0f0f2d
--- /dev/null
+++ b/test/pre-nasm-ref/inf1.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	3	;JumpIfLess 1
+	cmp	@8,	3	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/inf2.pre-nasm b/test/pre-nasm-ref/inf2.pre-nasm
new file mode 100644
index 0000000..acd3a8a
--- /dev/null
+++ b/test/pre-nasm-ref/inf2.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	4	;JumpIfLess 1
+	cmp	@8,	1	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/inf3.pre-nasm b/test/pre-nasm-ref/inf3.pre-nasm
new file mode 100644
index 0000000..eadc985
--- /dev/null
+++ b/test/pre-nasm-ref/inf3.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	312	;JumpIfLess 1
+	cmp	@8,	475	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/inf4.pre-nasm b/test/pre-nasm-ref/inf4.pre-nasm
new file mode 100644
index 0000000..9c90281
--- /dev/null
+++ b/test/pre-nasm-ref/inf4.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	r0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	r2,	1	;Affect
+	mov	r9,	3	;JumpIfLess 1
+	cmp	r9,	2	;on passe par un registre temporaire
+	jl	l1	;JumpIfLess 2
+	mov	r2,	0	;Affect
+l1 :	mov	r1,	1	;Affect
+	cmp	r2,	1	;JumpIfLess 1
+	jl	l0	;JumpIfLess 2
+	mov	r1,	0	;Affect
+l0 :	mov	eax,	r1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/pre-nasm-ref/mult1.pre-nasm b/test/pre-nasm-ref/mult1.pre-nasm
new file mode 100644
index 0000000..1986d14
--- /dev/null
+++ b/test/pre-nasm-ref/mult1.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	2
+	imul	@1,	3
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/mult2.pre-nasm b/test/pre-nasm-ref/mult2.pre-nasm
new file mode 100644
index 0000000..28d48a3
--- /dev/null
+++ b/test/pre-nasm-ref/mult2.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	0
+	imul	@1,	321
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/mult3.pre-nasm b/test/pre-nasm-ref/mult3.pre-nasm
new file mode 100644
index 0000000..d9fbcbf
--- /dev/null
+++ b/test/pre-nasm-ref/mult3.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	3
+	imul	@1,	3
+	mov	@2,	@1
+	imul	@2,	2
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/not1.pre-nasm b/test/pre-nasm-ref/not1.pre-nasm
new file mode 100644
index 0000000..eb7b79f
--- /dev/null
+++ b/test/pre-nasm-ref/not1.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	1	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/not2.pre-nasm b/test/pre-nasm-ref/not2.pre-nasm
new file mode 100644
index 0000000..2c7a875
--- /dev/null
+++ b/test/pre-nasm-ref/not2.pre-nasm
@@ -0,0 +1,35 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	mov	@8,	0	;JumpIfEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/not3.pre-nasm b/test/pre-nasm-ref/not3.pre-nasm
new file mode 100644
index 0000000..f523d4f
--- /dev/null
+++ b/test/pre-nasm-ref/not3.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	1	;Affect
+	mov	@9,	0	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@2,	0	;Affect
+l1 :	mov	@1,	1	;Affect
+	cmp	@2,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/or1.pre-nasm b/test/pre-nasm-ref/or1.pre-nasm
new file mode 100644
index 0000000..2e66876
--- /dev/null
+++ b/test/pre-nasm-ref/or1.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	1	;jumpIfNotEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@9,	1	;jumpIfNotEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/or2.pre-nasm b/test/pre-nasm-ref/or2.pre-nasm
new file mode 100644
index 0000000..600dd18
--- /dev/null
+++ b/test/pre-nasm-ref/or2.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	1	;jumpIfNotEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@9,	0	;jumpIfNotEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/or3.pre-nasm b/test/pre-nasm-ref/or3.pre-nasm
new file mode 100644
index 0000000..f34edd4
--- /dev/null
+++ b/test/pre-nasm-ref/or3.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	0	;jumpIfNotEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@9,	1	;jumpIfNotEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/or4.pre-nasm b/test/pre-nasm-ref/or4.pre-nasm
new file mode 100644
index 0000000..becebcc
--- /dev/null
+++ b/test/pre-nasm-ref/or4.pre-nasm
@@ -0,0 +1,39 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	0	;jumpIfNotEqual 1
+	cmp	@8,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@9,	0	;jumpIfNotEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/or5.pre-nasm b/test/pre-nasm-ref/or5.pre-nasm
new file mode 100644
index 0000000..46e2785
--- /dev/null
+++ b/test/pre-nasm-ref/or5.pre-nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@9,	0	;jumpIfNotEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	jne	l3	;jumpIfNotEqual 2
+	mov	@10,	1	;jumpIfNotEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	jne	l3	;jumpIfNotEqual 2
+	mov	@2,	0	;Affect
+	jmp	l2	;Jump
+l3 :	mov	@2,	1	;Affect
+l2 :	cmp	@2,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	@11,	0	;jumpIfNotEqual 1
+	cmp	@11,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/parenth1.pre-nasm b/test/pre-nasm-ref/parenth1.pre-nasm
new file mode 100644
index 0000000..27b03b8
--- /dev/null
+++ b/test/pre-nasm-ref/parenth1.pre-nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/parenth2.pre-nasm b/test/pre-nasm-ref/parenth2.pre-nasm
new file mode 100644
index 0000000..8673e39
--- /dev/null
+++ b/test/pre-nasm-ref/parenth2.pre-nasm
@@ -0,0 +1,30 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	eax,	2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio23-1.pre-nasm b/test/pre-nasm-ref/prio23-1.pre-nasm
new file mode 100644
index 0000000..8011242
--- /dev/null
+++ b/test/pre-nasm-ref/prio23-1.pre-nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	r0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	r1,	1	;Affect
+	mov	r9,	0	;JumpIfEqual 1
+	cmp	r9,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	r1,	0	;Affect
+l0 :	mov	r2,	r1	;
+	imul	r2,	10	;
+	mov	eax,	r2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/pre-nasm-ref/prio23-2.pre-nasm b/test/pre-nasm-ref/prio23-2.pre-nasm
new file mode 100644
index 0000000..762181d
--- /dev/null
+++ b/test/pre-nasm-ref/prio23-2.pre-nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	r0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	r1,	1	;Affect
+	mov	r9,	10	;JumpIfEqual 1
+	cmp	r9,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	r1,	0	;Affect
+l0 :	mov	r2,	3	;
+	imul	r2,	r1	;
+	mov	eax,	r2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/pre-nasm-ref/prio23-3.pre-nasm b/test/pre-nasm-ref/prio23-3.pre-nasm
new file mode 100644
index 0000000..2892dc2
--- /dev/null
+++ b/test/pre-nasm-ref/prio23-3.pre-nasm
@@ -0,0 +1,41 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	r0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	r1,	1	;Affect
+	mov	r9,	0	;JumpIfEqual 1
+	cmp	r9,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	r1,	0	;Affect
+l0 :	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	r1	;affectation des bits de poids faible du dividende
+	mov	r12,	1	;
+	idiv	r12	;
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	r2,	eax	;
+	mov	eax,	r2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/pre-nasm-ref/prio23-4.pre-nasm b/test/pre-nasm-ref/prio23-4.pre-nasm
new file mode 100644
index 0000000..87dd906
--- /dev/null
+++ b/test/pre-nasm-ref/prio23-4.pre-nasm
@@ -0,0 +1,45 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main	;
+	pop	r0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80	;
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	r1,	1	;Affect
+	mov	r10,	1	;JumpIfEqual 1
+	cmp	r10,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	r1,	0	;Affect
+l0 :	mov	r2,	1	;Affect
+	mov	r11,	0	;JumpIfEqual 1
+	cmp	r11,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	r2,	0	;Affect
+l1 :	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	r1	;affectation des bits de poids faible du dividende
+	idiv	r2	;
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	r3,	eax	;
+	mov	eax,	r3	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret	;
diff --git a/test/pre-nasm-ref/prio34-1.pre-nasm b/test/pre-nasm-ref/prio34-1.pre-nasm
new file mode 100644
index 0000000..f2da2ea
--- /dev/null
+++ b/test/pre-nasm-ref/prio34-1.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	3
+	imul	@1,	4
+	mov	@2,	2
+	add	@2,	@1
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio34-2.pre-nasm b/test/pre-nasm-ref/prio34-2.pre-nasm
new file mode 100644
index 0000000..b33bca1
--- /dev/null
+++ b/test/pre-nasm-ref/prio34-2.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	2
+	imul	@1,	3
+	mov	@2,	@1
+	sub	@2,	4
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio34-3.pre-nasm b/test/pre-nasm-ref/prio34-3.pre-nasm
new file mode 100644
index 0000000..844ca42
--- /dev/null
+++ b/test/pre-nasm-ref/prio34-3.pre-nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	6	;affectation des bits de poids faible du dividende
+	mov	@11,	3
+	idiv	@11
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	@2,	@1
+	sub	@2,	72
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio34-4.pre-nasm b/test/pre-nasm-ref/prio34-4.pre-nasm
new file mode 100644
index 0000000..a7d2710
--- /dev/null
+++ b/test/pre-nasm-ref/prio34-4.pre-nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	edx,	0	;mise à 0 des bits de poids fort du dividende
+	mov	eax,	20	;affectation des bits de poids faible du dividende
+	mov	@11,	10
+	idiv	@11
+	mov	edx,	edx	;rend explicite l'utilisation de edx pour ne pas que sa valeur soit modifiée
+	mov	@1,	eax
+	mov	@2,	6
+	add	@2,	@1
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio45-1.pre-nasm b/test/pre-nasm-ref/prio45-1.pre-nasm
new file mode 100644
index 0000000..1fb4cb0
--- /dev/null
+++ b/test/pre-nasm-ref/prio45-1.pre-nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	0
+	add	@2,	1
+	mov	@1,	1	;Affect
+	mov	@9,	2	;JumpIfEqual 1
+	cmp	@9,	@2	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio45-2.pre-nasm b/test/pre-nasm-ref/prio45-2.pre-nasm
new file mode 100644
index 0000000..5e10950
--- /dev/null
+++ b/test/pre-nasm-ref/prio45-2.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	1
+	add	@2,	234
+	mov	@1,	1	;Affect
+	cmp	@2,	1	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio45-3.pre-nasm b/test/pre-nasm-ref/prio45-3.pre-nasm
new file mode 100644
index 0000000..d4ee4c1
--- /dev/null
+++ b/test/pre-nasm-ref/prio45-3.pre-nasm
@@ -0,0 +1,37 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	11
+	add	@2,	100
+	mov	@1,	1	;Affect
+	mov	@9,	12	;JumpIfLess 1
+	cmp	@9,	@2	;on passe par un registre temporaire
+	jl	l0	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio45-4.pre-nasm b/test/pre-nasm-ref/prio45-4.pre-nasm
new file mode 100644
index 0000000..3ffda46
--- /dev/null
+++ b/test/pre-nasm-ref/prio45-4.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	21
+	sub	@2,	21
+	mov	@1,	1	;Affect
+	cmp	@2,	1	;JumpIfLess 1
+	jl	l0	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio56-1.pre-nasm b/test/pre-nasm-ref/prio56-1.pre-nasm
new file mode 100644
index 0000000..add9a0d
--- /dev/null
+++ b/test/pre-nasm-ref/prio56-1.pre-nasm
@@ -0,0 +1,43 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	1	;Affect
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	2	;on passe par un registre temporaire
+	je	l2	;JumpIfEqual 2
+	mov	@2,	0	;Affect
+l2 :	cmp	@2,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	@10,	1	;JumpIfEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	@1,	1	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	0	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio56-2.pre-nasm b/test/pre-nasm-ref/prio56-2.pre-nasm
new file mode 100644
index 0000000..563d1d6
--- /dev/null
+++ b/test/pre-nasm-ref/prio56-2.pre-nasm
@@ -0,0 +1,43 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@2,	1	;Affect
+	mov	@9,	0	;JumpIfEqual 1
+	cmp	@9,	1	;on passe par un registre temporaire
+	je	l2	;JumpIfEqual 2
+	mov	@2,	0	;Affect
+l2 :	mov	@10,	1	;jumpIfNotEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	cmp	@2,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio67-1.pre-nasm b/test/pre-nasm-ref/prio67-1.pre-nasm
new file mode 100644
index 0000000..b615ead
--- /dev/null
+++ b/test/pre-nasm-ref/prio67-1.pre-nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@9,	0	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@10,	1	;JumpIfEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@2,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	@2,	0	;Affect
+l2 :	cmp	@2,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	@11,	1	;jumpIfNotEqual 1
+	cmp	@11,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/prio67-2.pre-nasm b/test/pre-nasm-ref/prio67-2.pre-nasm
new file mode 100644
index 0000000..872c059
--- /dev/null
+++ b/test/pre-nasm-ref/prio67-2.pre-nasm
@@ -0,0 +1,47 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@10,	0	;JumpIfEqual 1
+	cmp	@10,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	@2,	1	;Affect
+	jmp	l2	;Jump
+l3 :	mov	@2,	0	;Affect
+l2 :	mov	@11,	1	;jumpIfNotEqual 1
+	cmp	@11,	0	;on passe par un registre temporaire
+	jne	l1	;jumpIfNotEqual 2
+	cmp	@2,	0	;jumpIfNotEqual 1
+	jne	l1	;jumpIfNotEqual 2
+	mov	@1,	0	;Affect
+	jmp	l0	;Jump
+l1 :	mov	@1,	1	;Affect
+l0 :	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/rec1.pre-nasm b/test/pre-nasm-ref/rec1.pre-nasm
new file mode 100644
index 0000000..0e66dc7
--- /dev/null
+++ b/test/pre-nasm-ref/rec1.pre-nasm
@@ -0,0 +1,81 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	1	;Affect
+	cmp	dword [ebp+12],	1	;JumpIfEqual 1
+	je	l2	;JumpIfEqual 2
+	mov	@1,	0	;Affect
+l2 :	cmp	@1,	0	;JumpIfEqual 1
+	je	l0	;JumpIfEqual 2
+	mov	dword [ebp+8],	1	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+	jmp	l1	;Jump
+l0 :	mov	@3,	dword [ebp+12]
+	sub	@3,	1
+	push	@3	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@2	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	@4,	1
+	add	@4,	@2
+	mov	dword [ebp+8],	@4	;ecriture de la valeur de retour
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	push	100	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@5	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	mov	eax,	@5	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/si1.pre-nasm b/test/pre-nasm-ref/si1.pre-nasm
new file mode 100644
index 0000000..dc1e313
--- /dev/null
+++ b/test/pre-nasm-ref/si1.pre-nasm
@@ -0,0 +1,33 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	1	;JumpIfEqual 1
+	cmp	@7,	0	;on passe par un registre temporaire
+	je	l1	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/si2.pre-nasm b/test/pre-nasm-ref/si2.pre-nasm
new file mode 100644
index 0000000..4836fc5
--- /dev/null
+++ b/test/pre-nasm-ref/si2.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	0	;JumpIfEqual 1
+	cmp	@7,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/si3.pre-nasm b/test/pre-nasm-ref/si3.pre-nasm
new file mode 100644
index 0000000..c8bc795
--- /dev/null
+++ b/test/pre-nasm-ref/si3.pre-nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	1	;JumpIfEqual 1
+	cmp	@7,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/si4.pre-nasm b/test/pre-nasm-ref/si4.pre-nasm
new file mode 100644
index 0000000..cac66d9
--- /dev/null
+++ b/test/pre-nasm-ref/si4.pre-nasm
@@ -0,0 +1,38 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	0	;JumpIfEqual 1
+	cmp	@7,	0	;on passe par un registre temporaire
+	je	l0	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	jmp	l1	;Jump
+l0 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+l1 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/si5.pre-nasm b/test/pre-nasm-ref/si5.pre-nasm
new file mode 100644
index 0000000..1fda832
--- /dev/null
+++ b/test/pre-nasm-ref/si5.pre-nasm
@@ -0,0 +1,40 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	1	;JumpIfEqual 1
+	cmp	@7,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	mov	@9,	1	;JumpIfEqual 1
+	cmp	@9,	0	;on passe par un registre temporaire
+	je	l3	;JumpIfEqual 2
+	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+l3 :	mov	eax,	1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/sub1.pre-nasm b/test/pre-nasm-ref/sub1.pre-nasm
new file mode 100644
index 0000000..4500825
--- /dev/null
+++ b/test/pre-nasm-ref/sub1.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	10
+	sub	@1,	5
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/sub2.pre-nasm b/test/pre-nasm-ref/sub2.pre-nasm
new file mode 100644
index 0000000..4a4dd72
--- /dev/null
+++ b/test/pre-nasm-ref/sub2.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	7
+	sub	@1,	20
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/sub3.pre-nasm b/test/pre-nasm-ref/sub3.pre-nasm
new file mode 100644
index 0000000..3d2edcb
--- /dev/null
+++ b/test/pre-nasm-ref/sub3.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@1,	2
+	sub	@1,	1
+	mov	@2,	@1
+	sub	@2,	1
+	mov	eax,	@2	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tab1.pre-nasm b/test/pre-nasm-ref/tab1.pre-nasm
new file mode 100644
index 0000000..d436569
--- /dev/null
+++ b/test/pre-nasm-ref/tab1.pre-nasm
@@ -0,0 +1,50 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	12	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@7,	0
+	imul	@7,	4
+	mov	dword [tab+@7],	0	;Affect
+	mov	@8,	1
+	imul	@8,	4
+	mov	dword [tab+@8],	1	;Affect
+	mov	@9,	2
+	imul	@9,	4
+	mov	dword [tab+@9],	2	;Affect
+	mov	@11,	0
+	imul	@11,	4
+	mov	eax,	dword [tab+@11]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@13,	1
+	imul	@13,	4
+	mov	eax,	dword [tab+@13]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@15,	2
+	imul	@15,	4
+	mov	eax,	dword [tab+@15]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tab2.pre-nasm b/test/pre-nasm-ref/tab2.pre-nasm
new file mode 100644
index 0000000..cd9d7e3
--- /dev/null
+++ b/test/pre-nasm-ref/tab2.pre-nasm
@@ -0,0 +1,57 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	20	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	2	;Affect
+	mov	@1,	dword [ebp-4]
+	add	@1,	0
+	mov	@10,	@1
+	imul	@10,	4
+	mov	dword [tab+@10],	34	;Affect
+	mov	@2,	dword [ebp-4]
+	add	@2,	1
+	mov	@11,	@2
+	imul	@11,	4
+	mov	dword [tab+@11],	74	;Affect
+	mov	@3,	dword [ebp-4]
+	add	@3,	2
+	mov	@12,	@3
+	imul	@12,	4
+	mov	dword [tab+@12],	16	;Affect
+	mov	@14,	2
+	imul	@14,	4
+	mov	eax,	dword [tab+@14]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@16,	3
+	imul	@16,	4
+	mov	eax,	dword [tab+@16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@18,	4
+	imul	@18,	4
+	mov	eax,	dword [tab+@18]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tab3.pre-nasm b/test/pre-nasm-ref/tab3.pre-nasm
new file mode 100644
index 0000000..f285d1a
--- /dev/null
+++ b/test/pre-nasm-ref/tab3.pre-nasm
@@ -0,0 +1,60 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	20	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	2	;Affect
+	mov	dword [ebp-8],	0	;Affect
+	mov	@1,	dword [ebp-4]
+	add	@1,	dword [ebp-8]
+	mov	@10,	@1
+	imul	@10,	4
+	mov	dword [tab+@10],	34	;Affect
+	mov	dword [ebp-8],	1	;Affect
+	mov	@2,	dword [ebp-4]
+	add	@2,	dword [ebp-8]
+	mov	@11,	@2
+	imul	@11,	4
+	mov	dword [tab+@11],	74	;Affect
+	mov	dword [ebp-8],	2	;Affect
+	mov	@3,	dword [ebp-4]
+	add	@3,	dword [ebp-8]
+	mov	@12,	@3
+	imul	@12,	4
+	mov	dword [tab+@12],	16	;Affect
+	mov	@14,	2
+	imul	@14,	4
+	mov	eax,	dword [tab+@14]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@16,	3
+	imul	@16,	4
+	mov	eax,	dword [tab+@16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@18,	4
+	imul	@18,	4
+	mov	eax,	dword [tab+@18]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tab4.pre-nasm b/test/pre-nasm-ref/tab4.pre-nasm
new file mode 100644
index 0000000..19f610c
--- /dev/null
+++ b/test/pre-nasm-ref/tab4.pre-nasm
@@ -0,0 +1,56 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	12	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@8,	0
+	imul	@8,	4
+	mov	dword [tab+@8],	1	;Affect
+	mov	@10,	0
+	imul	@10,	4
+	mov	@9,	dword [tab+@10]
+	imul	@9,	4
+	mov	dword [tab+@9],	12	;Affect
+	mov	@11,	0
+	imul	@11,	4
+	mov	@1,	dword [tab+@11]
+	add	@1,	1
+	mov	@12,	@1
+	imul	@12,	4
+	mov	dword [tab+@12],	13	;Affect
+	mov	@14,	0
+	imul	@14,	4
+	mov	eax,	dword [tab+@14]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@16,	1
+	imul	@16,	4
+	mov	eax,	dword [tab+@16]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@18,	2
+	imul	@18,	4
+	mov	eax,	dword [tab+@18]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tantque1.pre-nasm b/test/pre-nasm-ref/tantque1.pre-nasm
new file mode 100644
index 0000000..fa993f8
--- /dev/null
+++ b/test/pre-nasm-ref/tantque1.pre-nasm
@@ -0,0 +1,44 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+l0 :	mov	@1,	1	;Affect
+	mov	@9,	0	;JumpIfLess 1
+	cmp	@9,	dword [ebp-4]	;on passe par un registre temporaire
+	jl	l2	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l2 :	cmp	@1,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@2,	dword [ebp-4]
+	sub	@2,	1
+	mov	dword [ebp-4],	@2	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tantque2.pre-nasm b/test/pre-nasm-ref/tantque2.pre-nasm
new file mode 100644
index 0000000..02a466d
--- /dev/null
+++ b/test/pre-nasm-ref/tantque2.pre-nasm
@@ -0,0 +1,54 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	0	;Affect
+l0 :	mov	@1,	1	;Affect
+	cmp	dword [ebp-4],	4	;JumpIfLess 1
+	jl	l2	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l2 :	cmp	@1,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	dword [ebp-8],	0	;Affect
+l3 :	mov	@2,	1	;Affect
+	cmp	dword [ebp-8],	4	;JumpIfLess 1
+	jl	l5	;JumpIfLess 2
+	mov	@2,	0	;Affect
+l5 :	cmp	@2,	0	;JumpIfEqual 1
+	je	l4	;JumpIfEqual 2
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-8]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@3,	dword [ebp-8]
+	add	@3,	1
+	mov	dword [ebp-8],	@3	;Affect
+	jmp	l3	;Jump
+l4 :	mov	@4,	dword [ebp-4]
+	add	@4,	1
+	mov	dword [ebp-4],	@4	;Affect
+	jmp	l0	;Jump
+l1 :	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/tri.pre-nasm b/test/pre-nasm-ref/tri.pre-nasm
new file mode 100644
index 0000000..382fef7
--- /dev/null
+++ b/test/pre-nasm-ref/tri.pre-nasm
@@ -0,0 +1,214 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+tab :	resd	40	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+initialiser :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	@22,	0
+	imul	@22,	4
+	mov	dword [tab+@22],	8	;Affect
+	mov	@23,	1
+	imul	@23,	4
+	mov	dword [tab+@23],	6	;Affect
+	mov	@24,	2
+	imul	@24,	4
+	mov	dword [tab+@24],	9	;Affect
+	mov	@25,	3
+	imul	@25,	4
+	mov	dword [tab+@25],	9	;Affect
+	mov	@26,	4
+	imul	@26,	4
+	mov	dword [tab+@26],	4	;Affect
+	mov	@27,	5
+	imul	@27,	4
+	mov	dword [tab+@27],	2	;Affect
+	mov	@28,	6
+	imul	@28,	4
+	mov	dword [tab+@28],	3	;Affect
+	mov	@29,	7
+	imul	@29,	4
+	mov	dword [tab+@29],	1	;Affect
+	mov	@30,	8
+	imul	@30,	4
+	mov	dword [tab+@30],	4	;Affect
+	mov	@31,	9
+	imul	@31,	4
+	mov	dword [tab+@31],	5	;Affect
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+afficher :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	0	;Affect
+l0 :	mov	@1,	1	;Affect
+	mov	@40,	dword [ebp-4]	;JumpIfLess 1
+	cmp	@40,	dword [ebp+12]	;on passe par un registre temporaire
+	jl	l2	;JumpIfLess 2
+	mov	@1,	0	;Affect
+l2 :	cmp	@1,	0	;JumpIfEqual 1
+	je	l1	;JumpIfEqual 2
+	mov	@42,	dword [ebp-4]
+	imul	@42,	4
+	mov	eax,	dword [tab+@42]	;Write 1
+	call	iprintLF	;Write 2
+	mov	@2,	dword [ebp-4]
+	add	@2,	1
+	mov	dword [ebp-4],	@2	;Affect
+	jmp	l0	;Jump
+l1 :	mov	eax,	0	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+echanger :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	@52,	dword [ebp+12]
+	imul	@52,	4
+	mov	@53,	dword [tab+@52]	;Affect
+	mov	dword [ebp-4],	@53	;on passe par un registre temporaire
+	mov	@54,	dword [ebp+16]
+	imul	@54,	4
+	mov	@55,	dword [ebp+12]
+	imul	@55,	4
+	mov	@56,	dword [tab+@54]	;Affect
+	mov	dword [tab+@55],	@56	;on passe par un registre temporaire
+	mov	@57,	dword [ebp+16]
+	imul	@57,	4
+	mov	@58,	dword [ebp-4]	;Affect
+	mov	dword [tab+@57],	@58	;on passe par un registre temporaire
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+trier :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	12	;allocation des variables locales
+	mov	@67,	dword [ebp+12]	;Affect
+	mov	dword [ebp-12],	@67	;on passe par un registre temporaire
+	mov	dword [ebp-4],	1	;Affect
+l3 :	mov	@3,	1	;Affect
+	cmp	dword [ebp-4],	1	;JumpIfEqual 1
+	je	l5	;JumpIfEqual 2
+	mov	@3,	0	;Affect
+l5 :	cmp	@3,	0	;JumpIfEqual 1
+	je	l4	;JumpIfEqual 2
+	mov	dword [ebp-4],	0	;Affect
+	mov	dword [ebp-8],	0	;Affect
+l6 :	mov	@5,	dword [ebp-12]
+	sub	@5,	1
+	mov	@4,	1	;Affect
+	cmp	dword [ebp-8],	@5	;JumpIfLess 1
+	jl	l8	;JumpIfLess 2
+	mov	@4,	0	;Affect
+l8 :	cmp	@4,	0	;JumpIfEqual 1
+	je	l7	;JumpIfEqual 2
+	mov	@7,	dword [ebp-8]
+	add	@7,	1
+	mov	@6,	1	;Affect
+	mov	@68,	@7
+	imul	@68,	4
+	mov	@69,	dword [ebp-8]
+	imul	@69,	4
+	mov	@70,	dword [tab+@68]	;JumpIfLess 1
+	cmp	@70,	dword [tab+@69]	;on passe par un registre temporaire
+	jl	l11	;JumpIfLess 2
+	mov	@6,	0	;Affect
+l11 :	cmp	@6,	0	;JumpIfEqual 1
+	je	l10	;JumpIfEqual 2
+	push	dword [ebp-8]	;Param
+	mov	@9,	dword [ebp-8]
+	add	@9,	1
+	push	@9	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	echanger
+	pop	@8	;récupération de la valeur de retour
+	add	esp,	8	;désallocation des arguments
+	mov	dword [ebp-4],	1	;Affect
+l10 :	mov	@10,	dword [ebp-8]
+	add	@10,	1
+	mov	dword [ebp-8],	@10	;Affect
+	jmp	l6	;Jump
+l7 :	mov	@11,	dword [ebp-12]
+	sub	@11,	1
+	mov	dword [ebp-12],	@11	;Affect
+	jmp	l3	;Jump
+l4 :	add	esp,	12	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	initialiser
+	pop	@12	;récupération de la valeur de retour
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	afficher
+	pop	@13	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	trier
+	pop	@14	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	push	10	;Param
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	afficher
+	pop	@15	;récupération de la valeur de retour
+	add	esp,	4	;désallocation des arguments
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varglob1.pre-nasm b/test/pre-nasm-ref/varglob1.pre-nasm
new file mode 100644
index 0000000..99d5927
--- /dev/null
+++ b/test/pre-nasm-ref/varglob1.pre-nasm
@@ -0,0 +1,32 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+variable :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [variable],	6834	;Affect
+	mov	eax,	dword [variable]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varglob2.pre-nasm b/test/pre-nasm-ref/varglob2.pre-nasm
new file mode 100644
index 0000000..a4e84c3
--- /dev/null
+++ b/test/pre-nasm-ref/varglob2.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+variable :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [variable],	10	;Affect
+	mov	@1,	dword [variable]
+	add	@1,	50
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varglob3.pre-nasm b/test/pre-nasm-ref/varglob3.pre-nasm
new file mode 100644
index 0000000..8523503
--- /dev/null
+++ b/test/pre-nasm-ref/varglob3.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var2 :	resd	4	;variable globale
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	10	;Affect
+	mov	dword [var2],	34	;Affect
+	mov	eax,	dword [var1]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [var2]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varglob4.pre-nasm b/test/pre-nasm-ref/varglob4.pre-nasm
new file mode 100644
index 0000000..8ca2926
--- /dev/null
+++ b/test/pre-nasm-ref/varglob4.pre-nasm
@@ -0,0 +1,36 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var2 :	resd	4	;variable globale
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	10	;Affect
+	mov	dword [var2],	34	;Affect
+	mov	@1,	dword [var1]
+	add	@1,	dword [var2]
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varloc1.pre-nasm b/test/pre-nasm-ref/varloc1.pre-nasm
new file mode 100644
index 0000000..2b2479e
--- /dev/null
+++ b/test/pre-nasm-ref/varloc1.pre-nasm
@@ -0,0 +1,31 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	6834	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varloc2.pre-nasm b/test/pre-nasm-ref/varloc2.pre-nasm
new file mode 100644
index 0000000..8c40b74
--- /dev/null
+++ b/test/pre-nasm-ref/varloc2.pre-nasm
@@ -0,0 +1,33 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	@1,	dword [ebp-4]
+	add	@1,	50
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varloc3.pre-nasm b/test/pre-nasm-ref/varloc3.pre-nasm
new file mode 100644
index 0000000..bd7329d
--- /dev/null
+++ b/test/pre-nasm-ref/varloc3.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	dword [ebp-8],	30	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	mov	eax,	dword [ebp-8]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varloc4.pre-nasm b/test/pre-nasm-ref/varloc4.pre-nasm
new file mode 100644
index 0000000..01d032c
--- /dev/null
+++ b/test/pre-nasm-ref/varloc4.pre-nasm
@@ -0,0 +1,34 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	8	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	dword [ebp-8],	30	;Affect
+	mov	@1,	dword [ebp-4]
+	add	@1,	dword [ebp-8]
+	mov	eax,	@1	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	8	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/pre-nasm-ref/varloc5.pre-nasm b/test/pre-nasm-ref/varloc5.pre-nasm
new file mode 100644
index 0000000..613c517
--- /dev/null
+++ b/test/pre-nasm-ref/varloc5.pre-nasm
@@ -0,0 +1,52 @@
+%include	'io.asm'
+
+section	.bss
+sinput :	resb	255	;reserve a 255 byte space in memory for the users input string
+var1 :	resd	4	;variable globale
+
+section	.text
+global _start
+_start:
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	main
+	pop	@0	;récupération de la valeur de retour
+	mov	ebx,	0	; valeur de retour du programme
+	mov	eax,	1	; code de sortie
+	int 0x80
+f :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	4	;allocation des variables locales
+	mov	dword [ebp-4],	10	;Affect
+	mov	eax,	dword [ebp-4]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	4	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
+main :	push	ebp	;sauvegarde la valeur de ebp
+	mov	ebp,	esp	;nouvelle valeur de ebp
+	push	eax	;sauvegarde de eax
+	push	ebx	;sauvegarde de ebx
+	push	ecx	;sauvegarde de ecx
+	push	edx	;sauvegarde de edx
+	sub	esp,	0	;allocation des variables locales
+	mov	dword [var1],	20	;Affect
+	sub	esp,	4	;allocation mémoire pour la valeur de retour
+	call	f
+	pop	@1	;récupération de la valeur de retour
+	mov	eax,	dword [var1]	;Write 1
+	call	iprintLF	;Write 2
+	add	esp,	0	;désallocation des variables locales
+	pop	edx	;restaure edx
+	pop	ecx	;restaure ecx
+	pop	ebx	;restaure ebx
+	pop	eax	;restaure eax
+	pop	ebp	;restaure la valeur de ebp
+	ret
diff --git a/test/sa-ref/add1.sa b/test/sa-ref/add1.sa
new file mode 100644
index 0000000..5d44ab1
--- /dev/null
+++ b/test/sa-ref/add1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAdd 3 10)) null))) null))
diff --git a/test/sa-ref/add2.sa b/test/sa-ref/add2.sa
new file mode 100644
index 0000000..1eaaf82
--- /dev/null
+++ b/test/sa-ref/add2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAdd (SaExpAdd 2 4) 8)) null))) null))
diff --git a/test/sa-ref/affect1.sa b/test/sa-ref/affect1.sa
new file mode 100644
index 0000000..f1ab720
--- /dev/null
+++ b/test/sa-ref/affect1.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple a entier) null) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple a) 1) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) null)))) null))
diff --git a/test/sa-ref/affect2.sa b/test/sa-ref/affect2.sa
new file mode 100644
index 0000000..c385bfe
--- /dev/null
+++ b/test/sa-ref/affect2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple a entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple a) 1) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) null)))) null))
diff --git a/test/sa-ref/affect3.sa b/test/sa-ref/affect3.sa
new file mode 100644
index 0000000..8a9fc32
--- /dev/null
+++ b/test/sa-ref/affect3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f nul (SaLDecVar (SaDecVarSimple a entier) null) null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple a) 1) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) null)))) (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple a entier) null) (SaInstBloc (SaLInst (SaAppel f (SaLExp 3 null)) null))) null)))
diff --git a/test/sa-ref/and1.sa b/test/sa-ref/and1.sa
new file mode 100644
index 0000000..441514f
--- /dev/null
+++ b/test/sa-ref/and1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd vrai vrai)) null))) null))
diff --git a/test/sa-ref/and2.sa b/test/sa-ref/and2.sa
new file mode 100644
index 0000000..b973e3f
--- /dev/null
+++ b/test/sa-ref/and2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd vrai faux)) null))) null))
diff --git a/test/sa-ref/and3.sa b/test/sa-ref/and3.sa
new file mode 100644
index 0000000..64e377e
--- /dev/null
+++ b/test/sa-ref/and3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd faux vrai)) null))) null))
diff --git a/test/sa-ref/and4.sa b/test/sa-ref/and4.sa
new file mode 100644
index 0000000..af3a8c1
--- /dev/null
+++ b/test/sa-ref/and4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd faux faux)) null))) null))
diff --git a/test/sa-ref/and5.sa b/test/sa-ref/and5.sa
new file mode 100644
index 0000000..67fbb82
--- /dev/null
+++ b/test/sa-ref/and5.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd (SaExpAnd vrai faux) vrai)) null))) null))
diff --git a/test/sa-ref/appel-param1.sa b/test/sa-ref/appel-param1.sa
new file mode 100644
index 0000000..f8f48cd
--- /dev/null
+++ b/test/sa-ref/appel-param1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f nul (SaLDecVar (SaDecVarSimple a entier) null) null (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f (SaLExp 1 null)) null))) null)))
diff --git a/test/sa-ref/appel-param2.sa b/test/sa-ref/appel-param2.sa
new file mode 100644
index 0000000..f39770f
--- /dev/null
+++ b/test/sa-ref/appel-param2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f nul (SaLDecVar (SaDecVarSimple a entier) (SaLDecVar (SaDecVarSimple b entier) null)) null (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple b))) null)))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f (SaLExp 1 (SaLExp 456 null))) null))) null)))
diff --git a/test/sa-ref/appel-param3.sa b/test/sa-ref/appel-param3.sa
new file mode 100644
index 0000000..d022a66
--- /dev/null
+++ b/test/sa-ref/appel-param3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f nul (SaLDecVar (SaDecVarSimple a entier) (SaLDecVar (SaDecVarSimple b entier) (SaLDecVar (SaDecVarSimple c entier) (SaLDecVar (SaDecVarSimple d entier) (SaLDecVar (SaDecVarSimple e entier) null))))) null (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple b))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple c))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple d))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple e))) null))))))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f (SaLExp 1 (SaLExp 2 (SaLExp 3 (SaLExp 4 (SaLExp 5 null)))))) null))) null)))
diff --git a/test/sa-ref/appel-retour1.sa b/test/sa-ref/appel-retour1.sa
new file mode 100644
index 0000000..7bb6f84
--- /dev/null
+++ b/test/sa-ref/appel-retour1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f entier (SaLDecVar (SaDecVarSimple a entier) null) null (SaInstBloc (SaLInst (SaInstRetour (SaExpVar (SaVarSimple a))) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAppel (SaAppel f (SaLExp 3712 null)))) null))) null)))
diff --git a/test/sa-ref/appel1.sa b/test/sa-ref/appel1.sa
new file mode 100644
index 0000000..6de41b4
--- /dev/null
+++ b/test/sa-ref/appel1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f nul null null (SaInstBloc (SaLInst (SaInstEcriture 1) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f null) null))) null)))
diff --git a/test/sa-ref/appel2.sa b/test/sa-ref/appel2.sa
new file mode 100644
index 0000000..891435b
--- /dev/null
+++ b/test/sa-ref/appel2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc g nul null null (SaInstBloc (SaLInst (SaInstEcriture 2) null))) (SaLDecFonc (SaDecFonc f nul null null (SaInstBloc (SaLInst (SaInstEcriture 1) (SaLInst (SaAppel g null) null)))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f null) null))) null))))
diff --git a/test/sa-ref/appel3.sa b/test/sa-ref/appel3.sa
new file mode 100644
index 0000000..63ad386
--- /dev/null
+++ b/test/sa-ref/appel3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc g nul null null (SaInstBloc (SaLInst (SaInstEcriture 2) null))) (SaLDecFonc (SaDecFonc f nul null null (SaInstBloc (SaLInst (SaInstEcriture 1) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel f null) (SaLInst (SaAppel g null) null)))) null))))
diff --git a/test/sa-ref/div1.sa b/test/sa-ref/div1.sa
new file mode 100644
index 0000000..c688935
--- /dev/null
+++ b/test/sa-ref/div1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpDiv 4 2)) null))) null))
diff --git a/test/sa-ref/div2.sa b/test/sa-ref/div2.sa
new file mode 100644
index 0000000..d503166
--- /dev/null
+++ b/test/sa-ref/div2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpDiv 0 712)) null))) null))
diff --git a/test/sa-ref/div3.sa b/test/sa-ref/div3.sa
new file mode 100644
index 0000000..a2c6e4c
--- /dev/null
+++ b/test/sa-ref/div3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpDiv (SaExpDiv 4 2) 2)) null))) null))
diff --git a/test/sa-ref/div4.sa b/test/sa-ref/div4.sa
new file mode 100644
index 0000000..08acfe9
--- /dev/null
+++ b/test/sa-ref/div4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpDiv 2 3)) null))) null))
diff --git a/test/sa-ref/ecrire1.sa b/test/sa-ref/ecrire1.sa
new file mode 100644
index 0000000..49def4a
--- /dev/null
+++ b/test/sa-ref/ecrire1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture 3456) null))) null))
diff --git a/test/sa-ref/ecrire2.sa b/test/sa-ref/ecrire2.sa
new file mode 100644
index 0000000..1e1054c
--- /dev/null
+++ b/test/sa-ref/ecrire2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture 0) null))) null))
diff --git a/test/sa-ref/egal1.sa b/test/sa-ref/egal1.sa
new file mode 100644
index 0000000..1453078
--- /dev/null
+++ b/test/sa-ref/egal1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpEqual 123 123)) null))) null))
diff --git a/test/sa-ref/egal2.sa b/test/sa-ref/egal2.sa
new file mode 100644
index 0000000..d049f59
--- /dev/null
+++ b/test/sa-ref/egal2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpEqual 412 34)) null))) null))
diff --git a/test/sa-ref/egal3.sa b/test/sa-ref/egal3.sa
new file mode 100644
index 0000000..cb1c0c4
--- /dev/null
+++ b/test/sa-ref/egal3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpEqual (SaExpEqual 2 2) vrai)) null))) null))
diff --git a/test/sa-ref/err1.sa b/test/sa-ref/err1.sa
new file mode 100644
index 0000000..c796063
--- /dev/null
+++ b/test/sa-ref/err1.sa
@@ -0,0 +1,18 @@
+<SaProg>
+ <SaLDec>
+  <SaDecFonc>
+   <nom>main</nom>
+   <SaInstBloc>
+    <SaLInst>
+     <SaInstEcriture>
+      <SaExpVar>
+       <SaVarSimple>
+        <nom>var1</nom>
+       </SaVarSimple>
+      </SaExpVar>
+     </SaInstEcriture>
+    </SaLInst>
+   </SaInstBloc>
+  </SaDecFonc>
+ </SaLDec>
+</SaProg>
diff --git a/test/sa-ref/err2.sa b/test/sa-ref/err2.sa
new file mode 100644
index 0000000..4409c76
--- /dev/null
+++ b/test/sa-ref/err2.sa
@@ -0,0 +1,13 @@
+<SaProg>
+ <SaLDec>
+  <SaDecFonc>
+   <nom>main</nom>
+   <SaInstBloc>
+    <SaLInst>
+     <SaAppel>
+     </SaAppel>
+    </SaLInst>
+   </SaInstBloc>
+  </SaDecFonc>
+ </SaLDec>
+</SaProg>
diff --git a/test/sa-ref/err3.sa b/test/sa-ref/err3.sa
new file mode 100644
index 0000000..5b42731
--- /dev/null
+++ b/test/sa-ref/err3.sa
@@ -0,0 +1,23 @@
+<SaProg>
+ <SaLDec>
+  <SaDecFonc>
+   <nom>f</nom>
+   <SaLDec>
+    <SaDecVar>
+     <nom>a</nom>
+    </SaDecVar>
+   </SaLDec>
+  </SaDecFonc>
+  <SaLDec>
+   <SaDecFonc>
+    <nom>main</nom>
+    <SaInstBloc>
+     <SaLInst>
+      <SaAppel>
+      </SaAppel>
+     </SaLInst>
+    </SaInstBloc>
+   </SaDecFonc>
+  </SaLDec>
+ </SaLDec>
+</SaProg>
diff --git a/test/sa-ref/err4.sa b/test/sa-ref/err4.sa
new file mode 100644
index 0000000..2044b50
--- /dev/null
+++ b/test/sa-ref/err4.sa
@@ -0,0 +1,33 @@
+<SaProg>
+ <SaLDec>
+  <SaDecFonc>
+   <nom>f</nom>
+   <SaLDec>
+    <SaDecVar>
+     <nom>a</nom>
+    </SaDecVar>
+   </SaLDec>
+   <SaLDec>
+    <SaDecVar>
+     <nom>a</nom>
+    </SaDecVar>
+   </SaLDec>
+  </SaDecFonc>
+  <SaLDec>
+   <SaDecFonc>
+    <nom>main</nom>
+    <SaInstBloc>
+     <SaLInst>
+      <SaAppel>
+       <SaLExp>
+        <SaExpInt>
+         <val>1</val>
+        </SaExpInt>
+       </SaLExp>
+      </SaAppel>
+     </SaLInst>
+    </SaInstBloc>
+   </SaDecFonc>
+  </SaLDec>
+ </SaLDec>
+</SaProg>
diff --git a/test/sa-ref/err5.sa b/test/sa-ref/err5.sa
new file mode 100644
index 0000000..f8226c8
--- /dev/null
+++ b/test/sa-ref/err5.sa
@@ -0,0 +1,39 @@
+<SaProg>
+ <SaLDec>
+  <SaDecFonc>
+   <nom>f</nom>
+   <SaInstBloc>
+    <SaLInst>
+     <SaInstEcriture>
+      <SaExpInt>
+       <val>1</val>
+      </SaExpInt>
+     </SaInstEcriture>
+    </SaLInst>
+   </SaInstBloc>
+  </SaDecFonc>
+  <SaLDec>
+   <SaDecFonc>
+    <nom>main</nom>
+    <SaLDec>
+     <SaDecVar>
+      <nom>f</nom>
+     </SaDecVar>
+    </SaLDec>
+    <SaInstBloc>
+     <SaLInst>
+      <SaInstAffect>
+       <SaVarSimple>
+        <nom>f</nom>
+       </SaVarSimple>
+       <SaExpAppel>
+        <SaAppel>
+        </SaAppel>
+       </SaExpAppel>
+      </SaInstAffect>
+     </SaLInst>
+    </SaInstBloc>
+   </SaDecFonc>
+  </SaLDec>
+ </SaLDec>
+</SaProg>
diff --git a/test/sa-ref/fibo.sa b/test/sa-ref/fibo.sa
new file mode 100644
index 0000000..407ebde
--- /dev/null
+++ b/test/sa-ref/fibo.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc fibo entier (SaLDecVar (SaDecVarSimple n entier) null) null (SaInstBloc (SaLInst (SaInstSi (SaExpInf (SaExpVar (SaVarSimple n)) 2) (SaInstBloc (SaLInst (SaInstRetour 1) null)) (SaInstBloc (SaLInst (SaInstRetour (SaExpAdd (SaExpAppel (SaAppel fibo (SaLExp (SaExpSub (SaExpVar (SaVarSimple n)) 1) null))) (SaExpAppel (SaAppel fibo (SaLExp (SaExpSub (SaExpVar (SaVarSimple n)) 2) null))))) null))) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAppel (SaAppel fibo (SaLExp 9 null)))) null))) null)))
diff --git a/test/sa-ref/inf1.sa b/test/sa-ref/inf1.sa
new file mode 100644
index 0000000..f5a5868
--- /dev/null
+++ b/test/sa-ref/inf1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpInf 3 3)) null))) null))
diff --git a/test/sa-ref/inf2.sa b/test/sa-ref/inf2.sa
new file mode 100644
index 0000000..c66c665
--- /dev/null
+++ b/test/sa-ref/inf2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpInf 4 1)) null))) null))
diff --git a/test/sa-ref/inf3.sa b/test/sa-ref/inf3.sa
new file mode 100644
index 0000000..30eb35c
--- /dev/null
+++ b/test/sa-ref/inf3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpInf 312 475)) null))) null))
diff --git a/test/sa-ref/inf4.sa b/test/sa-ref/inf4.sa
new file mode 100644
index 0000000..58c322d
--- /dev/null
+++ b/test/sa-ref/inf4.sa
@@ -0,0 +1,19 @@
+<programme type="SaProg">
+ <fonctions type="SaLDec">
+  <tete type="SaDecFonc" nom="main">
+   <corps type="SaInstBloc">
+    <val type="SaLInst">
+     <tete type="SaInstEcriture">
+      <arg type="SaExpInf">
+       <op1 type="SaExpInf">
+        <op1 type="SaExpInt" val="3"/>
+        <op2 type="SaExpInt" val="2"/>
+       </op1>
+       <op2 type="SaExpInt" val="1"/>
+      </arg>
+     </tete>
+    </val>
+   </corps>
+  </tete>
+ </fonctions>
+</programme>
diff --git a/test/sa-ref/mult1.sa b/test/sa-ref/mult1.sa
new file mode 100644
index 0000000..d743995
--- /dev/null
+++ b/test/sa-ref/mult1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpMult 2 3)) null))) null))
diff --git a/test/sa-ref/mult2.sa b/test/sa-ref/mult2.sa
new file mode 100644
index 0000000..695c66c
--- /dev/null
+++ b/test/sa-ref/mult2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpMult 0 321)) null))) null))
diff --git a/test/sa-ref/mult3.sa b/test/sa-ref/mult3.sa
new file mode 100644
index 0000000..012c0a6
--- /dev/null
+++ b/test/sa-ref/mult3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpMult (SaExpMult 3 3) 2)) null))) null))
diff --git a/test/sa-ref/not1.sa b/test/sa-ref/not1.sa
new file mode 100644
index 0000000..2f6a8a2
--- /dev/null
+++ b/test/sa-ref/not1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpNot vrai)) null))) null))
diff --git a/test/sa-ref/not2.sa b/test/sa-ref/not2.sa
new file mode 100644
index 0000000..d955f61
--- /dev/null
+++ b/test/sa-ref/not2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpNot faux)) null))) null))
diff --git a/test/sa-ref/not3.sa b/test/sa-ref/not3.sa
new file mode 100644
index 0000000..1c04c2a
--- /dev/null
+++ b/test/sa-ref/not3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpNot (SaExpNot faux))) null))) null))
diff --git a/test/sa-ref/or1.sa b/test/sa-ref/or1.sa
new file mode 100644
index 0000000..fb4fe3c
--- /dev/null
+++ b/test/sa-ref/or1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr vrai vrai)) null))) null))
diff --git a/test/sa-ref/or2.sa b/test/sa-ref/or2.sa
new file mode 100644
index 0000000..02cc96c
--- /dev/null
+++ b/test/sa-ref/or2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr vrai faux)) null))) null))
diff --git a/test/sa-ref/or3.sa b/test/sa-ref/or3.sa
new file mode 100644
index 0000000..a023eef
--- /dev/null
+++ b/test/sa-ref/or3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr faux vrai)) null))) null))
diff --git a/test/sa-ref/or4.sa b/test/sa-ref/or4.sa
new file mode 100644
index 0000000..1b585b4
--- /dev/null
+++ b/test/sa-ref/or4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr faux faux)) null))) null))
diff --git a/test/sa-ref/or5.sa b/test/sa-ref/or5.sa
new file mode 100644
index 0000000..c0030a3
--- /dev/null
+++ b/test/sa-ref/or5.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr (SaExpOr faux vrai) faux)) null))) null))
diff --git a/test/sa-ref/parenth1.sa b/test/sa-ref/parenth1.sa
new file mode 100644
index 0000000..fba5b65
--- /dev/null
+++ b/test/sa-ref/parenth1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture 1) null))) null))
diff --git a/test/sa-ref/parenth2.sa b/test/sa-ref/parenth2.sa
new file mode 100644
index 0000000..ddf44a1
--- /dev/null
+++ b/test/sa-ref/parenth2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture 2) null))) null))
diff --git a/test/sa-ref/prio23-1.sa b/test/sa-ref/prio23-1.sa
new file mode 100644
index 0000000..4a35127
--- /dev/null
+++ b/test/sa-ref/prio23-1.sa
@@ -0,0 +1,18 @@
+<programme type="SaProg">
+ <fonctions type="SaLDec">
+  <tete type="SaDecFonc" nom="main">
+   <corps type="SaInstBloc">
+    <val type="SaLInst">
+     <tete type="SaInstEcriture">
+      <arg type="SaExpMult">
+       <op1 type="SaExpNot">
+        <op1 type="SaExpInt" val="0"/>
+       </op1>
+       <op2 type="SaExpInt" val="10"/>
+      </arg>
+     </tete>
+    </val>
+   </corps>
+  </tete>
+ </fonctions>
+</programme>
diff --git a/test/sa-ref/prio23-2.sa b/test/sa-ref/prio23-2.sa
new file mode 100644
index 0000000..31f61f2
--- /dev/null
+++ b/test/sa-ref/prio23-2.sa
@@ -0,0 +1,18 @@
+<programme type="SaProg">
+ <fonctions type="SaLDec">
+  <tete type="SaDecFonc" nom="main">
+   <corps type="SaInstBloc">
+    <val type="SaLInst">
+     <tete type="SaInstEcriture">
+      <arg type="SaExpMult">
+       <op1 type="SaExpInt" val="3"/>
+       <op2 type="SaExpNot">
+        <op1 type="SaExpInt" val="10"/>
+       </op2>
+      </arg>
+     </tete>
+    </val>
+   </corps>
+  </tete>
+ </fonctions>
+</programme>
diff --git a/test/sa-ref/prio23-3.sa b/test/sa-ref/prio23-3.sa
new file mode 100644
index 0000000..b5c6158
--- /dev/null
+++ b/test/sa-ref/prio23-3.sa
@@ -0,0 +1,18 @@
+<programme type="SaProg">
+ <fonctions type="SaLDec">
+  <tete type="SaDecFonc" nom="main">
+   <corps type="SaInstBloc">
+    <val type="SaLInst">
+     <tete type="SaInstEcriture">
+      <arg type="SaExpDiv">
+       <op1 type="SaExpNot">
+        <op1 type="SaExpInt" val="0"/>
+       </op1>
+       <op2 type="SaExpInt" val="1"/>
+      </arg>
+     </tete>
+    </val>
+   </corps>
+  </tete>
+ </fonctions>
+</programme>
diff --git a/test/sa-ref/prio23-4.sa b/test/sa-ref/prio23-4.sa
new file mode 100644
index 0000000..05c8c94
--- /dev/null
+++ b/test/sa-ref/prio23-4.sa
@@ -0,0 +1,20 @@
+<programme type="SaProg">
+ <fonctions type="SaLDec">
+  <tete type="SaDecFonc" nom="main">
+   <corps type="SaInstBloc">
+    <val type="SaLInst">
+     <tete type="SaInstEcriture">
+      <arg type="SaExpDiv">
+       <op1 type="SaExpNot">
+        <op1 type="SaExpInt" val="1"/>
+       </op1>
+       <op2 type="SaExpNot">
+        <op1 type="SaExpInt" val="0"/>
+       </op2>
+      </arg>
+     </tete>
+    </val>
+   </corps>
+  </tete>
+ </fonctions>
+</programme>
diff --git a/test/sa-ref/prio34-1.sa b/test/sa-ref/prio34-1.sa
new file mode 100644
index 0000000..14486ae
--- /dev/null
+++ b/test/sa-ref/prio34-1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAdd 2 (SaExpMult 3 4))) null))) null))
diff --git a/test/sa-ref/prio34-2.sa b/test/sa-ref/prio34-2.sa
new file mode 100644
index 0000000..4391e90
--- /dev/null
+++ b/test/sa-ref/prio34-2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpSub (SaExpMult 2 3) 4)) null))) null))
diff --git a/test/sa-ref/prio34-3.sa b/test/sa-ref/prio34-3.sa
new file mode 100644
index 0000000..93274cf
--- /dev/null
+++ b/test/sa-ref/prio34-3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpSub (SaExpDiv 6 3) 72)) null))) null))
diff --git a/test/sa-ref/prio34-4.sa b/test/sa-ref/prio34-4.sa
new file mode 100644
index 0000000..d0d61d7
--- /dev/null
+++ b/test/sa-ref/prio34-4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAdd 6 (SaExpDiv 20 10))) null))) null))
diff --git a/test/sa-ref/prio45-1.sa b/test/sa-ref/prio45-1.sa
new file mode 100644
index 0000000..74404e6
--- /dev/null
+++ b/test/sa-ref/prio45-1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpEqual 2 (SaExpAdd 0 1))) null))) null))
diff --git a/test/sa-ref/prio45-2.sa b/test/sa-ref/prio45-2.sa
new file mode 100644
index 0000000..7225d27
--- /dev/null
+++ b/test/sa-ref/prio45-2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpEqual (SaExpAdd 1 234) 1)) null))) null))
diff --git a/test/sa-ref/prio45-3.sa b/test/sa-ref/prio45-3.sa
new file mode 100644
index 0000000..f5fb6f0
--- /dev/null
+++ b/test/sa-ref/prio45-3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpInf 12 (SaExpAdd 11 100))) null))) null))
diff --git a/test/sa-ref/prio45-4.sa b/test/sa-ref/prio45-4.sa
new file mode 100644
index 0000000..4613fe1
--- /dev/null
+++ b/test/sa-ref/prio45-4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpInf (SaExpSub 21 21) 1)) null))) null))
diff --git a/test/sa-ref/prio56-1.sa b/test/sa-ref/prio56-1.sa
new file mode 100644
index 0000000..2b698f4
--- /dev/null
+++ b/test/sa-ref/prio56-1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAnd (SaExpEqual 1 2) vrai)) null))) null))
diff --git a/test/sa-ref/prio56-2.sa b/test/sa-ref/prio56-2.sa
new file mode 100644
index 0000000..8a5cfa0
--- /dev/null
+++ b/test/sa-ref/prio56-2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr vrai (SaExpEqual faux vrai))) null))) null))
diff --git a/test/sa-ref/prio67-1.sa b/test/sa-ref/prio67-1.sa
new file mode 100644
index 0000000..3b05c3c
--- /dev/null
+++ b/test/sa-ref/prio67-1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr (SaExpAnd faux vrai) vrai)) null))) null))
diff --git a/test/sa-ref/prio67-2.sa b/test/sa-ref/prio67-2.sa
new file mode 100644
index 0000000..0bd4435
--- /dev/null
+++ b/test/sa-ref/prio67-2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpOr vrai (SaExpAnd vrai faux))) null))) null))
diff --git a/test/sa-ref/rec1.sa b/test/sa-ref/rec1.sa
new file mode 100644
index 0000000..2819981
--- /dev/null
+++ b/test/sa-ref/rec1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc f entier (SaLDecVar (SaDecVarSimple a entier) null) null (SaInstBloc (SaLInst (SaInstSi (SaExpEqual (SaExpVar (SaVarSimple a)) 1) (SaInstBloc (SaLInst (SaInstRetour 1) null)) (SaInstBloc (SaLInst (SaInstRetour (SaExpAdd 1 (SaExpAppel (SaAppel f (SaLExp (SaExpSub (SaExpVar (SaVarSimple a)) 1) null))))) null))) null))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpAppel (SaAppel f (SaLExp 100 null)))) null))) null)))
diff --git a/test/sa-ref/si1.sa b/test/sa-ref/si1.sa
new file mode 100644
index 0000000..86d331e
--- /dev/null
+++ b/test/sa-ref/si1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstSi vrai (SaInstBloc (SaLInst (SaInstEcriture vrai) null)) null) null))) null))
diff --git a/test/sa-ref/si2.sa b/test/sa-ref/si2.sa
new file mode 100644
index 0000000..609b54f
--- /dev/null
+++ b/test/sa-ref/si2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstSi faux (SaInstBloc (SaLInst (SaInstEcriture 1) null)) (SaInstBloc (SaLInst (SaInstEcriture 0) null))) null))) null))
diff --git a/test/sa-ref/si3.sa b/test/sa-ref/si3.sa
new file mode 100644
index 0000000..517789a
--- /dev/null
+++ b/test/sa-ref/si3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstSi vrai (SaInstBloc (SaLInst (SaInstEcriture vrai) null)) (SaInstBloc (SaLInst (SaInstEcriture faux) null))) (SaLInst (SaInstEcriture vrai) null)))) null))
diff --git a/test/sa-ref/si4.sa b/test/sa-ref/si4.sa
new file mode 100644
index 0000000..fef8d2a
--- /dev/null
+++ b/test/sa-ref/si4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstSi faux (SaInstBloc (SaLInst (SaInstEcriture vrai) null)) (SaInstBloc (SaLInst (SaInstEcriture faux) null))) (SaLInst (SaInstEcriture vrai) null)))) null))
diff --git a/test/sa-ref/si5.sa b/test/sa-ref/si5.sa
new file mode 100644
index 0000000..546ff2d
--- /dev/null
+++ b/test/sa-ref/si5.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstSi vrai (SaInstBloc (SaLInst (SaInstEcriture vrai) (SaLInst (SaInstSi vrai (SaInstBloc (SaLInst (SaInstEcriture vrai) null)) null) null))) null) (SaLInst (SaInstEcriture vrai) null)))) null))
diff --git a/test/sa-ref/sub1.sa b/test/sa-ref/sub1.sa
new file mode 100644
index 0000000..d03f222
--- /dev/null
+++ b/test/sa-ref/sub1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpSub 10 5)) null))) null))
diff --git a/test/sa-ref/sub2.sa b/test/sa-ref/sub2.sa
new file mode 100644
index 0000000..d1490e9
--- /dev/null
+++ b/test/sa-ref/sub2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpSub 7 20)) null))) null))
diff --git a/test/sa-ref/sub3.sa b/test/sa-ref/sub3.sa
new file mode 100644
index 0000000..9f30ba4
--- /dev/null
+++ b/test/sa-ref/sub3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstEcriture (SaExpSub (SaExpSub 2 1) 1)) null))) null))
diff --git a/test/sa-ref/tab1.sa b/test/sa-ref/tab1.sa
new file mode 100644
index 0000000..e6c5fb0
--- /dev/null
+++ b/test/sa-ref/tab1.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecTab tab entier 3) null) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarIndicee tab 0) 0) (SaLInst (SaInstAffect (SaVarIndicee tab 1) 1) (SaLInst (SaInstAffect (SaVarIndicee tab 2) 2) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 0))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 1))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 2))) null)))))))) null))
diff --git a/test/sa-ref/tab2.sa b/test/sa-ref/tab2.sa
new file mode 100644
index 0000000..0770615
--- /dev/null
+++ b/test/sa-ref/tab2.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecTab tab entier 5) null) (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple base entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple base) 2) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) 0)) 34) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) 1)) 74) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) 2)) 16) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 2))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 3))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 4))) null))))))))) null))
diff --git a/test/sa-ref/tab3.sa b/test/sa-ref/tab3.sa
new file mode 100644
index 0000000..efb0fc0
--- /dev/null
+++ b/test/sa-ref/tab3.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecTab tab entier 5) null) (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple base entier) (SaLDecVar (SaDecVarSimple offset entier) null)) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple base) 2) (SaLInst (SaInstAffect (SaVarSimple offset) 0) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) (SaExpVar (SaVarSimple offset)))) 34) (SaLInst (SaInstAffect (SaVarSimple offset) 1) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) (SaExpVar (SaVarSimple offset)))) 74) (SaLInst (SaInstAffect (SaVarSimple offset) 2) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple base)) (SaExpVar (SaVarSimple offset)))) 16) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 2))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 3))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 4))) null)))))))))))) null))
diff --git a/test/sa-ref/tab4.sa b/test/sa-ref/tab4.sa
new file mode 100644
index 0000000..372b6bb
--- /dev/null
+++ b/test/sa-ref/tab4.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecTab tab entier 3) null) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarIndicee tab 0) 1) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpVar (SaVarIndicee tab 0))) 12) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarIndicee tab 0)) 1)) 13) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 0))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 1))) (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab 2))) null)))))))) null))
diff --git a/test/sa-ref/tantque1.sa b/test/sa-ref/tantque1.sa
new file mode 100644
index 0000000..676e5f6
--- /dev/null
+++ b/test/sa-ref/tantque1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple a entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple a) 10) (SaLInst (SaInstTantQue (SaExpInf 0 (SaExpVar (SaVarSimple a))) (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) (SaLInst (SaInstAffect (SaVarSimple a) (SaExpSub (SaExpVar (SaVarSimple a)) 1)) null)))) (SaLInst (SaInstEcriture 0) null))))) null))
diff --git a/test/sa-ref/tantque2.sa b/test/sa-ref/tantque2.sa
new file mode 100644
index 0000000..6482da5
--- /dev/null
+++ b/test/sa-ref/tantque2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple a entier) (SaLDecVar (SaDecVarSimple b entier) null)) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple a) 0) (SaLInst (SaInstTantQue (SaExpInf (SaExpVar (SaVarSimple a)) 4) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple b) 0) (SaLInst (SaInstTantQue (SaExpInf (SaExpVar (SaVarSimple b)) 4) (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple a))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple b))) (SaLInst (SaInstAffect (SaVarSimple b) (SaExpAdd (SaExpVar (SaVarSimple b)) 1)) null))))) (SaLInst (SaInstAffect (SaVarSimple a) (SaExpAdd (SaExpVar (SaVarSimple a)) 1)) null))))) null)))) null))
diff --git a/test/sa-ref/tri.sa b/test/sa-ref/tri.sa
new file mode 100644
index 0000000..69b3753
--- /dev/null
+++ b/test/sa-ref/tri.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecTab tab entier 10) null) (SaLDecFonc (SaDecFonc initialiser nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarIndicee tab 0) 8) (SaLInst (SaInstAffect (SaVarIndicee tab 1) 6) (SaLInst (SaInstAffect (SaVarIndicee tab 2) 9) (SaLInst (SaInstAffect (SaVarIndicee tab 3) 9) (SaLInst (SaInstAffect (SaVarIndicee tab 4) 4) (SaLInst (SaInstAffect (SaVarIndicee tab 5) 2) (SaLInst (SaInstAffect (SaVarIndicee tab 6) 3) (SaLInst (SaInstAffect (SaVarIndicee tab 7) 1) (SaLInst (SaInstAffect (SaVarIndicee tab 8) 4) (SaLInst (SaInstAffect (SaVarIndicee tab 9) 5) null)))))))))))) (SaLDecFonc (SaDecFonc afficher nul (SaLDecVar (SaDecVarSimple n entier) null) (SaLDecVar (SaDecVarSimple i entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple i) 0) (SaLInst (SaInstTantQue (SaExpInf (SaExpVar (SaVarSimple i)) (SaExpVar (SaVarSimple n))) (SaInstBloc (SaLInst (SaInstEcriture (SaExpVar (SaVarIndicee tab (SaExpVar (SaVarSimple i))))) (SaLInst (SaInstAffect (SaVarSimple i) (SaExpAdd (SaExpVar (SaVarSimple i)) 1)) null)))) (SaLInst (SaInstEcriture 0) null))))) (SaLDecFonc (SaDecFonc echanger nul (SaLDecVar (SaDecVarSimple i entier) (SaLDecVar (SaDecVarSimple j entier) null)) (SaLDecVar (SaDecVarSimple temp entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple temp) (SaExpVar (SaVarIndicee tab (SaExpVar (SaVarSimple j))))) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpVar (SaVarSimple j))) (SaExpVar (SaVarIndicee tab (SaExpVar (SaVarSimple i))))) (SaLInst (SaInstAffect (SaVarIndicee tab (SaExpVar (SaVarSimple i))) (SaExpVar (SaVarSimple temp))) null))))) (SaLDecFonc (SaDecFonc trier nul (SaLDecVar (SaDecVarSimple n entier) null) (SaLDecVar (SaDecVarSimple echange entier) (SaLDecVar (SaDecVarSimple j entier) (SaLDecVar (SaDecVarSimple m entier) null))) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple m) (SaExpVar (SaVarSimple n))) (SaLInst (SaInstAffect (SaVarSimple echange) 1) (SaLInst (SaInstTantQue (SaExpEqual (SaExpVar (SaVarSimple echange)) 1) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple echange) 0) (SaLInst (SaInstAffect (SaVarSimple j) 0) (SaLInst (SaInstTantQue (SaExpInf (SaExpVar (SaVarSimple j)) (SaExpSub (SaExpVar (SaVarSimple m)) 1)) (SaInstBloc (SaLInst (SaInstSi (SaExpInf (SaExpVar (SaVarIndicee tab (SaExpAdd (SaExpVar (SaVarSimple j)) 1))) (SaExpVar (SaVarIndicee tab (SaExpVar (SaVarSimple j))))) (SaInstBloc (SaLInst (SaAppel echanger (SaLExp (SaExpVar (SaVarSimple j)) (SaLExp (SaExpAdd (SaExpVar (SaVarSimple j)) 1) null))) (SaLInst (SaInstAffect (SaVarSimple echange) 1) null))) null) (SaLInst (SaInstAffect (SaVarSimple j) (SaExpAdd (SaExpVar (SaVarSimple j)) 1)) null)))) (SaLInst (SaInstAffect (SaVarSimple m) (SaExpSub (SaExpVar (SaVarSimple m)) 1)) null)))))) null))))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaAppel initialiser null) (SaLInst (SaAppel afficher (SaLExp 10 null)) (SaLInst (SaAppel trier (SaLExp 10 null)) (SaLInst (SaAppel afficher (SaLExp 10 null)) null)))))) null))))))
diff --git a/test/sa-ref/varglob1.sa b/test/sa-ref/varglob1.sa
new file mode 100644
index 0000000..f0e56eb
--- /dev/null
+++ b/test/sa-ref/varglob1.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple variable entier) null) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple variable) 6834) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple variable))) null)))) null))
diff --git a/test/sa-ref/varglob2.sa b/test/sa-ref/varglob2.sa
new file mode 100644
index 0000000..5f173ad
--- /dev/null
+++ b/test/sa-ref/varglob2.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple variable entier) null) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple variable) 10) (SaLInst (SaInstEcriture (SaExpAdd (SaExpVar (SaVarSimple variable)) 50)) null)))) null))
diff --git a/test/sa-ref/varglob3.sa b/test/sa-ref/varglob3.sa
new file mode 100644
index 0000000..8466973
--- /dev/null
+++ b/test/sa-ref/varglob3.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple var1 entier) (SaLDecVar (SaDecVarSimple var2 entier) null)) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 10) (SaLInst (SaInstAffect (SaVarSimple var2) 34) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var1))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var2))) null)))))) null))
diff --git a/test/sa-ref/varglob4.sa b/test/sa-ref/varglob4.sa
new file mode 100644
index 0000000..4d47fed
--- /dev/null
+++ b/test/sa-ref/varglob4.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple var1 entier) (SaLDecVar (SaDecVarSimple var2 entier) null)) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 10) (SaLInst (SaInstAffect (SaVarSimple var2) 34) (SaLInst (SaInstEcriture (SaExpAdd (SaExpVar (SaVarSimple var1)) (SaExpVar (SaVarSimple var2)))) null))))) null))
diff --git a/test/sa-ref/varloc1.sa b/test/sa-ref/varloc1.sa
new file mode 100644
index 0000000..f73881a
--- /dev/null
+++ b/test/sa-ref/varloc1.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple variable entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple variable) 6834) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple variable))) null)))) null))
diff --git a/test/sa-ref/varloc2.sa b/test/sa-ref/varloc2.sa
new file mode 100644
index 0000000..35a55ff
--- /dev/null
+++ b/test/sa-ref/varloc2.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple variable entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple variable) 10) (SaLInst (SaInstEcriture (SaExpAdd (SaExpVar (SaVarSimple variable)) 50)) null)))) null))
diff --git a/test/sa-ref/varloc3.sa b/test/sa-ref/varloc3.sa
new file mode 100644
index 0000000..3c7878c
--- /dev/null
+++ b/test/sa-ref/varloc3.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple var1 entier) (SaLDecVar (SaDecVarSimple var2 entier) null)) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 10) (SaLInst (SaInstAffect (SaVarSimple var2) 30) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var1))) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var2))) null)))))) null))
diff --git a/test/sa-ref/varloc4.sa b/test/sa-ref/varloc4.sa
new file mode 100644
index 0000000..0578507
--- /dev/null
+++ b/test/sa-ref/varloc4.sa
@@ -0,0 +1 @@
+(SaProg null (SaLDecFonc (SaDecFonc main nul null (SaLDecVar (SaDecVarSimple var1 entier) (SaLDecVar (SaDecVarSimple var2 entier) null)) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 10) (SaLInst (SaInstAffect (SaVarSimple var2) 30) (SaLInst (SaInstEcriture (SaExpAdd (SaExpVar (SaVarSimple var1)) (SaExpVar (SaVarSimple var2)))) null))))) null))
diff --git a/test/sa-ref/varloc5.sa b/test/sa-ref/varloc5.sa
new file mode 100644
index 0000000..dbeb0be
--- /dev/null
+++ b/test/sa-ref/varloc5.sa
@@ -0,0 +1 @@
+(SaProg (SaLDecVar (SaDecVarSimple var1 entier) null) (SaLDecFonc (SaDecFonc f nul null (SaLDecVar (SaDecVarSimple var1 entier) null) (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 10) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var1))) null)))) (SaLDecFonc (SaDecFonc main nul null null (SaInstBloc (SaLInst (SaInstAffect (SaVarSimple var1) 20) (SaLInst (SaAppel f null) (SaLInst (SaInstEcriture (SaExpVar (SaVarSimple var1))) null))))) null)))
diff --git a/test/sc-ref/add1.sc b/test/sc-ref/add1.sc
new file mode 100644
index 0000000..5ba6a48
--- /dev/null
+++ b/test/sc-ref/add1.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <APlusExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </APlusExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/add2.sc b/test/sc-ref/add2.sc
new file mode 100644
index 0000000..5447ac9
--- /dev/null
+++ b/test/sc-ref/add2.sc
@@ -0,0 +1,52 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <APlusExp3>
+            <APlusExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </APlusExp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </APlusExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/affect1.sc b/test/sc-ref/affect1.sc
new file mode 100644
index 0000000..919a434
--- /dev/null
+++ b/test/sc-ref/affect1.sc
@@ -0,0 +1,66 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/affect2.sc b/test/sc-ref/affect2.sc
new file mode 100644
index 0000000..55761e9
--- /dev/null
+++ b/test/sc-ref/affect2.sc
@@ -0,0 +1,66 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/affect3.sc b/test/sc-ref/affect3.sc
new file mode 100644
index 0000000..6046f37
--- /dev/null
+++ b/test/sc-ref/affect3.sc
@@ -0,0 +1,106 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <ADecvarinstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AOptdecvar>
+      <ADecvarListedecvar>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvar>
+     </AOptdecvar>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <ARecursifListeexp>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+           <AFinalListeexpbis>
+           </AFinalListeexpbis>
+          </ARecursifListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </ADecvarinstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/and1.sc b/test/sc-ref/and1.sc
new file mode 100644
index 0000000..f3a30fb
--- /dev/null
+++ b/test/sc-ref/and1.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/and2.sc b/test/sc-ref/and2.sc
new file mode 100644
index 0000000..f3a30fb
--- /dev/null
+++ b/test/sc-ref/and2.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/and3.sc b/test/sc-ref/and3.sc
new file mode 100644
index 0000000..f3a30fb
--- /dev/null
+++ b/test/sc-ref/and3.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/and4.sc b/test/sc-ref/and4.sc
new file mode 100644
index 0000000..f3a30fb
--- /dev/null
+++ b/test/sc-ref/and4.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/and5.sc b/test/sc-ref/and5.sc
new file mode 100644
index 0000000..22cd18f
--- /dev/null
+++ b/test/sc-ref/and5.sc
@@ -0,0 +1,60 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AEtExp1>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AEtExp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel-param1.sc b/test/sc-ref/appel-param1.sc
new file mode 100644
index 0000000..5f242e2
--- /dev/null
+++ b/test/sc-ref/appel-param1.sc
@@ -0,0 +1,78 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AVarExp6>
+               <AVarsimpleVar>
+               </AVarsimpleVar>
+              </AVarExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <ARecursifListeexp>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+           <AFinalListeexpbis>
+           </AFinalListeexpbis>
+          </ARecursifListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel-param2.sc b/test/sc-ref/appel-param2.sc
new file mode 100644
index 0000000..c683b17
--- /dev/null
+++ b/test/sc-ref/appel-param2.sc
@@ -0,0 +1,120 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AVarExp6>
+               <AVarsimpleVar>
+               </AVarsimpleVar>
+              </AVarExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <ARecursifListeexp>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+           <ARecursifListeexpbis>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+            <AFinalListeexpbis>
+            </AFinalListeexpbis>
+           </ARecursifListeexpbis>
+          </ARecursifListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel-param3.sc b/test/sc-ref/appel-param3.sc
new file mode 100644
index 0000000..6aab83b
--- /dev/null
+++ b/test/sc-ref/appel-param3.sc
@@ -0,0 +1,246 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarldecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+       <ADecvarldecvarListedecvarbis>
+        <ADecvarentierDecvar>
+        </ADecvarentierDecvar>
+        <ADecvarldecvarListedecvarbis>
+         <ADecvarentierDecvar>
+         </ADecvarentierDecvar>
+         <ADecvarListedecvarbis>
+          <ADecvarentierDecvar>
+          </ADecvarentierDecvar>
+         </ADecvarListedecvarbis>
+        </ADecvarldecvarListedecvarbis>
+       </ADecvarldecvarListedecvarbis>
+      </ADecvarldecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AVarExp6>
+               <AVarsimpleVar>
+               </AVarsimpleVar>
+              </AVarExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVarsimpleVar>
+                   </AVarsimpleVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstfinalListeinst>
+          </ALinstfinalListeinst>
+         </ALinstrecListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <ARecursifListeexp>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+           <ARecursifListeexpbis>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+            <ARecursifListeexpbis>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+             <ARecursifListeexpbis>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AExp3Exp2>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <ANombreExp6>
+                    </ANombreExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                </AExp3Exp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+              <ARecursifListeexpbis>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+               <AFinalListeexpbis>
+               </AFinalListeexpbis>
+              </ARecursifListeexpbis>
+             </ARecursifListeexpbis>
+            </ARecursifListeexpbis>
+           </ARecursifListeexpbis>
+          </ARecursifListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel-retour1.sc b/test/sc-ref/appel-retour1.sc
new file mode 100644
index 0000000..64940ad
--- /dev/null
+++ b/test/sc-ref/appel-retour1.sc
@@ -0,0 +1,106 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrretourInstr>
+       <AInstrretour>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AVarExp6>
+                      <AVarsimpleVar>
+                      </AVarsimpleVar>
+                     </AVarExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrretour>
+      </AInstrretourInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AAppelfctExp6>
+                <AAppelfct>
+                 <ARecursifListeexp>
+                  <AExp1Exp>
+                   <AExp2Exp1>
+                    <AExp3Exp2>
+                     <AExp4Exp3>
+                      <AExp5Exp4>
+                       <AExp6Exp5>
+                        <ANombreExp6>
+                        </ANombreExp6>
+                       </AExp6Exp5>
+                      </AExp5Exp4>
+                     </AExp4Exp3>
+                    </AExp3Exp2>
+                   </AExp2Exp1>
+                  </AExp1Exp>
+                  <AFinalListeexpbis>
+                  </AFinalListeexpbis>
+                 </ARecursifListeexp>
+                </AAppelfct>
+               </AAppelfctExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel1.sc b/test/sc-ref/appel1.sc
new file mode 100644
index 0000000..146cd4a
--- /dev/null
+++ b/test/sc-ref/appel1.sc
@@ -0,0 +1,56 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <AFinalListeexp>
+          </AFinalListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel2.sc b/test/sc-ref/appel2.sc
new file mode 100644
index 0000000..b1e1d36
--- /dev/null
+++ b/test/sc-ref/appel2.sc
@@ -0,0 +1,96 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstrecListeinst>
+        <AInstrappelInstr>
+         <AInstrappel>
+          <AAppelfct>
+           <AFinalListeexp>
+           </AFinalListeexp>
+          </AAppelfct>
+         </AInstrappel>
+        </AInstrappelInstr>
+        <ALinstfinalListeinst>
+        </ALinstfinalListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncrecListedecfonc>
+     <AInstrDecfonc>
+      <ASansparamListeparam>
+      </ASansparamListeparam>
+      <AInstrbloc>
+       <ALinstrecListeinst>
+        <AInstrappelInstr>
+         <AInstrappel>
+          <AAppelfct>
+           <AFinalListeexp>
+           </AFinalListeexp>
+          </AAppelfct>
+         </AInstrappel>
+        </AInstrappelInstr>
+        <ALinstfinalListeinst>
+        </ALinstfinalListeinst>
+       </ALinstrecListeinst>
+      </AInstrbloc>
+     </AInstrDecfonc>
+     <ALdecfoncfinalListedecfonc>
+     </ALdecfoncfinalListedecfonc>
+    </ALdecfoncrecListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/appel3.sc b/test/sc-ref/appel3.sc
new file mode 100644
index 0000000..1e1737c
--- /dev/null
+++ b/test/sc-ref/appel3.sc
@@ -0,0 +1,96 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncrecListedecfonc>
+     <AInstrDecfonc>
+      <ASansparamListeparam>
+      </ASansparamListeparam>
+      <AInstrbloc>
+       <ALinstrecListeinst>
+        <AInstrappelInstr>
+         <AInstrappel>
+          <AAppelfct>
+           <AFinalListeexp>
+           </AFinalListeexp>
+          </AAppelfct>
+         </AInstrappel>
+        </AInstrappelInstr>
+        <ALinstrecListeinst>
+         <AInstrappelInstr>
+          <AInstrappel>
+           <AAppelfct>
+            <AFinalListeexp>
+            </AFinalListeexp>
+           </AAppelfct>
+          </AInstrappel>
+         </AInstrappelInstr>
+         <ALinstfinalListeinst>
+         </ALinstfinalListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </AInstrbloc>
+     </AInstrDecfonc>
+     <ALdecfoncfinalListedecfonc>
+     </ALdecfoncfinalListedecfonc>
+    </ALdecfoncrecListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/div1.sc b/test/sc-ref/div1.sc
new file mode 100644
index 0000000..3ce95c7
--- /dev/null
+++ b/test/sc-ref/div1.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/div2.sc b/test/sc-ref/div2.sc
new file mode 100644
index 0000000..3ce95c7
--- /dev/null
+++ b/test/sc-ref/div2.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/div3.sc b/test/sc-ref/div3.sc
new file mode 100644
index 0000000..2fe7922
--- /dev/null
+++ b/test/sc-ref/div3.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <ADiviseExp4>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ADiviseExp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/div4.sc b/test/sc-ref/div4.sc
new file mode 100644
index 0000000..3ce95c7
--- /dev/null
+++ b/test/sc-ref/div4.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/ecrire1.sc b/test/sc-ref/ecrire1.sc
new file mode 100644
index 0000000..03c62d1
--- /dev/null
+++ b/test/sc-ref/ecrire1.sc
@@ -0,0 +1,36 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/ecrire2.sc b/test/sc-ref/ecrire2.sc
new file mode 100644
index 0000000..03c62d1
--- /dev/null
+++ b/test/sc-ref/ecrire2.sc
@@ -0,0 +1,36 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/egal1.sc b/test/sc-ref/egal1.sc
new file mode 100644
index 0000000..19ab92d
--- /dev/null
+++ b/test/sc-ref/egal1.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AEgalExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AEgalExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/egal2.sc b/test/sc-ref/egal2.sc
new file mode 100644
index 0000000..19ab92d
--- /dev/null
+++ b/test/sc-ref/egal2.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AEgalExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AEgalExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/egal3.sc b/test/sc-ref/egal3.sc
new file mode 100644
index 0000000..4c55fe8
--- /dev/null
+++ b/test/sc-ref/egal3.sc
@@ -0,0 +1,56 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AEgalExp2>
+           <AEgalExp2>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AEgalExp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AEgalExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/err1.sc b/test/sc-ref/err1.sc
new file mode 100644
index 0000000..2836d73
--- /dev/null
+++ b/test/sc-ref/err1.sc
@@ -0,0 +1,38 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AVarExp6>
+               <AVarsimpleVar>
+               </AVarsimpleVar>
+              </AVarExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/err2.sc b/test/sc-ref/err2.sc
new file mode 100644
index 0000000..2eb2ef9
--- /dev/null
+++ b/test/sc-ref/err2.sc
@@ -0,0 +1,26 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrappelInstr>
+       <AInstrappel>
+        <AAppelfct>
+         <AFinalListeexp>
+         </AFinalListeexp>
+        </AAppelfct>
+       </AInstrappel>
+      </AInstrappelInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/err3.sc b/test/sc-ref/err3.sc
new file mode 100644
index 0000000..b159de5
--- /dev/null
+++ b/test/sc-ref/err3.sc
@@ -0,0 +1,40 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AAvecparamListeparam>
+    <AInstrbloc>
+     <ALinstfinalListeinst>
+     </ALinstfinalListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <AFinalListeexp>
+          </AFinalListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/err4.sc b/test/sc-ref/err4.sc
new file mode 100644
index 0000000..ae87ec4
--- /dev/null
+++ b/test/sc-ref/err4.sc
@@ -0,0 +1,62 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <AAvecparamListeparam>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AAvecparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstfinalListeinst>
+     </ALinstfinalListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstrappelInstr>
+        <AInstrappel>
+         <AAppelfct>
+          <ARecursifListeexp>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+           <AFinalListeexpbis>
+           </AFinalListeexpbis>
+          </ARecursifListeexp>
+         </AAppelfct>
+        </AInstrappel>
+       </AInstrappelInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/err5.sc b/test/sc-ref/err5.sc
new file mode 100644
index 0000000..6e98350
--- /dev/null
+++ b/test/sc-ref/err5.sc
@@ -0,0 +1,78 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <ADecvarinstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AOptdecvar>
+      <ADecvarListedecvar>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvar>
+     </AOptdecvar>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AAppelfctExp6>
+                <AAppelfct>
+                 <AFinalListeexp>
+                 </AFinalListeexp>
+                </AAppelfct>
+               </AAppelfctExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </ADecvarinstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/fibo.sc b/test/sc-ref/fibo.sc
new file mode 100644
index 0000000..f6f4346
--- /dev/null
+++ b/test/sc-ref/fibo.sc
@@ -0,0 +1,248 @@
+<Start>
+ <AProgramme>
+  <AVideListedecvar>
+   <AEpsilon>
+   </AEpsilon>
+  </AVideListedecvar>
+  <ARecursifListedecfonc>
+   <ADecfonc>
+    <AEntierOpttype>
+    </AEntierOpttype>
+    <APremierListedecvar>
+     <AScalaireDecvar>
+      <AEntierType>
+      </AEntierType>
+     </AScalaireDecvar>
+     <AFinalListedecvarbis>
+      <AEpsilon>
+      </AEpsilon>
+     </AFinalListedecvarbis>
+    </APremierListedecvar>
+    <AVideListedecvar>
+     <AEpsilon>
+     </AEpsilon>
+    </AVideListedecvar>
+    <AInstrbloc>
+     <ARecursifListeinst>
+      <ASinonInstr>
+       <AExp1Exp>
+        <AExp2Exp1>
+         <AInfExp2>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AVarExp6>
+               <ASimpleVar>
+               </ASimpleVar>
+              </AVarExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+          <AExp4Exp3>
+           <AExp5Exp4>
+            <AExp6Exp5>
+             <ANombreExp6>
+             </ANombreExp6>
+            </AExp6Exp5>
+           </AExp5Exp4>
+          </AExp4Exp3>
+         </AInfExp2>
+        </AExp2Exp1>
+       </AExp1Exp>
+       <AInstrbloc>
+        <ARecursifListeinst>
+         <ARetourInstr>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </ARetourInstr>
+         <AFinalListeinst>
+          <AEpsilon>
+          </AEpsilon>
+         </AFinalListeinst>
+        </ARecursifListeinst>
+       </AInstrbloc>
+       <AInstrbloc>
+        <ARecursifListeinst>
+         <ARetourInstr>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <APlusExp3>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AAppelfctExp6>
+                  <AAppelfct>
+                   <APremierListeexp>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AMoinsExp3>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <AVarExp6>
+                            <ASimpleVar>
+                            </ASimpleVar>
+                           </AVarExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AMoinsExp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                    <AFinalListeexpbis>
+                     <AEpsilon>
+                     </AEpsilon>
+                    </AFinalListeexpbis>
+                   </APremierListeexp>
+                  </AAppelfct>
+                 </AAppelfctExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AAppelfctExp6>
+                 <AAppelfct>
+                  <APremierListeexp>
+                   <AExp1Exp>
+                    <AExp2Exp1>
+                     <AExp3Exp2>
+                      <AMoinsExp3>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <AVarExp6>
+                           <ASimpleVar>
+                           </ASimpleVar>
+                          </AVarExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                       <AExp5Exp4>
+                        <AExp6Exp5>
+                         <ANombreExp6>
+                         </ANombreExp6>
+                        </AExp6Exp5>
+                       </AExp5Exp4>
+                      </AMoinsExp3>
+                     </AExp3Exp2>
+                    </AExp2Exp1>
+                   </AExp1Exp>
+                   <AFinalListeexpbis>
+                    <AEpsilon>
+                    </AEpsilon>
+                   </AFinalListeexpbis>
+                  </APremierListeexp>
+                 </AAppelfct>
+                </AAppelfctExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </APlusExp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </ARetourInstr>
+         <AFinalListeinst>
+          <AEpsilon>
+          </AEpsilon>
+         </AFinalListeinst>
+        </ARecursifListeinst>
+       </AInstrbloc>
+      </ASinonInstr>
+      <AFinalListeinst>
+       <AEpsilon>
+       </AEpsilon>
+      </AFinalListeinst>
+     </ARecursifListeinst>
+    </AInstrbloc>
+   </ADecfonc>
+   <ARecursifListedecfonc>
+    <ADecfonc>
+     <AVideOpttype>
+     </AVideOpttype>
+     <AVideListedecvar>
+      <AEpsilon>
+      </AEpsilon>
+     </AVideListedecvar>
+     <AVideListedecvar>
+      <AEpsilon>
+      </AEpsilon>
+     </AVideListedecvar>
+     <AInstrbloc>
+      <ARecursifListeinst>
+       <AEcritureInstr>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AAppelfctExp6>
+               <AAppelfct>
+                <APremierListeexp>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <ANombreExp6>
+                       </ANombreExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                 <AFinalListeexpbis>
+                  <AEpsilon>
+                  </AEpsilon>
+                 </AFinalListeexpbis>
+                </APremierListeexp>
+               </AAppelfct>
+              </AAppelfctExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AEcritureInstr>
+       <AFinalListeinst>
+        <AEpsilon>
+        </AEpsilon>
+       </AFinalListeinst>
+      </ARecursifListeinst>
+     </AInstrbloc>
+    </ADecfonc>
+    <AFinalListedecfonc>
+     <AEpsilon>
+     </AEpsilon>
+    </AFinalListedecfonc>
+   </ARecursifListedecfonc>
+  </ARecursifListedecfonc>
+ </AProgramme>
+</Start>
diff --git a/test/sc-ref/inf1.sc b/test/sc-ref/inf1.sc
new file mode 100644
index 0000000..6daf211
--- /dev/null
+++ b/test/sc-ref/inf1.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/inf2.sc b/test/sc-ref/inf2.sc
new file mode 100644
index 0000000..6daf211
--- /dev/null
+++ b/test/sc-ref/inf2.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/inf3.sc b/test/sc-ref/inf3.sc
new file mode 100644
index 0000000..6daf211
--- /dev/null
+++ b/test/sc-ref/inf3.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/inf4.sc b/test/sc-ref/inf4.sc
new file mode 100644
index 0000000..4804d6f
--- /dev/null
+++ b/test/sc-ref/inf4.sc
@@ -0,0 +1,56 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AInfExp2>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AInfExp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/modulo1.sc b/test/sc-ref/modulo1.sc
new file mode 100644
index 0000000..470dfbf
--- /dev/null
+++ b/test/sc-ref/modulo1.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AModuloExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AModuloExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/mult1.sc b/test/sc-ref/mult1.sc
new file mode 100644
index 0000000..43b5a18
--- /dev/null
+++ b/test/sc-ref/mult1.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AFoisExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AFoisExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/mult2.sc b/test/sc-ref/mult2.sc
new file mode 100644
index 0000000..43b5a18
--- /dev/null
+++ b/test/sc-ref/mult2.sc
@@ -0,0 +1,42 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AFoisExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AFoisExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/mult3.sc b/test/sc-ref/mult3.sc
new file mode 100644
index 0000000..ed24546
--- /dev/null
+++ b/test/sc-ref/mult3.sc
@@ -0,0 +1,48 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AFoisExp4>
+             <AFoisExp4>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AFoisExp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AFoisExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/not1.sc b/test/sc-ref/not1.sc
new file mode 100644
index 0000000..f1def7e
--- /dev/null
+++ b/test/sc-ref/not1.sc
@@ -0,0 +1,38 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <ANonExp5>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ANonExp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/not2.sc b/test/sc-ref/not2.sc
new file mode 100644
index 0000000..f1def7e
--- /dev/null
+++ b/test/sc-ref/not2.sc
@@ -0,0 +1,38 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <ANonExp5>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ANonExp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/not3.sc b/test/sc-ref/not3.sc
new file mode 100644
index 0000000..c72880b
--- /dev/null
+++ b/test/sc-ref/not3.sc
@@ -0,0 +1,40 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <ANonExp5>
+              <ANonExp5>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </ANonExp5>
+             </ANonExp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/or1.sc b/test/sc-ref/or1.sc
new file mode 100644
index 0000000..35d8279
--- /dev/null
+++ b/test/sc-ref/or1.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/or2.sc b/test/sc-ref/or2.sc
new file mode 100644
index 0000000..35d8279
--- /dev/null
+++ b/test/sc-ref/or2.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/or3.sc b/test/sc-ref/or3.sc
new file mode 100644
index 0000000..35d8279
--- /dev/null
+++ b/test/sc-ref/or3.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/or4.sc b/test/sc-ref/or4.sc
new file mode 100644
index 0000000..35d8279
--- /dev/null
+++ b/test/sc-ref/or4.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/or5.sc b/test/sc-ref/or5.sc
new file mode 100644
index 0000000..954b836
--- /dev/null
+++ b/test/sc-ref/or5.sc
@@ -0,0 +1,64 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AOuExp>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AOuExp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/parenth1.sc b/test/sc-ref/parenth1.sc
new file mode 100644
index 0000000..6e5d8d2
--- /dev/null
+++ b/test/sc-ref/parenth1.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/parenth2.sc b/test/sc-ref/parenth2.sc
new file mode 100644
index 0000000..eff72be
--- /dev/null
+++ b/test/sc-ref/parenth2.sc
@@ -0,0 +1,64 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AParenthesesExp6>
+                      <AExp1Exp>
+                       <AExp2Exp1>
+                        <AExp3Exp2>
+                         <AExp4Exp3>
+                          <AExp5Exp4>
+                           <AExp6Exp5>
+                            <ANombreExp6>
+                            </ANombreExp6>
+                           </AExp6Exp5>
+                          </AExp5Exp4>
+                         </AExp4Exp3>
+                        </AExp3Exp2>
+                       </AExp2Exp1>
+                      </AExp1Exp>
+                     </AParenthesesExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio23-1.sc b/test/sc-ref/prio23-1.sc
new file mode 100644
index 0000000..d19611d
--- /dev/null
+++ b/test/sc-ref/prio23-1.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AFoisExp4>
+             <AExp5Exp4>
+              <ANonExp5>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </ANonExp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AFoisExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio23-2.sc b/test/sc-ref/prio23-2.sc
new file mode 100644
index 0000000..41731ec
--- /dev/null
+++ b/test/sc-ref/prio23-2.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AFoisExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <ANonExp5>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ANonExp5>
+            </AFoisExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio23-3.sc b/test/sc-ref/prio23-3.sc
new file mode 100644
index 0000000..fc90db4
--- /dev/null
+++ b/test/sc-ref/prio23-3.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <ANonExp5>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </ANonExp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio23-4.sc b/test/sc-ref/prio23-4.sc
new file mode 100644
index 0000000..9e09675
--- /dev/null
+++ b/test/sc-ref/prio23-4.sc
@@ -0,0 +1,46 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <ANonExp5>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </ANonExp5>
+             </AExp5Exp4>
+             <ANonExp5>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ANonExp5>
+            </ADiviseExp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio34-1.sc b/test/sc-ref/prio34-1.sc
new file mode 100644
index 0000000..b91f1fb
--- /dev/null
+++ b/test/sc-ref/prio34-1.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <APlusExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AFoisExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AFoisExp4>
+           </APlusExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio34-2.sc b/test/sc-ref/prio34-2.sc
new file mode 100644
index 0000000..83731e7
--- /dev/null
+++ b/test/sc-ref/prio34-2.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AMoinsExp3>
+            <AExp4Exp3>
+             <AFoisExp4>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AFoisExp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AMoinsExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio34-3.sc b/test/sc-ref/prio34-3.sc
new file mode 100644
index 0000000..c2ea56d
--- /dev/null
+++ b/test/sc-ref/prio34-3.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AMoinsExp3>
+            <AExp4Exp3>
+             <ADiviseExp4>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </ADiviseExp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AMoinsExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio34-4.sc b/test/sc-ref/prio34-4.sc
new file mode 100644
index 0000000..3e2860a
--- /dev/null
+++ b/test/sc-ref/prio34-4.sc
@@ -0,0 +1,50 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <APlusExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <ADiviseExp4>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </ADiviseExp4>
+           </APlusExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio45-1.sc b/test/sc-ref/prio45-1.sc
new file mode 100644
index 0000000..76d3b8d
--- /dev/null
+++ b/test/sc-ref/prio45-1.sc
@@ -0,0 +1,54 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AEgalExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <APlusExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </APlusExp3>
+          </AEgalExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio45-2.sc b/test/sc-ref/prio45-2.sc
new file mode 100644
index 0000000..721d838
--- /dev/null
+++ b/test/sc-ref/prio45-2.sc
@@ -0,0 +1,54 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AEgalExp2>
+           <AExp3Exp2>
+            <APlusExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </APlusExp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AEgalExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio45-3.sc b/test/sc-ref/prio45-3.sc
new file mode 100644
index 0000000..5777f26
--- /dev/null
+++ b/test/sc-ref/prio45-3.sc
@@ -0,0 +1,54 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <APlusExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </APlusExp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio45-4.sc b/test/sc-ref/prio45-4.sc
new file mode 100644
index 0000000..02dd9dd
--- /dev/null
+++ b/test/sc-ref/prio45-4.sc
@@ -0,0 +1,54 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AInfExp2>
+           <AExp3Exp2>
+            <AMoinsExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AMoinsExp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AInfExp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio56-1.sc b/test/sc-ref/prio56-1.sc
new file mode 100644
index 0000000..a59126e
--- /dev/null
+++ b/test/sc-ref/prio56-1.sc
@@ -0,0 +1,58 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AEgalExp2>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AEgalExp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio56-2.sc b/test/sc-ref/prio56-2.sc
new file mode 100644
index 0000000..480375b
--- /dev/null
+++ b/test/sc-ref/prio56-2.sc
@@ -0,0 +1,58 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AEgalExp2>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AEgalExp2>
+         </AEtExp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio67-1.sc b/test/sc-ref/prio67-1.sc
new file mode 100644
index 0000000..f096c7c
--- /dev/null
+++ b/test/sc-ref/prio67-1.sc
@@ -0,0 +1,62 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AEtExp1>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AEtExp1>
+         </AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/prio67-2.sc b/test/sc-ref/prio67-2.sc
new file mode 100644
index 0000000..9bb0df8
--- /dev/null
+++ b/test/sc-ref/prio67-2.sc
@@ -0,0 +1,62 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AOuExp>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AEtExp1>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AEtExp1>
+        </AOuExp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/rec1.sc b/test/sc-ref/rec1.sc
new file mode 100644
index 0000000..1f75e39
--- /dev/null
+++ b/test/sc-ref/rec1.sc
@@ -0,0 +1,258 @@
+<Start>
+ <AProgramme>
+  <AVideListedecvar>
+   <AEpsilon>
+   </AEpsilon>
+  </AVideListedecvar>
+  <ARecursifListedecfonc>
+   <ADecfonc>
+    <AEntierOpttype>
+    </AEntierOpttype>
+    <APremierListedecvar>
+     <AScalaireDecvar>
+      <AEntierType>
+      </AEntierType>
+     </AScalaireDecvar>
+     <AFinalListedecvarbis>
+      <AEpsilon>
+      </AEpsilon>
+     </AFinalListedecvarbis>
+    </APremierListedecvar>
+    <AVideListedecvar>
+     <AEpsilon>
+     </AEpsilon>
+    </AVideListedecvar>
+    <AInstrbloc>
+     <ARecursifListeinst>
+      <ASinonInstr>
+       <AExp1Exp>
+        <AExp2Exp1>
+         <AExp3Exp2>
+          <AExp4Exp3>
+           <AExp5Exp4>
+            <AExp6Exp5>
+             <AParenthesesExp6>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AEgalExp2>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AVarExp6>
+                      <ASimpleVar>
+                      </ASimpleVar>
+                     </AVarExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <ANombreExp6>
+                    </ANombreExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                </AEgalExp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+             </AParenthesesExp6>
+            </AExp6Exp5>
+           </AExp5Exp4>
+          </AExp4Exp3>
+         </AExp3Exp2>
+        </AExp2Exp1>
+       </AExp1Exp>
+       <AInstrbloc>
+        <ARecursifListeinst>
+         <ARetourInstr>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AParenthesesExp6>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <ANombreExp6>
+                       </ANombreExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                </AParenthesesExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </ARetourInstr>
+         <AFinalListeinst>
+          <AEpsilon>
+          </AEpsilon>
+         </AFinalListeinst>
+        </ARecursifListeinst>
+       </AInstrbloc>
+       <AInstrbloc>
+        <ARecursifListeinst>
+         <ARetourInstr>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AParenthesesExp6>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <APlusExp3>
+                     <AExp4Exp3>
+                      <AExp5Exp4>
+                       <AExp6Exp5>
+                        <ANombreExp6>
+                        </ANombreExp6>
+                       </AExp6Exp5>
+                      </AExp5Exp4>
+                     </AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <AAppelfctExp6>
+                        <AAppelfct>
+                         <APremierListeexp>
+                          <AExp1Exp>
+                           <AExp2Exp1>
+                            <AExp3Exp2>
+                             <AMoinsExp3>
+                              <AExp4Exp3>
+                               <AExp5Exp4>
+                                <AExp6Exp5>
+                                 <AVarExp6>
+                                  <ASimpleVar>
+                                  </ASimpleVar>
+                                 </AVarExp6>
+                                </AExp6Exp5>
+                               </AExp5Exp4>
+                              </AExp4Exp3>
+                              <AExp5Exp4>
+                               <AExp6Exp5>
+                                <ANombreExp6>
+                                </ANombreExp6>
+                               </AExp6Exp5>
+                              </AExp5Exp4>
+                             </AMoinsExp3>
+                            </AExp3Exp2>
+                           </AExp2Exp1>
+                          </AExp1Exp>
+                          <AFinalListeexpbis>
+                           <AEpsilon>
+                           </AEpsilon>
+                          </AFinalListeexpbis>
+                         </APremierListeexp>
+                        </AAppelfct>
+                       </AAppelfctExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </APlusExp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                </AParenthesesExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </ARetourInstr>
+         <AFinalListeinst>
+          <AEpsilon>
+          </AEpsilon>
+         </AFinalListeinst>
+        </ARecursifListeinst>
+       </AInstrbloc>
+      </ASinonInstr>
+      <AFinalListeinst>
+       <AEpsilon>
+       </AEpsilon>
+      </AFinalListeinst>
+     </ARecursifListeinst>
+    </AInstrbloc>
+   </ADecfonc>
+   <ARecursifListedecfonc>
+    <ADecfonc>
+     <AVideOpttype>
+     </AVideOpttype>
+     <AVideListedecvar>
+      <AEpsilon>
+      </AEpsilon>
+     </AVideListedecvar>
+     <AVideListedecvar>
+      <AEpsilon>
+      </AEpsilon>
+     </AVideListedecvar>
+     <AInstrbloc>
+      <ARecursifListeinst>
+       <AEcritureInstr>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AAppelfctExp6>
+               <AAppelfct>
+                <APremierListeexp>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <ANombreExp6>
+                       </ANombreExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                 <AFinalListeexpbis>
+                  <AEpsilon>
+                  </AEpsilon>
+                 </AFinalListeexpbis>
+                </APremierListeexp>
+               </AAppelfct>
+              </AAppelfctExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AEcritureInstr>
+       <AFinalListeinst>
+        <AEpsilon>
+        </AEpsilon>
+       </AFinalListeinst>
+      </ARecursifListeinst>
+     </AInstrbloc>
+    </ADecfonc>
+    <AFinalListedecfonc>
+     <AEpsilon>
+     </AEpsilon>
+    </AFinalListedecfonc>
+   </ARecursifListedecfonc>
+  </ARecursifListedecfonc>
+ </AProgramme>
+</Start>
diff --git a/test/sc-ref/si1.sc b/test/sc-ref/si1.sc
new file mode 100644
index 0000000..f2146b7
--- /dev/null
+++ b/test/sc-ref/si1.sc
@@ -0,0 +1,74 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrsiInstr>
+       <ASanssinonInstrsi>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+        <AInstrbloc>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstfinalListeinst>
+          </ALinstfinalListeinst>
+         </ALinstrecListeinst>
+        </AInstrbloc>
+       </ASanssinonInstrsi>
+      </AInstrsiInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/si2.sc b/test/sc-ref/si2.sc
new file mode 100644
index 0000000..ac02bca
--- /dev/null
+++ b/test/sc-ref/si2.sc
@@ -0,0 +1,100 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrsiInstr>
+       <AAvecsinonInstrsi>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+        <AInstrbloc>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstfinalListeinst>
+          </ALinstfinalListeinst>
+         </ALinstrecListeinst>
+        </AInstrbloc>
+        <AInstrsinon>
+         <AInstrbloc>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </AInstrbloc>
+        </AInstrsinon>
+       </AAvecsinonInstrsi>
+      </AInstrsiInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/si3.sc b/test/sc-ref/si3.sc
new file mode 100644
index 0000000..d209790
--- /dev/null
+++ b/test/sc-ref/si3.sc
@@ -0,0 +1,120 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrsiInstr>
+       <AAvecsinonInstrsi>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+        <AInstrbloc>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstfinalListeinst>
+          </ALinstfinalListeinst>
+         </ALinstrecListeinst>
+        </AInstrbloc>
+        <AInstrsinon>
+         <AInstrbloc>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </AInstrbloc>
+        </AInstrsinon>
+       </AAvecsinonInstrsi>
+      </AInstrsiInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/si4.sc b/test/sc-ref/si4.sc
new file mode 100644
index 0000000..d209790
--- /dev/null
+++ b/test/sc-ref/si4.sc
@@ -0,0 +1,120 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrsiInstr>
+       <AAvecsinonInstrsi>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+        <AInstrbloc>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstfinalListeinst>
+          </ALinstfinalListeinst>
+         </ALinstrecListeinst>
+        </AInstrbloc>
+        <AInstrsinon>
+         <AInstrbloc>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </AInstrbloc>
+        </AInstrsinon>
+       </AAvecsinonInstrsi>
+      </AInstrsiInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/si5.sc b/test/sc-ref/si5.sc
new file mode 100644
index 0000000..63490b6
--- /dev/null
+++ b/test/sc-ref/si5.sc
@@ -0,0 +1,152 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrsiInstr>
+       <ASanssinonInstrsi>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <AParenthesesExp6>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AParenthesesExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+        <AInstrbloc>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstrecListeinst>
+           <AInstrsiInstr>
+            <ASanssinonInstrsi>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AParenthesesExp6>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AParenthesesExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+             <AInstrbloc>
+              <ALinstrecListeinst>
+               <AInstrecritureInstr>
+                <AInstrecriture>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <ANombreExp6>
+                       </ANombreExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                </AInstrecriture>
+               </AInstrecritureInstr>
+               <ALinstfinalListeinst>
+               </ALinstfinalListeinst>
+              </ALinstrecListeinst>
+             </AInstrbloc>
+            </ASanssinonInstrsi>
+           </AInstrsiInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </ALinstrecListeinst>
+        </AInstrbloc>
+       </ASanssinonInstrsi>
+      </AInstrsiInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/sub1.sc b/test/sc-ref/sub1.sc
new file mode 100644
index 0000000..67c24ad
--- /dev/null
+++ b/test/sc-ref/sub1.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AMoinsExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AMoinsExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/sub2.sc b/test/sc-ref/sub2.sc
new file mode 100644
index 0000000..67c24ad
--- /dev/null
+++ b/test/sc-ref/sub2.sc
@@ -0,0 +1,44 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AMoinsExp3>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AMoinsExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/sub3.sc b/test/sc-ref/sub3.sc
new file mode 100644
index 0000000..8cc3d2b
--- /dev/null
+++ b/test/sc-ref/sub3.sc
@@ -0,0 +1,52 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstrecritureInstr>
+       <AInstrecriture>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AMoinsExp3>
+            <AMoinsExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AMoinsExp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AMoinsExp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstrecriture>
+      </AInstrecritureInstr>
+      <ALinstfinalListeinst>
+      </ALinstfinalListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tab1.sc b/test/sc-ref/tab1.sc
new file mode 100644
index 0000000..566a603
--- /dev/null
+++ b/test/sc-ref/tab1.sc
@@ -0,0 +1,238 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvartableauDecvar>
+    </ADecvartableauDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVartabVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AVartabVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AVartabVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstraffectInstr>
+         <AInstraffect>
+          <AVartabVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstraffect>
+        </AInstraffectInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVartabVar>
+                   <AExp1Exp>
+                    <AExp2Exp1>
+                     <AExp3Exp2>
+                      <AExp4Exp3>
+                       <AExp5Exp4>
+                        <AExp6Exp5>
+                         <ANombreExp6>
+                         </ANombreExp6>
+                        </AExp6Exp5>
+                       </AExp5Exp4>
+                      </AExp4Exp3>
+                     </AExp3Exp2>
+                    </AExp2Exp1>
+                   </AExp1Exp>
+                  </AVartabVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVartabVar>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AVartabVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVartabVar>
+                     <AExp1Exp>
+                      <AExp2Exp1>
+                       <AExp3Exp2>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <ANombreExp6>
+                           </ANombreExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                       </AExp3Exp2>
+                      </AExp2Exp1>
+                     </AExp1Exp>
+                    </AVartabVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </ALinstrecListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tab2.sc b/test/sc-ref/tab2.sc
new file mode 100644
index 0000000..f0b76e5
--- /dev/null
+++ b/test/sc-ref/tab2.sc
@@ -0,0 +1,296 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvartableauDecvar>
+    </ADecvartableauDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <APlusExp3>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </APlusExp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AVartabVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstraffectInstr>
+         <AInstraffect>
+          <AVartabVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <APlusExp3>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVarsimpleVar>
+                   </AVarsimpleVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </APlusExp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstraffect>
+        </AInstraffectInstr>
+        <ALinstrecListeinst>
+         <AInstraffectInstr>
+          <AInstraffect>
+           <AVartabVar>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <APlusExp3>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVarsimpleVar>
+                    </AVarsimpleVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </APlusExp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AVartabVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstraffect>
+         </AInstraffectInstr>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVartabVar>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AVartabVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVartabVar>
+                     <AExp1Exp>
+                      <AExp2Exp1>
+                       <AExp3Exp2>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <ANombreExp6>
+                           </ANombreExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                       </AExp3Exp2>
+                      </AExp2Exp1>
+                     </AExp1Exp>
+                    </AVartabVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstrecListeinst>
+            <AInstrecritureInstr>
+             <AInstrecriture>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AExp3Exp2>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <AVarExp6>
+                     <AVartabVar>
+                      <AExp1Exp>
+                       <AExp2Exp1>
+                        <AExp3Exp2>
+                         <AExp4Exp3>
+                          <AExp5Exp4>
+                           <AExp6Exp5>
+                            <ANombreExp6>
+                            </ANombreExp6>
+                           </AExp6Exp5>
+                          </AExp5Exp4>
+                         </AExp4Exp3>
+                        </AExp3Exp2>
+                       </AExp2Exp1>
+                      </AExp1Exp>
+                     </AVartabVar>
+                    </AVarExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                </AExp3Exp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+             </AInstrecriture>
+            </AInstrecritureInstr>
+            <ALinstfinalListeinst>
+            </ALinstfinalListeinst>
+           </ALinstrecListeinst>
+          </ALinstrecListeinst>
+         </ALinstrecListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tab3.sc b/test/sc-ref/tab3.sc
new file mode 100644
index 0000000..bc76393
--- /dev/null
+++ b/test/sc-ref/tab3.sc
@@ -0,0 +1,372 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvartableauDecvar>
+    </ADecvartableauDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstraffectInstr>
+         <AInstraffect>
+          <AVartabVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <APlusExp3>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVarsimpleVar>
+                   </AVarsimpleVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </APlusExp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstraffect>
+        </AInstraffectInstr>
+        <ALinstrecListeinst>
+         <AInstraffectInstr>
+          <AInstraffect>
+           <AVarsimpleVar>
+           </AVarsimpleVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstraffect>
+         </AInstraffectInstr>
+         <ALinstrecListeinst>
+          <AInstraffectInstr>
+           <AInstraffect>
+            <AVartabVar>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <APlusExp3>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <AVarExp6>
+                     <AVarsimpleVar>
+                     </AVarsimpleVar>
+                    </AVarExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVarsimpleVar>
+                    </AVarsimpleVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </APlusExp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AVartabVar>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <ANombreExp6>
+                  </ANombreExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstraffect>
+          </AInstraffectInstr>
+          <ALinstrecListeinst>
+           <AInstraffectInstr>
+            <AInstraffect>
+             <AVarsimpleVar>
+             </AVarsimpleVar>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstraffect>
+           </AInstraffectInstr>
+           <ALinstrecListeinst>
+            <AInstraffectInstr>
+             <AInstraffect>
+              <AVartabVar>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <APlusExp3>
+                   <AExp4Exp3>
+                    <AExp5Exp4>
+                     <AExp6Exp5>
+                      <AVarExp6>
+                       <AVarsimpleVar>
+                       </AVarsimpleVar>
+                      </AVarExp6>
+                     </AExp6Exp5>
+                    </AExp5Exp4>
+                   </AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AVarExp6>
+                      <AVarsimpleVar>
+                      </AVarsimpleVar>
+                     </AVarExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </APlusExp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AVartabVar>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AExp3Exp2>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <ANombreExp6>
+                    </ANombreExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                </AExp3Exp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+             </AInstraffect>
+            </AInstraffectInstr>
+            <ALinstrecListeinst>
+             <AInstrecritureInstr>
+              <AInstrecriture>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AVarExp6>
+                      <AVartabVar>
+                       <AExp1Exp>
+                        <AExp2Exp1>
+                         <AExp3Exp2>
+                          <AExp4Exp3>
+                           <AExp5Exp4>
+                            <AExp6Exp5>
+                             <ANombreExp6>
+                             </ANombreExp6>
+                            </AExp6Exp5>
+                           </AExp5Exp4>
+                          </AExp4Exp3>
+                         </AExp3Exp2>
+                        </AExp2Exp1>
+                       </AExp1Exp>
+                      </AVartabVar>
+                     </AVarExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AInstrecriture>
+             </AInstrecritureInstr>
+             <ALinstrecListeinst>
+              <AInstrecritureInstr>
+               <AInstrecriture>
+                <AExp1Exp>
+                 <AExp2Exp1>
+                  <AExp3Exp2>
+                   <AExp4Exp3>
+                    <AExp5Exp4>
+                     <AExp6Exp5>
+                      <AVarExp6>
+                       <AVartabVar>
+                        <AExp1Exp>
+                         <AExp2Exp1>
+                          <AExp3Exp2>
+                           <AExp4Exp3>
+                            <AExp5Exp4>
+                             <AExp6Exp5>
+                              <ANombreExp6>
+                              </ANombreExp6>
+                             </AExp6Exp5>
+                            </AExp5Exp4>
+                           </AExp4Exp3>
+                          </AExp3Exp2>
+                         </AExp2Exp1>
+                        </AExp1Exp>
+                       </AVartabVar>
+                      </AVarExp6>
+                     </AExp6Exp5>
+                    </AExp5Exp4>
+                   </AExp4Exp3>
+                  </AExp3Exp2>
+                 </AExp2Exp1>
+                </AExp1Exp>
+               </AInstrecriture>
+              </AInstrecritureInstr>
+              <ALinstrecListeinst>
+               <AInstrecritureInstr>
+                <AInstrecriture>
+                 <AExp1Exp>
+                  <AExp2Exp1>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <AVarExp6>
+                        <AVartabVar>
+                         <AExp1Exp>
+                          <AExp2Exp1>
+                           <AExp3Exp2>
+                            <AExp4Exp3>
+                             <AExp5Exp4>
+                              <AExp6Exp5>
+                               <ANombreExp6>
+                               </ANombreExp6>
+                              </AExp6Exp5>
+                             </AExp5Exp4>
+                            </AExp4Exp3>
+                           </AExp3Exp2>
+                          </AExp2Exp1>
+                         </AExp1Exp>
+                        </AVartabVar>
+                       </AVarExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                  </AExp2Exp1>
+                 </AExp1Exp>
+                </AInstrecriture>
+               </AInstrecritureInstr>
+               <ALinstfinalListeinst>
+               </ALinstfinalListeinst>
+              </ALinstrecListeinst>
+             </ALinstrecListeinst>
+            </ALinstrecListeinst>
+           </ALinstrecListeinst>
+          </ALinstrecListeinst>
+         </ALinstrecListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tab4.sc b/test/sc-ref/tab4.sc
new file mode 100644
index 0000000..b8a0b76
--- /dev/null
+++ b/test/sc-ref/tab4.sc
@@ -0,0 +1,278 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvartableauDecvar>
+    </ADecvartableauDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVartabVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AVartabVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVartabVar>
+                  <AExp1Exp>
+                   <AExp2Exp1>
+                    <AExp3Exp2>
+                     <AExp4Exp3>
+                      <AExp5Exp4>
+                       <AExp6Exp5>
+                        <ANombreExp6>
+                        </ANombreExp6>
+                       </AExp6Exp5>
+                      </AExp5Exp4>
+                     </AExp4Exp3>
+                    </AExp3Exp2>
+                   </AExp2Exp1>
+                  </AExp1Exp>
+                 </AVartabVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AVartabVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstraffectInstr>
+         <AInstraffect>
+          <AVartabVar>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <APlusExp3>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVartabVar>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AVartabVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <ANombreExp6>
+                 </ANombreExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </APlusExp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AVartabVar>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstraffect>
+        </AInstraffectInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVartabVar>
+                   <AExp1Exp>
+                    <AExp2Exp1>
+                     <AExp3Exp2>
+                      <AExp4Exp3>
+                       <AExp5Exp4>
+                        <AExp6Exp5>
+                         <ANombreExp6>
+                         </ANombreExp6>
+                        </AExp6Exp5>
+                       </AExp5Exp4>
+                      </AExp4Exp3>
+                     </AExp3Exp2>
+                    </AExp2Exp1>
+                   </AExp1Exp>
+                  </AVartabVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstrecListeinst>
+          <AInstrecritureInstr>
+           <AInstrecriture>
+            <AExp1Exp>
+             <AExp2Exp1>
+              <AExp3Exp2>
+               <AExp4Exp3>
+                <AExp5Exp4>
+                 <AExp6Exp5>
+                  <AVarExp6>
+                   <AVartabVar>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </AExp4Exp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AVartabVar>
+                  </AVarExp6>
+                 </AExp6Exp5>
+                </AExp5Exp4>
+               </AExp4Exp3>
+              </AExp3Exp2>
+             </AExp2Exp1>
+            </AExp1Exp>
+           </AInstrecriture>
+          </AInstrecritureInstr>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVartabVar>
+                     <AExp1Exp>
+                      <AExp2Exp1>
+                       <AExp3Exp2>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <ANombreExp6>
+                           </ANombreExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                       </AExp3Exp2>
+                      </AExp2Exp1>
+                     </AExp1Exp>
+                    </AVartabVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstfinalListeinst>
+           </ALinstfinalListeinst>
+          </ALinstrecListeinst>
+         </ALinstrecListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tantque1.sc b/test/sc-ref/tantque1.sc
new file mode 100644
index 0000000..4f9e5eb
--- /dev/null
+++ b/test/sc-ref/tantque1.sc
@@ -0,0 +1,168 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrtantqueInstr>
+        <AInstrtantque>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AParenthesesExp6>
+                <AExp1Exp>
+                 <AExp2Exp1>
+                  <AInfExp2>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <ANombreExp6>
+                       </ANombreExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                   <AExp4Exp3>
+                    <AExp5Exp4>
+                     <AExp6Exp5>
+                      <AVarExp6>
+                       <AVarsimpleVar>
+                       </AVarsimpleVar>
+                      </AVarExp6>
+                     </AExp6Exp5>
+                    </AExp5Exp4>
+                   </AExp4Exp3>
+                  </AInfExp2>
+                 </AExp2Exp1>
+                </AExp1Exp>
+               </AParenthesesExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AInstrbloc>
+          <ALinstrecListeinst>
+           <AInstrecritureInstr>
+            <AInstrecriture>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <AVarExp6>
+                    <AVarsimpleVar>
+                    </AVarsimpleVar>
+                   </AVarExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstrecriture>
+           </AInstrecritureInstr>
+           <ALinstrecListeinst>
+            <AInstraffectInstr>
+             <AInstraffect>
+              <AVarsimpleVar>
+              </AVarsimpleVar>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AExp3Exp2>
+                 <AMoinsExp3>
+                  <AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <AVarExp6>
+                      <AVarsimpleVar>
+                      </AVarsimpleVar>
+                     </AVarExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <ANombreExp6>
+                    </ANombreExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AMoinsExp3>
+                </AExp3Exp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+             </AInstraffect>
+            </AInstraffectInstr>
+            <ALinstfinalListeinst>
+            </ALinstfinalListeinst>
+           </ALinstrecListeinst>
+          </ALinstrecListeinst>
+         </AInstrbloc>
+        </AInstrtantque>
+       </AInstrtantqueInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <ANombreExp6>
+                </ANombreExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstfinalListeinst>
+        </ALinstfinalListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/tantque2.sc b/test/sc-ref/tantque2.sc
new file mode 100644
index 0000000..bc41df0
--- /dev/null
+++ b/test/sc-ref/tantque2.sc
@@ -0,0 +1,278 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrtantqueInstr>
+        <AInstrtantque>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AParenthesesExp6>
+                <AExp1Exp>
+                 <AExp2Exp1>
+                  <AInfExp2>
+                   <AExp3Exp2>
+                    <AExp4Exp3>
+                     <AExp5Exp4>
+                      <AExp6Exp5>
+                       <AVarExp6>
+                        <AVarsimpleVar>
+                        </AVarsimpleVar>
+                       </AVarExp6>
+                      </AExp6Exp5>
+                     </AExp5Exp4>
+                    </AExp4Exp3>
+                   </AExp3Exp2>
+                   <AExp4Exp3>
+                    <AExp5Exp4>
+                     <AExp6Exp5>
+                      <ANombreExp6>
+                      </ANombreExp6>
+                     </AExp6Exp5>
+                    </AExp5Exp4>
+                   </AExp4Exp3>
+                  </AInfExp2>
+                 </AExp2Exp1>
+                </AExp1Exp>
+               </AParenthesesExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+         <AInstrbloc>
+          <ALinstrecListeinst>
+           <AInstraffectInstr>
+            <AInstraffect>
+             <AVarsimpleVar>
+             </AVarsimpleVar>
+             <AExp1Exp>
+              <AExp2Exp1>
+               <AExp3Exp2>
+                <AExp4Exp3>
+                 <AExp5Exp4>
+                  <AExp6Exp5>
+                   <ANombreExp6>
+                   </ANombreExp6>
+                  </AExp6Exp5>
+                 </AExp5Exp4>
+                </AExp4Exp3>
+               </AExp3Exp2>
+              </AExp2Exp1>
+             </AExp1Exp>
+            </AInstraffect>
+           </AInstraffectInstr>
+           <ALinstrecListeinst>
+            <AInstrtantqueInstr>
+             <AInstrtantque>
+              <AExp1Exp>
+               <AExp2Exp1>
+                <AExp3Exp2>
+                 <AExp4Exp3>
+                  <AExp5Exp4>
+                   <AExp6Exp5>
+                    <AParenthesesExp6>
+                     <AExp1Exp>
+                      <AExp2Exp1>
+                       <AInfExp2>
+                        <AExp3Exp2>
+                         <AExp4Exp3>
+                          <AExp5Exp4>
+                           <AExp6Exp5>
+                            <AVarExp6>
+                             <AVarsimpleVar>
+                             </AVarsimpleVar>
+                            </AVarExp6>
+                           </AExp6Exp5>
+                          </AExp5Exp4>
+                         </AExp4Exp3>
+                        </AExp3Exp2>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <ANombreExp6>
+                           </ANombreExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                       </AInfExp2>
+                      </AExp2Exp1>
+                     </AExp1Exp>
+                    </AParenthesesExp6>
+                   </AExp6Exp5>
+                  </AExp5Exp4>
+                 </AExp4Exp3>
+                </AExp3Exp2>
+               </AExp2Exp1>
+              </AExp1Exp>
+              <AInstrbloc>
+               <ALinstrecListeinst>
+                <AInstrecritureInstr>
+                 <AInstrecriture>
+                  <AExp1Exp>
+                   <AExp2Exp1>
+                    <AExp3Exp2>
+                     <AExp4Exp3>
+                      <AExp5Exp4>
+                       <AExp6Exp5>
+                        <AVarExp6>
+                         <AVarsimpleVar>
+                         </AVarsimpleVar>
+                        </AVarExp6>
+                       </AExp6Exp5>
+                      </AExp5Exp4>
+                     </AExp4Exp3>
+                    </AExp3Exp2>
+                   </AExp2Exp1>
+                  </AExp1Exp>
+                 </AInstrecriture>
+                </AInstrecritureInstr>
+                <ALinstrecListeinst>
+                 <AInstrecritureInstr>
+                  <AInstrecriture>
+                   <AExp1Exp>
+                    <AExp2Exp1>
+                     <AExp3Exp2>
+                      <AExp4Exp3>
+                       <AExp5Exp4>
+                        <AExp6Exp5>
+                         <AVarExp6>
+                          <AVarsimpleVar>
+                          </AVarsimpleVar>
+                         </AVarExp6>
+                        </AExp6Exp5>
+                       </AExp5Exp4>
+                      </AExp4Exp3>
+                     </AExp3Exp2>
+                    </AExp2Exp1>
+                   </AExp1Exp>
+                  </AInstrecriture>
+                 </AInstrecritureInstr>
+                 <ALinstrecListeinst>
+                  <AInstraffectInstr>
+                   <AInstraffect>
+                    <AVarsimpleVar>
+                    </AVarsimpleVar>
+                    <AExp1Exp>
+                     <AExp2Exp1>
+                      <AExp3Exp2>
+                       <APlusExp3>
+                        <AExp4Exp3>
+                         <AExp5Exp4>
+                          <AExp6Exp5>
+                           <AVarExp6>
+                            <AVarsimpleVar>
+                            </AVarsimpleVar>
+                           </AVarExp6>
+                          </AExp6Exp5>
+                         </AExp5Exp4>
+                        </AExp4Exp3>
+                        <AExp5Exp4>
+                         <AExp6Exp5>
+                          <ANombreExp6>
+                          </ANombreExp6>
+                         </AExp6Exp5>
+                        </AExp5Exp4>
+                       </APlusExp3>
+                      </AExp3Exp2>
+                     </AExp2Exp1>
+                    </AExp1Exp>
+                   </AInstraffect>
+                  </AInstraffectInstr>
+                  <ALinstfinalListeinst>
+                  </ALinstfinalListeinst>
+                 </ALinstrecListeinst>
+                </ALinstrecListeinst>
+               </ALinstrecListeinst>
+              </AInstrbloc>
+             </AInstrtantque>
+            </AInstrtantqueInstr>
+            <ALinstrecListeinst>
+             <AInstraffectInstr>
+              <AInstraffect>
+               <AVarsimpleVar>
+               </AVarsimpleVar>
+               <AExp1Exp>
+                <AExp2Exp1>
+                 <AExp3Exp2>
+                  <APlusExp3>
+                   <AExp4Exp3>
+                    <AExp5Exp4>
+                     <AExp6Exp5>
+                      <AVarExp6>
+                       <AVarsimpleVar>
+                       </AVarsimpleVar>
+                      </AVarExp6>
+                     </AExp6Exp5>
+                    </AExp5Exp4>
+                   </AExp4Exp3>
+                   <AExp5Exp4>
+                    <AExp6Exp5>
+                     <ANombreExp6>
+                     </ANombreExp6>
+                    </AExp6Exp5>
+                   </AExp5Exp4>
+                  </APlusExp3>
+                 </AExp3Exp2>
+                </AExp2Exp1>
+               </AExp1Exp>
+              </AInstraffect>
+             </AInstraffectInstr>
+             <ALinstfinalListeinst>
+             </ALinstfinalListeinst>
+            </ALinstrecListeinst>
+           </ALinstrecListeinst>
+          </ALinstrecListeinst>
+         </AInstrbloc>
+        </AInstrtantque>
+       </AInstrtantqueInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varglob1.sc b/test/sc-ref/varglob1.sc
new file mode 100644
index 0000000..919a434
--- /dev/null
+++ b/test/sc-ref/varglob1.sc
@@ -0,0 +1,66 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varglob2.sc b/test/sc-ref/varglob2.sc
new file mode 100644
index 0000000..96bbeca
--- /dev/null
+++ b/test/sc-ref/varglob2.sc
@@ -0,0 +1,74 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <APlusExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </APlusExp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varglob3.sc b/test/sc-ref/varglob3.sc
new file mode 100644
index 0000000..f4d5362
--- /dev/null
+++ b/test/sc-ref/varglob3.sc
@@ -0,0 +1,114 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarldecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+    <ADecvarListedecvarbis>
+     <ADecvarentierDecvar>
+     </ADecvarentierDecvar>
+    </ADecvarListedecvarbis>
+   </ADecvarldecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstfinalListeinst>
+         </ALinstfinalListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varglob4.sc b/test/sc-ref/varglob4.sc
new file mode 100644
index 0000000..9cd9868
--- /dev/null
+++ b/test/sc-ref/varglob4.sc
@@ -0,0 +1,102 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarldecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+    <ADecvarListedecvarbis>
+     <ADecvarentierDecvar>
+     </ADecvarentierDecvar>
+    </ADecvarListedecvarbis>
+   </ADecvarldecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <AInstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <APlusExp3>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </APlusExp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstfinalListeinst>
+        </ALinstfinalListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </AInstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varloc1.sc b/test/sc-ref/varloc1.sc
new file mode 100644
index 0000000..55761e9
--- /dev/null
+++ b/test/sc-ref/varloc1.sc
@@ -0,0 +1,66 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varloc2.sc b/test/sc-ref/varloc2.sc
new file mode 100644
index 0000000..87932be
--- /dev/null
+++ b/test/sc-ref/varloc2.sc
@@ -0,0 +1,74 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <APlusExp3>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </APlusExp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varloc3.sc b/test/sc-ref/varloc3.sc
new file mode 100644
index 0000000..4d594da
--- /dev/null
+++ b/test/sc-ref/varloc3.sc
@@ -0,0 +1,114 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </AExp4Exp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstfinalListeinst>
+         </ALinstfinalListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varloc4.sc b/test/sc-ref/varloc4.sc
new file mode 100644
index 0000000..e6e9d7d
--- /dev/null
+++ b/test/sc-ref/varloc4.sc
@@ -0,0 +1,102 @@
+<Start>
+ <ALdecfoncProgramme>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarldecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+      <ADecvarListedecvarbis>
+       <ADecvarentierDecvar>
+       </ADecvarentierDecvar>
+      </ADecvarListedecvarbis>
+     </ADecvarldecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstrecritureInstr>
+         <AInstrecriture>
+          <AExp1Exp>
+           <AExp2Exp1>
+            <AExp3Exp2>
+             <APlusExp3>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+              <AExp5Exp4>
+               <AExp6Exp5>
+                <AVarExp6>
+                 <AVarsimpleVar>
+                 </AVarsimpleVar>
+                </AVarExp6>
+               </AExp6Exp5>
+              </AExp5Exp4>
+             </APlusExp3>
+            </AExp3Exp2>
+           </AExp2Exp1>
+          </AExp1Exp>
+         </AInstrecriture>
+        </AInstrecritureInstr>
+        <ALinstfinalListeinst>
+        </ALinstfinalListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncfinalListedecfonc>
+   </ALdecfoncfinalListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ALdecfoncProgramme>
+</Start>
diff --git a/test/sc-ref/varloc5.sc b/test/sc-ref/varloc5.sc
new file mode 100644
index 0000000..92acf2b
--- /dev/null
+++ b/test/sc-ref/varloc5.sc
@@ -0,0 +1,136 @@
+<Start>
+ <ADecvarldecfoncProgramme>
+  <AOptdecvar>
+   <ADecvarListedecvar>
+    <ADecvarentierDecvar>
+    </ADecvarentierDecvar>
+   </ADecvarListedecvar>
+  </AOptdecvar>
+  <ALdecfoncrecListedecfonc>
+   <ADecvarinstrDecfonc>
+    <ASansparamListeparam>
+    </ASansparamListeparam>
+    <AOptdecvar>
+     <ADecvarListedecvar>
+      <ADecvarentierDecvar>
+      </ADecvarentierDecvar>
+     </ADecvarListedecvar>
+    </AOptdecvar>
+    <AInstrbloc>
+     <ALinstrecListeinst>
+      <AInstraffectInstr>
+       <AInstraffect>
+        <AVarsimpleVar>
+        </AVarsimpleVar>
+        <AExp1Exp>
+         <AExp2Exp1>
+          <AExp3Exp2>
+           <AExp4Exp3>
+            <AExp5Exp4>
+             <AExp6Exp5>
+              <ANombreExp6>
+              </ANombreExp6>
+             </AExp6Exp5>
+            </AExp5Exp4>
+           </AExp4Exp3>
+          </AExp3Exp2>
+         </AExp2Exp1>
+        </AExp1Exp>
+       </AInstraffect>
+      </AInstraffectInstr>
+      <ALinstrecListeinst>
+       <AInstrecritureInstr>
+        <AInstrecriture>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <AVarExp6>
+                <AVarsimpleVar>
+                </AVarsimpleVar>
+               </AVarExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstrecriture>
+       </AInstrecritureInstr>
+       <ALinstfinalListeinst>
+       </ALinstfinalListeinst>
+      </ALinstrecListeinst>
+     </ALinstrecListeinst>
+    </AInstrbloc>
+   </ADecvarinstrDecfonc>
+   <ALdecfoncrecListedecfonc>
+    <AInstrDecfonc>
+     <ASansparamListeparam>
+     </ASansparamListeparam>
+     <AInstrbloc>
+      <ALinstrecListeinst>
+       <AInstraffectInstr>
+        <AInstraffect>
+         <AVarsimpleVar>
+         </AVarsimpleVar>
+         <AExp1Exp>
+          <AExp2Exp1>
+           <AExp3Exp2>
+            <AExp4Exp3>
+             <AExp5Exp4>
+              <AExp6Exp5>
+               <ANombreExp6>
+               </ANombreExp6>
+              </AExp6Exp5>
+             </AExp5Exp4>
+            </AExp4Exp3>
+           </AExp3Exp2>
+          </AExp2Exp1>
+         </AExp1Exp>
+        </AInstraffect>
+       </AInstraffectInstr>
+       <ALinstrecListeinst>
+        <AInstrappelInstr>
+         <AInstrappel>
+          <AAppelfct>
+           <AFinalListeexp>
+           </AFinalListeexp>
+          </AAppelfct>
+         </AInstrappel>
+        </AInstrappelInstr>
+        <ALinstrecListeinst>
+         <AInstrecritureInstr>
+          <AInstrecriture>
+           <AExp1Exp>
+            <AExp2Exp1>
+             <AExp3Exp2>
+              <AExp4Exp3>
+               <AExp5Exp4>
+                <AExp6Exp5>
+                 <AVarExp6>
+                  <AVarsimpleVar>
+                  </AVarsimpleVar>
+                 </AVarExp6>
+                </AExp6Exp5>
+               </AExp5Exp4>
+              </AExp4Exp3>
+             </AExp3Exp2>
+            </AExp2Exp1>
+           </AExp1Exp>
+          </AInstrecriture>
+         </AInstrecritureInstr>
+         <ALinstfinalListeinst>
+         </ALinstfinalListeinst>
+        </ALinstrecListeinst>
+       </ALinstrecListeinst>
+      </ALinstrecListeinst>
+     </AInstrbloc>
+    </AInstrDecfonc>
+    <ALdecfoncfinalListedecfonc>
+    </ALdecfoncfinalListedecfonc>
+   </ALdecfoncrecListedecfonc>
+  </ALdecfoncrecListedecfonc>
+ </ADecvarldecfoncProgramme>
+</Start>
diff --git a/test/ts-ref/add1.ts b/test/ts-ref/add1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/add1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/add2.ts b/test/ts-ref/add2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/add2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/affect1.ts b/test/ts-ref/affect1.ts
new file mode 100644
index 0000000..f223443
--- /dev/null
+++ b/test/ts-ref/affect1.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+a	VAR  	entier	0
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/affect2.ts b/test/ts-ref/affect2.ts
new file mode 100644
index 0000000..53497cf
--- /dev/null
+++ b/test/ts-ref/affect2.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+a	VAR  	entier	0
diff --git a/test/ts-ref/affect3.ts b/test/ts-ref/affect3.ts
new file mode 100644
index 0000000..e4357a9
--- /dev/null
+++ b/test/ts-ref/affect3.ts
@@ -0,0 +1,7 @@
+TABLE GLOBALE
+f	FCT	nul	1
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+TABLE LOCALE : main
+a	VAR  	entier	0
diff --git a/test/ts-ref/and1.ts b/test/ts-ref/and1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/and1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/and2.ts b/test/ts-ref/and2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/and2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/and3.ts b/test/ts-ref/and3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/and3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/and4.ts b/test/ts-ref/and4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/and4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/and5.ts b/test/ts-ref/and5.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/and5.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel-param1.ts b/test/ts-ref/appel-param1.ts
new file mode 100644
index 0000000..cc61134
--- /dev/null
+++ b/test/ts-ref/appel-param1.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+f	FCT	nul	1
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel-param2.ts b/test/ts-ref/appel-param2.ts
new file mode 100644
index 0000000..eced11b
--- /dev/null
+++ b/test/ts-ref/appel-param2.ts
@@ -0,0 +1,7 @@
+TABLE GLOBALE
+f	FCT	nul	2
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+b	PARAM	entier	4
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel-param3.ts b/test/ts-ref/appel-param3.ts
new file mode 100644
index 0000000..c967f70
--- /dev/null
+++ b/test/ts-ref/appel-param3.ts
@@ -0,0 +1,10 @@
+TABLE GLOBALE
+f	FCT	nul	5
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+b	PARAM	entier	4
+c	PARAM	entier	8
+d	PARAM	entier	12
+e	PARAM	entier	16
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel-retour1.ts b/test/ts-ref/appel-retour1.ts
new file mode 100644
index 0000000..9b80e9a
--- /dev/null
+++ b/test/ts-ref/appel-retour1.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+f	FCT	entier	1
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel1.ts b/test/ts-ref/appel1.ts
new file mode 100644
index 0000000..0761e6d
--- /dev/null
+++ b/test/ts-ref/appel1.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+f	FCT	nul	0
+main	FCT	nul	0
+TABLE LOCALE : f
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel2.ts b/test/ts-ref/appel2.ts
new file mode 100644
index 0000000..9e966d9
--- /dev/null
+++ b/test/ts-ref/appel2.ts
@@ -0,0 +1,7 @@
+TABLE GLOBALE
+f	FCT	nul	0
+g	FCT	nul	0
+main	FCT	nul	0
+TABLE LOCALE : f
+TABLE LOCALE : g
+TABLE LOCALE : main
diff --git a/test/ts-ref/appel3.ts b/test/ts-ref/appel3.ts
new file mode 100644
index 0000000..9e966d9
--- /dev/null
+++ b/test/ts-ref/appel3.ts
@@ -0,0 +1,7 @@
+TABLE GLOBALE
+f	FCT	nul	0
+g	FCT	nul	0
+main	FCT	nul	0
+TABLE LOCALE : f
+TABLE LOCALE : g
+TABLE LOCALE : main
diff --git a/test/ts-ref/div1.ts b/test/ts-ref/div1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/div1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/div2.ts b/test/ts-ref/div2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/div2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/div3.ts b/test/ts-ref/div3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/div3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/div4.ts b/test/ts-ref/div4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/div4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/ecrire1.ts b/test/ts-ref/ecrire1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/ecrire1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/ecrire2.ts b/test/ts-ref/ecrire2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/ecrire2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/egal1.ts b/test/ts-ref/egal1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/egal1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/egal2.ts b/test/ts-ref/egal2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/egal2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/egal3.ts b/test/ts-ref/egal3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/egal3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/err5.ts b/test/ts-ref/err5.ts
new file mode 100644
index 0000000..f53ebb0
--- /dev/null
+++ b/test/ts-ref/err5.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+f	FCT	0
+main	FCT	0
+TABLE LOCALE : f
+TABLE LOCALE : main
+f	VAR  	1	0
diff --git a/test/ts-ref/fibo.ts b/test/ts-ref/fibo.ts
new file mode 100644
index 0000000..49fbafb
--- /dev/null
+++ b/test/ts-ref/fibo.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+fibo	FCT	entier	1
+main	FCT	nul	0
+TABLE LOCALE : fibo
+n	PARAM	entier	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/inf1.ts b/test/ts-ref/inf1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/inf1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/inf2.ts b/test/ts-ref/inf2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/inf2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/inf3.ts b/test/ts-ref/inf3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/inf3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/inf4.ts b/test/ts-ref/inf4.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/inf4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/modulo1.ts b/test/ts-ref/modulo1.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/modulo1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/mult1.ts b/test/ts-ref/mult1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/mult1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/mult2.ts b/test/ts-ref/mult2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/mult2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/mult3.ts b/test/ts-ref/mult3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/mult3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/not1.ts b/test/ts-ref/not1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/not1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/not2.ts b/test/ts-ref/not2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/not2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/not3.ts b/test/ts-ref/not3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/not3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/or1.ts b/test/ts-ref/or1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/or1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/or2.ts b/test/ts-ref/or2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/or2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/or3.ts b/test/ts-ref/or3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/or3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/or4.ts b/test/ts-ref/or4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/or4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/or5.ts b/test/ts-ref/or5.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/or5.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/parenth1.ts b/test/ts-ref/parenth1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/parenth1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/parenth2.ts b/test/ts-ref/parenth2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/parenth2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio23-1.ts b/test/ts-ref/prio23-1.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/prio23-1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio23-2.ts b/test/ts-ref/prio23-2.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/prio23-2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio23-3.ts b/test/ts-ref/prio23-3.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/prio23-3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio23-4.ts b/test/ts-ref/prio23-4.ts
new file mode 100644
index 0000000..4e8bb82
--- /dev/null
+++ b/test/ts-ref/prio23-4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio34-1.ts b/test/ts-ref/prio34-1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio34-1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio34-2.ts b/test/ts-ref/prio34-2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio34-2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio34-3.ts b/test/ts-ref/prio34-3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio34-3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio34-4.ts b/test/ts-ref/prio34-4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio34-4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio45-1.ts b/test/ts-ref/prio45-1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio45-1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio45-2.ts b/test/ts-ref/prio45-2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio45-2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio45-3.ts b/test/ts-ref/prio45-3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio45-3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio45-4.ts b/test/ts-ref/prio45-4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio45-4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio56-1.ts b/test/ts-ref/prio56-1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio56-1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio56-2.ts b/test/ts-ref/prio56-2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio56-2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio67-1.ts b/test/ts-ref/prio67-1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio67-1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/prio67-2.ts b/test/ts-ref/prio67-2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/prio67-2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/rec1.ts b/test/ts-ref/rec1.ts
new file mode 100644
index 0000000..9b80e9a
--- /dev/null
+++ b/test/ts-ref/rec1.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+f	FCT	entier	1
+main	FCT	nul	0
+TABLE LOCALE : f
+a	PARAM	entier	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/si1.ts b/test/ts-ref/si1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/si1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/si2.ts b/test/ts-ref/si2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/si2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/si3.ts b/test/ts-ref/si3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/si3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/si4.ts b/test/ts-ref/si4.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/si4.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/si5.ts b/test/ts-ref/si5.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/si5.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/sub1.ts b/test/ts-ref/sub1.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/sub1.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/sub2.ts b/test/ts-ref/sub2.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/sub2.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/sub3.ts b/test/ts-ref/sub3.ts
new file mode 100644
index 0000000..6b21c85
--- /dev/null
+++ b/test/ts-ref/sub3.ts
@@ -0,0 +1,3 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/tab1.ts b/test/ts-ref/tab1.ts
new file mode 100644
index 0000000..1b4c646
--- /dev/null
+++ b/test/ts-ref/tab1.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+tab	TAB  	entier	0	3
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/tab2.ts b/test/ts-ref/tab2.ts
new file mode 100644
index 0000000..5a98869
--- /dev/null
+++ b/test/ts-ref/tab2.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+tab	TAB  	entier	0	5
+main	FCT	nul	0
+TABLE LOCALE : main
+base	VAR  	entier	0
diff --git a/test/ts-ref/tab3.ts b/test/ts-ref/tab3.ts
new file mode 100644
index 0000000..f04742b
--- /dev/null
+++ b/test/ts-ref/tab3.ts
@@ -0,0 +1,6 @@
+TABLE GLOBALE
+tab	TAB  	entier	0	5
+main	FCT	nul	0
+TABLE LOCALE : main
+base	VAR  	entier	0
+offset	VAR  	entier	4
diff --git a/test/ts-ref/tab4.ts b/test/ts-ref/tab4.ts
new file mode 100644
index 0000000..1b4c646
--- /dev/null
+++ b/test/ts-ref/tab4.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+tab	TAB  	entier	0	3
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/tantque1.ts b/test/ts-ref/tantque1.ts
new file mode 100644
index 0000000..53497cf
--- /dev/null
+++ b/test/ts-ref/tantque1.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+a	VAR  	entier	0
diff --git a/test/ts-ref/tantque2.ts b/test/ts-ref/tantque2.ts
new file mode 100644
index 0000000..1c4be04
--- /dev/null
+++ b/test/ts-ref/tantque2.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+a	VAR  	entier	0
+b	VAR  	entier	4
diff --git a/test/ts-ref/tri.ts b/test/ts-ref/tri.ts
new file mode 100644
index 0000000..d1113f4
--- /dev/null
+++ b/test/ts-ref/tri.ts
@@ -0,0 +1,21 @@
+TABLE GLOBALE
+tab	TAB  	entier	0	10
+afficher	FCT	nul	1
+echanger	FCT	nul	2
+initialiser	FCT	nul	0
+main	FCT	nul	0
+trier	FCT	nul	1
+TABLE LOCALE : afficher
+i	VAR  	entier	0
+n	PARAM	entier	0
+TABLE LOCALE : echanger
+i	PARAM	entier	0
+j	PARAM	entier	4
+temp	VAR  	entier	0
+TABLE LOCALE : initialiser
+TABLE LOCALE : main
+TABLE LOCALE : trier
+echange	VAR  	entier	0
+j	VAR  	entier	4
+m	VAR  	entier	8
+n	PARAM	entier	0
diff --git a/test/ts-ref/varglob1.ts b/test/ts-ref/varglob1.ts
new file mode 100644
index 0000000..18438c4
--- /dev/null
+++ b/test/ts-ref/varglob1.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+variable	VAR  	entier	0
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/varglob2.ts b/test/ts-ref/varglob2.ts
new file mode 100644
index 0000000..18438c4
--- /dev/null
+++ b/test/ts-ref/varglob2.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+variable	VAR  	entier	0
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/varglob3.ts b/test/ts-ref/varglob3.ts
new file mode 100644
index 0000000..9095069
--- /dev/null
+++ b/test/ts-ref/varglob3.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+var1	VAR  	entier	0
+var2	VAR  	entier	4
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/varglob4.ts b/test/ts-ref/varglob4.ts
new file mode 100644
index 0000000..9095069
--- /dev/null
+++ b/test/ts-ref/varglob4.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+var1	VAR  	entier	0
+var2	VAR  	entier	4
+main	FCT	nul	0
+TABLE LOCALE : main
diff --git a/test/ts-ref/varloc1.ts b/test/ts-ref/varloc1.ts
new file mode 100644
index 0000000..43d6f3e
--- /dev/null
+++ b/test/ts-ref/varloc1.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+variable	VAR  	entier	0
diff --git a/test/ts-ref/varloc2.ts b/test/ts-ref/varloc2.ts
new file mode 100644
index 0000000..43d6f3e
--- /dev/null
+++ b/test/ts-ref/varloc2.ts
@@ -0,0 +1,4 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+variable	VAR  	entier	0
diff --git a/test/ts-ref/varloc3.ts b/test/ts-ref/varloc3.ts
new file mode 100644
index 0000000..1fcf021
--- /dev/null
+++ b/test/ts-ref/varloc3.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+var1	VAR  	entier	0
+var2	VAR  	entier	4
diff --git a/test/ts-ref/varloc4.ts b/test/ts-ref/varloc4.ts
new file mode 100644
index 0000000..1fcf021
--- /dev/null
+++ b/test/ts-ref/varloc4.ts
@@ -0,0 +1,5 @@
+TABLE GLOBALE
+main	FCT	nul	0
+TABLE LOCALE : main
+var1	VAR  	entier	0
+var2	VAR  	entier	4
diff --git a/test/ts-ref/varloc5.ts b/test/ts-ref/varloc5.ts
new file mode 100644
index 0000000..dfa4f8a
--- /dev/null
+++ b/test/ts-ref/varloc5.ts
@@ -0,0 +1,7 @@
+TABLE GLOBALE
+var1	VAR  	entier	0
+f	FCT	nul	0
+main	FCT	nul	0
+TABLE LOCALE : f
+var1	VAR  	entier	0
+TABLE LOCALE : main
-- 
GitLab