From 4870078599672175078e996ddf48a26b5e8ccadf Mon Sep 17 00:00:00 2001 From: nicofrand Date: Sun, 21 Jan 2018 13:48:46 +0100 Subject: [PATCH 1/6] More duplicates tests --- flatisfy/test_files/122509451@seloger.json | 52 ++++++++++++++ flatisfy/test_files/127963747@seloger.json | 53 ++++++++++++++ flatisfy/test_files/128358415@seloger.json | 68 ++++++++++++++++++ flatisfy/test_files/14818297@explorimmo.json | 72 +++++++++++++++++++ flatisfy/test_files/vertical-cropped.jpg | Bin 0 -> 35119 bytes flatisfy/test_files/vertical.jpg | Bin 0 -> 107156 bytes flatisfy/tests.py | 34 +++++++++ 7 files changed, 279 insertions(+) create mode 100644 flatisfy/test_files/122509451@seloger.json create mode 100644 flatisfy/test_files/127963747@seloger.json create mode 100644 flatisfy/test_files/128358415@seloger.json create mode 100644 flatisfy/test_files/14818297@explorimmo.json create mode 100644 flatisfy/test_files/vertical-cropped.jpg create mode 100644 flatisfy/test_files/vertical.jpg diff --git a/flatisfy/test_files/122509451@seloger.json b/flatisfy/test_files/122509451@seloger.json new file mode 100644 index 0000000..de74c86 --- /dev/null +++ b/flatisfy/test_files/122509451@seloger.json @@ -0,0 +1,52 @@ +{ + "id": "122509451@seloger", + "url": "http://www.seloger.com/annonces/achat/appartement/rennes-35/cleunay-arsenal-redon/122509451.htm?p=", + "title": "Appartement 3 pi\u00e8ces 78m\u00b2 - Rennes", + "area": 78, + "cost": 211000, + "price_per_meter": 2705.128205128205128205128205, + "currency": "\u20ac", + "utilities": "", + "date": "2018-01-19T22:39:00", + "location": " Rennes (35000)", + "station": "Arsenal - Redon", + "text": "Appartement quartier Arsenal Redon, \u00e0 vendre, type 3 de 78 m\u00b2. Il se compose d'une entr\u00e9e, d'un salon-s\u00e9jour lumineux de 33 m\u00b2 orient\u00e9 sud donnant sur une terrasse, de deux chambres, d'une cuisine ind\u00e9pendante, d'une salle de bains et d'un toilette. Vous disposerez d'un garage ferm\u00e9. Situ\u00e9 entre le centre ville et la future station m\u00e9tro Mabilais (ligne B), proximit\u00e9 imm\u00e9diate des commerces, \u00e9coles.. Bien soumis au statut de la copropri\u00e9t\u00e9. Charges annuelles courantes: 962e Agence immobili\u00e8re ERA Rennes Aristide Briand Agent Commercial: Guillaume DE KERANFLECH RSAC: 818942955.", + "phone": null, + "photos": [{ + "id": "0oj57y4pvtz7537ibvjq1agi9hrpctm96o30wknpc.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/o/j/5/0oj57y4pvtz7537ibvjq1agi9hrpctm96o30wknpc.jpg", + "data": null + }, { + "id": "0s0kr6fw0hbqkwm5m2oxhi8yysk6mfxb9ctcrx2bk.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/s/0/k/0s0kr6fw0hbqkwm5m2oxhi8yysk6mfxb9ctcrx2bk.jpg", + "data": null + }, { + "id": "0z8q9eq4rprqfymp0mpcezrq6kxp8uxknf5pgrx8g.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/z/8/q/0z8q9eq4rprqfymp0mpcezrq6kxp8uxknf5pgrx8g.jpg", + "data": null + }, { + "id": "01ti2ovzcuyx4e14qfqqgatynges1grnalb4eau4g.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/1/t/i/01ti2ovzcuyx4e14qfqqgatynges1grnalb4eau4g.jpg", + "data": null + }, { + "id": "250ckvp15x8eeetuynem2kj7x8z12y66kay9okf0g.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/2/5/0/c/250ckvp15x8eeetuynem2kj7x8z12y66kay9okf0g.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "Box": "1", + "Cuisine": "s\u00e9par\u00e9e", + "Pi\u00e8ces": "3", + "Etage": "RDC", + "Reference": "872GK-01", + "Chambres": "2", + "Chauffage": "individuel", + "Entr\u00e9e": "", + "Surface": "78 m\u00b2", + "Terrasse": "1", + "Etages": "5", + "Salle de S\u00e9jour": "" + } +} diff --git a/flatisfy/test_files/127963747@seloger.json b/flatisfy/test_files/127963747@seloger.json new file mode 100644 index 0000000..003e988 --- /dev/null +++ b/flatisfy/test_files/127963747@seloger.json @@ -0,0 +1,53 @@ +{ + "id": "127963747@seloger", + "url": "http://www.seloger.com/annonces/achat/appartement/rennes-35/127963747.htm?p=", + "title": "Appartement 3 pi\u00e8ces 78m\u00b2 - Rennes", + "area": 78, + "cost": 211000, + "price_per_meter": 2705.128205128205128205128205, + "currency": "\u20ac", + "utilities": "", + "date": "2018-01-17T17:54:00", + "location": " Rennes (35000)", + "station": "", + "text": "ARSENAL/REDON - CIT\u00c9 JUDICIAIRE. D'une surface de 78 m\u00b2, cet appartement de type T3 est compos\u00e9 au rez-de-chauss\u00e9e comme suit: cuisine am\u00e9nag\u00e9e, deux chambres, salon/salle \u00e0 manger, salle de bain, toilettes.. La belle et lumineuse pi\u00e8ce de vie de 33 m\u00b2 vous permettra d'envisager une disposition agr\u00e9able de votre int\u00e9rieur.. Id\u00e9alement situ\u00e9 dans un secteur recherch\u00e9. Tr\u00e8s bon \u00e9tat.. Un garage situ\u00e9 en sous-sol compl\u00e8te cet appartement.. Contacter Agence ORPI au 02.23.44.37. 47.. 211000 euros Honoraires \u00e0 la charge du vendeur.", + "phone": null, + "photos": [{ + "id": "1d9ks91ml67r2zwwcytkg3l4jh4yc8ii3y4fa64u8.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/d/9/k/1d9ks91ml67r2zwwcytkg3l4jh4yc8ii3y4fa64u8.jpg", + "data": null + }, { + "id": "0a95gv0bukbrk77mhe0h4n14j9bx2zrkfikgh7h8g.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/a/9/5/0a95gv0bukbrk77mhe0h4n14j9bx2zrkfikgh7h8g.jpg", + "data": null + }, { + "id": "1hd329lc8srsdh71o3iyo2tuv8jw9jutnctvqnv9c.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/h/d/3/1hd329lc8srsdh71o3iyo2tuv8jw9jutnctvqnv9c.jpg", + "data": null + }, { + "id": "1lf8fyr5marcjalerkc914opcc29osb23z9c9648w.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/l/f/8/1lf8fyr5marcjalerkc914opcc29osb23z9c9648w.jpg", + "data": null + }, { + "id": "1yrk6jbek3h7q3f9a3g1vy0kqc2uh7z4yckznrx8g.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/y/r/k/1yrk6jbek3h7q3f9a3g1vy0kqc2uh7z4yckznrx8g.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "Box": "1", + "Pi\u00e8ces": "3", + "Etage": "RDC", + "Reference": "114020E0PULC", + "Chambres": "2", + "Chauffage": "individuel", + "Toilette": "1", + "Salle de bain": "1", + "Ascenseur": "", + "Toilettes S\u00e9par\u00e9es": "", + "Surface": "78 m\u00b2", + "Salle \u00c0 Manger": "", + "Salle de s\u00e9jour": "33 m\u00b2" + } +} diff --git a/flatisfy/test_files/128358415@seloger.json b/flatisfy/test_files/128358415@seloger.json new file mode 100644 index 0000000..0948b4b --- /dev/null +++ b/flatisfy/test_files/128358415@seloger.json @@ -0,0 +1,68 @@ +{ + "id": "128358415@seloger", + "url": "http://www.seloger.com/annonces/achat/maison/rennes-35/128358415.htm?p=", + "title": " 60m\u00b2 - Rennes", + "area": 60, + "cost": 179888, + "price_per_meter": 2998.133333333333333333333333, + "currency": "\u20ac", + "utilities": "", + "date": "2018-01-19T08:46:00", + "location": " Rennes (35000)", + "station": "", + "text": "I@D France - Sarah LECLERC vous propose: Pour les Amoureux de la Pierre, Maison de ville enti\u00e8rement r\u00e9nov\u00e9e avec go\u00fbt et modernit\u00e9, Poutres apparentes dans les 2 chambres, Cuisine am\u00e9nag\u00e9e ouverte sur le salon-salle \u00e0 manger de 30 M 2, Salle de douche, JARDINET et TERRASSE de 95 M 2 (possibilit\u00e9 jardin japonais).. Situ\u00e9e AU COEUR DE LA VILLE, \u00e0 proximit\u00e9 des \u00c9coles, des Commerces et du march\u00e9, tout peut se faire \u00e0 pied.. Ligne de bus \u00e0 proximit\u00e9 (ligne 61).. AUX PORTES DE RENNES (5mn).. Peut se vivre comme un appartement sans les charges de copropri\u00e9t\u00e9 ! BEAUCOUP DE CHARME POUR CE BIEN RARE SUR LE MARCHE !! Honoraires d'agence \u00e0 la charge du vendeur. Information d'affichage \u00e9nerg\u00e9tique sur ce bien: DPE VI indice 0 et GES VI indice 0. La pr\u00e9sente annonce immobili\u00e8re a \u00e9t\u00e9 r\u00e9dig\u00e9e sous la responsabilit\u00e9 \u00e9ditoriale de Mme Sarah LECLERC (ID 27387), Agent Commercial mandataire en immobilier immatricul\u00e9 au Registre Sp\u00e9cial des Agents Commerciaux (RSAC) du Tribunal de Commerce de rennes sous le num\u00e9ro 521558007.", + "phone": null, + "photos": [{ + "id": "0j9kfrqnixlcnezpzsgz3g3vnekr6qj8rn7jcv22g.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/j/9/k/0j9kfrqnixlcnezpzsgz3g3vnekr6qj8rn7jcv22g.jpg", + "data": null + }, { + "id": "0yqp4d8arum1iy1pk9f1xh1req853dnhutgdjkcoo.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/y/q/p/0yqp4d8arum1iy1pk9f1xh1req853dnhutgdjkcoo.jpg", + "data": null + }, { + "id": "10a86qpr9k9wurb8itfnfgzo8eetxs6th2gmiv1o8.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/1/0/a/8/10a86qpr9k9wurb8itfnfgzo8eetxs6th2gmiv1o8.jpg", + "data": null + }, { + "id": "0eybdtrwgscy2dadq05naujq5okeotl5cyfuergvs.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/e/y/b/0eybdtrwgscy2dadq05naujq5okeotl5cyfuergvs.jpg", + "data": null + }, { + "id": "0maihs9wfff2xl3plqtq254n44gkaxlvejyrtnbqw.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/m/a/i/0maihs9wfff2xl3plqtq254n44gkaxlvejyrtnbqw.jpg", + "data": null + }, { + "id": "0cjgak7htwwtsl4to31rqqmyg5a73h6vwzserq2wo.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/c/j/g/0cjgak7htwwtsl4to31rqqmyg5a73h6vwzserq2wo.jpg", + "data": null + }, { + "id": "102tkunk4f87ksovtm7x6u1awoz65it97nabbx9a0.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/1/0/2/t/102tkunk4f87ksovtm7x6u1awoz65it97nabbx9a0.jpg", + "data": null + }, { + "id": "1kd6jjp93vv5wv5dw8964n7t823luy8jk3m4obkfs.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/1/k/d/6/1kd6jjp93vv5wv5dw8964n7t823luy8jk3m4obkfs.jpg", + "data": null + }, { + "id": "052a19zndeojbs4px73q8ns94g1uxi0exxqyltpo8.jpg", + "url": "https://v.seloger.com/s/height/800/visuels/0/5/2/a/052a19zndeojbs4px73q8ns94g1uxi0exxqyltpo8.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "Cuisine": "am\u00e9ricaine \u00e9quip\u00e9e", + "Pi\u00e8ces": "3", + "Etage": "1", + "Reference": "488187", + "Chambres": "2", + "Chauffage": "\u00e9lectrique radiateur", + "Terrain": "95 m\u00b2", + "Surface": "60 m\u00b2", + "Terrasse": "1", + "Ann\u00e9e de construction": "1870", + "Salle \u00c0 Manger": "", + "Salle de s\u00e9jour": "22 m\u00b2" + } +} diff --git a/flatisfy/test_files/14818297@explorimmo.json b/flatisfy/test_files/14818297@explorimmo.json new file mode 100644 index 0000000..1d802de --- /dev/null +++ b/flatisfy/test_files/14818297@explorimmo.json @@ -0,0 +1,72 @@ +{ + "id": "14818297@explorimmo", + "url": "http://www.explorimmo.com/annonce-14818297.html", + "title": "Vente maison 3 pi\u00e8ces 60 m2", + "area": 60, + "cost": 179888, + "price_per_meter": 2998.133333333333333333333333, + "currency": "EUR", + "utilities": "H.C.", + "date": "2018-01-13T04:37:00", + "location": " Rennes 35000", + "station": null, + "text": "I@D France - Sarah LECLERC (06 01 43 20 02) vous propose : Pour les Amoureux\nde la Pierre, Maison de ville enti\u00e8rement r\u00e9nov\u00e9e avec go\u00fbt et modernit\u00e9,\nPoutres apparentes dans les 2 chambres, Cuisine am\u00e9nag\u00e9e ouverte sur le salon-\nsalle \u00e0 manger de 30 M 2 , Salle de douche, JARDINET et TERRASSE de 95 M 2\n(possibilit\u00e9 jardin japonais)... situ\u00e9e AU COEUR DE LA VILLE, \u00e0 proximit\u00e9 des\nEcoles, des Commerces et du march\u00e9, tout peut se faire \u00e0 pied... Ligne de bus\n\u00e0 proximit\u00e9 (ligne 61) ...AUX PORTES DE RENNES (5mn)... Peut se vivre comme un\nappartement sans les charges de copropri\u00e9t\u00e9 !BEAUCOUP DE CHARME POUR CE BIEN\nRARE SUR LE MARCHE !!!Honoraires d'agence \u00e0 la charge du vendeur.Information\nd'affichage \u00e9nerg\u00e9tique sur ce bien : DPE VI indice 0 et GES VI indice 0. La\npr\u00e9sente annonce immobili\u00e8re a \u00e9t\u00e9 r\u00e9dig\u00e9e sous la responsabilit\u00e9 \u00e9ditoriale\nde Mme Sarah LECLERC (ID 27387), Agent Commercial mandataire en immobilier\nimmatricul\u00e9 au Registre Sp\u00e9cial des Agents Commerciaux (RSAC) du Tribunal de\nCommerce de rennes sous le num\u00e9ro 521558007. Retrouvez tous nos biens sur\nnotre site internet. www.iadfrance.com\n\n", + "phone": null, + "photos": [{ + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-1.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/ydkyhrlKomMs9N1Jjums21g1Yac=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-1.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-2.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/tSmULhY2QwgR-ssclatZ1p0fxIY=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-2.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-3.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/2KG56A1y_EvvCCpzb-ButCIB9Gc=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-3.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-4.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/aZC1B1yyb70R_YUw3yuMDep9Jjs=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-4.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-5.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/eTTgRXM9s61HPshBL8vaCKzCoHE=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-5.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-6.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/0PLHLenqeoN12WySQzcHfp4J81g=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-6.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-7.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/isxp6GKSDn-ZTCstKe8All5i-uk=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-7.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-8.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/M6-Tv19WAG4EnwvTzHIzylqV66I=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-8.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }, { + "id": "http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-9.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "url": "http://thbr.figarocms.net/external/vYv6ie0s_lXwighWdgrNJVHDROI=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/http%3A%2F%2Fpasserelle.static.iadfrance.com%2Fphotos%2Frealestate%2F2018-01%2Fproduct-477682-9.jpg%3Fbridge%3Dexplorimmo%26ts%3D201801200001", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "available": true, + "heatingType": "chauffage_electrique", + "agency": "I@D FRANCE, Immeuble carr\u00e9 Haussmann IIIall\u00e9e de la ferme de Varatre, 77127, Lieusaint", + "bathrooms": 0, + "exposure": "Non pr\u00e9cis\u00e9", + "floor": "", + "energy": "", + "bedrooms": 2, + "greenhouseGasEmission": null, + "isFurnished": false, + "rooms": 3, + "fees": 0.0, + "creationDate": 1515718604000, + "agencyFees": 0.0, + "availabilityDate": null, + "guarantee": 0.0 + } +} diff --git a/flatisfy/test_files/vertical-cropped.jpg b/flatisfy/test_files/vertical-cropped.jpg new file mode 100644 index 0000000000000000000000000000000000000000..480d2a45f8c4c842869a01bbdc00c79fd968901f GIT binary patch literal 35119 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 MCJrHnd{^B6*|m?)Q2+n{ literal 0 HcmV?d00001 diff --git a/flatisfy/test_files/vertical.jpg b/flatisfy/test_files/vertical.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56d1c6b33cefb3f00019938a9d1b81cfca3c9f4c GIT binary patch literal 107156 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

mlR6R99&+1 z5@#DQKDVzQ=T{yce}vWe8ri`J=_ib>)>GW`=dsiC;iMSe!U6A2huNxAL-$HKPMuc_Cen3PjfSIAey}c zHTs7^+Y0>SHJXvfL2*fZe$Xs8cJ?K~&N)wtVWxR{ybeb-lKsLWoj$6ILps*z2kAu( z;O}pH#W`yPDT;)YTKvhI_4KL!ilC0sVH2cx^5DT;epzh_D+)k*iqs1$SY23rChbb+ zHKGi41wx|*8oTsF5`72%VO&eX`P9|(M=5ZI4CzaX9rHq$l3Q1Kvsh~0-mX^>8I8a1 z@&ex_h>eh1(>LW9M4`rJOQ@gYR_K^E<>;Td@0Mp|L?!k6n#r<_N4Z7q7D1HtV@BXr z549EOHv!GXAX3XUpIm#LXNX(g4y#lsVZ1BcRZ%v zqq0mUL)sAIVS~~&y91ljMX#M}yS`Yrn~=fRA0_dUSEh&M&*me;K6YX?A-u*{C-#3| zicGi`H8n+6+vdnUs1>|4`5J`43N5_aB$?|&$ucK+F-mE!HnT$6#@ot@MjV= zpWqBd+OjL-%srU}NaDW?lTRq%ESN{63WGFDMq3w~4Omh)~GXq z-|r`%KK>gfBlQ&i4`WebpO^q2w8q)+`WST4G#U~iI{mSCT>@iT$6T$}3T$nDFm$%xCY7Y-< z&Lij6_-1s5wbu13mEb`knyHN)$Z`DE)Vkf$I(L4|r!Cy{M+I=B>a!e*xA)_Pa3)_P z3ogdOgEq=a0ZLw-AG`lBkRVy<2#+Yn%o5^g<*hg;xx61$VY``!0i5DJR94Ds<&89% zv()T+UUT&sqIGtA9d`J)Cz#pbPU%51<_j4h?4YWua7JgGT|H0j(Rhly@ZB$O8Nm0r zn95Qqll)$+pA6jfEfJHvaYRlUmfjpHs=uvGxDG<27=NnVs{tuA|D*+cqHkWcYvM!D z=bz1>#){qK=Ku#_~0KG9w6EZ0#I1#byH@q3KFX z{vmvP9K8Axti|vpwui~v=Jx0~boW>_G|77BoRF{T{3GmZ-a_k}Z%kb9F!@;@>RNgw z;>Qogz-F9AD~zVID*x2^SD*JTb4DJbsD295`xzR;ZA#}~kcCRZr2ZB&sPCA*8F}Iw z;QNKZc@|q}Uwdxr70D^=&{^~6dleIc%7)A-0VaZy(-)jYA|mg12Pn*5`wW`Q3V}*v z&m}o+-_2Ukk#oVS9nWq(p#^ymUDJwdkvaMMKPzOrIZ22FG$=C_aox+4MKfjV!93`ds8PK%p-wG^>vY zqcjPXx^#DX3^;AfWc4O8%tE%)qS+M4URp^kEA`pwhKLuRBY$mVRWXw^OzhaM-Hb?e z*gb)FKO##1Vc6*RNIs1>ozpSt9FrDURua#wQ<}`?19OLC?jAJYi<{ggj-|q#gGQ4x zBI&52ka`;h-wTD>$TFt=qK3!s#fR}BtaGn9M$`lXc;&2YR;$hV%s4Q&n^vV+zf|b| zE$Hp(O4PO3@lI;32Zem%I(R~p7ma2I=@q%-9Yyb6Gp!`9=jaEglU}(0!)U4evP7Re zSoL}DXhI>@8H*Tae5=<1cq>k$dz=|NQaIY1AG`3*wa+HdU*5 z-jAkOO>ZL2b6f?)yyFKFr*Dy)+&Yar2*RbqR;?R`0ta}v%2|{AB4_c^j!!ztp}dx- z_pQdKNuj;kCtHJiQ)k%PR4p^ve68+RSF?Yj%=+-qBP_`}lj^I=2f`6$ARj@h_l@Iu zMc2qrsi@hX;AEWFHUrD#%L!-7qy_~Gn>Qc?{=g&1b3k0{f?fle|15Wj;6}iDY|TBdwOM0l$g$$f0fLAlV5M{1L6CkuGD0LwtD3ki=fj4 zw`>~F$PQRtW78~vIHcZXAfpT?eJ-I2x-RqytR%vzv!IR_u|Hb$@J|0u{Dgy6P9=3y zx5RxY9g+h*x#qU~hrtxNnXxB=c>{Z0)F&S!A(O&KrHm%csiX{n1_PD1D(dsBR|^%f;gA+n-D( zpw3YDDl2OkZi~BvS59&bwTkeAIu~TMK*pa${G^apr`r;ZP(Im3&>(Q9{?55`0D#ewlFA7T`kmCsCQ+jP~l1mK#?nTY69OHyAe=pQn6QO zoMY0dJKXUtaq`4UK5-jt9813X2oXd6+0gjl)k@hx>%7*8e%2l)xiX~=@Gtl8KU~wY zV|T_ZO~GQQ@kv9?Cn4-~Mc!XNmKUr%=Mpz|ejse%{tEzu!K>_b%2Iyl>SwViECR|_ z>ZFP0$56P5(9@Bay443Zf#>i7#92KYMhd1r*|@ymyisQKVVUuA@0g&+lyE_;VzjeG z4<%@pGfAdQ9#)2EEGUn$r;l?cbo7@z)0^QKZ1N2%7qclMsBV+jucH?|G|-UV{NVRS zV56v0ovge|i7S~{cHG2&8v6U8)tWItXxt-Kvs$XkV6XZMC{-l7GAIq-yr9>paD?lMbPobu*1&rRPyj1G!-_R5Lier=CWTc_}~ z^zDKWg8Drya_=dfvv*iT3!A_9!vVsbWk-jfj|#!Gu9+Wob7JeGXO^u#txIg2hl{s8 zx4jCOc<%qIXrYRZyf8JH*T0UIhpb=`gC-&D#Sl?7E!`ixPbn!+XICY-%~US7$@d1M zTw14IkB!{$HV}8#ISzNPxF4vEqPE*+Xw&Dst@r=qf^QKFLzK5 zz&ml{Jyn_%OLo{MlWokEm3*J?dy4(X_mfM)TWS*Ff63L{VhsMG3 zNYPbE>WUtTIMl1kN=DHqJIS0g5q(mTKQiDun4ib^JaPhjgx2z&a6==1;Vp!J)9F5g zpOiJ3_|C4w;n}p4c3E+E85-VAHGC!iFzz%jYV`V&mZYNV=OR3pMkcXQHoy_NgpbcV zkzW{??X_PxB0>U{sx9*)KA6teXFsw0gka))$C_XhNoMn;#9tz#?yC>O%Q1-5+ulB! z!Ialow^eO}`qeyS1BJ9Dz>uZQ8n5ZOqbFLP+}tY-3T-bC|1eJM63UAkU-I!3O|s-w z?vbD|i=Qrcw2tn=%=b+$C&NF9eYVc0iMnR_b&vlre&*;@9CP87n^f0^!8vw`&O;oY zkJ`7S({8;=EfDS9w_%KA)=(siZ^-#u(Qdm%!{T1|)qCe$_V824zD97KS-P748(WuT zyHS{6N@@jlo!A!i|q3*kwHrH zsY`Ed7-s$JN7-)F~A1PX1@f7RID2!qdqKT)PAEk*>O2!206e|^@zXL!YC|CZ~U=e2qCEvdeQv{wX z?L215m~w8(_=dd-oV|^O+&X;^!8OXX%eI%RnGl?Aj>_ZL;Rgp52UX9TH(eXlQPl#e zFQ>LIZKi|dfJR_PBRwWcz5TV4BFx{RMsbA}nLy7UU}si2W%s%19syJ$`IydYqT_zV z6RlF%+`Rh7uNudf2aJIFmifa@Qk*5Db;BZkU*km%h$cxM8#WMkJU3J9-AhS`O@wj`r14}VG8QOe3( zA0L}i?`>NVaNfQ5kHSVsjSq=lx~X0bLdSc$SFTsC8H@RiF6D%aYa3Jwbf9UA8Ma20N~yN^v-m7mi{(ue z=`}faS{*yK_GFcNiJ7n4TfW5=*&eym9En0&Wl9xfqByq|;A?PO;^3IbyOl3AF8UfY`1!E30B~5z7TXW- zwL|~n$mhb|pN4pNB#7ed^iH&qJh+3QB*mb3?R2%Nak`eXL7sH*cPclnZi1+*f2k&T0vd?{ZA*XcBz zLMff`eNk30y)%*Qb^Ln`6@sscqAeU!zIw&$>qt6Q)1$=adhp;jk_Qu_xAHc^m65J+3lEaKq0%>`HKvq1V*7ZW&qmWe|t&IkA$?-6|O-2mZc! z6~xNEh%JZ+Xq9yxA@1vWG^g%HmBFT#!P%-Fq}&}h?HdK`RHKS~N@zq0%}Qs{J8Ss~ zPb>pfT*w>Tvas1I6*K%077;kpshQ)NeJIf{Jf*ps85WVO3Kx(RYfw-C+bmK8S- z5HfF}yPpQ0qQiByaBBE9c8;@$nFXd{KHsc zgFI?w-?1;)v}5l11`OaD%`23o83i%+uY9F<|G>BN=v7RDAl&J? zM?@Ho>@JiJOHx^n>)OTzLJN!C#qs~Fw+SHqu1&H`R;HG&7^78gtmArBWoi0zo`;+B z8XXY>A_t}k<7y2B8gh`ATt!hTWhw;D^!J8cfNX8|g}>I5GcgS70z*4}DabEXg{|6n zBYpv3$NvHbWfY#c{S5FG5bA7)lXl73&9$#K2;tWX2Da+g9M|PPmq!8)YtIh6^Hby_ z%dN@;KYN&hEdf9<3;>+L6P7>~Lj!|Tf@TmTnJw_;7WZ~jL1 zESEcqvt=Cjv+u%t2m5=CZ`-MX^0U@u`qiHY;vwZb$iW%F0Nko-M0E>z$;BoF-PcLQl;< z=Y_$X%I(FMQdDV`P9CXzBs{=lh42{~_LN-ULY;G>p5Sn~;R7F-W~7;s+>};v9^8VH zWopy$=^ODv(gMY`?@CmaFcSFFDx#Cq5Hcxy$qaf?akcs1$(179`|b5Gb19O;zH&lF z*5^eBC^qI*Xck@f{$WfEC&K5M$3ItU4mZ?;qkkgH)C#On+b3wnPxhZ~Kv5NrbGm7x zh>%of^0@S!&JflG86_2U*2*3g=MaaqeorxY=ac|4@M88RH@;k_23cyXcND5o)mkQk zS~v8X?#PH6vRz{0P$1DWVt3tc6n`g*Qvfv5*ZU6gO?7(e~f`6?ewl@?cR*~Ami z6_3fV^^pxlVD$&Lqr4az^_1AaM;`Q9gYbz89dOaSqny+$xJ;m=#Y3|xSMxc@4;nL+ z+5qA31zVUt!4d^Boi19D zrV~b>QUk7ybvPg7lFwCb_sM1$NdI&ygyl{*7V_4p*IC+h z)t2(ut!Wx{lN%eLKo>Ual^|UVjV^JLtJ1Ad1ak2lV7#o+XPxsUN;h=m@Ric`Xqroi z0(Y7wzbv|9h-%;RTo;PGi0%k2j;kd18a)-G`PRZcE9=NOUuG{qA;?83Mk=#V?7voG zpD>rI$JjNL`~?F*SEki|lU;f3Geqw6lsp#?;7GwBGb@nn>~X=^fNt?!hQXWoaCN`f zVahh_)VH~)ghstP_RpLf`<^3}pxJ&%%k(t^c%>ATA=@p?y26Vm`~kNkI=MxlUdzjC zT^DBhkviOz>)o@b4;<8e1V5@{0^8`3Oz_%hmqhT`)y7qNQ0FX{uY?G~br5&89Mc3H zVHF*5TjLFGOusbfI|(^yhaC3T82-aZrBGT{8xno1Q(_uGBu_|Eh@_MuIAYlzA)%y) zr$<*b#SaX84jM6~`=JQbiP0$;ls5D$TW3b-aOoxba_*lRkoc;(Nw@2`am7w9K}|Ad zV9Ddw&)crFj;pN}(P^U3@Ko+X8f?^XKKs?5tRQPhXpOcYxEnJ=?;R5t6S^udI@m?Y z`KcErW)1hyy2KsvLr1Q7P$U4@au{DQOSDofZg@sZOVY&t`8$+y9J=|G$3wGB!YYiL zO!~&9s6H3qQPSnij|Xu1FW`wJ5}gW}M8cTq70jLzJNN1Qa?S^2r>oW2t*94w^DU74 zXtdx)wUbmg(ZPmwZ%Z~wa5g0Js!k$r5UhGtND3h;O3SnY?^b#tSH1~Kv0f^9Xk;P) z?`_B{bh5h>RI!Pl3yj&pVYYJS-Oy)7+Pvu{THq+dBheI`Lt$T0fO|(iqeE}w=M_3^qtBXL3X?k+Y8_+=d&Hko#cB z?C)P7-SyPvCW+}|NnHRvlCz6VD}nVTVn~KIP~*0O{xphgyIS{2rE53XnS#}JfBLw1 z89%per$vTy{gxbs-`z4zCneZuy~)A%9%Abjc~_${sva!&1OC>=#`0sF!%E@ihivU= z^f1QbnLJcknY+wh5gf?1S|^6mo&xiqK#ug?%18PM0byJf6KQUe2apt`URA66Y``nD z-b5X6>&iI;T*;c`;QFxU+f;196cYiPJ|5J3)>OOs`a()$L*EWcL?GndM9F(`yXD|= z1oh}SMyEezM!8dQe$hdm#~qs~muiw)Syvys2qv#}_FO9@&FV-_i6Vw@{L6npdiz6{ z7wC@$ZyFhlwt+kdUy64Q_lAg+rR`F?_tt&JXi048&mSj5Kiw2sW6o?MkJ+>$z&*u| z8A_eh_<*}`3i5v#G<80XiQ30gztjmRjAl`Z?mbIKxg+ncqut-a>&BL~*1k~!rbJ>K zpT$+^dlZ1rnB^@-A%85!pfS#q7120hnJ(NkaS{LTuWMn_{ zD!~gyw0~U@=Q8TOO(|A>hfbUU;Imh!Sy(YuX*r@|=|p)l^G~bJRo=nd96~q}ya3=C zx(?@BtF%VLWWCdVpyXAU(*wub%8jz@Nvy9eUITu~QIv_KfsqVV`7=kagFBp;d(KL- zf@Mv8rizwW06--Tc4|v#n5hWQCP9_AE9}suk_&G#7N`MR!T<1l=0&sEmUUu;m!}-=W##cp?lb7DuwBgIH3&Ly$NJ zXQeon8C6H69O^~joIWTANor~I zMrSVrG^VdxbVhnB_{7Lnd^AE$@;`3_e)Mj1PtooMPyc&7!TKNieo9L6jEo8MKkzM2 zF36$-0D~;CC|HGb-~A7LKm8AV-+F8>7WAk;p7nU#)BM9|Uj!IjLAPKXi>cu%AwT*& z{@`CO+o8uS`VWUcJ-5rcbQv~H4VRhVX`0x+YYeE~vB*RppWFRiIzL8z#f3J@9hpFueo;9QJbqm^m7#CO+BVUfx6T|J4XPsJL*%~WuqCz&JLg&rs zXJNu$m2H(R8zh~}AG;r}YwmRMJk6e^<_6dxk=Rd<%VcM)9Tibo1GZn<6tw&4#Ph$m z;t%zv4$pKg^M}uT`Phs4bHG50@0c*UcI81!^6(GCHJ(xYOyOm`n7z#CuU%1PgZ_}N zod6@H!~~-z);n?*qX3H;KB|xW3X{(-*b0k7+KlLA144NEs0N;P{^Llp8o>)(@kv;)IngQDpO`vo`q z1y|9g>ZyPp6EUG+vE0Ow9j}fxcQLQ}__lE_+UJa=vs))P#SVhvBoITcx z2Oma)rbp{x>o}T;OAw{g(ObzFW6In*!7Ja5rXKzSSW_m0MXHIYkQ%17`uB(A4N}|0 z=bPLEk9Jmk-0>Gqf5_LAtePRs?A<5=`{YI(bE=br1uDw3zcDjWJg=R9v-31-w+s#O zETenICLo->$Afsh7(WYp{M`CRS1oQxjrD%dg8bM_}!qf<5xbNSdX z_1ts&oGf~vXJ)_0-*Dt_*Q-YB4#DUp7n(5#&65w4o)6n`gD546Y2#d0hr9bswC-zT zS6+AE+$hjB?2Yo6g7fagP%4iL-0-N7c7QiI3Ppi11)i9(ylRpRP2}b8;RERGa#F=_ zZRS=)FDp?DC=Ak!)CcUy|7Q9nrCEj#v`GzUnixKV#SLAR$Xb7o5M^oV5EV|g=CRA2 z>7K&*nTn$eYc_-_knF@N78d8=-^Bq8qB7#Fx$*JytsCODm)GKI#n z0cyZ`q^^SAojO!8OJ~{N0vmk~xm(+~Cb<5!wNu%R?WE130Uli)S-gA`_AxT1m}awz z=uj8t(RrhAZOSMi$d$?7O=^vhbXe&Sve5n&*=ikoO%@g(;@Zb0>IzclwP;cuf|lH#9YxGnm`E^WcwgLd1J>EWqVr+8i=CEbS!*W2CA@Z)y)sQPR;LUGYX z84xvWZ619BP$8Im_{ignd}KTCF=pV@fEgyV$6s{ zttJ5x$!zWZF#I!?f*`l&l|S+p^88^$!-w;8U=?i%HA7hZWK$$_v%c7%LQCJ%K|^n} zE|+a|Mmq4@GJ3F}Z-S{z3tDo1oB)mWL|zUt&}tdY%OA*>$1Dl0)D>8mJOZ&+35IWq zVIjhW7uy@8Mt!7{<*Cx%#)&asu+R~&$6PFcKay$ph(^a4%*MOq2au5XBWwjGLn#4- z-z1TfY=}`M$}Snz6I$~Wz!dM3uOvhTrBvPa!d%d?)CkYcyEOGrD1Oi#-$}-=*>E7N=l@7lW-QdR`MmNuyQJ~tl0THDg1=Xp{qBx(F zmYWo_A9I<)i(WDVH5S;4KSmzM(|ffOvF`H?>2TXN?`2rLpEtK2i=-*%LGOz%l&rEBa;ZHRGYT z$AN{oiVs?1#v=1WQJP4@J3zUx&wrTNIdK(`IPmgVRARNw-PS@ltatomvv~Z%oNy4ozsgUY{?WA1! zg(HUKMlVH8S-$#WZij9Af|9F|`n1@xlMl1;jGEXo$q&S3Icya#4I*fQqf3!&lsyJJ zM?r7JI+L=jCgOpLtd2;k_n8ufDe1H1Z{`;%t8M*glfd)>%8g|o-2sVfbgVZr1q7ii z_clkiy=2Iod#Q(HJU7PFv`=<-VziyU_x#}0xVTbPlqW0^xO^pNj{PQtT9HkqQ7%Cj zMWA}FkSJ=>LfY0gy`_2>%wj~l_b zvtg4`-yFsy>4zjebs&hbL@oT!=ebiBzL~N(GVTv3#goW1WX?u+ zJ>zd;ea~#W(5EWNxl#u?x;*Sr43-?FJ?g$hcV7hSj}#-A#$an+bt}K&Uk~@zA0|< ziWHQzRaI<=Y8o@$Od9<+Y0b2MKoKh!bqp>OG~P<*oCS{s4HbG%ZD)6XU@I{=E901QX#_j_E}b&L_z`Tlrrt>@77s|= zwF|Kuh$17cqxbkDsS*^hV3Inke)t6|D|h?iR<6$2qmzhuSVUn@iAvEf&?d0BZls|3 zZ~6rJH@!Lz6}~xhS=BhDOrtPS3p`+PjKe0qtnI6bbC#OS&)bW%Jd64CvNg?)2OIH5 z^Ck}V>2=~wQ|9NAPT?%)HHi|&!zNI)%GP-ss8bjG0U^shfPyMn>MO*6AoV0ES2a+p)|6~ZA4Ray*jL?&dg&`+h@7L zdybASqohO@ip3$MH8(>?I~!AL94{mN7^bNHsz(2H2d>3O^u)vx5l2H z%@_9^(`4m*hmJ18bk2WhfsU}sh5TkU5juXuRQ>ZgzWwN99+$csN5sw`q-FRdV|#)> z>aIxByJ?D7O}ZG?6Vw@i9+WP=kqr$ajdi|#&6Tw@T7`smYadRh|C`qMhfRyL2P>*u zplnNyu#WGkN;Gk!(TN5tNd+Q5TtS1@)U}64g}A&;fNlpvWN33pP0wZlW)HYv6Lidq zo;%#qe*Bkvl+mgU+LxEn&5`)oW%9%(Q^Xwo@_utsdz)A^RP7Ft3$CL)vLQ5=&|pCm9V^E+`vwC^eR%S+TIS zQ_krl{hc-V2nu^COBh(dlMD+R-dZd;%74k}&OqAS>6cV-C2Vm)$}_%F3}fg}*|5N^ z-&I-sTIbh)%OLzfeumzw4(o3=&YVlsDmTrh<30ei)5# zFLD3;#Nm-umnj2Pi1Q=tM&)`3nAIBJH5rOZ{s{l6u!so5)R`$a_+ZhKltyb6lF4yG z65j7UA6p?a|2cS&!KlWmZ$oLTPkUHVI=P^y?Q8T!Hbtv}@SChtL%m*UKb+u~%OU(j9sKyQ=&?I%vL9;jJgcDOx3HbZaM>@i z>jz3?+*Cl#Nvlj!ycT--$DFVDt+1>IWhUFeU;LdJQ|^H&CyB8mRJ(>9t=hpH|F)Ct z-ZpaRk@xaTeBCj7q?q<6C9j2tH^Jvl)?q#R7E*Wj_ue@_d{-EgyQeO^rYnwBmU;tx z8)cvF*!`tAvxq?F3ZLk3>jqd)2Fqgq@-Fr8<4x@kpVtFo;knEkGW7h0h52VH=WHMq zSM;DRapvarH0-e$Yt#Zu#&9$lMRni>U~0%LL% z=tk%;y6KH#WWzawMcDJRb&#j!9$DJg5OcL`novMUFFa(`{NX2koUi_e(F$(VzN%?p zEj+S7ZENQYOb9j7FJ)3L<;O=Z{=@JHpSMo5_Msi>6y?tS=%Bs-?M}`0&E(Kg{>fZ2 znx{!L{K&vK6CNFPWr0FHP@25v{98Gmuo%IzN<{h`bZA+lQ)Cpg{eprC^!T+3kMRaB zQZnx3^Z1fwlIWXOB>d-eL7#o^`q<07;mrDw|e^uOq6YY8@(Oj#qw?a%Y^}s z6@>j?&y;UEn4zC;S{3UB)iJlozNHmHYzg&hKR;L@S_+}c}-9Y^t5>MukgK)?;>eJpoZ|ocZ z6UA|hK(Jb9XZe5?*A~dqGdiN}FMfWq6Jha~o|Zj7{U1Lby?#ph0^0?@S?s;p%wt-N zaQA&i?t{SH2htBcAGhhJ6hdS%m7ny|`?m*Swm{Ewc07+vXjLg5rIjiNPwzy0t661jYl5AjC9o6)Od zo3odsmh`Mm`5;~yZXOL8H9NU?Azs0wH6|Z(pIx9Ud9*_%W1O9d*}Asx_5u&{qLnys zBPwitqwm~jA5$rdtX{iI-Sc!B^+TZG+&G_+T!KQ1=MMt+Vb*luzhX~IKn!)O&&h)- zJ(E7=c3}qd9^eP@P30(*4@K{t?rh_4q< z!jXgcJwd}S?szt#uk7KFQrl{+cqrWVw$cX0nEg;ldzcvw|&`1$P%$300#JHZfsZdwuNbd~I2SbW^XZAxk%_OtS*i}c^-zBJ$atm&uhZ=w{)L)^T=E<<6c|Na3FCU(QJKW#=8|D#8~EFj{% z{TRN_D3UQH;~dHH1|E+}atyP!(c*56W5b(7UWz!izwVDJPh7Q{eWn+LR$q~Pnx&zqe<#j#@&bU#ahwfWiyTxa^@sG%t37rRMieMLFJ(o zR$_;}hUQqs_w_EvmA@aLEQFj_> zI&km}dSNI=rEI6ZIAHJZoVMayg^z2a@Kf{_;zeSebUKMRT0GA+(9T$CM|ZBOVm9Bt zUwd52Egb7@CwJv(o4we6%U#{881ZWxmy`Y@gClKRc(H@*egx}e&Xan~uZaE#FY&wY zt|Eg$Vf6H$T`@<^{|}@L2e`wJ;O%^(`cjUO93U4=3<3E4% zAB%s68K9Q+ChbFt+0e;ZZ6n%l7hi@LlXxeD_-qZzbyaclS&Y;(*7(06Piq4xcc32F zRVm*prsOUziR`R+n?5PHM~i=?E_sj(D_mEB-&LcRw7Z$i@mdn6bjGS_yvh8yYjr3F z>UAoY^}X%isOqf{rJ5FI>^O2y=X-e@-Z->`^Epke{Vp8ZiEEurM3Y^FmV4Y$QJTPL z)D#oT(hr+rx+$B2qL4;upO@|83T~RGpnMNu{8V^bn*6;l9T4U(GvXHsDFO|{oIm-x z5#qp|JtwJJ;`v0=!EPEToE*m>6f&Ag+^Y8dSBx(j@r9MZ`Rzkz7gZk6z5a4kXa2~R zLtp?YyG_^m-$c%zmW5}5tE%I`Aq}Ids;8Q+)EL8hfog7%TOxVgM9!)i>afaa9x5l* zNt(F_F{8yTRUFx=#4KnN)bn1{PqG1x4QNLdda5UMO`N4vb2I9MIF6vvYdwmPr4DXC z2wn9!1Flu3C0%M0?q_57o)5gSwCR8_9XLh0{iQTO0x zQYpA|vze&>0F>UU8{!GK9Z-DV4in}Y;h0Tfh+arL(VvHbRUy*%LhhmI?<~j3Jyzp& zP;X+>CF+3lRBzpQe(2P+p(1KzyWQ);-=d`#h_4Y|BBbMYcSTdQP?7*trZ;kxb(F3I zY7jhb?pRMX{4wUghyBadhje&Tiv}PZW$7WpIvrCX4`XI!3Gldexy<*1v{|B>I+9Tv z?mAbV(q*(XOfYQ66AZ)RI$vcY8L-E@1+qYlU0i3eJ|kj_MVgDn_CNqhIx67{i7E#- zDR1=T9SV{?6S2;I%A7I-x?LmL zlA7w96~Dw-fRKvZSN{M?-g?{=SWe1A$f~8x!s$(mS)+^!Uo%AVbXqJ>%%r?ZZcL|v zR2%!KPL~r!-aZ?C>Tse%e=QMYW|p{W524B?R%0%U)_>}<#UDjN!i>cgaStVx!9xYu zp6t%9{i|zDa6`rPs@22EdeP>o6`$OwN7raD36E={Ya6%$wl9~vb6>rMK#mOE49n`d zT`h>*%>K&@_a{j~JwnO}Sl>axXFf_$gqCA88F69Wh(K&M(->oOw4UWl=E(@m@SZ%8 z4xt*2stKxtZIje#U4dCa5v4P#K4G)rzCqZL&Z1o5&^1Kb_H5=+64peTrQG}3w$Sj zyFZABqr81~GX2(Stb$i+w=K&>y=t{;th}zQSZ(B{;^!=l0{K0m!|R-2wl*`R$PHi#GR6MC%kOMgnx+*5wP|k z#WSwa;k^e5Yk3?(bf^}0<97h1XJBgY98aJP;jmhFtPKRZbO8hSf5Wi*QL_D)?{@m| zhYe!=pKT9t_F^($bpj9V7*2%eOiy#ExTlVH>aq%PD81R7cdbgHTvb{M@JVMwvS=ZD zy$a&02hmbj(pPW0G>XpFuHca2z^>xZ_krxcGH+{RhW3vfrrDw)x&?`c-E7_UE4BXs z>Q;jOB+vCsWu`mg;OG?(*>+HlZ)oscgbD-VDY0UJSlOLD2Oyi*YKwj0G>PFl`hMOs z%nKt-u?=2%FWhYHYxl%8ar4*>j=)P!CLeUC!;Cr}D^-!Q99*XC#b#Ai0cf;Z-B7$L zQ;{mP^IF|j{g;JKN9wEkDGB{9sQWC~RVCzB^^Pe4qmqz&Yel_kfML#l$*?T*bZEs{ z;l+s8x+FYCTdJ7t?|EI6IX)@-DaLtl-?Pr{gJ^=LE(jLVNymey>Hh#{c2XVHdhgjT ziuSY(SyxcpzstaVnC!Z(t=-n;X_id8*Y^6MSHM2z{$ki39o7@LfMU;P2mMHN{&oxjA@U81J zBZYT&5lOeJMtDsdZvYHW2Dp;o&Zt;;Ef#&8W@6-k9cw-uR)2Saqu{3|Jv zp}LoNLa4h{Lboo$2Zg>OH=z~sfeqRh3ZEqs%@M)I9`U_2N^E6Zjx&*>ffDUXF%FCu zQu+C+>QHY5AdL7T!|j@NQajZ6E|=HOW&M2~7)>sBC5qT&J=T>dUEJ28G>~10`zRjS z?d2sWI~Cj3t58>kXtB-n`IoHvsuq>u1xe7{IjT5?mCADps-bEY>$JLruNT>FDy>x# zRVtTu5Ds(VJQr&mP82QP@kTwQfrMpmym%u}=g?DRzNMa5QV ztV7!UQ(_H51aAsTt8$48_B0G|;krbVE3+9XL;9`CZdxrB6t-}~X>++CZIhR})rJ%> zz?v-XF!+_3#obXju@BKztAgEjt5rp!s4Bmro2507(NgMwv_r-8Ssb{p3XyGoX)2cm zNfl7MGP@LK;crQ)2E%^|650J!;zKac0%o-PEhMDV-#@}QDK`;p=Jzi1JY7RpJ7_Iq zd<+^jLunnz zp;v1vnK$=rd6u#WMUL|$>0WV}j-?H2H;@3J_sxk>DE ze3dAu;<&1d=)GAz6=A)-Rv`=*bXnoaXjL3Sqk_;CC$egNiyD4a<6Du57y3l?C_;iU z#foZoG$z@sfIcW0-^~YFaXM;7N0XYRVZzDIa^9Tik1wq{U5tA*U%kOBKMht#EHNDR zAB}_r*0MY@=V_T4$xX6wmM&tj^o zinq!G3zjQmr|`7~zyYIxS^}yU1ws`OGA;vxo(B(^vRRvT3aJV}w3WOs71|&jDezns z4cqS0>KP+Au6+3JT5WH-vQ+^-EK`N83Yd({p|Jqq4Z1j-XM4P^b_11yOT<%Qh>px< zs-}YAH@)p|-u()y!s?D{aB?4pix7(!`=+G%Kd406#1HBPVYP@6;S=oTEmJQo>J-}% zlIp+RJ|G#TMTnV_wO+OD=v5YaDGgOAv4X`3(N7)02maECUhi?f5SiFJ0~_o%img>@ zs9o8*vmF<$b{~mla4R!Hl$Aotev6M)jt^$nbVS;sG`E9jt909{F2hr)Ra?UGD#>OF zv{_B`S%6h)-l$bBt5ztd4^@afVU*^(I48Jb;5WM_1-kUFl;C~R1BoS#*N%n%>N zv{<0`tmUerlNSw;T+tD&t`}&7BG}=EkMgL7GZqQ>n!k6n!guv5SD{(ibqdO=*{sbg zMMtc%S%RS0q1dXalGRe`g`%R-aJsi@sd4O@(s{1^i}3b3GP8}>wM`k!=M`&>bm%G|#(z6j#~0QS4Kh%z%yWmfB5p_rN) z$~jM2Fs@3wM6Fh{S!S#EO>9>h8PPT?U@$$N((a-<%VhRLDCha2=Dp^6;&j(x9Mo^v z%T-&Mb#zpiRB&2PqRa@nu;8@0?=ol`(1~Y)_Ht}tHT%_`(popV9w4P_vas>OaIW#O zVR=n=c9>lpWTwd;g;iC9$xb6GM+E-HHXhS(q6~sEx0=ikm{kjSUL`^hz{a_|^DYH( zRTooYin3Z?Jz~GW)L#|TbB#$;YoVX&P$7}tMIEG0ru#c#3Cd+o(BOUst-uWesa><* zIBhb*6|JopM4A8}Fj1W?AuS}SCn||uQmAfgM^#&@4etYjU>ZpX4{M1#_a;10PU=*w z$6)+5xNZ_uzN<4DtPh!_VMR(R)qei~VY9?O_6q$`Hdop#r<0~W>VLEC@FH@E($zaW z68Ud~94`LNZIJii;!?KRTlZ@3Sr!+R*L7-#KZxO3T-Odp?7_Zadn3(J%ex@1^|(CN zW~zxQ8>%*_<;6NJph!3FofG+BQ){Wwe(_+k z+JN5aslLhhU?AXNW`Wb3)JEE#83oO$JCt9-S|CNn_R*06-mNb9EPLZ=%mM*bUap7C>btj=$<6{qj$C26z4iasU+jynrs zIQvje6kYog+ddHEkM|1=x)ggqy6|$JHA_Kv&s8f-7;ouC-!?Q8^;m4S<~00NM7q)2 zH{mKyX;qZg;;BVKZqCxT1wysFz3yvT(K1TPdx(Ak$C?j_4js!YN{?xGvM@K#U5Jq! z$(;e34lgY`ns=u|g9)`{<_7|cdpAwG$v3qc(ZNK9eUna#*j>u)`!452B~>t_RazGW zdo|uQN)&g?fvWGKIm3dgqOH{zxNszX zf7Zm|M0+|F>&wT-Ro}p4xwOd+)JBAQO?OtPXXY|fY>z^#bmBKo1xjj;R9S-jHJJBp z@saHnh8;Ps%LtzGu|qWq2qI2+?H$zK=f6gYmHVte!9YL6h$i#UA{x^Y(HF%QDVvIP z7_}2Ea8|y~AL1Z3CKJ8%36bo0WWy&(PSFjnducRVWo{O@%++Qk3?`h^&D>U~4cBGY zVydB0XtY_}sI*krh@v-Y$T-Gl>**fItq+F~N$oq5me% zJ|jUfEl)K;+#>FnMH~#?0XY1)=*<$#OVLRP&jc2swiwVV~6jSG;1gXUU93r>f zdc$miC}&4YMCLWxXhO)~<(Y@cR+sNx#CVPVq~^tn!%7!1J@K4e_nDHhS}|edyNfLO zxyn%C!)Q_e0BBmY^>Dx3>=5S96(qY5;`}e z5Pnryh7tJMh=CFmP<_`d5!ypt;XH5OJ_&)bBjc8UO=7e}FkpMp8UbCEh+%KE^8|!wd*be=w zfU?X>n#mLDxQ?o!%D3vKRW7P{;d4md6?QBR{{YV4PYd>qn<;)slH#z&hEF!Ehi950 z+mzj)SYkzU;o{24-`hSEIKi~S<@>Za5I#mHhQ*wy392lL?$ARyfD05nuO23yLbSy- z?P8Sna5PM4oQLavs6JJKa+KoQHrw@E+XWHqNa+n$cx<@f(!zcI5WQ9h;hEgrHlvskWf(#A|q| zon=&FzrxxzI$Ul)GI8E$7C7$k=r@$;k%n_pWSsahJ1ayXyLxOV&9BzG(;hd`V!DB7 zizJ%pUMVgUU*a&SN3^)Nf(>aj*lR)NhTdf`sLVm`H*O@j}`5dabEc4NOq zly*(xbyFh~xRnqnt|GgN5;%b4xk}M7%}b5iEf(c221{G2B(>NlaH7==MIGB(-&LZ` zeBPy?TFU6d;!ke}T}_t76EMvl-bs-m5L)3e>0)+bacue9{^*Gr&P0`o)eZ2iZp9SH zG)$AZWtf2ukjMM1Til-z=qS}RZq5cSH@aKGYd!dZ2yOF4td&+0X0q?th&igMs_YpG zofSd8m(F{7si_8|CVIiygJNnH-AG#N?*o!T(*7fGu{ z_&XV#Hu~2OXz)#HlXX&^cm@7je)sd-S7h;p?YXKKB2Dz%sHuC$7VOgDc4n$gQC4c6 zgDT*>GrEOlYSbaYLU7?E(eDK>Kp6SNv+r*XiLort4hPb9Zy}MH>Yx6|!;1yO;uICaI?6a*O8;?t|?oDJb3w2%Gr_E-)s5%`YH$_@FY7LDT$Mco4UOUvX7-JGuFBaAvLi={x-5vu{bx&V@;}T*U&>}yx_Mg>`<*0Q=3|eCk_Qe+#5nv zg%u3;b1h}nc8;rIBG&5?ix;sEMJZ+)6@o8`x8a5h+??l{mVFdAM6MSjD9?w^Y4{&J zCRm8oXvZu~gyy@FY&e4nC^-SK5?<}&qMhevn-$ou>#C@#Jsq5DnrkwWs;1Ot@Oe*b ztA*<+@*M!r(}98e&cS{QC8|L5v9=&y;W#nq(XiU0 z+G1-F)Ke-$Gq?pfnH#`rgW+ksF7CHLGnHhb4~0wKKyXyNHBVvNG*w5^>7~?E^cC2R z8{RS()k^xvOL+6NeV2!{Fnx2@M!{4VPXv3OgiS%1S}yDEvk4uNCFZ+3HX#Za!b-?9alT_)r0ojqqWDjQraOT{n^mA6Wy^xg zU5q7ly!E&tut%ho^x3MR*{W+dxXD6i2C1noYnqel^X#d(&#LQmr8Ox_3zQddb=BEp zdDS@3NFsNdoAYb2Cs6JyvW?oRaGmi=p7UMw%uHZnw-FI6)1FW z{&!JxM7d9LnNDP13xX!fduH(7i(<62jl?O!acNStiSugi-VZC;h;Ert9XbOcblj;U zbyaVo`3X?nA~#*dQtB#;OWkEcwUXLxkDl)PkJu zR8`)wKk0oDR8k7JMQgV?LNLUJE4VD%ZR>M7t{oOa3d|3k^KmDtuFmVU+mfm@+pW-k zAv=vREf!UYOJbW0X!eYhHV zY|%*7a9Y!Xu3nW?(NBt`)Pk+`OaY;@6Djtf1V%Vz15gy4Bu5oEPAyWjH_fVWo(|b> zyu}lzqK9)fD|JGklA)T-v?*75DTQ5%t2=%v?0BlPEUTT=Q$Osf($mdNv@1SvwXXxS51kZGm(fG>xxR*~l)AT3 zH-xsUw0Z14A<>Q4(rT)KN!qD5RX3TH-YlynE}I_a%XXo6hYP;Tmm7pfOA%~@(^|&| z28zo1tT7rM-eD7Dn|>0z<`K^78IA=?CPK2A-30tfCf7}feJ&j@qOYK+RH75nQFFda zikG0J(IOvd*NKcvDVHLo;4T6Cv{^!`qRYo(QdvsHXlp~aOM09q2!!gWYt2u3qQa@F zs?AO@GX9TdxJ!A@6J>8@&baZ__=!AzZg$P#KduJMg~e*XYfIBvptIc9D7 z7G*^xnYdl=1vowHIclWvT6w9kka;UJ^)7@ISa`DsX|X+)e3yA$RZmAvil`zai!qE? zxGz^_`ylHWfFF!_5ir1PF|0>W1t&T!sr&F{YRh1UE^jJPtgnUfLwXVHFZ@gZa}D7L zkYK_sKML(%WrpB4Nnv%6Fdgzhv67yJr8TY5qWxy8MO{?NkXf}sQBCTBO6uqo-B%p~ zn$4h6(Mp0y$dKL#MJHuEMvJ@7-Xi*6BD?rt^WL#pU5I<7S=kUt%mu%78dTo1XB^c| z6VGkGCC~YNH7}x)g4c<)&j5w$8}%r`vqEe*Hh)^-yzpO#v5?C&Dh7{fV1o_La>H%4 zv^#rYw-lFe0?=?^#hIzDZ-CL`h+UgKO|7_q;8W$qTmk+Yy#`TLRZF;R35xDjsVbCH zmWwUaDvMGVdfD?7E4qC772XLdtf5R@UFeT>$?+jNP6I{XFphU*bvP9$*$T=*x|a`< z=(6CdsdTnyu`|DF&;FoKf4b6CXy3$(H&3c-8Z$V^CkP&~)WyW6vNayKDqY1=>75q7N~<;1E0UGfQe4$lLdd(xJF3e#PUoWJrJ&(; z6i#v|^9oOHA#@^b^%+sH&y86YPaEF)c32v#cPB&ecDy>&``Ep(JFrRs< zaEN&1jK+%;8WdthnQ>aJR*IPqC5fZ7ZzWnOu#i-v3`2^>%?P?Fy1s~Tp3PMh5A_Al zg%|uaq~c?@1HpFIS(sCpBiLA97?$#)4q=mqgg(M;V`TdPi?Qz8aaZxE?{Ztof#iL$!B>yT^V zxOpJkvMkfOib_hia@v@>s+U*LHQS+y?Ee7&!~iD{00II51OfsA0|5a500000009vp zF%UsfVR3jp@K^i zGDlL2+@?r1rvdO2?YRL8c@h`E#FZzpZ5lKpqDoVJ36>cs)zy(qvIQaMqm*L{6~|~5 z3y-jZwJ~T&wg@sg6*4GOO3}pVIWb-}6|+M@YWiwX4mw{EZY=sSEx3LTRwE+t2d3q{_98*QaAZH?|pBCS0YxuQW(c#O$Bmf%j<{sn~% z805@io0w>JFer?nKvowWT~&%qp(ZuwV2=|Ke9A0Th4^PuzlMf|rP+%`UqWp}Cg75E zFpyUs#{^8Rl5j|wGF*tbV8Fu52smKR@y^4qgRwjkCjzE~$`d&z31SrLz6(kYrO=#U zPrn;!%OY&(CM+umK)^w)X;Nnp$tZ=QhXcrh+(x~b;CRM_0q&%WYDXOQaxC=oWXj%v@ zEHW+Sx1+eEP)-aeRVEOqE0QN7WRgsq9lr)A$vP%T({fx`=!cSmm=M{{3fR*I)s5m_ zgpqHga$ngiC*_GuKjXBW9T_B%InlmHLKJej7}6x&NHnbpB$z3oYF2_0jA5dA(yAbW z3rp8R4TvTt*q|pPddcLtqbxlS}^~38*O+-;`mU1C^0wti1F}|S`fAqD&mBP zCS0YB6U2;H;OV3ezX>FfInqfdlOzq>W4#-qN#txynb9QvMNrcXzX52$Iwm3@SAj5+ zndtrjj50wmo>|R*rQh&=I)&dbT_A37XlRt-M z30{OCnk!-=MWS4euttd(5JMMw9@nc{Iq9Ruu_iQOD45%cOm2bkNZsv2)sFB$vPQ9_ z5jqsa(@Fdie^A<#N!&&on6C6eBINXL5RuE+zx3&n#806mi$oy_=+}BI=!8K6L>M*~ zf;2)Q3pz42glsYNc+u%PNXC%pi7+7YIjl8rV2h|^45wp4aN$VigkOiDA|1gapObg? z684|)ga|^_J~eMbTFjve#i43h7DdK?D#%2INkX z5%?i!MGGdxLZNE{6A*=ZWJp*Rs1QQ%Br9S=v=2uMgm2$4{TG9V(wxRDwy2}uw} zv7~79XlRHx73ms5xfD7YlR6~~pwO4&CUl7;-b)F73swh>2wE0IT!9E&=&wbh2?+~C zjm(L9%;?C|1L(;0fhyB1!I+Vv4N;9eXtH_LXoY$#iBXX%6=<0{CMGQCn3&ooK!+$y zP?wTB9sw;0i#A1`2(q@wg<>}#f+2|zMfI5-fojGC`3csL~{AHQ4ei5*%vidbP<%q-v5t zjsE~LHY~nT^f~)b+}7q1-dTx<0h(5nPlFcdB}$l|+zI>(47@{_HXp+XI8$(gB*JVb+X#$s;7dj|K))M|vRKjTvKH2wKR< zAlRNYgCr6{$gSR3{^8R4q(TzOVaDRZmXk0Y7fGL zDTsyfiZw3Q@Is~Y;FE2|Ebi!7l2s$;A+yeAle`jY4_K8#=t@wQkR>{9aiIbzI%!5I z#%-&7XxPN;OJuXL(?>%X$PiD#Js;qOOHGBU@H?5WO39PL?lVMRGfKzs6a9{bN)FW<|4JfbR$EFV#iVehoZM-eOCAx;YT59nz#&h7epj!|r~nRdljv>{6W z0BBJtNQ0pug-b)3Xm}2~6`RI417!XixJT&BLZ;^TAc{)7@%~7R{I((CCq~3r(E1(; z8Xl|gl1yl_V_pUbs1Ml}xmGX&+8U~r&8FemV2{t4*6 z2LTUm{@D5&hDd>v9HT#{fVwvV_!K_r_8+0$EQHj^@fq9d@)se=S1&dg`lOt4B@Wic zi{;ZApCeFPc)lxfH-<<}_z*4JuW=)ApP`A+OYmb5qH;LUps>D-k~;iwF*Duz-TsI0 z8F3n={{U1K*Iu>$kygjwm%AjLArVPdjX=gf;E^$tr0AHlqQIDhqV z7R8!LWX8+pCq9q3Aka{T(kEgf3vAyaa+8NhbY=0e4s5N$Xa18aZnhzjfrWhq)T<^2qI}GZv^OTdoZyR8CTJfOL<}NxxL&FZdcYb$cHYRrv~+<@g`nvLL;O7>KyBalj>!&z2az@L4BWkKd1gX8v(;08$)r0^7vvO+|9I0@wyDo=(-f<*DR;KdZt zh~g;IfUru0L8hE)Wt$+OXJt_%By5=>25|TfeRK#^D7{v$m4=#0lZt@MJPwj(OD8!2 zd*-|`I7W+TS|%=u6^O{{C1B_i^LQW$ zvx~sr{aO&od|d*!`eA`L&+}tuK4CT^>^HijiH;@|IYYg2m7ODuBzk!2h^(0rndS?l ztc}5jhQ<)Hf6ziuNy^nH?FA+#F3Y%e9@Z6ECe=8(O_IQGL5aBnXB=Y737C7`c zwwk6%mU}xJ4@X+T)je4~SV3$jsWfFmU*L!+kz!II9fYzVl?iVGCjxdOUxHJRX>y8$ zB0Vc!ng|a$6%0k8l05}-mqZb~zhA+OQE;u_&V8aV@M|?;WfHH-$cYjrCq&)8Q}7T_ z{1Z=xHxPzD!?Bf;=q(9|FvQq}u!Pu8X!5@8Fgqx zh78DU3DGu4iiQ^Ffh}@sUjmk$BGlLZlMN7sFqG2G(`qep|tqW zp0DtgT!UbJ3?~9&6A)5DdZ=KLJ_+MS(lDz-l4MwE&!URa#ip7Q8LVvROuHt@f#g&y z4ml%oHe7>YBC02e3JFSA7c3*Q>~<<7hhn^)?70?nLrw|Mp(yY#+m#dGCiw{vlS+Ob z^j|}d8W>MRNwAoN$ub%l2%XTLh9pc(u{CMm_-dboPBgr<>2NXVCwHP1j(E^)#+2k@ zNJT=F%|MD1t-HuQ3&ECWx*5FoGDW%UFaC!A0MiR88zh`Dr^YcZNfcYLmWhe#ogRNf zBQ+w?GDPT|c`z$piO7Ww2x3dOZYX&~D3x-bsNLHc_%Fu8n9`m`Hmign)iW_fypv6NGw2ox+KvMLV1izL z;)d0akmy4XUo26u=}9L}HsU_XrP~u6aefK{5+*bfXpm45MyyAZM}tMhkwg(=K_o~d zWE!<&xzVI<#oY5a1*#koIu)Fht;2N)((p7T)C^#7L*(T{;A9j^gn>QyC%%+r*$9@- zhqWb8Zvr9a#VBUdGu;z%H#9ybzHDpq>l9L_WQ^|;gRq@!kq|ucQ~M^6o5-#s=rVUQ z&DeyIXsm6;q_n51)}{>+j|Nz(N0Clf6w)QNeb&-A|u<{@v^s9-V2tGXC%4ro-DmsoZM~Ct|2uYW* zxSEb_3kn@E6OYAyM2V6~G$e*YV-Mg-G6+_`fj4i6q^P$O2$h?cxgz}u8!A!JF{;?M z0tZ89kHU_+#~B0AmsqE%okwBRz7|3w`ZVCn@JhrRo;N1Ud~QX@!L%rrq7g$%vHt)> zRnyWSPuiFHj4-r~(e1~m9+@DCx&Hu^EV49zl*CL(pRE3iNcT*6zv>1MiJjJ(^df9j zI5pA=R~-)+o%}HmEzxd(+WA7Zj@la#K~GCKKf&cn!hMa}HbqJWWI2Y(O}JQ&(7qD~ znWi!opLs3_)|PE2lB|=GsvLEcG&gz}Y-6yfhe&dC=~&(C*)b%E;~1 z+u*ib(7W9WN}6NYYv_?BE{GM&3n*-;k)|RkIai6HiYbJOSkD$DopK{fiF`Ev4dL&9 z@Cv!7wIxEA5&M`OLKK%`>DtdF)rAl~g(yG;OK(PIl3Z_t`HjJvr@*#_pyEBRgvo4) zVhEKX5i@D-76N;8N6da{pkPku2P=x9> zHa27rr#IUpbdpkyj;os3lv{Wg{pdw?=7yR0b-89GF^mz+Z;>4NVA|+~Gvnqyzd{Kn z+TpA7fFY6&Miz04LOZ&L%N)9P^@t zjf^HSCru2|jLjx_f%2k!GVb)koQTCQlAroMzhcC*=j_^eF`ngn{{SM)RpMA3ZX|6V z@SCzCeCt_2PVkvPv|*|3r-C{b##@`1Enm8K|R4W*gSyb2Oh*xF0xrNV{x zH2#Q$3~oqLA!U!2hM-$`65z#nOf-VIGhPC8OO&M6M}QD4XtLR2!&7qPH4osA{egem z6h$;G90BP(UP-A8uuqW~LPMSj&dNV!l2(61n@ztEIxaWH;)^(0(2!%?GE)@7p(jHe z{HYUZ@*G6P>i+;ixezNhrR@?)I+GjxP?eV6FtV_^NM_O`Xqd?5?3tM~lO2jrg`d#Y z*FA{3z=U%|-o`P@o;qcfl^Go1P?n#9bzVAqH-nto}ry(%Fc~5Xp2p zDrK19cGoV-E54YvWFG4V&KRKo0J_PZJ<%23PtccaS{8^SUBx7^^cuw{*zN_hLDDEq zl^1+KaN^l4F*=d$#)qWn*u;+_ z8YQv113O(Y{fm4i$*~$Z^d|2l)w0cwqj*VYBn79Xeu@^>ix&_cn4x|IGBi zSw>S08i8{D2hIFZ7Z%MEvY2=~A_+k<%lwT00G1g>EE?SUqewUray-R1X5BDm_m2aY zca%{&svPT#xfAirq=XuUOcf==VaDH5>;^Zqhv z`!0>5bj;G)Vm1&3o2S66iA!sLSkSnGR#KB^Dqrhi+_~A=A7o^2p`HE*L5G2{v&bdl zN=4w0Jt9vhQK2_}h!EC&4+mUrp@gpty7Oj-lU8pS%u<=ZZ-JD<<}5HAG;t9Y(YxyT zBO56#qW2Q0JrE$yIz$I?Wl~HNDPd)BQ3oMuuf{os_FaLt&A5#17SXM70A@kSI*f?q~P^2!e5%44t43o*{&X+)M-ri~`u zj3aFdf?Dn0;9_Vov_ky?oY!;wgk7;l_++2{JLN$YG}RH8e+~ZtA}LLBn7>0C{@EW$ zjE~sUgddcczEGE1OrH{ms?$!mlqTLlvy5k$>Izp$X4V!XjK?3 zb4|wdo<=C|5b)4>0E;b(m=<1nzN7do%6ojL%R~ z&<&ujsp^ijuNrxiwYYN+=V5r5g&ado}QRu(2QUjL93?fAadp40F zqJk?SqBKH)9cWMTg*y9vu>?CEE zLlH(o8;+&3QYKLT$W~9Fp=Zhyww?BWs8LVw2#IpTay`WCh5AlDhxA?LevaAi-!JH& zOl+z6$-*rPY9|ZIi5kaiec^5@+A@E%dw04Kea>~@btt%~N=5fW@ik1L*Ch3;lYi+c zgTlpxe&+a?-ItWbkvWx~$;&KS$ne518xRs>BSi3$>4{qqIsAThKyV5igQ(`+W^+-_DBm-|#;p6>aGM0D+kCEog0fhXstY zL8V!zpCjceCmYX|WEX5XFUo_R>fE zz-*?r9lUuIU9z|6buZg@PSj7>sdr1sbwRm5=^LZWcHw@~BbsK0zd1JG& zIZ=o@Q|yAx5VuHi;T}M5#aIl>x`Su`$d2pr(~Pz`g{n++Ia~ zTd`8N{V}WC_Asa5hsmEJ2SZfwL_9A8Vov1@@vk&&n_>$ahzsnI9BvV~(%9@+nKnW? z4OU2z0}T3$l_P$K?T}XR%vdxpt=O3L!t2sF7JC6Tp8^Pr z!hyEiYoT)9A4D4=B4Wf@C@T6nJHOLoUj^3Wnn}F>00hHx zQpG89bOk{lOcPrClGpHY29k;NMkOP2rKLN_K%t~|i&@?TnJ*CL;P@JipCsB%>nfZH zmRI0-IH67=$dI9ge$9jvc@S(8?w4lBaP%Uk98ExLPA>2yQk;a&{Yhg!Kx{4}&surjo$eRgIO37nl%5tSx9s3DceNTasy>@q!XbLa)hF8FP}d;_mWKI975d zP;?_VZDflgl%Ho&#Cgr?hcC58~qR2+_B zbVZ-g#$^j>M>!7233Wo{?Q7&GEP$zf1cpbuNmPbLV5k*jHM!bIyd@o~e84fo~bdd6;wna=O z<^KS|RM{8CUT{*D{fOkb%II6u>9K?8Y$>A?jJ7J9jN2kWu#%7#^MXfd*n%dcFEcQw))%smvfD%qppbqO+^f?s4gROyiT0B}fdl<8R~V?v(P zbWQqAfK2Hh>nVt)2MjyaoN zSrW`#L!!`0J-k4e1(|Wl01ZrrnYfIUMtg~KKky^$CtJ+AUkpJFVKCP3aLTuD1jUW+ zKCM{a4`tbxCnu4$$kS*;SrHf;B#Ujn+xEz~94z}PQsHHT4Vn#tGYO<1(!{mDQeB(T z#G3HRGf%O_DJWbg>{-kq>o6Wu*3nbI9Pk2+6_A`HA zVB5CeB35qDbg_3ssuhmGctdHewmT8Kn}dkbU&*tt5Rl&+B}jX6L)|?x2F{Gg0e>|c z!_-bxA9N$-=t$a3gUg%@ki;*rlaq#^kiq&5xoHXhxa9rCrrUOn`0&Q9VZ#qMwbAVc(H%vw}}?h^un5DA;SvEo%HRCEW+Q=g6CsVs6kRC9F2%Dg=#=p+lh& z9F5N>SRlvPe7D*%$TYKD1Dla@DTm%&FCt-EHajUXh{r4=+UL`!6?-8qoe{QJQfI<@W7mLv+>dxt;XuKG8mRLz({1DO zZpTBfs!XI~fp0_RQGpMF0;kB?;F!R#aviGFScmLT{{S#p{L37rJY;oZ=2Qwoj>Bm= zmq{DEi!ebHm-ZNuisXF4p=G?BN~CTkdNxVn!PyI@enbJyq_P;mH6_+O6;)82L3Ej}9+j5K~o8nAc`n+Z+Ti+YvFzY(2;il+f}NS`k~A zo~XZX;DT~Xq&O0AtV5ysLb!-rQ3B~CYJFhW6UhvTY>mLXg3+ePhH#kF!XZTDOatc( z4i1jxDeG~(vq>05zK!DC4!5RQz|V5CBX;s(aO?O-DD~LBq{}~O$dH;CL)i9-J0Wiu zqH<5#IHkcV786bh@?Q$@KKjU!FOw3lqEUt=#H7i(6a9#HCX*blnj+**!iMQ0e2zQ^ z&Gt39WKlq_KcNoC^l!J}$oG?P5IHNdcZB%Unh$$E$X75W7WQ~C0&h1XW1SSdhA-rt zbVThZ`9yLc+CJ%jNX!_V;DM3y%(EiMhR;q@KG@Wk`xMbKM=FQtP^6gf7)lbi8B078 zSY38ZVGyLY6r}`gOsC6YHh8rM#VC6`8?c^nTQYO!LMgQg7L+Y(+$6k0sB-tL6|ZAd zsv9R4vt!_bOIsz+v?U9;Kd|*h{uj{`F!@i0F(h+zg<7zb}MZ@y@;&pmTR)(>rJ}QO)!W=wq9Qm(0D^kn-<7uH;v0Fy+NsX?HE6LMjt%1L8dE~ z&j_rQDHp;>^PGO%hEvtJZ-*lkrum2HYNx)#?1o}q^BHN@;|wmtrUY%uR|IKWf#9wd zV3v9+CMs0I4-e>vp8(2)(#}QXoO47U=y^;6+#uaVBq@oxBKSIo2fv|aAF@h*B)Au& z^exm4EbcBx&xAJggTmI@)ufV9SLj0c9uc^Ica_!&7gpr_v0_UIj3XMQ*!|oj-+d02 zkgyY^lfPwhmAWyWM8)n+q^?jwG7Tw!Tp6BwhOMJdlHi*|=nu%D*#>0bcG6+Z3HqW0 zp*`3d%R+n>(PJ!~EF4-DUm_Gr%@8qznH(*}MPf)%L?%imyA-(n#1G^d30Fra;4-2s z+8U%>3*fQqKZW&Q*m%%(WcgAxDgOZBB{AsldVIkvrn5}@B3Ctpg@eLJ*?QHy#4Y~- zV{`Pw0VCk4VoS*C;c%xWX_LjoGBK790Z9$1JH?6dJh-Teisz zg5Eavk`mtZ+(ksQ@!R?$+rtFmY;Vy5)E_f#{{RN}mdPv00P@P!{^RICmTyyMsZgMi zfpOVxCZXD3-G$(d_K(^zQdLFP!Xp@uyLQ712I)XbfcHuK zlVY%>Lk*BuZh}?7#_m28Oa95^Au0NXar9t$NlCNW4%0jqM8MNRVT6ZNpru{{TY!76TC`VfZ4`2@G8przf8R+hbUkmt@4oQ6>f}DiRiUWBbzQWB4Iu z)eQ(q&y(Pc;~a|wFs(g7%>(sWrF<_7J4vgiR0j&O|8-6;Z%M^(dz^? z0PVnTLAmxs*cFK{X89X6Dd)M5V;MvuAiWT7e?UW!`pfWW@+68x38C|g=YR9qb*htR zdLvTc5U!3%h7hMXf(R6r%1_wjkvzyKDED3Kp5Tc1y((C0=R~!a3osh1nTJyA1ld} zwmw?e<~l*Kl%_72*(ZIFZsUQSZNbFXfSEgi6S>Hh6yQTd5!(Y-lqLEVBEzx{oGekA zi$j^gk3{q-lu^q`2f5}mJONo!*ZUm?=*ZCF0X9oL7gwmbDSxN-jlUxaUsVA%tQy6wFF52vS zMe%_tgO!v+RwMfhq6E@m3b+%^6`*mrNgPwyP(6mlQ$sL3STdSh9WqAn$kYZ=W7-pw zo`@xo)Y`ZGT{N#kAMib9CcVLtV@~8yaHQ}jq)a0o$u6MFdn}JT7Gh*@{qlo8 zJF$tsC99g6F?++NC0^f6zbKJ|7VNi);VsbuV}F$iuS-agl`Wm${#qmn*zn{?M{{mR z@5{HJZ)^-$ctFXxlb`Q_+06a!|?UcoW_1!XYpL!zWOLrR0(vCeEuR@bH=*A5DpN(HHCE@FJQ0!wQaQ}G$6O1l`F z-cjsD^ebxUUPqXrl9z;u1V^-J2qY~FNhB<5h|0jD@+g)+!F&x|n0ooLo!G;YF*^b( z#7c(fC|%`C2jPrKOzvHoF40oUTcNwKPFTo=GSX!b&7R4;$l1$ zn3SRDf1No)T>Vg)w;=ER&Zt7jL)>YCt&0?fa*2=WkU?=G1cmr4ehGx#e%moBNcTqi zB-lq|CYCKbZ-^)KrR@7`HL$d*HOtVD(1u2SV4+;pw zW#@gE!9OI{i9^7-*x|6)C+=frK93G zfvsvA#(s%T!Z8vM=8U9Qggna=7QtJYgD8)SBfvgFSiuIR(CP&vT=0hcxGEtn29lD-2O*@`$iJ0N8@u&!uGgo8PhAs#*a zqlg~59oT8^P%A{4)>yJzb$ZbVyK08AgvmS62LSdL(9xheT5>w6qV}3-k{Wp^)gOi$ zJz`>7_>8_sk#5@!Y{==!;8cjf#g(L_&KRll2%&QV@JTNr4VSd?_hnZ^oK|MhKg5e2 zQ1(GpB{ts#Z64ddz^squ(wjB7s_blCVz&B9j}7 z6TxCpE6`@dIVUU0afGn&iit5@Ddq$;rWqtnnI(+5eVx=H+1R&D63WtUp$hC0ce#jC z8v)OL$xy<-#|<95*2CKnM3p7V9|JKZVnzsQLUN5EwSjmoGTDzG28Kf~mSzo#*=}P} zNVk+HVx#d^*@X{~I8JWf&9XEyg4Om|^A?PySK`F3DwAQ8%T6C-{<0&M7+4BSSrs36 zHI!X)Jqg3+HxhO+EW#Xu(tHV_5%bu1L`MQOB1M#>@npMg5{{RJqrHM?ND5_*_w_=s= zpz+v3+(_NR*QfBqNu3)KL*M8c!{AHV&&UX)WmsGm(r(1LUNMH?uP3)`MCBGS_aFMi z{6<$|c2w3$_ZdFfW1=912||~?pQ2D={{X3ZN?Ccv=6D^%$a2XLjOFAZAUws`WcLzdKpwK z9$2uk0vL%Ih%C$**zzQgX&%R$9&OH36%p~#CySCzuLUA*9S{$Z3JP!bB$sg#!Gi6P zyhz!Rh;)QDPEmO;zw{B1{jV!cXlGd*H6%3#eg(g`Ma*mx-WZd|Q(PZasyc@qdlv#y z?^ZKbvS)DxIbKA`x5ASl37dn?LC-~cVDJz(X@L)SAu9-vlHDS9ZHdH6Ou|bd7=^qe z0)umOQsg@uByTXuvNCQcOMvRZxD6I8ZpdB$*rFJ%Ze{quF zYnT3smy2Rq<)$OhDIrU74%)(W&6SJSk@54iB7r|&EphNvNHD>p4rvzB#i|nWd&i~? zRcuIiL$R2xrQ)@}fUP4A=>x_HToJ&GGAmhU@+E|c>+T^-W-}TakePxlz=^u{M6`tE z0$eAg+!)rdL9niCeJW&)%G}^R5&m$(Vi2v|ju?qSlY8`CO8kzwdx6TDNKFR_=#)Es zj{-WeW37zV)Imb?G|Tdt6GE5tg)q$r;i7g)8_6vXXtdd7t7x0ro0TTIL@E^)ewBR+ z6LV2W{{UWLKG363%QYnt!Yk|nyw(vL^fjXw_V=jY;%LDU;V3ON(4DOc{)m`P+=YUw z6!v2jO5Vk8Hc4v>VrwIl;3_60m~AU)%mf(rjmTi$it^DS>c|wed9%>@3Zz>w^z>l@ z#DxNiM&j2@W`eryU!sL9NXit_#d0^nMFD9xay^1=%R*fa0Zy9Gg9RMh*#7`RY$*~| zMCCaXxH08%3_p>Vk;qlR$to{-F@dNulKB{x8H+N+i%MKHG?Ivr<0G7qiSYax#6?V# zcxy^*MUSuqwubz%1|mdNZVW^@?u6oo5k2l~i0bsRok)ggul$Z`WRC1=ea90Tn?}Pa zv^^%IaNz~9ebLfgh4zZ8BH2t;h=vCMZav5p`KjeH@l(MZVbc>ixe_&X1ZEKV;ErbP zW8#4W=s0YiM6Ylr+CbLgCwLY~vH>B#WJzT)sR&3*re7l5;Kv7n43QyZZUG61(@z9} z5KIc=OW8`C9R_+tt>|-RN3uw3VL8%)C~)*5$Y_~JklJ5jpMHi)P9Ylz2b3u*Y*DGkufuB~Z2$ z?-;2Bt0tb}{FI1J*dfJP;RW+INog4l+GJ6w z8%E;nG%LwAn&FsOk&<{jWR8Q#O(N44MY|$osX=Zbu1Db*XeLUTCd8+LYbOI_!tw$o zhKAnig%z<23v}>Jw&Db(>CrHbwqyc{feS5(n~1gw;+5{!MLqlqilZ;c>3MI4e`y_Q zB>n|0s5a8eh!VE$I4<&-znCB+g!Tj4F z9=T3ROv`_9GbQ3lIC&L`3&~p-n+L$>5<3uQ+d>&|IUuqogH)UiH1J537Hpv-m4TZn z8?1=}Xj>!L*+me@X-f)8VY)=@M#W?**v@_A?ERBjC9TPVNzc$|>4J(yB*K@_n~CsB zNo-^#I}#??UW*b~@>}Ls+YGkmt=QUT_8q52j1%$#4B7iPf?Zn2@rUG5R#788(w76^ zTs)izW3iWOZEWnE5|}BG%k=PIGD=8R{0;vArI^M(Cif&t>-rYdV)_vQlfz9nO@mKh ztsek8{1A4;&-+j~UeD4w{o5pX5lNlp)eb_L>5 zvb+y$&QUM08A}}@#mTA#u$OVERY#!3e2dW>_bYVB29EL;?YTs;ybR+cQ~v-KIlTS? z8M_?&ig65N6k zD0YP!U~=V4Wi?*n!vI4p>SLC2CIIwNf?iDS4G(ghL_ zL@_)#B{FO#?23XCp86C@P7sL|N`-l1(2^go`;@+0*ggL666r08b9fRQWr?qHPU{Lp zCxd}2Og1}Bvx1q?^d@*u%x0NS^+cD|Ai$ zA1?wrYT<~V1Z*b2p|mftz;+uZ{habsX$A1~#`&!9f9V^O7PUgJ{0Z!yiGfHBRYt_0 zT1MYuz00hwNA8Ffk@i6OhFS);9~YpcNH2i2g;1*W(G`=}zIi6f7i5%#mXG@tQdA-4 zkxD;^myskOrf`N8upvJTr;3lkfeA-~GR37ZWF52Rl2#1_a;1oeoE9rL(A7h}1}1z- zxkkwU0J0yc6*zkvaUD1G6EG4I-uEXTJDspbuWG(TZKVaWF*&Gt2@=>P!+ZzXJa9Iy z5h)}xlH~Xj69Nl1!N%E@YY&nOL(0xfMvKf#F|VAFBr-yVL`bC)vA*N~0G}Ep;Sdub z{q-uC;l=P8T(Nf}Qt>G)$qCR*hXvbIxMcZQ&EKMe)gAEF6VpIGKXW(}+L~`TNoxcK7Jf(_o>|ZO; zJIWOUMC?qd;A`;Fg3)r|j~0dO^az2*(TS`G(UlYB6UfwZrIM=?xRS{cYR!Zcjp6Y% z!4RdU!fJ@cgK;o_(jdYa8Q_-aa-QwQksm>uQf-#BL?x31uO!P(N+j%U-vTOO_AHm8 zmXczmIi0o|nPoOSkpz@m7XS+lbTK`UlLWQ>I%YsG^+$#;bYV_NmXVS0IUBhqOk|2J z*thO`Gb(aL&^jo4WN#vt=6M*VNl8*69-iKdbBh=d-bHE+V~aBIO<3sJaEucj7I83i zM)4gnaZtogC^CI(x-kh*rvWBca7CS=A&wwVV3>-5y4{`F{{W;XD-wDV5(GJiBWtdN z#3q=_6BLBl$r7GJTi!+s@D=&T5AT`ZyyB7RF5xwFdXju;_Y7I#Rn77#;aqCq8@0=E_> zqj2j4E(ID;_PP>!97IZyi%h@|R#exPQ7s&c2GR4D&IhKUVGZ&oJ@hU{s7q2z%t)&H zX(6bm0!4}m_97PoW@MtAlGh`^>Dm%OMuuR!co#CVZ1@aubRO9mW|^ftl#rQlW|bm2 zicn=xiI063LQ@1j2?FRNLQW;&5opTFZ5R^?x=#sk7nmAU>w|3aqU2H;MKq&n!bn^g zF;V@(USUAs*~#Hg*qB2f6iuA|3q-sOw&jz*f@d*s7lr6lwY;M}P1+u^MqJsUq^g!# z2qpXvfnO5FL3Z?L7pRl7v) zUR$!KS`}rnR!gsk2>Y93=2u7(@+8Ijcp^0-*m8?Ii%U+#^EX0hvjuRcV4AV{N_4SX zR9*?_e^l&{$Xi>m*~>qeBD!^+1UgC!V5Ksa?TThZHJD?(2HV(w@a5>~wQyS4Wx!Z_ z(Pk`_18y$FWfix9r9)C65AOqo22?VFEDiBw`V;jPv19(EL?lhRn1{i=AzzeGRsR5? zlN-%eQGxCpdSWZ8npIoM5Nt8A@W$o=CW*LwGa9jtugkJ)jeeaR#NuqqphPmUC&>_JJm^%G-5DlaOD8vBuK zK@#xR*)}I9{G-A`N-|iysZSaHMWHlMvy}FNCA#oN4Xip$W-&#S?IQLMmL{u9ak^?U zED+!FBZV0)I#{|2Y8{UovSAxYc?yqCpd*r4#^xNTvS*Z9 zPde?NqB3DW_d+rsOl?`A?wQ287k&`bEK4cTPQo_1`8i}+La}#0LVcJb@Fl`oAz@27 z9}P(ihD(Bz+%3a$4ha7Mq5xhBDUY}bkIC(bx>dK< zfNE}ruYs|lk`&-lnKA<0VBYXyoWkDJksyu6lA_L-o^}cuTtC`Ph_B0DTMkO*^}9LZ zi7oImgR+dKKr#@LrSwUo#HO|%W(rU6`4u`zTLaN>j^E&mD0>8ja(^O3#&42^1$6_< zUI`6KgpibquTioUvGC1<2$u59wmwgfH~(Yh=vL$MQt*r|8s7C-NmenP*GM&9-rVpnqlBm+VE7E6Dwe&rsOXzlZ&eu(`Ke`x;j& zWH|X`4IhCeobDxyaZ5Xpo-ibpq;9jpwH`+zB3qJ1ppF!*1zK&YdkYexQrz8WQ-ruI zCPRvZ;VcZi;6srs{uhdeDA|bd14Vm6EL|K96H6<)NLr=1l@d8q=w1X>GJ({vEFY}# zPbjl5ep4afSwy#lC!Ks55>PVA`AlV=@nx+@{{Yh)bQ_7lfua(!H<}#Q^7uMI6Eo2Q zNuDt#c{D>(m>HlXhR|%4rxqna6u@;^L)e!7Pqr5 zFOxR9?utMl4H-q1n*- zh6Gjx6nZx%AEqC(kDU1BW+}4|&y!L$4YJanu@HWgfGKU5W*tMn81^vozRv^d{{RAt zE&#Uq{{ZXqVk&MQ(`Q?Gl9(OaedX8uwtjxLRefdnHq!gb=t~C9nDJ6iM}MHK=-z%# zQ|aW+p#K2vZr}TRcfuLXY`Av@B6?z`)=RhUcCWwem!8`_KVCmJBw7`LH38saQ5Q1X z3GBXKexUpR0N&hNvsr5Y0Nx~qGF^EDyqP^edyA_6s}-}`?YjB(@KzHfs2AUWkU%65 zKt!Pz+P%#oUJ;tRRu=eBHg#ZMAfee5_AOzokee}|x$ph-S&5;8eOCWWBt{~Dw zAaNsnqzVyX{{Y+ZNSa(eEB^qqb7%MMUcT})5+tPefRfNM@cG(%F@Rb9>ihQZXQ!U; z{{Xjho)W{J6@KqXp|uZgAXYha0?+rG_s-}~zxV$Dp*5Gd^o7E|i@W=gw%$8@nmaGv zZ~p*YXLsLkx6_(<1rP}YiX~(%t^AVz0DkTKQ%t=p zyXD+{+ze? zHva(s0Dl{LUdexN$z*@`d40p*>%4ntDPM2;zxiI;-}OSwc|m58NYGCF2SnpaNV(*m z>Dp6&+xM4z=#%xmgh22RQ%M?kjn=6)5;XafH+=I{e`o14ZT*KJ(<mCk<%OW0 zpMCgVeI#De@Dmtx+%91nc~5s=pYDKrNl%dve?-z{>$`$zQ-B@9Nguxe42F+`6Vq{| z^5t0V_wP^q*v%6##eeIge4J8~q72)*#Gf>gK|AI*`%7-&=M8I-M9)&`h3gC}N&}<~ z(3lSrT!1au%9^nu0TiHxa30KzARqESQ=kpod)AS+rMuwDdrc)Wcf~PoIV$l8~sVZjiGJ zz?Xvr48&4(e00d_ZFa237>CkN&#+%gV3WyTk|_S_pDjxt1@#x@E*g;OKA*_u?|Y#{ zAuDA)`4XkB3>4Jie<`HpfZ?g})iMTx^PsQ|<@J*Aeap~wF4bPagMU(B5;QEvL2{J**@*)zFhP-hN~%tA4eb4_c;7V|7$+90AUS z{0eK4SGr#wac4G|Knb*I{{UNQh}|Q$b*apTs?3EK{9M+KlF(B(`{KIHL1>hfIp=YO zHE`Rl)be|5;nXdL>JXn6dJ!`;0HjaLB&o+K6$um+DSM_P{`{LRM-V->OMs9ST}THu zx1-`VeLmq4LHcH3-md098wK5ch#n|NQs97X$$%LO`IBP-Ce^&HP#wtv35-imYA25T zrZ^fkFZeIeain=a6r{4JtCKI%&)uV?6zE?jMXKrl0N(7DFr-6JPm+S&UU`M9v4nXg zaE|X3{{SZ?rvCuywCxK20F}vx((hM{GV-9hjOSELe7t^a1Y#rq06qBo4b+li)$(s9 z@!jRI3A|*|X`s^G`yZw{AIsL!e+w;q+1vZS{yj1SHK0P*_NWypE%N3(tg8d4J} z1Vn!qN+BbINk~q~+kSeu!?E9XU_kULAIJ(X zD`upUnu~1srlGEHE$G4xh>koe0-8yz|^7(@vcG2A}K#BfMW*bTq zaOvS~eF>+hy3&~YY=D_*d!L3t{*4&SjNWlJ+ z@9S=kJgv)SY-!q-y{I)vi6n16gnl;fZCp@(Cz+uc2ud9mpT#V*9D+xFWj<0J+p$iBvtWDaKaIJ)2lep+!#p-%uJ(avm|6fs>+ z&Bs7WQ~ZqjZLOwDExJc-l(yGDWr>OmVwq&|G2@M(>nbFww3TIyfJg?Vivs3qHqG%N zo!zz@vY^D0+F<<8IuHNE03s0q0RaF50RaI40RaI40RR9201*%&F(5%vVK8xlK%xKI z00;pC0RcY{db*FdoUy>=tR>?a=RmQHYD9pPcN z6XbH(;g;}Akha@xylt<;Y)fxDZLPN3Z`b7UzX5gs00u>ul3OqQHYI^<6Av428?o}l zO}5(>@zzIdkJ;Rud`9yZ=K+hd1^t&$v;8+aZMcw27VBoS;p99wPe zgsAy0PpNI=XA+j|InLV!vRi&|7Bcto-T4mNcH^nLEW6-smJsCIcpa^`IRTWkwRw6& zl5Z~%q`MQ+BZ3|rIS#xx4ntDUu(mIMZ6{HyB*F#mRI%74<0On(@a%uFJY}Z|-z#nG z5icXY4Ar|U5BA;{IcL!f_MWZdES32r@Der?i#a>8MEP5|EVG6O?X!&G;p%&`#_xdd zC$^H3EZ{`4+2D+1Gvgq%om<705tdtR)Z|5y>(q>YQSAQ!oGW(OWs*n7Qa8Ey%Q(-1 zO|vJs<=`3caQ^_@lc-_avx38%noP5g>zuUXA}?gKfv67naSx_c;Ck0HAOzy5M%R z=o4n}^}}2;HcdE5n>+!>Gvhk7WuIxzN7-i^ZL$9V7Va#vP8c!D9Bg+Gn6UWH0?q<{ z2tK#FXPo#M;Gck;BO5HYoZ#htRgZXF<9SWx@;j5eG1a#HhS`(A%f@lD-voB@8ri~I z4V&@pmPM9Jkvwg@cClrV&T_fVf5A3g^3LqwKC&g2%gK1&SAocTht6!gyAnIe|g>rF<9dkSlRYGA;CXh{D#N%ddp?t{by z^_G04gg9`U9JXE;sN*@?_wRWb`Z>-EVC$XWWZR|FA@RQf%OCXKMt)Du^6|0%04=xZ z`5SEfwjLWF{{SYuKMyMy?tQz+-MmMiACDt%+6fkH*?4hc$0U`W49LInbT^19&1QTb z2g??4$JWorL!Q=Usl#s&q4My3`$U#(a4}}>v2^t!OeDho!v@{ct~`Sq_3|J7E&l+4 zJas&d1T-L0WPmUqpPkqSm$H@TJgU* z@OWGtVJJhq4)R&X@#5~m0(_qn)!2_#b;pgJiRAR|$^QU25uO|*9~dpRUK?)*{6lOG zKX^`dae7Zol0~rEahvR?Pm%KX1F*U+5@U*N5Xkk$Sbol!OSG}bWI?)@kILJ|UET4r z?}7gSh`W;=ye}l%gr&3J8OKon0A>7+_|xMbkL-HN{#Y<)HF(CyaXwidn-Rq5%ed#c zK9TSacHRet-zPh7CwAjKk}?=@{C-A6I!}<%1Tp!-x{j06g|=QE_&jVy(`lLVal1%450Jl0 z_}~N>jV=EGZ}q?4{{VZx?f(F-Kf@>WGo)}hZ(J|Nw#M&+gO(@Wd;Gg0bX{P#>6Lkz z_m#6?_?b9om1`U|;5vsJ^^?F0Hf&h2WwUKDl67zKvOT}v7V92x&j*8STYDOg5BR_> zKO!r8y6>>v{JyfwgUd1;#rl26R`6`t>;A{aS;H=g<#JY&$@UC`KyMQ#?B15-aNG%Jsn@t>i3iAelpqNZIWD-YGIRj9q>43QydHO2DZ*J(Uz}U z9o3vKQ+tP7B>3#R9dOvT_lsgV*t4ssnqFCV_8IY=Lo(#f%W`7OvDd-tpUw^lejlcE zv1}KD=-A6;hdYMqc`>rfIA!~6d3u9*ABNmd1=1bkesF9u|bs>RTn2EwAmVdu|sIZv$*?-y1jXTYGrwKj*fWcFQfY{{SK9#681~ zpIc;enGWo-ARM*Wk>QDTlLpHY7Fiq^k!D!8U%mJWBW4<=uoF{^_FLv2vCj>+w zzaZ*-hm5i~J zQ_prmV+0Z1nR~`{!*=ZC)3SGS(JlBJO(jCiYGmZ~n?}zL-@8~jFcxFX~g3ByL>KoOumKVB~Fw8{5upUlJB!Vz)F3)UF*q2s} zI4FC;hmveYrJc_$@eWm}{?M4RpSH`?w^GIicW2}`g4i?Lg*X|tXV6R4w)33seZSnh zF5Sb_F3XW_P8g6b<C}$>}?mc+L)Yt2o{T zwl{50w{T=$-HFJd4){x= z;CkV*mX}E^9NTs1y;+$zI=7R1V17t@jn(n8_b(d!zak%2f3yCiNDs>w$VaCl3_EO# zdM76cl4Of9qbm0`5`)cZg<7R zcf|QOl;HJjI>VDY$u|JHNHj=;mf5ufeqF3sLv4oX!Dm;x?#nD}?7NBGo~4gs^*u^A z?p=ox=)jP50?hCtOBgJa%#a=JVRS?MoE^vH7k6Lm`h@=gjp%3p0NK+IQhc{{UO5heQ%97Y}gjw=XL{+>xRFEvE1LDmw86t!xV^exD_q z2#x``Vhy`9w_8>SJ_2CYT4kS{H}cTQVDd2b{tTOkghq4$x8Nj5_7S^a*e4hzk>9%rbvw3al!GQ&?O*ZH#hpl1y-N9hmV;6>?xbv;v95y1Lx$e% zpCz>AcMoy{owVG=l1bxU50j^5>mFUiGG2>k@dwje1I{~e&JQ5s&L4dh-{hS@?VM%20>FVJOxGCM!B(fKyPa^(4yOxtk0J*b)4PB4lIwTN2+W16QZ_bE zv%GG)*>4}PmJQZ*e)HA82=HZ$ z;{FV;L?wpl1=b9ElaY%<6&lE{jVJIBs^F*ry0KZ5r` za5?;#K69=KmRSQBw%?4h@yU-YFZU@w?~^GqD#?4VGu-yg9~)`Q$-1QK2=*M{Nyf8& zQiy{iwoK=KKP50&(y&`DM|>A+Gmh-C#&BJOt2?!3o_&hm7|SdtwlO2R!Aof<{jAaU zI9+$;oUeCKUQSJhG8o}7S#_3ijzLXH{mFhw;GO(*;ePkSF8AaA05}+Xm9cLbV(!~4 zvQLn+lOlVM0z}ld*-$;OzW)GaAJVW&&%*B8u{{l(rw+9o53ydy?JJQZwDP(+iF$2;G4%$mseIv*BNIFvd#(iJu?3QEswI+zhD?%1ZVOW zt0n!Mx0W4j*@T(fZphLY=NZ+Lc5g%zr{ZkSEi#{M&6aRxcMa&__IY{OW*^HrJ2(d? z2Ohy00bqP2@){*?<@lv2)Suv-U=Ex$WjkwYZ-WjuED-#XgEY`@4}GlN2E$qBX|9}K`DOoqE>0z6_m z;a`J#9^P9G<7@r2Mxn+NlFg(1jLEU<<89+0ZtY?|e6!^cedK1y4sn-RYd(p>0EXJp zS@Qn?e!p&r)J@%qY3+*a%ko0Z1K7VWVn$z%2DUQME>YEtlgq|pxC8y_@mtVc<+o~= zV#O9L&N9m$HQ0y-#g29*%T<}5vxfkkor&2X{>CtfeTn{(wDo%6lP23?h<~z?V%T>) zEFqadBRrAaoZ!+raCv2xWSeOiNZT!0{e%6z75Z1^O7`=jykyJATY8Y#csbw<9|sx- zaBNJ|111cP2b?RT*{1BntXVySCET~=vde9-!w_LEq-SNfxrB*rOTf}j?%bX>^p3b# zM{SWX{{U9$&i-IYijJs84J|x>)CphZMTNa;w>|mm&b#a$HT^Jc`jf0-h5-&-Y4}u z*{7+~*kjWx^|6h}ftx$is6O&CI9*}9KMIctJle=f(S@fGiPY1Dh&UVPUT7-bLL>%2WjaER`} z$=#0`REi?*BinviCAU@<7DAHCC;YM?#wixbl4GdxW>;Bo-EX(~X81 z+EJvvvFE9LF?~ZA&Xw)iUEQ&-4Gt6=E1U8?j~aJjSkv2h%OcH)NoAHi1B0CSSa`ph zn-jh~aPV4(9|kVZAF9HUa@jlwdk5ni8-&)Zq=WkeH;~U~Q$;NG4(~z`7?}7XEjRfG z8D*Ad2QNE}dfV0GoZtcQZyY}-oTpIZ4w261dv=m;%QjP=ai6>aW=}zOoE}MPcmj=? zZaZie3SIsnhtIY#+!hOB*3;r3#c;peQ1Dt+D-bQw@45PvHDZ-k|j#;Ng9`JUwrkttL#j^H4;X z+p=s!!{PNimV8!Y9|oK+OqF%5RXw-wrqmS1q>Tty<6ve`oRE)ej;|o+ZAe)rX_Rrt z@M~%a!y-IobmAa(je7Lgdz$bmo?&g%xiA@zAMW-08LW;X^{IYq{9}r{?uU`xt%=Q{ zE9}V4RUj&@yaA>@wz#Sx52f&?;8G~>p`*QIf;oh?s(QpZKtAU2{m_&wJCkOs4BTkC z9jOm&H=S8*jpz!N-1dMPMeb+X@t2Fa#PR!5I8V6f@##Qv6N%2S)1VT z(*AICAmR~P)UrBlr0g@;GY> z5cPRRIXHKf$gy*iS#3GwxEc%3&RN9d=`Pew2Q5`FnoorEkT`o}2sOXHsmN@B$3Z0^ z?k%xYt=zi3iX1~591HH?mWBF1H+rA)V&wEUW4W$B02#7yA6q=8sFO1}%_y^QhWL#+ zny`tg%;B^A!I1!mnIxa@h2P;Cy7U8V)|#b$rS*x0v9PZpJ#yR>21G6*CT;H7Rnmtv zvB_=d6Ot6lU^1MDJag7a-ov5L=I4`5_kUh*-Q?lFq?g&b%k@hrk7-yNjusW>V@B*r zUZ;TmbjeR8@7nmqOjJg1pl-GP1I&)esRZ|DGJSISw6b9D7u|by_LB}v3`R1f;U+70J*kIsM}Ig>^3t3W`7>Ew}vOy9D=R)2GiL5 z7s9z^mcQa=58Ygh-joT{|ERW67pJO zENt`@H}dry(db40K4JQ1bGhX#9AtOOEoCc}=8f$-;9;AsIN)B4d42aYBpBi}{jLdj zQwr0Tf$$ucJvz+yNil&@?Mg#v&E23IC@efRN)0Qop|S-M0Ul*GH>U-`g7WN!))qVm zyrLmAa))z?%dCn2Tn9o<6O{$zOO-g8Ag#{Y!?t$HR0Db?RC2f&rR>p#Ll6ddd8X!p zlACzYa$otVV0Y-B$g!Eiby0IGi*-SisQnSCT0U(j<mt!D*CViU7{QwG;-Bg09&_wvq=Si!Dv2LL}aaY5EBUJzV zk3(PvUT}#46`|+-jyo;Mlh`{ur2;Up>8n?5o-oo^VzR`c_p1 za>g9&2k`vFBomXM(qb=)WoAESX;tcp3JD#0))+fc4%NQ23jbb#m;O`B8dRbE{{a9c z8u|XXldo%lwAevN@k}|#G~`0)8uD*AP&ZTv3l)v__&GcpC^)WT%+R2rXuE+gjk;2H zifbKx{LmCmjRa96F|7M-t5+I39`K~YV6RvnJc=O*v5%0`TgPrJsQdNvw@A($2CD6- zY$7#OA*{g_WVu4&{r!(I^q6ql_dVyasGNf)c5_IP;x$cvW`;EI7)Fyv$KgVX{=|eX zfg+0zw#SgHd3IdB)puiL7mf|1TDd%ubEBiY1ef4HoOqa7;O6awi~zsm!s zBp*9Ec`|hHX7u8IH^v?j!(5u5Vh3M^*|p5{9#et)#7tTU^gxTnc*h@ zxl&-?+&b@`)aN4SRB1Igdw0AVB>h-z6J|H)rL1lQ9zdh^hF_-k7Z@#w27_sncPvsk zo^Ma^Qu}EbM}TlYx#7q^T`9~+dZsAm%fQfb#CP~=iL2S>25{A!_TQji)<-XT3hUp@ zN5gg_POUPzSWaUieC<%f_L3{i&^Y2{^H`!G5Uydi`FC=+Cp@l1ZmG-Qn}gZl zpZ!?w)Out&VbS3BTo7JFdL;iF$s;^&L#P$Q*E+Zn06t;xVE>DY>IP2e<6>WjYT!Kb zC$7sTZ4kP7!3(0p2Jqtu&k@=yMa4j&L*bMYr|$Nw)E$rZ$b8T;TNW%NX{!Q(>oaVb zv#wM(hm&IAKpZf?=64=wR0sz4#KUayTPThGQkht87*9pk>Ved0X~2E&(8;K<*2&D) z31VYqSDXhNsSL>h(X4Lx`ISI#5SE~2rDQWM#U3|Q|!psB?NqM7#Zb8 zA{!7bw<$iNhdgh5bU0aRNcvi>cY9z=xH$A2%IdwRL!qDniCg5dUi}v z1_!CHZTWq<`BF|3D5&Hg>VLh{uQ+(jagfa$w#+pU7`z~N9XgDY-I;JO#3U{>#N4xN z@bmMF3Hetc9o?(rhZr1gx&3(}mxso;qAm9(zJd|6GZ%zLr|6Mp%F9%|vGCge2Ar~& zHR|c>hxiX5Pvs@uuXePcd77Dk5xOPn2fl1Hr~f{Txqw~YQ|5`*lnx7IKFbVs50&Op zzh<>_=ib3X;774}b_Bz-UJ~YmQc;dc`%uY)>66d^(OEpquv8Lp3X2sjOj$W7n}m%7 zf<1On9Ip&0(!|M+&9Ck=}lYU;M`TyKQHb9#lmf&`OtA)jY#Qe=bA_!7C%#g6|_Ko0O zp`cjAbyQn>&>z;mp$#g!4*%CB{ZZ1@*izaZrEkiTTCv{8k#r*W^Wg zre8{aoDCZUyG?DV`~?cZf2(HQ>e~i;>cr*$ttuUAf`KEux_jkT5SKQcdoFKZcTcvD z?DWyR#vCK?6{IZ?CdnxZanbh6n>9BH-V2= zhp_Kp1C3!vq{D%%3`dtc!BeTz>dPBrYePK-{Dn0sKfb1#Alvga%2{LXebK@R+-${D zo=MJ;%_&cWdQsNc%SJ*9A{*I#nB7n(u?ZfNuqz2y8S4RjJ~O{Dc{pomx3B z&!q-iEkB}Cs(wr{((r7n#{PRhtxs6N_qE%|pNMIt8|C;IoFBNIS#vW`jeOztl=D>t zG&a$<1@LfLvfS@JM2N3-B0P~aFV`!sQMN_u?D7mct1Bqf}-jrW8scB%rP#*uPX{CAf(GcC`&BrqPvU+@WQ26X6@- zKH5<})xh|V1q|ODQTZFAD2BBMr80o?%8Fxibas$LB(Qw*(yq?mE^q67B&1y7w_*EJbpyMs6I98%K&dexb}Wv& z+WOpIEL(-bQkJPf244Q*X; zJ`^!-C5UtdZoNPSN)|b;Hq6?E-vdT+x-491sq3=$%Ya_o2$bvXK)4?!F243 z8I8V_UWvzqJ=Koq=F$j`(p#ddFEqaGU(5yP?O%+#O|xyPW{8AH4Q}Oe(QT_`ug$N? zwKDvw&t$b@9N`?k)cyD~P_m(SP$-d0^6^x9dIiYxP_X@JVQ{!8Ba}l3XRiY-*i4{e z$ORf+ry9Op8bdfQAakc8l8B0V_!3y{{K2-ilWfMfmqIOh-C+2=z8%173UH0p*HwM_ zgA}A>=1pk(u37Iv?>vX*mE0J!duX^MLG@HU1dV==WQyTcE`9<>U>sb{Z6#ZDjBYX(S!87|Q7?oCiK{_dp%IPAPvT&lMX z-UAJlfeB6Z&{3Dc(ZgdZhh|f0VHXIiHn~oxz{}#_)PKtGqUTQM#{cMdLkLm0`^n6) zIf+@6hFyG2K{M4HVYKCl7sCbNXa7Wvd*_|z^(W6K5MN)Hyg;yA z_31LK$}46qJlCli`7WC7fcS$ry?*uq z=VQ)QFMPTrX_vPWu53XUPmrgs8b$d#waw$0 zddHNIpTbV_XSr12;LW2f{{t9Di|2^+a7(OPlsw_vMq#CSJW7lSE7bV+=bye+SOk>~ z1l_}7ujnqLQcnOz{@9A?isla|D+w;6VJ|6Ix1x&QJ=-N{mr2r!kG`+D@=7 zT2*Laq_EkBS{nNGels)PvY_GSHPuJZs)48m z> z;&VDOD(wMnsUcKmUaus)j!2Smc=IE^WeKjxBh?>(cC3P7Ac6w+h5O-nSh$)Ozk7wC z&w?58e}H`w4jNlU1sR0rz``_cI9LaUi^IKmgg%~e2G#k`L zEVf-qxaNBGb75j4^DxS8*;{M3)r5oueg0qBXY9{(P0VOY)nQGRI&Ncb^n%RaR&7id z#6pP<8T<&&>eL|2!#`lSC~BeHQ98iVaNN#qc)qK}4Ps;Vc}?^}fJiNhisa^to1zzuYU;bx6t1$M#W7Ya1k;hQ%L#r5Qtc+!Jtw#q z_(JOSU|JLM8^9|ZROI#I@gRhMSG&Yr=}MtI<{8)LUfXbzZFWIc2mlir2XHOk;p& z`4(O$|NAVjc|RU3vz8Wr+;z4(JF9(u%`4U$O?(5(88ed&kc2=@)qKA|${#3$Jtnx+ z_$3ho1Gv}pRCJO>Yir?!HK9_Os__1kWl^Podj=^ZmB#+Hg!2O8r{l+{4H78=eTx21 zi??^cW)t(&#?2>E?G2%z>8yD(U!P?a#KHt~fTW*CAkGEB1uoOyKp5XPEG#0EnkQC| z)SbJIh*qH!1{P2?^%2K4|3Vw!)1%frt)W>=E6!2j&F+aUkh%B?eA_9VdRHmypfF4H zI(y?u%7}9XK;LqyL_?{ka*#ohj2SKm0T= zn_JxFE?x-#)S*d3QuwN;+N-R|deH^)GS}W8CYnKZLPbj{IQrxkVY?hFTz(rl(I))T zvlsmTr0v4`)k&^mKC%B9qnbXpbAvbE>c%fs#Cj^StE}oc%jpKCkh4jElrj=j+Ed4h zK#oz`fI~ZO;t40wSxFe1UcEubrWyG)d~1HcIglue|383#W6lE4IoDKV;Vo$_vPU{b z#^qBG<(c=?bsHo>ZS~ie@VG;eOrL}Ma4;|bj-~C6QcAd_dKs>7{9fXSa5m}rq~OTW z57&K4J{-hlmf?bioN>cxp8gYYBq@~ob7)_^P=*kL_Ch!XJLwQ{z|oHpl6*zat%^@M ziADJ{O{5IvpEk`aUHn;vBq$4^-(|)7kB>2uNW&J|iSQ0elcK;Bd#gb|#C3@ufv_jd zY2*L`F~%$xf7duh`+qgCm;Vz(;#Z0+g1btw5KTVR+f{=@`D=1lwtD&CckV>V8Q2nJ zm+^xh?Hg<@z%dw}xR#{q*k{nGvib$GbS!$+d8kyc zY0ruVLH^LsXY+#R*sG2zXn$oovOj3H@>#0o9?Ohjz5U2OxDnrX-X0$=HH{1{w_E!0 zEO_0K_tP%ub=Yc2b9qr&r2Yu&y@=sJwFJ^)L2Kq} znPyC@e+L&@($OYT5T_>9HOoQZxGYHCdzQNDSA_~~&+|gY0(Z?WFY1J69axX?Eq%9# z2vF&x6V_k`ooNmnh-^Nv_dv{1#Db@=<(t>%o7JTG%{+iph*m!9kbVY7vkY z#lWbs(0;*y;imi-UbPGVq+IPv-KB`-30prmH^8>H&$#y{3Pw1;=FJOuRw+C#yXmIb2Y&0{|267a8_zl$aFypF z!Jhg{p-1{UySp4-oq31skm7ZY3b+g`S=$0yLwsM$?0(q9C5dtvgs9Ow4EB=9LnxVq zxDE4{7K=XOh9TO)Az@gzbIF(dr8s(=G|sKY2`0n;Tk!#UkXu-mqT%02=I9RT>K;wW zQq6w=f}NURymzjiT-Z-A?Z5s2k|iWvtcCvoZC5ME&5bNmFOLPuc9WZy9#yieJJWj> zN(Yz^poX&>E~hb!d!eDnSCKGWS9w_P0b(SqUzq9Nyj2-NK7+%^#<$x1k`Adw+!nz*p=_Ud@%e=nXFY)>5S$`m95!$Jo1AVzsip z4Pf5zuqf<^V|-^NT~6RT9m!h8ZC}M&>~G2LpI;+iFT}|pqf$~PE})F!y6hB=RH)17 zijWa&&Q*;GMX0>z#C^}emo1uJ(I`-qEH|VXxA?sO$xYk{$5O|!jM7$XIb}1{izd-` zrt~WCZ}-G-^U>AGP(8PNR=M2GMsL~v4f)tKdRHwxfJP3y)?I<25>1?H9r_O-xVU!6 zag?(#`h%6N6?9rM7`cN19DCupQ{57i5-{hF{8}eiaMFW)EwRaSwTj`wTkXwEo5LdDA13lmfjZDCx%Nsh}dHu;m3oA_q6oZRAw zid*vaOuIitaxc-eUasyaKWr>ZIxx8wMvIsX&zF;BJ-S^8+Hgs+l{~Z^EkDobHH=#I zLu54Mjb3p;M~fn8-jJ(=h8FWm6Un=E}9Nt%p_TDF;!-xyV4e7krE4|oaAgdO@8Gqmlz^5F2L8uciBW@^4nS8YISTD5Y$wo`26>82RTbbSdK(^)*+;AfYa&eA=Gi8%6xy>n*=* ziUbDzUC&_EHN?^Ki7X?-d|>oFdU}N7yBo>nO9D;Ay&_K(6=pd$Z>QFNq~T~zKX@{~ z>Zr8lS8ise78ulw4s>vcR+9+N;cw5{9Au;j`D?@v>%GO)j}0#^jQ!35X-e?E3{X`M zT!f2VtF&cx_1+*(y#O~mmPwbQf`vy;@ox5F?gZ_aRHb35JUxfIDtKliHFHgHRKv*? zujbJ`Ocg)fvm`0WrI9NXmxKRu0swPURM0}D0y+G)fS2GHupsYH%TP=L`zKf`avpRP z|5L3i7vqQ89vM{AFy{(WGuJ{kC$-W;JQtLC%;jkQbhnNPZ}=^TaU7DAmQ&^XmkL$T zz=y-p1M$gFtlFC>KUC<@RRluAJOLb@tafG0KlMnd#@u6$74cGoJle*lsVoKE2@&E} zQ$z`uBFw2(e%bQ0d2aeIhz7f`6LK826i8pU2hQ} z0K|<uXOBiF0)sOcQkGUzRWHkK$f@(6?s-Q1F%YvjOZp@^W>1Y%NqNnAcMD*fR6MpFUJT zT=vuTHV*4H;uK$wH&0ktFQPIaZYI*D`RXykOe|FTnm|kJEGWny`y6YWaz@{XolKQsn*hqULv5uD0**c%8ceSds=_Y0JZa zU4U~}nz%y{5Cdxo5%n8lss4~8wHN%SAvWZbmOshhRC%%HJ~msUAQW& zwUEztTOk!51mY=N;d$!<$(UMe)WED{(DpNr7+W*Bj?aUR*4~{9$*sL?4_F(8SUwbI zS<%U*CXqSdW%(zAt1o!#Qnw?#3mXrdC%#Ea%W~9@r;iKdvj0SuA1yN7ZT=TmgzL=m zQ=JAk+^z+qJ{XBlRK0Zr!|dv!61)S7oWjcw?W@U7JMK^FdjrJ*VgdF2F~Jcq>QT&$ z@3s>gw%NE2%}Jfn8TF$*__xtx7fD5L;NjB;Z`yXj0wXpwY*zMK7E7L>nR2&%H$do$ zkaGSu-Ta--V!!w3h={NKtaY^>wG>6+Rc?XWsW0)2S!K;jk52E1ONIg-Yxr{zzq{70 zwz#O-`XsjxcDMZ5!e}0!#Q&Dm=4$#?{LR zM=bo@f1u0fZTbZZEaxB`5Iw1Bmt3C(97YFNZdRGK=>lOFEPkZ#yxW50Hk9s&r(DL9 zd*|3W*`UQ?d>y^%?>akxb#Dum{X&`8zrI`~dOFkHuO{FW{7NvOXw7e%j%$(`NU`%+ z+Wd2JgL{WRZU-&?KH!2}QE6%DVRHym&fhAZD;pXAR|%Z19NfJYw0Y$lO>$j5%83r8 znAH~%#Wjqb=2T#`7o7)faTV7+v|*c7(W!eVL$GY&-6tJO5!(7!t2TAx= zaisx-#4$F1li&Qf>R5C*R3tzhC$54Yf;KPlH0C@QAnJ^Vhu68Lt_f@NlP>jTOG0D$ z+Bg`^KoPA~c^ViPmgJz6A~4b3v5v-mBDS#zhlStaZr2+Mwio%`sy2DS9--1b6Lb(#NpolExl}`5v>? zV*0%%o>NUb_1r4lyyMO99_jRLn{~dR@cR?2?8OD#KJsOrbbr?w9~Gv_Red8!VD8u2 zl6We0EW9Wbo3df`-@QBqKI`%jca<7vG>c*+hYrr8M8tb4lgx)RUj zU?)z^)A+5_wIq@+c=~1PjVN2F+&{-RF=A(sco3a(@lRpye2Ns_XD(I}{7VjIJJ1mM z59Oca-P^{kv@(o$8}EMlrgH@J?ofLzt(u}&cfawwFs=>N|9-tR_qRl*Sfz4S5(QyB=5 z#D-jJ9bVpe*Y4y(e7OKM{z3axmbR3a@6OT&gCSzccuQ+t?(yrd+9JDuLTR=zjK*ph zDht#@Nftfyw~%cGI~%mHcEiK3<%brL>+})B@3Oga!jP(OQ!XBC&hp0QSgYMlcf%a}a>s5*6V8+ZXk7VMx$F}fcmK=HbgC8_RB z3_av^oez&3`rq$#YRi&Z$N5+-4zO;QtfZ-sJ$-hO_Tf*V|Fm%hkI68u*l79m&WCjY z>Z(I3tq-rTJ(;qL!n~nCt@%^wp+zM-{2d7;anEP{`iok=O@UG~BI@XOn`hEwzvLHP z2c-iSl1qmQ6so;HuS6SHDIGq+6xQkmt+W10)Q@5*dMgu$Qp3PpvZP+SxS3cfbL|YY?=9$xJ*7};cjn2=XiyG`hK&*G(%*t}~Pb*WBgKf}1Kd)1BD?e(>*#c^~ z_;g<-zoH7t39wOTq-aqae0Rrdzhe``X2h37CVE}c?qS=QHE zW+c$4LKC2&i}z98rw_82#nwWYya#J!#^2}07fd5;+-lQ}r&;w0G3JY=8%m3;v!M3r zeuuo2HGk1}6a340bMcGw2?|=Pw>L&2>*Rr&LGOZj%mvl;$kiSES-65ba!d(kJRi8> zFSUoAPh8V|gAY6_Ei2LrVQaN{sztSC@~4UwuCUetvFh?W!ET4#CP$ zLH8_93%r@U_BMs4SANf*Zib?{t)l@3ler&wgZ_Ni=v9C99MkTT1Y5sJ?5`nw(9?|2 z^vDgxfL*#WdKzg7EJ8XpMflb8Y$&>22`{6#?Bb=dO43yrDX~CP?((o$Ia$2b(=r|W zk(GX5Yq37?8B^}8pCf56R>OkKQt6ENsOBSDjBBie^_6cu_*2od&cwHK9j|w4UnKPS zI&M5XoX@yU)Q2XWziNwuEk;|8Jrg0)dS-4p9Lf?SBH>B2=zYkFbP1OMxiM^o6k2Sw zilC5h9N@$!_B_)xjkK;!7XU4|&AL4uTd`JEae>%2Xkjj7;Z*gD@zWP5EViz;jJoqN zN-xYPII6INN9+DX@c48gHYn8e6e!zXr1&J|Dw*Xmw5ij~mi}1hz?`bXH&@@A{^RRe zTK^-CC`k$OH>jE0%7nXtu>%jD*1NaecYcw2T{K8nlO{>Rqi121@BxXG)B5<)(U|Lk zwE30$bf5SxV4H!HqWFbtg=Je}aUu(Aj@+RWdPQlMhd8V#?%h#)_}vzqE92VJ+8tpXjePg)hnvLTeNnOA3^VtdNt;p$#UB*Av8j zHK5BveV7jwfb&qo)71wDO*AMD_|zfgm(bDlButXuzwVHlLSdao5v~2&>{_3y^eM08 zC)B4e;Vw6Y9^CmXK3`dfo6TBt7H2iZC}(#C-dtC^knK4I3f6v3eQL`-qWach`$;zS zv^g5Udw_n|g&NFTNxPKmxhz)7(-M32xGJ?)zd3MSW(ecqSylSx-R3LUwgs(fe5Pj; zjkix5Q}T_yUb>%m96hkWwk{ZXnUeUJ?M-p1ZmX=F0Ow@QvTmdl zf5kIgU?@{(rGMX_{=-Can=9Fkmj2c|`zK!n@87qH{y<~#BeQcQqFX0OowPvqodB8j zx`aC|x6G;uG?Q~?AmghxxHLQ1NAZ4|+&I5XP^Wj@%ki&=)`h;T9dot%Fw&E{Vs_5m zRTfUp+A!aATl*c`tmwrdPdtZ}7mih+jzI|rsAq640>t?$cR8C1LXtclC;*u}Ly=;Js zSl;StP=~88`HjEy!(I@KLkCA=t&@RFs7$-x^Xz+#0GnIT2YQY~%Phq$y1|`1&R>P> zABTF#z1N$E9cT%8SlgaAeH83zyX*&+f@{}Vu3$ZX84FUI$IP&!0)dvjz%r& zqmiJbs&!&KS|84|2YRy*AY|$IW9ambY*9&5&wKsG^*aq$u0XvV7Gm$qWP4#(*ZY@m zknDS2N{efgy*r-*7L=V8>aVwgOr8E#oJGoz`x7O5lD8B3n>4os^{F8pC|y*&YIr;<%82C;2tB3eyb^DO9kI8ks2| zu84-2!s1S=q|+jtrN<5YO`B4tqS&WXlsPwCs`>z0T(w$s#E+GDy8U3foq}LC8A{YO zIeq6r-;~1;^)NE+l;U*zS(6~y+wcd2LFU1`rhl`;@MKbE?3#i!}-#MdqAe)X+we*^sBq5p~=+bW`=;SB3F`9xxI5{-d;2#__fq7baf z9+5*hO9}`tM`57xO~HAS6C9`(oA<%Bxo7}82I6H;pkF{mn!C?K2;8| z?0<_aKn6(xn#9NVnq;H~4P=6@6Hu}lC7SZDWb)|(xU!LaQoeH46;}x^?Mi`UeAd;1 zH2{yOggu09kC~{R$!0ZcJMX)p>St8GlZRH0?^SWUg)}tM4AZ{dqD?q^<~DaYk^PdE6avfRLq?1S-DzCVAF}{t^6c+=^R(9G1gVp2(e3^k(YO@Tlafkn<87hIU5lFZ_gMa_A;4*I zI>^kH|Ik)qU7!(OoS1GJ6gS`b_L!w#=JyB#@J4S#c^5dNe|SL@fncVq>KZaqwwCRD zJ?u{=PgJ?K%kcDz8rD=`Al2flCNrPjTriSjopLW_E5Jetn&J`y6u(NU^_>=zoEEz; z{`7h4lJW}Y8&2so&{KuT8h%S27l{t7XOx8e#r3)1hMHarJ>scpo>jiEZ$_Nc@6St) zU0HY4cb&<-ev+Q^v92gFRcxUbm|8Mh+_*B-E|{invZZUb#QDTlifyT&iE}%$(vnYQ zkXKp#jXR90dlploAXs><#dj<2!ZQY6h7ZstM%BYRNM~Hbp*z|iv9A8A0e#V})nq}o z6RqvC4$!EwU0!`dO}_|8-UoPivPAu080rZ;_?HkU@gVl&+NX*?u;ljjn_-Nj&KI*IGGp0n7}cBb`G;@9dD(TTDOqVsJg8XR2dP+5PaN2sX|9WWL~YT9v|+jK@Kh9Jn(k6yFX}BJISL)~vXM zZNvDyTZc^jHkSh9H@T7tftM{Li953DAK7k=>bS=2vex&M(|@aK!}bo{=+*FSYFbU_ z4|8gplD9+oQtAe=?j)ly&qd;WHG%PmiuS&Y-z=#B)!8plJ3x*z%0+eN3YJ$7Oi%CBS}fVKOsM+P zA4FxkD?7(|46nj!yM94$nLgfUd3NFt5VY-A&)c)N@A@uLRMzj@4*{AIHLMfwijY`H zaIA|-hOq@#9`Ua3$baqFN@2PlYc+XZGe;yYm0WX|i{L)EO&w~%jVEC-RQI^+3eJzUpcXt5WZG2=C9G9FL1?SNOudHBI|G*FV(U+r zf2V8x&Ei=KHhAKL^=Hj|Ix68P{NyO@`@6(ESk;G2W2wvdm;FVke6oN}mmj6Ns#gVc zcdZ4UxljKz8p zgKW~gfw9m172I=`^IuaO%DUIaF9HlZoD-E(9SG~*=;AQ`1>i7ugPh_0tmKDSIBMQxy z8C6A6M_m)~q@#=wHumBz^blm6QUnmH5eA@BmWX*y?E70{J&> zCWyP%s^$-ledf@k_Qfy<%&oqr*vv1@{!B*TM%Uy6A!kkIu~@rFrze%whhC=Edju8q zPwK%Btu#v5Fe39srCt|eBjpwJ%B#2+Z4}OEBI|z{QBoY9HdYtZ=7JrS%H9AgmWZYk z>Mt`7q+CDGD+;&z*7xzf@h@UVI*jP!bxEwk3$Xx^HZ@NQuP3q2)h~0f$hI%=v+Kur z@qNM9@q5pIM6iD&ZDE@Zi@p_2r}=iR@hCL0#r-n&XBMe`Smh%6=}+L)$8K$gd7?yI z;x12%;`i0PX=m1M2AP3xpRc!7ND@ea{s6n&0>54hUXf0X5AVn;&{pEbk4%KL#acZ0 z68B>R;|~U z_mvX{_M=kM*w(gPm9gKf*9s%>VoU>N1G)mAJn?|YdNvN5D`u{~$B+A+I)2(}mR8;h z+S$14k+W$1b2tmCnKd{AU@e^g3`w=gnDuhy_p{&rmWOI&^fHcvwUB9~-2SMcma2yA z)S|EEPmteN1_WaHNiH=h7M;&@KE^Hd7qGv$<*1{*I`MedZJNqPwfw%qiGk~}&& z@nJRNZ?dt$16Z{IxUNe7W%BrMi7KO4K>!;p(ZjwObhZ*FP#Mjl2VeAW!ag-yw=57q z)S0Z#EiOi>B^FMdDmJb)vI~EIyj^!d8dsUf+WYTbL+%|*)Np)6VefZ25<0mNh0YDE zpxVIqwF-uIBR4&XUG{m}3))S$jP8H&Q!+H33U8(d{=I$qHN^4VAGqdPd<27~^Z?bz z7gpC={)_9R7;R`FiNd7jx;-sRGich378YqqTULwQ{twXHlyd@Z{(=n(et&nGqmSq= zG9~lDrK>|O1-`J4x6$(5Lp*8bcPcz(*=~ahw!B3B;Wz?v&bcv`p2>oYeNy$katiWZ zB*KTn#dVa2i?@w)Z9*(M1P^#XKG2>TE(;Fl({lI@2r?O(t0^dp$Z(}?X>Z(^Prwf7 zm{jrdi-8|%0CmcHS2gD)XOYzXTF5drN_0pisFD~f$* zk}dYwR9ZqXsR0ZByI!@F8fdWkJcZ6B=Gb=ufe=j*PF|rfHuSy{*421Qdxg z`x$=%@o3l2Yy&xO^{S;j#FI{U4EDz@n2Hc4FDo7oT332YEq~MS@MG0>N%Q^8P9XVj zdzD7ZY}M;>EE+%c`J4LKnu3TSJ~>1N*fjm}+JrU)`YQA88JS*0Awe0U=P_HA1`?bM zPIOCu>6|KzzE`ZB9V<&`uZ`%Hr)*~T3k?yp1`*mIr2&|Ga#aXGcT? z^>~-dZ~cWlrfPWB%H6u4i?>Q^>z=K!+c-_qW>}a}?hDplRQCo(7R=e|Xln~@^{sxt zWBR-s|1aV#V{!PoVoWs)+3$5pMdK8PuvLEdE6vFoy_9&yt710NXQBb@uU3Dw=e-Vw zk>i8j9=pD9%InM~+xD8?Q@~C*w9&Jp$rZ#GQMPPR=;}+DttZp!i}ni2u>Yx zo``3mgw=dB{ckOG!$x-OO^{qq5>p4_me0K#G}&(c1u-E#5`_f8FWTafn! zm+f4Fk*aK(qV;E4Hqy`ej$3<=bWkl`?#7tll9(;j;!o8y<#JQKC!Js9(cgwTO~-4n z+Sv(+N%|4lPPJ)S3HG~Qg|0q4I`8kU{9z50_Wqxnd{9=0Rf-XaBk?DZ?vs^bS8wAF zR6p9Bn>tU7x8si01Q6DdD;oCN#3rJT3+bcdbiE)yho8Gi<#jQ!_PPY%O z-E3(%I^O%f(pWzzeD5_jg7%kCkrQgny)hD7ZG`pDxi`Ml(RrH;EqL!chW-x6Y9_hg zxk{4dOho%QF#u*3t!w~RHWu|4N+#A_H^x&ci?nZ_0_+jq>Gd5h$LL!3 zdEC<*bz_J>*Zsm!h-u3K>p!NFq0k^BZSMJSux_Ld3I)#)Nh$a0!#BKKcq(tYXpo5I;{(chU4%yq*7(@wuK0cj_i43*t%oc)$9FEpaE zJUZU`)TNaSZ)}bnI(#`)e02$p*i?4irWV20k@)R#FHYXgr z?Yz_Kb)Ba8Jb6GNbX~^cuI0la+7MC+`*Cb%FPI?RVGiAsJE<$vpADKsm2HlN;g z6F5|Wjx=tu%vNz0tlm9l)Q(#^2+{x9mGpRxwVm^+Z_!VIsRfJ1`}Dc;JW}#?16#G9 zk&+K8_Aytx6BFPl2nvUEos)Zsyb2HUn)0cja3vUeChJ!biv0$uD1$o5E#No<$`g=eZ}y1hL2 z*Fk)(=$Ebh(Cntpsm{>gS}v0_dW{aOGPtv3nwQ-1$Yg;?fp{|Am^QH@_UgVCoj^&B z7@|49wH<#?_USv3l5CdUr31(AhKBJB#en;@UgX0nTE-<%s>QIJ2d`X(MM`-) zYeNLAW~+#fss&FZc{{}oyko#Jo)7sNF3*4p5p%X}+Ew--A63*3^OzZ0eJfC&9Prtb z+O0Quu5}#`>^=9Vy~cLyIuBr&&W$pgWvT_EwnhFQ0J=a$zpSf)qXR9v0}|?KRqh4a zyk-`zkBMn6wOIm1?(QMGT~H7WzN1%wfk0^9VZ89S4|$Q*^ZhNx;NHSqYIGk+!u0&~jxv zmeHnS;Yh(ut3Q$gf!P+~10i@xVGSRH7krVl%GE8@R+lVTy+kJH-g1}L{Ng1#;(2p2 z#1i>n&g3Z74a+I}f;{KUR9W>X!kBL4 zk(&$5phW=FiJYg1VwXI^rt>eh9xgr8Dr{K<(+9oA!ILEbTH`;6Qhvj2?suDc#He;S z4g@QyZ~>mCV~EBEdYGcp{1(A)`4vWS0|+hsqgrgsAC6#;i;YH=xZHKFlRDNv_6HEd z8E^$xxW58kAw{T>#~GKA7nxzUHiMkONyQ&{{>5ml?f?vqWBp6_aIT+^5XPn@bquE# zk#V?&*iB`4yMp1eiD14X4JXtkxPgY5X$wxJ7@PMShI2T1Vu4D=;MumN0mR!a)AKS2 z3^o^62n6Q2iC5+}D;SSTF)akm!uet~@{73E`;=n+%SF9S?a@+(jl?SJGP(}82!+_d zowA#(+c6Z%O_t?G-D)lK8Z+Ax`2YZQY+8n(0=0f*Xxf7Q-rnKk>ABk!Wnznm@8NDN~(HT6`C*Wb$3`^DCMt&n*STZVD zm958mg?NSx!M$OE-xVlpGX{4&u@T%b-f8AfpBXo zf)t^0{@I1iU${$Sol1sJxDK%Z0sTvWxl&>P))|Ucrbkh4Fb$RWFskMlzvL5b#t7jP z5tJ=+?pI;Y?m3Ya!3(*=+*{;%+)UbnMl!8MW#kW-?A@JVVd1bb+^rq+(oinG<(aoUN?VCz-eUt^iPBsF zoao})dmr{Rqm7Ph*hNFOF`1aGF0`4=V<{QcsF$xYyfZQc1{Kt`o8ejfyWODT%8FQZH+_%)VLpX;) zT(oU#5zFN>a^^nIP~5Dpc3e&sm{>f?hpdWvd<8T56x$}h6;m)fWg?=@iJ0l;I7K`bp)#N+{hRv30DcP z`;#3)%pjZTBA+dV*l~?q4Zdj_&ovcF2I#@^v4yEd8D@h7Ij}+d${l0k$*-!997fV$ zHSoau75@PB7!5W!-9{t~Q{XVzw6U0Mbjm=y8I+X`4od_u#kCzgX9+051Y0~e=2>S1 zaI=Yr*5H%F2RPJPCLW^)OdgmsQqE0G!27vQ-!Vf*3(TN$yOe~D93e(?8UvJ#dt#F1 zB?HAr34J*uQ2;nw!R{h5t1;1KTkudnm~_plm_W^30WGL0hM7&@`7j{4o9VVvuxO3gX#lO@QmlBoK8k&t7<{;h6fMD+=%Zx?Yh`~bhEu)l3OJ7M?#kq^Zu8Dx$ z7IFh8!a9H@mUQtrS7P+U(4&yO9YG08(CF%M0BLl;vgK_QO8bvF`bVVp_<#`;WRlz$ z#NJ{7{6T_%Dogef%o4>9)W6Jnjk_)G;3g?wr9X29)(+)5guSH$!GFn0djhaPXTc>& z0HH$ju9p#*(c_DT8Q5w7t!4u?mjSM!-3ctKV&GUS!SF7%iE)r4RH1T%Y-h~1OqbgV zwR2Jy-X&`35@bf_Br?oyVU2yDwQEFv40B+c1AGa~VX9x*WCR<>{eU(7)O!e|Q@ZBg zmQdub(N*y+a^0AYDuT8C8A?IR{UP8B4f~ai<)+|(uagrNmlXtS<_$95b1X%lEUM|m z;dXM$>kV$;Q+br_)<{;)Z}S@zznF=a6EdtwS0hiEejUoC^W3(3jn31|M$g3TFqWbT zv2#$d&*2SIa-~N|>g-oEsskqvJf(pgCC7LF0I<=G4l&GfLpiLw_hL+XpaK%}QT!OGJmja*28ZGFw3C^3l|56-L!oeM?S=r417i4f9uQB|Id! zwsb}X#- zH&ztCS%l-@_z^N-mWkE4tW7ozIPw1gq$A2SpO9no4l0H1hwddbxg_ot@ygdQQA$ua znE+Ptg*S(*f01r0_WuAU4ZLi9!ohPy{-A}76>n4IYG7xG*0%ghm}{R2q zGL=o8ZdyoIvQQd@M6#HB?4?4`kV;Bi7J_5*jh)Dgx3|$YxQvBh^21^^0IJCZQsQfByv3zit{LM+t=x6aN4aq?M-s)l;u~fvwTV;b^#_c_ zw_mv1nSUFde98-8-^!|B_HcV3@2MD2t#H9BfHL|ChuXn);-*`}{{RU=Qu=)$5mt^3 z1X&u+TyjBnEZI)~0Oke24TDt)`n%dzKMbQ0L7X@CP@KT6n^|X(9FMrJmR&uPqm30e z!v@tz<*Z(+1tbJIhe%PhFsbxMJqpxWZENl~>UBG6he~ZBM@nzQ1F%jO!^3yZbSxPW=QJbBbg=Hg`Qmf)2MH=G<} zGu^B}mIKQZst(L9oZv?i3gv67m-#My$}_Iv66j^jV-YxLKI14D5+TaU<~BkYR^L%* zTa=e9WY5DMuuLUFVxh26RZ`R$YngVLJL?Fp)k3EIeIIcxcXVA=p~?YhRZ*YAaIgeU z0rdhPj#&IadB7L4y!e3g!BAOgD8Rge^*c=UF&3;<7P^gswT+G3N(V9Co4rokfkJgF zH_S@JYlrt5HZQrKxa6!6vRPurcPz>D>Y`!B*cS27m}aNej}*|rd(USg%vKdQ*PsA-9d5>7ZI!K0CY3zwGuRl?dh(nYmuDY9QW^8YObcc&K&T8n39W0kDN}aabIm8Y1Ex=7#P0lxrgEgDxPl%+i#= zxJdE2qemrk;sL{cwjpx)%Z%I(&XJ^zPe`qX5N?{pI;3Wi5yr(}fEBjeMdiP+vRJ{1 zvxh0}St8WOhF!HG-w;JF%%Kw}@n6UnyLgu`J|@Yr`jun@rXquFs-N6vTqxdi@XOW& zya|QsNr>E9SRRx9e&E8$+9(5~-9tbvKbDag7TeN8)kKyLndJJOWz$Bb_E)QvH+YsN zSw$`RB8gQ@xK-3MLa5+Toy)7FP1*qtD>1i8MYAcfbp`gn*^R&+TBwX#+FMPhO3>yLZIQ=*LHql zq@Woqxj~Gii`N^OO3uC^)Ut+y(447H0*Ay@aJ%y;&)_VzWbS00o;3@yY9kfYDwKhe z8hGYd0T#CEzp~pw3sy5bHr!A0*#kyIrEEJ-k2sVLhEdKx| zBMHJV0C41kkPc&75HHC803p^t3qM3Jt#)3b+4oV-#ZxE!+~SChV0O7 z=2bOUIgrPE#8@7NgWE5gRUbxj{w2H{VYd-z`{IN53MKn!KaiPBMo~rMPl&*#?QmM@ zMZCf4CibP^<;`LqqK*zGNgfIIW% zUfVBE;vv%O%G3@RAr#u;Q)=Tk3gckt{{Vqy4c$eWYw;`h7k;7@Xn04dL4{vVk0(nTcFCuBz^aR%bDs^DRgB;Ji9zfL{UmHnRhjE^b+E{7 zq337RJCKHI`Y+7zE;D z@kM+_mS9m&<^npG!56t(!@PxnaE((h!o^{~aRVv?*?5g^Yz+2CS&zdou;%77DPd?E zm%U3&2?7XU3R`@}b-33)buIt^CPDrY(3XKuy~b4Q)PWYn?-Kgy>L8kCDrv|60CG~{ zh?hN!(>fGBo?&#ZIwfZ?OjclpC>%skHGdWU$bGri<(tvw4BohvvZz1kvs^xUe83Jd zNw}pwOJp7q{{X)dy?-IEh%rrCWAhYbPm8HtlQ1F{cK}pjl^R*b_aTBf9AgsWVin6V1k_9 z977wY`z+*#7r4Q?D|O5#k<$rBh-Zyp_*gQ#Hw|BZH*;l-*4oB(|clcBRHxCE!+Y3CALNzTi#*` zhOtJMt{HVvV=HD=2xe3@qHJP^E+^q)IOZ57(?_{Y4W1=WOAw1(xOjdh`5(ax6PVFF z8)bVQaKZ8Z#SplKrntJJK(zN{{RtYE{x&)OdD#y5K1le>N*1&-u%YJ9aA;omxyp+dP<)Ss*&TS7UiqS12|T3 zH}cLU*Fd&zt6viMSdDr7VEJXieum!$1M@EBHVy})Q3GXMTph5$7o119)EHrn74a{C z+lg0%3r{ctZ3M7U3gm7Ol&#X>+e*4FfDEjyg%ju4E(#r%9iMOM5n~*;)vADa8d3@v z7h3s-VhOeFmn~~?3s(?Ify%5RaGsR#Z}2?KH_{S{I4-|zBHdhGk3!KJwLry?N|B0% ztJ9&xEwZm};e-atF#^fusQVx>4UV_0kq}h_{D=~?ZtO&sPmW@3syqdL=Vwheifk6E zRRb!z-z>5N)-EGM#*>KrqL2KTLN`z9IDfTac0iOH3@1fY_((g25$2r>TZXuB^#=9% z5r01GTUCG@dVw>WOD9AZ%1v;f!v6r_DtIQnnWAz&h8t0*6mjv~a4ZROk-ZdqMSy`p z;=D>719$C~n;(0HJH%7lyu?(?it_{`*u-56z#O?U!z?l$!nv`H*@#Vg^SMcOwYg(- z8?%UJ5tYw2>nxOyC(ffGU_Pp6j9<9 z<4$6^H{xi1rHI5!8Otccs198mM3_<80OX!r%a>L@pr$NlYae$RbF4sYoE6H!)4~w6 zE4gld3Oq^}tVA4;Sz|tO#y1#v@+r(qMg%E(9w3DwjI!7hAyM_S_>}CdiASSEWM_fE z$|}%YiLd9FX`0xHV9+#`aVfNCn~NEO+FKR48Xz3e8;>e!`Hp~iL2t$;7;amrijw$$ zV!J4Fm+BO=4g`kSMTWjFF|wAwt& zn|!F1;lw;C-^&mH?=Tl0XQ+8w5DYOuV>L3DlNXbScQ4~a9W<#=LQp6=uhb`24AaU~ z#2vGy2VN|#F#iC_M^sJK-F8da_{0mwoe+^1TZX%K_&A2A4Qx@v45eL_uS`jF6kvn z9O!0$8)A~Q!)au{Z#-RM0`29vq+q==`La;lFkfUAlf^)2gLVSpoB^bZip65@nb18A zE&;mdYzwUTM7s^V1&KCeM_QWJ@Szst;ud?UQ&8|fGaR!SKFnMNVZ$m$D{g=+`UQYY zEG;AB3G*&q{f#hvbPgDM&Y5s}HWUuLzPeH@2x6H=t|@s0%9P+YbYo`wtp z3p1tNuc$VuyDFpXTi}?poou_c$AiWq_EfO4oO+iTpkC_brVD|p2`RZ(!0rfAn3nA4 z;y78eK6^#8E7gs?#wIJ`zw{I7BQPL5G z>61}1O7m=WcLE8W#O z0GMzW$kz}&3`-KfFxM!2Ow>%B&8?ketKzWuhFA}B-2Ibp*Q0)pUj!=wqUW|1`AR?XLg`bJ0 zis2#x*P<3gn|Vbz!>WLk3&6i|=A(d&d9uT%7!$4|l2=Y+6i#m3LR}7s%s5S(KBfa8 z$Wj6{XHV?07aGYQxSHAR5bz?nL{i>Cvjr&&8*GA#18s9I7=T$g1?5~+Qc$xiqIppS-1lZO*w+YCuCqC zOn4kau}Wf($}2|rFE;lGctL~xhXcTDKHbY*iu?V-ytSz3I7~WHHSP|VUYS9rc(g$( zUFE2w1i4c0KB6r?!4j26Y!Hf~Xe|89*OVH*35l`eFbz!CCDGsGLjKf(wRjA(j?`rM z=zRS~Vj56iSAg(T+a47N5C9IxWm836^AU_Il=!m;I|CP(N({1%%WWlwCF-_bg5q2U zR#PsQ4x#9R0g8E^R+F2Uw|M!N=ntEIh?>V|B!6%g6>6=2afWjj;7dCg%VJ$voYJ4D z0NJlrRnS$cupKW59QV~j11ryP4HG#Fsa#u}!YWuRr!Uk@g?71pWhR)-uzz4meh$a# zUjX0%^$htG1OvO4MmkP~&(}mjl@1^kcw$&1>9f`3rBk+@N{Rq@L)N6f9wi~M4Ar@Q zHyW|PIw+3H-i8L3vo>YSOK4d(E10eWBs`7}sFYN;8{K_E=oL+^!!C*(SwSdV4-ff& zQtOa3DQOe&KHvj&+$i)?%y9!fQ6M{chSmKSY-W33q$Dhgydf2AIdaD)i}K3gs<~B0 zghcLDg{1t>gW!$iRF^)rlsRy)Gf8H7%P)R5Z}K? z#92gw!)BUqOi@U?#qIqVjg$k(KuSIW;3~I(U~ftsR2;zMs#khuO%%W{vT2yjh(Ow6 z)ETcbcx4t9mLkk-@fe2Hlp!Hd@bL`PYXdSt56e|ZWx~^FTn1NA)>tc?;b3_6Kmu3F zP)jM0*JD#2GBBllK%$25({V)s>=FRT^3|ce2b)BNe%nM92OwbfcB;lZ6l=rtEl?8iTZQ{{Yy44qkO0zud<-gWac!;ZOy#WyY++*?%%sOBhVQ$@+R z`+D}`I+b@pUN}7$?gEivj$f6_6Dcnlt|gY-XvWeRgXyc`QG`T!cj^e)#>SzPNaVsY z?RiL=u())D!sbDT^Ia%_l=u|Cq$5CBr!ZiImLk6}P{26ZTcj3ISMfQ~!GF?II1nb# zxK>e_taEVA>gR+7hARn}FHFtyXLR7MAck}3l;Zk%jvIS19^h^SwM98<8 z1Y3AmKfwuR6&2NK@e#Dz8{zO1TF4QX5zA_*_NdeZAgG*FxR)A+=k>ps!_dbU=ki6p zE!tY%AJki;Of;3m8b>wlF3KdtyzjP}EX1cA%eDhcm*RiXBcf(KLaz^~8FRLogpV~v z%0~CyLQ!5z5ikbpaA`0Z)P2mkUj*0^xT%LWW)FM^mJd!1D|~GF`{<`!Sik1;wL7i)=n>E?q}bKQ}lO^kzRSdA%lp zCW)t_6t|SVKlv`OUhz{%iJW2)e9Q&0cEkX2n5>1W3*uCPTYMlCBYqxYWuIFr(G;uG z%|;FD+W!EVs?DuP#Pn06nz%nN%(3o}^78Hc8G_V-!e@XuG+b3w2)oB_tz%vjsX?;c zy-E?V)mqGV^b9JjskMkkQ~~ZQ8fm}*6mrG0@ItD9;n_zJgO&{~VQY~}9Ebh*f`BdZ zro{{Z}kClk1# zQ5>xi#+19a1XLFNL<&w#)qY~On_ySwD1?d^**~*`Z&8haAE5Taw1p$L+swp^dZOi( zX{aLVuNRgnZMTLQmq#!5Qlp+Izrz$Mk6-MFZ3h+~re}h1pV*J8?%_8rF`AA;E0DQ} z#AhoSpST!@&aBVoKSU+1Z@!`7fyNn+GC0UV*2v{4h$cSa?i+8pWT{+a5nZn`@Ewi! z?-GuV?1A-|k4l&b>gqEsoi{Rv-e_gdK@E$Dtz#{~vg2Y!se+IKOvNqKneD`A3?`8V zA)J`F2Ponr06cc_EKue-8R#$J%&tulZJyJ7aAFMIt8P4FsaGAvhnyu!*5Oo5ZuY66 z;KZ!}&lPA;0+!z~##P>8k+%$u54JU=;i!Gpz=rfiN6jCZsAhPyTz%A}MYD_jhEX}I zUhZG&I+Z%8%K!^!o=DxODS2MuewEI@;S8C3@5ESCX9`)VI_QGke8F8x%cW75!zq~A z=(<5Gehi#b(;Cj`6~Slj1`M-8wcviDQ*2Ll3IN;GI>1y7LiqC+ba21qSgO3alp?CR znBjfgMU4ipc|rGZLRoh|9k0bg==cSmq3Lkw1_D%EA^!jfx4pXiCE>j+f@*^^B87|5 z%P@V@^Z+9GPhtu1ae7R+Lbf(qNY zqzeSDYr`8ib6jDKD+JYA<{;1+!TOh=Y>F*cAuUhFW%LItpz{uM>)22SDX*AOPBf6U zbYC3X)Jrz2mF0j6dL1)x7;3)h`4ZsuF%VNGRY6=e2#wb{2 zM4>|PBw{bh(vmH{!shsuZuPNm(y!(x3Et@TKZIpta8mJfn=rH@`2ifBr~zAguGRLH z!z$b@?6PaefUD9p{w6S{v|+%E5QaNNus&;Y@6rX#eO+zb&k5z}5V9Oma-z+YnUrL) zZ~RoNt%`EY@|N<$b}qY?_J+%VmWCg0ZY2O!AE>`V5yBXl;k$8f+^868>gqWhccQ-K z;a+3>iDg^Q5n!UXxN)$nq5FajFxaQO1|{j%uph5bs)|yvi;~W*Ym8{WgqfmP6G)H& zbwoa-VS&z$aTZpi#qqSbLN$3xs1f3LNRrz1ZGPprm!zqm#a18@l+bgTT@?z+Qi9XvN;S`@AjiHXRj0d@ zvTNd6Y_q5$gV|udpxQYqVZ5Ia@sM_vV%|C-Aft;cv5z57i;K@RZDE>0xS}5a04^8I z2?T2UAv=&BZ9fJ5kN^h|%C~OjR5v1ou=2@MbgOg_v|9MY!VKOBkwxs5)FxN_L^6$x zjeW()N67mjcCxfj+`Q@{8I08=&BSqaV>3jw5V=@8R4(|aMw?a_!YgN}HY^(p`uigM zHLyP;^!kBugAOiQkh9hH#*-4(ADB5Md_fh=%%m-hyv(x@H~pO}b) zP4++1X9j>a~ zBP%FUoJTK@vaE<6cLadBJm8CMh0s!r1a~}2MVUFKZynZ55rSt4%&;D_4Op)UQ!L$% z;%yxlp?+YKXyj{&v*Lz9P!UI?P!wzGGMBzq9JYrbKap^8tfL^f)RsNUkjF-a-TL5`&?lAntu{{RaPeLNifaRO^d;4R|i+l(G^{@i>_fY|0H zQdDaVza#Dqo%0n1t!O)7(hEN7*T4kS9D0Jq6lK0V!j7YKvk#H^fRMDNw1U25ivxx# zJEb5Dvc1Z&B4wB;)xD0VZ1ol}_$3rz{7gUw1xSXLm}r%8EXTz+2R6T`{{ToLod(dq zXhAb!_*qo@`In@ywb{_To@2~(f!Yqgm@|n`DEHiGN4avN2H!B8sr*1l!{GxvmOjP? z3k%5>{>0rP)haj{!-l1JWbNI#+XyBBL_1suY!=@k9qUo%OhT*( zi=Cn6Hz{6cOhrU~VsB1{;?Ep%`@hsK6m^Q;Kna8h4i;oxdT!u|tE@o|72HrVa^F(R z?on4QnY5Q}<6BV}DF+O6pGC^Us4OsGk<%jVfb64q<_2$LNdQZHqqfo52K}>NeLPBs&t+K(H|WViAQ-7Ws== zXu2g#G*H;8&)mXt*>V{awRwAsb~O$e-b~PaFzVh7b>l8h{J~X~&Q}N5>S4t#?y51> zjEgZq46^=Icc;t#OfxzK1gNC}s(^8zwcw3Hi0G6NOkQuqqP*Z&_+{<;B#_A;hqV-*J3_ z>6F9^;pAVF;Ep(3lDx~7(J&s%+@{SzNH(6TOVbrumZVZU7>e$`tN~w!2Ge0B`UBJx z!qAUIF>TvrB+;B*ZDq&8-xCgj00#%+7?oPhC?F1t!YU%tZ7F^w+!qzkxRbZ$L^};t zta*~&a~iJ9Y33|k8cq!#*)hU(gJ40tQA2RBMajEglbm}>A4<#UK9_?^c9!PH1diss4 zubE4M0Jg>Nh#~+ftgp<*KFOI*b%>|1Qto%KIlpA8VC`kF{G@O%*r{|Ggu39MttekW z54mgtp*PUA8v>P|T5~rR&Oa~2nRURFer&J1mBbWJtF#d%==(9_4>gc3lge@U4nFV0fyrg{PR!FvGnS zXaz6KMx*q?%$I|tTNMTU$W0x01S&yIa~+M=YUTK#9H9>=Hw!JJk&k5onspV1D{QH$ zNYGvgdo)-j#T2VuD>D)j*fhq-?0_#24#pLliePlUnyyNfoRs7q_cB7L?9+GRWamME zj|qdCbrfuQ5*ol}s_t^z)$s;OF1cY6FaWmcg-sI-T#fd8VrL?~#2bOr6a~6-d`u}; zuuRdT*Ww^4PGPa8vyxnAcPNFL8RD-|%{ucGl&J3Q4kXo^^kUYOcXlV|3={+qz5xCF z;7e0VUq0Th;vjidO7@rego<#o_i8}K_Ax&X@?7`87CtGNNKuI{ZsPJo3oh7xnk^Wp z)eitnV25@Ru`eQ0HY$TaqbO7dD`EzZT?w>TPW4T}b!~R3iu(%S3dPlKQ%ntnwPvv2 z4YTBU==qm5`!&=uxu~=}Ru;O{bu?By$n+2iSONp(jj`gQ&vd|mcU(lQV!)-CT2=8; z@ubsOh%;sH#18T76)J|*y8t;Z=*$;@7y-6g%C;+F-r(QxVdi&&Zoc5RKY zyMf17|0=eo2XXpUY%=mR>Q;XUht{ zV>O15@(nQxTIfn@amgJ@9kSGIr>XQE#T3>1l|uLmij>1F#mhU4ul`i4V6+O4oa8+- z{{RxzQCn%{?bgPg<_btO!M*I%EFYiNu(6?4eQO{(xem_%ujR5|hq@{nQx<5+^t zf+q-3L(e}l)7ZDid-oK%knv3)K%UTMRgWA-6yHSyAQ@hX+bpAE^n0r&6dhzZ9S=on z48wTVR*%CKPP}Za!3|dMLyJIY;HX3ap5-GDXR!2OW%i}+iUQTRsc@mrKA^~-vG|Q4 zeK7n);FHM!)Hym!SqtZgfB$W#n(J+hKn8_X62Af=xI(#4m=4KADA8>c7mK*2m05=B?%evg_Axp= zdJRRz1lLXjC^4V}y}(C$2MV;g#s+Ruwu4nz9A+8zs}|4P6ChdxP)bv0^$DdzEwN-! z^Kg{i>xGl0FDQ!$79&YeZnbtz0>ijfz1Vd!fkXqcUCTp3zGGEhdW{)e<}}>AIk-#( zi!mIzEV9SktO#Je9)z~{)jd4m7lg%U~-tU`; z@~dt=ohF1}BfDFG<0-)##!YZieOKvI{yIRB~&QfIJB7_ z9X=VWC-EAZ?<7;50{$cbAx9HNd$boNFOpBNud1wH&|s4$-V$3mbKq!-}c=(EiGy z+60fAi8*1|y+!a9_JfJQQv_KR0_u&N!lY#&3Q{Lk2LxH9}(PA{H36USO2kDzN~7A;YOirCSGc1aZL4;u>LmW|CU%Cn;4B zf&&y7KBHkZKxWFBQ%m`jFY#1_e6#KFXN7k~U`T*!_XJ3=8<)1G!>%@KNP zSIAMxNX>D*(>617x_G}AE%e%;Th=j}scw4;r~d$qGQN{Rq=Uig6ptodi-=-{G3h@M z2zHu{QKt_uBX@bPQjW!0w6;v+wcW=WaNP=r;?!x5Q0H;*Z1XR1KOZ3+xN8)pxfLIPKoL*oMVz{%I$c*x44XC%A5Dvm^b16o`!KlcD z;O1SzS#(0mT*;-Pb^_5=_?r$9T>*moMgIU-U)fO+e2gFhFHIid#2PfNCe=nDm4g?= z+ojNuqir~h8o6nxFvM!X3s{wn{{ZuutN#F;#*(gKK#9YL$bx!{s9fzV9|(!=Ajm8e zrXq@$)H%rTgtHCd7ofbS!w4$6$@^_&GS7N9@)0p3Jid8EmO{PKzRpRM(!0#Nv8v(* zuCPsL&vh3@wmsi~v1xDJI7ggs{p^2jM+7B$Z z+CbN$x`UgL(@#|^3Q(|KPLpD4Tw%wo9g8yLnbHNCFNjnyHd@x8VqYV33yu}1H`43k zH$(IoCM4D`A2e07gta0cf;-oRH-@|U}IObMj9}~R3GS< ziml8-!Awq_!54@z<|Px4{%C*kYAm=7nLI-gfwVs)vmXfcj8rq`zNM)h6%UD|Y=G*q zEPw37)O}1u`uKmzbBd2iE(KyGoVb=`n43VOd?lzb9VZfkt_?(r5cUS~xICv*^-CBO z+^QoAaaX7_4=5B4%$Q)B34`SUoNk*aY4Jp?32y^$@JPgpt2Y^b5A1%zbf`4Kvr>hC zvc{L(RdO7{0C-Q-Ae6;eHM8xSA#P^vOu%ZT1mu4XU&1HM67*iBa_>JdttZ^1SrYAt z1x`^PaAyHtMi2YMR@NNd+|qMa=A$)cEw+y>a0|dnlr-@fN}*cG zVql_u!!)u3(NG|ERU3sVlYtmtnM5qGgd+QH7ea9~!}3Eg*anAaQ?B;_*cnU z)HF`!i~j)lCEdeRIJlM{0$LPqv{iw8K*pFgx3V5%gdAzIWh{-lBaK0Rn5Qh)sQlcZ&f(s7{{YdP6S=Sd0HvY|+`ufj z!IJlC2aY=c% zl`wQdvFEw}04dCBW@SdCI}~VwOT7VpO5v!@8GC2)01O5C+%WbGs~{=v@&2JI zNWoF8>Ng0$j)s|(Ko$#&?f3Sm6(REBlkT;w$mPrilF+?f0AOZ@j>NXaSJ7#IV zcMwZgn^@2?#Z_V;+AX`>$`D+|r%`EQ0d>we%(4ZeBo}~F+Ekhs0D-p|vrrnaU|0Db zHb7IHvC*TWul6389B{AuDC*H35&ocM1G|N5(MpxQg}lW}WYKZFGBXc{4=`id&CXEl z*#b(_u@VDG1u}>K04vlqPUeWXi^5$O{{Y6|NI{c~%b@pX;#b{&PLw_?xHQhP-F19h zE;p`Y16zo{oW%obunJP6s_FF?;KagIzgXamwU^X69@~kw6=yMDF<6~V#Q}8|(a`YR z3iGwR%BVQ%1EoBDkpvlu;M*$b!9ubagt)N0cELlzMlHcHmp*cwThKuc>oW;F2We)g z2v0fw!4=p)lHeCti9snj<^v$O?TG_(%9N#3T_Eyecnjamcq-(ULbqE1C<>Y-CP#I| zNoC$Gxpcj~@e)GR=$DD!a}+_N#AI&m#A*%{xr(%UWoU0mUB&JB@!=jb2`Uu>%rKZphNCDj zac*sA#5m*78VTFLV=*O0G~6~;%sTMCLyIGc;IDzj_1pFmPJl_8R{EMlj#3-tD z7ZC0n3%dA;k1ZDd#^5c1Wk+0^#Z*f!<2YYXt+1@Uz_)E;pz&1tgjEb_US;sBu3;)t zycGlixucJK5ir_FMI}{LOc+rv=q!y?FSUOq2+y@&%yto{$%bqwZt`3E9tVB4pX6U- zV|+%K6)ANAVqurwa|OY%h~}%Cj^HqvV~hHm#LI=){{Z3f4ksGZ){`Rz3T(Z?t;;dQ zqnTn

F*T-8+Fz$0;0CM)F9&yH42sz{dzEQ;^vL71Yt~SXd1L+?>a5TtXVdwi&2q zTQyaWpVU07czJ*4?qgwvC0{XDsrwWVs;>EsD&XZ&bgyxOc1_2U6IfR8s4J)vFIfKo z$k+`7-~RxF5EMQo8mOyub1q$>GHjP1ZN?ra5XmP@v$*PAs%?My<{8FZjY6`@F6t?R zlQnVbx4x!{__>trTM!{)wfTvj=8%_*Nt9C7>lFcCCJ5^rTw(-50I|z)MGEPr4RiSa z04ad5IT3@7ctYZMNqKt(x|80uSl%l`nx94)xbh~?-kHy8~X)6`=j z#!j9KqP)ic>=oBRY#|o{RHw;kTnS$B|au99K)wSm?3P)8Gnd8$E2jd zeX&%Q3LZxP00IqE!p-W>#36CgGvdS75DKPs1U#TBCP2~i68utmWp)L|P$dV$GPq$+ z5M89$DSL@QQuC>Kf!_%J$1F8I0)Ej35Vt+~v?2Q9MarZu^Hh8OT7ZJ|rGU#NnhUlf)C=PpThhg^G>tqw}geL>(Zt}Q57 zO>nR5xDAhG`kYO=s*AXJKas*&t_5{6u&K?MYX1N*Uv^dDA$5Wdkrvwr(3t!|>%bVk ziixgsb#S+De2@*MaVvQk4kGLe^M!~7c?v>MnK`#`g~^mKX>(Kp{KOatU?s#f8HV(W z2lHhZ=^fp zu0~6$jaKlAEohM03Lg1{(X;;mE*Xn{pZ-HhZB+%J?Q0Vn+4mn52Nf?bJI_$nWpmUr zgIcHz#!oRNxRwoDW4#Rq7GL{UJfAun+i7Sb1FLq@bY zf~*IIrY#z-0vP*-q4!nM#~7GsQHqr7i4mzLNxS0qkPjZAp zs?9(g7(lS_vcr3s^8o`3;}Yuq?o(?DoK1{^u4k>k1av@d;-`bmO>*1EQJ@LRwGmCA z(&{e6t61Q&um1pL5gtPB7e#BbD+PaN0WznE8HIpL7&NQ3y9{z2944XPYnQPgrlK7q z0mLOYs#*@%0Hk7cZI&(BTbG%KT#T>D%Xd&02RGc}WxLftu-i1p;SpmeK(p+L0^(Rt z0dOw3JEon!t^zuPla+>$N?3ow8sl-wJCx{lOIH%hH3Ke{<>D3E#oYmQ1mF@Hz`J>F zB7c~X=>yES1O!+y7S=~YP=%e;enJtN{CRqWTnD2azyt-@@f{ajyg@b^#YF+SIcH^o zNVMi%)Xm;a_faslr!urR{FMWXEG3WrYEoQ<4BEcoj`DNVp){@C%iIZ77`O2<#dKT@ zQaq5A5OoA7xZI#DXI;u%JjBj|^%Qh93u<3(XH@dkIt093-LOE5W(Y>=RM-*fA}u7l zPOF%L)~cekXjU@{+fgEe3b&Y%ra28v0vT6p{u45t*uqo>8(2CnVlSC1iDXLgr?~MT z@wt~F4OPW*!OkBZW0}dcRY&Ck-5Vn0g&E(7>6!xgyCrqnXQ9%kA#J|M2r_?R=T5`~bvW-M`s+DCTU;~^QPr?lcDoVy^v&~+P}-vhXAX`Hm?GL%-`SN;j2>3Oaz z;--=#laElrHFo}8Kvc&Kko^+UNiJ=j%PB)L-wNCyRVjo8Y&dOA&JS+|%ez!(??0$O zRSpgzh9)v)pjTa3QFWnxTH-RB&Gs>|6o!k~og(ot(l6$nNEP4fbj( z;XIHlt~J!J%g`#OYbiJGP|1xA%Pp+q5n!Ud%-xDbDDX^MRjEb19x0DClKCYdm40SQ zv(;{3m1ShPUaQugqsX^tSLR$0JQ28*d1RQB!PnOY<=RM5RKXBhBYX;V#4J(?%xlwj z>J_k1=3I=e<~1IIn9Np9q14-$x1s+4vnGp>9el?Lzc4_iwO(N`D^D_@S92~Q&VrNN zc^B;<{{VbS?HeNgJRT+d6;_&pAx!c`{HUaXC<8`+GTy?c9l%u*36&62iemodzMxQO z)n!_P95sZkHIXbrcWpLU%k?lxOlb~(0={5!aR+C z2N9{H>E<%gChM0FFOc|gFbG9JN2pj~j7pWa$BBJ6MGNJERHR=#!cYWrJn<@aH<$x! zj}pG(@zi~ccTxMs6^5Z^GQc~syhATHi;K8m)40VqaWq&%Qx_;)&mv;2to%!2%XZiO zb5IM4^9RV>W*o>sGXs%gJ;lVg@O9<}77Z%$y}sf}Fly$M!+$Km9T8Ofo?2&um?94n zg~Qglq2I#gAWf&_iE%zt2!-%-8M)^Ajc^OL50K}P737L#7T_)XOI5E0KiDQa zf#>USqEK*}mtOmbIs8nE6xtpu>E>eam#PxAE~AjYaApNAU)?c=R@`fRYAL$h11(D| z1u-zWx2QTSMq5i5niY8wL@4k338*d>EkEZ>)>(&ZQ=zmj z3Sd6G2mx}OTXQflg>wP!2p0!n;w?Iw&NylMfVYQ4=nfANYm}vQ?g=q$EMdh}23{-& zWdme-5RY|?Ke5AB{P7AYRHEsIgE0#IAZ1S`U`UE}3~&_yin_Z-hFL|8d^4c0nN=YN zWmsZzys>kIu2xul{vY;X4o$`=9wM5+;s-z%x~+UfpN_-6XT-X@C0|HC zB)OoL)?O=#yo1aPBh+mv$#=~|)NiS3DlSpnxLL`Yi5m);t{^G0!x)QorCI9;4iw zPoClnWL?@;HZ2kv&~*z!z=|0P?jieNyA|B5>n6TX{{SHBBD34subD_Qj7Ql73Z#3M zvG2RYF|;>^Rx+avZW&q#{{T<%2yt;dm_F(Y87r$J-Aisw&6&%8^K#i`b8cceEBlB= z9hJ&}VOX$p7Jp^ng@#8^S*m65Q~4!D0-rSi6amU=Z2;LbZ*IwTg_oR6Qa=n?!9f22 zaqEG4{i@;AD*~rj-^3Lxo47LIg*aWlwJUyLURDpeed!#;HiG$$MK1Z2CSu{KrcTI* zLDHp^Q=R+(7`kxaM)73 zlDpMMgahzO0z(6`tE2dsqIO%$q~Cy-m1SXG{{S8)Qn@kRLa4EtxoC1biddCN%%x2Y zzi?VHg9>8CY#zM8m>a-PT7EvFHR?dV8QNUX`!y+QtDD>YBZU={K=~ZZ3RGvz2Q@hx z!zd6F9EIj3qO_g^+&Zek;uvuYU(4J`3HUitHDid2YuSsx5FAN27RD7P=9c( zK(%NrzqmvY>AIn;a~a9V#wDyR@L4EYF2t72&dQ42v%wWCJYNyzY-bzzmtYjlxlZDd zP)7DZhd_AZHYHc%AqXo<@S>s}JG&uYfr;`~>IWP$4%Mho`n0yLb05LFF{mnsoy%Kb zt=wc* z^34&bs5uKD>WZjrZx>D`o<>Gk8yd}B{Jf2|4!=yL?@E_Bi!0Xu82SWlT={DN&)LCG;aSz+(1vNUxWxaTo zYa5PLf;6(^+k2ZbyKLiy{{SHt2(cEx*l=JY)`Pm4Ylo=Z7Qi!cDime2EK8PH1V&ar zQK-3P$TJQuQZ`4QQE;csaUPj6M-~NP9FbTfOU%1qoe>~_V^X$pdg==@KBB9O+2h1C z4?oHtAl(<4WJwjHIymWxVH*7e2~&{<=5W>}p+?N(iIFL*G(23WAvj0|8%c;id5Bfl zR~|s)@g0_jBC!NO*LaOYgN7Ix9yu}2w}HMQkhNQwvqziMQFKQo68p@+3w`q`$~d#R zP$(*nW!2vA8HS?;ZDUfXV^GwF98}=@e8R%Fe8;I7)Il5pa;95ZDQ>^nq9Fm5$-fcD zX$+mi0JCVqLKc>Y*NA@;Xjjc;_j7^V#a_6G3~j>j!~t71QueQ~<~4+E(5MxVYzHw> zXI8%vi;iYP)NtR3KLnWf7_)vy#6jv!@N?Po5MybYs#E5Vi9kv%l)!qn{-TCBviB25+3o+CQZfaLp$`GRYxzb4#A_tc=Ss(0E?upBT@xI`=N->8XAURCgM z6<>AYUCj;MLsZHrxA7lzI__c?w(i*3>Mg#ekPMfwjKe4>j;XnDrL3r<{zQvQD^OP2 z(@7UL0|zTVJ<0@cNb|?OWmOcVF$W<`pez3I9+(3w%%+!` zT|G>~e2hQ>g-I*ql*}co>`# zDd(JWN6RD?fBr!ph%ZDu9Dvj!?ZqbguD&3AcG~<~ADHa7wdxq3lt8|YH{Rx729^FV z`!0Zs6=HjecW&ba!*9z_KM_;1zxEb64JTRDN@A6j*CfQ%uY+s>ZAX}i_l_F3sc5?T zIEMU zU==JCMb5sU5W1JKO#WwN67^KX=Ct@n2S7H&*8!y@%;nn50JX=NOrc)~{>lYZBKK^o z@a_lC@8xv`GKp(?f&yAM)i9wn@qaq>NGX2G2sF9eZs&VEWa}+8nQT7m?abj zdz%pj7~%>*GHVojfn9?hB7m-|kvdLbK$f3=LN<3)LGqi?{D9zze>FCIJx3B@xBmcK zP-?11Xbq%X*YXZn4)sS-uhQqlT1lmWUod56L|c6S0E(F?T9NW>f*Q^92@o9az9GMR zhqGtq9Og#NT9El`y4pIhz&fwOQXxGYHwzYoGjxOtPF^{L3O!!rXUPC+cHSRS+WD zUL%ROH7>e)N@%KG1XiGoq?LGvx@c%j=MmPCwXDG7m1^EnWg1);4JI%vIewtR$x||g za%|+py_6$?OmIZtY=tXQ31Rt^2v&nZ64eakCbB@FIgC=G-d7Xm4n*a+hLA3WTT$+1 zXy@YL;HsMo8LDq*<2*o@4Jbdw+dA4IXF<^@fp+;jqGe1xXON4X0zfKkFhdiwd1e_LqO`81A(LB9-WXeKI8gJ+^%4})!1!T~ zXcGSb*tfl!?veS71+t)rI_G>$upVkKAiIss8I7&+$U`%$~ZZbW!YLIBjkQ+LHwnfK!K%Ro!l2w|IqjaGKASqmySIBJ7cl zz_edCaq%?o>Pl=kYQWyCkiK(__rS z0<@j58f-Ti`G7Dyw-Vv#mH{lC43Q_PXDt|AHUpk0-tjniB`%pki3;zJ% zvOfrq5`lvWjjMoc<}x-56yl=Nfu!5wUPYMfn0)XKBPE^)z!^b39 zxlDD2d=E1b0vl)g&oa6P&2pU`5v0@FFA(B)GKY^6pi+}*1XA=p2!YF8L$?ESi1NBzO&3QTL;;5z#39xH0G1MG3i%)8 zP5>pl3*gMd%aO`aF4zSqns4A5>Y?9Cv`I=$_Xnx~>dFTvk}yjl1#dx*@?@&W^8)>+ z<}pQF$E?7-IGd7~vzQoykN#M-XdD?*NZ|a+Z3gcNE~Vq*8i-jOjP5ck2dqW{r*>Sg zg4}EQ2zr%aEp!AmZq?2Clr~1n$$S;uO8}w)*IzRU(5n|jR={un03#GY)BIn}~Ia}IV zRo^I3Qr3vmrQ9Kb!(X?=pn|Lh?k&|+QpUDm0j|7EXy{iti9*n~n8vYTitc7bEi6)| z7RZYrD||v~G_~}f#xR1D@W3Ansa4TV^M~ScJ2G(qml>O}9dQK$Q{G^cuwbpkky=Hl zC~td?kqs|%>WC2nCb5&mF8sxL89pXLA2P_Q$=*(_;8yUZb@+fvya$ z6gxErHRFxbQDHbkM-`ZWg_@&Xej^bT@bl!0N-4X{unikpsahCcge3!1;fYn<8pNhL z1856JaSVq`no2kgZKHN7=P(7<&q9ss!*P18X5INH(HEoTl$l4uV;@WXDkVa(ZBe!N z0|)|{)Wm=UWYpVQ;#Zqm_?fsU+}AaK{Wh$LyU_|X5oRK}*J@^kdU=*2h2Eg4;>MZx z9b&IKaS)Tbzo}i8k^Enm@d5``614RjVAw|rVq%e!YHH}XD(+OVqykM}8o!v9z%9O5 z0*$eq#9O@$c?o|q+*bS}eQ8<^L@lU@;P{K7iaX@*?gW)Z;r{@zP$8`R${qSOnMxaM zl)kf@-l3G2HENg2E_R=YBSbETkNf*GbHG{-jz(NDRTbYZ$XXU?2KH(Y*;bLu+)xz* zF*DF`Hyfk5uhgq++-e3>D0F<8A?k1&A4By0%KO-p?Pe-uYbbKns~Uo3xW&b$9ybUy zX7gDds%1($N= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS ) + flats = self.load_files( + "128358415@seloger", + "14818297@explorimmo" + ) + + score = duplicates.get_duplicate_score( + flats[0], flats[1], + TestDuplicates.IMAGE_CACHE, 20 + ) + self.assertTrue( + score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + ) + + # Same flat, different agencies, texts and photos + flats = self.load_files( + "122509451@seloger", + "127963747@seloger" + ) + + score = duplicates.get_duplicate_score( + flats[0], flats[1], + TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD + ) + + self.assertTrue( + score >= 4 + ) def run(): """ From 83d7792e4c0c75326c17919b0abadb469bb5ff80 Mon Sep 17 00:00:00 2001 From: nicofrand Date: Sun, 21 Jan 2018 14:27:29 +0100 Subject: [PATCH 2/6] Duplicates score should be enough, removing common photos assertion --- flatisfy/filters/duplicates.py | 39 ++++++++++++++++------------------ 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/flatisfy/filters/duplicates.py b/flatisfy/filters/duplicates.py index b5e2803..390d171 100644 --- a/flatisfy/filters/duplicates.py +++ b/flatisfy/filters/duplicates.py @@ -267,27 +267,6 @@ def get_duplicate_score(flat1, flat2, photo_cache, hash_threshold): assert flat1_phone == flat2_phone n_common_items += 10 # Counts much more than the rest - # They should have at least one photo in common if there - # are some photos - if flat1.get("photos", []) and flat2.get("photos", []): - n_common_photos = find_number_common_photos( - flat1["photos"], - flat2["photos"], - photo_cache, - hash_threshold - ) - assert n_common_photos > 1 - - min_number_photos = min(len(flat1["photos"]), - len(flat2["photos"])) - - # Either all the photos are the same, or there are at least - # three common photos. - if n_common_photos == min_number_photos: - n_common_items += 15 - else: - n_common_items += 5 * min(n_common_photos, 3) - # If the two flats are from the same website and have a # different float part, consider they cannot be duplicates. See # https://framagit.org/phyks/Flatisfy/issues/100. @@ -302,6 +281,24 @@ def get_duplicate_score(flat1, flat2, photo_cache, hash_threshold): ) if both_have_float_part and both_are_from_same_backend: assert both_have_equal_float_part + + if flat1.get("photos", []) and flat2.get("photos", []): + n_common_photos = find_number_common_photos( + flat1["photos"], + flat2["photos"], + photo_cache, + hash_threshold + ) + + min_number_photos = min(len(flat1["photos"]), + len(flat2["photos"])) + + # Either all the photos are the same, or there are at least + # three common photos. + if n_common_photos == min_number_photos: + n_common_items += 15 + else: + n_common_items += 5 * min(n_common_photos, 3) except (AssertionError, TypeError): # Skip and consider as not duplicates whenever the conditions # are not met From 39b3ce6a1d0dc6a7c3ff2d6b0150ba4db3464fa1 Mon Sep 17 00:00:00 2001 From: nicofrand Date: Sun, 21 Jan 2018 15:10:34 +0100 Subject: [PATCH 3/6] Add test on similar but different flats --- flatisfy/test_files/123312807@seloger.json | 60 +++++++++++++++++++++ flatisfy/test_files/123314207@seloger.json | 62 ++++++++++++++++++++++ flatisfy/tests.py | 14 +++++ 3 files changed, 136 insertions(+) create mode 100644 flatisfy/test_files/123312807@seloger.json create mode 100644 flatisfy/test_files/123314207@seloger.json diff --git a/flatisfy/test_files/123312807@seloger.json b/flatisfy/test_files/123312807@seloger.json new file mode 100644 index 0000000..6d935de --- /dev/null +++ b/flatisfy/test_files/123312807@seloger.json @@ -0,0 +1,60 @@ +{ + "id": "123312807@seloger", + "url": "http://www.seloger.com/annonces/achat/appartement/rennes-35/brequigny/123312807.htm?p=", + "title": "Appartement 3 pi\u00e8ces 58m\u00b2 - Rennes", + "area": 58, + "cost": 131440, + "price_per_meter": 2266.206896551724137931034483, + "currency": "\u20ac", + "utilities": "", + "date": "2018-01-20T22:35:00", + "location": " Rennes (35200)", + "station": "Cl\u00e9menceau", + "text": "OGIMM vous propose \u00e0 l'achat un appartement de type 3 dans une petite copropri\u00e9t\u00e9 de 4 \u00e9tages. Bien situ\u00e9, proche du boulevard Cl\u00e9menceau et des Bus C5 et C3, de la rue de Nantes, il est en tr\u00e8s bon \u00e9tat et au calme. Il est compos\u00e9 de: une entr\u00e9e avec placards, une cuisine s\u00e9par\u00e9e am\u00e9nag\u00e9e et \u00e9quip\u00e9e (possibilit\u00e9 d'ouverture), d'un balcon loggia, d'un s\u00e9jour lumineux au sud, de 2 chambres, d'une salle d'eau et d'un WC s\u00e9par\u00e9. Pr\u00e9sence d'une cave et d'un parking ext\u00e9rieur. Station de M\u00e9tro la plus proche Cl\u00e9menceau. Copropri\u00e9t\u00e9 saine et bien tenue, les charges de 1745.88e par an comprenant le chauffage (avec compteur individuel), l'eau chaude et froide, et l'entretien de l'immeuble. Copropri\u00e9t\u00e9 de 16 appartements. Actuellement lou\u00e9 650e charges comprises. A voir rapidement ! Dont 6.00 % honoraires TTC \u00e0 la charge de l'acqu\u00e9reur.", + "phone": null, + "photos": [{ + "id": "1ir7ortudferww8to788kd38lmlnpx52ia5st7280.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/i/r/7/1ir7ortudferww8to788kd38lmlnpx52ia5st7280.jpg", + "data": null + }, { + "id": "08wbr1ivnz26gnyeofyjg02zi0d1vd1eijszcrgg0.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/8/w/b/08wbr1ivnz26gnyeofyjg02zi0d1vd1eijszcrgg0.jpg", + "data": null + }, { + "id": "0np6439w3557sclwu7b4sq7h7hntm9tizwrrtdr7k.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/n/p/6/0np6439w3557sclwu7b4sq7h7hntm9tizwrrtdr7k.jpg", + "data": null + }, { + "id": "0rc6ac2jlit0r27d1tmy2y8pqbdzps7gnzzmdds00.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/r/c/6/0rc6ac2jlit0r27d1tmy2y8pqbdzps7gnzzmdds00.jpg", + "data": null + }, { + "id": "19ebzllpk308rw1ei43a0t59fnjxohnidtvc5thq8.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/9/e/b/19ebzllpk308rw1ei43a0t59fnjxohnidtvc5thq8.jpg", + "data": null + }, { + "id": "07ize6lu9ssyv1ltjiux8gs56rgbyweai9wboor9c.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/7/i/z/07ize6lu9ssyv1ltjiux8gs56rgbyweai9wboor9c.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "Cuisine": "s\u00e9par\u00e9e", + "Pi\u00e8ces": "3", + "Salle de S\u00e9jour": "", + "Reference": "OG9242", + "Chambres": "2", + "Salle d'eau": "1", + "Entr\u00e9e": "", + "Balcon": "1", + "Surface": "58 m\u00b2", + "Ann\u00e9e de construction": "1963", + "Calme": "", + "Etages": "4", + "Parking": "1", + "Rangements": "", + "Toilette": "1", + "Orientation": "Est, Sud" + } +} diff --git a/flatisfy/test_files/123314207@seloger.json b/flatisfy/test_files/123314207@seloger.json new file mode 100644 index 0000000..14fc4de --- /dev/null +++ b/flatisfy/test_files/123314207@seloger.json @@ -0,0 +1,62 @@ +{ + "id": "123314207@seloger", + "url": "http://www.seloger.com/annonces/achat/appartement/rennes-35/brequigny/123314207.htm?p=", + "title": "Appartement 3 pi\u00e8ces 58m\u00b2 - Rennes", + "area": 58, + "cost": 131440, + "price_per_meter": 2266.206896551724137931034483, + "currency": "\u20ac", + "utilities": "", + "date": "2018-01-20T22:35:00", + "location": " Rennes (35200)", + "station": "Cl\u00e9menceau", + "text": "OGIMM vous propose \u00e0 l'achat un appartement de type 3 au 1er \u00e9tage d'une petite r\u00e9sidence de 4 \u00e9tages. Au calme, propre, il est proche de la rue de Nantes, des Bus C5 et C3. La station de M\u00e9tro la plus proche est Cl\u00e9menceau. Vous aurez: une entr\u00e9e avec placards, une cuisine am\u00e9nag\u00e9e et \u00e9quip\u00e9e, un balcon loggia, une salle d'eau, un WC s\u00e9par\u00e9, 2 chambres, une cave et un parking. Les charges de copropri\u00e9t\u00e9 de 1526.58e par an comprennent le chauffage et l'eau chaude et froide avec comptage individuel. Locataire en place avec un loyer de 650e par mois. Copropri\u00e9t\u00e9 de 12 appartements. A voir vite ! Dont 6.00 % honoraires TTC \u00e0 la charge de l'acqu\u00e9reur.", + "phone": null, + "photos": [{ + "id": "18a4t9w050xd7welkm25tg5ytv0wjbflrkyun1p1c.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/8/a/4/18a4t9w050xd7welkm25tg5ytv0wjbflrkyun1p1c.jpg", + "data": null + }, { + "id": "21q7r77zylh8k4mdlumg3cfcgmd4y3ixr9ggipk3k.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/2/1/q/7/21q7r77zylh8k4mdlumg3cfcgmd4y3ixr9ggipk3k.jpg", + "data": null + }, { + "id": "0eysaqsq7ti47y42lakhzwr2s9jdkvwsvvoqfq8e8.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/e/y/s/0eysaqsq7ti47y42lakhzwr2s9jdkvwsvvoqfq8e8.jpg", + "data": null + }, { + "id": "02tt2n650l5m908yiqkre3vu0cl9cxwqtg26xtwqo.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/2/t/t/02tt2n650l5m908yiqkre3vu0cl9cxwqtg26xtwqo.jpg", + "data": null + }, { + "id": "03wsh6bojie9eunp1ef9tynop2zkanx1qgm6lq41s.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/0/3/w/s/03wsh6bojie9eunp1ef9tynop2zkanx1qgm6lq41s.jpg", + "data": null + }, { + "id": "170whetachmm8357xz30ll7e3flrrqedc3ld2u0hs.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/7/0/w/170whetachmm8357xz30ll7e3flrrqedc3ld2u0hs.jpg", + "data": null + }, { + "id": "1unpbelnbrnsxxoxy0zd0me8nf4jgd124yomnbvnk.jpg", + "url": "https://v.seloger.com/s/width/800/visuels/1/u/n/p/1unpbelnbrnsxxoxy0zd0me8nf4jgd124yomnbvnk.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "Pi\u00e8ces": "3", + "Etage": "1", + "Reference": "OG9243", + "Chambres": "2", + "Salle d'eau": "1", + "Chauffage": "radiateur", + "Entr\u00e9e": "", + "Surface": "58 m\u00b2", + "Ann\u00e9e de construction": "1963", + "Calme": "", + "Etages": "4", + "Rangements": "", + "Toilette": "1", + "Orientation": "Est, Sud" + } +} diff --git a/flatisfy/tests.py b/flatisfy/tests.py index 91f8de7..dd35d39 100644 --- a/flatisfy/tests.py +++ b/flatisfy/tests.py @@ -419,6 +419,20 @@ class TestDuplicates(unittest.TestCase): score >= 4 ) + # Really similar flats, but different + flats = self.load_files( + "123312807@seloger", + "123314207@seloger" + ) + + score = duplicates.get_duplicate_score( + flats[0], flats[1], + TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD + ) + self.assertTrue( + score < TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + ) + def run(): """ Run all the tests From 9957206abe37698ab92fc4770e396dad785c4293 Mon Sep 17 00:00:00 2001 From: nicofrand Date: Sun, 21 Jan 2018 15:35:52 +0100 Subject: [PATCH 4/6] Add tests with cropped photos --- flatisfy/test_files/124910113@seloger.jpg | Bin 0 -> 26265 bytes flatisfy/test_files/124910113@seloger.json | 67 +++++++++++++++++++ flatisfy/test_files/13783671@explorimmo.jpg | Bin 0 -> 24288 bytes flatisfy/test_files/13783671@explorimmo.json | 44 ++++++++++++ flatisfy/tests.py | 26 +++++++ 5 files changed, 137 insertions(+) create mode 100644 flatisfy/test_files/124910113@seloger.jpg create mode 100644 flatisfy/test_files/124910113@seloger.json create mode 100644 flatisfy/test_files/13783671@explorimmo.jpg create mode 100644 flatisfy/test_files/13783671@explorimmo.json diff --git a/flatisfy/test_files/124910113@seloger.jpg b/flatisfy/test_files/124910113@seloger.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb9555199c66fe866a7fe1a511c8d6f7fe576438 GIT binary patch literal 26265 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 literal 0 HcmV?d00001 diff --git a/flatisfy/test_files/13783671@explorimmo.json b/flatisfy/test_files/13783671@explorimmo.json new file mode 100644 index 0000000..7eaa74a --- /dev/null +++ b/flatisfy/test_files/13783671@explorimmo.json @@ -0,0 +1,44 @@ +{ + "id": "13783671@explorimmo", + "url": "http://www.explorimmo.com/annonce-13783671.html", + "title": "Vente appartement 3 pi\u00e8ces 65 m2", + "area": 65, + "cost": 145275, + "price_per_meter": 2235, + "currency": "EUR", + "utilities": "H.C.", + "date": "2017-11-10T02:04:00", + "location": "225 RUE DE FOUGERES Rennes 35700", + "station": null, + "text": "Rennes en exclusivit\u00e9 rue de Foug\u00e8res - Grand Appartement 3 pi\u00e8ces avec Balcon\ndans une copropri\u00e9t\u00e9 avec ascenseur - Travaux \u00e0 pr\u00e9voir - 2 chambres - Cave et\ngarage\n\n", + "phone": null, + "photos": [{ + "id": "cb10f556708c4e858c1a45ec1dfda623.jpg", + "url": "http://thbr.figarocms.net/images/AXuL6XMCphsRrTYttb7yR2W3CCg=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/cb10f556708c4e858c1a45ec1dfda623.jpg", + "data": null + }, { + "id": "e2696eacce2d487e99e88c2b945cee34.jpg", + "url": "http://thbr.figarocms.net/images/0Va3M6bf1eFkJJzPXC--QIc6WTo=/560x420/filters:fill(f6f6f6):quality(80):strip_icc()/e2696eacce2d487e99e88c2b945cee34.jpg", + "data": null + }], + "rooms": 3, + "bedrooms": 2, + "details": { + "available": true, + "heatingType": "", + "agency": "NEXITY LAMY, 6 avenue Jean Janvier, 35000, Rennes", + "bathrooms": 0, + "exposure": "Non pr\u00e9cis\u00e9", + "floor": "1", + "energy": "E", + "bedrooms": 2, + "greenhouseGasEmission": null, + "isFurnished": false, + "rooms": 3, + "fees": 0.0, + "creationDate": 1507712100000, + "agencyFees": 0.0, + "availabilityDate": null, + "guarantee": 0.0 + } +} diff --git a/flatisfy/tests.py b/flatisfy/tests.py index dd35d39..becfe20 100644 --- a/flatisfy/tests.py +++ b/flatisfy/tests.py @@ -225,6 +225,11 @@ class TestPhotos(unittest.TestCase): TestPhotos.HASH_THRESHOLD )) + def test_matching_cropped_photos(self): + """ + Compares two matching photos with one being cropped. + """ + # Fixme: the image hash treshold should be 10 ideally self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "vertical.jpg"}, {"url": TESTS_DATA_DIR + "vertical-cropped.jpg"}, @@ -232,6 +237,13 @@ class TestPhotos(unittest.TestCase): 20 )) + # Fixme: the image hash treshold should be 10 ideally + self.assertTrue(duplicates.compare_photos( + {"url": TESTS_DATA_DIR + "13783671@explorimmo.jpg"}, + {"url": TESTS_DATA_DIR + "124910113@seloger.jpg"}, + TestPhotos.IMAGE_CACHE, + 20 + )) class TestDuplicates(unittest.TestCase): """ @@ -404,6 +416,20 @@ class TestDuplicates(unittest.TestCase): score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS ) + # Different number of photos, and some are cropped + flats = self.load_files( + "124910113@seloger", + "13783671@explorimmo" + ) + + score = duplicates.get_duplicate_score( + flats[0], flats[1], + TestDuplicates.IMAGE_CACHE, 20 + ) + self.assertTrue( + score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + ) + # Same flat, different agencies, texts and photos flats = self.load_files( "122509451@seloger", From 88087c8628aa3a957f1df38a9024fa26f45d7da1 Mon Sep 17 00:00:00 2001 From: nicofrand Date: Mon, 22 Jan 2018 12:40:52 +0100 Subject: [PATCH 5/6] Address review --- flatisfy/tests.py | 102 +++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 61 deletions(-) diff --git a/flatisfy/tests.py b/flatisfy/tests.py index becfe20..1b7e34c 100644 --- a/flatisfy/tests.py +++ b/flatisfy/tests.py @@ -171,8 +171,8 @@ class TestPhotos(unittest.TestCase): self.assertTrue(duplicates.compare_photos( photo, photo, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) def test_different_photos(self): @@ -182,15 +182,15 @@ class TestPhotos(unittest.TestCase): self.assertFalse(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739@seloger.jpg"}, {"url": TESTS_DATA_DIR + "127028739-2@seloger.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) self.assertFalse(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739-2@seloger.jpg"}, {"url": TESTS_DATA_DIR + "127028739-3@seloger.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) def test_matching_photos(self): @@ -200,29 +200,29 @@ class TestPhotos(unittest.TestCase): self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739@seloger.jpg"}, {"url": TESTS_DATA_DIR + "14428129@explorimmo.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739-2@seloger.jpg"}, {"url": TESTS_DATA_DIR + "14428129-2@explorimmo.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739-3@seloger.jpg"}, {"url": TESTS_DATA_DIR + "14428129-3@explorimmo.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "127028739@seloger.jpg"}, {"url": TESTS_DATA_DIR + "127028739-watermark@seloger.jpg"}, - TestPhotos.IMAGE_CACHE, - TestPhotos.HASH_THRESHOLD + self.IMAGE_CACHE, + self.HASH_THRESHOLD )) def test_matching_cropped_photos(self): @@ -233,7 +233,7 @@ class TestPhotos(unittest.TestCase): self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "vertical.jpg"}, {"url": TESTS_DATA_DIR + "vertical-cropped.jpg"}, - TestPhotos.IMAGE_CACHE, + self.IMAGE_CACHE, 20 )) @@ -241,10 +241,11 @@ class TestPhotos(unittest.TestCase): self.assertTrue(duplicates.compare_photos( {"url": TESTS_DATA_DIR + "13783671@explorimmo.jpg"}, {"url": TESTS_DATA_DIR + "124910113@seloger.jpg"}, - TestPhotos.IMAGE_CACHE, + self.IMAGE_CACHE, 20 )) + class TestDuplicates(unittest.TestCase): """ Checks duplicates detection. @@ -295,11 +296,9 @@ class TestDuplicates(unittest.TestCase): flat2 = copy.deepcopy(flat1) score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertGreaterEqual(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_different_prices(self): """ @@ -311,11 +310,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_different_rooms(self): """ @@ -328,11 +325,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_different_areas(self): """ @@ -344,11 +339,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_different_areas_decimals(self): """ @@ -362,11 +355,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_different_phones(self): """ @@ -379,11 +370,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flat1, flat2, - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITHOUT_PHOTOS) def test_real_duplicates(self): """ @@ -397,11 +386,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flats[0], flats[1], - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertGreaterEqual(score, self.DUPLICATES_MIN_SCORE_WITH_PHOTOS) flats = self.load_files( "128358415@seloger", @@ -410,11 +397,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flats[0], flats[1], - TestDuplicates.IMAGE_CACHE, 20 - ) - self.assertTrue( - score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + self.IMAGE_CACHE, 20 ) + self.assertGreaterEqual(score, self.DUPLICATES_MIN_SCORE_WITH_PHOTOS) # Different number of photos, and some are cropped flats = self.load_files( @@ -424,11 +409,9 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flats[0], flats[1], - TestDuplicates.IMAGE_CACHE, 20 - ) - self.assertTrue( - score >= TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + self.IMAGE_CACHE, 20 ) + self.assertGreaterEqual(score, self.DUPLICATES_MIN_SCORE_WITH_PHOTOS) # Same flat, different agencies, texts and photos flats = self.load_files( @@ -438,12 +421,10 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flats[0], flats[1], - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - - self.assertTrue( - score >= 4 + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + # Fix me : should be TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + self.assertGreaterEqual(score, 4) # Really similar flats, but different flats = self.load_files( @@ -453,11 +434,10 @@ class TestDuplicates(unittest.TestCase): score = duplicates.get_duplicate_score( flats[0], flats[1], - TestDuplicates.IMAGE_CACHE, TestDuplicates.HASH_THRESHOLD - ) - self.assertTrue( - score < TestDuplicates.DUPLICATES_MIN_SCORE_WITH_PHOTOS + self.IMAGE_CACHE, self.HASH_THRESHOLD ) + self.assertLess(score, self.DUPLICATES_MIN_SCORE_WITH_PHOTOS) + def run(): """ From bb78725a05a69f41fc5775efaa0a0fe80fa01815 Mon Sep 17 00:00:00 2001 From: nicofrand Date: Mon, 22 Jan 2018 12:50:37 +0100 Subject: [PATCH 6/6] Trim whitespaces in string normalization --- flatisfy/tests.py | 9 +++++++++ flatisfy/tools.py | 3 +++ 2 files changed, 12 insertions(+) diff --git a/flatisfy/tests.py b/flatisfy/tests.py index 1b7e34c..b74e3d9 100644 --- a/flatisfy/tests.py +++ b/flatisfy/tests.py @@ -114,6 +114,15 @@ class TestTexts(unittest.TestCase): tools.normalize_string("avec ascenseur") ) + def test_whitespace_trim(self): + """ + Checks that trailing and beginning whitespaces are trimmed. + """ + self.assertEqual( + "rennes 35000", + tools.normalize_string(" Rennes 35000 ") + ) + def test_accents(self): """ Checks accents are replaced. diff --git a/flatisfy/tools.py b/flatisfy/tools.py index 59cc8eb..3c500cb 100644 --- a/flatisfy/tools.py +++ b/flatisfy/tools.py @@ -225,6 +225,9 @@ def normalize_string(string, lowercase=True, convert_arabic_numerals=True): # Collapse multiple spaces, replace tabulations and newlines by space string = re.sub(r"\s+", " ", string) + # Trim whitespaces + string = string.strip() + return string