diff --git a/__test__/ERCalculator.test.ts b/__test__/ERCalculator.test.ts
index 176cf19f47449c57c28f86ff40885bdad4899492..6ab9848109747d154510a220b88e41f59324eb31 100644
--- a/__test__/ERCalculator.test.ts
+++ b/__test__/ERCalculator.test.ts
@@ -1,7 +1,23 @@
 import age from '../src/Enum/AgeBracket';
 import sex from '../src/Enum/Sex';
+import ERCalculator from '../src/Services/ERCalculator';
+import '@testing-library/jest-dom/extend-expect';
 
-const ERCalculator = require('../src/Services/ERCalculator');
+expect.extend({
+  toBeWithinRange(received, result, margin) {
+    const pass = received >= result - margin && received <= result + margin;
+    if (pass) {
+      return {
+        message: (): string => `expected ${received} not to be within range ${result} +- ${margin}`,
+        pass: true,
+      };
+    }
+    return {
+      message: (): string => `expected ${received} to be within range ${result} +- ${margin}`,
+      pass: false,
+    };
+  },
+});
 
 describe('Check', () => {
   it("Probar si se devuelve 'true' cuando el tipo es IndividualMaternity", () => { expect(ERCalculator.isIndividualMaternity({ pregnantWomen: 5, lactatingWomen: 2 })).toBe(true); });
@@ -46,3 +62,577 @@ describe('Verificar si funciona el cálculo del TMB (mayores a 18 años)', () =>
     }, [11.711, 587.7, 1.95, 1.65, 1.85, 1.55]))).toBe(1362);
   });
 });
+
+describe('Verificar si funciona el cálculo del NAF (mayores a 18 años)', () => {
+  it('Mezclado urbano/rural', () => {
+    expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55],
+      {
+        urbanPercentage: 60,
+        activeUrbanPAL: 30,
+        lowUrbanPAL: 70,
+        ruralPercentage: 40,
+        activeRuralPAL: 80,
+        lowRuralPAL: 20,
+      })).toBeCloseTo(1.74);
+  });
+  it('Solo urbano', () => {
+    expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55],
+      {
+        urbanPercentage: 100,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 0,
+        activeRuralPAL: 80,
+        lowRuralPAL: 20,
+      })).toBeCloseTo(1.66);
+  });
+  it('Solo rural', () => {
+    expect(ERCalculator.calculatePAL([15.057, 692.2, 1.95, 1.65, 1.85, 1.55],
+      {
+        urbanPercentage: 0,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 100,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      })).toBeCloseTo(1.87);
+  });
+});
+
+describe('Verificar si funciona la ponderacion del RE para mujeres pasando IndividualMaternity', () => {
+  it('Mezclado con mujeres embarazadas y lactando', () => {
+    expect(Math.round(ERCalculator.calculateERWomenIndividual({
+      age: age.a18_29,
+      sex: sex.Female,
+      medianWeight: 73.1,
+      population: 48,
+    },
+    [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      pregnantWomen: 15,
+      lactatingWomen: 4,
+    },
+    2499))).toBeWithinRange(2584, 1);
+  });
+  it('Solo con mujeres embarazadas', () => {
+    expect(Math.round(ERCalculator.calculateERWomenIndividual({
+      age: age.a18_29,
+      sex: sex.Female,
+      medianWeight: 73.1,
+      population: 48,
+    },
+    [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      pregnantWomen: 15,
+      lactatingWomen: 0,
+    },
+    2499))).toBeWithinRange(2564, 1);
+  });
+  it('Solo con mujeres lactando', () => {
+    expect(Math.round(ERCalculator.calculateERWomenIndividual({
+      age: age.a18_29,
+      sex: sex.Female,
+      medianWeight: 73.1,
+      population: 48,
+    },
+    [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      pregnantWomen: 0,
+      lactatingWomen: 10,
+    },
+    2499))).toBeWithinRange(2551, 1);
+  });
+  it('Sin mujeres embarazadas/lactando', () => {
+    expect(Math.round(ERCalculator.calculateERWomenIndividual({
+      age: age.a18_29,
+      sex: sex.Female,
+      medianWeight: 73.1,
+      population: 48,
+    },
+    [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      pregnantWomen: 0,
+      lactatingWomen: 0,
+    },
+    2499))).toBeWithinRange(2499, 1);
+  });
+});
+
+describe('Verificar si funciona la ponderacion del RE para mujeres pasando PopulationMaternity', () => {
+  it('Mezclado con mujeres embarazadas y lactando', () => {
+    expect(Math.round(ERCalculator.calculateERWomenPopulation(
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        countryBirthRate: 14,
+        countryWomenInAgeGroup: 315790,
+        countryPopulation: 3453691,
+      },
+      2499,
+    ))).toBeWithinRange(2542, 1);
+  });
+  it('Sin mujeres embarazadas/lactando', () => {
+    expect(Math.round(ERCalculator.calculateERWomenPopulation(
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        countryBirthRate: 0,
+        countryWomenInAgeGroup: 315790,
+        countryPopulation: 3453691,
+      },
+      2499,
+    ))).toBeWithinRange(2499, 1);
+  });
+});
+
+describe('Verificar si funciona calculo del RE para menores de 1 año', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculateLessThanAYear({
+      age: age.m3,
+      sex: sex.Female,
+      medianWeight: 6,
+      population: 9,
+    },
+    [-152, 92.8, 68])).toStrictEqual({
+      group: {
+        age: age.m3,
+        sex: sex.Female,
+        medianWeight: 6,
+        population: 9,
+      },
+      perCapita: 473,
+      total: 4255,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculateLessThanAYear({
+      age: age.m11,
+      sex: sex.Male,
+      medianWeight: 12,
+      population: 7,
+    },
+    [-99.4, 88.6, 22])).toStrictEqual({
+      group: {
+        age: age.m11,
+        sex: sex.Male,
+        medianWeight: 12,
+        population: 7,
+      },
+      perCapita: 986,
+      total: 6901,
+    });
+  });
+});
+
+describe('Verificar si funciona calculo del RE para personas de 1 a 5 años', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculate1To5Years({
+      age: age.a5,
+      sex: sex.Female,
+      medianWeight: 23,
+      population: 6,
+    },
+    [263.4, 65.3, -0.454, 10])).toStrictEqual({
+      group: {
+        age: age.a5,
+        sex: sex.Female,
+        medianWeight: 23,
+        population: 6,
+      },
+      perCapita: 1535,
+      total: 9211,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculate1To5Years({
+      age: age.a3,
+      sex: sex.Male,
+      medianWeight: 20,
+      population: 9,
+    },
+    [310.2, 63.3, -0.263, 12])).toStrictEqual({
+      group: {
+        age: age.a3,
+        sex: sex.Male,
+        medianWeight: 20,
+        population: 9,
+      },
+      perCapita: 1483,
+      total: 13347,
+    });
+  });
+});
+
+describe('Verificar si funciona calculo del RE para personas de 6 a 17 años', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculate6To17Years({
+      age: age.a16,
+      sex: sex.Female,
+      medianWeight: 53,
+      population: 6,
+    },
+    [263.4, 65.3, -0.454, 5, -15, 15],
+    {
+      minorPAL: {
+        lowPALPrevalence: 0,
+        moderatePALPrevalence: 100,
+        intensePALPrevalence: 0,
+      },
+      adultPAL: undefined,
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a16,
+        sex: sex.Female,
+        medianWeight: 53,
+        population: 6,
+      },
+      perCapita: 2454,
+      total: 14724,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculate6To17Years({
+      age: age.a13,
+      sex: sex.Male,
+      medianWeight: 37,
+      population: 6,
+    },
+    [310.2, 63.3, -0.263, 33, -15, 15],
+    {
+      minorPAL: {
+        lowPALPrevalence: 0,
+        moderatePALPrevalence: 100,
+        intensePALPrevalence: 0,
+      },
+      adultPAL: undefined,
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a13,
+        sex: sex.Male,
+        medianWeight: 37,
+        population: 6,
+      },
+      perCapita: 2325,
+      total: 13952,
+    });
+  });
+  it('Varones sin pasar data de actividad fisica', () => {
+    expect(() => {
+      ERCalculator.calculate6To17Years({
+        age: age.a13,
+        sex: sex.Male,
+        medianWeight: 37,
+        population: 6,
+      },
+      [310.2, 63.3, -0.263, 33, -15, 15],
+      {
+        minorPAL: undefined,
+        adultPAL: undefined,
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+});
+
+describe('Verificar si funciona calculo del RE para personas de 18 a 29 años', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculate18To29Years({
+      age: age.a18_29,
+      sex: sex.Female,
+      medianWeight: 70,
+      population: 10,
+    },
+    [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: {
+        pregnantWomen: 1,
+        lactatingWomen: 2,
+      },
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a18_29,
+        sex: sex.Female,
+        medianWeight: 70,
+        population: 10,
+      },
+      perCapita: 2695,
+      total: 26954,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculate18To29Years({
+      age: age.a18_29,
+      sex: sex.Male,
+      medianWeight: 83,
+      population: 6,
+    },
+    [15.057, 692.2, 1.95, 1.65, 1.85, 1.55],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a18_29,
+        sex: sex.Male,
+        medianWeight: 83,
+        population: 6,
+      },
+      perCapita: 3344,
+      total: 20066,
+    });
+  });
+  it('Mujeres sin pasar data de maternidad', () => {
+    expect(() => {
+      ERCalculator.calculate18To29Years({
+        age: age.a18_29,
+        sex: sex.Female,
+        medianWeight: 70,
+        population: 10,
+      },
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        minorPAL: undefined,
+        adultPAL: {
+          urbanPercentage: 70,
+          activeUrbanPAL: 36,
+          lowUrbanPAL: 64,
+          ruralPercentage: 30,
+          activeRuralPAL: 74,
+          lowRuralPAL: 26,
+        },
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+  it('Hombres sin pasar data de NAF', () => {
+    expect(() => {
+      ERCalculator.calculate18To29Years({
+        age: age.a18_29,
+        sex: sex.Male,
+        medianWeight: 70,
+        population: 10,
+      },
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        minorPAL: undefined,
+        adultPAL: undefined,
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+});
+
+describe('Verificar si funciona calculo del RE para personas de 30 a 59 años', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculate30To59Years({
+      age: age.a30_59,
+      sex: sex.Female,
+      medianWeight: 76,
+      population: 10,
+    },
+    [8.126, 845.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: undefined,
+      maternity30To59: {
+        pregnantWomen: 0,
+        lactatingWomen: 0,
+      },
+    })).toStrictEqual({
+      group: {
+        age: age.a30_59,
+        sex: sex.Female,
+        medianWeight: 76,
+        population: 10,
+      },
+      perCapita: 2520,
+      total: 25199,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculate30To59Years({
+      age: age.a30_59,
+      sex: sex.Male,
+      medianWeight: 83,
+      population: 6,
+    },
+    [11.472, 873.1, 1.95, 1.65, 1.85, 1.55],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a30_59,
+        sex: sex.Male,
+        medianWeight: 83,
+        population: 6,
+      },
+      perCapita: 3143,
+      total: 18861,
+    });
+  });
+  it('Mujeres sin pasar data de maternidad', () => {
+    expect(() => {
+      ERCalculator.calculate30To59Years({
+        age: age.a30_59,
+        sex: sex.Female,
+        medianWeight: 70,
+        population: 10,
+      },
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        minorPAL: undefined,
+        adultPAL: {
+          urbanPercentage: 70,
+          activeUrbanPAL: 36,
+          lowUrbanPAL: 64,
+          ruralPercentage: 30,
+          activeRuralPAL: 74,
+          lowRuralPAL: 26,
+        },
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+  it('Hombres sin pasar data de NAF', () => {
+    expect(() => {
+      ERCalculator.calculate30To59Years({
+        age: age.a30_59,
+        sex: sex.Male,
+        medianWeight: 70,
+        population: 10,
+      },
+      [14.818, 486.6, 1.95, 1.65, 1.85, 1.55, 208, 251],
+      {
+        minorPAL: undefined,
+        adultPAL: undefined,
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+});
+
+describe('Verificar si funciona calculo del RE para personas de mas de 60 años', () => {
+  it('Mujeres', () => {
+    expect(ERCalculator.calculate60PlusYears({
+      age: age.a60,
+      sex: sex.Female,
+      medianWeight: 70,
+      population: 10,
+    },
+    [9.082, 658.5, 1.95, 1.65, 1.85, 1.55],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a60,
+        sex: sex.Female,
+        medianWeight: 70,
+        population: 10,
+      },
+      perCapita: 2229,
+      total: 22289,
+    });
+  });
+  it('Varones', () => {
+    expect(ERCalculator.calculate60PlusYears({
+      age: age.a60,
+      sex: sex.Male,
+      medianWeight: 75,
+      population: 6,
+    },
+    [11.711, 587.7, 1.95, 1.65, 1.85, 1.55],
+    {
+      minorPAL: undefined,
+      adultPAL: {
+        urbanPercentage: 70,
+        activeUrbanPAL: 36,
+        lowUrbanPAL: 64,
+        ruralPercentage: 30,
+        activeRuralPAL: 74,
+        lowRuralPAL: 26,
+      },
+      maternity18To29: undefined,
+      maternity30To59: undefined,
+    })).toStrictEqual({
+      group: {
+        age: age.a60,
+        sex: sex.Male,
+        medianWeight: 75,
+        population: 6,
+      },
+      perCapita: 2525,
+      total: 15149,
+    });
+  });
+  it('Mujeres sin pasar data de NAF', () => {
+    expect(() => {
+      ERCalculator.calculate60PlusYears({
+        age: age.a60,
+        sex: sex.Female,
+        medianWeight: 70,
+        population: 10,
+      },
+      [9.082, 658.5, 1.95, 1.65, 1.85, 1.55],
+      {
+        minorPAL: undefined,
+        adultPAL: undefined,
+        maternity18To29: undefined,
+        maternity30To59: undefined,
+      });
+    }).toThrow(Error('Missing data'));
+  });
+});
diff --git a/coverage/clover.xml b/coverage/clover.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce0df9f8bd8a8966704d959097dc81be9d1c1d59
--- /dev/null
+++ b/coverage/clover.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<coverage generated="1633048886724" clover="3.2.0">
+  <project timestamp="1633048886725" name="All files">
+    <metrics statements="118" coveredstatements="87" conditionals="55" coveredconditionals="20" methods="17" coveredmethods="13" elements="190" coveredelements="120" complexity="0" loc="118" ncloc="118" packages="2" files="4" classes="4"/>
+    <package name="Enum">
+      <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
+      <file name="AgeBracket.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Enum\AgeBracket.ts">
+        <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
+      </file>
+      <file name="Sex.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Enum\Sex.ts">
+        <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
+      </file>
+    </package>
+    <package name="Services">
+      <metrics statements="118" coveredstatements="87" conditionals="55" coveredconditionals="20" methods="17" coveredmethods="13"/>
+      <file name="ERCalculator.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Services\ERCalculator.ts">
+        <metrics statements="109" coveredstatements="83" conditionals="55" coveredconditionals="20" methods="14" coveredmethods="12"/>
+        <line num="15" count="1" type="stmt"/>
+        <line num="16" count="4" type="cond" truecount="2" falsecount="0"/>
+        <line num="17" count="3" type="stmt"/>
+        <line num="19" count="1" type="stmt"/>
+        <line num="23" count="1" type="stmt"/>
+        <line num="24" count="5" type="stmt"/>
+        <line num="28" count="5" type="stmt"/>
+        <line num="29" count="5" type="stmt"/>
+        <line num="31" count="5" type="stmt"/>
+        <line num="35" count="5" type="stmt"/>
+        <line num="39" count="1" type="stmt"/>
+        <line num="40" count="11" type="stmt"/>
+        <line num="41" count="11" type="stmt"/>
+        <line num="45" count="1" type="stmt"/>
+        <line num="46" count="11" type="stmt"/>
+        <line num="48" count="11" type="stmt"/>
+        <line num="51" count="11" type="stmt"/>
+        <line num="53" count="11" type="stmt"/>
+        <line num="57" count="1" type="stmt"/>
+        <line num="58" count="6" type="stmt"/>
+        <line num="59" count="6" type="stmt"/>
+        <line num="61" count="6" type="stmt"/>
+        <line num="62" count="6" type="stmt"/>
+        <line num="63" count="6" type="stmt"/>
+        <line num="65" count="6" type="stmt"/>
+        <line num="69" count="1" type="stmt"/>
+        <line num="70" count="2" type="stmt"/>
+        <line num="72" count="2" type="stmt"/>
+        <line num="73" count="2" type="stmt"/>
+        <line num="75" count="2" type="stmt"/>
+        <line num="76" count="2" type="stmt"/>
+        <line num="77" count="2" type="stmt"/>
+        <line num="79" count="2" type="stmt"/>
+        <line num="82" count="1" type="stmt"/>
+        <line num="83" count="2" type="stmt"/>
+        <line num="85" count="2" type="stmt"/>
+        <line num="91" count="2" type="stmt"/>
+        <line num="94" count="1" type="stmt"/>
+        <line num="95" count="2" type="stmt"/>
+        <line num="100" count="2" type="stmt"/>
+        <line num="106" count="2" type="stmt"/>
+        <line num="110" count="1" type="stmt"/>
+        <line num="112" count="3" type="cond" truecount="2" falsecount="0"/>
+        <line num="113" count="1" type="stmt"/>
+        <line num="115" count="2" type="stmt"/>
+        <line num="118" count="2" type="stmt"/>
+        <line num="120" count="2" type="stmt"/>
+        <line num="126" count="2" type="stmt"/>
+        <line num="130" count="1" type="stmt"/>
+        <line num="133" count="4" type="cond" truecount="2" falsecount="0"/>
+        <line num="134" count="1" type="stmt"/>
+        <line num="136" count="3" type="stmt"/>
+        <line num="137" count="3" type="stmt"/>
+        <line num="140" count="3" type="stmt"/>
+        <line num="144" count="3" type="cond" truecount="2" falsecount="0"/>
+        <line num="145" count="2" type="cond" truecount="2" falsecount="0"/>
+        <line num="146" count="1" type="stmt"/>
+        <line num="147" count="1" type="cond" truecount="1" falsecount="1"/>
+        <line num="148" count="1" type="stmt"/>
+        <line num="150" count="0" type="stmt"/>
+        <line num="154" count="2" type="stmt"/>
+        <line num="160" count="2" type="stmt"/>
+        <line num="164" count="1" type="stmt"/>
+        <line num="167" count="4" type="cond" truecount="2" falsecount="0"/>
+        <line num="168" count="1" type="stmt"/>
+        <line num="170" count="3" type="stmt"/>
+        <line num="171" count="3" type="stmt"/>
+        <line num="174" count="3" type="stmt"/>
+        <line num="178" count="3" type="cond" truecount="2" falsecount="0"/>
+        <line num="179" count="2" type="cond" truecount="2" falsecount="0"/>
+        <line num="180" count="1" type="stmt"/>
+        <line num="181" count="1" type="cond" truecount="1" falsecount="1"/>
+        <line num="182" count="1" type="stmt"/>
+        <line num="184" count="0" type="stmt"/>
+        <line num="188" count="2" type="stmt"/>
+        <line num="194" count="2" type="stmt"/>
+        <line num="198" count="1" type="stmt"/>
+        <line num="201" count="3" type="cond" truecount="2" falsecount="0"/>
+        <line num="202" count="1" type="stmt"/>
+        <line num="204" count="2" type="stmt"/>
+        <line num="205" count="2" type="stmt"/>
+        <line num="208" count="2" type="stmt"/>
+        <line num="210" count="2" type="stmt"/>
+        <line num="216" count="2" type="stmt"/>
+        <line num="220" count="1" type="stmt"/>
+        <line num="221" count="0" type="stmt"/>
+        <line num="222" count="0" type="stmt"/>
+        <line num="224" count="0" type="stmt"/>
+        <line num="226" count="0" type="stmt"/>
+        <line num="227" count="0" type="stmt"/>
+        <line num="229" count="0" type="cond" truecount="0" falsecount="33"/>
+        <line num="242" count="0" type="stmt"/>
+        <line num="243" count="0" type="stmt"/>
+        <line num="250" count="0" type="stmt"/>
+        <line num="251" count="0" type="stmt"/>
+        <line num="265" count="0" type="stmt"/>
+        <line num="266" count="0" type="stmt"/>
+        <line num="269" count="0" type="stmt"/>
+        <line num="270" count="0" type="stmt"/>
+        <line num="273" count="0" type="stmt"/>
+        <line num="274" count="0" type="stmt"/>
+        <line num="277" count="0" type="stmt"/>
+        <line num="278" count="0" type="stmt"/>
+        <line num="281" count="0" type="stmt"/>
+        <line num="284" count="0" type="stmt"/>
+        <line num="285" count="0" type="stmt"/>
+        <line num="288" count="0" type="stmt"/>
+        <line num="294" count="0" type="stmt"/>
+        <line num="299" count="0" type="stmt"/>
+      </file>
+      <file name="ParserService.ts" path="C:\Users\Agustin\Desktop\repp_backend\src\Services\ParserService.ts">
+        <metrics statements="9" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="1"/>
+        <line num="162" count="1" type="stmt"/>
+        <line num="163" count="0" type="stmt"/>
+        <line num="164" count="0" type="stmt"/>
+        <line num="165" count="0" type="stmt"/>
+        <line num="171" count="0" type="stmt"/>
+        <line num="173" count="0" type="stmt"/>
+        <line num="176" count="1" type="stmt"/>
+        <line num="177" count="12" type="stmt"/>
+        <line num="183" count="12" type="stmt"/>
+      </file>
+    </package>
+  </project>
+</coverage>
diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json
new file mode 100644
index 0000000000000000000000000000000000000000..8a108cf4bb36692a8c2451218575bb8d4b52043c
--- /dev/null
+++ b/coverage/coverage-final.json
@@ -0,0 +1,5 @@
+{"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\AgeBracket.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\AgeBracket.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4d1572768c9800acdc65f0f029569b690a821c51"}
+,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\Sex.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Enum\\Sex.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa1b26e19270070ac2ee0d6a64b5d36a79852d1d"}
+,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ERCalculator.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ERCalculator.ts","statementMap":{"0":{"start":{"line":15,"column":30},"end":{"line":20,"column":1}},"1":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"2":{"start":{"line":17,"column":4},"end":{"line":17,"column":16}},"3":{"start":{"line":19,"column":2},"end":{"line":19,"column":15}},"4":{"start":{"line":23,"column":21},"end":{"line":36,"column":1}},"5":{"start":{"line":24,"column":30},"end":{"line":26,"column":57}},"6":{"start":{"line":28,"column":25},"end":{"line":28,"column":70}},"7":{"start":{"line":29,"column":29},"end":{"line":29,"column":74}},"8":{"start":{"line":31,"column":22},"end":{"line":33,"column":52}},"9":{"start":{"line":35,"column":2},"end":{"line":35,"column":13}},"10":{"start":{"line":39,"column":21},"end":{"line":42,"column":1}},"11":{"start":{"line":40,"column":22},"end":{"line":40,"column":64}},"12":{"start":{"line":41,"column":2},"end":{"line":41,"column":13}},"13":{"start":{"line":45,"column":21},"end":{"line":54,"column":1}},"14":{"start":{"line":46,"column":27},"end":{"line":47,"column":43}},"15":{"start":{"line":48,"column":27},"end":{"line":49,"column":43}},"16":{"start":{"line":51,"column":14},"end":{"line":52,"column":46}},"17":{"start":{"line":53,"column":2},"end":{"line":53,"column":13}},"18":{"start":{"line":57,"column":35},"end":{"line":66,"column":1}},"19":{"start":{"line":58,"column":31},"end":{"line":58,"column":79}},"20":{"start":{"line":59,"column":32},"end":{"line":59,"column":81}},"21":{"start":{"line":61,"column":27},"end":{"line":61,"column":75}},"22":{"start":{"line":62,"column":28},"end":{"line":62,"column":77}},"23":{"start":{"line":63,"column":25},"end":{"line":63,"column":91}},"24":{"start":{"line":65,"column":2},"end":{"line":65,"column":63}},"25":{"start":{"line":69,"column":35},"end":{"line":80,"column":1}},"26":{"start":{"line":70,"column":23},"end":{"line":70,"column":84}},"27":{"start":{"line":72,"column":31},"end":{"line":72,"column":83}},"28":{"start":{"line":73,"column":32},"end":{"line":73,"column":84}},"29":{"start":{"line":75,"column":27},"end":{"line":75,"column":75}},"30":{"start":{"line":76,"column":28},"end":{"line":76,"column":77}},"31":{"start":{"line":77,"column":25},"end":{"line":77,"column":91}},"32":{"start":{"line":79,"column":2},"end":{"line":79,"column":63}},"33":{"start":{"line":82,"column":31},"end":{"line":92,"column":1}},"34":{"start":{"line":83,"column":22},"end":{"line":83,"column":78}},"35":{"start":{"line":85,"column":54},"end":{"line":89,"column":3}},"36":{"start":{"line":91,"column":2},"end":{"line":91,"column":26}},"37":{"start":{"line":94,"column":27},"end":{"line":107,"column":1}},"38":{"start":{"line":95,"column":22},"end":{"line":98,"column":13}},"39":{"start":{"line":100,"column":54},"end":{"line":104,"column":3}},"40":{"start":{"line":106,"column":2},"end":{"line":106,"column":26}},"41":{"start":{"line":110,"column":28},"end":{"line":127,"column":1}},"42":{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},"43":{"start":{"line":113,"column":4},"end":{"line":113,"column":36}},"44":{"start":{"line":115,"column":4},"end":{"line":115,"column":53}},"45":{"start":{"line":118,"column":22},"end":{"line":118,"column":37}},"46":{"start":{"line":120,"column":54},"end":{"line":124,"column":3}},"47":{"start":{"line":126,"column":2},"end":{"line":126,"column":26}},"48":{"start":{"line":130,"column":29},"end":{"line":161,"column":1}},"49":{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},"50":{"start":{"line":134,"column":4},"end":{"line":134,"column":36}},"51":{"start":{"line":136,"column":4},"end":{"line":136,"column":38}},"52":{"start":{"line":137,"column":4},"end":{"line":137,"column":46}},"53":{"start":{"line":140,"column":28},"end":{"line":140,"column":37}},"54":{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},"55":{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},"56":{"start":{"line":146,"column":6},"end":{"line":146,"column":38}},"57":{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},"58":{"start":{"line":148,"column":6},"end":{"line":148,"column":97}},"59":{"start":{"line":150,"column":6},"end":{"line":150,"column":90}},"60":{"start":{"line":154,"column":54},"end":{"line":158,"column":3}},"61":{"start":{"line":160,"column":2},"end":{"line":160,"column":26}},"62":{"start":{"line":164,"column":29},"end":{"line":195,"column":1}},"63":{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},"64":{"start":{"line":168,"column":4},"end":{"line":168,"column":36}},"65":{"start":{"line":170,"column":4},"end":{"line":170,"column":38}},"66":{"start":{"line":171,"column":4},"end":{"line":171,"column":46}},"67":{"start":{"line":174,"column":28},"end":{"line":174,"column":37}},"68":{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},"69":{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},"70":{"start":{"line":180,"column":6},"end":{"line":180,"column":38}},"71":{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},"72":{"start":{"line":182,"column":6},"end":{"line":182,"column":97}},"73":{"start":{"line":184,"column":6},"end":{"line":184,"column":90}},"74":{"start":{"line":188,"column":54},"end":{"line":192,"column":3}},"75":{"start":{"line":194,"column":2},"end":{"line":194,"column":26}},"76":{"start":{"line":198,"column":29},"end":{"line":217,"column":1}},"77":{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},"78":{"start":{"line":202,"column":4},"end":{"line":202,"column":36}},"79":{"start":{"line":204,"column":4},"end":{"line":204,"column":38}},"80":{"start":{"line":205,"column":4},"end":{"line":205,"column":46}},"81":{"start":{"line":208,"column":30},"end":{"line":208,"column":39}},"82":{"start":{"line":210,"column":54},"end":{"line":214,"column":3}},"83":{"start":{"line":216,"column":2},"end":{"line":216,"column":26}},"84":{"start":{"line":220,"column":20},"end":{"line":300,"column":1}},"85":{"start":{"line":221,"column":22},"end":{"line":221,"column":23}},"86":{"start":{"line":222,"column":25},"end":{"line":222,"column":26}},"87":{"start":{"line":224,"column":52},"end":{"line":224,"column":54}},"88":{"start":{"line":226,"column":2},"end":{"line":286,"column":5}},"89":{"start":{"line":227,"column":4},"end":{"line":227,"column":38}},"90":{"start":{"line":229,"column":4},"end":{"line":283,"column":5}},"91":{"start":{"line":242,"column":8},"end":{"line":242,"column":65}},"92":{"start":{"line":243,"column":8},"end":{"line":243,"column":14}},"93":{"start":{"line":250,"column":8},"end":{"line":250,"column":61}},"94":{"start":{"line":251,"column":8},"end":{"line":251,"column":14}},"95":{"start":{"line":265,"column":8},"end":{"line":265,"column":68}},"96":{"start":{"line":266,"column":8},"end":{"line":266,"column":14}},"97":{"start":{"line":269,"column":8},"end":{"line":269,"column":69}},"98":{"start":{"line":270,"column":8},"end":{"line":270,"column":14}},"99":{"start":{"line":273,"column":8},"end":{"line":273,"column":69}},"100":{"start":{"line":274,"column":8},"end":{"line":274,"column":14}},"101":{"start":{"line":277,"column":8},"end":{"line":277,"column":69}},"102":{"start":{"line":278,"column":8},"end":{"line":278,"column":14}},"103":{"start":{"line":281,"column":8},"end":{"line":281,"column":81}},"104":{"start":{"line":284,"column":4},"end":{"line":284,"column":47}},"105":{"start":{"line":285,"column":4},"end":{"line":285,"column":40}},"106":{"start":{"line":288,"column":40},"end":{"line":292,"column":3}},"107":{"start":{"line":294,"column":37},"end":{"line":297,"column":3}},"108":{"start":{"line":299,"column":2},"end":{"line":299,"column":16}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":30},"end":{"line":15,"column":31}},"loc":{"start":{"line":15,"column":110},"end":{"line":20,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":21},"end":{"line":23,"column":22}},"loc":{"start":{"line":23,"column":86},"end":{"line":36,"column":1}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":21},"end":{"line":39,"column":22}},"loc":{"start":{"line":39,"column":68},"end":{"line":42,"column":1}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":21},"end":{"line":45,"column":22}},"loc":{"start":{"line":45,"column":70},"end":{"line":54,"column":1}},"line":45},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":35},"end":{"line":57,"column":36}},"loc":{"start":{"line":57,"column":125},"end":{"line":66,"column":1}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":69,"column":35},"end":{"line":69,"column":36}},"loc":{"start":{"line":69,"column":108},"end":{"line":80,"column":1}},"line":69},"6":{"name":"(anonymous_6)","decl":{"start":{"line":82,"column":31},"end":{"line":82,"column":32}},"loc":{"start":{"line":82,"column":97},"end":{"line":92,"column":1}},"line":82},"7":{"name":"(anonymous_7)","decl":{"start":{"line":94,"column":27},"end":{"line":94,"column":28}},"loc":{"start":{"line":94,"column":93},"end":{"line":107,"column":1}},"line":94},"8":{"name":"(anonymous_8)","decl":{"start":{"line":110,"column":28},"end":{"line":110,"column":29}},"loc":{"start":{"line":110,"column":111},"end":{"line":127,"column":1}},"line":110},"9":{"name":"(anonymous_9)","decl":{"start":{"line":130,"column":29},"end":{"line":130,"column":30}},"loc":{"start":{"line":130,"column":112},"end":{"line":161,"column":1}},"line":130},"10":{"name":"(anonymous_10)","decl":{"start":{"line":164,"column":29},"end":{"line":164,"column":30}},"loc":{"start":{"line":164,"column":112},"end":{"line":195,"column":1}},"line":164},"11":{"name":"(anonymous_11)","decl":{"start":{"line":198,"column":29},"end":{"line":198,"column":30}},"loc":{"start":{"line":198,"column":112},"end":{"line":217,"column":1}},"line":198},"12":{"name":"(anonymous_12)","decl":{"start":{"line":220,"column":20},"end":{"line":220,"column":21}},"loc":{"start":{"line":220,"column":103},"end":{"line":300,"column":1}},"line":220},"13":{"name":"(anonymous_13)","decl":{"start":{"line":226,"column":26},"end":{"line":226,"column":27}},"loc":{"start":{"line":226,"column":65},"end":{"line":286,"column":3}},"line":226}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"type":"if","locations":[{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},{"start":{"line":16,"column":2},"end":{"line":18,"column":3}}],"line":16},"1":{"loc":{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},"type":"if","locations":[{"start":{"line":112,"column":2},"end":{"line":116,"column":3}},{"start":{"line":112,"column":2},"end":{"line":116,"column":3}}],"line":112},"2":{"loc":{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":138,"column":3}},{"start":{"line":133,"column":2},"end":{"line":138,"column":3}}],"line":133},"3":{"loc":{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},"type":"if","locations":[{"start":{"line":144,"column":2},"end":{"line":152,"column":3}},{"start":{"line":144,"column":2},"end":{"line":152,"column":3}}],"line":144},"4":{"loc":{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},"type":"if","locations":[{"start":{"line":145,"column":4},"end":{"line":151,"column":5}},{"start":{"line":145,"column":4},"end":{"line":151,"column":5}}],"line":145},"5":{"loc":{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},"type":"if","locations":[{"start":{"line":147,"column":11},"end":{"line":151,"column":5}},{"start":{"line":147,"column":11},"end":{"line":151,"column":5}}],"line":147},"6":{"loc":{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},"type":"if","locations":[{"start":{"line":167,"column":2},"end":{"line":172,"column":3}},{"start":{"line":167,"column":2},"end":{"line":172,"column":3}}],"line":167},"7":{"loc":{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":186,"column":3}},{"start":{"line":178,"column":2},"end":{"line":186,"column":3}}],"line":178},"8":{"loc":{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},"type":"if","locations":[{"start":{"line":179,"column":4},"end":{"line":185,"column":5}},{"start":{"line":179,"column":4},"end":{"line":185,"column":5}}],"line":179},"9":{"loc":{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},"type":"if","locations":[{"start":{"line":181,"column":11},"end":{"line":185,"column":5}},{"start":{"line":181,"column":11},"end":{"line":185,"column":5}}],"line":181},"10":{"loc":{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},"type":"if","locations":[{"start":{"line":201,"column":2},"end":{"line":206,"column":3}},{"start":{"line":201,"column":2},"end":{"line":206,"column":3}}],"line":201},"11":{"loc":{"start":{"line":229,"column":4},"end":{"line":283,"column":5}},"type":"switch","locations":[{"start":{"line":230,"column":6},"end":{"line":230,"column":25}},{"start":{"line":231,"column":6},"end":{"line":231,"column":25}},{"start":{"line":232,"column":6},"end":{"line":232,"column":25}},{"start":{"line":233,"column":6},"end":{"line":233,"column":25}},{"start":{"line":234,"column":6},"end":{"line":234,"column":25}},{"start":{"line":235,"column":6},"end":{"line":235,"column":25}},{"start":{"line":236,"column":6},"end":{"line":236,"column":25}},{"start":{"line":237,"column":6},"end":{"line":237,"column":25}},{"start":{"line":238,"column":6},"end":{"line":238,"column":25}},{"start":{"line":239,"column":6},"end":{"line":239,"column":25}},{"start":{"line":240,"column":6},"end":{"line":240,"column":26}},{"start":{"line":241,"column":6},"end":{"line":244,"column":7}},{"start":{"line":245,"column":6},"end":{"line":245,"column":25}},{"start":{"line":246,"column":6},"end":{"line":246,"column":25}},{"start":{"line":247,"column":6},"end":{"line":247,"column":25}},{"start":{"line":248,"column":6},"end":{"line":248,"column":25}},{"start":{"line":249,"column":6},"end":{"line":252,"column":7}},{"start":{"line":253,"column":6},"end":{"line":253,"column":25}},{"start":{"line":254,"column":6},"end":{"line":254,"column":25}},{"start":{"line":255,"column":6},"end":{"line":255,"column":25}},{"start":{"line":256,"column":6},"end":{"line":256,"column":25}},{"start":{"line":257,"column":6},"end":{"line":257,"column":26}},{"start":{"line":258,"column":6},"end":{"line":258,"column":26}},{"start":{"line":259,"column":6},"end":{"line":259,"column":26}},{"start":{"line":260,"column":6},"end":{"line":260,"column":26}},{"start":{"line":261,"column":6},"end":{"line":261,"column":26}},{"start":{"line":262,"column":6},"end":{"line":262,"column":26}},{"start":{"line":263,"column":6},"end":{"line":263,"column":26}},{"start":{"line":264,"column":6},"end":{"line":267,"column":7}},{"start":{"line":268,"column":6},"end":{"line":271,"column":7}},{"start":{"line":272,"column":6},"end":{"line":275,"column":7}},{"start":{"line":276,"column":6},"end":{"line":279,"column":7}},{"start":{"line":280,"column":6},"end":{"line":282,"column":7}}],"line":229}},"s":{"0":1,"1":4,"2":3,"3":1,"4":1,"5":5,"6":5,"7":5,"8":5,"9":5,"10":1,"11":11,"12":11,"13":1,"14":11,"15":11,"16":11,"17":11,"18":1,"19":6,"20":6,"21":6,"22":6,"23":6,"24":6,"25":1,"26":2,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":1,"34":2,"35":2,"36":2,"37":1,"38":2,"39":2,"40":2,"41":1,"42":3,"43":1,"44":2,"45":2,"46":2,"47":2,"48":1,"49":4,"50":1,"51":3,"52":3,"53":3,"54":3,"55":2,"56":1,"57":1,"58":1,"59":0,"60":2,"61":2,"62":1,"63":4,"64":1,"65":3,"66":3,"67":3,"68":3,"69":2,"70":1,"71":1,"72":1,"73":0,"74":2,"75":2,"76":1,"77":3,"78":1,"79":2,"80":2,"81":2,"82":2,"83":2,"84":1,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0},"f":{"0":4,"1":5,"2":11,"3":11,"4":6,"5":2,"6":2,"7":2,"8":3,"9":4,"10":4,"11":3,"12":0,"13":0},"b":{"0":[3,1],"1":[1,2],"2":[1,3],"3":[2,1],"4":[1,1],"5":[1,0],"6":[1,3],"7":[2,1],"8":[1,1],"9":[1,0],"10":[1,2],"11":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b097bc14cc9b65777b3ff72a3996f7fee6258a50"}
+,"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ParserService.ts": {"path":"C:\\Users\\Agustin\\Desktop\\repp_backend\\src\\Services\\ParserService.ts","statementMap":{"0":{"start":{"line":162,"column":20},"end":{"line":174,"column":1}},"1":{"start":{"line":163,"column":32},"end":{"line":163,"column":34}},"2":{"start":{"line":164,"column":2},"end":{"line":172,"column":5}},"3":{"start":{"line":165,"column":28},"end":{"line":170,"column":5}},"4":{"start":{"line":171,"column":4},"end":{"line":171,"column":26}},"5":{"start":{"line":173,"column":2},"end":{"line":173,"column":19}},"6":{"start":{"line":176,"column":21},"end":{"line":184,"column":1}},"7":{"start":{"line":177,"column":33},"end":{"line":182,"column":3}},"8":{"start":{"line":183,"column":2},"end":{"line":183,"column":18}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":162,"column":20},"end":{"line":162,"column":21}},"loc":{"start":{"line":162,"column":60},"end":{"line":174,"column":1}},"line":162},"1":{"name":"(anonymous_1)","decl":{"start":{"line":164,"column":17},"end":{"line":164,"column":18}},"loc":{"start":{"line":164,"column":45},"end":{"line":172,"column":3}},"line":164},"2":{"name":"(anonymous_2)","decl":{"start":{"line":176,"column":21},"end":{"line":176,"column":22}},"loc":{"start":{"line":176,"column":56},"end":{"line":184,"column":1}},"line":176}},"branchMap":{},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":1,"7":12,"8":12},"f":{"0":0,"1":0,"2":12},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"328b4ec746ba2767071ea49b7d3eb3eece8ff87f"}
+}
diff --git a/coverage/lcov-report/Enum/AgeBracket.ts.html b/coverage/lcov-report/Enum/AgeBracket.ts.html
new file mode 100644
index 0000000000000000000000000000000000000000..a02c3af4862919e255a93616b36b0cab91d4b719
--- /dev/null
+++ b/coverage/lcov-report/Enum/AgeBracket.ts.html
@@ -0,0 +1,188 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Enum/AgeBracket.ts</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> / <a href="index.html">Enum</a> AgeBracket.ts</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line low'></div>
+    <pre><table class="coverage">
+<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
+<a name='L2'></a><a href='#L2'>2</a>
+<a name='L3'></a><a href='#L3'>3</a>
+<a name='L4'></a><a href='#L4'>4</a>
+<a name='L5'></a><a href='#L5'>5</a>
+<a name='L6'></a><a href='#L6'>6</a>
+<a name='L7'></a><a href='#L7'>7</a>
+<a name='L8'></a><a href='#L8'>8</a>
+<a name='L9'></a><a href='#L9'>9</a>
+<a name='L10'></a><a href='#L10'>10</a>
+<a name='L11'></a><a href='#L11'>11</a>
+<a name='L12'></a><a href='#L12'>12</a>
+<a name='L13'></a><a href='#L13'>13</a>
+<a name='L14'></a><a href='#L14'>14</a>
+<a name='L15'></a><a href='#L15'>15</a>
+<a name='L16'></a><a href='#L16'>16</a>
+<a name='L17'></a><a href='#L17'>17</a>
+<a name='L18'></a><a href='#L18'>18</a>
+<a name='L19'></a><a href='#L19'>19</a>
+<a name='L20'></a><a href='#L20'>20</a>
+<a name='L21'></a><a href='#L21'>21</a>
+<a name='L22'></a><a href='#L22'>22</a>
+<a name='L23'></a><a href='#L23'>23</a>
+<a name='L24'></a><a href='#L24'>24</a>
+<a name='L25'></a><a href='#L25'>25</a>
+<a name='L26'></a><a href='#L26'>26</a>
+<a name='L27'></a><a href='#L27'>27</a>
+<a name='L28'></a><a href='#L28'>28</a>
+<a name='L29'></a><a href='#L29'>29</a>
+<a name='L30'></a><a href='#L30'>30</a>
+<a name='L31'></a><a href='#L31'>31</a>
+<a name='L32'></a><a href='#L32'>32</a>
+<a name='L33'></a><a href='#L33'>33</a>
+<a name='L34'></a><a href='#L34'>34</a>
+<a name='L35'></a><a href='#L35'>35</a>
+<a name='L36'></a><a href='#L36'>36</a>
+<a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">enum AgeBracket {
+  m0 = '0 meses',
+  m1 = '1 meses',
+  m2 = '2 meses',
+  m3 = '3 meses',
+  m4 = '4 meses',
+  m5 = '5 meses',
+  m6 = '6 meses',
+  m7 = '7 meses',
+  m8 = '8 meses',
+  m9 = '9 meses',
+  m10 = '10 meses',
+  m11 = '11 meses',
+  a1 = '1 años',
+  a2 = '2 años',
+  a3 = '3 años',
+  a4 = '4 años',
+  a5 = '5 años',
+  a6 = '6 años',
+  a7 = '7 años',
+  a8 = '8 años',
+  a9 = '9 años',
+  a10 = '10 años',
+  a11 = '11 años',
+  a12 = '12 años',
+  a13 = '13 años',
+  a14 = '14 años',
+  a15 = '15 años',
+  a16 = '16 años',
+  a17 = '17 años',
+  a18_29 = '18-29 años',
+  a30_59 = '30-59 años',
+  a60 = '60+ años',
+}
+&nbsp;
+export default AgeBracket;
+&nbsp;</pre></td></tr></table></pre>
+
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/Enum/Sex.ts.html b/coverage/lcov-report/Enum/Sex.ts.html
new file mode 100644
index 0000000000000000000000000000000000000000..a817541b830fca8a29eb159394e17ef0d20c21d0
--- /dev/null
+++ b/coverage/lcov-report/Enum/Sex.ts.html
@@ -0,0 +1,98 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Enum/Sex.ts</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> / <a href="index.html">Enum</a> Sex.ts</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line low'></div>
+    <pre><table class="coverage">
+<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
+<a name='L2'></a><a href='#L2'>2</a>
+<a name='L3'></a><a href='#L3'>3</a>
+<a name='L4'></a><a href='#L4'>4</a>
+<a name='L5'></a><a href='#L5'>5</a>
+<a name='L6'></a><a href='#L6'>6</a>
+<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">enum Sex {
+  Male = 'Masculino',
+  Female = 'Femenino',
+}
+&nbsp;
+export default Sex;
+&nbsp;</pre></td></tr></table></pre>
+
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/Enum/index.html b/coverage/lcov-report/Enum/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..7ef6aa359bb048544dd0316641032a8f6a42d312
--- /dev/null
+++ b/coverage/lcov-report/Enum/index.html
@@ -0,0 +1,126 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Enum</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> Enum</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">0% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line low'></div>
+    <div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+   <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+   <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+   <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+   <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+   <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+   <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+   <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+	<td class="file empty" data-value="AgeBracket.ts"><a href="AgeBracket.ts.html">AgeBracket.ts</a></td>
+	<td data-value="0" class="pic empty">
+	<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
+	</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	</tr>
+
+<tr>
+	<td class="file empty" data-value="Sex.ts"><a href="Sex.ts.html">Sex.ts</a></td>
+	<td data-value="0" class="pic empty">
+	<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
+	</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	</tr>
+
+</tbody>
+</table>
+</div>
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/Services/ERCalculator.ts.html b/coverage/lcov-report/Services/ERCalculator.ts.html
new file mode 100644
index 0000000000000000000000000000000000000000..73fae76297890e821adc655a738cc71231e6bf21
--- /dev/null
+++ b/coverage/lcov-report/Services/ERCalculator.ts.html
@@ -0,0 +1,1028 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Services/ERCalculator.ts</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> / <a href="index.html">Services</a> ERCalculator.ts</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">76.14% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>83/109</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">36.36% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>20/55</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">85.71% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>12/14</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">76.14% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>83/109</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line medium'></div>
+    <pre><table class="coverage">
+<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
+<a name='L2'></a><a href='#L2'>2</a>
+<a name='L3'></a><a href='#L3'>3</a>
+<a name='L4'></a><a href='#L4'>4</a>
+<a name='L5'></a><a href='#L5'>5</a>
+<a name='L6'></a><a href='#L6'>6</a>
+<a name='L7'></a><a href='#L7'>7</a>
+<a name='L8'></a><a href='#L8'>8</a>
+<a name='L9'></a><a href='#L9'>9</a>
+<a name='L10'></a><a href='#L10'>10</a>
+<a name='L11'></a><a href='#L11'>11</a>
+<a name='L12'></a><a href='#L12'>12</a>
+<a name='L13'></a><a href='#L13'>13</a>
+<a name='L14'></a><a href='#L14'>14</a>
+<a name='L15'></a><a href='#L15'>15</a>
+<a name='L16'></a><a href='#L16'>16</a>
+<a name='L17'></a><a href='#L17'>17</a>
+<a name='L18'></a><a href='#L18'>18</a>
+<a name='L19'></a><a href='#L19'>19</a>
+<a name='L20'></a><a href='#L20'>20</a>
+<a name='L21'></a><a href='#L21'>21</a>
+<a name='L22'></a><a href='#L22'>22</a>
+<a name='L23'></a><a href='#L23'>23</a>
+<a name='L24'></a><a href='#L24'>24</a>
+<a name='L25'></a><a href='#L25'>25</a>
+<a name='L26'></a><a href='#L26'>26</a>
+<a name='L27'></a><a href='#L27'>27</a>
+<a name='L28'></a><a href='#L28'>28</a>
+<a name='L29'></a><a href='#L29'>29</a>
+<a name='L30'></a><a href='#L30'>30</a>
+<a name='L31'></a><a href='#L31'>31</a>
+<a name='L32'></a><a href='#L32'>32</a>
+<a name='L33'></a><a href='#L33'>33</a>
+<a name='L34'></a><a href='#L34'>34</a>
+<a name='L35'></a><a href='#L35'>35</a>
+<a name='L36'></a><a href='#L36'>36</a>
+<a name='L37'></a><a href='#L37'>37</a>
+<a name='L38'></a><a href='#L38'>38</a>
+<a name='L39'></a><a href='#L39'>39</a>
+<a name='L40'></a><a href='#L40'>40</a>
+<a name='L41'></a><a href='#L41'>41</a>
+<a name='L42'></a><a href='#L42'>42</a>
+<a name='L43'></a><a href='#L43'>43</a>
+<a name='L44'></a><a href='#L44'>44</a>
+<a name='L45'></a><a href='#L45'>45</a>
+<a name='L46'></a><a href='#L46'>46</a>
+<a name='L47'></a><a href='#L47'>47</a>
+<a name='L48'></a><a href='#L48'>48</a>
+<a name='L49'></a><a href='#L49'>49</a>
+<a name='L50'></a><a href='#L50'>50</a>
+<a name='L51'></a><a href='#L51'>51</a>
+<a name='L52'></a><a href='#L52'>52</a>
+<a name='L53'></a><a href='#L53'>53</a>
+<a name='L54'></a><a href='#L54'>54</a>
+<a name='L55'></a><a href='#L55'>55</a>
+<a name='L56'></a><a href='#L56'>56</a>
+<a name='L57'></a><a href='#L57'>57</a>
+<a name='L58'></a><a href='#L58'>58</a>
+<a name='L59'></a><a href='#L59'>59</a>
+<a name='L60'></a><a href='#L60'>60</a>
+<a name='L61'></a><a href='#L61'>61</a>
+<a name='L62'></a><a href='#L62'>62</a>
+<a name='L63'></a><a href='#L63'>63</a>
+<a name='L64'></a><a href='#L64'>64</a>
+<a name='L65'></a><a href='#L65'>65</a>
+<a name='L66'></a><a href='#L66'>66</a>
+<a name='L67'></a><a href='#L67'>67</a>
+<a name='L68'></a><a href='#L68'>68</a>
+<a name='L69'></a><a href='#L69'>69</a>
+<a name='L70'></a><a href='#L70'>70</a>
+<a name='L71'></a><a href='#L71'>71</a>
+<a name='L72'></a><a href='#L72'>72</a>
+<a name='L73'></a><a href='#L73'>73</a>
+<a name='L74'></a><a href='#L74'>74</a>
+<a name='L75'></a><a href='#L75'>75</a>
+<a name='L76'></a><a href='#L76'>76</a>
+<a name='L77'></a><a href='#L77'>77</a>
+<a name='L78'></a><a href='#L78'>78</a>
+<a name='L79'></a><a href='#L79'>79</a>
+<a name='L80'></a><a href='#L80'>80</a>
+<a name='L81'></a><a href='#L81'>81</a>
+<a name='L82'></a><a href='#L82'>82</a>
+<a name='L83'></a><a href='#L83'>83</a>
+<a name='L84'></a><a href='#L84'>84</a>
+<a name='L85'></a><a href='#L85'>85</a>
+<a name='L86'></a><a href='#L86'>86</a>
+<a name='L87'></a><a href='#L87'>87</a>
+<a name='L88'></a><a href='#L88'>88</a>
+<a name='L89'></a><a href='#L89'>89</a>
+<a name='L90'></a><a href='#L90'>90</a>
+<a name='L91'></a><a href='#L91'>91</a>
+<a name='L92'></a><a href='#L92'>92</a>
+<a name='L93'></a><a href='#L93'>93</a>
+<a name='L94'></a><a href='#L94'>94</a>
+<a name='L95'></a><a href='#L95'>95</a>
+<a name='L96'></a><a href='#L96'>96</a>
+<a name='L97'></a><a href='#L97'>97</a>
+<a name='L98'></a><a href='#L98'>98</a>
+<a name='L99'></a><a href='#L99'>99</a>
+<a name='L100'></a><a href='#L100'>100</a>
+<a name='L101'></a><a href='#L101'>101</a>
+<a name='L102'></a><a href='#L102'>102</a>
+<a name='L103'></a><a href='#L103'>103</a>
+<a name='L104'></a><a href='#L104'>104</a>
+<a name='L105'></a><a href='#L105'>105</a>
+<a name='L106'></a><a href='#L106'>106</a>
+<a name='L107'></a><a href='#L107'>107</a>
+<a name='L108'></a><a href='#L108'>108</a>
+<a name='L109'></a><a href='#L109'>109</a>
+<a name='L110'></a><a href='#L110'>110</a>
+<a name='L111'></a><a href='#L111'>111</a>
+<a name='L112'></a><a href='#L112'>112</a>
+<a name='L113'></a><a href='#L113'>113</a>
+<a name='L114'></a><a href='#L114'>114</a>
+<a name='L115'></a><a href='#L115'>115</a>
+<a name='L116'></a><a href='#L116'>116</a>
+<a name='L117'></a><a href='#L117'>117</a>
+<a name='L118'></a><a href='#L118'>118</a>
+<a name='L119'></a><a href='#L119'>119</a>
+<a name='L120'></a><a href='#L120'>120</a>
+<a name='L121'></a><a href='#L121'>121</a>
+<a name='L122'></a><a href='#L122'>122</a>
+<a name='L123'></a><a href='#L123'>123</a>
+<a name='L124'></a><a href='#L124'>124</a>
+<a name='L125'></a><a href='#L125'>125</a>
+<a name='L126'></a><a href='#L126'>126</a>
+<a name='L127'></a><a href='#L127'>127</a>
+<a name='L128'></a><a href='#L128'>128</a>
+<a name='L129'></a><a href='#L129'>129</a>
+<a name='L130'></a><a href='#L130'>130</a>
+<a name='L131'></a><a href='#L131'>131</a>
+<a name='L132'></a><a href='#L132'>132</a>
+<a name='L133'></a><a href='#L133'>133</a>
+<a name='L134'></a><a href='#L134'>134</a>
+<a name='L135'></a><a href='#L135'>135</a>
+<a name='L136'></a><a href='#L136'>136</a>
+<a name='L137'></a><a href='#L137'>137</a>
+<a name='L138'></a><a href='#L138'>138</a>
+<a name='L139'></a><a href='#L139'>139</a>
+<a name='L140'></a><a href='#L140'>140</a>
+<a name='L141'></a><a href='#L141'>141</a>
+<a name='L142'></a><a href='#L142'>142</a>
+<a name='L143'></a><a href='#L143'>143</a>
+<a name='L144'></a><a href='#L144'>144</a>
+<a name='L145'></a><a href='#L145'>145</a>
+<a name='L146'></a><a href='#L146'>146</a>
+<a name='L147'></a><a href='#L147'>147</a>
+<a name='L148'></a><a href='#L148'>148</a>
+<a name='L149'></a><a href='#L149'>149</a>
+<a name='L150'></a><a href='#L150'>150</a>
+<a name='L151'></a><a href='#L151'>151</a>
+<a name='L152'></a><a href='#L152'>152</a>
+<a name='L153'></a><a href='#L153'>153</a>
+<a name='L154'></a><a href='#L154'>154</a>
+<a name='L155'></a><a href='#L155'>155</a>
+<a name='L156'></a><a href='#L156'>156</a>
+<a name='L157'></a><a href='#L157'>157</a>
+<a name='L158'></a><a href='#L158'>158</a>
+<a name='L159'></a><a href='#L159'>159</a>
+<a name='L160'></a><a href='#L160'>160</a>
+<a name='L161'></a><a href='#L161'>161</a>
+<a name='L162'></a><a href='#L162'>162</a>
+<a name='L163'></a><a href='#L163'>163</a>
+<a name='L164'></a><a href='#L164'>164</a>
+<a name='L165'></a><a href='#L165'>165</a>
+<a name='L166'></a><a href='#L166'>166</a>
+<a name='L167'></a><a href='#L167'>167</a>
+<a name='L168'></a><a href='#L168'>168</a>
+<a name='L169'></a><a href='#L169'>169</a>
+<a name='L170'></a><a href='#L170'>170</a>
+<a name='L171'></a><a href='#L171'>171</a>
+<a name='L172'></a><a href='#L172'>172</a>
+<a name='L173'></a><a href='#L173'>173</a>
+<a name='L174'></a><a href='#L174'>174</a>
+<a name='L175'></a><a href='#L175'>175</a>
+<a name='L176'></a><a href='#L176'>176</a>
+<a name='L177'></a><a href='#L177'>177</a>
+<a name='L178'></a><a href='#L178'>178</a>
+<a name='L179'></a><a href='#L179'>179</a>
+<a name='L180'></a><a href='#L180'>180</a>
+<a name='L181'></a><a href='#L181'>181</a>
+<a name='L182'></a><a href='#L182'>182</a>
+<a name='L183'></a><a href='#L183'>183</a>
+<a name='L184'></a><a href='#L184'>184</a>
+<a name='L185'></a><a href='#L185'>185</a>
+<a name='L186'></a><a href='#L186'>186</a>
+<a name='L187'></a><a href='#L187'>187</a>
+<a name='L188'></a><a href='#L188'>188</a>
+<a name='L189'></a><a href='#L189'>189</a>
+<a name='L190'></a><a href='#L190'>190</a>
+<a name='L191'></a><a href='#L191'>191</a>
+<a name='L192'></a><a href='#L192'>192</a>
+<a name='L193'></a><a href='#L193'>193</a>
+<a name='L194'></a><a href='#L194'>194</a>
+<a name='L195'></a><a href='#L195'>195</a>
+<a name='L196'></a><a href='#L196'>196</a>
+<a name='L197'></a><a href='#L197'>197</a>
+<a name='L198'></a><a href='#L198'>198</a>
+<a name='L199'></a><a href='#L199'>199</a>
+<a name='L200'></a><a href='#L200'>200</a>
+<a name='L201'></a><a href='#L201'>201</a>
+<a name='L202'></a><a href='#L202'>202</a>
+<a name='L203'></a><a href='#L203'>203</a>
+<a name='L204'></a><a href='#L204'>204</a>
+<a name='L205'></a><a href='#L205'>205</a>
+<a name='L206'></a><a href='#L206'>206</a>
+<a name='L207'></a><a href='#L207'>207</a>
+<a name='L208'></a><a href='#L208'>208</a>
+<a name='L209'></a><a href='#L209'>209</a>
+<a name='L210'></a><a href='#L210'>210</a>
+<a name='L211'></a><a href='#L211'>211</a>
+<a name='L212'></a><a href='#L212'>212</a>
+<a name='L213'></a><a href='#L213'>213</a>
+<a name='L214'></a><a href='#L214'>214</a>
+<a name='L215'></a><a href='#L215'>215</a>
+<a name='L216'></a><a href='#L216'>216</a>
+<a name='L217'></a><a href='#L217'>217</a>
+<a name='L218'></a><a href='#L218'>218</a>
+<a name='L219'></a><a href='#L219'>219</a>
+<a name='L220'></a><a href='#L220'>220</a>
+<a name='L221'></a><a href='#L221'>221</a>
+<a name='L222'></a><a href='#L222'>222</a>
+<a name='L223'></a><a href='#L223'>223</a>
+<a name='L224'></a><a href='#L224'>224</a>
+<a name='L225'></a><a href='#L225'>225</a>
+<a name='L226'></a><a href='#L226'>226</a>
+<a name='L227'></a><a href='#L227'>227</a>
+<a name='L228'></a><a href='#L228'>228</a>
+<a name='L229'></a><a href='#L229'>229</a>
+<a name='L230'></a><a href='#L230'>230</a>
+<a name='L231'></a><a href='#L231'>231</a>
+<a name='L232'></a><a href='#L232'>232</a>
+<a name='L233'></a><a href='#L233'>233</a>
+<a name='L234'></a><a href='#L234'>234</a>
+<a name='L235'></a><a href='#L235'>235</a>
+<a name='L236'></a><a href='#L236'>236</a>
+<a name='L237'></a><a href='#L237'>237</a>
+<a name='L238'></a><a href='#L238'>238</a>
+<a name='L239'></a><a href='#L239'>239</a>
+<a name='L240'></a><a href='#L240'>240</a>
+<a name='L241'></a><a href='#L241'>241</a>
+<a name='L242'></a><a href='#L242'>242</a>
+<a name='L243'></a><a href='#L243'>243</a>
+<a name='L244'></a><a href='#L244'>244</a>
+<a name='L245'></a><a href='#L245'>245</a>
+<a name='L246'></a><a href='#L246'>246</a>
+<a name='L247'></a><a href='#L247'>247</a>
+<a name='L248'></a><a href='#L248'>248</a>
+<a name='L249'></a><a href='#L249'>249</a>
+<a name='L250'></a><a href='#L250'>250</a>
+<a name='L251'></a><a href='#L251'>251</a>
+<a name='L252'></a><a href='#L252'>252</a>
+<a name='L253'></a><a href='#L253'>253</a>
+<a name='L254'></a><a href='#L254'>254</a>
+<a name='L255'></a><a href='#L255'>255</a>
+<a name='L256'></a><a href='#L256'>256</a>
+<a name='L257'></a><a href='#L257'>257</a>
+<a name='L258'></a><a href='#L258'>258</a>
+<a name='L259'></a><a href='#L259'>259</a>
+<a name='L260'></a><a href='#L260'>260</a>
+<a name='L261'></a><a href='#L261'>261</a>
+<a name='L262'></a><a href='#L262'>262</a>
+<a name='L263'></a><a href='#L263'>263</a>
+<a name='L264'></a><a href='#L264'>264</a>
+<a name='L265'></a><a href='#L265'>265</a>
+<a name='L266'></a><a href='#L266'>266</a>
+<a name='L267'></a><a href='#L267'>267</a>
+<a name='L268'></a><a href='#L268'>268</a>
+<a name='L269'></a><a href='#L269'>269</a>
+<a name='L270'></a><a href='#L270'>270</a>
+<a name='L271'></a><a href='#L271'>271</a>
+<a name='L272'></a><a href='#L272'>272</a>
+<a name='L273'></a><a href='#L273'>273</a>
+<a name='L274'></a><a href='#L274'>274</a>
+<a name='L275'></a><a href='#L275'>275</a>
+<a name='L276'></a><a href='#L276'>276</a>
+<a name='L277'></a><a href='#L277'>277</a>
+<a name='L278'></a><a href='#L278'>278</a>
+<a name='L279'></a><a href='#L279'>279</a>
+<a name='L280'></a><a href='#L280'>280</a>
+<a name='L281'></a><a href='#L281'>281</a>
+<a name='L282'></a><a href='#L282'>282</a>
+<a name='L283'></a><a href='#L283'>283</a>
+<a name='L284'></a><a href='#L284'>284</a>
+<a name='L285'></a><a href='#L285'>285</a>
+<a name='L286'></a><a href='#L286'>286</a>
+<a name='L287'></a><a href='#L287'>287</a>
+<a name='L288'></a><a href='#L288'>288</a>
+<a name='L289'></a><a href='#L289'>289</a>
+<a name='L290'></a><a href='#L290'>290</a>
+<a name='L291'></a><a href='#L291'>291</a>
+<a name='L292'></a><a href='#L292'>292</a>
+<a name='L293'></a><a href='#L293'>293</a>
+<a name='L294'></a><a href='#L294'>294</a>
+<a name='L295'></a><a href='#L295'>295</a>
+<a name='L296'></a><a href='#L296'>296</a>
+<a name='L297'></a><a href='#L297'>297</a>
+<a name='L298'></a><a href='#L298'>298</a>
+<a name='L299'></a><a href='#L299'>299</a>
+<a name='L300'></a><a href='#L300'>300</a>
+<a name='L301'></a><a href='#L301'>301</a>
+<a name='L302'></a><a href='#L302'>302</a>
+<a name='L303'></a><a href='#L303'>303</a>
+<a name='L304'></a><a href='#L304'>304</a>
+<a name='L305'></a><a href='#L305'>305</a>
+<a name='L306'></a><a href='#L306'>306</a>
+<a name='L307'></a><a href='#L307'>307</a>
+<a name='L308'></a><a href='#L308'>308</a>
+<a name='L309'></a><a href='#L309'>309</a>
+<a name='L310'></a><a href='#L310'>310</a>
+<a name='L311'></a><a href='#L311'>311</a>
+<a name='L312'></a><a href='#L312'>312</a>
+<a name='L313'></a><a href='#L313'>313</a>
+<a name='L314'></a><a href='#L314'>314</a>
+<a name='L315'></a><a href='#L315'>315</a>
+<a name='L316'></a><a href='#L316'>316</a>
+<a name='L317'></a><a href='#L317'>317</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">4x</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">5x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5x</span>
+<span class="cline-any cline-yes">5x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">5x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">11x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">6x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3x</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import AgeGroup from '../DTOs/AgeGroupDTO';
+import EnergeticRequirement from '../DTOs/EnergeticRequirementDTO';
+import CalculatorResponse from '../DTOs/CalculatorResponseDTO';
+import GroupEnergeticRequirement from '../DTOs/GroupEnergeticRequirementDTO';
+import ExtraData from '../DTOs/ExtraDataDTO';
+import MinorPAL from '../DTOs/MinorPALDTO';
+import AdultPAL from '../DTOs/AdultPALDTO';
+import IndividualMaternity from '../DTOs/IndividualMaternityDTO';
+import PopulationMaternity from '../DTOs/PopulationMaternityDTO';
+import Sex from '../Enum/Sex';
+import AgeBracket from '../Enum/AgeBracket';
+import ParserService from './ParserService';
+&nbsp;
+// eslint-disable-next-line max-len
+const isIndividualMaternity = (obj: IndividualMaternity | PopulationMaternity): obj is IndividualMaternity =&gt; {
+  if ((obj as IndividualMaternity).pregnantWomen !== undefined) {
+    return true;
+  }
+  return false;
+};
+&nbsp;
+// TEE (Total Energetic Expenditure) = GET (Gasto Energetico Total)
+const calculateTEE = (group: AgeGroup, params: number[], preval: MinorPAL): number =&gt; {
+  const teeModerate: number = params[0]
+  + (params[1] * group.medianWeight)
+  + params[2] * (group.medianWeight * group.medianWeight);
+&nbsp;
+  const teeLow: number = teeModerate + (teeModerate * params[4]) / 100;
+  const teeIntense: number = teeModerate + (teeModerate * params[5]) / 100;
+&nbsp;
+  const ret: number = (teeLow * preval.lowPALPrevalence) / 100
+  + (teeModerate * preval.moderatePALPrevalence) / 100
+  + (teeIntense * preval.intensePALPrevalence) / 100;
+&nbsp;
+  return ret;
+};
+&nbsp;
+// BMR (Basal Metabolic Rate) = TMB (Tasa Metabolica Basal)
+const calculateBMR = (group: AgeGroup, params: number[]): number =&gt; {
+  const ret: number = params[0] * group.medianWeight + params[1];
+  return ret;
+};
+&nbsp;
+// PAL (Physical Activity Level) = NAF (Nivel de Actividad Fisica)
+const calculatePAL = (params: number[], popData: AdultPAL): number =&gt; {
+  const ruralPAL: number = (popData.activeRuralPAL * params[2]) / 100
+  + (popData.lowRuralPAL * params[3]) / 100;
+  const urbanPAL: number = (popData.activeUrbanPAL * params[4]) / 100
+  + (popData.lowUrbanPAL * params[5]) / 100;
+&nbsp;
+  const ret = (ruralPAL * popData.ruralPercentage) / 100
+  + (urbanPAL * popData.urbanPercentage) / 100;
+  return ret;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculateERWomenIndividual = (group: AgeGroup, params: number[], popData: IndividualMaternity, req: number): number =&gt; {
+  const percentPregnantWomen = (popData.pregnantWomen * 100) / group.population;
+  const percentLactatingWomen = (popData.lactatingWomen * 100) / group.population;
+&nbsp;
+  const reqPregnantWomen = (percentPregnantWomen * (req + params[6])) / 100;
+  const reqLactatingWomen = (percentLactatingWomen * (req + params[7])) / 100;
+  const reqRestOfWomen = ((100 - percentPregnantWomen - percentLactatingWomen) * req) / 100;
+&nbsp;
+  return reqPregnantWomen + reqLactatingWomen + reqRestOfWomen;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculateERWomenPopulation = (params: number[], popData: PopulationMaternity, req: number): number =&gt; {
+  const annualBirths = (popData.countryBirthRate * popData.countryPopulation) / 1000;
+&nbsp;
+  const percentPregnantWomen = (annualBirths * 75) / popData.countryWomenInAgeGroup;
+  const percentLactatingWomen = (annualBirths * 50) / popData.countryWomenInAgeGroup;
+&nbsp;
+  const reqPregnantWomen = (percentPregnantWomen * (req + params[6])) / 100;
+  const reqLactatingWomen = (percentLactatingWomen * (req + params[7])) / 100;
+  const reqRestOfWomen = ((100 - percentPregnantWomen - percentLactatingWomen) * req) / 100;
+&nbsp;
+  return reqPregnantWomen + reqLactatingWomen + reqRestOfWomen;
+};
+&nbsp;
+const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnergeticRequirement =&gt; {
+  const requirement = params[0] + (params[1] * group.medianWeight) + params[2];
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+const calculate1To5Years = (group: AgeGroup, params: number[]): GroupEnergeticRequirement =&gt; {
+  const requirement = params[0]
+  + (params[1] * group.medianWeight)
+  + (params[2] * (group.medianWeight ** 2))
+  + params[3];
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculate6To17Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement =&gt; {
+  let tee: number;
+  if (typeof (data.minorPAL) === 'undefined') {
+    throw new Error('Missing data');
+  } else {
+    tee = calculateTEE(group, params, data.minorPAL);
+  }
+&nbsp;
+  const requirement = tee + params[3];
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculate18To29Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement =&gt; {
+  let bmr: number;
+  let pal: number;
+  if (typeof (data.adultPAL) === 'undefined') {
+    throw new Error('Missing data');
+  } else {
+    bmr = calculateBMR(group, params);
+    pal = calculatePAL(params, data.adultPAL);
+  }
+&nbsp;
+  let requirement: number = bmr * pal;
+&nbsp;
+  // If the group's sex is Female, then you have to take into account
+  // the extra energy required by women that are pregnant or lactating
+  if (group.sex === Sex.Female) {
+    if (data.maternity18To29 === undefined) {
+      throw new Error('Missing data');
+    } else <span class="missing-if-branch" title="else path not taken" >E</span>if (isIndividualMaternity(data.maternity18To29)) {
+      requirement = calculateERWomenIndividual(group, params, data.maternity18To29, requirement);
+    } else {
+<span class="cstat-no" title="statement not covered" >      requirement = calculateERWomenPopulation(params, data.maternity18To29, requirement);</span>
+    }
+  }
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculate30To59Years = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement =&gt; {
+  let bmr: number;
+  let pal: number;
+  if (typeof (data.adultPAL) === 'undefined') {
+    throw new Error('Missing data');
+  } else {
+    bmr = calculateBMR(group, params);
+    pal = calculatePAL(params, data.adultPAL);
+  }
+&nbsp;
+  let requirement: number = bmr * pal;
+&nbsp;
+  // If the group's sex is Female, then you have to take into account
+  // the extra energy required by women that are pregnant or lactating
+  if (group.sex === Sex.Female) {
+    if (typeof (data.maternity30To59) === 'undefined') {
+      throw new Error('Missing data');
+    } else <span class="missing-if-branch" title="else path not taken" >E</span>if (isIndividualMaternity(data.maternity30To59)) {
+      requirement = calculateERWomenIndividual(group, params, data.maternity30To59, requirement);
+    } else {
+<span class="cstat-no" title="statement not covered" >      requirement = calculateERWomenPopulation(params, data.maternity30To59, requirement);</span>
+    }
+  }
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculate60PlusYears = (group: AgeGroup, params: number[], data: ExtraData): GroupEnergeticRequirement =&gt; {
+  let bmr: number;
+  let pal: number;
+  if (typeof (data.adultPAL) === 'undefined') {
+    throw new Error('Missing data');
+  } else {
+    bmr = calculateBMR(group, params);
+    pal = calculatePAL(params, data.adultPAL);
+  }
+&nbsp;
+  const requirement: number = bmr * pal;
+&nbsp;
+  const groupRequirement: GroupEnergeticRequirement = {
+    group: ParserService.unparseGroup(group),
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
+  };
+&nbsp;
+  return groupRequirement;
+};
+&nbsp;
+// eslint-disable-next-line max-len
+const calculateER = <span class="fstat-no" title="function not covered" >(g</span>roupParameters: Map&lt;number[], AgeGroup&gt;, data: ExtraData): CalculatorResponse =&gt; {
+  let totalOfPeople = <span class="cstat-no" title="statement not covered" >0;</span>
+  let totalRequirement = <span class="cstat-no" title="statement not covered" >0;</span>
+&nbsp;
+  const requirements: GroupEnergeticRequirement[] = <span class="cstat-no" title="statement not covered" >[];</span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" >  groupParameters.forEach(<span class="fstat-no" title="function not covered" >(g</span>roup: AgeGroup, params: number[]) =&gt; {</span>
+<span class="cstat-no" title="statement not covered" >    totalOfPeople += group.population;</span>
+    let groupRequirement: GroupEnergeticRequirement;
+<span class="cstat-no" title="statement not covered" >    switch (group.age) {</span>
+      case AgeBracket.m0:
+      case AgeBracket.m1:
+      case AgeBracket.m2:
+      case AgeBracket.m3:
+      case AgeBracket.m4:
+      case AgeBracket.m5:
+      case AgeBracket.m6:
+      case AgeBracket.m7:
+      case AgeBracket.m8:
+      case AgeBracket.m9:
+      case AgeBracket.m10:
+      case AgeBracket.m11: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculateLessThanAYear(group, params);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      case AgeBracket.a1:
+      case AgeBracket.a2:
+      case AgeBracket.a3:
+      case AgeBracket.a4:
+      case AgeBracket.a5: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculate1To5Years(group, params);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      case AgeBracket.a6:
+      case AgeBracket.a7:
+      case AgeBracket.a8:
+      case AgeBracket.a9:
+      case AgeBracket.a10:
+      case AgeBracket.a11:
+      case AgeBracket.a12:
+      case AgeBracket.a13:
+      case AgeBracket.a14:
+      case AgeBracket.a15:
+      case AgeBracket.a16:
+      case AgeBracket.a17: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculate6To17Years(group, params, data);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      case AgeBracket.a18_29: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculate18To29Years(group, params, data);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      case AgeBracket.a30_59: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculate30To59Years(group, params, data);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      case AgeBracket.a60: {
+<span class="cstat-no" title="statement not covered" >        groupRequirement = calculate60PlusYears(group, params, data);</span>
+<span class="cstat-no" title="statement not covered" >        break;</span>
+      }
+      default: {
+<span class="cstat-no" title="statement not covered" >        throw new Error('Parsing error, attribute edad does not respect format');</span>
+      }
+    }
+<span class="cstat-no" title="statement not covered" >    totalRequirement += groupRequirement.total;</span>
+<span class="cstat-no" title="statement not covered" >    requirements.push(groupRequirement);</span>
+  });
+&nbsp;
+  const totalER: EnergeticRequirement = <span class="cstat-no" title="statement not covered" >{</span>
+    perCapita: totalRequirement / totalOfPeople,
+    total: totalRequirement,
+    totalPopulation: totalOfPeople,
+  };
+&nbsp;
+  const result: CalculatorResponse = <span class="cstat-no" title="statement not covered" >{</span>
+    groupsRequirements: requirements,
+    totalRequirement: totalER,
+  };
+&nbsp;
+<span class="cstat-no" title="statement not covered" >  return result;</span>
+};
+&nbsp;
+export default {
+  calculateER,
+  calculate60PlusYears,
+  calculate30To59Years,
+  calculate18To29Years,
+  calculate6To17Years,
+  calculate1To5Years,
+  calculateLessThanAYear,
+  calculateERWomenPopulation,
+  calculateERWomenIndividual,
+  calculatePAL,
+  calculateBMR,
+  calculateTEE,
+  isIndividualMaternity,
+};
+&nbsp;</pre></td></tr></table></pre>
+
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/Services/ParserService.ts.html b/coverage/lcov-report/Services/ParserService.ts.html
new file mode 100644
index 0000000000000000000000000000000000000000..3af49bcefc991da8718279ad09a4883082fcd1ca
--- /dev/null
+++ b/coverage/lcov-report/Services/ParserService.ts.html
@@ -0,0 +1,638 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Services/ParserService.ts</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> / <a href="index.html">Services</a> ParserService.ts</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">44.44% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>4/9</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">100% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>0/0</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">33.33% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>1/3</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">44.44% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>4/9</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line low'></div>
+    <pre><table class="coverage">
+<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
+<a name='L2'></a><a href='#L2'>2</a>
+<a name='L3'></a><a href='#L3'>3</a>
+<a name='L4'></a><a href='#L4'>4</a>
+<a name='L5'></a><a href='#L5'>5</a>
+<a name='L6'></a><a href='#L6'>6</a>
+<a name='L7'></a><a href='#L7'>7</a>
+<a name='L8'></a><a href='#L8'>8</a>
+<a name='L9'></a><a href='#L9'>9</a>
+<a name='L10'></a><a href='#L10'>10</a>
+<a name='L11'></a><a href='#L11'>11</a>
+<a name='L12'></a><a href='#L12'>12</a>
+<a name='L13'></a><a href='#L13'>13</a>
+<a name='L14'></a><a href='#L14'>14</a>
+<a name='L15'></a><a href='#L15'>15</a>
+<a name='L16'></a><a href='#L16'>16</a>
+<a name='L17'></a><a href='#L17'>17</a>
+<a name='L18'></a><a href='#L18'>18</a>
+<a name='L19'></a><a href='#L19'>19</a>
+<a name='L20'></a><a href='#L20'>20</a>
+<a name='L21'></a><a href='#L21'>21</a>
+<a name='L22'></a><a href='#L22'>22</a>
+<a name='L23'></a><a href='#L23'>23</a>
+<a name='L24'></a><a href='#L24'>24</a>
+<a name='L25'></a><a href='#L25'>25</a>
+<a name='L26'></a><a href='#L26'>26</a>
+<a name='L27'></a><a href='#L27'>27</a>
+<a name='L28'></a><a href='#L28'>28</a>
+<a name='L29'></a><a href='#L29'>29</a>
+<a name='L30'></a><a href='#L30'>30</a>
+<a name='L31'></a><a href='#L31'>31</a>
+<a name='L32'></a><a href='#L32'>32</a>
+<a name='L33'></a><a href='#L33'>33</a>
+<a name='L34'></a><a href='#L34'>34</a>
+<a name='L35'></a><a href='#L35'>35</a>
+<a name='L36'></a><a href='#L36'>36</a>
+<a name='L37'></a><a href='#L37'>37</a>
+<a name='L38'></a><a href='#L38'>38</a>
+<a name='L39'></a><a href='#L39'>39</a>
+<a name='L40'></a><a href='#L40'>40</a>
+<a name='L41'></a><a href='#L41'>41</a>
+<a name='L42'></a><a href='#L42'>42</a>
+<a name='L43'></a><a href='#L43'>43</a>
+<a name='L44'></a><a href='#L44'>44</a>
+<a name='L45'></a><a href='#L45'>45</a>
+<a name='L46'></a><a href='#L46'>46</a>
+<a name='L47'></a><a href='#L47'>47</a>
+<a name='L48'></a><a href='#L48'>48</a>
+<a name='L49'></a><a href='#L49'>49</a>
+<a name='L50'></a><a href='#L50'>50</a>
+<a name='L51'></a><a href='#L51'>51</a>
+<a name='L52'></a><a href='#L52'>52</a>
+<a name='L53'></a><a href='#L53'>53</a>
+<a name='L54'></a><a href='#L54'>54</a>
+<a name='L55'></a><a href='#L55'>55</a>
+<a name='L56'></a><a href='#L56'>56</a>
+<a name='L57'></a><a href='#L57'>57</a>
+<a name='L58'></a><a href='#L58'>58</a>
+<a name='L59'></a><a href='#L59'>59</a>
+<a name='L60'></a><a href='#L60'>60</a>
+<a name='L61'></a><a href='#L61'>61</a>
+<a name='L62'></a><a href='#L62'>62</a>
+<a name='L63'></a><a href='#L63'>63</a>
+<a name='L64'></a><a href='#L64'>64</a>
+<a name='L65'></a><a href='#L65'>65</a>
+<a name='L66'></a><a href='#L66'>66</a>
+<a name='L67'></a><a href='#L67'>67</a>
+<a name='L68'></a><a href='#L68'>68</a>
+<a name='L69'></a><a href='#L69'>69</a>
+<a name='L70'></a><a href='#L70'>70</a>
+<a name='L71'></a><a href='#L71'>71</a>
+<a name='L72'></a><a href='#L72'>72</a>
+<a name='L73'></a><a href='#L73'>73</a>
+<a name='L74'></a><a href='#L74'>74</a>
+<a name='L75'></a><a href='#L75'>75</a>
+<a name='L76'></a><a href='#L76'>76</a>
+<a name='L77'></a><a href='#L77'>77</a>
+<a name='L78'></a><a href='#L78'>78</a>
+<a name='L79'></a><a href='#L79'>79</a>
+<a name='L80'></a><a href='#L80'>80</a>
+<a name='L81'></a><a href='#L81'>81</a>
+<a name='L82'></a><a href='#L82'>82</a>
+<a name='L83'></a><a href='#L83'>83</a>
+<a name='L84'></a><a href='#L84'>84</a>
+<a name='L85'></a><a href='#L85'>85</a>
+<a name='L86'></a><a href='#L86'>86</a>
+<a name='L87'></a><a href='#L87'>87</a>
+<a name='L88'></a><a href='#L88'>88</a>
+<a name='L89'></a><a href='#L89'>89</a>
+<a name='L90'></a><a href='#L90'>90</a>
+<a name='L91'></a><a href='#L91'>91</a>
+<a name='L92'></a><a href='#L92'>92</a>
+<a name='L93'></a><a href='#L93'>93</a>
+<a name='L94'></a><a href='#L94'>94</a>
+<a name='L95'></a><a href='#L95'>95</a>
+<a name='L96'></a><a href='#L96'>96</a>
+<a name='L97'></a><a href='#L97'>97</a>
+<a name='L98'></a><a href='#L98'>98</a>
+<a name='L99'></a><a href='#L99'>99</a>
+<a name='L100'></a><a href='#L100'>100</a>
+<a name='L101'></a><a href='#L101'>101</a>
+<a name='L102'></a><a href='#L102'>102</a>
+<a name='L103'></a><a href='#L103'>103</a>
+<a name='L104'></a><a href='#L104'>104</a>
+<a name='L105'></a><a href='#L105'>105</a>
+<a name='L106'></a><a href='#L106'>106</a>
+<a name='L107'></a><a href='#L107'>107</a>
+<a name='L108'></a><a href='#L108'>108</a>
+<a name='L109'></a><a href='#L109'>109</a>
+<a name='L110'></a><a href='#L110'>110</a>
+<a name='L111'></a><a href='#L111'>111</a>
+<a name='L112'></a><a href='#L112'>112</a>
+<a name='L113'></a><a href='#L113'>113</a>
+<a name='L114'></a><a href='#L114'>114</a>
+<a name='L115'></a><a href='#L115'>115</a>
+<a name='L116'></a><a href='#L116'>116</a>
+<a name='L117'></a><a href='#L117'>117</a>
+<a name='L118'></a><a href='#L118'>118</a>
+<a name='L119'></a><a href='#L119'>119</a>
+<a name='L120'></a><a href='#L120'>120</a>
+<a name='L121'></a><a href='#L121'>121</a>
+<a name='L122'></a><a href='#L122'>122</a>
+<a name='L123'></a><a href='#L123'>123</a>
+<a name='L124'></a><a href='#L124'>124</a>
+<a name='L125'></a><a href='#L125'>125</a>
+<a name='L126'></a><a href='#L126'>126</a>
+<a name='L127'></a><a href='#L127'>127</a>
+<a name='L128'></a><a href='#L128'>128</a>
+<a name='L129'></a><a href='#L129'>129</a>
+<a name='L130'></a><a href='#L130'>130</a>
+<a name='L131'></a><a href='#L131'>131</a>
+<a name='L132'></a><a href='#L132'>132</a>
+<a name='L133'></a><a href='#L133'>133</a>
+<a name='L134'></a><a href='#L134'>134</a>
+<a name='L135'></a><a href='#L135'>135</a>
+<a name='L136'></a><a href='#L136'>136</a>
+<a name='L137'></a><a href='#L137'>137</a>
+<a name='L138'></a><a href='#L138'>138</a>
+<a name='L139'></a><a href='#L139'>139</a>
+<a name='L140'></a><a href='#L140'>140</a>
+<a name='L141'></a><a href='#L141'>141</a>
+<a name='L142'></a><a href='#L142'>142</a>
+<a name='L143'></a><a href='#L143'>143</a>
+<a name='L144'></a><a href='#L144'>144</a>
+<a name='L145'></a><a href='#L145'>145</a>
+<a name='L146'></a><a href='#L146'>146</a>
+<a name='L147'></a><a href='#L147'>147</a>
+<a name='L148'></a><a href='#L148'>148</a>
+<a name='L149'></a><a href='#L149'>149</a>
+<a name='L150'></a><a href='#L150'>150</a>
+<a name='L151'></a><a href='#L151'>151</a>
+<a name='L152'></a><a href='#L152'>152</a>
+<a name='L153'></a><a href='#L153'>153</a>
+<a name='L154'></a><a href='#L154'>154</a>
+<a name='L155'></a><a href='#L155'>155</a>
+<a name='L156'></a><a href='#L156'>156</a>
+<a name='L157'></a><a href='#L157'>157</a>
+<a name='L158'></a><a href='#L158'>158</a>
+<a name='L159'></a><a href='#L159'>159</a>
+<a name='L160'></a><a href='#L160'>160</a>
+<a name='L161'></a><a href='#L161'>161</a>
+<a name='L162'></a><a href='#L162'>162</a>
+<a name='L163'></a><a href='#L163'>163</a>
+<a name='L164'></a><a href='#L164'>164</a>
+<a name='L165'></a><a href='#L165'>165</a>
+<a name='L166'></a><a href='#L166'>166</a>
+<a name='L167'></a><a href='#L167'>167</a>
+<a name='L168'></a><a href='#L168'>168</a>
+<a name='L169'></a><a href='#L169'>169</a>
+<a name='L170'></a><a href='#L170'>170</a>
+<a name='L171'></a><a href='#L171'>171</a>
+<a name='L172'></a><a href='#L172'>172</a>
+<a name='L173'></a><a href='#L173'>173</a>
+<a name='L174'></a><a href='#L174'>174</a>
+<a name='L175'></a><a href='#L175'>175</a>
+<a name='L176'></a><a href='#L176'>176</a>
+<a name='L177'></a><a href='#L177'>177</a>
+<a name='L178'></a><a href='#L178'>178</a>
+<a name='L179'></a><a href='#L179'>179</a>
+<a name='L180'></a><a href='#L180'>180</a>
+<a name='L181'></a><a href='#L181'>181</a>
+<a name='L182'></a><a href='#L182'>182</a>
+<a name='L183'></a><a href='#L183'>183</a>
+<a name='L184'></a><a href='#L184'>184</a>
+<a name='L185'></a><a href='#L185'>185</a>
+<a name='L186'></a><a href='#L186'>186</a>
+<a name='L187'></a><a href='#L187'>187</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1x</span>
+<span class="cline-any cline-yes">12x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">12x</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import AgeGroup from '../DTOs/AgeGroupDTO';
+import AgeGroupJSON from '../DTOs/AgeGroupJSON';
+import AgeBracket from '../Enum/AgeBracket';
+import Sex from '../Enum/Sex';
+&nbsp;
+// const parseSex = (sexo: string): Sex =&gt; {
+//   let sex: Sex = sexo;
+//   switch (sexo) {
+//     case 'Masculino': {
+//       sex = Sex.Masculino;
+//       break;
+//     }
+//     case 'Femenino': {
+//       sex = Sex.Femenino;
+//       break;
+//     }
+//     default: {
+//       throw new Error('Parsing error, attribute sexo does not respect format');
+//     }
+//   }
+//   return sex;
+// };
+//
+// const parseAge = (edad: string): AgeBracket =&gt; {
+//   let age: AgeBracket;
+//   switch (edad) {
+//     case '0 meses': {
+//       age = AgeBracket.m0;
+//       break;
+//     }
+//     case '1 mes': {
+//       age = AgeBracket.m1;
+//       break;
+//     }
+//     case '2 meses': {
+//       age = AgeBracket.m2;
+//       break;
+//     }
+//     case '3 meses': {
+//       age = AgeBracket.m3;
+//       break;
+//     }
+//     case '4 meses': {
+//       age = AgeBracket.m4;
+//       break;
+//     }
+//     case '5 meses': {
+//       age = AgeBracket.m5;
+//       break;
+//     }
+//     case '6 meses': {
+//       age = AgeBracket.m6;
+//       break;
+//     }
+//     case '7 meses': {
+//       age = AgeBracket.m7;
+//       break;
+//     }
+//     case '8 meses': {
+//       age = AgeBracket.m8;
+//       break;
+//     }
+//     case '9 meses': {
+//       age = AgeBracket.m9;
+//       break;
+//     }
+//     case '10 meses': {
+//       age = AgeBracket.m10;
+//       break;
+//     }
+//     case '11 meses': {
+//       age = AgeBracket.m11;
+//       break;
+//     }
+//     case '1 año': {
+//       age = AgeBracket.a1;
+//       break;
+//     }
+//     case '2 años': {
+//       age = AgeBracket.a2;
+//       break;
+//     }
+//     case '3 años': {
+//       age = AgeBracket.a3;
+//       break;
+//     }
+//     case '4 años': {
+//       age = AgeBracket.a4;
+//       break;
+//     }
+//     case '5 años': {
+//       age = AgeBracket.a5;
+//       break;
+//     }
+//     case '6 años': {
+//       age = AgeBracket.a6;
+//       break;
+//     }
+//     case '7 años': {
+//       age = AgeBracket.a7;
+//       break;
+//     }
+//     case '8 años': {
+//       age = AgeBracket.a8;
+//       break;
+//     }
+//     case '9 años': {
+//       age = AgeBracket.a9;
+//       break;
+//     }
+//     case '10 años': {
+//       age = AgeBracket.a10;
+//       break;
+//     }
+//     case '11 años': {
+//       age = AgeBracket.a11;
+//       break;
+//     }
+//     case '12 años': {
+//       age = AgeBracket.a12;
+//       break;
+//     }
+//     case '13 años': {
+//       age = AgeBracket.a13;
+//       break;
+//     }
+//     case '14 años': {
+//       age = AgeBracket.a14;
+//       break;
+//     }
+//     case '15 años': {
+//       age = AgeBracket.a15;
+//       break;
+//     }
+//     case '16 años': {
+//       age = AgeBracket.a16;
+//       break;
+//     }
+//     case '17 años': {
+//       age = AgeBracket.a17;
+//       break;
+//     }
+//     case '18-29 años': {
+//       age = AgeBracket.a18_29;
+//       break;
+//     }
+//     case '30-59 años': {
+//       age = AgeBracket.a30_59;
+//       break;
+//     }
+//     case '60+ años': {
+//       age = AgeBracket.a60;
+//       break;
+//     }
+//     default: {
+//       throw new Error('Parsing error, attribute edad does not respect format');
+//     }
+//   }
+//   return age;
+// };
+&nbsp;
+const parseGroups = <span class="fstat-no" title="function not covered" >(g</span>roups: AgeGroupJSON[]): AgeGroup[] =&gt; {
+  const retGroups: AgeGroup[] = <span class="cstat-no" title="statement not covered" >[];</span>
+<span class="cstat-no" title="statement not covered" >  groups.forEach(<span class="fstat-no" title="function not covered" >(a</span>geGroup: AgeGroupJSON) =&gt; {</span>
+    const group: AgeGroup = <span class="cstat-no" title="statement not covered" >{</span>
+      age: ageGroup.age as AgeBracket,
+      sex: ageGroup.sex as Sex,
+      medianWeight: ageGroup.medianWeight,
+      population: ageGroup.population,
+    };
+<span class="cstat-no" title="statement not covered" >    retGroups.push(group);</span>
+  });
+<span class="cstat-no" title="statement not covered" >  return retGroups;</span>
+};
+&nbsp;
+const unparseGroup = (group: AgeGroup): AgeGroupJSON =&gt; {
+  const retGroup: AgeGroupJSON = {
+    age: group.age as string,
+    sex: group.sex as string,
+    medianWeight: group.medianWeight,
+    population: group.population,
+  };
+  return retGroup;
+};
+&nbsp;
+export default { parseGroups, unparseGroup };
+&nbsp;</pre></td></tr></table></pre>
+
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/Services/index.html b/coverage/lcov-report/Services/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..8b8e497ca1daf398bdcb712b5caef7fca7bc53ef
--- /dev/null
+++ b/coverage/lcov-report/Services/index.html
@@ -0,0 +1,126 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for Services</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="../prettify.css" />
+    <link rel="stylesheet" href="../base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(../sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1><a href="../index.html">All files</a> Services</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">73.72% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>87/118</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">36.36% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>20/55</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">76.47% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>13/17</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">73.72% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>87/118</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line medium'></div>
+    <div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+   <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+   <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+   <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+   <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+   <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+   <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+   <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+	<td class="file medium" data-value="ERCalculator.ts"><a href="ERCalculator.ts.html">ERCalculator.ts</a></td>
+	<td data-value="76.14" class="pic medium">
+	<div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
+	</td>
+	<td data-value="76.14" class="pct medium">76.14%</td>
+	<td data-value="109" class="abs medium">83/109</td>
+	<td data-value="36.36" class="pct low">36.36%</td>
+	<td data-value="55" class="abs low">20/55</td>
+	<td data-value="85.71" class="pct high">85.71%</td>
+	<td data-value="14" class="abs high">12/14</td>
+	<td data-value="76.14" class="pct medium">76.14%</td>
+	<td data-value="109" class="abs medium">83/109</td>
+	</tr>
+
+<tr>
+	<td class="file low" data-value="ParserService.ts"><a href="ParserService.ts.html">ParserService.ts</a></td>
+	<td data-value="44.44" class="pic low">
+	<div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div>
+	</td>
+	<td data-value="44.44" class="pct low">44.44%</td>
+	<td data-value="9" class="abs low">4/9</td>
+	<td data-value="100" class="pct high">100%</td>
+	<td data-value="0" class="abs high">0/0</td>
+	<td data-value="33.33" class="pct low">33.33%</td>
+	<td data-value="3" class="abs low">1/3</td>
+	<td data-value="44.44" class="pct low">44.44%</td>
+	<td data-value="9" class="abs low">4/9</td>
+	</tr>
+
+</tbody>
+</table>
+</div>
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="../prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="../sorter.js"></script>
+        <script src="../block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css
new file mode 100644
index 0000000000000000000000000000000000000000..f418035b469aff23689a74c912849662f442aed4
--- /dev/null
+++ b/coverage/lcov-report/base.css
@@ -0,0 +1,224 @@
+body, html {
+  margin:0; padding: 0;
+  height: 100%;
+}
+body {
+    font-family: Helvetica Neue, Helvetica, Arial;
+    font-size: 14px;
+    color:#333;
+}
+.small { font-size: 12px; }
+*, *:after, *:before {
+  -webkit-box-sizing:border-box;
+     -moz-box-sizing:border-box;
+          box-sizing:border-box;
+  }
+h1 { font-size: 20px; margin: 0;}
+h2 { font-size: 14px; }
+pre {
+    font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
+    margin: 0;
+    padding: 0;
+    -moz-tab-size: 2;
+    -o-tab-size:  2;
+    tab-size: 2;
+}
+a { color:#0074D9; text-decoration:none; }
+a:hover { text-decoration:underline; }
+.strong { font-weight: bold; }
+.space-top1 { padding: 10px 0 0 0; }
+.pad2y { padding: 20px 0; }
+.pad1y { padding: 10px 0; }
+.pad2x { padding: 0 20px; }
+.pad2 { padding: 20px; }
+.pad1 { padding: 10px; }
+.space-left2 { padding-left:55px; }
+.space-right2 { padding-right:20px; }
+.center { text-align:center; }
+.clearfix { display:block; }
+.clearfix:after {
+  content:'';
+  display:block;
+  height:0;
+  clear:both;
+  visibility:hidden;
+  }
+.fl { float: left; }
+@media only screen and (max-width:640px) {
+  .col3 { width:100%; max-width:100%; }
+  .hide-mobile { display:none!important; }
+}
+
+.quiet {
+  color: #7f7f7f;
+  color: rgba(0,0,0,0.5);
+}
+.quiet a { opacity: 0.7; }
+
+.fraction {
+  font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
+  font-size: 10px;
+  color: #555;
+  background: #E8E8E8;
+  padding: 4px 5px;
+  border-radius: 3px;
+  vertical-align: middle;
+}
+
+div.path a:link, div.path a:visited { color: #333; }
+table.coverage {
+  border-collapse: collapse;
+  margin: 10px 0 0 0;
+  padding: 0;
+}
+
+table.coverage td {
+  margin: 0;
+  padding: 0;
+  vertical-align: top;
+}
+table.coverage td.line-count {
+    text-align: right;
+    padding: 0 5px 0 20px;
+}
+table.coverage td.line-coverage {
+    text-align: right;
+    padding-right: 10px;
+    min-width:20px;
+}
+
+table.coverage td span.cline-any {
+    display: inline-block;
+    padding: 0 5px;
+    width: 100%;
+}
+.missing-if-branch {
+    display: inline-block;
+    margin-right: 5px;
+    border-radius: 3px;
+    position: relative;
+    padding: 0 4px;
+    background: #333;
+    color: yellow;
+}
+
+.skip-if-branch {
+    display: none;
+    margin-right: 10px;
+    position: relative;
+    padding: 0 4px;
+    background: #ccc;
+    color: white;
+}
+.missing-if-branch .typ, .skip-if-branch .typ {
+    color: inherit !important;
+}
+.coverage-summary {
+  border-collapse: collapse;
+  width: 100%;
+}
+.coverage-summary tr { border-bottom: 1px solid #bbb; }
+.keyline-all { border: 1px solid #ddd; }
+.coverage-summary td, .coverage-summary th { padding: 10px; }
+.coverage-summary tbody { border: 1px solid #bbb; }
+.coverage-summary td { border-right: 1px solid #bbb; }
+.coverage-summary td:last-child { border-right: none; }
+.coverage-summary th {
+  text-align: left;
+  font-weight: normal;
+  white-space: nowrap;
+}
+.coverage-summary th.file { border-right: none !important; }
+.coverage-summary th.pct { }
+.coverage-summary th.pic,
+.coverage-summary th.abs,
+.coverage-summary td.pct,
+.coverage-summary td.abs { text-align: right; }
+.coverage-summary td.file { white-space: nowrap;  }
+.coverage-summary td.pic { min-width: 120px !important;  }
+.coverage-summary tfoot td { }
+
+.coverage-summary .sorter {
+    height: 10px;
+    width: 7px;
+    display: inline-block;
+    margin-left: 0.5em;
+    background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
+}
+.coverage-summary .sorted .sorter {
+    background-position: 0 -20px;
+}
+.coverage-summary .sorted-desc .sorter {
+    background-position: 0 -10px;
+}
+.status-line {  height: 10px; }
+/* yellow */
+.cbranch-no { background: yellow !important; color: #111; }
+/* dark red */
+.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
+.low .chart { border:1px solid #C21F39 }
+.highlighted,
+.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
+  background: #C21F39 !important;
+}
+/* medium red */
+.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
+/* light red */
+.low, .cline-no { background:#FCE1E5 }
+/* light green */
+.high, .cline-yes { background:rgb(230,245,208) }
+/* medium green */
+.cstat-yes { background:rgb(161,215,106) }
+/* dark green */
+.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
+.high .chart { border:1px solid rgb(77,146,33) }
+/* dark yellow (gold) */
+.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
+.medium .chart { border:1px solid #f9cd0b; }
+/* light yellow */
+.medium { background: #fff4c2; }
+
+.cstat-skip { background: #ddd; color: #111; }
+.fstat-skip { background: #ddd; color: #111 !important; }
+.cbranch-skip { background: #ddd !important; color: #111; }
+
+span.cline-neutral { background: #eaeaea; }
+
+.coverage-summary td.empty {
+    opacity: .5;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    line-height: 1;
+    color: #888;
+}
+
+.cover-fill, .cover-empty {
+  display:inline-block;
+  height: 12px;
+}
+.chart {
+  line-height: 0;
+}
+.cover-empty {
+    background: white;
+}
+.cover-full {
+    border-right: none !important;
+}
+pre.prettyprint {
+    border: none !important;
+    padding: 0 !important;
+    margin: 0 !important;
+}
+.com { color: #999 !important; }
+.ignore-none { color: #999; font-weight: normal; }
+
+.wrapper {
+  min-height: 100%;
+  height: auto !important;
+  height: 100%;
+  margin: 0 auto -48px;
+}
+.footer, .push {
+  height: 48px;
+}
diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7ff5a5cac80f4e9509e7afceb84004b3a44e6c8
--- /dev/null
+++ b/coverage/lcov-report/block-navigation.js
@@ -0,0 +1,79 @@
+/* eslint-disable */
+var jumpToCode = (function init() {
+    // Classes of code we would like to highlight in the file view
+    var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
+
+    // Elements to highlight in the file listing view
+    var fileListingElements = ['td.pct.low'];
+
+    // We don't want to select elements that are direct descendants of another match
+    var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
+
+    // Selecter that finds elements on the page to which we can jump
+    var selector =
+        fileListingElements.join(', ') +
+        ', ' +
+        notSelector +
+        missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
+
+    // The NodeList of matching elements
+    var missingCoverageElements = document.querySelectorAll(selector);
+
+    var currentIndex;
+
+    function toggleClass(index) {
+        missingCoverageElements
+            .item(currentIndex)
+            .classList.remove('highlighted');
+        missingCoverageElements.item(index).classList.add('highlighted');
+    }
+
+    function makeCurrent(index) {
+        toggleClass(index);
+        currentIndex = index;
+        missingCoverageElements.item(index).scrollIntoView({
+            behavior: 'smooth',
+            block: 'center',
+            inline: 'center'
+        });
+    }
+
+    function goToPrevious() {
+        var nextIndex = 0;
+        if (typeof currentIndex !== 'number' || currentIndex === 0) {
+            nextIndex = missingCoverageElements.length - 1;
+        } else if (missingCoverageElements.length > 1) {
+            nextIndex = currentIndex - 1;
+        }
+
+        makeCurrent(nextIndex);
+    }
+
+    function goToNext() {
+        var nextIndex = 0;
+
+        if (
+            typeof currentIndex === 'number' &&
+            currentIndex < missingCoverageElements.length - 1
+        ) {
+            nextIndex = currentIndex + 1;
+        }
+
+        makeCurrent(nextIndex);
+    }
+
+    return function jump(event) {
+        switch (event.which) {
+            case 78: // n
+            case 74: // j
+                goToNext();
+                break;
+            case 66: // b
+            case 75: // k
+            case 80: // p
+                goToPrevious();
+                break;
+        }
+    };
+})();
+window.addEventListener('keydown', jumpToCode);
diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..6691817834a957c938e7f09640a37a645fb31457
Binary files /dev/null and b/coverage/lcov-report/favicon.png differ
diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a26123c3d75083990172afb79536f02050698f1
--- /dev/null
+++ b/coverage/lcov-report/index.html
@@ -0,0 +1,126 @@
+
+<!doctype html>
+<html lang="en">
+
+<head>
+    <title>Code coverage report for All files</title>
+    <meta charset="utf-8" />
+    <link rel="stylesheet" href="prettify.css" />
+    <link rel="stylesheet" href="base.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <style type='text/css'>
+        .coverage-summary .sorter {
+            background-image: url(sort-arrow-sprite.png);
+        }
+    </style>
+</head>
+    
+<body>
+<div class='wrapper'>
+    <div class='pad1'>
+        <h1>All files</h1>
+        <div class='clearfix'>
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">73.72% </span>
+                <span class="quiet">Statements</span>
+                <span class='fraction'>87/118</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">36.36% </span>
+                <span class="quiet">Branches</span>
+                <span class='fraction'>20/55</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">76.47% </span>
+                <span class="quiet">Functions</span>
+                <span class='fraction'>13/17</span>
+            </div>
+        
+            
+            <div class='fl pad1y space-right2'>
+                <span class="strong">73.72% </span>
+                <span class="quiet">Lines</span>
+                <span class='fraction'>87/118</span>
+            </div>
+        
+            
+        </div>
+        <p class="quiet">
+            Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
+        </p>
+    </div>
+    <div class='status-line medium'></div>
+    <div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+   <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+   <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+   <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+   <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+   <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+   <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+   <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+   <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+	<td class="file empty" data-value="Enum"><a href="Enum/index.html">Enum</a></td>
+	<td data-value="0" class="pic empty">
+	<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
+	</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	<td data-value="0" class="pct empty">0%</td>
+	<td data-value="0" class="abs empty">0/0</td>
+	</tr>
+
+<tr>
+	<td class="file medium" data-value="Services"><a href="Services/index.html">Services</a></td>
+	<td data-value="73.72" class="pic medium">
+	<div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
+	</td>
+	<td data-value="73.72" class="pct medium">73.72%</td>
+	<td data-value="118" class="abs medium">87/118</td>
+	<td data-value="36.36" class="pct low">36.36%</td>
+	<td data-value="55" class="abs low">20/55</td>
+	<td data-value="76.47" class="pct medium">76.47%</td>
+	<td data-value="17" class="abs medium">13/17</td>
+	<td data-value="73.72" class="pct medium">73.72%</td>
+	<td data-value="118" class="abs medium">87/118</td>
+	</tr>
+
+</tbody>
+</table>
+</div>
+                <div class='push'></div><!-- for sticky footer -->
+            </div><!-- /wrapper -->
+            <div class='footer quiet pad2 space-top1 center small'>
+                Code coverage generated by
+                <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
+                at Thu Sep 30 2021 21:41:26 GMT-0300 (hora estándar de Uruguay)
+            </div>
+        </div>
+        <script src="prettify.js"></script>
+        <script>
+            window.onload = function () {
+                prettyPrint();
+            };
+        </script>
+        <script src="sorter.js"></script>
+        <script src="block-navigation.js"></script>
+    </body>
+</html>
+    
\ No newline at end of file
diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css
new file mode 100644
index 0000000000000000000000000000000000000000..b317a7cda31a440fbd47540297ee3c68d51f343e
--- /dev/null
+++ b/coverage/lcov-report/prettify.css
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3225238f26e3ab49a5e41e9cb287a73c82740b7
--- /dev/null
+++ b/coverage/lcov-report/prettify.js
@@ -0,0 +1,2 @@
+/* eslint-disable */
+window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png
new file mode 100644
index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3
Binary files /dev/null and b/coverage/lcov-report/sort-arrow-sprite.png differ
diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js
new file mode 100644
index 0000000000000000000000000000000000000000..16de10c4349e427164041e85133d97f68f8d3a29
--- /dev/null
+++ b/coverage/lcov-report/sorter.js
@@ -0,0 +1,170 @@
+/* eslint-disable */
+var addSorting = (function() {
+    'use strict';
+    var cols,
+        currentSort = {
+            index: 0,
+            desc: false
+        };
+
+    // returns the summary table element
+    function getTable() {
+        return document.querySelector('.coverage-summary');
+    }
+    // returns the thead element of the summary table
+    function getTableHeader() {
+        return getTable().querySelector('thead tr');
+    }
+    // returns the tbody element of the summary table
+    function getTableBody() {
+        return getTable().querySelector('tbody');
+    }
+    // returns the th element for nth column
+    function getNthColumn(n) {
+        return getTableHeader().querySelectorAll('th')[n];
+    }
+
+    // loads all columns
+    function loadColumns() {
+        var colNodes = getTableHeader().querySelectorAll('th'),
+            colNode,
+            cols = [],
+            col,
+            i;
+
+        for (i = 0; i < colNodes.length; i += 1) {
+            colNode = colNodes[i];
+            col = {
+                key: colNode.getAttribute('data-col'),
+                sortable: !colNode.getAttribute('data-nosort'),
+                type: colNode.getAttribute('data-type') || 'string'
+            };
+            cols.push(col);
+            if (col.sortable) {
+                col.defaultDescSort = col.type === 'number';
+                colNode.innerHTML =
+                    colNode.innerHTML + '<span class="sorter"></span>';
+            }
+        }
+        return cols;
+    }
+    // attaches a data attribute to every tr element with an object
+    // of data values keyed by column name
+    function loadRowData(tableRow) {
+        var tableCols = tableRow.querySelectorAll('td'),
+            colNode,
+            col,
+            data = {},
+            i,
+            val;
+        for (i = 0; i < tableCols.length; i += 1) {
+            colNode = tableCols[i];
+            col = cols[i];
+            val = colNode.getAttribute('data-value');
+            if (col.type === 'number') {
+                val = Number(val);
+            }
+            data[col.key] = val;
+        }
+        return data;
+    }
+    // loads all row data
+    function loadData() {
+        var rows = getTableBody().querySelectorAll('tr'),
+            i;
+
+        for (i = 0; i < rows.length; i += 1) {
+            rows[i].data = loadRowData(rows[i]);
+        }
+    }
+    // sorts the table using the data for the ith column
+    function sortByIndex(index, desc) {
+        var key = cols[index].key,
+            sorter = function(a, b) {
+                a = a.data[key];
+                b = b.data[key];
+                return a < b ? -1 : a > b ? 1 : 0;
+            },
+            finalSorter = sorter,
+            tableBody = document.querySelector('.coverage-summary tbody'),
+            rowNodes = tableBody.querySelectorAll('tr'),
+            rows = [],
+            i;
+
+        if (desc) {
+            finalSorter = function(a, b) {
+                return -1 * sorter(a, b);
+            };
+        }
+
+        for (i = 0; i < rowNodes.length; i += 1) {
+            rows.push(rowNodes[i]);
+            tableBody.removeChild(rowNodes[i]);
+        }
+
+        rows.sort(finalSorter);
+
+        for (i = 0; i < rows.length; i += 1) {
+            tableBody.appendChild(rows[i]);
+        }
+    }
+    // removes sort indicators for current column being sorted
+    function removeSortIndicators() {
+        var col = getNthColumn(currentSort.index),
+            cls = col.className;
+
+        cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
+        col.className = cls;
+    }
+    // adds sort indicators for current column being sorted
+    function addSortIndicators() {
+        getNthColumn(currentSort.index).className += currentSort.desc
+            ? ' sorted-desc'
+            : ' sorted';
+    }
+    // adds event listeners for all sorter widgets
+    function enableUI() {
+        var i,
+            el,
+            ithSorter = function ithSorter(i) {
+                var col = cols[i];
+
+                return function() {
+                    var desc = col.defaultDescSort;
+
+                    if (currentSort.index === i) {
+                        desc = !currentSort.desc;
+                    }
+                    sortByIndex(i, desc);
+                    removeSortIndicators();
+                    currentSort.index = i;
+                    currentSort.desc = desc;
+                    addSortIndicators();
+                };
+            };
+        for (i = 0; i < cols.length; i += 1) {
+            if (cols[i].sortable) {
+                // add the click event handler on the th so users
+                // dont have to click on those tiny arrows
+                el = getNthColumn(i).querySelector('.sorter').parentElement;
+                if (el.addEventListener) {
+                    el.addEventListener('click', ithSorter(i));
+                } else {
+                    el.attachEvent('onclick', ithSorter(i));
+                }
+            }
+        }
+    }
+    // adds sorting functionality to the UI
+    return function() {
+        if (!getTable()) {
+            return;
+        }
+        cols = loadColumns();
+        loadData();
+        addSortIndicators();
+        enableUI();
+    };
+})();
+
+window.addEventListener('load', addSorting);
diff --git a/coverage/lcov.info b/coverage/lcov.info
new file mode 100644
index 0000000000000000000000000000000000000000..7b896c93c20430c2af82b6234801b00cc07ead92
--- /dev/null
+++ b/coverage/lcov.info
@@ -0,0 +1,243 @@
+TN:
+SF:src\Enum\AgeBracket.ts
+FNF:0
+FNH:0
+LF:0
+LH:0
+BRF:0
+BRH:0
+end_of_record
+TN:
+SF:src\Enum\Sex.ts
+FNF:0
+FNH:0
+LF:0
+LH:0
+BRF:0
+BRH:0
+end_of_record
+TN:
+SF:src\Services\ERCalculator.ts
+FN:15,(anonymous_0)
+FN:23,(anonymous_1)
+FN:39,(anonymous_2)
+FN:45,(anonymous_3)
+FN:57,(anonymous_4)
+FN:69,(anonymous_5)
+FN:82,(anonymous_6)
+FN:94,(anonymous_7)
+FN:110,(anonymous_8)
+FN:130,(anonymous_9)
+FN:164,(anonymous_10)
+FN:198,(anonymous_11)
+FN:220,(anonymous_12)
+FN:226,(anonymous_13)
+FNF:14
+FNH:12
+FNDA:4,(anonymous_0)
+FNDA:5,(anonymous_1)
+FNDA:11,(anonymous_2)
+FNDA:11,(anonymous_3)
+FNDA:6,(anonymous_4)
+FNDA:2,(anonymous_5)
+FNDA:2,(anonymous_6)
+FNDA:2,(anonymous_7)
+FNDA:3,(anonymous_8)
+FNDA:4,(anonymous_9)
+FNDA:4,(anonymous_10)
+FNDA:3,(anonymous_11)
+FNDA:0,(anonymous_12)
+FNDA:0,(anonymous_13)
+DA:15,1
+DA:16,4
+DA:17,3
+DA:19,1
+DA:23,1
+DA:24,5
+DA:28,5
+DA:29,5
+DA:31,5
+DA:35,5
+DA:39,1
+DA:40,11
+DA:41,11
+DA:45,1
+DA:46,11
+DA:48,11
+DA:51,11
+DA:53,11
+DA:57,1
+DA:58,6
+DA:59,6
+DA:61,6
+DA:62,6
+DA:63,6
+DA:65,6
+DA:69,1
+DA:70,2
+DA:72,2
+DA:73,2
+DA:75,2
+DA:76,2
+DA:77,2
+DA:79,2
+DA:82,1
+DA:83,2
+DA:85,2
+DA:91,2
+DA:94,1
+DA:95,2
+DA:100,2
+DA:106,2
+DA:110,1
+DA:112,3
+DA:113,1
+DA:115,2
+DA:118,2
+DA:120,2
+DA:126,2
+DA:130,1
+DA:133,4
+DA:134,1
+DA:136,3
+DA:137,3
+DA:140,3
+DA:144,3
+DA:145,2
+DA:146,1
+DA:147,1
+DA:148,1
+DA:150,0
+DA:154,2
+DA:160,2
+DA:164,1
+DA:167,4
+DA:168,1
+DA:170,3
+DA:171,3
+DA:174,3
+DA:178,3
+DA:179,2
+DA:180,1
+DA:181,1
+DA:182,1
+DA:184,0
+DA:188,2
+DA:194,2
+DA:198,1
+DA:201,3
+DA:202,1
+DA:204,2
+DA:205,2
+DA:208,2
+DA:210,2
+DA:216,2
+DA:220,1
+DA:221,0
+DA:222,0
+DA:224,0
+DA:226,0
+DA:227,0
+DA:229,0
+DA:242,0
+DA:243,0
+DA:250,0
+DA:251,0
+DA:265,0
+DA:266,0
+DA:269,0
+DA:270,0
+DA:273,0
+DA:274,0
+DA:277,0
+DA:278,0
+DA:281,0
+DA:284,0
+DA:285,0
+DA:288,0
+DA:294,0
+DA:299,0
+LF:109
+LH:83
+BRDA:16,0,0,3
+BRDA:16,0,1,1
+BRDA:112,1,0,1
+BRDA:112,1,1,2
+BRDA:133,2,0,1
+BRDA:133,2,1,3
+BRDA:144,3,0,2
+BRDA:144,3,1,1
+BRDA:145,4,0,1
+BRDA:145,4,1,1
+BRDA:147,5,0,1
+BRDA:147,5,1,0
+BRDA:167,6,0,1
+BRDA:167,6,1,3
+BRDA:178,7,0,2
+BRDA:178,7,1,1
+BRDA:179,8,0,1
+BRDA:179,8,1,1
+BRDA:181,9,0,1
+BRDA:181,9,1,0
+BRDA:201,10,0,1
+BRDA:201,10,1,2
+BRDA:229,11,0,0
+BRDA:229,11,1,0
+BRDA:229,11,2,0
+BRDA:229,11,3,0
+BRDA:229,11,4,0
+BRDA:229,11,5,0
+BRDA:229,11,6,0
+BRDA:229,11,7,0
+BRDA:229,11,8,0
+BRDA:229,11,9,0
+BRDA:229,11,10,0
+BRDA:229,11,11,0
+BRDA:229,11,12,0
+BRDA:229,11,13,0
+BRDA:229,11,14,0
+BRDA:229,11,15,0
+BRDA:229,11,16,0
+BRDA:229,11,17,0
+BRDA:229,11,18,0
+BRDA:229,11,19,0
+BRDA:229,11,20,0
+BRDA:229,11,21,0
+BRDA:229,11,22,0
+BRDA:229,11,23,0
+BRDA:229,11,24,0
+BRDA:229,11,25,0
+BRDA:229,11,26,0
+BRDA:229,11,27,0
+BRDA:229,11,28,0
+BRDA:229,11,29,0
+BRDA:229,11,30,0
+BRDA:229,11,31,0
+BRDA:229,11,32,0
+BRF:55
+BRH:20
+end_of_record
+TN:
+SF:src\Services\ParserService.ts
+FN:162,(anonymous_0)
+FN:164,(anonymous_1)
+FN:176,(anonymous_2)
+FNF:3
+FNH:1
+FNDA:0,(anonymous_0)
+FNDA:0,(anonymous_1)
+FNDA:12,(anonymous_2)
+DA:162,1
+DA:163,0
+DA:164,0
+DA:165,0
+DA:171,0
+DA:173,0
+DA:176,1
+DA:177,12
+DA:183,12
+LF:9
+LH:4
+BRF:0
+BRH:0
+end_of_record
diff --git a/package-lock.json b/package-lock.json
index d4d415ee832277ccbbcb35131b51bee3fdfb2d7d..ada6047e9fd959803f9907e1493430681ff2d921 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1661,6 +1661,120 @@
         "defer-to-connect": "^1.0.1"
       }
     },
+    "@testing-library/jest-dom": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz",
+      "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==",
+      "dev": true,
+      "requires": {
+        "@babel/runtime": "^7.5.1",
+        "chalk": "^2.4.1",
+        "css": "^2.2.3",
+        "css.escape": "^1.5.1",
+        "jest-diff": "^24.0.0",
+        "jest-matcher-utils": "^24.0.0",
+        "lodash": "^4.17.11",
+        "pretty-format": "^24.0.0",
+        "redent": "^3.0.0"
+      },
+      "dependencies": {
+        "@jest/types": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+          "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+          "dev": true,
+          "requires": {
+            "@types/istanbul-lib-coverage": "^2.0.0",
+            "@types/istanbul-reports": "^1.1.1",
+            "@types/yargs": "^13.0.0"
+          }
+        },
+        "@types/istanbul-reports": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+          "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+          "dev": true,
+          "requires": {
+            "@types/istanbul-lib-coverage": "*",
+            "@types/istanbul-lib-report": "*"
+          }
+        },
+        "@types/yargs": {
+          "version": "13.0.12",
+          "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz",
+          "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==",
+          "dev": true,
+          "requires": {
+            "@types/yargs-parser": "*"
+          }
+        },
+        "ansi-regex": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+          "dev": true
+        },
+        "chalk": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          }
+        },
+        "diff-sequences": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
+          "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
+          "dev": true
+        },
+        "jest-diff": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
+          "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.0.1",
+            "diff-sequences": "^24.9.0",
+            "jest-get-type": "^24.9.0",
+            "pretty-format": "^24.9.0"
+          }
+        },
+        "jest-get-type": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
+          "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==",
+          "dev": true
+        },
+        "jest-matcher-utils": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
+          "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
+          "dev": true,
+          "requires": {
+            "chalk": "^2.0.1",
+            "jest-diff": "^24.9.0",
+            "jest-get-type": "^24.9.0",
+            "pretty-format": "^24.9.0"
+          }
+        },
+        "pretty-format": {
+          "version": "24.9.0",
+          "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
+          "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+          "dev": true,
+          "requires": {
+            "@jest/types": "^24.9.0",
+            "ansi-regex": "^4.0.0",
+            "ansi-styles": "^3.2.0",
+            "react-is": "^16.8.4"
+          }
+        }
+      }
+    },
     "@tootallnate/once": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
@@ -2327,6 +2441,12 @@
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
       "dev": true
     },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true
+    },
     "axe-core": {
       "version": "4.3.3",
       "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz",
@@ -3157,6 +3277,24 @@
       "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
       "dev": true
     },
+    "css": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+      "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "source-map": "^0.6.1",
+        "source-map-resolve": "^0.5.2",
+        "urix": "^0.1.0"
+      }
+    },
+    "css.escape": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
+      "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=",
+      "dev": true
+    },
     "cssom": {
       "version": "0.4.4",
       "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -3211,6 +3349,12 @@
       "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==",
       "dev": true
     },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
     "decompress-response": {
       "version": "3.3.0",
       "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
@@ -6399,6 +6543,12 @@
       "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
       "dev": true
     },
+    "min-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+      "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+      "dev": true
+    },
     "minimatch": {
       "version": "3.0.4",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -7124,6 +7274,16 @@
         "picomatch": "^2.2.1"
       }
     },
+    "redent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+      "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+      "dev": true,
+      "requires": {
+        "indent-string": "^4.0.0",
+        "strip-indent": "^3.0.0"
+      }
+    },
     "regenerate": {
       "version": "1.4.2",
       "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -7269,6 +7429,12 @@
       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
       "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
     },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
     "responselike": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
@@ -7525,6 +7691,19 @@
       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
       "dev": true
     },
+    "source-map-resolve": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.2",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
     "source-map-support": {
       "version": "0.5.20",
       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
@@ -7535,6 +7714,12 @@
         "source-map": "^0.6.0"
       }
     },
+    "source-map-url": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+      "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+      "dev": true
+    },
     "spdx-correct": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
@@ -7715,6 +7900,15 @@
       "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
       "dev": true
     },
+    "strip-indent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+      "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+      "dev": true,
+      "requires": {
+        "min-indent": "^1.0.0"
+      }
+    },
     "strip-json-comments": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -8328,6 +8522,12 @@
         "punycode": "^2.1.0"
       }
     },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
     "url-parse-lax": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
diff --git a/package.json b/package.json
index 639efd8398364f05c8d5d7b5f1df7863e77fef9c..c502455c892862fe199ff26dbd99bcf0208a38b1 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
     "@babel/plugin-transform-modules-commonjs": "^7.15.4",
     "@babel/preset-env": "^7.15.6",
     "@babel/preset-typescript": "^7.15.0",
+    "@testing-library/jest-dom": "^4.2.4",
     "@types/cors": "^2.8.12",
     "@types/express": "^4.17.13",
     "@types/jest": "^27.0.2",
@@ -50,8 +51,7 @@
   },
   "scripts": {
     "start": "nodemon ./src/index.ts",
-    "test": "jest",
-    "pretest": "lint-staged"
+    "test": "jest"
   },
   "repository": {
     "type": "git",
diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts
index f2c21555e825fff08244dc01cfaa51ad9b47cb3c..c48dc428cc13ffbd681ecbfb96e851e0fdfb0f59 100644
--- a/src/Services/ERCalculator.ts
+++ b/src/Services/ERCalculator.ts
@@ -84,8 +84,8 @@ const calculateLessThanAYear = (group: AgeGroup, params: number[]): GroupEnerget
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -99,8 +99,8 @@ const calculate1To5Years = (group: AgeGroup, params: number[]): GroupEnergeticRe
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -119,8 +119,8 @@ const calculate6To17Years = (group: AgeGroup, params: number[], data: ExtraData)
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -153,8 +153,8 @@ const calculate18To29Years = (group: AgeGroup, params: number[], data: ExtraData
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -187,8 +187,8 @@ const calculate30To59Years = (group: AgeGroup, params: number[], data: ExtraData
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -209,8 +209,8 @@ const calculate60PlusYears = (group: AgeGroup, params: number[], data: ExtraData
 
   const groupRequirement: GroupEnergeticRequirement = {
     group: ParserService.unparseGroup(group),
-    perCapita: requirement,
-    total: requirement * group.population,
+    perCapita: Math.round(requirement),
+    total: Math.round(requirement * group.population),
   };
 
   return groupRequirement;
@@ -299,7 +299,7 @@ const calculateER = (groupParameters: Map<number[], AgeGroup>, data: ExtraData):
   return result;
 };
 
-module.exports = {
+export default {
   calculateER,
   calculate60PlusYears,
   calculate30To59Years,
@@ -314,5 +314,3 @@ module.exports = {
   calculateTEE,
   isIndividualMaternity,
 };
-
-export default { calculateER };
diff --git a/src/Services/ParameterService.ts b/src/Services/ParameterService.ts
index 41469c5ef27a065ceb36d291ca53f62d2821a524..27b19b1c297fa7567c85afcf78ca8f2c1894b96b 100644
--- a/src/Services/ParameterService.ts
+++ b/src/Services/ParameterService.ts
@@ -1,7 +1,5 @@
 import AgeBracket from '../Enum/AgeBracket';
-import ParameterType from '../Enum/ParameterType';
 import Sex from '../Enum/Sex';
-// import Parameter from '../Models/Parameter';
 
 const getEquationValues = (ageBracket: AgeBracket, sex: Sex): number[] => {
   let res: number[] = [];
diff --git a/src/Services/ParserService.ts b/src/Services/ParserService.ts
index dc7131b412cf5b78d381501b62d6d2073cf0ee03..a637bced9be28cdc6ffc837c7f0542aca67beb71 100644
--- a/src/Services/ParserService.ts
+++ b/src/Services/ParserService.ts
@@ -162,10 +162,6 @@ import Sex from '../Enum/Sex';
 const parseGroups = (groups: AgeGroupJSON[]): AgeGroup[] => {
   const retGroups: AgeGroup[] = [];
   groups.forEach((ageGroup: AgeGroupJSON) => {
-    // if (typeof (obj.pesoMediano) !== 'number' || typeof (obj.cantidad) !== 'number') {
-    //  console.log('Estas haciendo cualquiera flaco');
-    //  throw new Error('Parsing error, attributes do not respect format');
-    // }
     const group: AgeGroup = {
       age: ageGroup.age as AgeBracket,
       sex: ageGroup.sex as Sex,