diff --git a/README.md b/README.md index b9aae69..7b1722d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# FdS-UMontpellier-ICal-API +# UMontpellier-ICal-API ## Description -This repository has for goal to provide an API to get the ICal of the courses of the FdS of the University of Montpellier. For now, it only provides ICals for the Fac des Sciences 2023-2024 (open for pull requests to add other faculties). +This repository has for goal to provide an API to get the ICal of the courses of the University of Montpellier. For now, it only provides ICals for the Fac des Sciences and Fac de Droit et Science Politique 2023-2024 (open for pull requests to add other faculties). You can either get JSON data or directly the ICal file. In JSON, you get a "raw" key to access the raw ICal event read by the API. The ICal version served does not contain some data due to the fact that ADE generates new unusefull `UID`, `SEQUENCE`, `LAST-MODIFIED` and `CREATED` each time. @@ -22,6 +22,7 @@ Routes are: - `description` ➜ Get the courses with this description - `descriptionMatchType` ➜ The type of match for the description ([`""`(use SQL, LIKE %description%), `strict`, `regex`]; default: `""`) - `raw` ➜ Get the raw ICal of the courses ([`""`(include it), `only`(size ~-28.5%), `exclude`(size ~-70%)]; default: `""`) + - `sort` ➜ Get the courses sorted by start date ([`""` (not sorted), `asc`, `desc`]; default: `""`) - `format` ➜ The format of the response ([`json`, `ical`, `ics`]; default: `json`) - `/id/:id` ➜ Get the course with the given id - `format` ➜ The format of the response ([`json`, `ical`, `ics`]; default: `json`) @@ -35,4 +36,4 @@ Examples of usage: \ ## Hosted version -You can use the latest version at [https://fds-ical-api.home.mma.dev/](https://fds-ical-api.home.mma.dev/). ⚠️ Uptime is not guaranteed. Generally down between 00:00-08:15 UTC+1. +You can use the latest version at [https://um-ical-api.home.mma.dev/](https://um-ical-api.home.mma.dev/). ⚠️ Uptime is not guaranteed. Generally down between 00:00-08:15 UTC+1. diff --git a/docker-compose.yml b/docker-compose.yml index 0ac1b0e..d9d91de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: api: - container_name: fds-ical-api + container_name: um-ical-api build: . restart: unless-stopped ports: diff --git a/links.txt b/links.txt index 4fb64c6..7343b78 100644 --- a/links.txt +++ b/links.txt @@ -1,3 +1,6 @@ +#################################################################################################### +####################################### Faculté de Sciences ######################################## +#################################################################################################### https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81227b9f72cf13ac805d79e29377e7b27ca0db86adad27b63f7092df7b0236ecfe874ffde5552f4249a715a32f78dac3bbc4258eef6f790d0d3e95e5044ceba4abfad3dcc210ad096823fa3d48c8edd1bdc3698c1d09f2fe930e48d0f254d946537f07e33bf806ff3fe7232f7f7736f8dbc67db87db931c50f6706ee3494df409ff78990d0f80d6384d4da1bd789473f410f002080c4ba981af334a1e3e5861ea858110437c1d15cbbffb9ef909d7f8892307ee5df0b49c2ecbd4120cf2b2d0a85ec0bf5e30b7b5ff3170729a50a66caadcdb4eec4b8934bcbd8ffb971d6f7fc4d665257c53fcac0ab607f8e40d01bd2b3cb8ec43f98ed262d24609295fc38ab865720583294ecc9ed8c7f8383c8a30eaf4ab5401a782189f7e940f52d3ea15d4a178fa72b7f8581954dd28fab5d93f7ce8166c54e36382c1aa3eb0ff5cb8980cdb,1 https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812f1612ee5915d6376407986ef0ef121129419125693b586eefe75e260d7ee93284bb6aeb74237143ca107a3b8ad74ad8f19912fe5ba74b5d525ef872422b093ac1583476eb96c2acf004930745e6bda00f59488bcaa44651147953b9d10a7856bfc160eef296475749a75994053d1ff0e1c5e0d0a08a35273e35a9ef5840ece148eac0dbb9b6acae1ba54aaad1cbe096e60ca50d32f9ce96d584519c8de2ba4abaf424e8f0e91100aca04382532fe0ebdcf16bab07fd0dba6cb1557bcf22386c39124f556ab44a3acec20e565dedb3337ca845ae40e015604abf20fc9cceda99535c83e1af991983290060af306469b0410b8930d08e71399d0616353f895895d4d2f8ff9d823a4411bbc0548352126859e36c54f03469e3f818133d461f70ac8655a352615acfec2089764868003d146,1 https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812efc88df839594378d12df1b573d6f72304a7d99a2232ab227bce6adbe2da986bffb1b2d614d18fbecfda5b6938ba877fc2d044f039009cbdbc3430d00eff7b88280ad3c7ae93cf83a73b79979fd2f091fd143ba67910205cbb9b884c12c35b39b401085aef6c7918af41fcee58af5052f68d98e53d02f04dca6b0985157b2e1a40bd3b65a6d99ce8f2e02d58ca5d9960c256dcd1156de3f369806a0fa2b258013902b261e27d546859e7b66dd34891485a7aa4e8cd40372f70eb7c1852d5036d2b94283f003bf52e53e542f0c966a79fdb6f5a8b8976f35b51375a4ab855701b584506c0a368d367d848138358ae029ab800fb493a630b6a22a51e8164bd73d925d4399d4874f6746d3b5d03145bf1763fd7aef3c11d72d1ea18ef040a3f911641eca4252dac4868c5b883b92ec3ecc7,1 @@ -37,3 +40,56 @@ https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812a2b23405d2ad61ee45bb8b6983793662f78c3d13c2af0e1f0330cd23831adef2062baeaf82d90d43f3d3b0cab960f43cb01c56655d4eefb11d17bbec58e4d9fac6a2a26614795ecdebfb09476dbf3b9952f189bbc65e8dea01d2d426fe681207dbd24c9e97ef581cd54434964ec4375d411372d6a69213674d4970c9db01d597a234d568d876f04cf0961d08e97677f5b72503d8d76086c3a8da88f744056c617956ccb89c58f85e64ed3a888039c61f1746a402a0096c8f496f8c52b6e22874072ff5125961d2eccf84334e4bc333a0515c7f4062cef62f22bdc73de6772a6beda0c1fce7e3d1f075445ea64c4055dff51a6ab9c36771a265c08a75946594e99c0b710d1ef8ad3e300a15c8abc735b14d621c45bd6ba627e5aae254a354f91e,1 https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812048ff81543984f45881f41fc50e8870aaca421f2ee0355d6e7a5828b377fd0503a71afbcae6b67fc746b2675b8f2dcc3e63a39e253f4f4b642a16387e920b6593c887e7192193fd98da6d43ad217e78c101d937ee6ce30a3b4e385046e5802e58f33f307db82775575fac168b58a2fb75def5100a453dc546a0e3e8deeb17f28cf630b8fcee445c2fed86b0c1032ae49666490b4cdb653f677cd281bca327d94bb5e7fa00f95915854bdd15e95d4cd5b7c5911b726ee71ba0fcafc30630273fc65484087d873c727969cc8863567a4685fe332834144496343d98c1de74dd34eebff142cc01ec791241983960b056f1ee37905b371708f3b61bad0957e83b4af23c212f141ddfb94f9b5e75dcdadc7d81f70a4ac5f962685cfdb8516a4de97184d263df796af81d074c17c4ab523bbee,1 https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812bc9acfe9c6cce1355ca3a4685577e77b5b98eb12441fc81732f6ca52505c45410a8bb73c877979c0cd1c9cbb429cad24363c5395a0bbce30bc19ba6161df67d0c941126c604f1268c366a84fbdc6e91f006da51cccabd7a31959dcaab63881b932b087930a585702d79f4a42e8fef3ac6a86b094650905c72f0a57e923ac5d2f51bcf34ae760a65fb0f97ac21b28bd058bb3837b82d56013877dadcb9153a15dddde27ca2b7bbfae10d72ed72c579ddeb1d1765e098c41a1bb1032bba82f4260a31e3ff934ecc84901234ec53220810fba27fc09972b93a4d6eec486f3ed6a63,1 +#################################################################################################### +############################# Faculté de Droit et de Science politique ############################# +#################################################################################################### +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8122b005c1492c58594e2d1e43dbc1ff8b90a92891b4e5d7a6f174df9cc2f48f447f46c36ae9ac81557a7fb06aa23265f32ef2c9030154db3e84399f318ca1fb0bd264a17ee7890990fc41906ba6cebeb634107bc59eb40afe238aad4a13e75a21a9fbc9da23b8fc10b778ea2d246133a5d69957766b27d1ce405b0367f13454306c65aab814bb08eda5b6d7e0beb8082c8baec7c2a73775c188f0a82fa504d0f8320b7cfd28a892f354153e6a1741d203201ad9e6c44cfb725543752567645670023055773d52455a1401f15984d21df9a1f30b949a6ff7c352cf582b683257b8f0dcd4c803e2561a5e7edc373e5c726e2394d795a6e4e4f7147f34f6a47a6fc468c01af178d4c239eaef4ccd5aec1569514f6f0053cfe9a4c5bb45467c790dd70ddefa7f251c1549f006a3519bbdad6c2d1ce6fac737f0c6fb352d49609c547bb,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8128920a763b62abc298b6b4d42d0512b56d830e3e3b86f56c13a2fbc7e15df3a00baa8a3d9ed5637b80cb00aa63f8f0c2ed4c8e477cde5ece0e2d9ee8aa28f2481f7f80876b59d98bd81fafb2b1dcabfd99b6e71cc3e93daba2469809678138afd2c89b7c1b3761f69ed14b4215c459ef0433f2f2fd6f3281f09c5ae7c1c3b3470fde80dbdffab534272adf8fceeb29cc20e8c109a7e72dfdac2f237aec3f2ff377cbaebc4bf462cedc9c5c4fddaebd00d1d1fdfeda39111e511d99b3a1102825d9873ab7a28cdcf711be1c6281cd54e85c51b04256ecb260ac3a273a7bb8c9fd62d126571b987994685d76a6438e6460f8173df6071e08c0db605ac6fe1d416bffa2567ec628a9c511c66a85b6d5917be09298a7ce70a0f65daed472f0dd3887938e36d59578f32224bc9239912d77b8020029c358273bfef9fc30b4823853dad,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812453e0395ceb7e0a222247eade7d4920d49049c0a3091edebc450c953bf3afd634481c7052f4d3beb729d516c9885c79dd8b5dd64fd8985d2e1812966cadeb6c33a0297f040e4c1e77b02fcf9b2837625c8b6f7af4e81c6bb6e7fd5374ab38c1ef57ed77973bde6fd0806120e059d3b1fa415754325abef400df6e2ee133c20ccf36c08217b94b93c20777967f5c8f1a89a1a9195a1753350622283dac45053861332a7532821c341f7e0d33be66fdb4dfa772bb0a78cdec6fdef0bc873dc1be1ec066baa03bc193a66655cffccf0d215c05675dcac481dad7743acc5586244b140bbe5a12e37edb8e285a07bfef43e066ce3b8009257e4ae617f6703d38fa07b65a8dc00063b5fd6f379792dcc73ab9cbe9f3446f057169c06030b3163d10a1cb93de5afbec384bbef9d36fef9a093beeef7caa9851d2a13ed1d1850d876fb3c,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8127244c3b770b1c12f92ecf2747d801f7c07f29224184c8c88a52ad6ba9627102d38f0753ce8f2f0d22ed33b66270d4b2cb538faf22615c86155fa0b09138022df9b8bf6b055282379343a43a52cbe9c21822b1122279d426e95bd28a29b1b78d351415a0532bb8f56acd6ffbbdc217acd5be22cc16bae7ea86ae81d5deae3229dad613bed682e3c85ae5525fb2de280b61decbfbcc961117591ac3420ab841255b3af289c802d69251d47798cf9ad1b3b610a89bc9512578ef04f1891bbfd28e05aa786c56b7aa1b6de07be7980051ad2bfaca08084b085c04d12c52bc01056772e3a3ebdfb4952cbb74d38eae878e13c73b5e4cd02d3b70142c6da551870c1d0bbe29d0637965b75e36787a5d265b0ac43c6d395bd806acbaf7d29a814db72273cef7468b52ef3c51ab7ac6d31ee0e3492e56877f76f452c0ae5f64c07841479,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8129667d2088d9bec8c6039075ff0f87d78241e1e713ae364f80d1b552b1e83e513afbb5be5f11e5373fb040120f9c04ad0cacc2c0684c793e174f9a480c8233097b19e1672290546e5064453cdb779df82d957a7e8fb10bd18131d5d7bd2ebdab3d93d33dafc53471bf1ff70918f73b07b83cc88c4c9246d56a93f38567b627ee733bd46094dd0cc29242bac3fa1b9fd89bcddaf8b1a02ac613637047fca85625933a658f2e3f132fbaf699ec6286658f465bdc0d517715b31861bef9a9d0ef3956e2a12d1ff28bfa144008f8fcfa5c14ad8c219ea951f7c1764bfc191256ab629089c60409532b835876edd9b18d6945270d60cf6677d9c37062bbf17a10ca78d3ea9223fdb74d77a435ca1ef72239812f01fa4c0c4f52a202b0f5fe5ad31633ef6017e447258ace2cc4fe22d195824c5a9247e02cb449b799d5faf143d404656,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812ec32fcc3d94b37f4ea9025a5db79d1d09aff5ab0e069765144ec5aab4094a1aea7a5e5be846031766b0d8c1f90a5dc7c4b8b5f5cb0cbb908a3c0b65e2a88095d0430d57f63cf7e447cdab3bd20e422b3ef3f12eed4ce1611bbb3a5b3ab1379bd806555fa2bf531111b97bd4cffc53e966a664b2c1d5103835e45a8894e64475fb88c9d23d964d7a32b7deab17e0e92b05a9106d8c3fdf07e38ca545537bffa3a18cd50e2d68b51ed8d6a795b60e74ddc384b5b062ad26e79828196bcc6aab4ea3ebba183b3fd33679366fc9781a22f1983e353e59456a314abe5872454c44e15ea012ca23b52adf4d25a9e432536a944d4acffe7f424385ddb554a3df5e8b4b62aeef1a4cccafc594184d8c84d49f1f7be78099b2f5d04967fd02f623874b2d22a6eaf215c5dda98dd6edc260656dc11e6e4311e7dea3aa7828a26a8a0189a61,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81286ab1563f29c73908f2029c1e28543a5f960fd17e1292b44cbf775a54a86b245aa9bf77d41500694745bcafb00d577ec668b2ab9cbc2833973923d1baafb82c9998e63e94637751ea8a2832dc114c0a9a7ddf46a21f949c367d05de294bff9bea96051266a2b3b85e6f76f10bb9dd35c0cd87db5abda957b95922edad67b911b48f25d6d8ed06ee0c7b9013d43135ffce65e0c959efa03e05f1d537d96f5c50bb5a48cef35b50cc995b25355711bc207b834b67d8de1f353bd557d66edd1b8162a9ba09626f907ff42f5d813dc503b6d32ded20cdfa386280724293a1ae4467b1e4e60db506ce3804f0cbb55479056129f6e20557c852713f169c6b46285b6631e75c531e7e77870e23325e3c8fc98578828d418e4cbac9948a9abe581a4f2c9fdfe2f526a67f27cb17c631796de6c24d0f6f9c323fe37a670ffdf1b9523a6cb,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81241bdbabd623e68c6b6b6b5dc40751a848fdebf0e97a331438e8554f6e38547c54ec2a30e6681befa0f0c3016ba6664665a5d80812d58fd4de9c573b2b3222ab54e53417e34e5d2629d4aa7572eff49907337a6563efe0e618b03a8bb38f96c1ce7a8cf7099151ad0cf641dcc605442d41528b9b590a2b1d072240f7f7e56933fe9dd51d127e999ae86afcfe357836edfe6033b4ea9d5942c4435cf8b6410c59466a359a4d860253cedacddba06cc87921635ad866c9400dbbff5e132b7324920e8d503c7a1e216ffd2ed6f11ba2f02b72104a2dd6970772e81775eff972601fbc7d74d679ee072d00c7d71f654e872e051b4aa08d119d92f084713a32b463ae1fe039594d48ccf46ce98a258b755583d053c5d6fca689d96f92076e67c0216891b35fcaefd1adca87b88f62505c68d22e8ec6d8db48e9e712b635ae3e6d583d0,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812df79fcd7a989571e668aa190a1f3ff71c11d277373825fdfa11896d423e2dcbe84d3666cd132ffee4c57d65792f79520cfe113a78ae62a83d7a561d961410769c75fb44c86d3290c7f9fbe657e3c43ca4a715e0e5247ac3b6892e3562273c47695b94b8789aafc0ce31151132902b267fb300c236bb95c711f7e195aa65e4419ef657cfdd5c0166e6324b09ed43ac7b4bd6db4f611ddf9eeca62915f3a821c95572873e5999a066683dc5112542da0f379e347d31edcc705a4d91a235c9ae1a4641088c22550b989c1d698cb1168def12fce1e12f8c1ca6d758ea0df3b9e9dcfe6bdbc345d664ea7925844d0df8f20419670e8c074077a7103cda04718b3d5deb205493659aab6a9bd5c6e3406bc9ad93f8357f6d5cf521a1eef5df7f79271c21357604d22155aca1850ed46fa432c1b0c71cb34c57cf74f6b81724a1bb6e70d,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812ba20f58c555fb801305ae69e3045d9c061e1ea58dcf464e48c651cc11edf1ad83d0abafe903315ed6c3bf0df169fa9966cead8168404bcec57d594d850744823d989ac6d0def00778f327cdf8d7fa3b606f53fc4c0ae9ff6496e8e46935d1bc79dbd92ae080696b67eebe1916f80f365c434f5047d5277e93eae2a53da53d5753e7fc56b874b67ffb652683c1e09b8a1cd973c5ea82ffb11e62beaf819f4682801387a92612062cdc88fd0be8957bb284d43d2f783a72a5ba7855757076a0ff7216d29a7fcdfee108aa79d3658217af536606c70efa49127e231b9accd57430d75f223436f5b79f01d7e9965bc702512b236a7a751d0a33c71ff777038c1d49a6d57204e64df88bf564da50affd9a1724f6ee735f62de56a4ceb8a2e4ce7ba3d7bf46fb7cbd4a9957ca07d74d72837115d9154582236b8c506a81129c752666b,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812a4692769b5ea2a1729bdfc2347f33b7424534155cde24b3b94d530fc22118627c4e9131bb62ae4b39226ac18de05d015acf7e9c78df0b20ce6d6cb6239e63fd0a7b738b133d12d994e92031d6a929bf0d7bdb1edea0848962f083845d0cbfa1a578af1a3299dc3cbe08cede48eac12310099d6c41885ccb4859005066f57a8a228a1e3a8374e1982986cc0b14e49d7168f01564c9b8e39b30b35fcd164cacad6b7e1104882cf73c891cc3d2d8c755fb9791627d47451442af72571b759cba3b6f0cd61975f82640121d1324fc195d0754e5b4292d915c0e9b3dd415c506b3e39e0d8bec134820242523e5b643ecdf77c2a871c4609e4adad69cb560fedb9fecd709e8c027f6a384c3b1b7dbf61e6da82efca75f78861df35fd55aeb8dd8df7d32d7dc46b6a2820d28be8f54c69cc349c475adf47fe497d01f601dc887ee8052b,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81275ba7f5b23eb94f6e4545e8c5eed26f96709bf5e4923fb2aa3b1cdef53c60813eb5f129b661dd209324cb1e8a23269be8e46ac1725784284415a4b144a93f42e33453afe2aa7cf17ce159eccd8f3f04510ee725b4cd905bc2a54b7251e69ca58686adb70b1224c33c7214a0d91af656572cd0d896a35a125b9a972c55189c2915a288239708b8d11fcda7c66cfc30c9904b57f26da854ab8327eb72c31be8bb43e5f2fcf917f3a4e4d8bc32e0d50acf82599bb4f5a75bdb4c8fc87d768d71a5aaa5aa48b2ad7fa3c6eb11be5027cd0e47f1d3ce87b3f4513793e4694ea04f2f327a44c4cc4026b672985a7f09edd63c741035f3c0db2c4e444710a673bed46b451304e709ba5d6337c4794f73a735b2c45b980ae39b8190af455e983cea9545a23f3bf613f7072866f21faeccffaf92e366d84e8dca2a1543a951bfc48fbaace,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812b935c71d35aa90d01a9a7415791d309ca59b5445534582dcecf0df333b3bc592d02cf9dd06056e57f4a64e6938e5e1a6a2dd47a5327c830177187f890ec45e362b484d51745b3eb1eda7ea34289ac3b5bf1e057da5615583e921a8812038e9ccdd3cd9779700e336f0571c8c4ee9642a26c61a426215387b35cdf6cc93fe1aff7d15896770dfb00800040ca68ccd2d9d3a562a7aefa37e785c6740dfd77d8d55ad22a27a1437755264d744f2f4b7d6f9fd9c5ce415a579c4963ae77648078c1d4010de928eb76f6aa818ef113e8f5e0ef837e13699318c569295f46628a3ecbfab6c835cf88907321e30cb719f1340dba74757d0b7c3aa1ce42368b275c6decefb0b697dbf689e6c885863edce2f000316ade183e39f11aff8ed6bcd2ca0902c533a3dfec7d3fe079646a405ac2d72cc0fcd540a6ee25a71b19849bc39c9fa0e,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812ee02fd0fd6bf23f125a186316c6b35073281b4522f539a6f2ff50c2f335efc318b1446f5500435c3a86487725b30bab2d62ab4caccb383ff10fa1a50803f5c11c1e9d3218110f8eb54df23441db01d8da16e9cd14fc2edeb104ce6b0cf812b136b8d0612c407175143260a68e3fd7877d5b0ca593acee27794547a194d4b4144fe36567619b72cd7d9420064461282cd905942b7bbc881d8de86c00b630c3b03667d698bab189ff923a070820460372423e8868c1603815ba625c024c4111d0bd6490d934a84935f9ce7c5e26fd501de2c6dbb3f031af5ce15a05f6d1e7d5857e76906d7015147f38ffbb264fb6b5900076b48bb8fc3ccc89535f32e8ba03b66966b8338196c965e4d9910f0bd13faed7b4cda7d92e2a56344c904eebe1e140981ed1b94cae409aef98d0445f42ea79d726fabd4c524c12d3f2f37fa4349fd0b,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812d76fbbe666b45d862dbd21e76f0cb79128ba72e42478c57a5cf6694fe52b4a106425d65e30b0d06d35e304ad2fb218a5ee075784206b4a085d216aca13bb763f76acc9faeff8a87c83620938e22b178d5ec64890100487914f23afb1239bdcf26af3093a0d0b3ad496b1dd2fb57206419a4864b33d63b8852276dbb687749bb38e7f864e0029a481f7b71f678c7c64b39904c143db2af34e41926a2369661c984db0b28ea63860890eaab32882b760ed1c2b34d5ddeae3fc0e22f374f54ea0110e97e56730561e4b281c9c914746712fb7381760ddfd56889c741b7338926b28f5e0e2c7528b926f02d182ae675b4abbfaf9e1f02d7af06c1847374be4d934ca086c598167ab47e511b9ae3f48e2b95f6a0be9f8eab911db9195f230437b1a98f1e566b664b4ca219c0e6006bf69813705a4b3ea111b5d12d0c1ae141686bf02,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81246db90badf45d05ab5333ae2fb140f56762561ed3e9c8afffbff6e0211ec7bd9c44a2d891965a2a06e942d222f3da1b9185d29c833d156c09a70b4e4f8c9b8dc7fdc043e2b6e5607f4fe702fde3c43dfd3843df5d300347876ab01dfdca50eb77988cb6157a9addb393446d96e68a2c1d9d41a4e836f82fc7a50252a4af0c30b097072dd0e11d7ecc2d7d1b6b7e9086dfb87003886285e34922112b26c074e9aab4cbdad367c466cff211bb09b63352015c8acbaa955be648b1b2ab5479142d7676e88d69e07b651c73258a848c41cc8e11021f2b0b73be33cf4c7f045fea8d695bdf45b282f95bd46a278dda5ee751277b9d413bbeaaa45e40f1ac63cce7a2b8aca0a8b9eb560e8b2b98956496e280485f9a7a011a8f725d9548a3c612cf349d720229b19df7ef378c5057d647f204afdb3d0a62b4e38fbfbeba8f0ecd21a38,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812b64d11c2ae52bd78c7cbe9df8e9430d9eec81f9e567edc41867b53e4570d2b6c9d960153304f4ab35f8e9e1704753292e96b54aad6655223a3fc419c596c4a23df76d3c04af8f28527da44ccb71d8c1a896897e0b8a48493ab37c4332a857c75dd47fad2c39187253d8f5f77f62bdfa4d9adea6372c3923cff3613b52574ba582b6b33444987d2aabfdc7c4b63bb14a71faef3e0a9f2b6ed2c40237d2bc8148f091b627548d0086dd6960cf44ebe8661125303ad6ea057e19e7b9a579e107e470eec545b04c902870e20022d4cf4cc44d3fee0ecea14ea6b588141bb3a647a2e5b613e98ad23ef7302b09008d5b5193c3d60a9c8ff62a8c6d46abc77c7c56a0183576c9ab49bc36fcee8ef87bf4d3967f200c5c73ebfcd75b92dc8195dc9877c784bf91aff3af6859696b79e23f2ddb2bc096c27d3a5c441618f430173037d43,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8120298b1a6f37cde5468cecde32a29cfdc005e06402dd9f7937381a1d25ca8730b49e4f842ff6bd35023cc8081df0c94d356d252e52504ad9f54b6f89cbdb595c89a94a0cb3911ff40c5e96a70ceeb6ac185dbca76cc2ba3381e3df6d3ba62d7de21f601a11f333b5376b5033ec9451c3250c186df7ecd405ff1d2c527b340f32ff146ba856ea2406480f0c4ae06ca84313b66aa63431e4d014e68909a7394076d65202ec46cc862d40f7b5f7ac9ecd8b51319fbe52e53678dfda6ac385e8727e5d48e53e132fa397f9adb23b40b14aa594eb428c91e3d3a1cda91853827396f0b90e0c241b0c979999075b7f5f8178298951153eebdd76c579c0fab1123127c96800d11b20990df2ed37a96240f99471103b1be9756a999aeaa24dd3d95a1d1d67d0cff64ef20ed72dfba0288c20ea3ac5dcd9a4b544a9ce6fe840a7ab3442f2e,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812b5aff8f98b5114faa7f9f8533bfa54f346bf301c2be479a993608f7f7bcd55c30ed3a4a16a5a5e844821623fb1c975c8e33071b39aacf2a62b1325c050531806d95c3625bcb72c245261d18c4d7ff2513eb272d0d86e5cb2c9e2397b5370ec2ebc51c22795ad388d896c5c4efd81c2249b0762549bf52e1fa13917e0a705ecf029dc1719532d875262c51bc66cc286a2d0826c9dd601f05e69e79446bd3191cea8233b34c5f19011404287ace318533dcd4b8909abefc80fe73246e19de4f6822c2edb06faf4e85ca3b9a61f7419d2a4b2dc2acc8c0663c1f2556812a139cc9f62419883c6cea04e38f841d5636b28b0474549968ccb980d77d2df8f1cffb44fc68fbc780ca7d17fa5687ebcefb7fa5f4b96eb21d190c6ff05d237e5940f67d5bdef332a452b89bbbc6d0a7e60cd06b3bb4b974ee29871c52728080535e90bc8,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8128ea7d1efb29a965de35228d9ed9bc05c54d9d482840c4c979125ee0b8294c88cc07b8794bcdd17677cc79dbacca3cc035532fff12a8a6f912a47945d6d780ff11081e55d9c3e3e57bf0333465c04e4986b741c0e80156b9381f631545bebc2bfa9cedc9f2629b32e5cc2382a2a34c2ed0ff242de945fd5c486ae4a13d80d42cc813397ab4a149382f3dc1bf46080968f3c5f6614f7c9b135e3f2e0936177109779f8dac154a6954a8a07a7074d65f438977802f6cc5a526185379cd841ae68bab4e2e5702e7d3ff3cc1474ec312332e847dccef9b6c0d3273e4afdc05e4076c6f1d7f6b5813c3d93a1a444832ae91c9934e65f5a92c09eea342f7c78ac2965a57097a3fd52f56e9187e849f048499898b7ff1e5ae8f3fbcb7866c40d7ec9ab42bceb6e6d03336837c59d2f45d875d2b53574aae1ee090e54c7090380639c0e6f,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812932e44345f871836ca0fbbc44cf7c255a60061e1968597b97b8eecc29d2f8105e070c7aa2363c4794ddd4f96277320c05721bdd6e873445491e3ece013439b1867dafcf35e5710a0f81636a0eb582a42c5bbbbf6e94aea52113755e45c76744308564b7b833c9b743a5f48b6764cffe8a3a50211b20bf3f7bc76154da57444a434463a4af1c8329e480a487726f1d057254b8bb9bd776558aa4e36210a738268b566ebeac2d9b18cba4189066b05e81263c8b6f9da1ed48596ac82fb4246825f4b04ba6c0d9c16bc87197b099bf3c17859bf73edc4205b6b56fc087b6a0c9c8909a1bc24a1a32eed96e9155ecd72cf583b36d40aefe90dab4a8699b76ccc070d9b48a5104813e4baa8a98ca79fed879a4b8a6b4d631777b987f0032fb8b4974be6c0f89c3d1a71066784cab27220d19283a2ea86b5e4ec3ca3cb2f76fd7e7f4a,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812377a2689cbd847e3e1bdd37504c3b938e072639cd28f1f29f128701b1ea04801468c0edb5bc756a65ad69ed316acb61a207bdc342b3abe781198e49e42d9a7bbb5faab8e00c98843cf3afb68a5338800d8ecf8249d90c39d14d97189c86973d2d80c8847c92e688450333a3bdbeae26bfc02dc13b218d055d621b8c87ee2ea5b2926593b5e72dc0f281ecbef319b06e7a78a837e599cf9e2d172ddba7ba66470e65ba27e05bbbb23af9e0a8394f14685188f7e640297695831c7f26a35d54e2a5193f118a3282b6a5374404f7528a59bf92e892c985e2696816bf6223fda01545407382c859172011e5b225a632e736cd77f33422b2024419e01ebca97a8fdea21d43c88c3bd0f1337e1eb3af09dd1170e8551f2bd40fc4da076cd613da1eb84e27eaab47e8dd8ee41e3b5e16d4c0c24587e424b3ef20516e6c2d48350352ad7,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8127a55fa6c0801b6728033a5a895bc5c793a7d0af4f99e552bf369f42afd51fa064b62ec772c6703c143fed0bb19fe3daf65f5ef372fcdbb42fcb71eee3fba8f78d9ff8bc41811feefc1d768008b932687cab4331199b3ac020f0a95aeb62f330dbfd645bd3847ba0354e855024325d4b5a3f42a9410f05d1ddc26aac89e86bec728fe5a50a07dcf66f4f05410a3cc3838353faf3f5314abd3bc157f5b6625e2a4cbba314490b653a2c9ebd52264a026d3adc77ba3d110c5807579f0f3efcec1a7795dda5b02a65f2e6076d6b96f91d69035aef80436c594589ab5f3f2c9690eb86685e84f3462690e877755463de64597b9f4963c70c313608af4eb0be6ccc697419962deefde603568b90a61300065e288e66909b6c3477b33565d5c9048a4ea1b1c18578da8b5c34793e812839b626609b74d2acf42108c85f109de25e9f689,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812b614097e5393861153e480601e2996944443fff843f13bf3d9e26716c89d796966284e7ecadf5be72b54a40f6ee9da8767205a1aa2b0764dafec99702055637b27d6b7db075ed9a329004180e8280c26cfeb6271ef94d7fce8e88e9005545be56093f6702477ec5baad2a714aca9bdb9861853a6c77c3f829974310acc48f859fff8bf6a1fa56a46a79de3d114fe27e93cdf8137e420d6d550f88d48b1b2c87b6ac51064ea0dd5f14a72c72f5bafab25e9679a84db7961391611deab0baec774ef68f5234ab079980536a4aaee6f90da78bb163a5fc961ab62e876d293d7320fb6a99ebf8a48f754164603bffafd0352632774452ce2ea2bd5deafd1f9f89e5ed71298fe6e445a67c5708a7959ec5177f3030be4c9ad1683e7fd54f445379863a47d2b67443b2cf019e707e176d74c2948957c9ad05da7f3f6b85ae5b6be2509,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812e23ce6da49aa6387e8e20837884c6e7246c106cfb0357ecc9650c0552b182a32b2cb5d6cf6409f310b72fcd3d897a8cae45cbf6ab04ab854a7083b3fbb0c88cb57694f8180fd1c29e116cf3e18f03700be6716724bc61f44d02b4e66ebed58fcca62c4aafe8ed0283c7f9ec5cb43843bd23db147d0220dc59b34f95f8c7852be5865212f4cd0297ca64df28e3327bc83c875a7a7079890e6143ac0ead8a057cf539254c7265a1f360aa56421917d99e942156cfd1db83f0d8d576d99e3bb58179173a004a0f79b6fa75fb469d0c6f494a92a6a865bc9f644fee58da1315bfa12dc5e10fa1ed233dde97f01299be0d41daccf4ad3a74ea634d5718ee577860731da28640de24997064b2086810bc221de73770c878bbaa35c79ac9927776e423cab54bec9045af7514e37090432c8bda43cab39f7082bd3231522c84ab465364a,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81256c455d0bfa0b8e91a0ea6d5000e87804c09091a40dd429ea4da69d5905d363eee2fe7699cae8206d8fdc82c280aadc49e5d3a9c9842b052e905660e34054dec9e65d35bf71fa94a23210c8af64a345bff9e7817010a3fb2653733f5c47a3fc1c4cbe08b616eeefce36908b06f88c390ced7a3166cce3962097cc3c29812e23b1d6020e984a226805053a482afed4ecde476ae22ec8e8a392da5a158e2726cb53d6c3fbcd5a49c575df96696c5f22d1b1975f457f7b084b8b5944ec2d23a7929d8c071857039e6d18e7ac983c4718485453058c1ae9ff315b71c1c5cd26cd11191c238447e6b0319d0e0b9e24e8197ab6f868ecea24c4e6f58a599cef0207454ef9a32c32670dbe65526de179187d07c83af3e7f03478b9152ff55f8ed587205d7c8fea7adbcc4f829c36c64854a9dfd9e3f85f6f1ca4a3ff2ce717245afb734,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8129de4ac2217775c90c9f95a6406fc91f6af0d3d4175d75e9b48deaf048301b45ce85f8b0feae6e15da8d95c6ca79aa4d9b359ab0ccc2e5c90c5d640a638e16f64f7f4eff97c1b143eb97a11edd1cc9687c843865070dddd82510feb143bd3a58a35958068a9495887ca29f3ae139bf8c9f21aba27cf56e9af5c8612fd557478c6eb50c684659e2f620786233b023d7bf521430686afc3a9dca2080da7bf951bd3c016e59b6d63c9bac990d2b470c0af68b58f32da2faf325c22cb16021ceddbe84f72f0a6aa30d4f5df5b10aa45c1908e6b800c568bdc1a5522ee01ab8fe1057898047d49d37c6dc9d599fa264cf6b4ecffbfaa9f3cca38131e83abfc4fa4478dcbfc1250bcc8f175c7cffd09d9c3b9ad1a0368995285f4ed765144508a1aebe2ec6c7fb00ba2c92160cc070bf61020b3cc889d1c0b289d982946ef39fc40b2af,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812e3b3f0a75c3ea73f4d86904fdf94f4b7d6a10344a733e653be458000743f110affbf856a147cdfbf6e21847874f23ed512c25ab6ca5f2f0ab9b08a9243ea08b05537beef22aa8e3a2c166b2895b533754efd9edc61bb9fd6fccef413c264717d054071b9c9ea312c74374bac3d3f78ce05577e32b54cec6424cf738b917737584fe878bd8d96f546011f584792162453d5d90de76a1817cb40b7b0360b393495f4977f465753eedf8fdb88d18e0f2d5cfe610c040cac2cf59dc9cc09e78c8bb7b7320c92bcb5d74ad86e00bed11d1db0bd827f27a0cb7347af51a460f44ae6732ed13e6c535e2152916b817b75b2ceca1ed0515197e406eb0f88958338f3fe20f735f36c8ae58c744e72214cb2b02bbcc701c23ebfe4d453e1991ceea9cde19a,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812fe0aa04bd37816419d58b645e886d594ac38b6013da68d2edfe3d38c4f7ed7b39110075a0188ae940e31f681b6d72f02be853c4d872bbde9c3a3be668bd2929838e98feda85db0e02ed019ae023fb258956a7fb568e35415d80bb3d81611769924ca0bd2a847402a0d2cf9257e2009204ff7c4a29fa296444fa4a6ff0c106fac9053b5cf7e06d84850e3857ba977c67aa9daaae53ef008f0748b4c891b839f0f41fbc5428dd3e18adac0acd9c373596d24e512cfc9c430c308fb6ac335f9f38abdddb673c11e2a64dc40427d133e7f9fbedee43eec31501cbbdbded565d9f665b2f07368f67ff2ed8e1ab987995add72fa432cd19ff94780e049b3a00dbad7bc99b6a96eb4226a0ccd239633f5d994d61d10827571ba9f7e049e0e97cba7e0c51228aa9a5c795ba13aaf5760e4480bc1587e424b3ef20516e6c2d48350352ad7,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8123ac60a1d40385c5771ff931e29193393b5b2fab6fe478e0f892ee8e95fa9f986e4b77b4c7fbe8da295c62bd98268fe754e73d0f21203a59a2e03c150421e1742e501fe7ddcf64f5ea846be09d3127963b885987ec457e1e6a63f124e1d0f1c801acf20125778613eaaa2170a9069879d4816fb03d5f977b6f9e7a8d6734827deebeff47de8de5beb2362ca631a4e5e1ebd10f5d8c843ec26b286d77395c86bf68de00704b1a6a89857dd6062b812f0473d4d36fa699a9f6ccd49eae2cda50b11422e618ba5b70455ea5e6389c219bf8b66bbd7d7ab320ff9cac59e1c959b3fb14e6758d6297a41af874d66d6698c23ac81540ecea04e6688769555b5ed8bc0ec22902df4284a2556ffc2d7b6360c01753fa4f7f3d3c637e7f18a187dcb552be2b8148bbcb9cea428e84ae0d742633028587e424b3ef20516e6c2d48350352ad7,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812dbf6be3196eb74e3fa5d5ace01b2fd075aaa11b50fca27af614609b90ec6913773ffb75de5c4dd9a53f85dd8093e4802552c052cb938588bc03ef4156d2615f4ced81d4f3e62daea3466cd97ad8f69f58e01caac8030ff60c6cf842e72a77bc3b17bc8a17f7dc8facd21f5b68cbe96445b89a66ddfea32897d108a22d8b9d30a8466811d632efef5c4ee431d98fc60776a02977efa86a6f6d7698ec5c8951ab18014a5372c9858b54fb0ba44295c5c60ea1364e109a3fb1a6d64932f220500c2daaa21ac2b1302ca3d412a5b1129d90f19a29f61d504ae1c735b3f389ea1a2ad070e4e0dc703d08fd384a79467ade0e8a6bd539bb9fa92b2bcbfb9c8ab97bcb8e1ffce76bd0b8f249ff8c320692b7d045279d3a43abf3d01dbbb11b427e93f09,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812bde5384bb92d5eda310e81407b896570e8190f9c9b5fbc0ea8065364d634531c6bc1682ffd2f7cb1e66bcd550a3e160441a910161f38e31497a51769f0d8fb4c0127c5b899b7514b97c4158cd64067e69b3bff34579a7bef26335572346f35ebb38ab54e9fa6008d469f8cba46bc71737e444342060db534b24d1496873579b28f0df17c58b1c0baeb0142b9ecdf79a586d0fdc0867eed04508ff75730a2a6699575fa78e0355d43a5a4a5bc131dad1fe43cd31334d892ff769888499672135f3dd9b3fa8dda9c44cd0d5a0c1dafb4b22ece04707fa96a18bceb32ca44df8d64ff7bfaa699ddc6434f3f904b3c9394895672e92b2a3ace4a6c58f9ff69a1cb79c6bda4bf1a4d120afc8fafaff6ccc30d6ec2738d78eebcb2c3d321744d412147b1d54aa0138115b3b1b36b17166ee14d166c54e36382c1aa3eb0ff5cb8980cdb,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81262c837ab8ff2d4a8e344dfe82757aca91f50382df91d6d440b0c2d259cc92aea4ea40be828084ddb47167265aa51a60c78169d22d1009a28523e499fb4c34781d50d67901b58a5ace2648c50b9d91c39fba3144087cef7c344e8410457afc808f80e3ec8b4da20e93bcb527c62e617e2618131ddcf68205f7a21e548dc9e094099dd6351e5b3ece301a91b26cbcad25baa96a66d0429e8cd62348529d017ce98e0aeee91a0b9772ec9ec2d764f5abd0778fa53d8917ee825f3f28f8cff2a503e7b23df36154fc8ba141ee129b1a92d34292a250a673164328ea24ecda95af698f1a65adc1427dda6ddaf442e25924451ef39896e2a998ca012fa34c93745cfe3b0a7c4ab753e1b4b3e4df89a0472718210dc9d4b07bbb9ccafba0481e2d53512a00c3fb9c7a464f7b70089b948a7feef,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8121c072a9832d4a2adf5bfc6f8aa2c1226d86e8bcba3437cda674fbf5f2b8e89b963fca7145dc03ad59b18332668d63f72639e4a5670046420a34b715b936f4f6af27c6a0b7fcb4410a617c337d044ebed27b399f6ede2f7dab102d38f7af2572abb8f8fae18b9ef2688fa68f3f5153cd6db6aba2f5903c82cf10f5ef1f1297a6096b4773f4c4c3a5ba7d147e156d37e352ea662d7161dd9851738c485a9c5cb97f84e56205e5403f3eae00896de9c35c8c6ecbccadd90316686a38bdb77b37183bc5edfe85f76b03773e6c109108f96bb7b60852b9ad2522903c7ab7c156511f9285569693d2e0c25512958c7e3c9a818848f219488951d3e90638dbd3fea0c25bedc8bf034e93f5cb81b3fa47539d871,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8127f044305f0fdf583c6fed7cde4b8feca385f3f0d89dba9d3770c7bb1094bffd47b42d2929749c9a15fc1cf899b829c979a2ceb3685214fd521f6b2fe101f64829e935c3782de6264617c9d39cd4402cf61ae2fde77437b85f7ea8c21fc5d9ac9527f3319b26133f319517394bf7e41d812ffd7c12ae5a25ed0b493271735b642475ca8b1e7c18085ff41594d660b75f8843e342be2e8f4cc67bcba072e3675809461f0731f6ca80e8f7304ab1bee82907cafa5664f83cad03d5b4aeb010edcab5d7ea1395317166efdb9bd7d1d4a9ed9e982e06b88d18c456a2cb6d95086a274c2de4fd53baba8ea10e4ebbef9422c96c6100ce50574a4347eda7a53bccbe693a6d5f79cda6e2be081bada797118e36847763d22f808c026050620c896093b4ae20065d69c34b46d89b85835fa57e19f,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812905979e576248dc4813b5d9d13e5fe0db229eed22c087e5a612d4cd11a1d11d6aa969fdd4344336f8d6b278a9958b97e668ac928c99ee5b76cd8f472b451bb68179667474616d33ba9cb5fe93d034324d1dd7ebea60d7fc2f045b6936c216a502a83515daed0acac14c12bed779532795a53f6dd0ac52eeb2157604c34d74b92850aeda851020c1bdbd16d24a58c69d64cff2e022a79da02287c3fbdfa6039e34c339690b7851b0db4ed45e845bc3c587df6f0f08835f0d7f939123ceb00fe0a59baae8fafae7daee830f2684cbacdbf49a30c28163778993c59b5777f613a6a0a801f8e35a8f05c7264db08c70d3e20e682442a9e2bbf1962f5e28ce249d81d55f6001636775ae125cb89a32dc2285419d4c226b7782bbd8cc2a6ae57f709c8,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812ee4190668e89c896f7f5c6e57de1c43ada96adad067e4daa1884954ce9f9b75d6cb16a4a47940e82d8ced9f2ac77e37c6b27ca0c36f1113c92d5bfda5330a47a382ddb5b3f379f2f3453d34f841b917ef56d44e71e5d21e6b8e164148d877b0ecda743588abc8b725f511b0616f761754648909875e499e4d063ea4566711924b34073496fd593efc0e41a11a11b1a304b7eb91a2e83a46fc7db19c101c0269d69fff47dc41509ffe66378a37509e24797a47773e19d04b54f7b450399be8a141fa4e71b6484451e11bf529244cdbf986655488fd45946377de300fc0443f3043ec2c7603e0d02bf6b388af99978ec8b56a1d7167f64d40da3901e5136dbcc3921b6c7b27de9d85916ca35d818e56cf9,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812f3d17b00b732fdfdf4765079baf97bcac5c8f5d166440b61fa41208dfe4a919712b82085ae345a565c4f96e2f7d2fed28c095efdc7ce1de73a36561f3c8d1517496685d072a0fd29a68b2d6baf24f240d53e77c2d07686e8ac4d712f788e4fecc62cd11119c522a5ccdb657d2e4792f2f8609dfac2172c454fba34ec1ae8d0b5d537b533d00530e2788e667fb19abcfeafc5ba06587772420a746083bded83181ca53f9f5a4f05517377d8204c8f7a90aa844d172b90101d0aba1b4e8785307a55bb1d304b43b97c3ec981b758f2d244ca684223cba611d0a15af2e66b501a6106c5e0d833d021f6e9cb46f46b95a13839599bc3d2789dfdd0b609f9e5e310ca0a1188ddf2cbbee51a420f6d26bad270879898cde94dcdaf8bf3a1f86b122a74,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8122eee51bac40162c35f6f08d08a0fc3fdb35abc9f54783feb5adfde962db7afd994922cab381d2eb74bee93923ce212732a693133bac248182f78506f797e3179f4d9668031de3a8f2bde066fe0e80bd980f94fd7644324271ec9fcc7a2b02f675272f99a28da7245a8c63922c0a64041e3115e4c34aeea125ff34e4f37ead11b669c0974b82edf13bc4a96679f0dd4861d59105d9ac7ba178b1ee0f0af9f39fc5089b1d4a584a16e1a9c0dcde0f8dac8477d6162e7c27223b2dac4649ff9c653bfe5858a04ab377a03332605444059819a9f5fd0849059e27511fc2749c0d9799a34be4df0187bbc8dcc5f6707de4d29291e2840d9466c02167422868cf7e64f3b843933a06366e6beaae923bf1ea33c2eb492675207c27b90912a2ed245fbbf,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81240cdd8c249b75017a6113d5f922279c4703e15bac46f9a1bf54e41f914f8112a57cc9e85f9032a6d7dca1aafee12bec32fd5e9545c359da1d82e46ab4f8641b7501b87b4e1b7e7f32e98c3d206ad46e9db2e8f354c45d877bf35fe19bc93459d726521fa303f89e64e2b9704d366908c5fb2130b0ce6c033738852722abce0c5b4e77fd17e09c68200040545ee31be6682dfab7ce331372923a2ff40de2ebc2e90efc44ab177b506c4ab55b3e6b54c6a8505b4aa38beeb88900ffefeefc4855140d25de3ec4e8858decdfc54a43f1abab3fcd25680363de3e9ac5be344c1deb522e6532f548c44e862ef6505dbe52d482ede953a50ac25ac2b5098793a2b0a2f3e711b15c66b9cb8d48f55f72813b3bd06ed55b2ac7324be134650c12fc0210339fbcf0b2c4219c18ac8b2479031e5c2,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8122673c56b9f9cc1dcf9379571bfbd33d0d3d9a1d833dac2398a8c566ea3b79ec1b3468fdeb1650ae457f8d2bb1198601a5066aae1c5ef9ba053c56f7dbb4ce850cc18b584519ef58cce5fd4e344fc49ed7c215b1f49b931a3e910859ceb138d52e4f2e2a646354c7efa6990e9dde35f68e4b174937fe47f089de73eaa6a87946dbdbb469a5fd6db22e99e5a54e5eb542177c843b33ad0dec9755c65983dcc7f22782ce93a6bbdeca5f6e0ec6dd66f66a6631e8887c2217413a7d3cbc5c90efd4505aca8351a52969b4f8864ad080bc3cd084526a3995b63823a18fec84fa505ba1b54dadb0dca44b2c8303ec0c24185ecbbc01226fe7da86445484d32b908f2f518f416c9488756c02064d1faf7b962bf7967e76f43804784ce7c70c35ac2bf0661ac4d25dd8fc8e9e618e434291cd70e,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8120f7458b0b36809d7c8cad9c5dc09b50e138dd30ff327a7cce645103efae1ac077352e3d3f556413f305324190cc2e3c72efe7452d7ec9db9aec79cc683b223c41c623a4ad477a8e52b09a596eed3dabf74b71767283b41078bb2f2a2ea637b277d65bc7bd831f3c152fb341ef2bb7180579fd0940da7cefed5ca04bdf6fef26a29c93e7e01ed032dc72975a3c236ac5efc8bbad9889fe34c80c237d97eab486259ff753c2c55c6a8b8c8fef98c6608515ead51192981ea801f0e1976605596ede8bbf262c9cdea0ba9e064b31c7463e1c1fddda4eb6ec7d6a28bdf02403e268c966f6a25e5adcdd3194cfc2b30a0987a3f21b0771e5ea7a6f7d09e53f3f1e9acac42a308e5e5259c7c4c88c645e810890c9a978a9a09e39001eaf3676519a6f2a1026bacb65f884b5b58fd0f8444849d194e5160470ddf86b5827e3cf61b9c9b,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812a839c94fbbf4c826722179493cbedb5f85d2278f1b69f4ead595135fe12359067539fe14bc1d974572de15a1709ba1680f2f8246936e094e1ca36f56a28e268f407504285462fdcdd5a74b52d2a45c1fa6c731805ece82ee3c2571fce034d1196b7d20012f9b5db9fb2ac83b4905d78f0c889b44189d82af5d350c4ddb6a44adabecbf10ef57f6a89d75629a1f2757cb1fb1efe150a1aa3d57380bdbb127b113ad84e2e38a2b381189222b42f312e133079548e9a3919654c2f455e2808fd902b4f69e56b84cdc2bb05543653ba9eadbd9fe41df34e92c55e62923adff2ceb26ffcc237dd2fe667d05d0a16db9bb370155fe862f4f3d3e36943e95fabb6c366d48a94bab5f28c2d60655de7c18be691e7435d92d8a6271a384c66e2bc3fa7fadaef4f698415f19a84081bdfb49040a52,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8125b9e1193f1dcc8c5be93660511d7edabe50a45caf91a86ed2d3d7e3aacf3ed606c670dc653fdd9f683663d17f81a6440592fb3f9d16bf4ee941d9acb76f7f35d0309365503ae332dbee38479ed64114ef9faab411c1744a1b28b48b6890e996870662fc9103f094f6f2adb611ca4249838027fbb247a16a8ff256e00243d8d98e5b63a5ec0bcbb8acd2099149c045620301c08a46dffc3461df86b27382332ac4bf410dc7bfd1d1900ec43008fecea8953e307feeb3339822102cc689a2fbc8cc0b17acdb39520a314150af95bc5f101a438e876cd6d9e19a94bf384ae1ed736334825435db06fc440cf4dcdccdddcdd426b26b2d4fe1d31d85f50221c2fe40992f4a346c68c468a71fd9d14201a0aabfb11dcd08984742cdef7867899cfc75dd3a75871a32550c613ef53b8cf09c4ee3cacb1d7bb45ea9cb5b6b8393079b11c,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca81266a209a98721c105d179d41aa517c51ce13a89a23d066911985cafebc2d6a3e5333f013c9f53a556ef76f602487cff2a997cf68fee10eaae7286a93864c481722d5343d5846379cdad847615ddbc965cd569b52a48d3d2cea56a0922eff53235f9d91932be5402950e59432a6325e0093df38defc3e08191e1d9b9ee00f2b51d0d604a3dc8e1b7d74e0496cc628e8f0d165a8dcdc4d3f52e16765d34d9e77211c4f6b73b7516028bbbbcb04f898ef354369a62cb240d86f09e2fc26552e6d91a40579bba93ed3393fcd573aa57d05ce1f357aa97879bbb88a219472a55de6f01e24fff56eaac8ddcb4a80290acf366feca0fbdc4d329125cb92d439fde0d28f5b28d274f255b49950f302f2fb3b19ce73ba346ab97eab3dd27bf5d71fcdbcc616998ce15d4919f77e8ca71a2b5576e26db9fed5e05d0fde49312cebb836cbbbc,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812245e4cf5f39a617a336771187036aa8ac7b1c377e73b514b7a4363857b1f416f8171f664dfad415e1c1f9ca308e7becbb369c5ea7631a05530b9af4130658df8ffa180df143b7bcc712fff0d92f97f6ab5bc6af4810d3384650a5adeef6dee5d55c0c4ec1eadd28629d4377c8691497adb801004af59e433f90019af223ac029b51077288027f98a24bb6fba311d6ee876be8447ba5c335fe1fc5b53ef342d3c79eb1b0f109062ce87d66794538ad179dbbebf2b54b966125513b7d886efe13b04888e5f3e9272b7ca60cdc066d3202c1d8c5df1c9890f9b25d395893539ce24472e6530b89326265b0907057cca269f45a7c02a55dc760987e58f4331f5c231030b9fd8190393d41a4fef7e6ce8dbcde1851c70823154aba6ec6f597a6ecb15ff917a5ac8bf263132d3ae0c40f1aa37166c54e36382c1aa3eb0ff5cb8980cdb,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca812e2efa1a5f2806fe0b635f7c7f36b9bb51dae7a45b9c6bc523901f61020548074006ea7a5d23c8938733076437b73e65236ee9d5b2bf33831813505e889e1280a9bd3a1e7172a684724ef9a59deedf42fe50be3b940dec7b49fefe8cdc8ec8ddca5aee66d0b9ace641578d90b0b8b557b74a959db5f6dce9e664433aa681c772ac152f131088d0daabef736d90f9a448834c8681da5b16784a1c8fe64e791791eb6e75a9f77f8b3af7513dd156abd622246fb302295d3b9bd47783887e709108f2275a508be385e90cdab7010457f134bdc27dd8b80699e65646d1c9fa322108b16db6611c1403d2889fa6c018766dfd5e7bff4b0bb7848f38a1cdd0cae56200761242b9a63fd5699a275235da73a4518f428e50608c4b3753c4f491c0fa4aedf812f1dbf1193318a9144a8b653525295,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8124603fb3da052c23a50af2c374f9e5fe7b799a51f966ea680ca1bde13942a41ce1058d549b7f369049d070aaad5fb6adb15b8d34e6af589f6f69a19a7bc088b56a8cc6c3ffd74162ba9cc0b32fde6438adbe84f849cfd5fcae2a02990eeb78fd78f44cf9cdad01501fdfd62a3fcf5a11c80ddc302ad1a39a6133fba87b93164d1037966419c223583d6effe7ed7ba84867f081dfefd3d1511690368f058fb124e380879b1f438f78bbb86cbb4deba99eefa7a42bd945435cebdfd1de80a3bc3d65438178ce082a557fadfdc923c2da61e102445e493fdd5fbf2116766fa01d93c24a6a7b6392a77874958984e991166ac355ce2436a80a65949b322ea148a41e961fce29c4beb5e92591f779ee162072d,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31d256bee14356aca3f2423c0f022cb9660eba051b2653be722c4c7f281e4e3ad06b85d3374100ac416a4dc5c094f7d1a811b903031bde802c7f50e0bd1077f9461bed8f9a32b516a3c63525f110c026ed6da86f487dd451ca8126e3ec73bc85df5f9e89cf898435012103baba4f847893604c56b0d6ce1e1a4196b185c65986a0f231f37a539a7a7bbdbf4631b9c14dec2885a6da3b91dd558a8c311c29622493433bfffecdfd6bb721a4596dba739dc3af931d0f9d359f752d4f61d4526872f115f78fc8f8b300ab12d,1 +https://proseconsult.umontpellier.fr/jsp/custom/modules/plannings/direct_cal.jsp?data=58c99062bab31a21a4596dba739dc3af9a4526872f115f78fc8f8b300ab12d,1 diff --git a/server.js b/server.js index 77ff5ff..d76d869 100644 --- a/server.js +++ b/server.js @@ -116,7 +116,8 @@ async function syncIcalData() { const links = fs .readFileSync("links.txt", "utf8") .split("\n") - .filter((link) => link.trim() !== ""); + .filter((link) => link.trim() !== "" && !link.startsWith("#")); + console.info(`Syncing ${links.length} links...`); const time1 = new Date().getTime(); const responses = await Promise.all(links.map((url) => axios.get(url))); const time2 = new Date().getTime() - time1; @@ -281,7 +282,7 @@ app.get("/search", async (req, reply) => { summaryMatchType, descriptionMatchType, raw, - sort = false, + sort, format = "json", } = req.query; @@ -389,9 +390,12 @@ app.get("/search", async (req, reply) => { return regex.test(event.description); }); } - if (data && sort) { + if (data && sort === "asc") { // sort by start date data = data.sort((a, b) => a.start - b.start); + } else if (data && sort === "desc") { + // sort by start date + data = data.sort((a, b) => b.start - a.start); } if (format !== "json") { reply.header("Content-Type", "text/calendar");