MaterielsController.php
174 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Mailer\Email;
/**
* Materiels Controller
*
* @property \App\Model\Table\MaterielsTable $Materiels
*/
class MaterielsController extends AppController {
private $NOTARCHIVED = [
'CREATED',
'VALIDATED',
'TOBEARCHIVED'
];
public $role;
/**
*
* @param $user Give
* authorization for materiels
* @return boolean
*/
public function isAuthorized($user) {
$configuration = $this->confLabinvent;
// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
$role = TableRegistry::get('Users')->find()
->where([
'username' => $user[$configuration->authentificationType_ldap][0]
])
->first()['role'];
$this->role = $role;
$action = $this->request->params['action'];
if ($action == 'edit') {
$id = (int) $this->request->params['pass'][0];
if ($this->isCreated($id) || $this->isValidated($id)) {
if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
return true;
} else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) {
return true;
} else if ($this->userHasRole('Administration')) {
return true;
}
}
if ($this->userHasRole('Administration Plus')) {
return true;
}
}
if ($action == 'delete') {
$id = (int) $this->request->params['pass'][0];
if ($this->isCreated($id)) {
if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
return true;
} else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) {
return true;
} else if ($this->userHasRole('Administration')) {
return true;
}
}
}
if ($action == 'statusValidated') {
$id = (int) $this->request->params['pass'][0];
if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) {
if ($this->isCreated($id)) {
return true;
}
} else if ($this->userHasRole('Administration')) {
if ($this->isCreated($id)) {
return true;
}
}
}
if ($action == 'statusToBeArchived') {
$id = (int) $this->request->params['pass'][0];
if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) {
if ($this->isValidated($id)) {
return true;
}
} else if ($this->userHasRole('Administration')) {
if ($this->isValidated($id)) {
return true;
}
}
}
if ($action == 'statusArchived') {
$id = (int) $this->request->params['pass'][0];
if ($this->userHasRole('Administration')) {
if ($this->isToBeArchived($id)) {
if ($role == 'Super Administrateur') {
return false;
} else {
return true;
}
}
}
}
if ($action == 'export') {
if ($this->userHasRole('Responsable')) {
return true;
}
}
if (in_array($action, [
'execActions',
'setLabelIsPlaced',
'setLabelIsPlacedOrNotPlaced',
'setLabelIsNotPlaced',
'printLabelRuban'
])) {
if ($this->userHasRole('Administration')) {
return true;
}
}
return parent::isAuthorized($user);
}
public function isOwnedBy($id, $nomCreateur) {
return ($this->Materiels->exists([
'id' => $id,
'nom_createur' => $nomCreateur
]) || $this->Materiels->exists([
'id' => $id,
'nom_responsable' => $nomCreateur
]));
}
public function isRespGroup($id, $loginResponsable) {
$u = TableRegistry::get('Users')->find()
->where([
'username' => $loginResponsable
])
->first();
if (isset($u['groupes_metier_id']) && $u['groupes_metier_id'] != TableRegistry::get('GroupesMetiers')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
return ($this->Materiels->exists([
'id' => $id,
'groupes_metier_id' => $u['groupes_metier_id']
]));
} else if (isset($u['groupe_thematique_id']) && $u['groupe_thematique_id'] != TableRegistry::get('GroupesThematiques')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
return ($this->Materiels->exists([
'id' => $id,
'groupes_thematique_id' => $u['groupe_thematique_id']
]));
} else {
return false;
}
}
public function isCreated($id) {
return $this->Materiels->exists([
'id' => $id,
'status' => 'CREATED'
]);
}
public function isValidated($id) {
return $this->Materiels->exists([
'id' => $id,
'status' => 'VALIDATED'
]);
}
public function isToBeArchived($id) {
return $this->Materiels->exists([
'id' => $id,
'status' => 'TOBEARCHIVED'
]);
}
public function isArchived($id) {
return $this->Materiels->exists([
'id' => $id,
'status' => 'ARCHIVED'
]);
}
/**
* Index method
*
* @return \Cake\Network\Response|null
*/
public function index() {
// Remplacement de $this->request->params['pass'][0] (deprecated)
// Par $this->request->params['pass'][0]
$condition = '';
if (isset($this->request->params['pass'][0])) {
$condition = [
'Materiels.status =' => $this->request->params['pass'][0]
];
$this->set('STATUS', $this->request->params['pass'][0]);
}
$GM = $this->request->query('GM');
$GT = $this->request->query('GT');
if (isset($GM) || isset($GT)) {
if (isset($GM) && $GM != TableRegistry::get('GroupesMetiers')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
$condition = [
'Materiels.groupes_metier_id =' => $GM,
'Materiels.status !=' => 'ARCHIVED'
];
} else if (isset($GT) && $GT != TableRegistry::get('GroupesThematiques')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
$condition = [
'Materiels.groupes_thematique_id =' => $GT,
'Materiels.status !=' => 'ARCHIVED'
];
} else {
$condition = [
'Materiels.id =' => 0
];
}
}
$GMV = $this->request->query('GMV');
$GTV = $this->request->query('GTV');
if (isset($GMV) || isset($GTV)) {
if (isset($GMV) && $GMV != TableRegistry::get('GroupesMetiers')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
$condition = [
'Materiels.groupes_metier_id =' => $GMV,
'Materiels.status =' => 'CREATED',
'Materiels.status !=' => 'ARCHIVED'
];
} else if (isset($GTV) && $GTV != TableRegistry::get('GroupesThematiques')->find()
->where([
'nom =' => 'N/A'
])
->first()['id']) {
$condition = [
'Materiels.groupes_metier_id =' => $GTV,
'Materiels.status =' => 'CREATED',
'Materiels.status !=' => 'ARCHIVED'
];
} else {
$condition = [
'Materiels.id =' => 0
];
}
}
$MY = $this->request->query('MY');
if (isset($MY)) {
if (in_array($this->role, [
'Utilisateur',
'Responsable'
])) {
$condition = [
'Materiels.nom_responsable =' => $this->request->query('MY'),
'Materiels.status !=' => 'ARCHIVED'
];
} else {
$condition = [
'Materiels.nom_responsable =' => $this->request->query('MY')
];
}
}
if (in_array($this->role, [
'Utilisateur',
'Responsable'
]) && $condition == '') {
$condition = [
'Materiels.status !=' => 'ARCHIVED'
];
}
$config = TableRegistry::get('Configurations')->find()
->where([
'id =' => 1
])
->first();
$limit = $this->request->query('aff');
if (! isset($limit))
$limit = $config['aff_par_defaut'];
$this->paginate = [
'limit' => $limit,
'contain' => [
'SurCategories',
'Categories',
'SousCategories',
'GroupesThematiques',
'GroupesMetiers',
'Organismes',
'Sites'
],
'order' => [
'Materiels.numero_laboratoire' => 'desc'
]
];
$materiels = $this->paginate($this->Materiels->find('all', [
'conditions' => $condition
]));
$this->set('nbMateriels', $this->Materiels->find('all', [
'conditions' => $condition
])
->count());
$this->set(compact('materiels'));
$this->set('_serialize', [
'materiels'
]);
}
/**
* View method
*
* @param string|null $id
* Materiel id.
* @return \Cake\Network\Response|null
* @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
*/
public function view($id = null) {
$materiel = $this->Materiels->get($id, [
'contain' => [
'SurCategories',
'Categories',
'SousCategories',
'GroupesThematiques',
'GroupesMetiers',
'Organismes',
'Sites',
'Documents',
'Emprunts',
'Suivis',
'Fournisseurs'
]
]);
$sites = TableRegistry::get('Sites');
$typeSuivis = TableRegistry::get('TypeSuivis');
$typeDocuments = TableRegistry::get('TypeDocuments');
$fournisseurs = TableRegistry::get('Fournisseurs');
if ($materiel->photo_id != null) {
$imgMateriel = $materiel->photo_id . '.' . TableRegistry::get('Documents')->get($materiel->photo_id)->get('type_doc');
$this->set('imgMateriel', $imgMateriel);
}
$this->set('sites', $sites);
$this->set('typeSuivis', $typeSuivis);
$this->set('typeDocuments', $typeDocuments);
$this->set('fournisseurs', $fournisseurs);
$this->set('materiel', $materiel);
$this->set('_serialize', [
'materiel'
]);
}
/**
* Add method
*
* @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
*/
public function add($valeurs = null, $erreurs = null) {
$materiel = $this->Materiels->newEntity();
if ($this->request->is('post')) {
$materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])
->where([
'role =' => 'Administration'
])
->toArray())) {
$gestionnaireID = TableRegistry::get('Users')->find()
->where([
'nom' => $_SESSION['Auth']['User']['sn'][0]
])
->first()->id;
$materiel->gestionnaire_id = $gestionnaireID;
}
if ($this->Materiels->save($materiel)) {
$this->Flash->success(__('Le matériel a bien été ajouté.'));
$this->sendEmail($materiel);
return $this->redirect([
'action' => 'view',
$materiel->id
]);
} else {
$this->Flash->error(__('Le matériel n\'a pas pu être ajouté.'));
}
}
$surCategories = $this->Materiels->SurCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SurCategories.nom',
'conditions' => array(
'nom !=' => 'N/A'
)
]);
$categories = $this->Materiels->Categories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Categories.nom'
]);
$sousCategories = $this->Materiels->SousCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SousCategories.nom'
]);
$groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesThematiques.nom'
]);
$groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesMetiers.nom'
]);
$organismes = $this->Materiels->Organismes->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Organismes.nom'
]);
$sites = $this->Materiels->Sites->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Sites.nom'
]);
$fournisseurs = $this->Materiels->Fournisseurs->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Fournisseurs.nom'
]);
$lieu_detail = $this->Materiels->find('list', [
'keyField' => 'lieu_detail',
'valueField' => 'lieu_detail',
'conditions' => array(
'lieu_detail !=' => ''
),
'order' => 'lieu_detail',
'group' => 'lieu_detail'
]);
$designation = $this->Materiels->find('list', [
'keyField' => 'designation',
'valueField' => 'designation',
'conditions' => array(
'designation !=' => ''
),
'order' => 'designation',
'group' => 'designation'
]);
$domaineresp = TableRegistry::get('Users')->find()
->select('sur_categorie_id')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['sur_categorie_id'];
$utilisateurconnect = TableRegistry::get('Users')->find('all')->toArray();
$users = TableRegistry::get('LdapConnections')->getListUsers();
// tri des utilisateurs par nom
sort($users);
$utilisateurs = [];
for ($i = 0; $i < sizeof($users); $i ++) {
$utilisateurs[$users[$i]] = $users[$i];
}
// Ne pas commenter la ligne suivante, on en a besoin dans add.cpt
$mail_responsable = TableRegistry::get('Users')->find()
->select('email')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['email'];
if (isset($this->request->params['pass'][0])) {
$cpMateriel = $this->Materiels->get($this->request->params['pass'][0]);
$this->set('cpMateriel', $cpMateriel);
}
$this->set(compact('domaineresp', 'designation', 'utilisateurconnect', 'users', 'materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable', 'lieu_detail', 'fournisseurs'));
$this->set('_serialize', [
'materiel'
]);
}
/**
* Edit method
*
* @param string|null $id
* Materiel id.
* @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
* @throws \Cake\Network\Exception\NotFoundException When record not found.
*/
public function edit($id = null) {
$materiel = $this->Materiels->get($id, [
'contain' => []
]);
if ($this->request->is([
'patch',
'post',
'put'
])) {
$materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])
->where([
'role =' => 'Administration'
])
->toArray())) {
$gestionnaireID = TableRegistry::get('Users')->find()
->where([
'nom' => $_SESSION['Auth']['User']['sn'][0]
])
->first()->id;
$materiel->gestionnaire_id = $gestionnaireID;
}
if ($this->Materiels->save($materiel)) {
$this->Flash->success(__('Le matériel a bien été édité.'));
$this->sendEmail($materiel);
return $this->redirect([
'action' => 'view',
$id
]);
} else {
$this->Flash->error(__('Le matériel n\'a pas pu être édité.'));
}
}
$surCategories = $this->Materiels->SurCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SurCategories.nom'
]);
$categories = $this->Materiels->Categories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Categories.nom'
]);
$sousCategories = $this->Materiels->SousCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SousCategories.nom'
]);
$groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesThematiques.nom'
]);
$groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesMetiers.nom'
]);
$organismes = $this->Materiels->Organismes->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Organismes.nom'
]);
$sites = $this->Materiels->Sites->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Sites.nom'
]);
$designation = $this->Materiels->find('list', [
'keyField' => 'designation',
'valueField' => 'designation',
'conditions' => array(
'designation !=' => ''
),
'order' => 'designation',
'group' => 'designation'
]);
$designation_edit = $this->Materiels->find('list', [
'keyField' => 'id',
'valueField' => 'designation',
'conditions' => array(
'id =' => $materiel->id
)
]);
$designation_edit = $designation_edit->toArray();
// autocomplete + saisie sites
$lieu_detail = $this->Materiels->find('list', [
'keyField' => 'lieu_detail',
'valueField' => 'lieu_detail',
'conditions' => array(
'lieu_detail !=' => ''
),
'order' => 'lieu_detail'
]);
$lieu_detail_edit = $this->Materiels->find('list', [
'keyField' => 'id',
'valueField' => 'lieu_detail',
'conditions' => array(
'id =' => $materiel->id
)
]);
$lieu_detail_edit = $lieu_detail_edit->toArray();
// liste fournisseur
$fournisseurs = $this->Materiels->Fournisseurs->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Fournisseurs.nom'
]);
$dom = TableRegistry::get('Materiels')->find()
->select('sur_categorie_id')
->where([
'id =' => $materiel->id
])
->first()['sur_categorie_id'];
$domaines = TableRegistry::get('Users')->find()
->select('sur_categorie_id')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['sur_categorie_id'];
$role = TableRegistry::get('Users')->find()
->select('role')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['role'];
if ($dom == $domaines)
$domaineresp = true;
else
$domaineresp = false;
$users = TableRegistry::get('LdapConnections')->getListUsers();
// tri des utilisateurs par nom
sort($users);
$utilisateurs = [];
for ($i = 0; $i < sizeof($users); $i ++) {
$utilisateurs[$users[$i]] = $users[$i];
}
if (! empty($materiel->get('nom_responsable'))) {
if (! in_array($materiel->get('nom_responsable'), $utilisateurs)) {
$nom_ancien_responsable = $materiel->get('nom_responsable');
$this->set(compact('nom_ancien_responsable'));
}
}
$mail_responsable = TableRegistry::get('Users')->find()
->select('email')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['email'];
// Fonction utilisée dans la vue, déclarée ici pour éviter les problèmes de tests
$isReadonlyField = function ($fieldName, $myReadonlyFields) {
if (! empty($myReadonlyFields) && $myReadonlyFields[0] == '*') {
$modifiableFields = $myReadonlyFields;
array_shift($modifiableFields);
return ! in_array($fieldName, $modifiableFields);
}
return in_array($fieldName, $myReadonlyFields);
};
$this->set('isReadonlyField', $isReadonlyField);
$this->set('IS_CREATED', $materiel->status == 'CREATED');
$this->set('IS_VALIDATED', $materiel->status == 'VALIDATED');
$this->set('IS_ARCHIVED_OR_TOBE', in_array($materiel->status, [
'TOBEARCHIVED',
'ARCHIVED'
]));
$this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable', 'role', 'domaineresp', 'designation_edit', 'designation', 'lieu_detail', 'lieu_detail_edit', 'fournisseurs'));
$this->set('_serialize', [
'materiel'
]);
}
/**
* Administrer method
*
* @param string|null $id
* Materiel id.
* @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
* @throws \Cake\Network\Exception\NotFoundException When record not found.
*/
public function administrer($id = null) {
$materiel = $this->Materiels->get($id, [
'contain' => []
]);
if ($this->request->is([
'patch',
'post',
'put'
])) {
$materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
if ($this->Materiels->save($materiel, [
'checkRules' => false
])) {
$this->Flash->success(__('Le matériel a bien été édité.'));
return $this->redirect([
'action' => 'view',
$id
]);
} else {
$this->Flash->error(__('Le matériel n\'a pas pu être édité.'));
}
}
$surCategories = $this->Materiels->SurCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SurCategories.nom'
]);
$categories = $this->Materiels->Categories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Categories.nom'
]);
$sousCategories = $this->Materiels->SousCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SousCategories.nom'
]);
$groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesThematiques.nom'
]);
$groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesMetiers.nom'
]);
$organismes = $this->Materiels->Organismes->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Organismes.nom'
]);
$sites = $this->Materiels->Sites->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Sites.nom'
]);
$fournisseurs = $this->Materiels->Fournisseurs->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Fournisseurs.nom'
]);
$users = TableRegistry::get('LdapConnections')->getListUsers();
// tri des utilisateurs par nom
sort($users);
$utilisateurs = [];
for ($i = 0; $i < sizeof($users); $i ++) {
$utilisateurs[$users[$i]] = $users[$i];
}
if (! empty($materiel->get('nom_responsable'))) {
if (! in_array($materiel->get('nom_responsable'), $utilisateurs)) {
$nom_ancien_responsable = $materiel->get('nom_responsable');
$this->set(compact('nom_ancien_responsable'));
}
}
$mail_responsable = TableRegistry::get('Users')->find()
->select('email')
->where([
'username =' => $this->LdapAuth->user($this->request->session()
->read('authType'))[0]
])
->first()['email'];
$this->set('IS_CREATED', $materiel->status == 'CREATED');
$this->set('IS_VALIDATED', $materiel->status == 'VALIDATED');
$this->set('IS_ARCHIVED_OR_TOBE', in_array($materiel->status, [
'TOBEARCHIVED',
'ARCHIVED'
]));
$this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable', 'fournisseurs'));
$this->set('_serialize', [
'materiel'
]);
}
/**
* Delete method
*
* @param string|null $id
* Materiel id.
* @return \Cake\Network\Response|null Redirects to index.
* @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
*/
public function delete($id = null) {
// $this->request->allowMethod(['post', 'delete']);
$materiel = $this->Materiels->get($id);
if ($this->Materiels->delete($materiel)) {
$this->Flash->success(__('Le matériel a bien été supprimé.'));
$this->sendEmail($materiel);
} else {
$this->Flash->error(__('Le matériel n\'a pas pu être supprimé.'));
}
return $this->redirect([
'action' => 'index'
]);
}
/**
* StatusSetTo method
*
* @param string $newStatus
* @param string $message
* @param string $id
* @param string $from
* @return \Cake\Network\Response|NULL
*/
private function statusSetTo($newStatus, $message, $id = null, $from = 'index') {
$materiel = $this->Materiels->get($id)->set('status', $newStatus);
if ($newStatus == 'ARCHIVED') {
$materiel->set('date_archivage', date('Y-m-d'));
}
if ($newStatus == 'VALIDATED') {
if (! isset($materiel->nom_responsable) || ! isset($materiel->fournisseur_id) || ! isset($materiel->numero_commande) || ! isset($materiel->organisme_id) || ! isset($materiel->date_reception) || ! isset($materiel->prix_ht)) {
$this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vides : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception');
return $this->redirect([
'action' => 'edit',
$id
]);
}
// $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.';
// $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]);
}
if ($this->Materiels->save($materiel, [
'checkRules' => false,
'checkExisting' => false
])) {
$this->Flash->success(__($message));
// $this->sendEmailToManagement($id);
} else {
$this->Flash->error(__('Le statut n\'a pas pu être édité.'));
}
if ($from == 'index')
return $this->redirect([
'action' => $from
]);
else
return $this->redirect([
'action' => $from,
$id
]);
}
/**
* StatusValidated method
*
* @param string $id
* @param string $from
*/
public function statusValidated($id = null, $from = 'index') {
$this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from);
if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])
->where([
'role =' => 'Administration'
])
->toArray())) {
$gestionnaireID = TableRegistry::get('Users')->find()
->where([
'nom' => $_SESSION['Auth']['User']['sn'][0]
])
->first()->id;
$materiel->gestionnaire_id = $gestionnaireID;
}
$this->sendEmail($this->Materiels->get($id));
}
/**
* StatusToBeArchived method
*
* @param string $id
* @param string $from
*/
public function statusToBeArchived($id = null, $from = 'index') {
$this->statusSetTo('TOBEARCHIVED', 'La sortie d\'inventaire a bien été demandée', $id, $from);
$this->sendEmail($this->Materiels->get($id));
}
/**
* StatusArchived method
*
* @param string $id
* @param string $from
*/
public function statusArchived($id = null, $from = 'index') {
$this->statusSetTo('ARCHIVED', 'Le matériel a bien été sorti de l\'inventaire', $id, $from);
$this->sendEmail($this->Materiels->get($id));
}
/**
* GetConditionForField method
*
* @param unknown $fieldName
* @return string[]|NULL
*/
private function getConditionForField($fieldName) {
$searchFieldName = 's_' . $fieldName;
if (isset($this->request->data[$searchFieldName]) && ($this->request->data[$searchFieldName] != ''))
return [
"Materiels.$fieldName LIKE" => '%' . $this->request->data[$searchFieldName] . '%'
];
return NULL;
}
/**
* GetConditionForFieldNumber method
*
* @param unknown $fieldName
* @return $string[]|NULL
*/
private function getConditionForFieldNumber($fieldName) {
$searchFieldName = 's_' . $fieldName;
if (isset($this->request->data[$searchFieldName]) && ($this->request->data[$searchFieldName] != ''))
return [
"Materiels.$fieldName =" => $this->request->data[$searchFieldName]
];
return NULL;
}
/**
* Find method
*/
public function find() {
$s_sur_categories = $this->Materiels->SurCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SurCategories.nom'
]);
$s_categories = $this->Materiels->Categories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Categories.nom'
]);
$s_sous_categories = $this->Materiels->SousCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'SousCategories.nom'
]);
$s_groupes_thematiques = $this->Materiels->GroupesThematiques->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesThematiques.nom'
]);
$s_groupes_metiers = $this->Materiels->GroupesMetiers->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'GroupesMetiers.nom'
]);
$s_organismes = $this->Materiels->Organismes->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Organismes.nom'
]);
$s_fournisseurs = $this->Materiels->Fournisseurs->find('list', [
'keyField' => 'id',
'valueField' => 'nom',
'order' => 'Fournisseurs.nom'
]);
$s_salles = $this->Materiels->find('list', [
'keyField' => 'lieu_detail',
'valueField' => 'lieu_detail',
'order' => 'lieu_detail',
'conditions' => array(
'status !=' => 'ARCHIVED',
'lieu_detail !=' => 'null'
)
]);
$s_nomresp = $this->Materiels->find('list', [
'keyField' => 'nom_responsable',
'valueField' => 'nom_responsable',
'order' => 'nom_responsable',
'conditions' => array(
'status !=' => 'ARCHIVED',
'nom_responsable !=' => 'null'
)
]);
$s_numero_laboratoire = $this->Materiels->find('list', [
'keyField' => 'numero_laboratoire',
'valueField' => 'numero_laboratoire',
'order' => 'numero_laboratoire',
'conditions' => array(
'status !=' => 'ARCHIVED',
'numero_laboratoire !=' => 'null'
)
]);
$categories = $this->Materiels->Categories;
$this->set(compact('s_numero_laboratoire', 's_nomresp', 's_sur_categories', 's_categories', 's_sous_categories', 's_groupes_thematiques', 's_groupes_metiers', 's_organismes', 's_fournisseurs', 's_salles', 'categories'));
$resultTri = $this->request->session()->read("resultTri");
if (! (in_array($this->role, [
'Administration',
'Administration Plus',
'Super Administrateur'
]))) {
$conditionNotArchived = [
'Materiels.status !=' => 'ARCHIVED'
];
} else {
$conditionNotArchived = '';
}
// some data POSTED (au moins le champ de recherche generale) ?
if (isset($this->request->data['s_all']) || isset($this->request->data['s_all_2']) || isset($this->request->data['s_designation'])) {
$generalFieldConditions = NULL;
// if general field set (s_all), then set general request for it
if (isset($this->request->data['s_all'])) {
$all = $this->request->data['s_all'];
// Check for a date
foreach ([
"/",
"-"
] as $symb) {
$pos1 = strpos($all, $symb); // Première occurence
$pos2 = strrchr($all, $symb); // Dernière occurence
if ($pos1 !== false && $pos1 != $pos2) {
// Si une première occurence est trouvée, une dernière aussi
list ($dd, $mm, $yyyy) = explode($symb, $all);
if (checkdate((int) $mm, (int) $dd, (int) $yyyy)) {
$all = "$yyyy-$mm-$dd";
break;
}
}
}
// End datecheck
$generalFieldConditions = [
'OR' => [
'Materiels.designation LIKE' => '%' . $all . '%',
'Materiels.numero_laboratoire LIKE' => '%' . $all . '%',
'Materiels.numero_inventaire_organisme LIKE' => '%' . $all . '%',
'Materiels.numero_inventaire_old LIKE' => '%' . $all . '%',
'Materiels.numero_commande LIKE' => '%' . $all . '%',
'Materiels.description LIKE' => '%' . $all . '%',
'Materiels.fournisseur_id LIKE' => '%' . $all . '%',
'Materiels.nom_responsable LIKE' => '%' . $all . '%',
'Materiels.email_responsable LIKE' => '%' . $all . '%',
'Materiels.code_comptable LIKE' => '%' . $all . '%',
'Materiels.numero_serie LIKE' => '%' . $all . '%',
'Materiels.date_acquisition LIKE' => '%' . $all . '%',
'Materiels.lieu_detail LIKE' => '%' . $all . '%'
]
];
}
if (isset($this->request->data['s_all_2'])) {
$all = $this->request->data['s_all_2'];
// Check for a date
foreach ([
"/",
"-"
] as $symb) {
$pos1 = strpos($all, $symb); // Première occurence
$pos2 = strrchr($all, $symb); // Dernière occurence
if ($pos1 !== false && $pos1 != $pos2) {
// Si une première occurence est trouvée, une dernière aussi
list ($dd, $mm, $yyyy) = explode($symb, $all);
if (checkdate((int) $mm, (int) $dd, (int) $yyyy)) {
$all = "$yyyy-$mm-$dd";
break;
}
}
}
// End datecheck
$generalFieldConditions = [
'OR' => [
'Materiels.designation LIKE' => '%' . $all . '%',
'Materiels.numero_laboratoire LIKE' => '%' . $all . '%',
'Materiels.numero_inventaire_organisme LIKE' => '%' . $all . '%',
'Materiels.numero_inventaire_old LIKE' => '%' . $all . '%',
'Materiels.numero_commande LIKE' => '%' . $all . '%',
'Materiels.description LIKE' => '%' . $all . '%',
'Materiels.fournisseur_id LIKE' => '%' . $all . '%',
'Materiels.nom_responsable LIKE' => '%' . $all . '%',
'Materiels.email_responsable LIKE' => '%' . $all . '%',
'Materiels.code_comptable LIKE' => '%' . $all . '%',
'Materiels.numero_serie LIKE' => '%' . $all . '%',
'Materiels.date_acquisition LIKE' => '%' . $all . '%',
'Materiels.date_reception LIKE' => '%' . $all . '%',
'Materiels.lieu_detail LIKE' => '%' . $all . '%'
]
];
}
$specificFieldsConditions = NULL;
// au moins un champ specifique rempli ?
if (isset($this->request->data['s_designation'])) {
// Materiel type
$matostype = $this->request->data['s_matostype'];
$matostypeRequest = NULL;
switch ($matostype) {
// Administratif
case 'A' :
$matostypeRequest['Materiels.materiel_administratif ='] = '1';
break;
// Technique
case 'T' :
$matostypeRequest['Materiels.materiel_technique ='] = '1';
break;
// Admin et Tech
case 'AT' :
$matostypeRequest['Materiels.materiel_administratif ='] = '1';
$matostypeRequest['Materiels.materiel_technique ='] = '1';
break;
// Admin ONLY
case 'AO' :
$matostypeRequest['Materiels.materiel_administratif ='] = '1';
$matostypeRequest['Materiels.materiel_technique ='] = '0';
break;
// Tech ONLY
case 'TO' :
$matostypeRequest['Materiels.materiel_administratif ='] = '0';
$matostypeRequest['Materiels.materiel_technique ='] = '1';
break;
}
$periode_acquisitionRequest = NULL;
$date_acquisition = NULL;
$salle = NULL;
$fournisseur = NULL;
if ($this->request->data['s_periode_acquisition1'] != '')
$periode_acquisitionRequest['Materiels.date_acquisition >='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_acquisition1'])));
if ($this->request->data['s_periode_acquisition2'] != '')
$periode_acquisitionRequest['Materiels.date_acquisition <='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_acquisition2'])));
if ($this->request->data['s_date_acquisition'] != '')
$date_acquisition['Materiels.date_acquisition LIKE'] = '%' . date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_date_acquisition']))) . '%';
$montantRequest = [];
if ($this->request->data['s_prix_ht_inf'] != '')
$montantRequest['Materiels.prix_ht <='] = $this->request->data['s_prix_ht_inf'];
if ($this->request->data['s_prix_ht_sup'] != '')
$montantRequest['Materiels.prix_ht >='] = $this->request->data['s_prix_ht_sup'];
if (isset($this->request->data['s_salle']) && $this->request->data['s_salle'] != '')
$salle['Materiels.lieu_detail LIKE'] = '%' . $this->request->data['s_salle'] . '%';
if (isset($this->request->data['s_fournisseur_id']) && $this->request->data['s_fournisseur_id'] != '')
$fournisseur['Materiels.fournisseur_id ='] = $this->request->data['s_fournisseur'];
$specificFieldsConditions = [
'Materiels.designation LIKE' => '%' . $this->request->data['s_designation'] . '%',
'Materiels.numero_laboratoire LIKE' => '%' . $this->request->data['s_numero_laboratoire'] . '%',
$this->getConditionForField('numero_commande'),
$date_acquisition,
$periode_acquisitionRequest,
$this->getConditionForFieldNumber('prix_ht'),
$montantRequest,
$this->getConditionForFieldNumber('sur_categorie_id'),
$this->getConditionForFieldNumber('categorie_id'),
$this->getConditionForFieldNumber('sous_categorie_id'),
$this->getConditionForField('nom_responsable'),
$this->getConditionForField('numero_inventaire_organisme'),
$this->getConditionForField('numero_inventaire_old'),
$this->getConditionForFieldNumber('groupes_metier_id'),
$this->getConditionForFieldNumber('groupes_thematique_id'),
$salle,
$fournisseur,
$this->getConditionForFieldNumber('organisme_id'),
$matostypeRequest,
$this->getConditionForFieldNumber('organisme_id'),
$matostypeRequest
];
if ($this->request->data['s_status'] != '') {
array_push($specificFieldsConditions, [
'Materiels.status =' => $this->request->data['s_status']
]);
}
}
// CONSTRUCTION DE LA REQUETE SQL COMPLETE = $specificFieldsConditions OR $generalFieldConditions (mais entre chaque champ, c'est un AND)
// by default, no sort
if (isset($this->request->data['s_all_2']) && $this->request->data['s_all_2'] != '') {
$conditions = [
$generalFieldConditions,
$conditionNotArchived
];
} else if (isset($this->request->data['s_all']) && $this->request->data['s_all'] != '') {
$conditions = [
$generalFieldConditions,
$conditionNotArchived
];
} else {
$conditions = [
$specificFieldsConditions,
$conditionNotArchived
];
}
$lastResults = $this->Materiels->find('all', [
'limit' => 1000,
'conditions' => $conditions
]);
$this->paginate = [
'limit' => 1000
];
$_results = $this->paginate($lastResults);
$this->set(compact('_results'));
// pour l'export
$this->request->session()->write("result", $lastResults->toArray());
} // end if()
else if (isset($resultTri) && strstr($this->request->here(), 'sort') != false && strstr($this->request->here(), 'direction') != false) {
$findedMateriel = [];
foreach ($resultTri as $r) {
array_push($findedMateriel, $r->id);
}
$res = $this->Materiels->find('all', [
'limit' => 1000
]);
for ($i = 0; $i < sizeof($findedMateriel); $i ++) {
$res->orWhere([
'id =' => $findedMateriel[$i]
]);
}
$this->paginate = [
'limit' => 1000
];
$_results = $this->paginate($res);
$this->set(compact('_results'));
// pour l'export
$this->request->session()->write("result", $res->toArray());
}
}
/**
* group update status + exportAll
*/
public function execActions() {
if (isset($this->request->data['updateSelectedStatus'])) {
$this->updateSelectedStatus();
} else {
$this->export();
}
}
/**
* group update status (selected from materiels/index)
*/
private function updateSelectedStatus() {
if (isset($this->request->data) && sizeof($this->request->data) > 0) {
$this->myDebug("IN UPDATE");
$this->myDebug($this->request->data);
$what = $this->request->data['what'];
$nb = 0;
if (in_array($what, $this->NOTARCHIVED)) {
foreach ($this->request->data as $id => $value) :
if ($value == 1) {
switch ($what) {
case 'CREATED' :
$new = 'VALIDATED';
break;
case 'VALIDATED' :
$new = 'TOBEARCHIVED';
break;
case 'TOBEARCHIVED' :
$new = 'ARCHIVED';
break;
}
// if mode_debug desactivate
if (! $this->isLabinventDebugMode()) {
$materiel = $this->Materiels->get($id);
if (! isset($materiel->nom_responsable) || ! isset($materiel->fournisseur) || ! isset($materiel->numero_commande) || ! isset($materiel->organisme_id) || ! isset($materiel->date_reception) || ! isset($materiel->prix_ht)) {
$this->Flash->error('le materiel ' . $materiel->designation . '-' . $materiel->numero_laboratoire . ' n\'a pas pu etre validé car un des champs nécessaires n\'est pas rempli');
$nb --;
} else {
$materiel->set('status', $new);
$this->Materiels->save($materiel, [
'checkRules' => false,
'checkExisting' => false
]);
}
}
$nb ++;
}
endforeach
;
if ($nb != 0)
$this->Flash->success(__($nb . ' matériel(s) mis à jour'));
$this->myDebug("Nb matos = " . $nb);
if (! $this->isLabinventDebugMode())
return $this->redirect([
'action' => 'index',
$what
]);
}
}
}
/**
* Export method
* Generation d'un fichier .csv comportant la date du jour
* CSV export of the list of materiels
* This action is called from 3 different sources :
* - tools
* - materiels/find
* - materiels/index (from the 2 submit green buttons named "Exporter la liste...")
* Optional parameter "what:value" may be passed when calling this action, and is read from $this->params['named']['what']
* ex : materiels/export/what:toValidate
*/
public function export() {
$materiels = NULL;
$surCategories = $this->Materiels->SurCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$categories = $this->Materiels->Categories->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$sousCategories = $this->Materiels->SousCategories->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$organismes = $this->Materiels->Organismes->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$sites = $this->Materiels->Sites->find('list', [
'keyField' => 'id',
'valueField' => 'nom'
])->toArray();
$what = '';
$this->myDebug($this->request->data);
if (isset($this->request->data['export'])) {
$this->myDebug("IN EXPORT");
$what = $this->request->data['what'];
$selectedMateriels = [];
$i = 0;
$data = $this->request->data;
foreach ($data as $val) {
if ($val == 1) {
$selectedMateriels[$i] = key($data);
$i ++;
}
next($data);
}
$this->myDebug($selectedMateriels);
if (sizeof($selectedMateriels) > 0) {
$materiels = $this->Materiels->find('all')->where([
'Materiels.id' => $selectedMateriels[0]
]);
for ($j = 0; $j < sizeof($selectedMateriels); $j ++) {
$materiels->orWhere([
'Materiels.id' => $selectedMateriels[$j]
]);
}
$this->myDebug($materiels);
}
} else if (isset($this->request->data['exportAll'])) {
$this->myDebug("IN EXPORTALL");
if (isset($this->request->data['what'])) {
$what = $this->request->data['what'];
$status = $what;
$materiels = $this->Materiels->find('all', [
'conditions' => [
'Materiels.status =' => $status
]
]);
} else {
$status = 'ARCHIVED';
$materiels = $this->Materiels->find('all', [
'conditions' => [
'Materiels.status !=' => $status
]
]);
}
$this->myDebug("what is " . $what);
$this->myDebug("statut is " . $status);
} else if (isset($this->request->params['pass'][0])) {
$this->myDebug("OTHER CASE 3");
$what = $this->request->params['pass'][0];
if ($what == 'search') {
$materiels = $this->request->session()->read("result");
}
} else {
$this->myDebug("OTHER CASE 4");
$materiels = $this->Materiels->find('all', [
'conditions' => [
'Materiels.status !=' => 'ARCHIVED'
]
]);
}
$this->myDebug("Nb matos = " . count($materiels));
$this->myDebug($materiels, true);
ini_set('max_execution_time', 600);
$filename = 'export_' . date("Y-m-d") . '.csv';
$csv_file = fopen('php://output', 'w');
$this->response->header([
'Content-type: application/csv',
'Content-Disposition: attachment; filename="' . $filename . '"'
]);
$this->response->sendHeaders();
$configuration = TableRegistry::get('Configurations')->find()
->where([
'id =' => 1
])
->first();
$nomgroupemetier = $configuration->nom_groupe_metier;
$nomgroupethematique = $configuration->nom_groupe_thematique;
$nomgroupemetier = htmlentities($nomgroupemetier, ENT_NOQUOTES, 'utf-8');
$nomgroupemetier = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nomgroupemetier);
$nomgroupemetier = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nomgroupemetier); // pour les ligatures e.g. 'œ'
$nomgroupemetier = preg_replace('#&[^;]+;#', '', $nomgroupemetier);
// supprime les autres caractères
$nomgroupethematique = htmlentities($nomgroupethematique, ENT_NOQUOTES, 'utf-8');
$nomgroupethematique = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nomgroupethematique);
$nomgroupethematique = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nomgroupethematique); // pour les ligatures e.g. 'œ'
$nomgroupethematique = preg_replace('#&[^;]+;#', '', $nomgroupethematique);
// supprime les autres caractères
$header_row = [
"id",
"Designation",
"Sur-categorie",
"Categorie",
"Sous-categorie",
"Numero interne",
"Description",
"Organisme",
"Mat. administratif",
"Mat. technique",
"Statut",
"Date d'acquisition",
"Date de reception",
"Fournisseur",
"Prix HT",
"EOTP",
"Numero de commande",
"Code comptable",
"Numero de serie",
$nomgroupethematique,
$nomgroupemetier,
"Numero inventaire organisme",
"Ancien Numero inventaire",
"Site stockage",
"Nom responsable",
"Email responsable"
];
fputcsv($csv_file, $header_row, ';');
foreach ($materiels as $result) {
$row = [
utf8_encode($result->id),
$result->designation
];
if (isset($surCategories[$result->sur_categorie_id])) {
array_push($row, $surCategories[$result->sur_categorie_id]);
} else {
array_push($row, "");
}
if (isset($categories[$result->categorie_id])) {
array_push($row, $categories[$result->categorie_id]);
} else {
array_push($row, "");
}
if (isset($sousCategories[$result->sous_categorie_id])) {
array_push($row, $sousCategories[$result->sous_categorie_id]);
} else {
array_push($row, "");
}
array_push($row, $result->numero_laboratoire);
array_push($row, $result->description);
if (isset($organismes[$result->organisme_id])) {
array_push($row, $organismes[$result->organisme_id]);
} else {
array_push($row, "");
}
array_push($row, $result->materiel_administratif);
array_push($row, $result->materiel_technique);
array_push($row, $result->status);
array_push($row, $result->date_acquisition);
array_push($row, $result->date_reception);
array_push($row, $result->fournisseur);
array_push($row, $result->prix_ht);
array_push($row, $result->eotp);
array_push($row, $result->numero_commande);
array_push($row, $result->code_comptable);
array_push($row, $result->numero_serie);
if (isset($groupesThematiques[$result->groupes_thematique_id])) {
array_push($row, $groupesThematiques[$result->groupes_thematique_id]);
} else {
array_push($row, "");
}
if (isset($groupesMetiers[$result->groupes_metier_id])) {
array_push($row, $groupesMetiers[$result->groupes_metier_id]);
} else {
array_push($row, "");
}
array_push($row, $result->numero_inventaire_organisme);
array_push($row, $result->numero_inventaire_old);
if (isset($sites[$result->site_id])) {
array_push($row, $sites[$result->site_id] . '-' . $result->lieu_detail);
} else {
array_push($row, "");
}
array_push($row, $result->nom_responsable);
array_push($row, $result->email_responsable);
fputcsv($csv_file, $row, ';', '"');
}
sleep(3);
fclose($csv_file);
exit();
// Sans le exit() ça ne fonctionne pas pour des petites listes, et dans tout les cas une ligne en javascript est écrite si il n'y a pas exit()
// La redirection suivante fonctionne parfaitement, mais inutile à cause du exit()
/*
* if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]);
* else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)');
* else return $this->redirect(['action' => 'index']);
*/
}
/**
* SetLabelIsPlacedOrNotPlaced method
*
* @param string $id
* @param string $from
* @param string $printed
* @return \Cake\Network\Response|NULL
*/
public function setLabelIsPlacedOrNotPlaced($id, $from, $printed = TRUE) {
$materiel = $this->Materiels->get($id)->set('etiquette', $printed);
if ($this->Materiels->save($materiel, [
'checkRules' => false,
'checkExisting' => false
])) {
$this->Flash->success(__('L\'étiquette a bien été éditée.'));
// Envoi email seulement si etiquette posée
if ($printed) {
// $this->sendEmailToManagement($id);
$this->sendEmail($materiel);
}
} else {
$this->Flash->error(__('L\'étiquette n\'a pas pu être éditée.'));
}
return $this->redirect($this->referer());
}
/**
* SetLabelIsPlaced method
*
* @param string $id
* @param string $from
*/
public function setLabelIsPlaced($id, $from) {
$this->setLabelIsPlacedOrNotPlaced($id, $from, TRUE);
}
/**
* SetLabelIsNotPlaced method
*
* @param string $id
* @param string $from
*/
public function setLabelIsNotPlaced($id, $from) {
$this->setLabelIsPlacedOrNotPlaced($id, $from, FALSE);
}
/**
* PrintLabelRuban method
*
* @param string $id
* @param string $from
*/
public function printLabelRuban($id, $from = 'view') {
$this->printLabel('ruban', $id, $from);
$this->sendEmail($this->Materiels->get($id));
}
/**
* PrintLabelEtiquette method
*
* @param string $id
* @param string $from
* public function printLabelEtiquette($id, $from='view') {
* $this->printLabel('etiquette', $id, $from);
* }
*/
/**
* PrintLabel method
*
* @param string $type
* @param string $id
* @param string $from
*/
private function printLabel($type = 'etiquette', $id, $from = 'view') {
$materiel = $this->Materiels->get($id);
$numeroLab = $materiel->numero_laboratoire;
$organisme = $materiel->organisme_id;
$numeroInventaireOrganisme = $materiel->numero_inventaire_organisme;
$dateAcquisition = $materiel->date_acquisition;
$filename = 'inventirap_label.label';
$file = fopen('php://output', 'w');
$this->response->header([
'Content-type: application/xml',
'Content-Disposition: attachment; filename="' . $filename . '"'
]);
$this->response->sendHeaders();
/*
* SIMPLE LABEL FOR PRINTER DYMO LabelWriter 450 : NO LOGO
*/
/*
* '<?xml version="1.0" encoding="utf-8"?>
* <DieCutLabel Version="8.0" Units="twips">
* <PaperOrientation>Landscape</PaperOrientation>
* <Id>MultiPurpose11355</Id>
* <PaperName>11355 Multi-Purpose</PaperName>
* <DrawCommands>
* <RoundRectangle X="0" Y="0" Width="1080" Height="2880" Rx="180" Ry="180"/>
* </DrawCommands>
* <ObjectInfo>
* <TextObject>
* <Name>TEXTE</Name>
* <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
* <BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
* <LinkedObjectName></LinkedObjectName>
* <Rotation>Rotation0</Rotation>
* <IsMirrored>False</IsMirrored>
* <IsVariable>False</IsVariable>
* <HorizontalAlignment>Left</HorizontalAlignment>
* <VerticalAlignment>Middle</VerticalAlignment>
* <TextFitMode>None</TextFitMode>
* <UseFullFontHeight>True</UseFullFontHeight>
* <Verticalized>False</Verticalized>
* <StyledText>
* <Element>
* <String>'
* ."$numeroLab"."\n"
* ."$dateAcquisition"."\n"
* ."$organisme"."\n"
* .'</String>
* <Attributes>
* <Font Family="Lucida Grande" Size="10" Bold="False" Italic="False" Underline="False" Strikeout="False"/>
* <ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
* </Attributes>
* </Element>
* </StyledText>
* </TextObject>
* <Bounds X="326.4" Y="57.59995" Width="2467.2" Height="940.8"/>
* </ObjectInfo>
* </DieCutLabel>'
* ."\n"
*/
/*
* ETIQUETTE (19x51 mm)
* LABEL FOR PRINTER DYMO LabelWriter 450 : WITH LOGO
*/
if ($type == 'etiquette')
fputs($file,
'<?xml version="1.0" encoding="utf-8"?>
<DieCutLabel Version="8.0" Units="twips">
<PaperOrientation>Landscape</PaperOrientation>
<Id>MultiPurpose11355</Id>
<PaperName>11355 Multi-Purpose</PaperName>
<DrawCommands>
<RoundRectangle X="0" Y="0" Width="1080" Height="2880" Rx="180" Ry="180"/>
</DrawCommands>
<ObjectInfo>
<TextObject>
<Name>TEXTE</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<HorizontalAlignment>Left</HorizontalAlignment>
<VerticalAlignment>Middle</VerticalAlignment>
<TextFitMode>ShrinkToFit</TextFitMode>
<UseFullFontHeight>True</UseFullFontHeight>
<Verticalized>False</Verticalized>
<StyledText>
<Element>
<String>' . "$numeroLab" . "\n" . "$dateAcquisition" . "\n" . "$organisme" . ($numeroInventaireOrganisme ? '-' . "$numeroInventaireOrganisme" : '') . '</String>
<Attributes>' . '<Font Family="Arial" Size="48" Bold="False" Italic="False" Underline="False" Strikeout="False"/>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Attributes>
</Element>
</StyledText>
</TextObject>' .
'<Bounds X="326.4" Y="120.6717" Width="1596.468" Height="844.4843"/>
</ObjectInfo>
<ObjectInfo>
<ImageObject>
<Name>GRAPHISME</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>' . '<Image>iVBORw0KGgoAAAANSUhEUgAAAkEAAALVCAYAAADH8zX4AAAACXBIWXMAAC4hAAAuIwE1bZ59AABAAElEQVR4Aey9u48kR7bwNw/eJS+5M+whuVxDEFhXhgA5Yl9DjgCBuabksK8gQ4AMFs0PMtgryN8ivj/g9hoy5IhF/xO2CcgUsElD9i3+AcKtMWTsY8jmkDsfeXeHo3OGFZzs7MisfMQ7fwFEV2VmxHn8Tmbk6chH3b5FgQAEIHAg8Oc//3klX7Xeun379unLL798ot+fPHlycvfu3VP9bsqzZ89Wr7322jtmecrnX/7yl4eiZ9/s+/Tp092rr756peu+//77K9GzO2zfv/XWW/vDdz4gAAEIzCZwe7YEBEAAAlkQkGTi5NGjR6eSdJxIcnPaTGwk6XgvCycORortn+tXkzBJsrQT/64kSaoPTfiAAAQgcJQASdBRRDSAQF4EzGzOK6+8Un333XcrSXpWuSU5c4jL7NLX4rMmRXthsBcGtchjFmkOVPpCoFACJEGFBha3lkFAEp5KTvincsLXGZ5FJTtTIqwzSDp7JJf29sJsx8zRFIr0gUA5BEiCyoklnhRO4KuvvjqVmY1Tmemo5ER+ev/+/XcLdzmIe48fP/5CEsj63r17O5k12j148MDcgxREP0ogAIF4BEiC4rFHMwR6Cegsj17SkvtdKp3pkZuQX+/t4Gjj3//93zuS5FbMf/yP/9GtwA5pejnthx9+qOUSoiZFNbNFHaBYDYECCJAEFRBEXCiDgM70/N3f/d2ZJj0+7+FJNcmZG0WfSdLhRuzLO3fu1MwUzY0U/SGQDgGSoHRigSULI6A3MMvsTvXNN9+cycm1cjnTU2qiM3UXcZkg6UyR2HEp8aplpu5SLqU9f5x/qm30gwAE4hEgCYrHHs0LJKCzPX/961/XcnmrcnVPDwnPtB3JVWKk9xRJQnQpcb1klmhaLOgFgVgESIJikUfvYgjIu3nOJOk5E4d1tmfWywVJePzuNnMTI5kleij3E+lls0vuJfIbK6RDwAUBkiAXFJEBgRaBRuJzNucyF0lPC2zgxTlJkblsJpfLLt98883LwKajDgIQGECAJGgAJJpAYAgBvdQlj66fS9vJiQ9JzxDS8dpMTYrMDJHc+L7lklm8+KEZAm0CJEFtIixDYAQBvblZbo5dy6PU66mXukh8RgBPqOmchEhmhy7kEqleMtsn5BKmQGBxBEiCFhdyHHZBQE6Aa3lsej3lUXaSHhcRSEvG1IRIngz8TF7SeCn7xDYtj7AGAssgQBK0jDjjpQMCOusjN72ey02vOusz6sWFJD4OApCRiLFJkd4/JPvWVvatC2aHMgo0pmZPgCQo+xDigG8CU2d9SHx8RyYP+WMTosOLGS+4mTqP+GJl3gRIgvKOH9Z7IiD3a5zIf+fnY+/1IfHxFJACxI5NhvRmar136I033tjKJy9kLGAfwIX0CJAEpRcTLIpIQC95ifqNXO76YIwZJD9jaNF2TEKkl8qEmD5iv+FSGfsOBNwSIAlyyxNpmRKQ5KeS/7Y3Y250JvHJNNiJmT0yIfpUzN/yIsbEgog52RIgCco2dBjuggDJjwuKyHBBYEwypPcNySVbnRmqXehGBgSWSoAkaKmRX7jfcsJZy2UGvew16GcsmPVZ+A4T2P2hCRHJUODAoK44AiRBxYUUh/oIkPz00WFbagRIhlKLCPaURoAkqLSI4o+VgF72kg1bZn6seFiZOAGSocQDhHnZEiAJyjZ0GD6EwNh7frjsNYQqbWIRIBmKRR69pRIgCSo1sgv3S3/MVN7AezHkaS8Sn4XvLJm6PyQh0p/lkLdQn/NofaZBxmzvBEiCvCNGQUgCMvOzEn2D3vND8hMyMujyRWBIMiQPAXwqb6A+56WLvqKA3FwJkATlGjnsvkag8Ybn82O/60Xycw0dCwUQGJgIff3KK69c/PznP98U4DIuQMAJAZIgJxgREpPAo0ePziQJuhhy0zMJUMxIods3gYHJ0EOxY807hnxHA/k5ECAJyiFK2GgloJe+ZHp/y30/VjysXDCBIcnQ4R1DmgztF4wK1xdOgCRo4TtAju6bS1937979zTH7mfk5RojtJRMYkgw9ffr0Yy6RlbwX4FsfAZKgPjpsS47A0EtfJD/JhQ6DIhI4lgzpL9aLeVwiixgjVMchQBIUhztaRxLQ2Z8//elP23v37r3f15Xkp48O25ZM4FgipGz0kfpf/OIXa54iW/KesizfSYKWFe8svZXZn3NJgvSx99f7HCAB6qPDNgj8SOBYMiSzQl9LErSWR+ovYQaB0gmQBJUe4Yz9G3rjM8lPxkHG9GgEjiVDzApFCw2KAxIgCQoIG1XDCQyZ/SH5Gc6TlhCwETiWCDErZKPGupIIkASVFM0CfNF7f7788svLY4+9kwAVEGxcSIbAsWSIWaFkQoUhjgmQBDkGirjpBA5PfukvvXfe+0PyM50vPSFwjEBfMsSs0DF6bM+RAElQjlErzGad/ZEESN/4/EGfayRAfXTYBgE3BPoSIdUgs0K/lSfINjxB5oY3UuISIAmKy3/x2vXX3uVlbZd9P3lB8rP43QQAEQj0JUOPHz/+4mc/+9n6wYMHuwimoRICzgjccSYJQRAYSUBvfpYfdPwXEqCR4GgOgQAE+v75uH///rvyz0utx3AAU1ABAW8EmAnyhhbBXQSGvPiwbwDukst6CEDAPYG+GSHVxk3T7pkjMRwBkqBwrNEkBLj8xW4AgTwJ9CVD+rMb8lt+Z1weyzO2S7aay2FLjn5g349d/tLZH2aAAgcFdRAYSKDv2NRL2np5TBKl9UBxNINAEgSYCUoiDGUbMeTpr74Btmw6eAeB/AgcmRX69K233lrn5xUWL5EASdASox7QZ/3pC336S2+k7FJLAtRFhvUQSJdAXyKkT4+9/fbbFY/Rpxs/LPuRAEkQe4I3Aof7f2qZKre+/JDkxxt6BEMgCIG+REhfrij3CVXcJxQkFCiZSIB7giaCo1s/Ab034PD4OwlQPyq2QiBbAvqPTNc/M/rPD/cJZRvaxRhOErSYUIdzVC6BbUXbJ10auwbNrvashwAE0ibQdUwfZoE/+fbbbzdpe4B1SyVAErTUyHvwW2+A/uMf/6hvf+78+YuuwdKDOYiEAAQCEug7tuWy2G/0nyMdIwKahCoIHCXAPUFHEdFgCIFDAlR33QDdN0AOkU8bCEAgDwJ99wlxw3QeMVySlSRBS4q2J1+5AdoTWMRCIGMCXckQvzuWcVALNJ0kqMCghnSJBCgkbXRBIC8CXYkQT47lFceSreWeoJKj69k3ngDzDBjxEMicQNdlcPPkmLxF/ixzFzE/cwLMBGUewFjmawIkunkCLFYA0AuBjAh0zQgdXPhQkqVtRu5gakEESIIKCmYoV0iAQpFGDwTKIUAiVE4sS/KEy2ElRTOAL33vANKp767p7wCmoQICEEiYwJGx4ZPDP1cJe4BpJRIgCSoxqp580gSo6x1ARwY4TxYhFgIQyInAkXHik8M/WTm5hK2ZE+ByWOYBDGU+CVAo0uiBwDIIdF0ekyfH+BX6ZewCSXhJEpREGNI2ggQo7fhgHQRyJUAilGvkyrGbJKicWHrxhATIC1aEQgACBwIkQuwKMQmQBMWkn7huEqDEA4R5ECiEAIlQIYHM0A1ujM4waCFMJgEKQRkdEHBLoCuZcKvFvbSuG6b1QQwdi9xrRCIEfiRAEsSecIMACdANJKyAAAQ8E+hLhP74xz9eeFaP+IUSIAlaaOC73CYB6iLDeghAwDeBrkTo3r17H8ks19q3fuQvjwBJ0PJi3umxDjK8B6gTDxsgAIEABLoSIVHNCxUD8F+aCpKgpUW8w9/Df1nW3wLrGZQ6pLEaAhCAwHQCPWMOidB0rPS0ECAJskBZ2ioSoKVFHH8hkD6BvkRILttX6XuAhTkQIAnKIUoebfzqq69O5Q2t1psOewYhjxYhGgIQmEJA/pmZ0i3pPj1j0KWOXUkbj3FZECAJyiJMfozUQeTp06e13Af0eltDz+DTbsoyBCAAAW8EbGORjlk6dsmM0MqbYgQvggBJ0CLCfNPJZ8+encggckkCdJMNayAAgbQI9CRClzqWpWUt1uREgCQop2g5slUHDXnvhs4AvdMWaRts2m1YhgAEIJACgfv377+rY1kKtmBDngRIgvKM2yyrHz16dKGDxywhdIYABCAQkEDXP2g6lun7zQKagqqCCJAEFRTMIa7om1dlBugDW9uuQcbWlnUQgAAEQhPoGqN0TJN/7s5D24O+/AnwA6r5x3CwBzwKPxgVDSGQHQHzdFhXopCdQz0GG1/bTZ48efJPb7755mV7PcsQ6CLATFAXmcLWHx4n5WWIhcUVd8om0HWyd+W1b/mu7GzL6Ur05H7HLY/Ot2mx3EeAJKiPTiHbDk+C1TZ3ugYTW1vWQQAC4Qn4SlRUbs7Hv812fdpVn3rlibHw+2muGkmCco3cCLsPT4LxLqARzGgKgRQImBO9y0RIZeWeAJnYGD5mWT/1qdcvv/ySS2JNKHzvJEAS1ImmjA361ITtSTDb4FGGx3gBgbIImGPVRSJkZBiZZZF64c2rr776nj4E8mIN3yBgJ0ASZOdSxFoZ8Dp/Fb4IB3ECAgshYJIWk8QYt9vLZr1+treZZSOr2Tbn713+3Lt37yN5YuwsZ9+w3T8BkiD/jKNo0JsD+U2wKOhRCgEvBMzJ3iQzqkTXNZe7FA9p09U3h/WGTdtWvVGan9ZoU2G5SYAkqEmjkO96U+C//du/bfUmwbZLXYNFux3LEIBAegTM8duX1Oi25vbmd9M/Pc/mW2TzjRul53MtXQLvCSowwnIt/FKmgt9vu2YbJNptWIYABNIm0Exqxli6lOPfxkdmxT9966231mN40XYZBJgJKizOMgCsbQlQYW7iDgQWS2BKMjOlT0mAZUZI3yjN/UElBdWRL8wEOQKZghi9D0jekaE/jMplsBQCgg0QcEzAzHJoUmO+H1NhEiBtb74f65P7dhsbmQ36Wvw6lRmhfe7+Yb87AswEuWMZVRL3AUXFj3IIBCGgScyYBEiN0oRgSQmQ+mxL9sz9QbqdAgFDgJkgQyLzT30nhj4S2nbDNhi027AMAQikS8A2q+HC2tLHhi5uMlv+8c9//vONC4bIyJ8ASVD+Mbwlj4BW8l/O722ulD7Q2XxmHQRSItB1Mk7Jxim25DC2dLGXS2O/ksti9RS/6VMWAZKgzOOpl8Hkhr899wFlHkjMh4AQ6Dpph4KTQ2IzloWNqSRBD+XX5k9v3759NVYe7csiQBKUeTx5HD7zAGI+BCYQsJ3Y+8SUmNz0+dveZuP1zTff/Pbtt98+b7dleVkESIIyjrc+8im/kfO7tgtLH/DaPFiGQCkEbCfzMb4teWywseOy2Ji9p8y2PB2WaVz1MpjUbabmYzYEIDCBgCYxpo7pvuTk5winrY6lR9qwuWACJEGZBvdPf/oTP4uRaewwGwJzCdhmNY7JXHoiZPNf7qV8R8bSzTF2bC+XAJfDMowtl8EyDBomQ8ARgWYCpCd2XTafTRXmpG/am+VmmyV+NzyavnNZrEljWd+ZCcos3lwGyyxgmAsBhwSaJ3Bb4mNTZZKfZl9bu4Wv47LYQncAkqDMAq9TtzwOn1nQMBcCDgg0kxiT2KjY5nez3E6QTJumDAcmZSnCsGgar5fFZDaIJ8WaUBbyncthGQW666WItoM6I7cwNTECMU6U7MP9O4GJSR8nV236LSlnq+HV9Oi77777xwcPHuya6/heNoGXynavLO/kde8XZXmEN6EJ2Ab+0DbY9B2zq+/kb5NX0jrDxgUDlaHytLqQVxJn9eWHH37QMbbS75RlEGAmKJM4f/vtt5u7d+/+pm0uA1mbCMtKwJw4S6exhP1/aMJiYj6EyZi2Je9DhkPTxydPnvxa3ibNP5xNKAV/JwnKILhyGWwlZu7a9wINGewycA8TZxKwDeQzRWbdvaTjQmM71B+zHwxtn3WQHRlvmDXFyb1BX0sStOInNZpUyv3O5bAMYqtTtPIL8a9nYComBiBgG7gDqM1GhY1ProlBrnbnsrMo3/b+ov9symtIdCZonYsf2DmdADNB09kF6cnN0EEwJ62kPUgnbWwmxpWYXJj9pETffO9Whl1TDzdJN2mU+52ZoMRjy83QiQfIk3m2QdmTqkWKbfIlaVjkLnDUaW6SPoqoiAbMBCUcRhmo12LeJ20TGbTbRMpYbp6Yy/AoPy9yPrbM/pOzDzH3GMOvZcOHwnPbWsdiQQRIghINpr4ZWq5L77kZOtEAOTKrY+B1JB0xcwjklkyYfSk3u+fEyGVfw68pU26SfvjWW2+tmuv4XhYB3hidaDz17aXtBChRUzFrJAEdbE0d2ZXmAQmYGNlOjgHNQFUgArbkUcbgd/T1JIFMQE0EAswERYB+TKU+Ei8H37+229kO0nYbltMkwIk0zbiMtSrlY9DsYynbOJZ3jPaGo9HNI/OGRJmfzASlGddNmmZh1VgCOqC2B9WxMmifDgETT2KaTkx8W6Iz8vqbjb71ID8OAWaC4nDv1MosUCeabDZwgswmVE4MTWnmRfe9lOxxAjiCENsxLDNC/yD3B+0jmINKjwR4RN4j3CmiD49lTulKn8gEbANnZJO8qY99ok2JddOW2Fy8BRzBSmAjdS2VUhABZoISCiYvRkwoGCNMaZ4ER3RLvmnOJ/TYMYnFTv2OpTv5HXqkgbZ9iNmgkRAzaM5MUEJBkt+q2SRkDqYcIWAbJI90SXJziSdNm08h42V02exIcifAqKEENtJwPbQx7dInwExQIjFiFiiRQAwww5zgBjRNsgkn5h/DEjKOoZirT6F0JblzOzbKto8wG+QYcmRxzARFDoBRzyyQIZHup21ATNfaF5ZxUnzBovmtzcVnfI3sts6mPXzPhsBGLF1nYy2G9hJgJqgXT5iNzAKF4TxVizmBTe0fuh8nWjfEfcWd+LiJTygptv2A2aBQ9P3rYSbIP+OjGpgFOoooSgPb4BfFkAFKObEOgDSySZOpy33ByGrKH2kazeMT2IgJ6/hmYMFcAswEzSU4sz+zQDMBeuhuTlIeRDsVyUnUKc7BwlzvH8RxMPpoDW0xZzYoWjicKuaN0U5xThK2ntSLTl4I2AY7L4omCtUTpqkTRdBtJgHD31Xyovtc6vvdTGSldt+U6tiS/GImKGK0ZRaI3wiLyL+pOuWTkKuTbdNfvrsn4GIfItbu4+JKoi2+zAa5ohtPDjNB8dir5k1c9WjXgc02uKVAxsw4pGALNhwn4CJeKe+Pxwksr8Urr7yyXp7XZXnMTFCkeD579uzku++++6qtnv8E20T8LaeY/BB/f/GOIXnuPsb+ECNq3Trb8ZSZoK/ffPPNlTzcctXdiy0pE2AmKFJ05OA5j6R68WpT/G/bxSzC4gObIIC5cW2fdBN0cdEm6S/Mf/nll+tFQ8jceWaCIgVQ7ge60gOoqZ7/+po0/HxP7aRCzP3EOVWpc/Y/9pU0otqOofxD+1B+XX6VhnVYMZYAM0FjiTloLwfRup0AORCLiB4COnC1B6+e5t43zZ0h8G4gCrwQmBP3lPZfL3AyFSpj+TuPHj06y9T8xZtNEhRhF3j8+PGNS2H8l+cvECmdPOacBP0RQnJoAlP3g9SS+dDcUtDXMVbfGNNTsBUbjhPgcthxRk5b8HJEpziPCkslAeoYOI/aT4NlEJiyn7JPxds3bPHicfl48ZijmZmgOfSm9V1P60avMQRS+Y956n/8Y3ylbf4EpuwnthNx/iSy9mCTtfULNZ6ZoICB57H4MLBTOTnwn3qYeJeoZew+zL4Wfi9ox4jH5cPHwIVGZoJcUBwog0cpB4Ka0aw9MM0QNbnrlP/qJyujY5EExu5DKez3RQZihFP6sIu8+40bpEcwS6EpSVDAKMhM0I2b5/gPzk0A9CQQ+0Qw9sTlxnOklExgzPgQe/8vOQ4232yxsT30YuvLunQIkAQFisXhhuh3AqlblJrYgz/Jz6J2t+DOjtm/Yh8LweEkpvD+/fvvfvXVV6eJmYU5PQRIgnrgON60diwPcUIg9qBv+2+QwEDAB4GhyZAeE7GPCx/+pyjTdvz/9a9/XadoKzbZCZAE2bk4Xas3RIvAG9eKbQeQU8WFC4s50A89IRUeAtyLQGDouBHz+IiAJRmVd+7cWSdjDIYcJUASdBTR/AZ6sxxviJ7P0UiI/Z/u0JOQsZdPCLgmMDQJJxFyTf64PB3reYP0cU6ptCAJChCJb775hlmgAJx9qxh64vFtB/IhYAgMSchJhAwtP5+2GDx9+nTtRxtSXRPgPUGuibbkyQ3RK/nP4F9bq2/ZDpx2G5avE4g5mBOv67FgKT0Cx44P9mF/MbOxf+WVVx7cvn37yp9WJLsgwEyQC4o9MuQguDEL1NOcTR0EbINMR1Onq/XEwcnDKVKEeSJwbD+NdQx5cjd5sbwzKPkQPTeQJMhznP72t7+t2yqODVbt9ktfjjV4E6el73n5+X9sn411LOVHcpzFNu622yDGSaV1CAJcDvNImUth8+HGGrRtg9p8b5AAgXAEjh077ONuY2HjzY+qumXsQxozQT6oHmRyKWweXNugMk/i8d56YuDkcJwTLdIncGw/jnF8pU/NrYWcA9zy9CGNJMgH1YNMLoVNhxtjgD520pjuDT0hEIfAsX06xnEWh4R/rTbWtnOAf0vQMIYAl8PG0BrRlkthI2C1msYYmG0DWMssFiGQLYFjxxT7v5vQ2jjzlJgbtr6kMBPkiSzToNPA2gaRaZKG9+IEMJwVLfMkoPt4334e47jLk+R4q3lKbDyzkD1IgjzRtk2D9g1CnszISmzogfjYiSEreBgLgQEE+sag0MffAHOza2Ljy1NiaYeRy2Ee4qO/FSbZ/1dt0bYDpN1mqcuhB2BisdQ9Db+VQN/xxrExbx+xseWS2DymPnszE+SBLtOf46DaBo1xEsa1ZpAfx4vW5RHgGAgb0y+//LIKqxFtQwmQBA0lNaKdbfqTQccOkATIzoW1EPBNoGtMCn1M+vYztHwbV7k6wC8HhA7EQH0kQQNBjWl2586dakz7pbYNPdjaBqelssdvCCiBrmMi9LG5gGhUC/AxSxdJghyHTR6Nr+QHU193LBZxMwl0DfYzxdIdAtkT6Do2SITchVbOCe989dVXp+4kIskVAZIgVyQPcn744Ycb055dg4xj1VmJCznAwj+rXQNjIxDoOkZCHqcR3Pam0sZTzg2VN4UInkyAJGgyOntHufZb2bew1hAIObDaBiNjB58QgMALAnqs2I6XkMfrC2uK/HbjH+QivczMKR6RdxgwHo0/DjPkgGob0I9bSAsIQMB2nHI8jdsvOhhyzh2H0XtrZoIcIuYxyH6YtkGhv8f0rQzY09nREwK24yfk8VtqBPSe0VJ9y9UvkiCHkXv69OmNHdw2mDhUmY2okAMozLPZLTAUAsUSsI1DtntGiwWQiWMkQQ4Dxf1AdpgkQHYurIVAygRsJ/GQx3LKbKbaxjliKjl//bg+6Ygt9wN1gww1cNoG7W6r2AIBCAwhYDt+OdaGkLP/PImw47w7DF+QVswEOcLM/UB2kLYB1N5y3loG5Xn86A2BLgK2YyvUcd1lU87ruS8oreiRBDmKB/cD3QQZaqC0DdI3rWENBCAwlYDtGAt1fE+1OYV+Nm7yY6pVCrZhw48ESIIc7Qlc670OMtQAaRtkrlvCEgQg4IIAx5oLirduff/995UbSUhxQYBrky4oigw56T9ri1ryoBEiCVoy3/a+xjIEQhFoH9sch/3k27y0tTDj3NuPLdhWZoIcoOYa73WItoP+eov5Swy88xkiAQJTCLSPvRDH+xQ7U+7D74ilEx2SIAexuH379o0fxmsPFA7UZCGCATGLMGEkBGYRaI9vHPfdONustKXcF3TjnNEtgS0+CZAEOaBruynagdjsRIQaCG2DSnawMBgCEFgsgb/85S/VYp1PzHGSIAcBuXPnDlm9A45DRJAADaFEGwj4J9A+FkP9E+TfM/8a5B9nzhn+MQ/SwM1ZgzB1N+IliT+yCTEAtgfd7qiwBQIQCEWgfexznN4k32akLYQT59+bqIKvYSZoJvJHjx4tPqO3HeAzsd7ozsB6AwkrIJAEAY7NaWHggZpp3Fz3IgmaSdT24isGhZlQ6Q4BCGRFoDnmhfinKCs4YmyTj7H9tddeW5nvfMYjQBI0k/133323miki6+4hBjzbAJI1NAfGh+DuwExELJQA++fxwH/zzTeLv4pwnJL/FiRBMxnL4/GrmSKy7R5ioCMBynb3wPCFEeBYHRfwu3fvkgSNQ+alNUnQTKyvvvrqezNF0L2DAINqBxhWQyBRAs1jNsQ/SYliGGSWPFRDEjSIlN9GJEEz+C75rZ8McDN2HLpCoGACzUSoYDdnuyb3BL2uTxfPFoSAWQRIgmbgk3c93NiBGQBmAG10hWMDBl8hkCkB/ll6ETjbmMbTxS/4xPpGEjSDvO3JsBnisunqe2CzDRbZwMFQCEDg2tNQvseLnHHbfnIpZ39ytJ0kaEbUlvhkGAPajB2GrhBYEAH+mTke7JdffvnG1YTjvWjhkgBJ0AyaS34ybAa23q4MnL142AiBLAnwz5M9bN9//31l38LaUARIgmaQXtrd/b4HMhKgGTsjXSGQIAGO6f6g/O1vf2MmqB+R960kQTMQ6939M7rTFQIQgEDxBEwi5PufqBxB3r9//90c7S7JZpKgidFc2u+++B7AzEA5MRx0gwAEMiDgexzJAMENE+VcsrqxkhXBCJAEOUTNiXwaTLhN40YvCORCgGP8x0h1cFjlEscS7SQJmhjVJT0ez39vE3cSukEAAjcIMJ5cR8IPqV7nEXqJJCg0cfRdI9Dxn9G1NixcJ8BJ5DoPlvIgwLFuj5O8dHdl38LaEARIgiZSfvLkyenErll144SbVbgwFgJJEzCJEOPKizDJuYQnxF7gCP6NJGgicvkFYHbciexMNzMgmmU+IQABCCyNAL8mHzfiJEET+S/h/Q78tzZx56AbBCDQScD888P40omIDQEJkARNhM37HSaCO3QzA+E8KfSGAAQgkDeBpb10N7VokQSlFpFE7PH5XxoJUCJBxgwIRCJgxgCf40wk10ar5aW7o5E57UASNAEnL7eaAI0uEIAABCAAgcQIkARNC8iq3c38Z9Nen+Oyz//OSuKUY2yxGQKpEGAseBGJpf0CwQvP438jCYofAyyAAAQgsFgCPv/pShEqyV9aUSEJmhCP27dvF/t4vM8BiYN/ws5GFwgUTIAxoeDgZuIaSdCEQL388suLeFHiBDR0gQAEIDCagM9/vkYbE6EDP50RAfpBJUlQPPbJafY5EPEfX3LhxiAIJEGAseHWLX46I96uSBIUjz2aITCLgM+kdZZhdIYABCCQCQGSoEwClbOZS/xPL/cEJXf7cz5elmj7EseIJcY5RZ9JgiZE5fvvv68mdEu6Cyc99+HJlanazUnJ/f6ARAhAID0CJEHpxaQoi5Z6MjV+55YIkQAVdfjhTCYE5JfkedgmUqxIgiKBT0ltbifqlNj12ZJbIkQC1BdNtkHAHwH5JfliX7vij5obySRBbjgiBQJWArkkQiTC1vCxEgIQKJwASVDhAY7pnkkAYtqQgm7DwUWi4UJGm4mRaexsb2cZAhCAQKkESIJKjexAv8wJcGBzmk0kYBKM1Hgbe4x9E92jGwQgAIEsCZAEZRm29I3mpHozRoaJSTxutgi7xthh7AqrHW0QgAAE4hMgCYofAyxYEAGTcJgEpM/1IW36+ndtU7lGtrGnqy3rIQABCJRMgCSo5Oge8c2cCI80G72ZE2s/MsPnGH9td6xNW9Ox9s3txo62DJYhAAEILIUASdBSIo2fSREwCUgzKfFtYFOX0e9bJ/IhAAEIpEyAJCjl6GDbIgg0kxObw8e2mz597ZrbSIAMMT4hAIGlEyAJWuge0DwpukTACXY4zSYrjYctJs02NsntPrb2zTa27Ta5rIMABCCwBAIkQUuIMj4mS6CdlDQTljFGd/Vrrm/rGiOfthCAAARKJEASVGJU8SkrAu3kpJm4GEds68y29qe2NdVsa+sw6/mEAAQgsGQCJEFLjr5j3znRTgfaZmeSGP1sb2tr0TZatJ353m7DMgQgAAEI3CRAEnSTSfFrOFGmGeKuZMfEy3x2Wd+1vUtulxzWQwACEFgKAZKgpUQaP5MiYEtYbOvmGk0CNJcg/SEAgZIJkASVHN2AvnGyHQ9bk55m4hOKYVvveMvpAQEIQKAMAi+V4QZeDCXQPOkO7UM79wRMwtNMSHSdVlcxMjrU+rbM5jb33iERAhAYQ+Dp06e7Me1p644ASdAEls+ePdtLt/cmdKULBK4RMMlIMxm61mDigi2ZMromiqQbBCDgicCrr7565Uk0Yo8QIAk6Asi2+ZVXXtnb1i91HSfX+ZE3DNszNlMlN+UY2VNl0Q8CEIBAqQRIgkqNLH5lQaCZrPgyuK2DpMgXaeRCAAK5ESAJyi1iM+xtnwxniKKrhUAufKfYSeJkCTirIACB7AmQBGUfQhzoIjDlZN8la+nrQ7Ik4Vr63rY8/7/77rt6eV6n4TFJ0IQ46A772muv/WZC1+K6pHzCOmZbyBN7cYGf4dCxuMwQTVcIQAACowiQBI3CReOSCPg4GZeWWPlgVNI+hC8QgEDeBEiCHMVPT36cMBzBzFjM1H0gRPI01baMw4HpEEiOQMexvk/O0IUYdHshfjp1U94TdCKXxL5qC035JNNx4LVdGL2css+jnYncwUeMiE/koKIeAi0CtuNcjlPOxS1OoRb52YwJpG/fvs2LrYQbJ9gJO4+liw6KzYHRJde2bIt6VkEAAhBYLAEuhy029Dgem0BX4tNcP9dGTaiaiZDLBGuubfSHAARu3Xr8+PEXcIhHgCRoIvsnT558Lq8656czJvJbejdNTGwJicsEyDBu6jHym+tMOz4hAIHwBF566SWuLITH/pNGLof9hIIvEAhHIFQSYpIe45nqDaXb6OQTAhDoJiA/nkoS1I3H+xaSoImIc/rV3/aJcKLL17pxIr2GgwUIQAACkwjIFYXdpI50ckKAJGgiRn71dyI4unUSsCWrzWSz+d0mxGw3n7Y2rIMABCAAgRcESIJesBj17e7du/tRHWgMgR4CcxKgZtJjvptPVWmT3WMKmyAAgYAE+MmMgLAtqkiCLFCGrPrLX/6yH9KONhA4RqCdpGgCY5KY9rZjsprbjQxdN0dOUybfIQCB6QQ4Dqez89WTJGg62X27Kzt4mwjLxwg095lm8tPs10xmmuvb35uyzLZmX9t2045PCEAgDoG33nqrjqMZrUqAJGjifiA77n5iV7pB4DmBZlLSTFbG4DH9zKetb3NbU6etLesgAAEILIkASdCMaC/1JVfNk+oMfIvu2kxGung22wyF1dWnqaOrzVAdtIMABNwQ0PfNuZGElKkESIKmkpN+vORqBrwFd20mIc3kxIbk2PZmn2Ntdbtp07ShKYPvEIBAOAK8Iygc6y5NJEFdZAasf/nll+sBzaI24WQXFX+vcpOQdDU6tt3Wb0gf04Z9w0aQdRAIR4B3BIVj3aWJJKiLzID133//PW/6HMCJJi8ImMTDJCIvtoT9ZvQbe8JqRxsEIKAE5BzCixIj7wokQTMC8OzZM3bgGfyW1tUkHCYBie2/scPYFdse9EOgZAK240zOIfwjHTnotyPrz1q97MAn8qKrr9pOmJNLe32MZduBN9eOlPyb60uo/hoHF9za8XQp04WsUDzRA4HcCLSPXbVfjjnOwZEDyUzQjADcvn37Sl6a+PUMEXRdAAFXCZCi8pGo+JC5gLDiIgRmEZBzx8NZAujshABJ0EyMkggt6pIYJ8xxO4zLBGic5nGtNa62/1THSaE1BCAwlMAPP/ywqHPHUC6h25EEzSSewxNiM12k+0QCuSRAxj0SIUOCTwj4J8CTYf4ZD9FAEjSEUk8bfki1B86CN+WWAJlQMdNnSPAJAb8EeDLML9+h0kmChpLqaCc3Rt+Y0uSyQgesBa0mmVhQsHEVAkcI2M4JPF18BFqgzSRBM0E/ePDgRhI0UyTdIQABCEwiYDvZThJEJ68E9IEafn/SK+LBwkmCBqPqbsjvv3SzYYs/Asw2+WOLZAj4JLC0B2p8spwrmyRoLkHpL7//wmyQA46IgAAEILAEAjxQk06USYIcxOLevXskQQ44IgICEIDAEghwU3Q6USYJchALbo52ABEREIAABAokYLtP64033qgLdDVLl0iCHIRNb47mzdEOQCICAhCAQOEE9E3R+msDhbuZjXskQY5CJW//rB2JcibG9h+IM+EIggAEIACBKQTqKZ3o44cASZAjrrz90xFIxEAAAhAomABPhqUVXJIgR/GQ+4LqtihmYtpEWIYABCCwHAK2c8CdO3fq5RBI31OSIEcxkhdfsWM7YokYCEAAAiUS0HtHecFuWpElCXIYD16a6BAmoiAAAQgURiDFe0cLQzzaHZKg0ci6O6T2AizeKNwdK7ZAAAIQCE1AfnC7Dq0Tff0ESIL6+Yzayn1Bo3DRGAIQgECxBLgfKI/QkgQ5jJPeF8T7ghwCRRQEIACBQgjo+4G4Hyi9YJIEOY4J13wdA0XcDQJc5ryBhBUQyIFAnYORS7ORJMhxxLnm6xgo4iAAAQhkRsB2Key1116rM3NjEeaSBDkO87Nnzy7bIm0HRLsNyxCAAAQgUC6BV1555ca5oVxv8/GMJMhxrOS+oL1e+3UsFnEQgAAEIJApgcePH3/B74WlGTySIA9xkfuCyPg9cEUkBCAAgRwJyKUwzgmJBo4kyENg5LXoN3Z4Lol5AI1ICEDgBgHGmhtIgq6w8f/rX/9645wQ1CiUdRIgCepEM30Dj8pPZ0dPCEAAAiUR4NH4tKNJEuQvPmT+/tgiGQIQgEAWBLg9Iu0wkQR5io/cBHcjCbJNk3pSj1gIQAACEAhMwDbG89qUwEEYqY4kaCSwoc3feOONemhb2kEAAhCAQHkE9BcE3nzzzRv/EJfnab4ekQR5ip0+DvnNN9985kk8YiEAAQhAIH0CJECJx4gkyGOA7t27d+MAsE2XejQB0RCAAAQgEICAbWy33RYRwBRUjCBAEjQC1timvCF0LDHaQwACECiDAJfC8ogjSZDHOOklMTkQPvWo4qhofmzzKCIaQAACEPBB4MaVAB9KkDmPAEnQPH5He9umQ23TpkcFJdIgZ9sTQejEDJJbJxgRAgEnBDrGxa0T4QjxSoAkyCveW7f0yQCdFvWsBvEQgAAEIJAIARnzH+pLcxMxBzN6CJAE9cBxuIlpUYcwEQUBCNwk0DEbcbMha7wT4AWJ3hE7U0AS5AxltyB5WdZFeysDVpsIyxCAAATyI2Aby+X3I2+M+fl5tgyLSYICxPnBgwc7nR4NoAoVEIAABCAQkcDjx4+/kEth+4gmoHoEAZKgEbDmNJUbpG/8Z2D7D2KODvpCAAIQgEA4ArYx/P79+zfG+nAWoWksAZKgscQmtn/27NnlxK6zu/Ek0WyECIAABCAwiADvhxuEKZlGJEGBQqHTo/yMRiDYqIEABCAQgYC+F07fDxdBNSonEiAJmghuSje5QXrb7mebTm23SW05R5tTY4g9EIBA3gQ6xsFt3l4tz3qSoIAxP7wziBukAzJHFQQgAIEQBHg3UAjK7nWQBLln2itRrhdv2w06/qNoN2MZAhCAAAQSIGAbs1977bVNAqZhwkgCJEEjgc1tLgcKTw7MhUh/CECgl4DtJN3bgY2zCMgs0NfcED0LYbTOJEGB0etNc3rzXFut70GLJ8TaxFmGAARCEPA9toXwoamjw59LbohuUsrnO0lQhFjZ3iAdwYxZKjsGglky6QyB3AjoccCx0B01ZbOQf8A23RTYkjIBkqAI0dE3SD958uTztmoG0zYRliGQNgFzgufYvRmnpSRA+uoT3hB9M/65rCEJihSpV199dRtJNWohAAGHBEiEbsIsNQGyJbv8TtjN+Oe0hiQoUrRk4NzqI5Uh1ZvBOqROdEFgCQTMsWU7SS7B/6aPpSZATR/N98PvhNVmmc/8CJAERYyZ7ZFKBtGIAUE1BGYQIBG69fz+KMNhBsoku9rGZn4nLMlQjTKKJGgULreNZbDQ2aCv3UoNJ802KITTjiYIpEfAJAChj43Q+mzk1Qbjv217aet0Jl/H8NL8Wpo/JEGRIy7vlrjx3qAUBrTIWFAPgWwJmERgScdx6b7a/LPN5Ge70y7YcJKgyMHXlyeGnA0yA3Rkt1EPgaIJmOPMdvIszXHjo/G5NP9s/uiYzcsRbWTyW0cSFDlm+oItZoMiBwH1EPBAwCQFJknwoCKqSPXL+GZ8jWqQJ+XGx6Z4HbN5OWKTSL7fSYISiF3o2SCXLtsGCJfykQWBnAmY5KC046Tpj/Ex5ziNsV1ngXTMHtOHtukSIAlKIDbMBiUQBEyAgCcCJkloJg6eVAUR2/TD+BZEcQQlTV+NemaBDIkyPkmCEoljyNmg0geuREKKGRD4iYA55mwn1Z8aOf7iQ1dTpvHJsdlJi2MWKOnwTDKOJGgSNvedcp4Nag6M7skgEQJlEDBJw9TjZWo/Gz2VNVZes73xxSa7lHVNf41PzAIZEuV8kgQlFMuQs0EJuY0pEFgMAZM8TElCXEMytgyR20wIxvQbIjuXNswC5RKpcXaSBI3j5bV1yNmgpQ5kXgOIcAiMJNBMLoZ0Hdt+iMxjbZo6lzJuNH02fOSf1HOeCDM0yvkkCUoslswGJRYQzIGAYwLtRMJ2wrWpbPeztRmyTvUNldW0bWifITbk1kZmgXg7dG5BG2gvSdBAUKGa6X8a+h9HW19zMGpvS2E5dftSYIQNEDAE2gnFmONnTFujb8pnU0/b3inycunT9NvYLGPyxnznsywCJEEJxlMGHOsvzNsOzjnmL2lgm8OJvhDwQaB9/A05vtt91K4h/Yz9Q9pqm2Y7m04jr7TPpt/GtydPnnwuDLZmmc+yCJAEpRvPdbqmYRkEIOCCQDvBsJ2EbXqGtrP1betstpkjtymnpO/Pnj3blOQPvlwnQBJ0nUcyS2+99Vat/4G0DUp5kErZtjZHliGQCoF2UuLrODom17a9bVsqzHzYYfP/m2+++UzHYh/6kJkGAZKgNOJgteLOnTs37g2yNpyxckmD3AxMdIWAVwLt41BPyLaTshrRbjvGsGbfpg6brmbbMTpKahtiDC6JV46+kAQlHLUHDx7s5KmET9sm2gasdptYyynbFosJeiEwlYA5nsxnU45tXXN783u7rVnWRMd8b7ZfWgJkY/D06dOPZRZo3+TC9/IIkAQlHtM333zzXF/SlbiZmAcBCMwk0JV4mBO0+Zyp5lrSY5PZZcdcvan2tzHgxYipRsu9XSRB7pk6laiPzEvdtIXaDtx2m6HLSxv0hnKhHQRCEzh2LJrj3rQzy312mjbax3zvam/kdm1fynpejLiUSN+6dXs5rubt6R/+8Ifd/fv332174WrQOjY4tvUeW3Zl1zE9bIdASQSGHodDEpqxXJZ4zNp46wMpMgNfjeVH+zwJMBOUSdzu3r3r/SbpTFBgJgSyJWA76TadGZqIHJPTlMn3cQS4GXocr9xbkwRlEkF9TFMe1/xt21xXg+HQwbetn2UIQGA4ATODo8dt17Eb61jssqfpXZ/dzXY5fLf5qzdD6wMpOdiPjW4IcDnMDccgUuSlXSePHj3ay/Xq19sKXQyctkGhrWfMsgubxuijLQRyItA83mzHSnN7CL9sNqjeth1d7ULY6EpH2yeVq78PJpfBTvmRVFeU85DDTFAecXpu5eEm6bUvk0sY3HyxQS4EXBPQ480cc3pSNtXoMdvMss9Pm66mPcZWWzufdgWWvSYBCkw8AXXMBCUQhLEm/PGPf7y8d+/e++1+LgYo239IbT1jll3YNEYfbSGQKwHbsafHj229Sx+bx2hbV3ObS50xZbV9VFv0zdBvv/32WUy70B2HAElQHO6ztP75z39eiYBdDpfFShxEZwWPzhA4QsB2kj7SxfnmUo9bG1t9J5BcBlsxC+R8N8pCIJfDsgjTdSP1LaZywG6ur01zyTbopGkpVkEgDQKagMRKQmLqjkVfxlIug8WCn4BeZoISCMJUE+Qm6frVV199r91/7gDqOnGZa0/bP5YhsCQCro9HG7slHKM2jlwGs+0Ny1pHEpRxvH1eFrMNGHNQLWGQncOHvuURcH0MpU4o5WPcFgsug6W+R4Wx76UwatDig4BeFpODW1+i+IkP+ciEAAR+JGA7icLmOoEpjGImTlwGux6/pS4xE1RA5H09LTZlUOvDGXPA67OLbeURcL3vlkeoPI+6xhfbviCzQJ/KP5Hr8ijg0VgCJEFjiSXY3tdLFG2Dxxz3uwapOTLpWwYB1/taGVTwwgcBvQwmP0P0P8vbof+/PvnyxNiOJ8b6CJWxjSSojDjekvuDKnlk/vc2d+YkH65PTnNssfnGOghMJeB6355qB/2OE5gybnTFV5KgX+nPEB3XSoslECAJKijKclnsQl6i+FHbpSkDiJHRNZCY7WM/59gyVhftIeCTgOtjw6etKcgOfezb4qO/Dfbzn/98kwIPbEiDAElQGnFwZsUf/vCH3f37999tC5wzANkGk7b8MctzbBmjh7YQSImA6+Mopm+pH8M21k+ePPlcLnFVMbmhOz0CPB2WXkxmWfSzn/1sLdO9dftt0joopD5wzXKczhBInMDY4892Ivfh4li7fNjgUqaNm94HJDrWLvUgqwwCzASVEcdrXsggsJYV1sfmpw54toHlmtKRC1PtGKmG5hDIjoDrY20ogBKOyS52Mgv0TzILdDmUBe2WQ4CfzSgw1jKYbeU/n08LdA2XIFAsAT2Bt0/iIRMTm/4SYMtboX9LAlRCJP34wEyQH65JSHV9f1B7gJ7rZMgBfq6t9IeALwLt46p5XLS3+bDB6GvrMut96PQhs22/6uA+IB+ky5JJElRWPK954+NnNWwDzTWlIxZyG2RHuEZTCPQSaB9HtmOh3aZX4MyNbf1N3e1tM1V56d601yjQ+4BkBohfhzdA+LQS4HKYFUsZK/VnNcSTM5s3tkHD1s7nuhRs8OkfsiHQJqD7vNnvNbkw1dauvc7nsrHJ6Gja1bTZbE/ps227sU1eiFjxskNDg88uAswEdZEpaL382vy5/Nr8P9tcmvJfXtegY5N/bN0U/cdksh0CuRNweYyNYdF3PBqb+tqM0eWirbHJIutDsXNrWc8qCFwjwEzQNRxlLsiU8EWqN0r3DGJlBgOvIJAwgb7jUZOfHBIgHetIgBLeyRIzjSQosYD4MkcSofPHjx9/0ZbfN+i125pl1wPhFBuMLXxCAALDCBw7bo9tH6Ylbisd4/hh1LgxyE07SVBuEZtor14bl2vkZ3qzYFvElCSkhAGzzYFlCKRA4Njx2Dz2mt9ttre3t5ebfVRv3/Zm29jfbYxkbHv49ttvV7FtQ39eBEiC8orXLGv1Rmm9WdBVIjTLmFZn26DWasIiBIoncOw4cJGkGBnmswn1mP5m21jfbTbqmKb/5HEjdKyo5KuXJCjf2E2y/MGDBzv5SY1zW2fb4GJrZ9bZBlGzbcrnWP1TdNAHAqkSsO3/zWPMfDftzPIxf0w700/bm3Xmsymj2a65PoXvXbZJ8rPWsS0FG7EhLwIkQXnFy4m1MvBt5SViv7YJ6xpkbG1ZBwEIuCFgO+6aCUrzuxuNL6So7LZ8mz0vesT51mPTh7wROk5MStBKElRCFCf40PfEWM9gc0NTe/C80WDkijG6R4qmOQSSJGDb55vHVfO7adtcN8SpIe3bbYyuIfJ9t+myRS6D8SSYb/iFyycJKjzAfe7pUxTyuzqf2dp0DTq2tu3B09ZmzLoxusfIpS0EciAw9nga0/7YsdWWdax9CJ5dNmgCxJNgISJQtg6SoLLje9S7X/ziF2vbo/PasWvwOSqUBhCAwCAC7WOsnYTYhAxpM6ffVPk2nXPXtfkYeTwKb0jwOZcASdBcgpn316cp9LHSuYmQ64Gza/DLHDfmQ+AnAu19/Ngx1G7/kyAPX5q2hNTbdKVLr45VPArfJMX3OQRIgubQK6SvSYRsj86PcbE5cI7p19W2axDsas96CORCoLlv63Ez9NgZ2q6PQ1N3X7umrqF9+uSN2dalzyRAPAo/hiZt+wiQBPXRWdA2HVRcvEOoOXC6wNc1GLqQjQwIxCDQ3KeHHi/NPnNsHqrP6Gi2d2WDkd312aWHdwF1EWP9HAIkQXPoFdZX37PhIhEqDAvuQMAZgeYJvplgDFEwtv0QmUPaqF6ju2n/kL6u2hwSoEpf+OpKJnIgoARIgtgPrhFwkQiZAfOa4BkLsQbeGSbTFQI3CDT3Y9fHyA1lsqJLh65v2mLra1tn5E3pa5NnW2eTbRIgXoZoI8a6uQRuzxVA/zIJfPXVV6dPnz6t5e3Sr7c9NINhe3172TagtduMWR6qd4xM2kIgBIHmseBjP27KN/740KOyjS6X8o1MY7v5JAEyJPj0RYCZIF9kM5fLjFDmAcT8ZAg0T/AuE4dYDhofmn7NsaVLDgnQHKr0HUqAJGgoqQW2O5YIdQ1eC0SFyxCwEmgeIyZ5sDbMbKXxpenfFBe6+pMATaFJnykESIKmUFtQn75ESDF0DWIGkRkszfLcz2P65sqnPwR8EHB9HPiwcaxM49PUY7KrHwnQ2EjQfg4BkqA59BbSl0RoIYHGTacE9CSviYJJFpwKT0SY8a0roekys6s9CVAXMdb7IkAS5ItsYXJJhAoLKO54JWASIK9KEhE+NhEiAUokcJjxnABJEDvCYAIkQoNR0XDBBJaUAJkwD02ESIAMMT5TIUASlEokMrGjkQg9tJncNcjZ2rpYF1qfC5uRUS6BWAmQSUJikjU2dB2TXev1pzDefPPNlY4tMe1H9zIJ8J6gZcZ9ttfPnj07+eMf/1jfv3//XZswMyDatnUNhra2Q9f16Rsqg3YQmEMgVgJkbG4fV7GOCWNHU79ZZ2w1n/wWmCHBZywCzATFIp+5XvOjqzqI2VzpGvS0bXNwtPVlHQRyI6D7O/v1j1Frc+gaC548efK5/ho8P4aa295elr0kQWXFM6g3JhGSJzo+tSnuGvy0bXugtPUfs65P1xg5tIXAWAIkQDeJ6fGtXLqOSx0z5BIYCdBNdKwJTIAkKDDw0tRpIiQ/arjuS4S6BkISodL2huX5QwJkj3nXMa+tv/nmm9/qmGHvyVoIhCXAPUFheRetTQa+tTj4SZeTXUlP34DZJatvfZeevj5sg0DuBNrHUazjoG1Hi+uHYte2tY5FCEQjwExQNPTlKdbBTa7z/5O+8MzmXdfg6Hqw7tJjs4l1EICAOwJdx56OCVJ/RQLkjjWS3BBgJsgNR6Q0CPT9Ar0260p6ugbQhuhRX7v0jBJCYwhkQqB5/MTY95v6m8gk+Xl49+7dMx6Bb1LheyoESIJSiURhdhx7hF7dtQ3UXQPpVDw2HVNl0Q8CKRNoHjsh9/um3jYffQLsjTfeOOMJsDYZllMhwOWwVCJRmB066P3yl788lf8CrU+Oqbu2wdP14G3TURhq3IFANAJ9x5ce+zwBFi00KB5IgCRoICiaTSOgT4HIf4O/7uptG0RJhLposR4C6RCwHbsN6z7kCbAGDb4mS4DLYcmGpizDjt0npN62k58jg+wkQG0dk4TQCQIJEmgeLz7386aeNgbu/2kTYTl1AiRBqUeoIPv0PqEvv/zy8tVXX32vy6324N034HbJOLa+reNYe7ZDIAcCzWPF1z7e1NFmwv0/bSIs50CAy2E5RKkQG/U+Ib1HQF+W1uVSe5D1MZi3dXTZwnoIQOAFgb7j5unTpx9z/88LVnzLhwAzQfnEqihLHz16dCYzQ9vXXnvt9S7HmglQ3wDc1f/Y+qb8Y23ZDoHUCTSPEZf7dlNum4Fc/tJ3gp3J/T91exvLY3KQbQAAOqZJREFUEMiBAElQDlEq1MY///nPK5kd2g69PNY3GE9F5PJkMdUG+kHABYHm8eFqv27KbNvI5a82EZZzJEASlGPUCrP522+/3cjL1H7T55YZ1PsG5b7+fduM7L42bINA6gSax8bcfbopy+a3PvEpl78ubNtYB4GcCJAE5RStgm09PD12KZfH3uly0wzsxwborv7H1hv5x9qxHQKpEjDHxpx92ciw+fj48eMvfvazn615+7ONDutyJEASlGPUCrVZnx6Te4UuJBH6oM9FHeD7Buq+vse2zTl5HJPNdgj4JmCOiyn7senbZaM+0PCLX/xiw9ufuwixPkcCJEE5Rq1wm8fcNH1s4J6CasoJZIoe+kDANQFzPIzdh00/mz367h9Zv+bmZxsd1uVOgCQo9wgWar/OCv3pT3/a3rt37/0+F3Ww7xvA+/r2bRt7EumTxTYIhCJgjoWh+69p32Ufsz9dZFhfCgGSoFIiWagfQ2aFfLo+9GTi0wZkQ2AoAZPUHNtvTbsuucz+dJFhfWkESIJKi2iB/gy9V8iX68dOKL70IhcCYwmY5KZvnzVtumQz+9NFhvUlEiAJKjGqhfok7xWqxDV9wWLnE2Q+Xe87sfjUi2wIDCVgEhzbvmq2dcnSJ7/kVRXn3PvTRYj1JRIgCSoxqoX7NOS9Qr4Q2E4uvnQhFwJjCZhEp7mfmnVdsvStz6+88srFz3/+801XG9ZDoFQCJEGlRrZwv4a8bdonguZJxqceZENgDAGT8Oj+ab739ZdLX5/duXNHZ3/2fe3YBoFSCZAElRrZhfh1uHFa3y0U/BIZidBCdrKM3ByS+Kg73PicUVAx1SsBkiCveBEegoDeOC2D+vl33313LslQ5w+y+rKFZMgXWeSOJXAsCeLS11iitC+dAElQ6RFekH96iUzc3Rx747QPJCRCPqgicyiBY8mPypEE6FP5va9z3vg8lCrtlkCAJGgJUV6Yj/oUmQz0m75fp/eFhGTIF1nk2ggMSX701971vh9+78tGkHVLJ0AStPQ9oGD/Yz5STzJU8I6VgGtDkx+5VLzhkfcEAoYJyRIgCUo2NBjmioCcMNZyKUAvkwW9eZpEyFUEkWMIDEl+ZF9/KPv6Rva/renHJwQgYCdAEmTnwtoCCZAMFRjUBbg0JPFRDJr8/PDDD7u33377bAFYcBECTgjccSIFIRDIgID+ZyyXBlZi6od6wghlsp7Ehp7IQtmEnvQJDN1vDvvyh7pvy31wu/Q9w0IIpEOAJCidWGBJIAIkQ4FAo2YSgSnJD5e+JqGmEwRukQSxEyyWAMnQYkOfnOMm8RkyY6hPe4kDz2d+SH6SCyUGZUaAJCizgGGuewImGZLLCr86nGDcK7FINCc+yyZWLYTAmH1A903dR+VdPxXJz0J2ENz0TuAl7xpQAIFMCBweJa6++uqr06dPn+rbpz8IYXrzv385uYVQiY6IBJrxHmKGJD6fSjt91H0/pD1tIACB4QR4Omw4K1oujEDj5zjWPF6/sOA7dndC4vNQftl9K/vdxZg3PH/77bcbfg3ecfAQVzQBZoKKDi/OzSFwOPlsRMZGTmJruRyxDvUWanPSZGZoTgTj9zVxHGrJ4XLshcz6XA7tQzsIQGA6AZKg6ezouSACh3swtvr7ZPIulnP5GQKdHfL+Y63NkygJUR47XDNmQyzWR9xln7qUfUqTn/2QPrSBAATcEOBymBuOSFkggUePHp3JvUPre/fuvR/afRKi0MS79Y1Neoykb7755rO7d+9u5UZnZ7M+XA4zdPmEwDACJEHDONEKAp0E9N6hL7/8cv23v/1tff/+/Xc7G3raQELkCWyP2KmJz+PHj7946aWXtm+88cZ2zL0+PaZc2yR2rQ+zltfWswABCNgJkATZubAWApMINC6XnYW+mVoNJiGaFLajnaYmPSpYL3dJwnMhyfKl78td+qPBoqM+6hANIACB5wRIgtgRIOCJgD5q/9e//nUt93r8D5IQ/See1HSKJSHqRHN0w5ykR4XLjM//K4nP//V3f/d32wcPHgT7KQuSoKOhpQEErhEgCbqGgwUI+CGgCZHc/FrJJbP/RS6Z/ad+tPRLJSnq5jM36VHJMuPzpcT4f5Ok9//wPePT5QlJUBcZ1kPAToAkyM6FtRDwRkAvmckN1f+dnDD/nZww/wtJiu56U3ZE8BITIxcJj8Eqic/XcnPzf/i3f/u3f//LX/7yoVkf65MkKBZ59OZKgCQo18hhdzEE5MT1P4oz/07qfyWXzaK/MrqUxMhlstPc2TTxkQT2/5YE9n+NNePTtKf5nSSoSYPvEDhOgCToOCNaQCAYATmJ/Zcys/CRzCxUMkP0nwVTPEBRismRr0SnjUMSnz/Juv9TYvO/h7zHp23HsWV9UtHHU2fH9LIdArkSIAnKNXLYvQgCci/R/ySXznSm6L8J8XJGV1DnJkyhkps+fyXx+X8kofgPMuNTp5z49PnANghAoJ8ASVA/H7ZCIBkCMku0kkSokp9W+O/lBuv/WmaK3kzGuAIM0Xf4SNJTy2xPLe/xqZlRKSCouACBIwRIgo4AYjMEUiVgkiJ58/CpXAb5byUp+s9TtTU1u/S+Hklydi+//HL93Xff1fLW5h1JT2pRwh4I+CcwJAlaixlatdTP/x7/cyVNjr0bYyVttB4rJ9LgVKrKOz/WmO0QWDIBvTFWTuaaFJ3K5yrUD76mzPwww7MXFrvvv/9+J2x2qd3QnDI/bINAyQSG/IDqSgC8d4BgPktmgm8QyJaAnNxrMV7rT0VnjGRh9corr+iltBO53KNJkl5ae+enRhl/MbM66oLO7Eiic6WJjizuSXYyDiymQyAAgSFJUAAzUAEBCPgicEgE9iK/buswCZIkRPruopVul0TpVBKlE/2uM0qhb8jWmRvR/63MZP1NbRC7djKLc6XfGwmOLpLkKAUKBCAwmQBJ0GR0dIRA/gQaCdIgZyQpOnn06NHpoMb9jUhg+vmwFQIQCEAgpySoDsADFRCAQA+Bw83DdU8TNkEAAhDIhsCdbCzFUAhAAAIQgAAEIOCQAEmQQ5iIggAEIAABCEAgHwIkQfnECkshAAEIQAACEHBIgCTIIUxEQQACEIAABCCQD4GckqB9PlixFAIQgAAEIACB1AmQBKUeIeyDAAQgAAEIQMALgSFJ0MqLZoRCAAIQgAAEIACBiARIgiLCRzUEIAABCEAAAvEIDEmC4lmHZghAAAIQgAAEIOCJAEmQJ7CIhQAEIAABCEAgbQI5JUH7tFFiHQQgAAEIQAACOREgCcopWtgKAQhAAAIQgIAzAjklQc6cRhAEIAABCEAAAhAgCWIfgAAEIAABCEBgkQRIghYZdpyGAAQgAAEIQIAkiH0AAhCAAAQgAIFFErg9wOtnA9qEaDLE1hB2oAMCEIAABCAAgQII5DIT9EUBrHEBAhCAAAQgAIGECOSSBF0lxAxTIAABCEAAAhAogEAuSVABqHEBAhCAAAQgAIGUCLw0wJiPB7Tx3WTvWwHyIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEHBA4LYDGYiAgCsCJyLo9IiwK9m+O9KGzekQGBLTLmv3skErBQIlEdAxTo+LqaWe2pF+NwmQBN1kwhp/BMwJUQeBlVT91PLejx+j/z6UHvtGreX7TuqVVIo7AiciysRqJd+1alkdqn7Xom1ef/7N35/PG6Lrw/e9fGrVuO+kUiDgk0DVEN78rvv/SWPbSr6/01j29dWMgyq/eQzUB4V6TOh6ioXAbcs6VkHAFYFTEVQdqn4PMSCImls6KOiBfy51L5XST0BjcyK1OjQzyytZDhWzg2onH1+LlJ3U/aHWje/ylQIBKwE9Bsy+r59aqud/f0z4czwWDuY//9B/IK6k7g51f/iUj+UWkqDlxt6H5yci9Exqdfj0PSsganrLr2Rr3dtiORtX4qrWSqrG6VTqSmruA7u4MLiY5KiWHrtD3csnZTkEVuKqVt3/9TioDp/vyudSy+fiuDkezOdiWNw+4qnuJKc9bRTYVc/2oZuqnoaudPSo8LKp7dNetGh1WU5E2GlLYN1aDrG4FiVnUt8PoWyEjl9J23pE+1KaVuKI7herw+d78kmxE3goq+tG3ct3Sv4Emvu/+b7kRGdMRPWfhbpRd2M659b2WBJUiUO/j+zUP4j+fWQbpqh/NqWTgz7HYupAxXMRK/m7kXomNfaMj5hgLb+StbV1SzkrK3FFB3lTGejnxfYL6V5L3UotevAX/0ooK3HC7Pv6qcscAwLBYdGk6FJqffi8ks9iyrETZiWexk6CjtmYajBKTYJ0n9hIfU9q6qW0JMgM9pWA1+8M9n73wIciXgf/C6l7qZS4BCpRr/v96vCZwxgkphZXPhOP9LjQelWcdy2HKlnWk3nM2jIpm8VYzHwBqkRwLTWWX1P0qs05l0qM30itpepgM4UBfdxw2wn/tVSKfwInoqKSupF6KVXZsx+nyUDjs5aqMSuyVOJV7J0vV7AxuNUeYK1EpsqN4c9cnWdidy5FBxG190LqTupc3+nvh+GVxGYj9UQqZT4B5VhJ3Ui9lLqXyr6bHwM9LrZST6UWVSrxJuYOucuYZgxutWNeG5EXww9XOtX+VMuJGHYm9UKq7ueufEZOGJZXErON1BOplGEElFUldSP1UupeKvtreQxqietaahGlEi9i7qR1xhRjcHPF61S476TG8MGlzo34kGLZilEu/URWPJ5XEsvzFHeyBGyqDmy28rmXyn66LAYa87XUrMtarI+549YZ04vBzQUvHdBj2O5D5ybR/UdPnD78RWY8rjuJaZXo/hbaLGXBvggDsw/sZX9YS02y3Dli1erIdt+b9WRBCUPgRNRspf5zGHWL1vL6or0v03l9Uu/3Ui+k6rG05MJTi0uO/k3f35FVn0jdSz2TmlQ5lgTFNnYX24DM9E/lpYN2LfWDzPzN0dxVjkZj82ACH0nLWurp4B40hMAyCGgy9DuptdSV1CRK6klQEpAyMuJqgq06WO+k8t/bBHgTuqwm9KFLXgT0WKqlrqVSIACB6wTek0U955xfXx1niSQoDvdUtGoCVEvVDL3EUiXo1CpBmzDJPYHXReQnUi/ci0YiBLInoMfHP0utpa6kRiupJ0GaLVL8EDAJkO6MlHAEVuFUoSkBAh+JDdsE7MAECKRIwMwKncUyLvUk6CoWmML1noh/tVQSoPCBXoVXicbIBD4Q/dvINqAeAqkS0PPQ76RexDAw9SQoBpOcde4HGE8CNACSxyYrj7IRnS6BpSRCVbohwLLECeisaS1Vz1HBykvBNKEoBIH9ACWX0ubdAe1KaBL0YBoI7HRgu9yafd4yeC/LWocUZdKMlU6Rl1g0EdKyfv6XPxCAQJuAHvu11ErqlVTvJfUkqPZOYFkKLsTdUk8wtkimmOy9bjM04XVfiG06GO1an2pyrX88lpXIbtZTWdb6jtRciyZCtdStVAoEIHCTgI7be6mVVB13vJZjSdDKq/ayhevJI6WT8JnY81HZyJP3Tk/gKZaHYtReai31SqoOPFr1e8yyF+VabaWSlabmlth/IrYbxvKVAgEItAjoP4u11EqqHiveCkmQN7RxH/trubWS5W1rHYvhCZyEV3lDo1620kFlf/is5TPHUovRWk05ky+m6gCaetmKgaepG4l9UQiY2VdVrvtIDvuzD1BBEqFjSZAPx4bK/Hpow0TbxdhxrzpYXMr6GPZ0mBN09Ylo6+IS1BBRVgVWqIPpTmp9+NTvpZZLcUyrljOp51JTniF6V+zbHKp8UAokoP9waNlJvTpU/W5Kbb6M/DyV9ieHqt9Xh6rfSxvn1Z9aaiV1JzV4qUXjs0hVdedcYnCz8drIyhi2pKKzskGJtO7Ccyx0kFAdZ1JPpC69VAKglprKvti240psKy1OVcK82/xdLO/E30upG6lrqZXUmGUlys+kbqTWUl34mIKMK/HlRGrwUovGWABUd84lBrc2r1NZEcOOqTp1R6+l7hzaXYmsVEothkxlY+u3F3lbqWdST6RS7AQqWe1yn7LFYuq6jd3kbNdWYvlUFqn3q8W3C6lrqZXUXIqOD2r3XmrqjPvs02P4RGrQUou2PqN8blPdORefbLpkt3npTtPVNvR6tWUrdSP1TGoldcwOre21nkvdSK2l7qUe86OSNqmUKzHkmL3Htu9ExoXU01ScysiOjdh6jG/o7bpPnGTE8JiplTQIzdCHvr34cSn1XOqp1FKK+nIhdS/VBzffMi/F7qClFm2+neqSH9xZx2S7/PK5vunCJmLs1MedVLWhkuqznIjwSupGqu4zV1KbjNeynEJRO5t2jfm+k77nUldSKfMIVNK9vY+MiYWPtut5LiXVuxJrfDDyLXMvdm+lrqWupC6hnImTl1J9s3Ut/yJkcOqIgDYhHfWgy3Xgj8nTgd2UU/lyrL2P7TvRey51JTVmWYnytdTLw6d8RC+VWDCG+V7ap8BSzCiurMQj3VfHxMNnW7WllFKJIz5ZuZSt44MeY6dSl1xW4vxW6pVUl3x9yjoTW4OUWrT4dKRP9iaIh/6U9PnmY1vdcGUn333osMnUA2crdSWV0k3gXDbZ+DXX7aXNhdRTqRS/BE5E/E5qk3/M7yu/7gaTXommmBz7dO/Ftq3UM6mUmwT0mNhIvZLaxzGFbWrjSqr3UouGWA5vvHvnV0FobvXBnY18htCtO6Hq0gOHcpzAhTSxxUU5bqWeSaWEJaD77k6qLS6h163Duu5NWyWSQ7Pr07cXey6knkqlDCOgx8VWah/XFLbpseu9qJJYzp57986vgtDcanFnJfVKqm/dW9FxIpUynEAtTZtx0eW1VDgKhIhF+Yc4Zpqxt32/jMjApepKhNn8C7luLzZcSD2VSplOQPntpIaM3Vhdm+nuDes51iCX7athJibbyiWLIbJqIXEpdUjbqW30gNADgzKegDLfS72QupJKSYdAJaZMPSZc9btKB8csS2KyrMVyxqdZ4bN23shaV/u5DzleY+7D4KEyK2s48lk51E9X7XQQdSXLJmeTD/okLT1L0iqMMgQ28sW234dc53UwN456/qwiclx79m3J4nXf3EsNeTwM1bXzGZihRvhoV/l0LIBsH0xiyNwLqxIG5wAhR0XGBE7E9r3UGMeY0XmeMT9jehWRoeqm+COgx8ilVLO/pvS5mer2nakdA/S7CqADFf0EPpfNp1J3/c3YCoHsCeh4s4nshR5ruZeT3B3A/k4CeoycSf1tZ4t4G85F9cqH+piZng9/QsqMyc6F7m1IWOiCQCIE9mKHi+Nniow6EQZzzNhI5ym+u+hDAjYncuP6riPGuWtf2Y5zYVjrLmUh1g+zMN1WIRj50nGRLlYsg4BXAhuR7uu4GiLXq3MBhMfkF8A9VDQIrOX7kH06ZJuqYZ+TryGNb+ty4kBEIW1/clleR2SGagjEJrASA2Ieq6o/57IR42Pxy5lbrravI8bbtp/VY0Gmek/Q12Mdob0TAr8WKVsnkhACgTwJ7MXshxFNX0XUnbNqvX+REp7AVlR+GF5tp8b3ZEvVudWyIdUkaGexlVV+CXwq4rkM5pcx0vMgUEc0k/taIsJH9SQCW+mV0s3Sas/g0pcEcTAOxph9Q02A1tl7gQMQcENg70bMJCmnk3rR6QoEUQmci3Y9j6RQ3hEj1kMN6UuCOBiHUsy73Rdivu7AFAhA4EcCNSCyI7DLzuLyDNbziJ5PUiiDz2l9SVAKjmCDXwJfi/hK6pVfNUiHAAQgAIHCCeh5ZC1Vzyuxy7tiQDXEiFSToHqI8bSZTeBMJJAAzcaIAAhAIDKBfWT9qP+RwE4+zhOBsRliR6pJ0BDbaTOPwMfSvZ4ngt4QgAAEkiCwT8IKjFACW6mf6ZfIRZ8UOz1mA0nQMULTtp9M6xasl1633QTThiIIQAACEFgSgbU4m8JlsaOzUiRBfnbLo9mnH7WDpa4Ht6QhBCAAAQhAYByBK2m+GdfFS+sPRGrvpESqSdDOCw6EKgG9DAZf9gUIdBM47d7EliMEVke2+9rMmOaL7HS5F9L18+ndnfVc90lKNQm66jOabZMJPJSeumNSIACBbgKr7k1sOUIgFjvOGUcCE2nzJpLeptrz5kL7e6pJUNtOlt0Q2IgYBgs3LJFSLoGqXNfwDAJBCdSi7dOgGm8q05cnnt5c/eMakqAuMuWt15uht+W5hUcQcEpgJdL0HSMUCEDADYGNGzGzpHTOBvUlQdUslfM67+d1p7eFQOdOYGnLKggslcDZUh3Hbwh4IrAXubFngzqP674kyBOPQWIVGsUdAb05rXYnDkkQKJYA/yzkF1qd5aakTWAT2bzXRb81EUo1CYrMqzj1m+I8wiEIuCegg6TeP0DJi8BVXuYu0tq9eJ3kbBBJUPn740NxsS7fTTyEwGwCm9kSEAABCHQR2HRtCLSemaBAoFNTs0nNIOyBQIIE1mITN0QnGBhMKobAXjzRWzNiFb0kVrWVpzgTFBNSm0/uy/ra8m3uTmA/BDwTOBH5F551DBW/H9qQdhDIkEDs4+zGbFCKSVCGcb1h8umNNXFWbOOoRSsEsiKwFWv1v8QUyj4FIzKzAWb5BOxSTI35m2JVGxVJUJuIm+UTN2JmS7mYLQEBECibwLm4937ZLgb17jSoth+V7SPoROV0AtvpXWf31Eveq6YUkqAmjbK+62Oj+7JcwhsIOCVwJtL+2alEhKUyo0Yk0iWwjWxa1dSfYhK0bxrI98kEtpN70hEC5RPQGYtt+W7iIQSSI7ATi/Sp5VilairuS4KuNWx28vx971n+UsRfLsVR/ITASAKaANVSmbUYCY7mEHBEIOb5qWr60JcENdvxPS8CXArLK15YG45AJapqqakmQHuxjTKOwNW45rROgMA2og36QtSV0U8SZEiU9VmX5Q7eQMAJgbVI+b3UVBMgdXKvfyijCOxGtaZxCgQ0ZjGfEjs1EEiCDImyPuuy3MEbCMwicCK9L6V+MksKnSEAAZcE9JiMVZJOgnaxqBSkN+bOVRBGXCmAwJn4sJf6fgG+4AIESiJQR3SmMrpTnAm6MsZl/LmKaDtv3I4IH9XJEKjEklrq76SmfPlLzKNAYJEE6ohenxrdfUnQT41MYz4HE1gNbum+4c69SCRCIBsClVhaS9V7f96TmlOJ+diwC04nLoQgYzEE9uJprH1e/zFaSb3VlwTx35MSyq/U+ZmMxRCYRUBPvmup+g9AjsmPmP287A+fuX6cRjK8jqQXtfMJ6DEbq6xUcV8SFMsw9M4jEHOnmmc5vSEwjoCedLdS91L1pud3pVIgAIF8CMQ8X1WKKcUkKCaUfHYdu6X6yOHevom1ECiCwEq82EjdS/0XqR9IZdZaIFAgkCGBOqLNK9X9UkQDulRfdW1g/VECJJBHEdEgQwIrsflM6loqsz0CgQKBQgjEPGetlGFXEnRSCOCluVEvzWH8LZbASjxbWuIT84RQ7I6EY0kTuBLr9ApGjNnclZLpSoJOdSMlOwL77CzGYAj8SOBEPqpDPZPPd6QuregJgTKOgP5EECVvAjsx/70ILjwfY7qSoAj2FKVSB/QYZR9DKTohMJFAJf1MjTEITjSbbgkRIHFMKBgTTdlLv1jH/yq1JKiUrD7WfQv1xJ2QbhDwTUD/MagaNdYx4ttP5EMAAuMI7Mc1d9o6uSSIrH56fPW6KgUCqRBYiSHVoZ7KJ0mPQDhSch//NNGlQGAsgd3YDg7bn6Q2E+TQt8WJirkjLQ42Dt8gsJI1VaM+v94uy5ThBHI/hk+Hu0pLCPxE4Oqnb+G/nHYlQezM4YMxV2PMHWmu7fTPj8BKTK4atZSk51PxSY+lj6RS0ifAuJd+jI5ZGDWGXUnQyTGr2Z4cgV1yFmFQSQR0TDiTWh1qKUmPuPO86OXkc6lbqRuplDwIMO7lEac+K2PGMLnLYVd9pNgGAQgEI3AimqpGLfmeHn0gYy015mAs6p/PQOknBQIQCEOg83JYGPU3tcQehG5alM+aOh9TsTRRApXYZWqsR1ZDo/mtKNxIbf4DpglgjML4F4M6OlMgoDOxr8cwpOtyWAxbStFZleIIfhRPYCUeVlLPDp9RBiHRHaPooLuWemlRfmpZxyoIQMAfAf0HIMo/Xl1J0Ik/X5HsicDek1zElkWgEnfOpOpnyZe4xL3O8plsWUu96mzBBghAYBEEupKg00V4X5aT+7LcwRtHBPQfGpP06OeSZnvaCB/KinOpl+0NCSzrzBRlPIGr8V3oAYGfCCR3Y/RPlvEFAhCYTOBEep4d6vuTpZTTUROMi0NN9aS5KwB3FcGHErhFwIbKA4F3u2aCYhHax1KcuV79D5eybAIn4v7ZoZL4vNgX9L0/51KvXqziGwQgAIEfCZAElbEn7MtwAy8mENDEZy2VxOcFvLkzP1Fu0HxhPt8gAIFQBFJLgkL57VPPiU/hyIaAEDiVei5VE6Al3+Mj7l8rX8jShdTttbV5LFzlYSZWQqAsAl1J0GlZbgb1JgY7BtCgIY6i7ES0rqWeSy3tbc3i0uSil4IvpW6l7qTmWnK2PVfm2A2BW11JEP9d5rVzMIDmFa8x1lbSeC31A6mUHwno5S5NfEyFCwQgAIFJBLqSoEnC6AQBCDghcCJSzqRupDLrIxCkmBmfWr5r8kOBgBLYgQECcwiklgTt5zhDXwhkTmAl9q+lnktlNvbWrc+FgyY8tdRQJ7tT0RWjXMVQWoBOuBUQxJgukATFpO9O996dKCRFILASnRupS7/kpbM9tdTLw2eME9yJ6I5RdjGUOtb5nmN5iIOAbwJfpJYE+Xa4VPn7Uh0r3C894Z5L/U3hfva5F2O2p88etkEAAsshcGVLgqrl+O/FU/h5wVqc0I14pAnQ0i57cW9PcbsyDkEgXwK2JChfb7AcAukTqMTErdSl3PCsT3LVUi8Pn3v5pNwkcHVzFWsgsBgC0S6lkgSVsY8xgKYfxxMxcSv1/fRNnW2hvrRQkx6tu9nSwgpYhVX3k7bcOP1kOF8gkDMBkqCco/fCdgbQFyxS/HYmRm2llnrpy7y3pxYfL6VeSc21rHI1HLshAIHRBHYpJUF6gyQFAiUROBFntlJLnP3JebanpH0MXyCQO4HTiA5Yb4xeRTQI1RAohUAljuisSEmzP58dfKrlcy+VAgFDYGW+8AmBkQT0n8VoxTYTtIpmTRmKY2a1ZRDM34uNuFDKY+8m8dGE7ir/0CTpQQmz4KskyWJUDgRi7jt7WxKUA7SUbQz9n78+ckxJg4D+R6PJQrQnHRxgMPf3qB+1VBIfB1ARAQEIdBJYdW7xv4EkyD9j7xr23jWgYAiBU2mkiUOuj77rjM/24IN8LLZUi/UcxyEQh8AqjtoftTITFJM+ukshcCaObKWGngWcy+8LEXAhVZO3q7nC6A8BCEBgAoHVhD6uutQkQa5QImepBNbi+CcZOa+Xu7ZSNfnZS6XEJ7CLbwIWQCAagdNomkWxLQmqIhlUR9KLWghMJbCWjrkkQHrz7fZQ5YOSEAFm4aYHQ0+gJJHT+aXQM9YM+vMHEmxJUApQcrWhimA4A2gE6KJyLTWHBOhTsXMrtZZKgYAvAie+BB+RG0vvEbPYPJBANbCdj2bPz50kQT7QhpW5C6sObUJgLTX1BEiTn43UvVTKcAKnw5vSskEAbg0YfB1MYDW4pfuGz8+dJEHuwSKxbAKVuJdyAqRPeZ1L3UuljCcQY2r+aryZ9DgQOIFE1gROI1q/V913IhqAagjkRkAP2MtEjdYnvX4l9UzqXiolHwK7fExNzlI9Jin5EogZv71isyVBK91AgQAErhE4kaWt1BgzBdcMaS3o016/lqqDSS2VAgEIQCAXAu9FNLRW3bbLYe9ENCp31avcHcD+TgIb2fJu59Y4G/TS11rqVRz1aIVAdAIxZxKiO5+5AVVE+x8a3baZILMt9Oc+tEIP+lYeZCIyPoFKTPgovhk/WaCzPx9KPZNKAvQTltlfVrMlICA0gZPQCtHnjEDMBHZvvLDNBJltoT9/Miq04sz11Znbn7r5OshuEzLyC7HlTOo+IZtKMWUVyZF9JL0u1cZKRmKeSF3yW6KsKqLTtdGd0kyQsYlPCKRE4FyMSeUSsT72XkndS6WUQ2BfgCuxkpHU7tErIJTBXKiCabqpaGdWkQQZEnxC4CaBlaz6zc3VUdbozc9rqVdRtKMUAukSqNI1Dcs6CGjSHDOBrY1d7cthldnA5yQCJ5N60SlVAptEDNP7f7aJ2IIZEEiNwCo1g7DnKIHqaAt/DfSm6J/+mWQmyC1ozW4pZRBYiRsfJOAKCVC4IPBPTDjWLjWtXApDVhACZ0G02JXsmqtJgpo0+A6BFwQ2L75G+0YCFBZ9jH9i9EZ3yjwC1bzu9A5MQP/ZeC+wzqa6urlAEtSkwXcI/EhgJR+xZ4FIgJaxN14tw02vXq68Ske4awJnrgWOlFc326eUBO2bhvF9MAG4DUY1uOF6cEs/DX8rYrd+RCMVAl4IrLxIHSb0HWkWU/8wK2llCMRMgr4WI3bGEP1sJ0EnzY2Bv+8D6ytFHdzcR3LtXuRgiZ9Ly/PBrWkIgTQIaCISs5zGVI7uwQQ0x3h/cGv3Deu2yHYSxI7UJjRuOeZ1znGW0rqLwJlsiDWg638pqp8CAQiMI8C5axyvWK1jj2+XbcfbSVB7O8sQWBqBmAfpucC+WhrwhPw9jWDLPoLOElVWJTpVoE/ryD7Vbf0kQW0iLC+dQKwkSJ8S2i4dfmT/TyLo30fQWaJKnYWPEb8SWfryaSWCY14teSj691KvFZKgazhYWDgBnQmI9RbT84Wzx30IzCVQzRVAf68E1l6lHxd+aWtCEmSjwrqlEjiL5Lj+h1JH0o1aCJRCINbxWwo/336sfSs4In9QEnR6RAibuwlU3ZvYkgmBWDG8yIQPZkLARqCyrYywjiQoAvSBKjU2sR44URP1oZNav7RLeybopN2AZQgsiMBpJF8vI+lF7XUCq+uLQZaugmhZhhK9lH22DFez8/I8ssWdY2w7CYplp94USoFATAInojzG/UC67+9jOo7unwjE+E9195N2vrggcOZCCDKcEjgVaTFviFZnLrs8SiUJuuoykPW9BEgee/GM2qgHaoxSx1CKTggUSuAD8eukUN9ydes8suF6z+Vllw2pJEFd9uW0PsaBd5UToMRtPY1kXx1JL2ohUCqB81Idy9CvldisiWnMctmnvJ0EnfQ1ZlsvgVgn0V6j2DiYQKx9fzfYQhpCAAJDCKyHNKJNEAKbIFr6lWz7NreToHf7GrMNAhBwTmDvXCICpxBYTelEn+cEUmOn93atn1vGn5gEVqI89iyQ3jLS+49mOwmKCQzdEIhJoIqgXH8slZIGgVUkM/aR9LpUu3IpzJGsjSM5iJlOIIUYXBwznyToGCG2QwACEPBHYO9P9KIl62zQZtEE4jpfifrYs0Bfiw2XxzCQBB0jNHz7yfCmtIQABBIjwPGbWEAcmHMuMoirA5ATRGwm9HHd5VIEXh0T2kyC2FmO0erfftq/ma0QuEFgf2MNK2IR4PiNRd6fXn3v14U/8UjuILCW9e91bAu5ejNEWTMJYhAYQow2EIAABCCQCwG9JFPlYmwBdp6IDykknp+JHfshPJtJ0JD2vtrUvgQjFwIJE1glbBumQWAoAT3xpVy2YlzqNqbMb4xtyjrGm/fbNg5OxFJJgtoOsAwBCEAgJIEqpLKDLr1xs4RymrgT3CQdJkBnoub9MKp6tehTt3Vvi8bGZhK0aqzn63gCqQ8E4z1aVo/dstzF2wQIsM+FC8JHokpP0hQ/BE5E7NaP6NFSN2N6kASNodXfNoUpwH4L2dpH4Kpvo6dtKdw86Mk1xEIgOQJbseg0OavKMOhS3EjhHDhqFkjRN5OgMkKBFxCYRiBGEqSWrqaZSy/HBDg5OgaaoDg9SW+lniRoW84mbcT4VP6hU1tGFZKgUbiSa1wnZ1G+Bu0imV5F0ova6wRS+C/2ukUs+SDwrgi99CF4oTLPxO/fJOL76FkgtbuZBFWJOIIZEIhB4CqGUtFZRdKLWggslYDOWmyX6rxDv08T43g+xbdmEjSlP31+JFABInsCu0genEXSi9oXBFYvvvJtAoFULoWMMf0Dabwd04G21wicyFItNZUZ1E/FlkljOEmQkKNA4EBAf3E4dNFBhEQoNPXr+lbXF4MtXQXThCIbAU2Ezm0bWNdL4ES21lJTSYD0VROT49hMgtQxCgSWTGAXyfmzSHpRG5dArP0trtdpaf9nMeciLZOStuZErKulvpuQlRux5WqqPc0kKKZTkx2Y6jj9IGAhUFvWhVil/5GuQihCh5WADuyU5RL4SFzfLtf9wZ6nmADp7P3FYA8sDZtJkGVzsFW7YJr8KFr5EYvUwATqwPqa6jbNBb4HJXAaVBvK5hLQp4BcX7o29wjpiZ5yk4AeI7XUmJMlN626dWttWzlmXSpJ0BibU2y7StEobBpNYC89Ho7u5aaDDsKcjN2wREr5BNbiot4L4rLoMVhLJRG6TjXVBOi3Yubuuqnjl0wStBrflR4QKJLAZUSvthF1oxoCUwhUUzrN7HMl/fXkt5kpx9ZdZzr2UiuplB9nWv5FQLyeGAz9Z3XjwiaSIBcUkVESgW1EZ3QA3kTUv1TV1VIdz9Rv89//hdivl8ZcFz3h/17qxrXgjOSdiK1bqZ8kavOZ2HXlwjaTBLmQtWQZusNQyiCwEzdiXRJTgr+RWukXCgQgcJSAngxdXxYzSvVY1PFgZVYs5PNU/FS/P0jU348P9jkxjyTICUbu5XCDMRkp28iWXIp+HYgoEIBAP4Er2bzubzJrq87O/qvUzSwpeXQ+ETMvpP6L1HcSNVln/jYubTNJUOVSKLIgkDmBbWT7dTq+lrqSSvFP4D3/Kqwadta1rBxL4FI66E2yPstvRPhe6plPJRFlq1+6P34U0YZjqnXGzzl/kwQdU852CCyJwF6c/Syyw5oIXUo9jWwH6v0RuPInenGSz8XjLzx7rbMjv5NaS62kllAqcaKWqn6lOvsjpj0vZ/LX+TFDEnSgywcEWgQuWssxFt8VpbXU0xjK0QmBAQSqAW1CNdGTpM4W+C46c/h7qbXUSmqOpRKja6nqh/qTevm1GFj7MNIkQSc+hC9IJiep8oJdi0t6/Tl20RmhWupaKsU9AY5d90xjSdyL4nVA5SYZMnpzOI+eCZ9aai7Jj5h661OpF/rFRzFJEAPBPLp6oqKUR2CTiEu6f30idSs1h4FWzPRWdKxyycClLG9OI/gagatrS9cXLmXx4+urvC+9Ixr0+PxK6lbqmdSUykqM2UjdS/2d1Pek5lL0Eud5CGNrUfIsYq1Ed84lFrtNztAysb0WO2PF16ZXTwBrqUsqelK5kLqXqkxOpLoqlQiycQ6xTnXnXjbiQAhWTR3VAGiXEexq2ngl+rdSz6S63F9F3KByKq3Ope6kNu3K6bvafiLVa3nJq3SEQyB/AjqQ/EtCbphZobXYtJFaSy2trMShSurZ4VN9NuUz+XJlFhx8rhzIQER6BNZiUi31Xakxiu6zHxyq6tcZjfpQd/K5l+qyVCLs9FD1uGkeM7KYXflaLF5LdXmsWyGYJEjhxSz7mMpn6l7N7E/3tAnsxLzfSv0oMTPfE3t+L/Wh1I3US6neBwzR4aOciNCqUftOXOqny7JyKWyBsjR2KRY9Fs6k7qSmkBDoPq31I6mm6D2HaqfaqKV+/rf/z0o2a9VSST2RqnJLKpoAVVINlyC+xZ4iC+KkJyWVyI3Fb+PJJ8ReJ6ADzZXUWHEeqvdSbFxLXUlNuazEuDOpF1J3Uof6p+1OpLosGxE2Rr/LtpVLRyLJqkWvSyZDZFUjfD2VtlcRbBziB21u7jsaK41ZsGJmgoIpRBEEMiSgB+Za6u8St/19sU+rFp0hqqXuDlW/xyg6oK2k6qep78j3KeUz6XQ1pWNPn5OebWzKn8BOXDiT+vv8XSnegygzQCRBxe9XOOiIwKXISfGyWJd7mmh8cKimjSZGe6l6Yrg6fNdlLbqs64eUlTTSasqpfDk5LFSHT133+uG7q4/alaCGHLWTUjaBWtz7UOonZbuZtXdREiAlpklQpV8okwmYwX+yADpmQ+BcLK2kvpuNxdcN1cRI63vXV2ezdJmNpcMMvRrWjFYOCGwPMi7k03Vy7sC8RYv4QryvpEY5Hu4sGr0b50/diEFKJgQqsVNnVChhCZhZrLBa/Wrb+RWP9BaBrSxXUnXWgZIGgc/FjEpqlARIEZAEKQUKBIYT0IP1TCoD6XBmLlrWLoRYZOQ6K2ZxJcqqVQSt9QydmnhWUvlHZgZER10/FTmV1GgJkPqhSdBKv1AgAIHBBMxASiI0GNnshpezJSDABwG9vJpb0eP3VKrOQlDCE9Bx80Op6/Cqb2okCbrJZOyak7EdaF8EAR1IK6kkQmHCWYdRg5aFELgSPyupHy/E31Tc/EIMqaRupSZRNAmizCOg/1FQlknAJEJ6YFP8EVC+etJyXTh2XRPNT95GTP6V1If5mZ6dxb8ViyupOm4mU0iCkgkFhmRKwCRCn2dqfw5m156MPPEkF7F5EajFXE2I9SRNcU9AE0xNNM+lXrkXP0+iJkEafAoEIDCdgB7YldSPp4ugZw+BumcbmyDggoAew+dS9WStJ22KGwKaWGqOUbsR516KJkEn7sUiEQKLJLARrxlE3Ye+di/yucSVJ7lLEVsV6GgtPq2kfiz1a6mUaQQ+l27/KFUTy6tpIsL04nLYfM48YjufYUkSanFG//PRQZQyn8AXIsLXILqabx4SCiWwEb9WUj+VShlO4KE0/SepldSd1OQLM0HJhwgDMySgJ+2N1H+Q+rlUynQCWQyk092j50gCIY8nPY7XUvU4/lQqpZvAQ9n0odSV1Eup2RRNgnL9CYBsIGPoYgnsxfNK6q+kfi6VMp5APb7L4B6rwS1puGQCe3F+LfUfpH4slctkAuFQHsrnh1JXUrdSsyuaBFEgAAG/BGoRX0nVa+SfSqUMJ1APbzq65Wp0DzosmcBenN9IXUnVE79eql1q+Uwc/5XUldSt1GwLSdC80FXzutN7YQT00s5a6gOpv5b6UCqlm4Dy2XdvZktkAqeR9cdSr5fJtlLV/3+U+lupSziW1cePpf6D1DOptdTsi/6K/OctL+rWso9F3XlOfAgOLPNK9DX57WVZq8/SZLf3qQjZ3gjofnNxqBrPtdRKKpemBUKj7BrffXxtyr8SBc1lH/pOROipD8GRZKo/Sy+6z5wfqsZ2LfVMao4/JyJm3ygPZc2l1K3UnVQKBCAAAW8EViJ5LXUrdS/12YKqDrA62G6kVlJXUilpE9iIeaH30TptJD9ZdyrfzqXWUkMzmqtPbVbb1Yfiy+3iPcRBCORLYCWm60CktZK6kvqO1JzLF2L8XuruUM13WaRkRmAj9v4msM2fi74qsE4X6tRmreZYfl2+p1C+FiP0WKwbVb4up+jlMAoEIJAmgb2YpfVSarNUsnAiVQfU1aHKx6339E/koicpLfuOqtsoEFgagVoc1mrKSr5orQ6f+l2PZ1/JkUl29qJD6+5Q9fuiC0nQosOP85kSqA92X3bYfyLrdUA1ZSVftLooexGi1ZQr+bIzC3wuisAqgrd1BJ0+VO5FqNZaarvosXtyWNn83m7XtXwlG3aHjc3vXe1ZDwEIQAACEIDASAK1tJ97/8nY/puRNtIcAr0E7vRuZSMEIAABCEAAAhAolABJUKGBxS0IQAACEIAABPoJkAT182ErBCAAAQhAAAKFEiAJKjSwuAUBCEDAM4ETz/IRDwHvBEiCvCNGAQQgAIEiCfCG8yLDuiynSIKWFW+8hQAEIAABCEDgQIAkiF0BAhCAAARyIWDef5OLvdiZOAGSoMQDhHkQgAAEIPATAX35HwUCzgiQBDlDiSAIQAACiyHATdGLCXXZjpIElR1fvIMABCDgg8CpD6HIhEBoAiRBoYmjDwIQgAAEIACBJAiQBCURBoyAAAQgAAEIQCA0AZKg0MTRBwEIQAACEIBAEgRIgpIIA0ZAAAIQyIrAKitrMRYCHQRIgjrAsBoCEIAABDoJrDq3+N3Ae4L88l2cdJKgxYUchyEAAQhkS4D3BGUbujQNJwlKMy5YBQEIQAACEICAZwIkQZ4BIx4CEIAABCAAgTQJkASlGResggAEIJAyAV6WmHJ0sG0wAZKgwahoCAEIQAACBwInkIBACQRIgkqIIj5AAAIQgAAEIDCaAEnQaGR0gAAEIAABCECgBAIkQSVEER8gAAEIlE/gYfku4iEEIAABCEAAAqkTeCYGhq516lCwLz8CzATlFzMshgAEIAABCEDAAQGSIAcQEQEBCEAAAhCAQH4ESILyixkWQwACEIAABCDggABJkAOIiIAABCCwIAKrBfmKq4UTIAkqPMC4BwEIQMAxgZVjeYiDQDQCJEHR0KMYAhCAAAQgAIGYBEiCYtJHNwQgAAEIDCWwH9qQdhAYSoAkaCgp2kEAAhCAQEwC+5jK0V0mAZKgMuOKVxCAAAR8Eah8CUYuBEITIAkKTRx9EIAABCAAAQgkQYAkKIkwYAQEIAABCEAAAqEJkASFJo4+CEAAAhCAAASSIEASlEQYMAICEIBANgROs7EUQyFwhABJ0BFAbIYABCAAgWsETq4thVuow6lC01IIkAQtJdL4CQEIQAACEIDANQIkQddwsAABCEAAAhCAwFIIkAQtJdL4CQEIQMANgZUbMUiBQHwCJEHxY4AFEIAABHIi8E5OxmIrBPoIkAT10WEbBCAAAQhAAALFEiAJKja0OAYBCEAAAhCAAAQgAAEIQAACLgisRMizSNWF/ciAwDUCzARdw8ECBCAAAQj0EFj1bGMTBLIjQBKUXcgwGAIQgAAEIAABFwRIglxQRAYEIAABCEAAAtkRIAnKLmQYDAEIQCAagVU0zSiGgAcCJEEeoCISAhCAQKEEVoX6hVsLJUAStNDA4zYEIAABCEBg6QRIgpa+B+A/BCAAAQhAYKEESIIWGnjchgAEIDCBwGpCH7pAIFkCJEHJhgbDIAABCCRHYBXJooeR9KK2cAIkQYUHGPcgAAEIFEBgX4APuJAgAZKgBIOCSRCAAAQgAAEI+CdAEuSfMRogAAEIlELgtBRH8AMCSoAkiP0AAhCAAASGEnh9aEPa/f/t3cENAyEQA8AWUgKlpP+qrgVO2hMynj+C9WwefkQJgQQBJShhS2YkQIAAAQIExgWUoHFSFxIgQOBKgd+VqYSqFlCCqtcvPAECBLYFfB9om8rBFAElKGVT5iRAgAABAgRGBZSgUU6XESBAgAABAikCSlDKpsxJgACBswLr7PNeJzAvoATNm7qRAAECNwqsG0PJ1C2gBHXvX3oCBAgQIFAroATVrl5wAgQIECDQLaAEde9fegIECOwK/HcPOkcgRUAJStmUOQkQIECAAIFRASVolNNlBAgQIECAQIqAEpSyKXMSIEDgrIBfjD7r7/UPBJSgD1BdSYAAgQsF/IP8hUttj6QEtX8C5CdAgAABAqUCSlDp4sUmQIDAC4H14qyjBGIEHnhcvfR/g5JnAAAAAElFTkSuQmCC</Image>
<ScaleMode>Uniform</ScaleMode>
<BorderWidth>0</BorderWidth>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
<HorizontalAlignment>Right</HorizontalAlignment>' . '<VerticalAlignment>Center</VerticalAlignment>
</ImageObject>' . '<Bounds X="2146.378" Y="267.5423" Width="544.0805" Height="629.0975"/>
</ObjectInfo>
</DieCutLabel>' . "\n"); // fputs (etiquette)
/*
* RUBAN (12mm)
* LABEL FOR PRINTER DYMO LabelManager PnP : 2 lines WITH LOGO
*/
if ($type == 'ruban')
fputs($file,
'<?xml version="1.0" encoding="utf-8"?>
<ContinuousLabel Version="8.0" Units="twips">
<PaperOrientation>Landscape</PaperOrientation>
<Id>Tape12mm</Id>
<PaperName>12mm</PaperName>
<LengthMode>Auto</LengthMode>
<LabelLength>0</LabelLength>
<RootCell>
<Length>0</Length>
<LengthMode>Auto</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
<SubcellsOrientation>Horizontal</SubcellsOrientation>
<Subcells>
<Cell>
<TextObject>
<Name>TEXTE_1</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<HorizontalAlignment>Left</HorizontalAlignment>
<VerticalAlignment>Middle</VerticalAlignment>
<TextFitMode>ShrinkToFit</TextFitMode>
<UseFullFontHeight>True</UseFullFontHeight>
<Verticalized>False</Verticalized>
<StyledText>
<Element>
<String>' . trim("$numeroLab / " . "$organisme") . "\n" . "$dateAcquisition " . trim($numeroInventaireOrganisme ? '/ ' . "$numeroInventaireOrganisme" : '') .
'</String>
<Attributes>
<Font Family="Arial" Size="24" Bold="True" Italic="False" Underline="False" Strikeout="False"/>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Attributes>
</Element>
</StyledText>
</TextObject>
<ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/>
<Length>2606.94</Length>
<LengthMode>Fixed</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Cell>
<Cell>
<ImageObject>
<Name>GRAPHISME</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<Image>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</Image>' . '<ScaleMode>Uniform</ScaleMode>
<BorderWidth>0</BorderWidth>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
<HorizontalAlignment>Right</HorizontalAlignment>
<VerticalAlignment>Center</VerticalAlignment>
</ImageObject>
<ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/>
<Length>863.9999</Length>
<LengthMode>Auto</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Cell>
</Subcells>
</RootCell>
</ContinuousLabel>' . "\n"); // fputs (ruban 2 lines)
/*
* RUBAN
* LABEL FOR PRINTER DYMO LabelMznzhrt PnP : 3 lines WITH LOGO
*/
if ($type == 'ruban3lines')
fputs($file,
'<?xml version="1.0" encoding="utf-8"?>
<ContinuousLabel Version="8.0" Units="twips">
<PaperOrientation>Landscape</PaperOrientation>'
/*
// 9mm
<Id>Tape9mm</Id>
<PaperName>9mm</PaperName>
*/
// 12mm
.'<Id>Tape12mm</Id>
<PaperName>12mm</PaperName>
<LengthMode>Auto</LengthMode>
<LabelLength>0</LabelLength>
<RootCell>
<Length>0</Length>
<LengthMode>Auto</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
<SubcellsOrientation>Horizontal</SubcellsOrientation>
<Subcells>
<Cell>
<TextObject>
<Name>TEXTE</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<HorizontalAlignment>Left</HorizontalAlignment>
<VerticalAlignment>Middle</VerticalAlignment>
<TextFitMode>AlwaysFit</TextFitMode>
<UseFullFontHeight>True</UseFullFontHeight>
<Verticalized>False</Verticalized>
<StyledText>
<Element>
<String>' . "$numeroLab" . "\n" . "$organisme" . ($numeroInventaireOrganisme ? '-' . "$numeroInventaireOrganisme" : '') . "\n" . "$dateAcquisition" . '</String>
<Attributes>
<Font Family="Arial" Size="11" Bold="True" Italic="False" Underline="False" Strikeout="False"/>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Attributes>
</Element>
</StyledText>
</TextObject>
<ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/>
<Length>1477.513</Length>
<LengthMode>Fixed</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Cell>
<Cell>
<ImageObject>
<Name>GRAPHISME</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0"/>
<BackColor Alpha="0" Red="255" Green="255" Blue="255"/>
<LinkedObjectName></LinkedObjectName>
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<Image>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</Image>
<ScaleMode>Uniform</ScaleMode>
<BorderWidth>0</BorderWidth>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
<HorizontalAlignment>Right</HorizontalAlignment>
<VerticalAlignment>Center</VerticalAlignment>
</ImageObject>
<ObjectMargin Left="200" Right="200" Top="0" Bottom="0"/>
<Length>800</Length>
<LengthMode>Auto</LengthMode>
<BorderWidth>0</BorderWidth>
<BorderStyle>Solid</BorderStyle>
<BorderColor Alpha="255" Red="0" Green="0" Blue="0"/>
</Cell>
</Subcells>
</RootCell>
</ContinuousLabel>' . "\n"); // fputs (ruban 3 lines)
sleep(3);
fclose($file);
exit();
}
// called from Javascript (Ajax)
public function getDateGarantie($dateORjour, $dureeORmois, $uniteORannee, $duree = null, $unite = null) {
if ($duree != null && $unite != null) {
$date = $dateORjour . '-' . $dureeORmois . '-' . $uniteORannee;
} else {
$date = $dateORjour;
$duree = $dureeORmois;
$unite = $uniteORannee;
}
$date_next = date_create_from_format('d-m-Y', $date);
switch ($unite) {
case "Mois" :
date_add($date_next, date_interval_create_from_date_string($duree . ' months'));
break;
case "Ans" :
date_add($date_next, date_interval_create_from_date_string($duree . ' years'));
break;
}
$this->set('date', date_format($date_next, 'd-m-Y'));
$this->viewBuilder()->layout = 'ajax';
}
public function printSheet($id = null) {
$materiel = $this->Materiels->get($id, [
'contain' => [
'SurCategories',
'Categories',
'SousCategories',
'GroupesThematiques',
'GroupesMetiers',
'Organismes',
'Sites',
'Documents',
'Emprunts',
'Suivis'
]
]);
$sites = TableRegistry::get('Sites');
$typeSuivis = TableRegistry::get('TypeSuivis');
$typeDocuments = TableRegistry::get('TypeDocuments');
if ($materiel->photo_id != null) {
$imgMateriel = $materiel->photo_id . '.' . TableRegistry::get('Documents')->get($materiel->photo_id)->get('type_doc');
$this->set('imgMateriel', $imgMateriel);
}
$this->set('sites', $sites);
$this->set('typeSuivis', $typeSuivis);
$this->set('typeDocuments', $typeDocuments);
$this->set('materiel', $materiel);
$this->set('_serialize', [
'materiel'
]);
}
}