From 595dcd1dc7698bdd8b92e1649729b805d08a9fdd Mon Sep 17 00:00:00 2001 From: Emile Bex Date: Tue, 31 Oct 2023 12:36:56 +0100 Subject: [PATCH 1/5] chore(icons): remove all uikit icons --- .eslintignore | 1 + .husky/pre-push | 2 +- .lintstagedrc.js | 6 +- __mocks__/svg.ts | 3 + assets/custom/icons/archive.svg | 1 - assets/custom/icons/calendar.svg | 3 - assets/custom/icons/car.svg | 3 - assets/custom/icons/check.svg | 5 - assets/custom/icons/chevron-left.svg | 1 - assets/custom/icons/chevron-white.svg | 3 - assets/custom/icons/document.svg | 3 - assets/custom/icons/email.svg | 3 - assets/custom/icons/eye-closed.svg | 1 - assets/custom/icons/eye-opened.svg | 1 - assets/custom/icons/filter-empty.svg | 1 - assets/custom/icons/filter.svg | 1 - assets/custom/icons/gender.svg | 1 - assets/custom/icons/home.svg | 1 - assets/custom/icons/language.svg | 3 - assets/custom/icons/linkedout-arrow-back.svg | 11 - .../custom/icons/linkedout-arrow-contact.svg | 13 - .../custom/icons/linkedout-arrow-growing.svg | 11 - assets/custom/icons/linkedout-arrow.svg | 15 - assets/custom/icons/linkedout-calendar.svg | 5 - assets/custom/icons/linkedout-car.svg | 17 - .../custom/icons/linkedout-close-button.svg | 14 - assets/custom/icons/linkedout-contract.svg | 11 - .../custom/icons/linkedout-hamburger-menu.svg | 11 - assets/custom/icons/linkedout-heart.svg | 11 - assets/custom/icons/linkedout-location.svg | 14 - assets/custom/icons/linkedout-mail.svg | 5 - assets/custom/icons/linkedout-mention.svg | 11 - assets/custom/icons/linkedout-people.svg | 11 - .../icons/linkedout-plus-round-button.svg | 14 - .../custom/icons/linkedout-share-facebook.svg | 11 - .../custom/icons/linkedout-share-linkedin.svg | 11 - .../custom/icons/linkedout-share-twitter.svg | 11 - assets/custom/icons/linkedout-skills.svg | 11 - assets/custom/icons/linkedout-trash.svg | 5 - assets/custom/icons/linkedout-work.svg | 1 - assets/custom/icons/location.svg | 1 - assets/custom/icons/phone.svg | 3 - .../icons/aider-boite-outils.svg | 2 +- .../img => assets}/icons/aider-interview.svg | 2 +- .../img => assets}/icons/aider-reseau.svg | 2 +- .../img => assets}/icons/aider-welcome.svg | 2 +- assets/icons/archive.svg | 1 + assets/icons/bolt.svg | 1 + assets/icons/calendar.svg | 1 + assets/icons/car.svg | 1 + assets/icons/caret-down.svg | 1 + assets/icons/check.svg | 1 + assets/icons/chevron-down.svg | 1 + assets/icons/chevron-left.svg | 1 + assets/icons/chevron-right.svg | 1 + assets/icons/chevron-up.svg | 1 + assets/icons/close.svg | 1 + assets/icons/copy.svg | 1 + assets/icons/credit-card.svg | 1 + assets/icons/document.svg | 1 + assets/{custom => }/icons/double-carres.svg | 2 +- assets/icons/download.svg | 1 + assets/icons/email.svg | 1 + assets/{custom => }/icons/entourage.svg | 2 +- assets/icons/eye-closed.svg | 1 + assets/{custom => }/icons/eye-hidden.svg | 2 +- assets/icons/eye-opened.svg | 1 + assets/{custom => }/icons/eye-visible.svg | 2 +- assets/icons/facebook.svg | 1 + assets/icons/filter-empty.svg | 1 + assets/icons/filter.svg | 1 + assets/icons/gender.svg | 1 + assets/icons/heart-empty.svg | 1 + assets/icons/heart.svg | 1 + assets/icons/history.svg | 1 + assets/icons/home.svg | 1 + assets/icons/info.svg | 1 + assets/icons/instagram.svg | 1 + assets/icons/language.svg | 1 + assets/icons/link.svg | 1 + assets/icons/linked-in.svg | 1 + assets/icons/list.svg | 1 + assets/icons/location.svg | 1 + assets/icons/log-out.svg | 1 + .../img => assets/icons}/logo-entourage.svg | 4 +- assets/icons/menu.svg | 1 + assets/icons/more.svg | 1 + assets/icons/pencil.svg | 1 + assets/icons/phone.svg | 1 + .../icons/picto-creation-opportunite.svg | 2 +- .../icons/picto-faciliter-integration.svg | 2 +- .../icons/picto-recherche-cv.svg | 2 +- assets/{custom => }/icons/plus-filled.svg | 2 +- assets/icons/plus.svg | 1 + assets/icons/question.svg | 1 + assets/{custom => }/icons/quote-left.svg | 2 +- assets/{custom => }/icons/quote-right.svg | 2 +- assets/icons/search.svg | 1 + assets/icons/settings.svg | 1 + assets/icons/star.svg | 1 + assets/icons/trash.svg | 1 + assets/icons/twitter.svg | 1 + assets/icons/user-empty.svg | 1 + assets/icons/user.svg | 1 + assets/icons/whatsapp.svg | 1 + .../static/img => assets}/icons/youtube.svg | 2 +- jest.config.js | 15 +- next.config.js | 41 +- package.json | 18 +- public/static/img/icons/check.svg | 3 - public/static/img/icons/double-carres.svg | 4 - public/static/img/icons/facebook.svg | 1 - public/static/img/icons/instagram.svg | 1 - public/static/img/icons/linked-in.svg | 1 - public/static/img/icons/twitter.svg | 1 - public/static/img/icons/whatsapp.svg | 1 - src/components/SplashScreen.tsx | 3 +- .../AdminCreationButtons.tsx | 7 +- .../MemberDetailsHeader.styles.ts | 4 +- .../MemberDetailsHeader.tsx | 12 +- .../MemberTab/ParametersMemberTab.tsx | 8 +- .../MemberDetails/RecommendedOffersButton.tsx | 7 +- .../MemberTable/Member/Member.desktop.tsx | 17 +- .../MemberTable/Member/Member.mobile.tsx | 17 +- .../Organization/Organization.desktop.tsx | 11 +- .../Organization/Organization.mobile.tsx | 11 +- .../backoffice/candidate/CandidatHeader.tsx | 14 +- .../CandidateOpportunities.tsx | 7 +- .../ButtonDownload/ButtonDownload.tsx | 7 +- .../backoffice/cv/CVEditPage/CVEditPage.tsx | 5 +- .../CVEdit/CVEditCareerPath.tsx | 111 ++-- .../CVEdit/CVEditCatchphrase.tsx | 41 +- .../CVFicheEdition/CVEdit/CVEditPicture.tsx | 5 +- .../CVFicheEdition/CVEdit/CVEditReviews.tsx | 79 +-- .../CVFicheEdition/CVFicheEdition.tsx | 8 +- .../EditItemsButtons.styles.ts | 10 + .../EditItemsButtons/EditItemsButtons.tsx | 21 + .../CVFicheEdition/EditItemsButtons/index.ts | 1 + .../TimeLineItem/TimeLineItem.tsx | 147 +++-- .../TimelineCard/TimelineCard.tsx | 3 +- .../CVFicheEdition/cards/InfoProfileCard.tsx | 165 +++--- .../CVFicheEdition/cards/PassionsCard.tsx | 10 +- .../CVFicheEdition/cards/SkillsCard.tsx | 70 ++- .../CVFicheEdition/cards/StoryProfileCard.tsx | 37 +- .../ActionLabel/ActionLabel.styles.ts | 11 - .../ActionLabel/ActionLabel.tsx | 3 - .../ActionLabel/ActionLabelContainer.tsx | 20 +- .../NoOpportunities/NoOpportunities.tsx | 12 +- .../CandidateOpportunitiesList.tsx | 5 +- .../CandidateOpportunityDetailsCTAs.utils.tsx | 91 ++-- src/components/cards/CandidatCard.js | 33 +- src/components/cards/OfferCard.js | 37 +- src/components/cards/UserInformationCard.tsx | 23 +- .../cv/CVPDF/CVContactInformationPDF.tsx | 16 +- src/components/cv/CVPDF/CVPDF.tsx | 26 +- .../cv/CVPDF/CVProfilePicturePDF.tsx | 3 +- src/components/filters/FiltersDropdowns.tsx | 13 +- src/components/filters/FiltersMobile.tsx | 13 +- src/components/filters/SearchBar.tsx | 6 +- .../fields/MultipleFields/MultipleFields.tsx | 9 +- src/components/forms/schemas/formAddUser.tsx | 2 +- .../HeaderBackoffice.styles.ts | 2 +- .../HeaderConnected/HeaderConnected.types.ts | 4 +- .../HeaderConnectedContent.desktop.tsx | 11 +- .../HeaderConnectedContent.mobile.tsx | 12 +- .../HeaderConnectedContent.styles.ts | 2 +- ...ls.ts => HeaderConnectedContent.utils.tsx} | 74 ++- .../HeaderConnectedContent/ImgProfile.tsx | 65 --- .../SubMenu/SubMenu.styles.ts | 4 +- .../SubMenu/SubMenu.tsx | 4 +- .../HeaderPublicContent.desktop.tsx | 7 +- .../HeaderPublicContent.mobile.tsx | 16 +- .../ModalOfferAdmin/ModalOfferAdmin.tsx | 81 +-- .../OfferModals/partials/ModalOfferInfo.js | 25 +- .../OfferModals/partials/OfferContent.js | 25 +- .../partials/OfferInfoContainer.js | 6 +- .../ModalInterestLinkedOut.tsx | 2 +- .../ModalShareCV/ModalShareCV.tsx | 8 +- .../modals/PopupModal/SailInfoModal.tsx | 5 +- src/components/modals/PopupModal/TaxModal.tsx | 7 +- src/components/modals/SuccessModalContent.js | 7 +- .../{styles.js => CoachContainer.styles.ts} | 0 .../{index.js => CoachContainer.tsx} | 25 +- .../{styles.js => CoachTestimony.styles.ts} | 0 .../{index.js => CoachTestimony.tsx} | 4 +- .../partials/Aider/CoachContainer/index.ts | 1 + .../Aider/H2/{styles.js => H2.styles.ts} | 0 .../partials/Aider/H2/{index.js => H2.tsx} | 4 +- src/components/partials/Aider/H2/index.ts | 1 + .../{styles.js => HelpCard.styles.ts} | 6 + .../HelpCard/{index.js => HelpCard.tsx} | 20 +- .../Aider/HelpCards/HelpCard/index.ts | 1 + .../{styles.js => HelpCards.styles.ts} | 0 .../HelpCards/{index.js => HelpCards.tsx} | 18 +- .../partials/Aider/HelpCards/index.ts | 1 + .../{styles.js => InfoContainer.styles.ts} | 2 + .../{index.js => InfoContainer.tsx} | 41 +- .../partials/Aider/InfoContainer/index.ts | 1 + .../partials/AnnouncementPartial.tsx | 4 +- .../partials/AssociationEntourage.tsx | 18 +- .../CVShareButtons/CVShareButtons.tsx | 8 +- src/components/partials/CV/CVList/CVList.tsx | 14 +- .../CV/PageCVContent/PageCVContent.styles.tsx | 19 +- .../CV/PageCVContent/PageCVContent.tsx | 51 +- .../partials/CandidatListPartial.tsx | 8 +- .../partials/CandidateTestimonies.tsx | 8 +- .../CandidateTestimoniesOrientation.tsx | 8 +- src/components/partials/Chapter.tsx | 8 +- .../partials/CompanyTestimonies.tsx | 8 +- src/components/partials/DiscoverPartial.tsx | 8 +- src/components/partials/Footer/Footer.tsx | 6 +- .../ImageTitle/ImageTitleComponent.js | 5 +- .../partials/ImageTitleNew/ImageTitle.tsx | 53 +- .../partials/LandingPagePartial.tsx | 15 - src/components/partials/MultipleCTA.tsx | 12 +- src/components/partials/Partners.tsx | 5 +- src/components/partials/PartnersMap.js | 480 ----------------- .../partials/PartnersNew/Partners.styles.ts | 11 +- .../partials/PartnersNew/Partners.tsx | 65 +-- src/components/partials/Reviews.tsx | 14 +- .../partials/SharePartial/SharePartial.tsx | 10 +- src/components/partials/SimpleSection.tsx | 6 +- src/components/partials/Timeline.tsx | 20 +- .../Travailler/Participer/Participer.tsx | 20 +- .../Travailler/Rejoindre/Rejoindre.tsx | 12 +- .../utils/BackLink/BackLink.styles.ts | 6 + src/components/utils/BackLink/BackLink.tsx | 4 +- .../utils/BackToTop/BackToTop.styles.ts | 4 +- src/components/utils/BackToTop/BackToTop.tsx | 4 +- .../utils/BackgroundImage/BackgroundImage.tsx | 24 +- src/components/utils/Button/Button.styles.ts | 12 +- src/components/utils/Button/ButtonPost.tsx | 6 +- src/components/utils/ButtonIcon.tsx | 50 -- .../utils/ButtonIcon/ButtonIcon.styles.ts | 13 + .../utils/ButtonIcon/ButtonIcon.tsx | 33 ++ src/components/utils/ButtonIcon/index.ts | 1 + src/components/utils/Carousel.tsx | 19 +- .../CarouselSwiper/CarouselSwiper.styles.tsx | 2 + src/components/utils/Hamburger.tsx | 33 +- src/components/utils/Icon.tsx | 28 - src/components/utils/Img.tsx | 51 +- src/components/utils/ImgProfile.tsx | 76 ++- .../SelectSimple/SelectSimple.styles.ts | 4 +- .../Inputs/SelectSimple/SelectSimple.tsx | 8 +- .../utils/Inputs/Selects/Selects.tsx | 9 +- .../utils/Lists/CheckListElement.tsx | 12 +- src/components/utils/Lists/Lists.styles.ts | 24 +- src/components/utils/Logo.tsx | 15 +- .../utils/Navbar/Nav/Nav.styles.tsx | 4 +- src/components/utils/Navbar/Navbar.styles.tsx | 3 +- src/components/utils/Navbar/NavbarLogo.tsx | 14 +- src/components/utils/Table/Td/Td.styles.ts | 8 +- src/components/utils/index.ts | 3 +- src/constants/tags.ts | 3 + src/pages/404.js | 6 +- src/pages/aider.tsx | 12 +- .../candidat/[candidateId]/suivi.tsx | 5 +- src/pages/backoffice/parametres.tsx | 20 +- src/pages/{candidats.js => candidats.tsx} | 0 src/pages/cv/[url].tsx | 8 +- src/pages/cv/pdf/[id].tsx | 2 +- src/pages/entreprises/{index.js => index.tsx} | 115 ++-- .../entreprises/recruter-hors-linkedout.js | 79 --- src/pages/orienter.js | 17 +- src/pages/partenaires.js | 26 +- src/pages/reset/[id]/[token].tsx | 5 +- src/pages/reset/success.tsx | 4 +- src/pages/travailler.tsx | 8 +- src/styles/dist/js/uikit-icons.js | 502 ++++++------------ src/styles/dist/js/uikit-icons.min.js | 339 +----------- stack.svg | 2 +- yarn.lock | 61 ++- 272 files changed, 1669 insertions(+), 3003 deletions(-) create mode 100644 __mocks__/svg.ts delete mode 100644 assets/custom/icons/archive.svg delete mode 100644 assets/custom/icons/calendar.svg delete mode 100644 assets/custom/icons/car.svg delete mode 100644 assets/custom/icons/check.svg delete mode 100644 assets/custom/icons/chevron-left.svg delete mode 100644 assets/custom/icons/chevron-white.svg delete mode 100644 assets/custom/icons/document.svg delete mode 100644 assets/custom/icons/email.svg delete mode 100644 assets/custom/icons/eye-closed.svg delete mode 100644 assets/custom/icons/eye-opened.svg delete mode 100644 assets/custom/icons/filter-empty.svg delete mode 100644 assets/custom/icons/filter.svg delete mode 100644 assets/custom/icons/gender.svg delete mode 100644 assets/custom/icons/home.svg delete mode 100644 assets/custom/icons/language.svg delete mode 100644 assets/custom/icons/linkedout-arrow-back.svg delete mode 100644 assets/custom/icons/linkedout-arrow-contact.svg delete mode 100644 assets/custom/icons/linkedout-arrow-growing.svg delete mode 100644 assets/custom/icons/linkedout-arrow.svg delete mode 100644 assets/custom/icons/linkedout-calendar.svg delete mode 100644 assets/custom/icons/linkedout-car.svg delete mode 100644 assets/custom/icons/linkedout-close-button.svg delete mode 100644 assets/custom/icons/linkedout-contract.svg delete mode 100644 assets/custom/icons/linkedout-hamburger-menu.svg delete mode 100644 assets/custom/icons/linkedout-heart.svg delete mode 100644 assets/custom/icons/linkedout-location.svg delete mode 100644 assets/custom/icons/linkedout-mail.svg delete mode 100644 assets/custom/icons/linkedout-mention.svg delete mode 100644 assets/custom/icons/linkedout-people.svg delete mode 100644 assets/custom/icons/linkedout-plus-round-button.svg delete mode 100644 assets/custom/icons/linkedout-share-facebook.svg delete mode 100644 assets/custom/icons/linkedout-share-linkedin.svg delete mode 100644 assets/custom/icons/linkedout-share-twitter.svg delete mode 100644 assets/custom/icons/linkedout-skills.svg delete mode 100644 assets/custom/icons/linkedout-trash.svg delete mode 100644 assets/custom/icons/linkedout-work.svg delete mode 100644 assets/custom/icons/location.svg delete mode 100644 assets/custom/icons/phone.svg rename {public/static/img => assets}/icons/aider-boite-outils.svg (99%) rename {public/static/img => assets}/icons/aider-interview.svg (99%) rename {public/static/img => assets}/icons/aider-reseau.svg (99%) rename {public/static/img => assets}/icons/aider-welcome.svg (99%) create mode 100644 assets/icons/archive.svg create mode 100644 assets/icons/bolt.svg create mode 100644 assets/icons/calendar.svg create mode 100644 assets/icons/car.svg create mode 100644 assets/icons/caret-down.svg create mode 100644 assets/icons/check.svg create mode 100644 assets/icons/chevron-down.svg create mode 100644 assets/icons/chevron-left.svg create mode 100644 assets/icons/chevron-right.svg create mode 100644 assets/icons/chevron-up.svg create mode 100644 assets/icons/close.svg create mode 100644 assets/icons/copy.svg create mode 100644 assets/icons/credit-card.svg create mode 100644 assets/icons/document.svg rename assets/{custom => }/icons/double-carres.svg (66%) create mode 100644 assets/icons/download.svg create mode 100644 assets/icons/email.svg rename assets/{custom => }/icons/entourage.svg (93%) create mode 100644 assets/icons/eye-closed.svg rename assets/{custom => }/icons/eye-hidden.svg (96%) create mode 100644 assets/icons/eye-opened.svg rename assets/{custom => }/icons/eye-visible.svg (95%) create mode 100644 assets/icons/facebook.svg create mode 100644 assets/icons/filter-empty.svg create mode 100644 assets/icons/filter.svg create mode 100644 assets/icons/gender.svg create mode 100644 assets/icons/heart-empty.svg create mode 100644 assets/icons/heart.svg create mode 100644 assets/icons/history.svg create mode 100644 assets/icons/home.svg create mode 100644 assets/icons/info.svg create mode 100644 assets/icons/instagram.svg create mode 100644 assets/icons/language.svg create mode 100644 assets/icons/link.svg create mode 100644 assets/icons/linked-in.svg create mode 100644 assets/icons/list.svg create mode 100644 assets/icons/location.svg create mode 100644 assets/icons/log-out.svg rename {public/static/img => assets/icons}/logo-entourage.svg (94%) create mode 100644 assets/icons/menu.svg create mode 100644 assets/icons/more.svg create mode 100644 assets/icons/pencil.svg create mode 100644 assets/icons/phone.svg rename {public/static/img => assets}/icons/picto-creation-opportunite.svg (92%) rename {public/static/img => assets}/icons/picto-faciliter-integration.svg (93%) rename {public/static/img => assets}/icons/picto-recherche-cv.svg (89%) rename assets/{custom => }/icons/plus-filled.svg (61%) create mode 100644 assets/icons/plus.svg create mode 100644 assets/icons/question.svg rename assets/{custom => }/icons/quote-left.svg (91%) rename assets/{custom => }/icons/quote-right.svg (91%) create mode 100644 assets/icons/search.svg create mode 100644 assets/icons/settings.svg create mode 100644 assets/icons/star.svg create mode 100644 assets/icons/trash.svg create mode 100644 assets/icons/twitter.svg create mode 100644 assets/icons/user-empty.svg create mode 100644 assets/icons/user.svg create mode 100644 assets/icons/whatsapp.svg rename {public/static/img => assets}/icons/youtube.svg (89%) delete mode 100644 public/static/img/icons/check.svg delete mode 100644 public/static/img/icons/double-carres.svg delete mode 100644 public/static/img/icons/facebook.svg delete mode 100644 public/static/img/icons/instagram.svg delete mode 100644 public/static/img/icons/linked-in.svg delete mode 100644 public/static/img/icons/twitter.svg delete mode 100644 public/static/img/icons/whatsapp.svg create mode 100644 src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.styles.ts create mode 100644 src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.tsx create mode 100644 src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/index.ts rename src/components/headers/HeaderConnected/HeaderConnectedContent/{HeaderConnectedContent.utils.ts => HeaderConnectedContent.utils.tsx} (86%) delete mode 100644 src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile.tsx rename src/components/partials/Aider/CoachContainer/{styles.js => CoachContainer.styles.ts} (100%) rename src/components/partials/Aider/CoachContainer/{index.js => CoachContainer.tsx} (77%) rename src/components/partials/Aider/CoachContainer/CoachTestimony/{styles.js => CoachTestimony.styles.ts} (100%) rename src/components/partials/Aider/CoachContainer/CoachTestimony/{index.js => CoachTestimony.tsx} (94%) create mode 100644 src/components/partials/Aider/CoachContainer/index.ts rename src/components/partials/Aider/H2/{styles.js => H2.styles.ts} (100%) rename src/components/partials/Aider/H2/{index.js => H2.tsx} (89%) create mode 100644 src/components/partials/Aider/H2/index.ts rename src/components/partials/Aider/HelpCards/HelpCard/{styles.js => HelpCard.styles.ts} (88%) rename src/components/partials/Aider/HelpCards/HelpCard/{index.js => HelpCard.tsx} (81%) create mode 100644 src/components/partials/Aider/HelpCards/HelpCard/index.ts rename src/components/partials/Aider/HelpCards/{styles.js => HelpCards.styles.ts} (100%) rename src/components/partials/Aider/HelpCards/{index.js => HelpCards.tsx} (87%) create mode 100644 src/components/partials/Aider/HelpCards/index.ts rename src/components/partials/Aider/InfoContainer/{styles.js => InfoContainer.styles.ts} (98%) rename src/components/partials/Aider/InfoContainer/{index.js => InfoContainer.tsx} (73%) create mode 100644 src/components/partials/Aider/InfoContainer/index.ts delete mode 100644 src/components/partials/PartnersMap.js delete mode 100644 src/components/utils/ButtonIcon.tsx create mode 100644 src/components/utils/ButtonIcon/ButtonIcon.styles.ts create mode 100644 src/components/utils/ButtonIcon/ButtonIcon.tsx create mode 100644 src/components/utils/ButtonIcon/index.ts delete mode 100644 src/components/utils/Icon.tsx rename src/pages/{candidats.js => candidats.tsx} (100%) rename src/pages/entreprises/{index.js => index.tsx} (83%) delete mode 100644 src/pages/entreprises/recruter-hors-linkedout.js diff --git a/.eslintignore b/.eslintignore index 7476d2a07..1a3774493 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,3 +6,4 @@ assets/ cypress.config.js jest.config.js next.config.js +.lintstagedrc.js diff --git a/.husky/pre-push b/.husky/pre-push index f077c9172..c60b2708b 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn test +yarn test:inte diff --git a/.lintstagedrc.js b/.lintstagedrc.js index 11fa4018a..cc1114515 100644 --- a/.lintstagedrc.js +++ b/.lintstagedrc.js @@ -1,4 +1,4 @@ module.exports = { - '*.ts?(x)': [() => 'yarn ts-check', 'yarn lint:fix'], - '*.js?(x)': 'yarn lint:fix', -}; \ No newline at end of file + '*.ts?(x)': [() => 'yarn test:ts-check', 'yarn test:eslint'], + '*.js?(x)': () => 'yarn test:eslint', +}; diff --git a/__mocks__/svg.ts b/__mocks__/svg.ts new file mode 100644 index 000000000..000d49d0c --- /dev/null +++ b/__mocks__/svg.ts @@ -0,0 +1,3 @@ +// eslint-disable-next-line import/no-default-export +export default 'SvgrURL'; +export const ReactComponent = 'div'; diff --git a/assets/custom/icons/archive.svg b/assets/custom/icons/archive.svg deleted file mode 100644 index 3f38fe5e0..000000000 --- a/assets/custom/icons/archive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/calendar.svg b/assets/custom/icons/calendar.svg deleted file mode 100644 index f54bce62a..000000000 --- a/assets/custom/icons/calendar.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/car.svg b/assets/custom/icons/car.svg deleted file mode 100644 index 0f8997a93..000000000 --- a/assets/custom/icons/car.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/check.svg b/assets/custom/icons/check.svg deleted file mode 100644 index ba8a802e8..000000000 --- a/assets/custom/icons/check.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/assets/custom/icons/chevron-left.svg b/assets/custom/icons/chevron-left.svg deleted file mode 100644 index 97740e6b4..000000000 --- a/assets/custom/icons/chevron-left.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/custom/icons/chevron-white.svg b/assets/custom/icons/chevron-white.svg deleted file mode 100644 index 7959be722..000000000 --- a/assets/custom/icons/chevron-white.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/document.svg b/assets/custom/icons/document.svg deleted file mode 100644 index d963eac10..000000000 --- a/assets/custom/icons/document.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/email.svg b/assets/custom/icons/email.svg deleted file mode 100644 index 3b752e0a5..000000000 --- a/assets/custom/icons/email.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/eye-closed.svg b/assets/custom/icons/eye-closed.svg deleted file mode 100644 index 612b7f48a..000000000 --- a/assets/custom/icons/eye-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/eye-opened.svg b/assets/custom/icons/eye-opened.svg deleted file mode 100644 index cfb55609b..000000000 --- a/assets/custom/icons/eye-opened.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/filter-empty.svg b/assets/custom/icons/filter-empty.svg deleted file mode 100644 index b7a40f76f..000000000 --- a/assets/custom/icons/filter-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/filter.svg b/assets/custom/icons/filter.svg deleted file mode 100644 index 1d92e8eb2..000000000 --- a/assets/custom/icons/filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/gender.svg b/assets/custom/icons/gender.svg deleted file mode 100644 index dbca4c48e..000000000 --- a/assets/custom/icons/gender.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/home.svg b/assets/custom/icons/home.svg deleted file mode 100644 index 0f75552cb..000000000 --- a/assets/custom/icons/home.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/custom/icons/language.svg b/assets/custom/icons/language.svg deleted file mode 100644 index 691319c94..000000000 --- a/assets/custom/icons/language.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/custom/icons/linkedout-arrow-back.svg b/assets/custom/icons/linkedout-arrow-back.svg deleted file mode 100644 index 379891124..000000000 --- a/assets/custom/icons/linkedout-arrow-back.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape Copy 151 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-arrow-contact.svg b/assets/custom/icons/linkedout-arrow-contact.svg deleted file mode 100644 index ddef9d083..000000000 --- a/assets/custom/icons/linkedout-arrow-contact.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Line 7 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-arrow-growing.svg b/assets/custom/icons/linkedout-arrow-growing.svg deleted file mode 100644 index 95b0a8c18..000000000 --- a/assets/custom/icons/linkedout-arrow-growing.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Path Copy 3 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-arrow.svg b/assets/custom/icons/linkedout-arrow.svg deleted file mode 100644 index a5ba2919e..000000000 --- a/assets/custom/icons/linkedout-arrow.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Shape Copy 82 - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-calendar.svg b/assets/custom/icons/linkedout-calendar.svg deleted file mode 100644 index 5ccca2d5c..000000000 --- a/assets/custom/icons/linkedout-calendar.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/assets/custom/icons/linkedout-car.svg b/assets/custom/icons/linkedout-car.svg deleted file mode 100644 index da75bf34a..000000000 --- a/assets/custom/icons/linkedout-car.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - Group 3 - Created with Sketch. - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-close-button.svg b/assets/custom/icons/linkedout-close-button.svg deleted file mode 100644 index 82c7d08b0..000000000 --- a/assets/custom/icons/linkedout-close-button.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - close-button - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-contract.svg b/assets/custom/icons/linkedout-contract.svg deleted file mode 100644 index 7bd53a215..000000000 --- a/assets/custom/icons/linkedout-contract.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape Copy 3 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-hamburger-menu.svg b/assets/custom/icons/linkedout-hamburger-menu.svg deleted file mode 100644 index 6f52f454f..000000000 --- a/assets/custom/icons/linkedout-hamburger-menu.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-heart.svg b/assets/custom/icons/linkedout-heart.svg deleted file mode 100644 index 3d035056e..000000000 --- a/assets/custom/icons/linkedout-heart.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Path - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-location.svg b/assets/custom/icons/linkedout-location.svg deleted file mode 100644 index 574e528a4..000000000 --- a/assets/custom/icons/linkedout-location.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Group - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-mail.svg b/assets/custom/icons/linkedout-mail.svg deleted file mode 100644 index 9a6e4ac5b..000000000 --- a/assets/custom/icons/linkedout-mail.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/assets/custom/icons/linkedout-mention.svg b/assets/custom/icons/linkedout-mention.svg deleted file mode 100644 index 59fb0c362..000000000 --- a/assets/custom/icons/linkedout-mention.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-people.svg b/assets/custom/icons/linkedout-people.svg deleted file mode 100644 index c426bf8f9..000000000 --- a/assets/custom/icons/linkedout-people.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape Copy 108 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-plus-round-button.svg b/assets/custom/icons/linkedout-plus-round-button.svg deleted file mode 100644 index 909ddef83..000000000 --- a/assets/custom/icons/linkedout-plus-round-button.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Group - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-share-facebook.svg b/assets/custom/icons/linkedout-share-facebook.svg deleted file mode 100644 index 85b57e93f..000000000 --- a/assets/custom/icons/linkedout-share-facebook.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Path Copy 6 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-share-linkedin.svg b/assets/custom/icons/linkedout-share-linkedin.svg deleted file mode 100644 index 1a0ef2a2c..000000000 --- a/assets/custom/icons/linkedout-share-linkedin.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape Copy 21 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-share-twitter.svg b/assets/custom/icons/linkedout-share-twitter.svg deleted file mode 100644 index b28d20c92..000000000 --- a/assets/custom/icons/linkedout-share-twitter.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape Copy 23 - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-skills.svg b/assets/custom/icons/linkedout-skills.svg deleted file mode 100644 index efe7416be..000000000 --- a/assets/custom/icons/linkedout-skills.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - Shape - Created with Sketch. - - - - - - \ No newline at end of file diff --git a/assets/custom/icons/linkedout-trash.svg b/assets/custom/icons/linkedout-trash.svg deleted file mode 100644 index 33a5329d3..000000000 --- a/assets/custom/icons/linkedout-trash.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/assets/custom/icons/linkedout-work.svg b/assets/custom/icons/linkedout-work.svg deleted file mode 100644 index f5bdab905..000000000 --- a/assets/custom/icons/linkedout-work.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/custom/icons/location.svg b/assets/custom/icons/location.svg deleted file mode 100644 index d66c3a549..000000000 --- a/assets/custom/icons/location.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/assets/custom/icons/phone.svg b/assets/custom/icons/phone.svg deleted file mode 100644 index 9b815432f..000000000 --- a/assets/custom/icons/phone.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/static/img/icons/aider-boite-outils.svg b/assets/icons/aider-boite-outils.svg similarity index 99% rename from public/static/img/icons/aider-boite-outils.svg rename to assets/icons/aider-boite-outils.svg index f864b6744..13b620f4f 100644 --- a/public/static/img/icons/aider-boite-outils.svg +++ b/assets/icons/aider-boite-outils.svg @@ -1,4 +1,4 @@ - + diff --git a/public/static/img/icons/aider-interview.svg b/assets/icons/aider-interview.svg similarity index 99% rename from public/static/img/icons/aider-interview.svg rename to assets/icons/aider-interview.svg index 6a993e005..36d197ead 100644 --- a/public/static/img/icons/aider-interview.svg +++ b/assets/icons/aider-interview.svg @@ -1,4 +1,4 @@ - + diff --git a/public/static/img/icons/aider-reseau.svg b/assets/icons/aider-reseau.svg similarity index 99% rename from public/static/img/icons/aider-reseau.svg rename to assets/icons/aider-reseau.svg index 447b1e886..2510eb58e 100644 --- a/public/static/img/icons/aider-reseau.svg +++ b/assets/icons/aider-reseau.svg @@ -1,4 +1,4 @@ - + diff --git a/public/static/img/icons/aider-welcome.svg b/assets/icons/aider-welcome.svg similarity index 99% rename from public/static/img/icons/aider-welcome.svg rename to assets/icons/aider-welcome.svg index 0532b3ee8..14c0de10a 100644 --- a/public/static/img/icons/aider-welcome.svg +++ b/assets/icons/aider-welcome.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/archive.svg b/assets/icons/archive.svg new file mode 100644 index 000000000..64cfb0f47 --- /dev/null +++ b/assets/icons/archive.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bolt.svg b/assets/icons/bolt.svg new file mode 100644 index 000000000..92ae753a1 --- /dev/null +++ b/assets/icons/bolt.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/calendar.svg b/assets/icons/calendar.svg new file mode 100644 index 000000000..06398d3e7 --- /dev/null +++ b/assets/icons/calendar.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/car.svg b/assets/icons/car.svg new file mode 100644 index 000000000..b7ad3025b --- /dev/null +++ b/assets/icons/car.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/caret-down.svg b/assets/icons/caret-down.svg new file mode 100644 index 000000000..46fa657b0 --- /dev/null +++ b/assets/icons/caret-down.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/check.svg b/assets/icons/check.svg new file mode 100644 index 000000000..f1c594759 --- /dev/null +++ b/assets/icons/check.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/chevron-down.svg b/assets/icons/chevron-down.svg new file mode 100644 index 000000000..57bef09c5 --- /dev/null +++ b/assets/icons/chevron-down.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/chevron-left.svg b/assets/icons/chevron-left.svg new file mode 100644 index 000000000..9ab07c5da --- /dev/null +++ b/assets/icons/chevron-left.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/chevron-right.svg b/assets/icons/chevron-right.svg new file mode 100644 index 000000000..b5e6abf59 --- /dev/null +++ b/assets/icons/chevron-right.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/chevron-up.svg b/assets/icons/chevron-up.svg new file mode 100644 index 000000000..bffa33532 --- /dev/null +++ b/assets/icons/chevron-up.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/close.svg b/assets/icons/close.svg new file mode 100644 index 000000000..fdfa861b2 --- /dev/null +++ b/assets/icons/close.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/copy.svg b/assets/icons/copy.svg new file mode 100644 index 000000000..e3574100d --- /dev/null +++ b/assets/icons/copy.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/credit-card.svg b/assets/icons/credit-card.svg new file mode 100644 index 000000000..f4cf07bf9 --- /dev/null +++ b/assets/icons/credit-card.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/document.svg b/assets/icons/document.svg new file mode 100644 index 000000000..c530a951c --- /dev/null +++ b/assets/icons/document.svg @@ -0,0 +1 @@ + diff --git a/assets/custom/icons/double-carres.svg b/assets/icons/double-carres.svg similarity index 66% rename from assets/custom/icons/double-carres.svg rename to assets/icons/double-carres.svg index 2887ae4b0..d1f6effa0 100644 --- a/assets/custom/icons/double-carres.svg +++ b/assets/icons/double-carres.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/download.svg b/assets/icons/download.svg new file mode 100644 index 000000000..fbb8fb159 --- /dev/null +++ b/assets/icons/download.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/email.svg b/assets/icons/email.svg new file mode 100644 index 000000000..fec3089ca --- /dev/null +++ b/assets/icons/email.svg @@ -0,0 +1 @@ + diff --git a/assets/custom/icons/entourage.svg b/assets/icons/entourage.svg similarity index 93% rename from assets/custom/icons/entourage.svg rename to assets/icons/entourage.svg index 3853bfcc5..9ff793975 100644 --- a/assets/custom/icons/entourage.svg +++ b/assets/icons/entourage.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/eye-closed.svg b/assets/icons/eye-closed.svg new file mode 100644 index 000000000..52d2093df --- /dev/null +++ b/assets/icons/eye-closed.svg @@ -0,0 +1 @@ + diff --git a/assets/custom/icons/eye-hidden.svg b/assets/icons/eye-hidden.svg similarity index 96% rename from assets/custom/icons/eye-hidden.svg rename to assets/icons/eye-hidden.svg index 579864e79..674057ede 100644 --- a/assets/custom/icons/eye-hidden.svg +++ b/assets/icons/eye-hidden.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/eye-opened.svg b/assets/icons/eye-opened.svg new file mode 100644 index 000000000..39132b77e --- /dev/null +++ b/assets/icons/eye-opened.svg @@ -0,0 +1 @@ + diff --git a/assets/custom/icons/eye-visible.svg b/assets/icons/eye-visible.svg similarity index 95% rename from assets/custom/icons/eye-visible.svg rename to assets/icons/eye-visible.svg index 401343de7..8c7ac7883 100644 --- a/assets/custom/icons/eye-visible.svg +++ b/assets/icons/eye-visible.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/facebook.svg b/assets/icons/facebook.svg new file mode 100644 index 000000000..3a69ffca2 --- /dev/null +++ b/assets/icons/facebook.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/filter-empty.svg b/assets/icons/filter-empty.svg new file mode 100644 index 000000000..e033a6e0d --- /dev/null +++ b/assets/icons/filter-empty.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/filter.svg b/assets/icons/filter.svg new file mode 100644 index 000000000..7172a431d --- /dev/null +++ b/assets/icons/filter.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/gender.svg b/assets/icons/gender.svg new file mode 100644 index 000000000..1b1ec05c2 --- /dev/null +++ b/assets/icons/gender.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/heart-empty.svg b/assets/icons/heart-empty.svg new file mode 100644 index 000000000..8f581b5e2 --- /dev/null +++ b/assets/icons/heart-empty.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/heart.svg b/assets/icons/heart.svg new file mode 100644 index 000000000..1af8fcdbc --- /dev/null +++ b/assets/icons/heart.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/history.svg b/assets/icons/history.svg new file mode 100644 index 000000000..649e26745 --- /dev/null +++ b/assets/icons/history.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/home.svg b/assets/icons/home.svg new file mode 100644 index 000000000..6121cbdef --- /dev/null +++ b/assets/icons/home.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/info.svg b/assets/icons/info.svg new file mode 100644 index 000000000..167967e59 --- /dev/null +++ b/assets/icons/info.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/instagram.svg b/assets/icons/instagram.svg new file mode 100644 index 000000000..641bd975c --- /dev/null +++ b/assets/icons/instagram.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/language.svg b/assets/icons/language.svg new file mode 100644 index 000000000..cc713b420 --- /dev/null +++ b/assets/icons/language.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/link.svg b/assets/icons/link.svg new file mode 100644 index 000000000..e41ccc8c5 --- /dev/null +++ b/assets/icons/link.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/linked-in.svg b/assets/icons/linked-in.svg new file mode 100644 index 000000000..9fd942e82 --- /dev/null +++ b/assets/icons/linked-in.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/list.svg b/assets/icons/list.svg new file mode 100644 index 000000000..f9f35e6dc --- /dev/null +++ b/assets/icons/list.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/location.svg b/assets/icons/location.svg new file mode 100644 index 000000000..ad62b19f4 --- /dev/null +++ b/assets/icons/location.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/log-out.svg b/assets/icons/log-out.svg new file mode 100644 index 000000000..6ccb27b40 --- /dev/null +++ b/assets/icons/log-out.svg @@ -0,0 +1 @@ + diff --git a/public/static/img/logo-entourage.svg b/assets/icons/logo-entourage.svg similarity index 94% rename from public/static/img/logo-entourage.svg rename to assets/icons/logo-entourage.svg index 686c560ba..ea079ca00 100644 --- a/public/static/img/logo-entourage.svg +++ b/assets/icons/logo-entourage.svg @@ -1,5 +1,5 @@ - + Group 16 Created with Sketch. @@ -13,4 +13,4 @@ - \ No newline at end of file + diff --git a/assets/icons/menu.svg b/assets/icons/menu.svg new file mode 100644 index 000000000..04e7a3e66 --- /dev/null +++ b/assets/icons/menu.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/more.svg b/assets/icons/more.svg new file mode 100644 index 000000000..b0876028f --- /dev/null +++ b/assets/icons/more.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/pencil.svg b/assets/icons/pencil.svg new file mode 100644 index 000000000..2a37a8c78 --- /dev/null +++ b/assets/icons/pencil.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/phone.svg b/assets/icons/phone.svg new file mode 100644 index 000000000..80cc40872 --- /dev/null +++ b/assets/icons/phone.svg @@ -0,0 +1 @@ + diff --git a/public/static/img/icons/picto-creation-opportunite.svg b/assets/icons/picto-creation-opportunite.svg similarity index 92% rename from public/static/img/icons/picto-creation-opportunite.svg rename to assets/icons/picto-creation-opportunite.svg index 2512155ba..fdb0896b3 100644 --- a/public/static/img/icons/picto-creation-opportunite.svg +++ b/assets/icons/picto-creation-opportunite.svg @@ -1,4 +1,4 @@ - + diff --git a/public/static/img/icons/picto-faciliter-integration.svg b/assets/icons/picto-faciliter-integration.svg similarity index 93% rename from public/static/img/icons/picto-faciliter-integration.svg rename to assets/icons/picto-faciliter-integration.svg index 9e25ab1e0..2ad808102 100644 --- a/public/static/img/icons/picto-faciliter-integration.svg +++ b/assets/icons/picto-faciliter-integration.svg @@ -1,4 +1,4 @@ - + diff --git a/public/static/img/icons/picto-recherche-cv.svg b/assets/icons/picto-recherche-cv.svg similarity index 89% rename from public/static/img/icons/picto-recherche-cv.svg rename to assets/icons/picto-recherche-cv.svg index 1236ecc6d..ba1bb844d 100644 --- a/public/static/img/icons/picto-recherche-cv.svg +++ b/assets/icons/picto-recherche-cv.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/custom/icons/plus-filled.svg b/assets/icons/plus-filled.svg similarity index 61% rename from assets/custom/icons/plus-filled.svg rename to assets/icons/plus-filled.svg index bf464b968..ece12f937 100644 --- a/assets/custom/icons/plus-filled.svg +++ b/assets/icons/plus-filled.svg @@ -1,4 +1,4 @@ - + diff --git a/assets/icons/plus.svg b/assets/icons/plus.svg new file mode 100644 index 000000000..aa13bf441 --- /dev/null +++ b/assets/icons/plus.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/question.svg b/assets/icons/question.svg new file mode 100644 index 000000000..b7b6f6f64 --- /dev/null +++ b/assets/icons/question.svg @@ -0,0 +1 @@ + diff --git a/assets/custom/icons/quote-left.svg b/assets/icons/quote-left.svg similarity index 91% rename from assets/custom/icons/quote-left.svg rename to assets/icons/quote-left.svg index 83750f544..4ffb22093 100644 --- a/assets/custom/icons/quote-left.svg +++ b/assets/icons/quote-left.svg @@ -1,3 +1,3 @@ - + diff --git a/assets/custom/icons/quote-right.svg b/assets/icons/quote-right.svg similarity index 91% rename from assets/custom/icons/quote-right.svg rename to assets/icons/quote-right.svg index e2f91d1b5..a79c42f8d 100644 --- a/assets/custom/icons/quote-right.svg +++ b/assets/icons/quote-right.svg @@ -1,3 +1,3 @@ - + diff --git a/assets/icons/search.svg b/assets/icons/search.svg new file mode 100644 index 000000000..ffc0dda84 --- /dev/null +++ b/assets/icons/search.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/settings.svg b/assets/icons/settings.svg new file mode 100644 index 000000000..8f95a903b --- /dev/null +++ b/assets/icons/settings.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/star.svg b/assets/icons/star.svg new file mode 100644 index 000000000..2f0f5f34f --- /dev/null +++ b/assets/icons/star.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/trash.svg b/assets/icons/trash.svg new file mode 100644 index 000000000..33111dfae --- /dev/null +++ b/assets/icons/trash.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/twitter.svg b/assets/icons/twitter.svg new file mode 100644 index 000000000..05d16a52c --- /dev/null +++ b/assets/icons/twitter.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/user-empty.svg b/assets/icons/user-empty.svg new file mode 100644 index 000000000..3637c4f1c --- /dev/null +++ b/assets/icons/user-empty.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/user.svg b/assets/icons/user.svg new file mode 100644 index 000000000..31dd5898d --- /dev/null +++ b/assets/icons/user.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/whatsapp.svg b/assets/icons/whatsapp.svg new file mode 100644 index 000000000..95ff2b25c --- /dev/null +++ b/assets/icons/whatsapp.svg @@ -0,0 +1 @@ + diff --git a/public/static/img/icons/youtube.svg b/assets/icons/youtube.svg similarity index 89% rename from public/static/img/icons/youtube.svg rename to assets/icons/youtube.svg index 2839aaa64..23ec6d7bd 100644 --- a/public/static/img/icons/youtube.svg +++ b/assets/icons/youtube.svg @@ -1,3 +1,3 @@ - + diff --git a/jest.config.js b/jest.config.js index 40b7a38bf..fbb4e3bdf 100644 --- a/jest.config.js +++ b/jest.config.js @@ -20,4 +20,17 @@ const customJestConfig = { }; // createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async -module.exports = createJestConfig(customJestConfig); + +const jestConfig = async () => { + const nextJestConfig = await createJestConfig(customJestConfig)(); + return { + ...nextJestConfig, + moduleNameMapper: { + // Workaround to put our SVG stub first + '\\.svg$': '/__mocks__/svg.ts', + ...nextJestConfig.moduleNameMapper, + }, + }; +}; + +module.exports = jestConfig; diff --git a/next.config.js b/next.config.js index df104b98a..3b221ca2b 100644 --- a/next.config.js +++ b/next.config.js @@ -95,7 +95,24 @@ module.exports = withLess({ config.module.rules.push({ test: /\.svg$/, - use: ['@svgr/webpack'], + use: [{ + loader: '@svgr/webpack', + options: { + svgoConfig: { + plugins: [ + { + name: 'preset-default', + params: { + overrides: { + // disable plugins + removeViewBox: false, + }, + }, + }, + ], + }, + } + }], }); if (!options.isServer) { @@ -133,6 +150,28 @@ module.exports = withLess({ return config; }, assetPrefix: !dev ? process.env.CDN_URL || undefined : undefined, + images: { + remotePatterns: [ + { + protocol: 'https', + hostname: process.env.CDN_URL.replace('https://', ''), + port: '', + pathname: '/**', + }, + { + protocol: 'https', + hostname: process.env.AWSS3_CDN_URL.replace('https://', ''), + port: '', + pathname: '/images/**', + }, + { + protocol: 'https', + hostname: process.env.AWSS3_URL.replace('https://', ''), + port: '', + pathname: '/images/**', + }, + ], + }, async redirects() { return [ { diff --git a/package.json b/package.json index 3b80ef7a8..ff424d99a 100755 --- a/package.json +++ b/package.json @@ -10,21 +10,20 @@ "dev": "node -r dotenv/config server-next.js", "next": "next", "start": "NODE_ENV=production node -r dotenv/config server-next.js", - "lint": "npx eslint src --ext js,jsx,ts,tsx", - "lint:fix": "npx eslint src --ext js,jsx,ts,tsx --fix", - "ts-check": "tsc -p tsconfig.json --noEmit", "format": "prettier --write './**/*.{js,jsx,md,json,ts,tsx}' --config .prettierrc.json", + "test": "run-s test:*", + "test:ts-check": "tsc -p tsconfig.json --noEmit", + "test:eslint": "npx eslint src --ext js,jsx,ts,tsx --fix --max-warnings=0", + "test:inte": "jest", + "test:e2e": "yarn cypress:io", "build": "next build", - "uikit-install": "cd ./node_modules/uikit && yarn", - "uikit-update": "cd ./node_modules/uikit/ && git pull && yarn", - "uikit-compile": "cp -r ./assets/custom/ ./node_modules/uikit/custom/ && cd ./node_modules/uikit && yarn compile && cd ../../ && cp -r ./node_modules/uikit/dist ./src/styles/ && cp ./node_modules/uikit/dist/css/*.print.* ./public/static/css/", + "uikit:install": "cd ./node_modules/uikit && yarn", + "uikit:update": "cd ./node_modules/uikit/ && git pull && yarn", + "uikit:compile": "cp -r ./assets/custom/ ./node_modules/uikit/custom/ && cd ./node_modules/uikit && yarn compile && cd ../../ && cp -r ./node_modules/uikit/dist ./src/styles/ && cp ./node_modules/uikit/dist/css/*.print.* ./public/static/css/", "prepare": "husky install", - "test": "jest", - "test:watch": "jest --watch", "storybook": "start-storybook -p 6006 -s ./public", "build-storybook": "build-storybook", "chromatic": "chromatic --exit-zero-on-changes", - "posttest:cov": "node commands/open-coverage.command.mjs", "cypress:io": "npx cypress run --record --key $(grep CYPRESS_IO_KEY .env | cut -d '=' -f2)", "cypress:local": "npx cypress open" }, @@ -128,6 +127,7 @@ "jest": "^29.0.2", "jest-environment-jsdom": "^29.0.2", "lint-staged": "^13.0.3", + "npm-run-all": "^4.1.5", "postcss": "^8.4.5", "prettier": "^2.1.2", "storybook-addon-next": "^1.8.0", diff --git a/public/static/img/icons/check.svg b/public/static/img/icons/check.svg deleted file mode 100644 index 59c3b57f2..000000000 --- a/public/static/img/icons/check.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/static/img/icons/double-carres.svg b/public/static/img/icons/double-carres.svg deleted file mode 100644 index 2887ae4b0..000000000 --- a/public/static/img/icons/double-carres.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/static/img/icons/facebook.svg b/public/static/img/icons/facebook.svg deleted file mode 100644 index 217a8e752..000000000 --- a/public/static/img/icons/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/static/img/icons/instagram.svg b/public/static/img/icons/instagram.svg deleted file mode 100644 index 89f63c404..000000000 --- a/public/static/img/icons/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/static/img/icons/linked-in.svg b/public/static/img/icons/linked-in.svg deleted file mode 100644 index cd3e9b23c..000000000 --- a/public/static/img/icons/linked-in.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/static/img/icons/twitter.svg b/public/static/img/icons/twitter.svg deleted file mode 100644 index 0778f7252..000000000 --- a/public/static/img/icons/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/static/img/icons/whatsapp.svg b/public/static/img/icons/whatsapp.svg deleted file mode 100644 index 6789acfd0..000000000 --- a/public/static/img/icons/whatsapp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/SplashScreen.tsx b/src/components/SplashScreen.tsx index aff960899..e21fa8b9e 100644 --- a/src/components/SplashScreen.tsx +++ b/src/components/SplashScreen.tsx @@ -18,7 +18,8 @@ const SplashScreenContent = () => { LinkedOut by Entourage diff --git a/src/components/backoffice/admin/AdminCreationButtons/AdminCreationButtons.tsx b/src/components/backoffice/admin/AdminCreationButtons/AdminCreationButtons.tsx index 8e8c95c9a..a1b72a25c 100644 --- a/src/components/backoffice/admin/AdminCreationButtons/AdminCreationButtons.tsx +++ b/src/components/backoffice/admin/AdminCreationButtons/AdminCreationButtons.tsx @@ -1,5 +1,6 @@ import _ from 'lodash'; import React, { useCallback, useEffect, useMemo } from 'react'; +import PlusIcon from 'assets/icons/plus.svg'; import { useOnOrganizationFormSubmit } from '../useOnOrganizationFormSubmit'; import { Api } from 'src/api'; import { OrganizationDto, UserDto } from 'src/api/types'; @@ -9,7 +10,7 @@ import { formAddUser } from 'src/components/forms/schemas/formAddUser'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; import { ButtonMultiple } from 'src/components/utils'; -import { Icon } from 'src/components/utils/Icon'; + import { Actions } from 'src/constants/utils'; import { useIsDesktop } from 'src/hooks/utils'; @@ -101,8 +102,8 @@ export function AdminCreationButtons({ }, ]} > - - Créer + +   Créer ); } diff --git a/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.styles.ts b/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.styles.ts index 4f812f432..f097377c9 100644 --- a/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.styles.ts +++ b/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.styles.ts @@ -24,9 +24,7 @@ export const StyledRoleContainer = styled.div` justify-content: center; margin-top: 18px; `; -export const StyledRole = styled.div` - margin-left: 4px; -`; +export const StyledRole = styled.div``; export const StyledInfoContainer = styled.div` display: flex; diff --git a/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.tsx b/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.tsx index 2e6e63187..b10f4920c 100644 --- a/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.tsx +++ b/src/components/backoffice/admin/members/MemberDetails/MemberDetailsHeader/MemberDetailsHeader.tsx @@ -1,8 +1,10 @@ import _ from 'lodash'; import React, { useContext } from 'react'; +import LinkIcon from 'assets/icons/link.svg'; +import UserIcon from 'assets/icons/user.svg'; import { UserWithUserCandidate } from 'src/api/types'; -import { ImgProfile } from 'src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile'; -import { SimpleLink, Icon } from 'src/components/utils'; +import { SimpleLink } from 'src/components/utils'; +import { ImgProfile } from 'src/components/utils/ImgProfile'; import { CANDIDATE_USER_ROLES, USER_ROLES } from 'src/constants/users'; import { UserContext } from 'src/store/UserProvider'; import { getRelatedUser, isRoleIncluded } from 'src/utils/Finding'; @@ -48,7 +50,7 @@ export function MemberDetailsHeader({ user }: MemberDetailsHeaderProps) { {user.zone ? _.capitalize(user.zone) : 'Non renseignée'} - + {`${_.capitalize(user.role)}`} {` de ${relatedUserText}`} @@ -56,9 +58,9 @@ export function MemberDetailsHeader({ user }: MemberDetailsHeaderProps) { {isRoleIncluded(CANDIDATE_USER_ROLES, user.role) && ( - + diff --git a/src/components/backoffice/admin/members/MemberDetails/MemberTab/ParametersMemberTab.tsx b/src/components/backoffice/admin/members/MemberDetails/MemberTab/ParametersMemberTab.tsx index cea6c3bc1..1ecd245b0 100644 --- a/src/components/backoffice/admin/members/MemberDetails/MemberTab/ParametersMemberTab.tsx +++ b/src/components/backoffice/admin/members/MemberDetails/MemberTab/ParametersMemberTab.tsx @@ -1,6 +1,8 @@ import { useRouter } from 'next/router'; import React, { useCallback, useMemo } from 'react'; import UIkit from 'uikit'; +import PencilIcon from 'assets/icons/pencil.svg'; +import TrashIcon from 'assets/icons/trash.svg'; import { Api } from 'src/api'; import { UserWithUserCandidate } from 'src/api/types'; import { EditMemberModal } from 'src/components/backoffice/admin/members/MemberDetails/EditMemberModal'; @@ -11,7 +13,7 @@ import { MemberColumn } from 'src/components/backoffice/admin/members/MemberTabl import { formDeleteUser } from 'src/components/forms/schemas/formDeleteUser'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { Button, Icon } from 'src/components/utils'; +import { Button } from 'src/components/utils'; import { Heading } from 'src/components/utils/Inputs/Heading'; import { EXTERNAL_USER_ROLES, @@ -133,7 +135,7 @@ export function ParametersMemberTab({ ); }} > - +  Supprimer l'utilisateur diff --git a/src/components/backoffice/admin/members/MemberDetails/RecommendedOffersButton.tsx b/src/components/backoffice/admin/members/MemberDetails/RecommendedOffersButton.tsx index a7f46f352..099a170c0 100644 --- a/src/components/backoffice/admin/members/MemberDetails/RecommendedOffersButton.tsx +++ b/src/components/backoffice/admin/members/MemberDetails/RecommendedOffersButton.tsx @@ -1,6 +1,7 @@ import _ from 'lodash'; import React from 'react'; -import { Button, Icon } from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { Button } from 'src/components/utils'; import { OFFER_ADMIN_FILTERS_DATA } from 'src/constants'; import { GA_TAGS } from 'src/constants/tags'; import { useFetchCV } from 'src/hooks/useFetchCV'; @@ -41,8 +42,8 @@ export function RecommendedOffersButton({ gaEvent(GA_TAGS.BACKOFFICE_ADMIN_OFFRES_INTERESSER_CLIC); }} > - Voir les offres qui pourraient intéresser le candidat - + Voir les offres qui pourraient intéresser le candidat  + ); } diff --git a/src/components/backoffice/admin/members/MemberTable/Member/Member.desktop.tsx b/src/components/backoffice/admin/members/MemberTable/Member/Member.desktop.tsx index 8cd9ba6aa..ec9825197 100644 --- a/src/components/backoffice/admin/members/MemberTable/Member/Member.desktop.tsx +++ b/src/components/backoffice/admin/members/MemberTable/Member/Member.desktop.tsx @@ -2,10 +2,13 @@ import moment from 'moment'; import React from 'react'; import { Tooltip } from 'react-tooltip'; +import EyeHiddenIcon from 'assets/icons/eye-hidden.svg'; +import EyeVisibleIcon from 'assets/icons/eye-visible.svg'; +import LinkIcon from 'assets/icons/link.svg'; import { translateStatusCV } from 'src/components/backoffice/admin/members/MemberList/MemberList.utils'; import { renderCVStatus } from 'src/components/backoffice/admin/members/MemberTable/Member/Member.utils'; -import { ImgProfile } from 'src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile'; -import { SimpleLink, Icon } from 'src/components/utils'; +import { SimpleLink } from 'src/components/utils'; +import { ImgProfile } from 'src/components/utils/ImgProfile'; import { CheckBox, useCheckBox } from 'src/components/utils/Inputs/CheckBox'; import { TrDesktop, TdDesktop } from 'src/components/utils/Table'; import { ADMIN_ZONES } from 'src/constants/departements'; @@ -152,7 +155,7 @@ export function MemberDesktop({ isExternal target="_blank" > - + @@ -198,13 +201,9 @@ export function MemberDesktop({ ) : ( <> {userCandidate?.hidden ? ( - + ) : ( - + )} )} diff --git a/src/components/backoffice/admin/members/MemberTable/Member/Member.mobile.tsx b/src/components/backoffice/admin/members/MemberTable/Member/Member.mobile.tsx index f87468ee5..83ac582b5 100644 --- a/src/components/backoffice/admin/members/MemberTable/Member/Member.mobile.tsx +++ b/src/components/backoffice/admin/members/MemberTable/Member/Member.mobile.tsx @@ -2,6 +2,9 @@ import moment from 'moment'; import React from 'react'; import { Tooltip } from 'react-tooltip'; +import EyeHiddenIcon from 'assets/icons/eye-hidden.svg'; +import EyeVisibleIcon from 'assets/icons/eye-visible.svg'; +import LinkIcon from 'assets/icons/link.svg'; import { translateStatusCV } from 'src/components/backoffice/admin/members/MemberList/MemberList.utils'; import { StyledCVStatusCellContent, @@ -10,8 +13,8 @@ import { StyledNameCellMobile, } from 'src/components/backoffice/admin/members/MemberTable/Member/Member.styles'; import { renderCVStatus } from 'src/components/backoffice/admin/members/MemberTable/Member/Member.utils'; -import { ImgProfile } from 'src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile'; -import { SimpleLink, Icon } from 'src/components/utils'; +import { SimpleLink } from 'src/components/utils'; +import { ImgProfile } from 'src/components/utils/ImgProfile'; import { CheckBox, useCheckBox } from 'src/components/utils/Inputs/CheckBox'; import { TdMobile } from 'src/components/utils/Table'; import { ADMIN_ZONES } from 'src/constants/departements'; @@ -171,7 +174,7 @@ export function MemberMobile({ isExternal target="_blank" > - + @@ -212,13 +215,9 @@ export function MemberMobile({ ) : ( {userCandidate?.hidden ? ( - + ) : ( - + )} )} diff --git a/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.desktop.tsx b/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.desktop.tsx index d0007feff..8fc8fd959 100644 --- a/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.desktop.tsx +++ b/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.desktop.tsx @@ -1,7 +1,8 @@ import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; import { openModal } from 'src/components/modals/Modal'; -import { Button, Icon } from 'src/components/utils'; +import { ButtonIcon } from 'src/components/utils'; import { TrDesktop, TdDesktop } from 'src/components/utils/Table'; import { EditOrganizationModal } from './EditOrganizationModal'; import { OrganizationProps } from './Organization.types'; @@ -45,9 +46,9 @@ export function OrganizationDesktop({ - + /> diff --git a/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.mobile.tsx b/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.mobile.tsx index f3c31895c..e4bcb0002 100644 --- a/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.mobile.tsx +++ b/src/components/backoffice/admin/organizations/OrganizationTable/Organization/Organization.mobile.tsx @@ -1,7 +1,8 @@ import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; import { openModal } from 'src/components/modals/Modal'; -import { Button, Icon } from 'src/components/utils'; +import { ButtonIcon } from 'src/components/utils'; import { TdMobile, TrMobile } from 'src/components/utils/Table'; import { EditOrganizationModal } from './EditOrganizationModal'; import { OrganizationProps } from './Organization.types'; @@ -19,8 +20,8 @@ export function OrganizationMobile({ name={organization.name} address={organization.address} /> - + />
diff --git a/src/components/backoffice/candidate/CandidatHeader.tsx b/src/components/backoffice/candidate/CandidatHeader.tsx index 3fd61ad8a..74c889fc5 100644 --- a/src/components/backoffice/candidate/CandidatHeader.tsx +++ b/src/components/backoffice/candidate/CandidatHeader.tsx @@ -1,9 +1,11 @@ import _ from 'lodash'; import React, { useEffect, useState } from 'react'; +import LinkIcon from 'assets/icons/link.svg'; +import UserIcon from 'assets/icons/user.svg'; import { UserWithUserCandidate } from 'src/api/types'; import { useCandidateId } from 'src/components/backoffice/opportunities/useCandidateId'; -import { ImgProfile } from 'src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile'; -import { Grid, SimpleLink, Icon } from 'src/components/utils'; +import { Grid, SimpleLink } from 'src/components/utils'; +import { ImgProfile } from 'src/components/utils/ImgProfile'; import { USER_ROLES, COACH_USER_ROLES } from 'src/constants/users'; import { isRoleIncluded } from 'src/utils/Finding'; @@ -58,15 +60,17 @@ export const CandidatHeader = ({ {relatedUser && ( <> - + +   {relatedUser.firstName} {relatedUser.lastName} - + +   diff --git a/src/components/backoffice/candidate/CandidateOpportunities/CandidateOpportunities.tsx b/src/components/backoffice/candidate/CandidateOpportunities/CandidateOpportunities.tsx index d793de9b8..c3c56cca8 100644 --- a/src/components/backoffice/candidate/CandidateOpportunities/CandidateOpportunities.tsx +++ b/src/components/backoffice/candidate/CandidateOpportunities/CandidateOpportunities.tsx @@ -2,6 +2,7 @@ import _ from 'lodash'; import { useRouter } from 'next/router'; import React, { useContext, useState } from 'react'; import useDeepCompareEffect from 'use-deep-compare-effect'; +import PlusIcon from 'assets/icons/plus.svg'; import { CandidateOffersTab } from 'src/components/backoffice/candidate/CandidateOpportunities/CandidateOffersTab'; import { candidateSearchFilters, @@ -20,7 +21,7 @@ import { HeaderBackoffice } from 'src/components/headers/HeaderBackoffice'; import { openModal } from 'src/components/modals/Modal'; import { ModalExternalOffer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/ModalOffer'; import { Button, Section } from 'src/components/utils'; -import { Icon } from 'src/components/utils/Icon'; + import { OPPORTUNITY_FILTERS_DATA } from 'src/constants'; import { HEIGHTS } from 'src/constants/styles'; import { CANDIDATE_USER_ROLES, USER_ROLES } from 'src/constants/users'; @@ -207,8 +208,8 @@ export const CandidateOpportunities = ({ ); }} > - - Ajouter une offre + +   Ajouter une offre {isPublic ? ( diff --git a/src/components/backoffice/cv/CVEditPage/ButtonDownload/ButtonDownload.tsx b/src/components/backoffice/cv/CVEditPage/ButtonDownload/ButtonDownload.tsx index bd5f2fadb..dd57c9cd0 100644 --- a/src/components/backoffice/cv/CVEditPage/ButtonDownload/ButtonDownload.tsx +++ b/src/components/backoffice/cv/CVEditPage/ButtonDownload/ButtonDownload.tsx @@ -1,9 +1,10 @@ import React from 'react'; +import DownloadIcon from 'assets/icons/download.svg'; import { Api } from 'src/api'; import { ButtonPost } from 'src/components/utils/Button/ButtonPost'; import { gaEvent } from 'src/lib/gtag'; -interface ButtondowloadProps { +interface ButtonDownloadProps { disabled?: boolean; candidateId: string; firstName: string; @@ -19,7 +20,7 @@ export const ButtonDownload = ({ lastName, tag, pdfGenerating, -}: ButtondowloadProps) => { +}: ButtonDownloadProps) => { return ( } action={async () => { if (tag) gaEvent(tag); try { diff --git a/src/components/backoffice/cv/CVEditPage/CVEditPage.tsx b/src/components/backoffice/cv/CVEditPage/CVEditPage.tsx index 14bae3883..a14019d90 100644 --- a/src/components/backoffice/cv/CVEditPage/CVEditPage.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVEditPage.tsx @@ -2,6 +2,7 @@ import Router from 'next/router'; import Pusher from 'pusher-js'; import React, { useCallback, useContext, useEffect, useState } from 'react'; import UIkit from 'uikit'; +import QuestionIcon from 'assets/icons/question.svg'; import { Api } from 'src/api'; import { CV, User } from 'src/api/types'; import { openModal } from 'src/components/modals/Modal'; @@ -78,7 +79,7 @@ export const CVEditPage = ({ candidateId, cv, setCV }: CVEditPageProps) => { useEffect(() => { if (cv && cv !== prevCV) { if (!cvVersion) setCvVersion(cv.version); - setImageUrl(`${process.env.AWSS3_URL}${cv.urlImg}`); + setImageUrl(`${process.env.AWSS3_URL}/${cv.urlImg}`); setCVHasBeenRead(); } }, [candidateId, cv, cvVersion, prevCV, setCVHasBeenRead]); @@ -384,7 +385,7 @@ export const CVEditPage = ({ candidateId, cv, setCV }: CVEditPageProps) => { )} {user.role !== USER_ROLES.ADMIN && ( } href={process.env.TUTORIAL_CV} newTab onClick={() => { diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCareerPath.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCareerPath.tsx index f18ef4b60..26389bc65 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCareerPath.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCareerPath.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { DefaultValues } from 'react-hook-form'; +import PencilIcon from 'assets/icons/pencil.svg'; import { CVCareerPathSentence } from 'src/components/cv/CVCareerPathSentence'; import { ExtractFormSchemaValidation } from 'src/components/forms/FormSchema'; import { formEditCareerPath } from 'src/components/forms/schemas/formEditCareerPath'; @@ -69,65 +70,63 @@ export const CVEditCareerPath = ({

Mon projet professionnel

- {onChange && ( - { - openModal( - { - closeModal(); - let newAmbitions = []; - if (ambition0) { - newAmbitions = [ - ...newAmbitions, - { - prefix: AMBITIONS_PREFIXES[1].label, - name: ambition0, - order: 0, - }, - ]; - } - if (ambition1) { - newAmbitions = [ - ...newAmbitions, + } + onClick={() => { + openModal( + { + closeModal(); + let newAmbitions = []; + if (ambition0) { + newAmbitions = [ + ...newAmbitions, + { + prefix: AMBITIONS_PREFIXES[1].label, + name: ambition0, + order: 0, + }, + ]; + } + if (ambition1) { + newAmbitions = [ + ...newAmbitions, - { - prefix: AMBITIONS_PREFIXES[1].label, - name: ambition1, - order: 1, - }, - ]; - } - const newBusinessLines = [ - { name: businessLine0.value, order: 0 }, + { + prefix: AMBITIONS_PREFIXES[1].label, + name: ambition1, + order: 1, + }, ]; + } + const newBusinessLines = [ + { name: businessLine0.value, order: 0 }, + ]; - onChange({ - businessLines: businessLine1 - ? [ - ...newBusinessLines, - { - name: businessLine1.value, - order: 1, - }, - ] - : newBusinessLines, - ambitions: newAmbitions, - }); - }} - /> - ); - }} - /> - )} + onChange({ + businessLines: businessLine1 + ? [ + ...newBusinessLines, + { + name: businessLine1.value, + order: 1, + }, + ] + : newBusinessLines, + ambitions: newAmbitions, + }); + }} + /> + ); + }} + />
{!sortedAmbitions && !sortedBusinessLines ? (

diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCatchphrase.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCatchphrase.tsx index ca32ef741..957bda62e 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCatchphrase.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditCatchphrase.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; import { formEditCatchphrase } from 'src/components/forms/schemas/formEditCatchphrase'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; @@ -17,27 +18,25 @@ export const CVEditCatchphrase = ({

Ma phrase d'accroche

- {onChange && ( - { - openModal( - { - closeModal(); - await onChange({ - ...fields, - }); - }} - /> - ); - }} - /> - )} + } + dataTestId="test-catchphrase-edit-icon" + onClick={() => { + openModal( + { + closeModal(); + await onChange({ + ...fields, + }); + }} + /> + ); + }} + /> {catchphrase ? (

{catchphrase}

diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx index 84bf0c0b6..47c36ed76 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx @@ -1,7 +1,8 @@ import React, { useEffect, useState } from 'react'; import Resizer from 'react-image-file-resizer'; import UIkit from 'uikit'; -import { Icon } from 'src/components/utils'; +import PencilIcon from 'assets/icons/pencil.svg'; +import {} from 'src/components/utils'; import { useIsDesktop } from 'src/hooks/utils'; import { addPrefix } from 'src/utils'; import { @@ -93,7 +94,7 @@ export const CVEditPicture = ({ } }} /> - +
)} diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditReviews.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditReviews.tsx index fa342d754..fe67e53be 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditReviews.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditReviews.tsx @@ -1,9 +1,13 @@ import React from 'react'; +import PlusIcon from 'assets/icons/plus.svg'; +import QuoteLeftIcon from 'assets/icons/quote-left.svg'; +import QuoteRightIcon from 'assets/icons/quote-right.svg'; +import { EditItemsButtons } from 'src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons'; import { formEditTestimonial } from 'src/components/forms/schemas/formEditTestimonial'; import { openModal } from 'src/components/modals/Modal'; import { ModalConfirm } from 'src/components/modals/Modal/ModalGeneric/ModalConfirm'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { Grid, ButtonIcon, Icon } from 'src/components/utils'; +import { Grid, ButtonIcon } from 'src/components/utils'; import { formatParagraph, sortByName } from 'src/utils'; interface Review { @@ -16,6 +20,7 @@ interface CVEditReviewsProps { reviews: Review[]; onChange: (updatedCV: { reviews: Review[] }) => void; } + export const CVEditReviews = ({ reviews, onChange }: CVEditReviewsProps) => { const MAX_REVIEWS = 3; @@ -43,7 +48,7 @@ export const CVEditReviews = ({ reviews, onChange }: CVEditReviewsProps) => { /> ); }} - name="plus" + icon={} /> )} @@ -53,10 +58,11 @@ export const CVEditReviews = ({ reviews, onChange }: CVEditReviewsProps) => { return (
  • - + <>

    {formatParagraph(review.text)} @@ -66,42 +72,37 @@ export const CVEditReviews = ({ reviews, onChange }: CVEditReviewsProps) => {

    {review.status}

    - -
    - { - openModal( - { - closeModal(); - sortedReviews[i] = fields; - onChange({ reviews: sortedReviews }); - }} - /> - ); - }} - /> - { - openModal( - { - sortedReviews.splice(i, 1); - onChange({ reviews: sortedReviews }); - }} - /> - ); - }} - /> -
    -
    +
    + +
    + { + openModal( + { + closeModal(); + sortedReviews[i] = fields; + onChange({ reviews: sortedReviews }); + }} + /> + ); + }} + onDeleteClick={() => { + openModal( + { + sortedReviews.splice(i, 1); + onChange({ reviews: sortedReviews }); + }} + /> + ); + }} + />
  • ); diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVFicheEdition.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVFicheEdition.tsx index 00b215b13..14a5f110a 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVFicheEdition.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVFicheEdition.tsx @@ -89,13 +89,9 @@ export const CVFicheEdition = ({
    -
    +
    {previewUrl ? ( - Preview + Preview ) : (
    )} diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.styles.ts b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.styles.ts new file mode 100644 index 000000000..356d77b02 --- /dev/null +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.styles.ts @@ -0,0 +1,10 @@ +import styled from 'styled-components'; + +export const StyledEditItemsButtons = styled.div` + display: flex; + flex-direction: column; + + svg:first-of-type { + margin-bottom: 8px; + } +`; diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.tsx new file mode 100644 index 000000000..e93801e44 --- /dev/null +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/EditItemsButtons.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; +import TrashIcon from 'assets/icons/trash.svg'; +import { ButtonIcon } from 'src/components/utils'; +import { StyledEditItemsButtons } from './EditItemsButtons.styles'; + +interface EditItemsButtonsProps { + onEditClick: () => void; + onDeleteClick: () => void; +} +export function EditItemsButtons({ + onEditClick, + onDeleteClick, +}: EditItemsButtonsProps) { + return ( + + } onClick={onEditClick} /> + } onClick={onDeleteClick} /> + + ); +} diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/index.ts b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/index.ts new file mode 100644 index 000000000..65e0821cd --- /dev/null +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons/index.ts @@ -0,0 +1 @@ +export * from './EditItemsButtons'; diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimeLineList/TimeLineItem/TimeLineItem.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimeLineList/TimeLineItem/TimeLineItem.tsx index 2689aa2cd..9a1130389 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimeLineList/TimeLineItem/TimeLineItem.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimeLineList/TimeLineItem/TimeLineItem.tsx @@ -1,12 +1,13 @@ import moment from 'moment'; import React from 'react'; import { CVExperience, CVFormation } from 'src/api/types'; +import { EditItemsButtons } from 'src/components/backoffice/cv/CVEditPage/CVFicheEdition/EditItemsButtons'; import { formEditExperience } from 'src/components/forms/schemas/formEditExperience'; import { formEditFormation } from 'src/components/forms/schemas/formEditFormation'; import { openModal } from 'src/components/modals/Modal'; import { ModalConfirm } from 'src/components/modals/Modal/ModalGeneric/ModalConfirm'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { Grid, ButtonIcon } from 'src/components/utils'; +import { Grid } from 'src/components/utils'; import { H6 } from 'src/components/utils/Headings'; import { formatParagraph } from 'src/utils'; @@ -86,84 +87,76 @@ export const TimeLineItem = ({

    )} - {onChange && ( -
    - { - openModal( - { - return { value: name, label: name }; - }), - }} - onSubmit={async (fields, closeModal) => { - closeModal(); - // Update the items array - const updatedItems = [...items]; - updatedItems[sortIndex] = { - ...updatedItems[sortIndex], - ...{ - ...fields, - dateStart: moment(fields.dateStart).toDate() as Date, - dateEnd: moment(fields.dateEnd).toDate() as Date, - skills: - Array.isArray(fields.skills) && - fields.skills?.map((skill, i) => { - return { name: skill.value, order: i }; - }), - }, - }; + { + openModal( + { + const itemsToSort = [...items]; + itemsToSort.splice(sortIndex, 1); + // Prepare the update object + const update: CVDataUpdate = + type === 'formations' + ? { + formations: itemsToSort, + } + : { + experiences: itemsToSort, + }; + await onChange(update); + }} + /> + ); + }} + onEditClick={() => { + openModal( + { + return { value: name, label: name }; + }), + }} + onSubmit={async (fields, closeModal) => { + closeModal(); + // Update the items array + const updatedItems = [...items]; + updatedItems[sortIndex] = { + ...updatedItems[sortIndex], + ...{ + ...fields, + dateStart: moment(fields.dateStart).toDate() as Date, + dateEnd: moment(fields.dateEnd).toDate() as Date, + skills: + Array.isArray(fields.skills) && + fields.skills?.map((skill, i) => { + return { name: skill.value, order: i }; + }), + }, + }; - // Prepare the update object - const update: CVDataUpdate = - type === 'formations' - ? { - formations: updatedItems, - } - : { - experiences: updatedItems, - }; + // Prepare the update object + const update: CVDataUpdate = + type === 'formations' + ? { + formations: updatedItems, + } + : { + experiences: updatedItems, + }; - await onChange(update); - }} - /> - ); - }} - /> - { - openModal( - { - const itemsToSort = [...items]; - itemsToSort.splice(sortIndex, 1); - // Prepare the update object - const update: CVDataUpdate = - type === 'formations' - ? { - formations: itemsToSort, - } - : { - experiences: itemsToSort, - }; - await onChange(update); - }} - /> - ); - }} - /> -
    - )} + await onChange(update); + }} + /> + ); + }} + /> ); diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimelineCard.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimelineCard.tsx index 5bb299749..93e0216db 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimelineCard.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/TimelineCard/TimelineCard.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import PlusIcon from 'assets/icons/plus.svg'; import { CVExperience, CVFormation } from 'src/api/types'; import { formEditExperience } from 'src/components/forms/schemas/formEditExperience'; import { formEditFormation } from 'src/components/forms/schemas/formEditFormation'; @@ -43,7 +44,7 @@ export const TimelineCard = ({ {onAdd && remainingItems > 0 && ( } dataTestId={`button-cv-add-${type}`} /> )} diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/InfoProfileCard.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/InfoProfileCard.tsx index dcc642aca..47ba05081 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/InfoProfileCard.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/InfoProfileCard.tsx @@ -1,10 +1,19 @@ import React from 'react'; +import CalendarIcon from 'assets/icons/calendar.svg'; +import CarIcon from 'assets/icons/car.svg'; +import DocumentIcon from 'assets/icons/document.svg'; +import EmailIcon from 'assets/icons/email.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import PencilIcon from 'assets/icons/pencil.svg'; +import PhoneIcon from 'assets/icons/phone.svg'; +import UserIcon from 'assets/icons/user.svg'; import { CV } from 'src/api/types'; import { formEditUsefulInformation } from 'src/components/forms/schemas/formEditUsefulInformation'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { Grid, ButtonIcon, Icon } from 'src/components/utils'; +import { Grid, ButtonIcon } from 'src/components/utils'; import { Contract, CONTRACTS } from 'src/constants'; import { AdminZone, @@ -57,101 +66,87 @@ export const InfoProfileCard = ({ return (
    -

    - {!onChange && ( - - - - )} - Infos pratiques -

    - {onChange && ( - { - openModal( - { - return findConstantFromValue(name, CONTRACTS); - }), - languages: languages.map(({ name }) => { - return { label: name, value: name }; - }), - locations: sortByOrder(locations).map(({ name }) => { - return findConstantFromValue(name, DEPARTMENTS_FILTERS); - }), - }} - onSubmit={async ( - { userZone: zone, ...fields }, - closeModal - ) => { - closeModal(); - const { +

    Infos pratiques

    + } + onClick={() => { + openModal( + { + return findConstantFromValue(name, CONTRACTS); + }), + languages: languages.map(({ name }) => { + return { label: name, value: name }; + }), + locations: sortByOrder(locations).map(({ name }) => { + return findConstantFromValue(name, DEPARTMENTS_FILTERS); + }), + }} + onSubmit={async ({ userZone: zone, ...fields }, closeModal) => { + closeModal(); + const { + email: updatedEmail, + phone: updatedPhone, + address: updatedAddress, + ...updatedCV + } = fields; + + onChange( + { + ...updatedCV, + contracts: updatedCV.contracts.map(({ value }) => { + return { + name: value, + }; + }), + languages: updatedCV.languages.map(({ value }) => { + return { + name: value, + }; + }), + locations: updatedCV.locations.map(({ value }, index) => { + return { + name: value, + order: index, + }; + }), + }, + { email: updatedEmail, phone: updatedPhone, address: updatedAddress, - ...updatedCV - } = fields; - - onChange( - { - ...updatedCV, - contracts: updatedCV.contracts.map(({ value }) => { - return { - name: value, - }; - }), - languages: updatedCV.languages.map(({ value }) => { - return { - name: value, - }; - }), - locations: updatedCV.locations.map( - ({ value }, index) => { - return { - name: value, - order: index, - }; - } - ), - }, - { - email: updatedEmail, - phone: updatedPhone, - address: updatedAddress, - } - ); - }} - /> - ); - }} - /> - )} + } + ); + }} + /> + ); + }} + />
    - + {email || 'Adresse mail non renseigné'} - + {phone || 'Numéro de téléphone non renseigné'} - + {address || 'Adresse postale non renseignée'} - + {contracts && contracts.length > 0 ? contracts .map(({ name }) => { @@ -161,7 +156,7 @@ export const InfoProfileCard = ({ : 'Type de contrat recherché non renseigné'} - + {sortedLocations && sortedLocations.length > 0 ? sortedLocations .map(({ name }) => { @@ -171,13 +166,13 @@ export const InfoProfileCard = ({ : 'Localisations non renseignées'} - + {availability && availability !== '' ? availability : 'Disponibilités non renseignée'} - + {languages && languages.length > 0 ? languages .map(({ name }) => { @@ -187,7 +182,7 @@ export const InfoProfileCard = ({ : 'Langues apprises non renseignées'} - + {transport && transport !== '' ? transport : 'Moyen de transport non renseigné'} diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/PassionsCard.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/PassionsCard.tsx index 576ab1daf..e7decc8f6 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/PassionsCard.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/PassionsCard.tsx @@ -1,8 +1,9 @@ import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; import { formEditPassions } from 'src/components/forms/schemas/formEditPassions'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { Grid, ButtonIcon, Icon } from 'src/components/utils'; +import { Grid, ButtonIcon } from 'src/components/utils'; interface Passion { name: string; @@ -18,16 +19,11 @@ export const PassionsCard = ({ list, onChange }: PassionProps) => {

    - {!onChange && ( - - - - )} Mes passions

    {onChange && ( } onClick={() => { openModal( {

    - {!onChange && ( - - - - )} Mes atouts

    - {onChange && ( - { - openModal( - ({ - label: name, - value: name, - })), - }} - onSubmit={async ({ skills }, closeModal) => { - closeModal(); - const fieldsTransform = { - skills: skills.map(({ value }, index) => { - return { - name: value, - order: index, - }; - }), - }; - await onChange(fieldsTransform); - }} - /> - ); - }} - /> - )} + } + dataTestId="test-skills-edit-icon" + onClick={() => { + openModal( + ({ + label: name, + value: name, + })), + }} + onSubmit={async ({ skills }, closeModal) => { + closeModal(); + const fieldsTransform = { + skills: skills.map(({ value }, index) => { + return { + name: value, + order: index, + }; + }), + }; + await onChange(fieldsTransform); + }} + /> + ); + }} + />
      {list.length !== 0 ? ( diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/StoryProfileCard.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/StoryProfileCard.tsx index 7b65ac507..8886d846c 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/StoryProfileCard.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/cards/StoryProfileCard.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import PencilIcon from 'assets/icons/pencil.svg'; import { formEditStory } from 'src/components/forms/schemas/formEditStory'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; @@ -18,25 +19,23 @@ export const StoryProfileCard = ({

      Ma présentation

      - {onChange && ( - { - openModal( - { - closeModal(); - onChange(fields); - }} - /> - ); - }} - /> - )} + } + dataTestId="test-story-edit-icon" + onClick={() => { + openModal( + { + closeModal(); + onChange(fields); + }} + /> + ); + }} + /> {description ? ( diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.styles.ts b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.styles.ts index ee0bd101d..ab16240d0 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.styles.ts +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.styles.ts @@ -25,17 +25,6 @@ export const StyledContainer = styled.div` color: ${({ color }) => { return COLORS[color] || COLORS.primaryOrange; }} !important; - path { - fill: ${({ fill, color }) => { - return fill ? COLORS[color] || COLORS.primaryOrange : 'transparent'; - }} !important; - } - - polygon { - fill: ${({ fill, color }) => { - return fill ? COLORS[color] || COLORS.primaryOrange : 'transparent'; - }} !important; - } .action-label { ${({ disabled, hoverAnimation }) => { diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.tsx index 393f2955e..411ed81ff 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel.tsx @@ -17,7 +17,6 @@ interface ActionLabelProps { label: string; disabled?: boolean; hoverAnimation?: boolean; - fill?: boolean; onClick?: () => void; id?: string; } @@ -30,11 +29,9 @@ export const ActionLabel = ({ id = '', disabled = false, hoverAnimation = false, - fill = false, }: ActionLabelProps) => { return ( } + icon={} /> )} {isPublic && isRecommended && ( } + icon={} /> )} {isPublic && isBookmarked && ( } + icon={} /> )} {isExternal && ( } + icon={} /> )} {isPublic && !isRecommended && !isBookmarked && ( @@ -63,7 +61,7 @@ export const ActionLabelContainer = ({ label="Ajouter aux favoris" onClick={bookmarkOpportunity} id="cta-bookmark" - icon={} + icon={} /> )} diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx index dda3ca83c..71d50ae7c 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx @@ -1,4 +1,6 @@ import React from 'react'; +import PlusIcon from 'assets/icons/plus.svg'; +import SearchIcon from 'assets/icons/search.svg'; import { formatPlural, tabs, @@ -8,7 +10,7 @@ import { useCandidateId } from 'src/components/backoffice/opportunities/useCandi import { openModal } from 'src/components/modals/Modal'; import { ModalExternalOffer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/ModalOffer/ModalExternalOffer'; import { Button } from 'src/components/utils'; -import { Icon } from 'src/components/utils/Icon'; + import { StyledButtonContainer, StyledContainer, @@ -51,8 +53,8 @@ export const NoOpportunities = ({ ); }} > - - Ajouter une offre externe + +   Ajouter une offre externe diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/CandidateOpportunitiesList/CandidateOpportunitiesList.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/CandidateOpportunitiesList/CandidateOpportunitiesList.tsx index 96a8e05ff..c71de0a3a 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/CandidateOpportunitiesList/CandidateOpportunitiesList.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/CandidateOpportunitiesList/CandidateOpportunitiesList.tsx @@ -1,6 +1,7 @@ import Link from 'next/link'; import React from 'react'; import { v4 as uuid } from 'uuid'; +import PlusIcon from 'assets/icons/plus.svg'; import { StyledLinkCard, StyledListContent, @@ -14,7 +15,7 @@ import { useOpportunityType } from 'src/components/backoffice/opportunities/useO import { useQueryParamsOpportunities } from 'src/components/backoffice/opportunities/useQueryParamsOpportunities'; import { openModal } from 'src/components/modals/Modal'; import { ModalExternalOffer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/ModalOffer/ModalExternalOffer'; -import { Button, Icon } from 'src/components/utils'; +import { Button } from 'src/components/utils'; import { CandidateOpportunityItem } from './CandidateOpportunityItem'; const uuidValue = uuid(); @@ -98,7 +99,7 @@ export const CandidateOpportunitiesList = ({ ); }} > - + Ajouter une offre externe )} diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/CandidateOpportunityDetails/CandidateOpportunityDetailsCTAs/CandidateOpportunityDetailsCTAs.utils.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/CandidateOpportunityDetails/CandidateOpportunityDetailsCTAs/CandidateOpportunityDetailsCTAs.utils.tsx index 31bd2923d..5f817cc46 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/CandidateOpportunityDetails/CandidateOpportunityDetailsCTAs/CandidateOpportunityDetailsCTAs.utils.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/CandidateOpportunityDetails/CandidateOpportunityDetailsCTAs/CandidateOpportunityDetailsCTAs.utils.tsx @@ -1,13 +1,16 @@ import React from 'react'; -import CheckIcon from 'assets/custom/icons/check.svg'; -import CalendarIcon from 'assets/custom/icons/linkedout-calendar.svg'; -import MailIcon from 'assets/custom/icons/linkedout-mail.svg'; -import TrashIcon from 'assets/custom/icons/linkedout-trash.svg'; +import styled from 'styled-components'; +import CalendarIcon from 'assets/icons/calendar.svg'; +import CheckIcon from 'assets/icons/check.svg'; +import EmailIcon from 'assets/icons/email.svg'; +import TrashIcon from 'assets/icons/trash.svg'; -const MailIconProps = { width: 17, height: 15, viewBox: '0 -2 15 17' }; -const TrashIconProps = { width: 13, height: 15, viewBox: '0 0 13 15' }; -const CalendarIconProps = { width: 15, height: 15, viewBox: '0 0 15 18' }; -const CheckIconProps = { width: 22, height: 15, viewBox: '0 0 26 18' }; +const StyledButtonContainer = styled.div` + display: flex; + flex-direction: row; + align-self: center; + justify-content: center; +`; export const allCTAs = { apply: { @@ -15,10 +18,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'contactEmail', text: ( - <> - - Je postule - + + +  Je postule + ), }, applied: { @@ -26,10 +29,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'updateToApplied', text: ( - <> - - J'ai déjà postulé - + + +  J'ai déjà postulé + ), }, notInterested: { @@ -37,10 +40,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'archive', text: ( - <> - - Je ne suis pas intéressé - + + +  Je ne suis pas intéressé + ), }, resend: { @@ -48,10 +51,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'contactRelance', text: ( - <> - - Je veux relancer l'entreprise - + + +  Je veux relancer l'entreprise + ), }, gotInterview: { @@ -59,10 +62,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'updateToInterview', text: ( - <> - - J'ai décroché un entretien - + + +  J'ai décroché un entretien + ), }, abandon: { @@ -70,10 +73,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'abandon', text: ( - <> - - J'abandonne cette offre - + + +  J'abandonne cette offre + ), }, dateInterview: { @@ -81,10 +84,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'addDateInterview', text: ( - <> - - Je note une date d'entretien - + + +  Je note une date d'entretien + ), }, gotJob: { @@ -92,10 +95,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'updateToHired', text: ( - <> - - J'ai décroché le job - + + +  J'ai décroché le job + ), }, dateBegin: { @@ -103,10 +106,10 @@ export const allCTAs = { className: 'custom-primary-inverted', action: 'addDateHired', text: ( - <> - - Je note ma date d'embauche - + + +  Je note ma date d'embauche + ), }, trialValidated: { diff --git a/src/components/cards/CandidatCard.js b/src/components/cards/CandidatCard.js index 456c364c4..bf4b56ad4 100644 --- a/src/components/cards/CandidatCard.js +++ b/src/components/cards/CandidatCard.js @@ -10,9 +10,14 @@ import { TwitterShareButton, } from 'react-share'; +import FacebookIcon from 'assets/icons/facebook.svg'; +import LinkedInIcon from 'assets/icons/linked-in.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import TwitterIcon from 'assets/icons/twitter.svg'; + import { openModal } from 'src/components/modals/Modal'; import { ModalShareCV } from 'src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV'; -import { Grid, Img, SimpleLink, Icon } from 'src/components/utils'; +import { Grid, Img, SimpleLink } from 'src/components/utils'; import { AMBITIONS_PREFIXES, BUSINESS_LINES } from 'src/constants'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { useUpdateSharesCount } from 'src/hooks'; @@ -241,12 +246,12 @@ export const CandidatCard = ({ return (
      - +   - @@ -326,10 +331,10 @@ export const CandidatCard = ({ style={{ cursor: 'pointer' }} className="uk-icon-button light-icon-button" > - @@ -355,10 +360,10 @@ export const CandidatCard = ({ style={{ cursor: 'pointer' }} className="uk-icon-button light-icon-button" > - @@ -419,7 +424,7 @@ CandidatCard.propTypes = { }; CandidatCard.defaultProps = { - imgSrc: 'static/img/arthur.jpg', + imgSrc: '/static/img/arthur.jpg', employed: false, endOfContract: undefined, catchphrase: "cherche un job pour s'en sortir", diff --git a/src/components/cards/OfferCard.js b/src/components/cards/OfferCard.js index 2bbcf5275..d401df34b 100644 --- a/src/components/cards/OfferCard.js +++ b/src/components/cards/OfferCard.js @@ -2,7 +2,16 @@ import moment from 'moment'; import PropTypes from 'prop-types'; import React from 'react'; -import { Grid, Icon } from 'src/components/utils'; +import ArchiveIcon from 'assets/icons/archive.svg'; +import BoltIcon from 'assets/icons/bolt.svg'; +import CalendarIcon from 'assets/icons/calendar.svg'; +import CheckIcon from 'assets/icons/check.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import InfoIcon from 'assets/icons/info.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import StarIcon from 'assets/icons/star.svg'; +import UserIcon from 'assets/icons/user.svg'; +import { Grid } from 'src/components/utils'; import { OFFER_STATUS } from 'src/constants'; import { findOfferStatus } from 'src/utils'; @@ -72,7 +81,7 @@ export const OfferCard = ({ {shouldShowRecommandationBadge ? ( <> R e c o  - + ) : ( '' @@ -89,40 +98,32 @@ export const OfferCard = ({
      {' '} {(specificOpportunityUser?.bookmarked || bookmarked) && ( - + )} {(specificOpportunityUser?.archived || (!isAdmin && archived)) && ( - + )}
      - +

      {shortDescription}

      {department && ( - +

      {department}

      )} {isAdmin && from && ( - +

      {from}

      )} - +
      {isPublic ? (
      @@ -171,7 +172,7 @@ export const OfferCard = ({ {date && ( - +

      {moment(date).format('DD/MM/YYYY')}

      )} @@ -183,7 +184,7 @@ export const OfferCard = ({ (isValidated ? (
      Publiée  - +
      ) : (
      diff --git a/src/components/cards/UserInformationCard.tsx b/src/components/cards/UserInformationCard.tsx index 8b65cb799..c353ab8f3 100644 --- a/src/components/cards/UserInformationCard.tsx +++ b/src/components/cards/UserInformationCard.tsx @@ -1,11 +1,16 @@ import React, { useCallback, useEffect, useState } from 'react'; import UIkit from 'uikit'; +import EmailIcon from 'assets/icons/email.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import LinkIcon from 'assets/icons/link.svg'; +import PhoneIcon from 'assets/icons/phone.svg'; +import UserIcon from 'assets/icons/user.svg'; import { Api } from 'src/api'; import { UserWithUserCandidate } from 'src/api/types'; import { ToggleWithConfirmationModal } from 'src/components/backoffice/ToggleWithConfirmationModal'; import { CandidateEmployedToggle } from 'src/components/backoffice/candidate/CandidateEmployedToggle'; import { ContractLabel } from 'src/components/backoffice/opportunities/OpportunitiesContainer/ContractLabel/ContractLabel'; -import { Card, Grid, SimpleLink, Icon } from 'src/components/utils'; +import { Card, Grid, SimpleLink } from 'src/components/utils'; import { CANDIDATE_USER_ROLES, COACH_USER_ROLES } from 'src/constants/users'; import { getRelatedUser, @@ -92,7 +97,7 @@ export const UserInformationCard = ({ const cardContent = ( - + {`${singleLinkedUser.firstName} ${singleLinkedUser.lastName}`} {!singleLinkedUser.deletedAt && ( @@ -104,7 +109,7 @@ export const UserInformationCard = ({ target="_blank" > - + {singleLinkedUser.email} @@ -117,13 +122,12 @@ export const UserInformationCard = ({ isExternal > - - {singleLinkedUser.phone} + {singleLinkedUser.phone} ) : ( - + {' '} Numéro de téléphone non renseigné @@ -132,12 +136,11 @@ export const UserInformationCard = ({ {isRoleIncluded(COACH_USER_ROLES, user.role) && (singleLinkedUser.address ? ( - - {singleLinkedUser.address} + {singleLinkedUser.address} ) : ( - + {' '} Adresse postale non renseignée @@ -151,7 +154,7 @@ export const UserInformationCard = ({ href={`/cv/${userCandidat.url}`} > - + {userCandidat.url} diff --git a/src/components/cv/CVPDF/CVContactInformationPDF.tsx b/src/components/cv/CVPDF/CVContactInformationPDF.tsx index 4bb5c2318..6748a93a7 100644 --- a/src/components/cv/CVPDF/CVContactInformationPDF.tsx +++ b/src/components/cv/CVPDF/CVContactInformationPDF.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import EmailIcon from 'assets/custom/icons/email.svg'; -import HomeIcon from 'assets/custom/icons/home.svg'; -import LocationIcon from 'assets/custom/icons/location.svg'; -import PhoneIcon from 'assets/custom/icons/phone.svg'; +import EmailIcon from 'assets/icons/email.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import PhoneIcon from 'assets/icons/phone.svg'; import { Department, DEPARTMENTS_FILTERS } from 'src/constants/departements'; import { findConstantFromValue, sortByOrder } from 'src/utils'; import { @@ -36,7 +36,7 @@ export function CVContactInformationPDF({
    • - Numéro de téléphone + Numéro de téléphone

      {phone}

      @@ -46,7 +46,7 @@ export function CVContactInformationPDF({
    • - Email + Email

      {email}

      @@ -57,7 +57,7 @@ export function CVContactInformationPDF({
    • - Adresse + Adresse

      {address}

      @@ -68,7 +68,7 @@ export function CVContactInformationPDF({
    • - Localisation + Localisation

      {locations diff --git a/src/components/cv/CVPDF/CVPDF.tsx b/src/components/cv/CVPDF/CVPDF.tsx index e850e11e2..4b8d764e4 100644 --- a/src/components/cv/CVPDF/CVPDF.tsx +++ b/src/components/cv/CVPDF/CVPDF.tsx @@ -1,11 +1,11 @@ import React, { useEffect, useState } from 'react'; -import CalendarIcon from 'assets/custom/icons/calendar.svg'; -import CarIcon from 'assets/custom/icons/car.svg'; -import DocumentIcon from 'assets/custom/icons/document.svg'; -import LanguageIcon from 'assets/custom/icons/language.svg'; -import QuoteLeftIcon from 'assets/custom/icons/quote-left.svg'; -import QuoteRightIcon from 'assets/custom/icons/quote-right.svg'; +import CalendarIcon from 'assets/icons/calendar.svg'; +import CarIcon from 'assets/icons/car.svg'; +import DocumentIcon from 'assets/icons/document.svg'; +import LanguageIcon from 'assets/icons/language.svg'; +import QuoteLeftIcon from 'assets/icons/quote-left.svg'; +import QuoteRightIcon from 'assets/icons/quote-right.svg'; import { CV, CVExperience, CVFormation } from 'src/api/types'; import { CVCareerPathSentenceNew } from 'src/components/cv/CVCareerPathSentence'; import { @@ -103,9 +103,9 @@ export const CVPDF = ({ cv, page }: CVPDFProps) => { {cv.catchphrase && ( - + {cv.catchphrase} - + )} @@ -158,8 +158,7 @@ export const CVPDF = ({ cv, page }: CVPDFProps) => {

    • - {' '} - Type de contrat + Type de contrat

      {cv.contracts @@ -175,8 +174,7 @@ export const CVPDF = ({ cv, page }: CVPDFProps) => {

    • - {' '} - Disponibilité + Disponibilité

      {cv.availability}

      @@ -186,7 +184,7 @@ export const CVPDF = ({ cv, page }: CVPDFProps) => {
    • - Langues + Langues

      {cv.languages @@ -202,7 +200,7 @@ export const CVPDF = ({ cv, page }: CVPDFProps) => {

    • - Mobilité + Mobilité

      {cv.transport}

      diff --git a/src/components/cv/CVPDF/CVProfilePicturePDF.tsx b/src/components/cv/CVPDF/CVProfilePicturePDF.tsx index 67ce27e3c..0cb32589b 100644 --- a/src/components/cv/CVPDF/CVProfilePicturePDF.tsx +++ b/src/components/cv/CVPDF/CVProfilePicturePDF.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { addPrefix } from 'src/utils'; import { StyledCVPDFProfilePicture } from './CVPDF.styles'; export function CVProfilePicturePDF({ @@ -11,7 +10,7 @@ export function CVProfilePicturePDF({ }) { return (
      diff --git a/src/components/filters/FiltersDropdowns.tsx b/src/components/filters/FiltersDropdowns.tsx index 157877cf7..a44cd6b16 100644 --- a/src/components/filters/FiltersDropdowns.tsx +++ b/src/components/filters/FiltersDropdowns.tsx @@ -1,7 +1,8 @@ import React, { useCallback } from 'react'; import { v4 as uuid } from 'uuid'; -import { Button, Icon } from 'src/components/utils'; +import CaretDownIcon from 'assets/icons/caret-down.svg'; +import { Button } from 'src/components/utils'; import { gaEvent } from 'src/lib/gtag'; import { AnyToFix } from 'src/utils/Types'; @@ -125,13 +126,6 @@ export const FiltersDropdowns = ({ filters[key].length === 0 ? 'uk-text-muted' : '' }`} > - {/* {icon && ( - - )} */} {title} @@ -139,9 +133,10 @@ export const FiltersDropdowns = ({
       
      {filters[key].length}
      +  
      )} - +
      - + {filterMenuOpened ? ( + + ) : ( + + )} {numberOfFilters > 0 && (
      {numberOfFilters} diff --git a/src/components/filters/SearchBar.tsx b/src/components/filters/SearchBar.tsx index ea9dd83de..7a3cafbde 100644 --- a/src/components/filters/SearchBar.tsx +++ b/src/components/filters/SearchBar.tsx @@ -1,10 +1,11 @@ import React, { useCallback, useEffect, useState } from 'react'; +import SearchIcon from 'assets/icons/search.svg'; import { FiltersCheckboxes } from 'src/components/filters/FiltersCheckboxes'; import { FiltersDropdowns } from 'src/components/filters/FiltersDropdowns'; import { FiltersMobile } from 'src/components/filters/FiltersMobile'; import { FiltersOptions } from 'src/components/filters/FiltersOptions'; import { FiltersSideBar } from 'src/components/filters/FiltersSideBar'; -import { Icon } from 'src/components/utils'; +import {} from 'src/components/utils'; import { CV_FILTERS_DATA, MEMBER_FILTERS_DATA, @@ -14,7 +15,6 @@ import { import { HEIGHTS } from 'src/constants/styles'; import { gaEvent } from 'src/lib/gtag'; import { AnyToFix } from 'src/utils/Types'; - // to be typed interface SearchBarProps { @@ -111,7 +111,7 @@ export const SearchBar = ({ className="ent-search-icon uk-background-primary uk-light" onClick={startSearch} > - +
      >({ {index === fields.length - 1 && index !== 0 && ( } onClick={() => { if (fields.length > 1) { remove(index); @@ -142,7 +143,7 @@ export function MultipleFields>({ {action} - +
      diff --git a/src/components/forms/schemas/formAddUser.tsx b/src/components/forms/schemas/formAddUser.tsx index 34c73ec02..100d57a07 100644 --- a/src/components/forms/schemas/formAddUser.tsx +++ b/src/components/forms/schemas/formAddUser.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { isValidPhoneNumber } from 'react-phone-number-input/mobile'; import { isEmail } from 'validator'; -import PlusFilledIcon from 'assets/custom/icons/plus-filled.svg'; +import PlusFilledIcon from 'assets/icons/plus-filled.svg'; import { FormSchema, FormSchemaValidation, GetValueType } from '../FormSchema'; import { Api } from 'src/api'; import { ADMIN_ZONES_FILTERS, AdminZone } from 'src/constants/departements'; diff --git a/src/components/headers/HeaderBackoffice/HeaderBackoffice.styles.ts b/src/components/headers/HeaderBackoffice/HeaderBackoffice.styles.ts index cf1d91134..d0f4a300f 100644 --- a/src/components/headers/HeaderBackoffice/HeaderBackoffice.styles.ts +++ b/src/components/headers/HeaderBackoffice/HeaderBackoffice.styles.ts @@ -10,7 +10,7 @@ export const StyledHeaderBackOffice = styled.div` font-size: 14px; } hr { - opacity: 0.5; + opacity: 0.6; } .notif-container { padding: 12px; diff --git a/src/components/headers/HeaderConnected/HeaderConnected.types.ts b/src/components/headers/HeaderConnected/HeaderConnected.types.ts index 21073b17e..1a988a611 100644 --- a/src/components/headers/HeaderConnected/HeaderConnected.types.ts +++ b/src/components/headers/HeaderConnected/HeaderConnected.types.ts @@ -1,7 +1,7 @@ export interface HeaderConnectedItemProps { href: string; badge?: string; - icon?: string; + icon?: JSX.Element; name?: string; external?: boolean; queryParams?: string; @@ -18,7 +18,7 @@ export interface HeaderConnectedMainItemProps extends HeaderConnectedItemProps { export const HeaderConnectedMainItemDefaultProps = { badge: '', - icon: '', + icon: null, external: false, tag: null, queryParams: '', diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.desktop.tsx b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.desktop.tsx index fb606cd6d..95f994ab4 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.desktop.tsx +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.desktop.tsx @@ -1,6 +1,7 @@ import { useRouter } from 'next/router'; import React, { useContext, useState, useEffect } from 'react'; import { v4 as uuid } from 'uuid'; +import CaretDownIcon from 'assets/icons/caret-down.svg'; import { HeaderConnectedMainItemProps, HeaderConnectedMainItemDefaultProps, @@ -12,8 +13,8 @@ import { Nav, Dropdown, NavbarLogo, - Icon, } from 'src/components/utils'; +import { ImgProfile } from 'src/components/utils/ImgProfile'; import { StyledNav } from 'src/components/utils/Navbar/Nav/Nav.styles'; import { CANDIDATE_USER_ROLES, @@ -25,7 +26,6 @@ import { UserContext } from 'src/store/UserProvider'; import { isRoleIncluded } from 'src/utils/Finding'; import { StyledConnectedItem } from './HeaderConnectedContent.styles'; import { HeaderConnectedContentProps } from './HeaderConnectedContent.types'; -import { ImgProfile } from './ImgProfile'; import { SubMenu } from './SubMenu'; const uuidValue = uuid(); @@ -71,9 +71,10 @@ export const HeaderConnectedContentDesktop = ({ justifyContent: 'center', }} > - + Bonjour {user.firstName} - +   + - + {icon} {name} {badges[badge] > 0 && ( diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx index 3a73edba4..8e73b1579 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx @@ -1,6 +1,7 @@ import { useRouter } from 'next/router'; import React, { useContext } from 'react'; import { v4 as uuid } from 'uuid'; +import HomeIcon from 'assets/icons/home.svg'; import { HeaderConnectedMainItemDefaultProps } from '../HeaderConnected.types'; import { StyledHeaderMobile } from 'src/components/headers/Header.styles'; import { @@ -8,7 +9,6 @@ import { SimpleLink, Hamburger, NavbarLogo, - Icon, } from 'src/components/utils'; import { Offcanvas } from 'src/components/utils/Offcanvas'; import { OFFCANVAS_LOGGED } from 'src/constants/utils'; @@ -50,7 +50,7 @@ export const HeaderConnectedContentMobile = ({ } right={
      -
      } /> @@ -58,8 +58,8 @@ export const HeaderConnectedContentMobile = ({
      • - - Accueil + +   Accueil
      • {!isEmpty && @@ -95,7 +95,7 @@ export const HeaderConnectedContentMobile = ({ }} > - + {icon} {name} @@ -129,7 +129,7 @@ export const HeaderConnectedContentMobile = ({ }} > - + {icon} {name} diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.styles.ts b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.styles.ts index 24dd545f7..e415d803b 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.styles.ts +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.styles.ts @@ -41,7 +41,7 @@ export const StyledConnectedItem = styled.li` } } & > a:hover { - opacity: 0.5; + opacity: 0.6; } `; diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.ts b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.tsx similarity index 86% rename from src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.ts rename to src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.tsx index 3f836cff0..f198f7625 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.ts +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.utils.tsx @@ -1,3 +1,13 @@ +import React from 'react'; +import ChevronLeftIcon from 'assets/icons/chevron-left.svg'; +import DocumentIcon from 'assets/icons/document.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import ListIcon from 'assets/icons/list.svg'; +import LogOutIcon from 'assets/icons/log-out.svg'; +import QuestionIcon from 'assets/icons/question.svg'; +import SettingsIcon from 'assets/icons/settings.svg'; +import UserEmptyIcon from 'assets/icons/user-empty.svg'; +import UserIcon from 'assets/icons/user.svg'; import { GA_TAGS } from 'src/constants/tags'; import { CANDIDATE_USER_ROLES, COACH_USER_ROLES } from 'src/constants/users'; import { getCandidateIdFromCoachOrCandidate } from 'src/utils/Finding'; @@ -23,7 +33,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { user?.zone ? `zone=${user?.zone}` : '' }`, name: 'Les membres', - icon: 'users', + icon: , badge: '', tag: GA_TAGS.BACKOFFICE_ADMIN_HEADER_MEMBERS_CLIC, subMenu: [ @@ -33,7 +43,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { user?.zone ? `zone=${user?.zone}` : '' }`, name: 'Les candidats', - icon: 'users', + icon: , badge: 'members', tag: GA_TAGS.BACKOFFICE_ADMIN_HEADER_CANDIDATS_CLIC, }, @@ -43,7 +53,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { user?.zone ? `zone=${user?.zone}` : '' }`, name: 'Les coachs', - icon: 'users', + icon: , badge: '', tag: GA_TAGS.BACKOFFICE_ADMIN_HEADER_COACHS_CLIC, }, @@ -53,26 +63,26 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { href: '/backoffice/admin/structures', queryParams: `?${user?.zone ? `zone=${user?.zone}` : ''}`, name: 'Les structures partenaires', - icon: 'home', + icon: , badge: '', tag: GA_TAGS.BACKOFFICE_ADMIN_HEADER_ORGANIZATIONS_CLIC, }, { href: '/backoffice/admin/offres', name: 'Les opportunités', - icon: 'list', + icon: , badge: 'offers', }, ], dropdown: [ { href: '/backoffice/parametres', - icon: 'settings', + icon: , name: 'Paramètres', }, { onClick: logout, - icon: 'sign-out', + icon: , name: 'Se déconnecter', }, ], @@ -81,23 +91,19 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Les offres', queryParams: `?status=-1`, - icon: 'list', - // badge: 'offers', + icon: , tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_CLIC, subMenu: [ { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Mes offres', queryParams: `?status=-1`, - // icon: 'list', badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_MES_OFFRES_CLIC, }, { href: `/backoffice/candidat/${candidateId}/offres/public`, name: 'Toutes les offres', - // icon: 'list', - // badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_GENERALES_CLIC, }, ], @@ -105,14 +111,14 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/${candidateId}/suivi`, name: 'Mon suivi', - icon: 'file-text', + icon: , badge: 'note', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_SUIVI_CLIC, }, { href: `/backoffice/candidat/${candidateId}/cv`, name: 'Mon CV', - icon: 'user', + icon: , badge: 'cv', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_CV_CLIC, }, @@ -121,7 +127,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { process.env.TOOLBOX_CANDIDATE_URL }?id=${getCandidateIdFromCoachOrCandidate(user)}`, name: 'Boîte à outils', - icon: 'question', + icon: , external: true, tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_BAO_CLIC, }, @@ -131,23 +137,19 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Les offres', queryParams: `?status=-1`, - icon: 'list', - // badge: 'offers', + icon: , tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_CLIC, subMenu: [ { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Mes offres', queryParams: `?status=-1`, - // icon: 'list', badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_MES_OFFRES_CLIC, }, { href: `/backoffice/candidat/${candidateId}/offres/public`, name: 'Toutes les offres', - // icon: 'list', - // badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_GENERALES_CLIC, }, ], @@ -155,14 +157,14 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/${candidateId}/suivi`, name: 'Mon suivi', - icon: 'file-text', + icon: , badge: 'note', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_SUIVI_CLIC, }, { href: `/backoffice/candidat/${candidateId}/cv`, name: 'Mon CV', - icon: 'user', + icon: , badge: 'cv', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_CV_CLIC, }, @@ -171,7 +173,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { process.env.TOOLBOX_CANDIDATE_URL }?id=${getCandidateIdFromCoachOrCandidate(user)}`, name: 'Boîte à outils', - icon: 'question', + icon: , external: true, tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_BAO_CLIC, }, @@ -181,23 +183,19 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Les offres', queryParams: `?status=-1`, - icon: 'list', - // badge: 'offers', + icon: , tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_CLIC, subMenu: [ { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Offres du candidat', queryParams: `?status=-1`, - // icon: 'list', badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_MES_OFFRES_CLIC, }, { href: `/backoffice/candidat/${candidateId}/offres/public`, name: 'Toutes les offres', - // icon: 'list', - // badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_GENERALES_CLIC, }, ], @@ -205,14 +203,14 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/${candidateId}/suivi`, name: 'Suivi', - icon: 'file-text', + icon: , badge: 'note', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_SUIVI_CLIC, }, { href: `/backoffice/candidat/${candidateId}/cv`, name: 'CV', - icon: 'user', + icon: , badge: 'cv', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_CV_CLIC, }, @@ -221,7 +219,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { process.env.TOOLBOX_COACH_URL }?id=${getCandidateIdFromCoachOrCandidate(user)}`, name: 'Boîte à outils', - icon: 'question', + icon: , external: true, tag: GA_TAGS.BACKOFFICE_COACH_HEADER_BAO_CLIC, }, @@ -230,30 +228,26 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/list`, name: 'Retour à la liste des candidats', - icon: 'chevron-left', + icon: , }, { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Les offres', queryParams: `?status=-1`, - icon: 'list', + icon: , disabled: !candidateId, - // badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_CLIC, subMenu: [ { href: `/backoffice/candidat/${candidateId}/offres/private`, name: 'Offres du candidat', queryParams: `?status=-1`, - // icon: 'list', badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_MES_OFFRES_CLIC, }, { href: `/backoffice/candidat/${candidateId}/offres/public`, name: 'Toutes les offres', - // icon: 'list', - // badge: 'offers', tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_OFFRES_GENERALES_CLIC, }, ], @@ -261,7 +255,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/${candidateId}/suivi`, name: 'Suivi', - icon: 'file-text', + icon: , badge: 'note', disabled: !candidateId, tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_SUIVI_CLIC, @@ -269,7 +263,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { { href: `/backoffice/candidat/${candidateId}/cv`, name: 'CV', - icon: 'user', + icon: , badge: 'cv', disabled: !candidateId, tag: GA_TAGS.BACKOFFICE_CANDIDAT_HEADER_CV_CLIC, @@ -279,7 +273,7 @@ export const renderLinks = (user, logout, candidateId): AnyToFix => { process.env.TOOLBOX_COACH_URL }?id=${getCandidateIdFromCoachOrCandidate(user)}`, name: 'Boîte à outils', - icon: 'question', + icon: , external: true, tag: GA_TAGS.BACKOFFICE_COACH_HEADER_BAO_CLIC, }, diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile.tsx b/src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile.tsx deleted file mode 100644 index 6beeefbe5..000000000 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/ImgProfile.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import React, { useContext, useEffect, useState } from 'react'; -import { UserWithUserCandidate } from 'src/api/types'; -import { Img } from 'src/components/utils'; -import { CANDIDATE_USER_ROLES } from 'src/constants/users'; -import { UserContext } from 'src/store/UserProvider'; -import { isRoleIncluded } from 'src/utils/Finding'; - -interface ImgProfileProps { - user?: UserWithUserCandidate; - size?: number; -} - -export const ImgProfile = ({ user, size = 40 }: ImgProfileProps) => { - const userFromContext = useContext(UserContext).user; - - const { firstName, role, candidat } = user || userFromContext; - const [urlImg, setUrlImg] = useState(null); - - useEffect(() => { - if ( - isRoleIncluded(CANDIDATE_USER_ROLES, role) && - candidat && - candidat.cvs - ) { - const latestCV = candidat.cvs.reduce( - (acc, curr) => { - return acc.version < curr.version ? curr : acc; - }, - { version: -1 } - ); - setUrlImg(latestCV.urlImg); - } - }, [candidat, role, user]); - - return ( -
        - {urlImg ? ( -
        - {`photo -
        - ) : ( - - {firstName.substr(0, 1)} - - )} -
        - ); -}; diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.styles.ts b/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.styles.ts index 132d11def..ad3d2516a 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.styles.ts +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.styles.ts @@ -8,7 +8,7 @@ export const StyledSubMenu = styled.ul` height: 22px; padding: 5px 0 5px 40px; color: rgba(255, 255, 255, 0.5); - .uk-icon { + svg { display: none; } } @@ -35,7 +35,7 @@ export const StyledSubMenu = styled.ul` &:hover { background-color: ${COLORS.hoverOrange}; } - .uk-icon { + svg { display: inline-block; margin-right: 10px !important; } diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.tsx b/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.tsx index a1695f55b..b2581713b 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.tsx +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/SubMenu/SubMenu.tsx @@ -4,7 +4,7 @@ import { HeaderConnectedItemProps, NotifBadgesProps, } from 'src/components/headers/HeaderConnected/HeaderConnected.types'; -import { SimpleLink, Icon } from 'src/components/utils'; +import { SimpleLink } from 'src/components/utils'; import { gaEvent } from 'src/lib/gtag'; import { StyledSubMenu } from './SubMenu.styles'; @@ -43,7 +43,7 @@ export const SubMenu = ({ target={external ? '_blank' : '_self'} > - + {icon} {name} {badges[badge] > 0 && ( diff --git a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.desktop.tsx b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.desktop.tsx index 5c382df5c..866738c72 100644 --- a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.desktop.tsx +++ b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.desktop.tsx @@ -1,8 +1,9 @@ import Link from 'next/link'; import { useRouter } from 'next/router'; import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { StyledHeaderDesktop } from 'src/components/headers/Header.styles'; -import { Navbar, NavbarLogo, Icon, Nav } from 'src/components/utils'; +import { Navbar, NavbarLogo, Nav } from 'src/components/utils'; import { Button } from 'src/components/utils/Button'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { fbEvent } from 'src/lib/fb'; @@ -48,7 +49,7 @@ export const HeaderPublicContentDesktop = ({ style="primary" > Découvrir les CV  - +
      , ]; @@ -76,7 +77,7 @@ export const HeaderPublicContentDesktop = ({ style="default" > Faire un don  - +
    • diff --git a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx index d51157f93..ebe09b698 100644 --- a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx +++ b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx @@ -1,7 +1,9 @@ import { useRouter } from 'next/router'; import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import HomeIcon from 'assets/icons/home.svg'; import { StyledHeaderMobile } from 'src/components/headers/Header.styles'; -import { Hamburger, Navbar, NavbarLogo, Icon } from 'src/components/utils'; +import { Hamburger, Navbar, NavbarLogo } from 'src/components/utils'; import { Button } from 'src/components/utils/Button'; import { Offcanvas } from 'src/components/utils/Offcanvas'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; @@ -21,7 +23,7 @@ export const HeaderPublicContentMobile = ({ backgroundColor="darkerBlack" sticky left={ -
      +
      -
      } /> @@ -47,8 +49,8 @@ export const HeaderPublicContentMobile = ({ }} >
      - - Accueil + +   Accueil
      @@ -106,7 +108,7 @@ export const HeaderPublicContentMobile = ({ style="primary" > Découvrir les CV  - +
    • @@ -121,7 +123,7 @@ export const HeaderPublicContentMobile = ({ style="default" > Faire un don  - +
    diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx b/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx index ff7bf30a3..331b32aae 100644 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx +++ b/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx @@ -1,6 +1,20 @@ import PropTypes from 'prop-types'; import React from 'react'; import UIkit from 'uikit'; +import ArchiveIcon from 'assets/icons/archive.svg'; +import BoltIcon from 'assets/icons/bolt.svg'; +import CaretDownIcon from 'assets/icons/caret-down.svg'; +import CopyIcon from 'assets/icons/copy.svg'; +import EmailIcon from 'assets/icons/email.svg'; +import HomeIcon from 'assets/icons/home.svg'; +import LanguageIcon from 'assets/icons/language.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import PencilIcon from 'assets/icons/pencil.svg'; +import PhoneIcon from 'assets/icons/phone.svg'; +import SearchIcon from 'assets/icons/search.svg'; +import StarIcon from 'assets/icons/star.svg'; +import UserIcon from 'assets/icons/user.svg'; + import { Api } from 'src/api'; import { ExternalOpportunityDto, OpportunityDto } from 'src/api/types'; import { FormWithValidation } from 'src/components/forms/FormWithValidation'; @@ -13,14 +27,7 @@ import { List } from 'src/components/modals/Modal/ModalGeneric/OfferModals/parti import { OfferContent } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent'; import { OfferInfoContainer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer'; import { useModalOffer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer'; -import { - Button, - Grid, - SimpleLink, - ButtonIcon, - Icon, -} from 'src/components/utils'; - +import { Button, Grid, SimpleLink, ButtonIcon } from 'src/components/utils'; import { BUSINESS_LINES, EXTERNAL_OFFERS_ORIGINS, @@ -287,7 +294,7 @@ export const ModalOfferAdmin = ({
    } tooltip="Modifier l'offre" onClick={() => { setIsEditing(true); @@ -295,7 +302,7 @@ export const ModalOfferAdmin = ({ /> {!offer.isExternal && ( } tooltip="Dupliquer l'offre" onClick={() => { duplicateOffer(onClose); @@ -304,8 +311,13 @@ export const ModalOfferAdmin = ({ )} {(offer.isValidated || offer.isArchived || !offer.isExternal) && ( + } tooltip="Archiver l'offre" onClick={async () => { await updateOpportunity({ @@ -321,7 +333,7 @@ export const ModalOfferAdmin = ({ {offer.message && ( <> - + }>
    {formatParagraph(offer.message)}
    @@ -330,12 +342,12 @@ export const ModalOfferAdmin = ({ )} - + } title="Entreprise"> {offer.company} {!offer.isExternal && ( } title={isInternalContact ? 'Personne à contacter' : 'Recruteur'} > {(offer.recruiterFirstName || offer.recruiterName) && ( @@ -362,7 +374,7 @@ export const ModalOfferAdmin = ({ {offer.recruiterMail}   - + )} {offer.recruiterPhone && ( @@ -375,13 +387,13 @@ export const ModalOfferAdmin = ({ {offer.recruiterPhone}   - + {' '} )} )} {offer.contactMail && ( - + } title="Mail de contact"> )} - + } + title={offer.department} + > {offer.address && {offer.address}} {offer.externalOrigin && ( - + } + title="Origine de l'offre" + >
    { EXTERNAL_OFFERS_ORIGINS.find((origin) => { @@ -408,7 +426,7 @@ export const ModalOfferAdmin = ({ )} {offer.opportunityUsers && ( } title={offer.isPublic ? 'Statut pour' : 'Candidat(s) lié(s)'} >
    @@ -441,25 +459,13 @@ export const ModalOfferAdmin = ({
    {oppUser.bookmarked && ( - + )} {oppUser.archived && ( - + )} {offer.isPublic && oppUser.recommended && ( - + )}
    @@ -493,8 +499,7 @@ export const ModalOfferAdmin = ({ > {offerStatus.label} - diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js index 4e8d78bcb..e854a5a9e 100644 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js +++ b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js @@ -1,8 +1,12 @@ import moment from 'moment'; import PropTypes from 'prop-types'; import React from 'react'; +import BoltIcon from 'assets/icons/bolt.svg'; +import CarIcon from 'assets/icons/car.svg'; +import CreditCardIcon from 'assets/icons/credit-card.svg'; +import LinkIcon from 'assets/icons/link.svg'; import { ContractLabel } from 'src/components/backoffice/opportunities/OpportunitiesContainer/ContractLabel/ContractLabel'; -import { ButtonIcon, Icon } from 'src/components/utils'; +import { ButtonIcon } from 'src/components/utils'; import { useCopyToClipboard } from 'src/hooks'; function translateCategory(isPublic, isRecommended, isExternal) { @@ -20,7 +24,7 @@ function translateCategory(isPublic, isRecommended, isExternal) { <> {' '} recommandée  - + ) : ( '' @@ -52,13 +56,12 @@ export const ModalOfferInfo = ({ return (
    -

    {title}

    +

    + {title} +

    } onMouseLeave={() => { return setHasBeenCopied(false); }} @@ -99,18 +102,14 @@ export const ModalOfferInfo = ({
    {salary && (
    - + {salary}
    )} {driversLicense && (
    - + Permis requis
    )} diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js index 00cd3eb3c..f8179f20f 100644 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js +++ b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js @@ -1,5 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; +import CheckIcon from 'assets/icons/check.svg'; +import LanguageIcon from 'assets/icons/language.svg'; +import LinkIcon from 'assets/icons/link.svg'; +import MoreIcon from 'assets/icons/more.svg'; import { OfferInfoContainer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer'; import { Button, Grid, SimpleLink } from 'src/components/utils'; import { BUSINESS_LINES } from 'src/constants'; @@ -9,30 +13,39 @@ export const OfferContent = ({ offer }) => { return ( {offer.companyDescription && ( - + } + title="Description de l'entreprise" + >
    {formatParagraph(offer.companyDescription)}
    )} - + } + title="Description de l'offre" + >
    {formatParagraph(offer.description)}
    {offer.skills && ( - + } + title="Compétences importantes" + >
    {formatParagraph(offer.skills)}
    )} {offer.prerequisites && ( - + } title="Pré-requis">
    {formatParagraph(offer.prerequisites)}
    )} {offer.otherInfo && ( - + } title="Autres précisions">
    {formatParagraph(offer.otherInfo)}
    )} {offer.link && ( - + } title="Lien">
    { if (!children) { @@ -11,7 +11,7 @@ export const OfferInfoContainer = ({ icon, title, children }) => { return ( - {icon ? :
    } + {icon ||
    }
    {title ? {title} : undefined} @@ -23,7 +23,7 @@ export const OfferInfoContainer = ({ icon, title, children }) => { }; OfferInfoContainer.propTypes = { - icon: PropTypes.string, + icon: PropTypes.element, title: PropTypes.string, children: PropTypes.oneOfType([ PropTypes.element, diff --git a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalInterestLinkedOut/ModalInterestLinkedOut.tsx b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalInterestLinkedOut/ModalInterestLinkedOut.tsx index bbf478fd6..f9bed4625 100644 --- a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalInterestLinkedOut/ModalInterestLinkedOut.tsx +++ b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalInterestLinkedOut/ModalInterestLinkedOut.tsx @@ -32,7 +32,7 @@ export const ModalInterestLinkedOut = () => { return ( ); }, diff --git a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx index 7aed83632..7d01588a4 100644 --- a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx +++ b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx @@ -1,11 +1,12 @@ import React from 'react'; import UIkit from 'uikit'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Api } from 'src/api'; import { FormWithValidation } from 'src/components/forms/FormWithValidation'; import { formGetEmail } from 'src/components/forms/schemas/formGetEmail'; import { StepperModal } from 'src/components/modals/Modal/ModalGeneric/StepperModal'; -import { Button, Img, Icon } from 'src/components/utils'; +import { Button, Img } from 'src/components/utils'; import { EXTERNAL_LINKS } from 'src/constants'; import { GA_TAGS } from 'src/constants/tags'; import { gaEvent } from 'src/lib/gtag'; @@ -59,7 +60,8 @@ export const ModalShareCV = ({ firstName }: ModalShareCVProps) => {

    Logo Entourage @@ -76,7 +78,7 @@ export const ModalShareCV = ({ firstName }: ModalShareCVProps) => { style="primary" > En savoir plus  - +
    diff --git a/src/components/modals/PopupModal/SailInfoModal.tsx b/src/components/modals/PopupModal/SailInfoModal.tsx index 740357026..d4eeeb145 100644 --- a/src/components/modals/PopupModal/SailInfoModal.tsx +++ b/src/components/modals/PopupModal/SailInfoModal.tsx @@ -1,6 +1,7 @@ import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { ModalGeneric } from 'src/components/modals/Modal/ModalGeneric'; -import { Button, Img, Icon } from 'src/components/utils'; +import { Button, Img } from 'src/components/utils'; import { EXTERNAL_LINKS } from 'src/constants'; import { addPrefix } from 'src/utils'; @@ -23,7 +24,7 @@ export const SailInfoModal = () => { className="uk-margin-medium-top" > Lire l'histoire  - + ); diff --git a/src/components/modals/PopupModal/TaxModal.tsx b/src/components/modals/PopupModal/TaxModal.tsx index 4075ff54b..835dd8729 100644 --- a/src/components/modals/PopupModal/TaxModal.tsx +++ b/src/components/modals/PopupModal/TaxModal.tsx @@ -15,7 +15,12 @@ export function TaxModal() { > - Taxe d'apprentissage + Taxe d'apprentissage diff --git a/src/components/modals/SuccessModalContent.js b/src/components/modals/SuccessModalContent.js index 78f2c95f0..4ea7d100c 100644 --- a/src/components/modals/SuccessModalContent.js +++ b/src/components/modals/SuccessModalContent.js @@ -1,15 +1,16 @@ import PropTypes from 'prop-types'; import React from 'react'; -import { Button, Icon } from 'src/components/utils'; +import CheckIcon from 'assets/icons/check.svg'; +import { Button } from 'src/components/utils'; export const SuccessModalContent = ({ text, closeModal }) => { return ( <>
    - + {text}
    diff --git a/src/components/partials/Aider/CoachContainer/styles.js b/src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts similarity index 100% rename from src/components/partials/Aider/CoachContainer/styles.js rename to src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts diff --git a/src/components/partials/Aider/CoachContainer/index.js b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx similarity index 77% rename from src/components/partials/Aider/CoachContainer/index.js rename to src/components/partials/Aider/CoachContainer/CoachContainer.tsx index b4d70410e..2f5736a9f 100644 --- a/src/components/partials/Aider/CoachContainer/index.js +++ b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx @@ -1,15 +1,14 @@ import React from 'react'; import { v4 as uuid } from 'uuid'; -import AiderAccompagnerCoachImgMobile from 'public/static/img/aider-accompagner-coach-mobile.jpg'; -import AiderAccompagnerCoachImg from 'public/static/img/aider-accompagner-coach.jpg'; -import BoiteOutilsIcon from 'public/static/img/icons/aider-boite-outils.svg'; -import InterviewIcon from 'public/static/img/icons/aider-interview.svg'; -import ReseauIcon from 'public/static/img/icons/aider-reseau.svg'; -import WelcomeIcon from 'public/static/img/icons/aider-welcome.svg'; -import { CoachTestimony } from 'src/components/partials/Aider/CoachContainer/CoachTestimony'; -import { StyledCoachContainer } from 'src/components/partials/Aider/CoachContainer/styles'; -import { TitleSection } from 'src/components/partials/Aider/H2'; -import { BackgroundImage, Button, Icon, Container } from 'src/components/utils'; +import BoiteOutilsIcon from 'assets/icons/aider-boite-outils.svg'; +import InterviewIcon from 'assets/icons/aider-interview.svg'; +import ReseauIcon from 'assets/icons/aider-reseau.svg'; +import WelcomeIcon from 'assets/icons/aider-welcome.svg'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { StyledCoachContainer } from 'src/components/partials/Aider/CoachContainer/CoachContainer.styles'; +import { CoachTestimony } from 'src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony'; +import { TitleSection } from 'src/components/partials/Aider/H2/H2'; +import { BackgroundImage, Button, Container } from 'src/components/utils'; import { COLORS } from 'src/constants/styles'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { fbEvent } from 'src/lib/fb'; @@ -44,9 +43,9 @@ export const CoachContainer = () => { return ( @@ -91,7 +90,7 @@ export const CoachContainer = () => { style="primary" > Devenir Coach LinkedOut  - +
    diff --git a/src/components/partials/Aider/CoachContainer/CoachTestimony/styles.js b/src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.styles.ts similarity index 100% rename from src/components/partials/Aider/CoachContainer/CoachTestimony/styles.js rename to src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.styles.ts diff --git a/src/components/partials/Aider/CoachContainer/CoachTestimony/index.js b/src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.tsx similarity index 94% rename from src/components/partials/Aider/CoachContainer/CoachTestimony/index.js rename to src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.tsx index 82e2a9727..88441a3cb 100644 --- a/src/components/partials/Aider/CoachContainer/CoachTestimony/index.js +++ b/src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { v4 as uuid } from 'uuid'; -import { StyledCoachTestimony } from 'src/components/partials/Aider/CoachContainer/CoachTestimony/styles'; -import { TitleSection } from 'src/components/partials/Aider/H2'; +import { StyledCoachTestimony } from 'src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony.styles'; +import { TitleSection } from 'src/components/partials/Aider/H2/H2'; import { Container } from 'src/components/utils'; import { COLORS } from 'src/constants/styles'; diff --git a/src/components/partials/Aider/CoachContainer/index.ts b/src/components/partials/Aider/CoachContainer/index.ts new file mode 100644 index 000000000..938721a4a --- /dev/null +++ b/src/components/partials/Aider/CoachContainer/index.ts @@ -0,0 +1 @@ +export * from './CoachContainer'; diff --git a/src/components/partials/Aider/H2/styles.js b/src/components/partials/Aider/H2/H2.styles.ts similarity index 100% rename from src/components/partials/Aider/H2/styles.js rename to src/components/partials/Aider/H2/H2.styles.ts diff --git a/src/components/partials/Aider/H2/index.js b/src/components/partials/Aider/H2/H2.tsx similarity index 89% rename from src/components/partials/Aider/H2/index.js rename to src/components/partials/Aider/H2/H2.tsx index 59fad3534..7dba9ae54 100644 --- a/src/components/partials/Aider/H2/index.js +++ b/src/components/partials/Aider/H2/H2.tsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; -import DoubleCarresIcon from 'public/static/img/icons/double-carres.svg'; -import { StyledTitleSection } from 'src/components/partials/Aider/H2/styles'; +import DoubleCarresIcon from 'assets/icons/double-carres.svg'; +import { StyledTitleSection } from 'src/components/partials/Aider/H2/H2.styles'; export const TitleSection = ({ title, titleColor, svgStroke, svgColor }) => { return ( diff --git a/src/components/partials/Aider/H2/index.ts b/src/components/partials/Aider/H2/index.ts new file mode 100644 index 000000000..37addaecf --- /dev/null +++ b/src/components/partials/Aider/H2/index.ts @@ -0,0 +1 @@ +export * from './H2'; diff --git a/src/components/partials/Aider/HelpCards/HelpCard/styles.js b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.styles.ts similarity index 88% rename from src/components/partials/Aider/HelpCards/HelpCard/styles.js rename to src/components/partials/Aider/HelpCards/HelpCard/HelpCard.styles.ts index 6f3f74b75..b410592f6 100644 --- a/src/components/partials/Aider/HelpCards/HelpCard/styles.js +++ b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.styles.ts @@ -34,3 +34,9 @@ export const StyledLink = styled.a` color: black; } `; + +export const StyledImageContainer = styled.div` + position: relative; + width: 100%; + height: 150px; +`; diff --git a/src/components/partials/Aider/HelpCards/HelpCard/index.js b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx similarity index 81% rename from src/components/partials/Aider/HelpCards/HelpCard/index.js rename to src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx index 15285ef7d..e5abf69da 100644 --- a/src/components/partials/Aider/HelpCards/HelpCard/index.js +++ b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx @@ -1,11 +1,15 @@ -import Image from 'next/image'; import Link from 'next/link'; import PropTypes from 'prop-types'; import React from 'react'; -import { Button, Icon } from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { Button, Img } from 'src/components/utils'; import { fbEvent } from 'src/lib/fb'; import { gaEvent } from 'src/lib/gtag'; -import { StyledHelpCard, StyledLink } from './styles'; +import { + StyledHelpCard, + StyledImageContainer, + StyledLink, +} from './HelpCard.styles'; export const HelpCard = ({ cardContent, keyMap }) => { const { title, img, text, cta, href, alt, newTab, gaTag, fbTag } = @@ -14,7 +18,9 @@ export const HelpCard = ({ cardContent, keyMap }) => {

    {title}

    - {alt} + + {alt} +

    {text}

    ); @@ -72,8 +78,8 @@ HelpCard.propTypes = { cta: PropTypes.string.isRequired, alt: PropTypes.string.isRequired, newTab: PropTypes.bool.isRequired, - gaTag: PropTypes.string, - fbTag: PropTypes.string, + gaTag: PropTypes.shape({}), + fbTag: PropTypes.shape({}), }).isRequired, keyMap: PropTypes.string.isRequired, }; diff --git a/src/components/partials/Aider/HelpCards/HelpCard/index.ts b/src/components/partials/Aider/HelpCards/HelpCard/index.ts new file mode 100644 index 000000000..baab304c6 --- /dev/null +++ b/src/components/partials/Aider/HelpCards/HelpCard/index.ts @@ -0,0 +1 @@ +export * from './HelpCard'; diff --git a/src/components/partials/Aider/HelpCards/styles.js b/src/components/partials/Aider/HelpCards/HelpCards.styles.ts similarity index 100% rename from src/components/partials/Aider/HelpCards/styles.js rename to src/components/partials/Aider/HelpCards/HelpCards.styles.ts diff --git a/src/components/partials/Aider/HelpCards/index.js b/src/components/partials/Aider/HelpCards/HelpCards.tsx similarity index 87% rename from src/components/partials/Aider/HelpCards/index.js rename to src/components/partials/Aider/HelpCards/HelpCards.tsx index 7df31698e..862c38a58 100644 --- a/src/components/partials/Aider/HelpCards/index.js +++ b/src/components/partials/Aider/HelpCards/HelpCards.tsx @@ -1,12 +1,8 @@ import React from 'react'; import { v4 as uuid } from 'uuid'; -import HelpCoach from 'public/static/img/aider-coach.jpg'; -import HelpCV from 'public/static/img/aider-cv.jpg'; -import HelpProject from 'public/static/img/aider-financement-projet.jpg'; -import HelpReseau from 'public/static/img/aider-reseau.jpg'; -import { TitleSection } from 'src/components/partials/Aider/H2'; -import { HelpCard } from 'src/components/partials/Aider/HelpCards/HelpCard'; -import { StyledHelpCards } from 'src/components/partials/Aider/HelpCards/styles'; +import { TitleSection } from 'src/components/partials/Aider/H2/H2'; +import { HelpCard } from 'src/components/partials/Aider/HelpCards/HelpCard/HelpCard'; +import { StyledHelpCards } from 'src/components/partials/Aider/HelpCards/HelpCards.styles'; import { Container } from 'src/components/utils'; import { COLORS } from 'src/constants/styles'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; @@ -16,7 +12,7 @@ const uuidValue = uuid(); const cardsContent = [ { title: "Coachez un candidat vers l'emploi", - img: HelpCoach, + img: '/static/img/aider-coach.jpg', text: "Vous soutenez un candidat individuellement et dans la durée dans sa recherche d'emploi pour booster la rencontre avec les entreprises et son intégration durable dans un nouveau job.", cta: 'Devenir coach LinkedOut', href: process.env.AIRTABLE_LINK_BECOME_COACH, @@ -27,7 +23,7 @@ const cardsContent = [ }, { title: 'Partagez les CV des candidats', - img: HelpCV, + img: '/static/img/aider-cv.jpg', text: 'Partager un CV dans vos réseaux donne une visibilité inédite à un candidat auprès de potentiels recruteurs et permet de générer des opportunités d’emploi. Votre partage peut tout changer !', cta: 'Partager un CV', href: '/candidats?employed=false', @@ -37,7 +33,7 @@ const cardsContent = [ }, { title: 'Activez votre réseau pour un candidat', - img: HelpReseau, + img: '/static/img/aider-reseau.jpg', text: 'Une mission souple et ponctuelle pour apporter un coup de pouce et des mises en relation aux candidats et leurs coachs tout au long de leur parcours LinkedOut !', cta: 'Rejoindre les connecteurs', href: process.env.CONNECTEUR_INSCRIPTION_URL, @@ -47,7 +43,7 @@ const cardsContent = [ }, { title: 'Soutenez financièrement le projet', - img: HelpProject, + img: '/static/img/aider-financement-projet.jpg', text: 'Pas de temps mais envie de soutenir notre projet ? Faites un don en quelques clics pour participer à la création d’une société plus inclusive et permettre à nos candidats de vivre des expériences transformantes.', cta: 'Faire un don', href: process.env.DONATION_LINK, diff --git a/src/components/partials/Aider/HelpCards/index.ts b/src/components/partials/Aider/HelpCards/index.ts new file mode 100644 index 000000000..5d73c8e42 --- /dev/null +++ b/src/components/partials/Aider/HelpCards/index.ts @@ -0,0 +1 @@ +export * from './HelpCards'; diff --git a/src/components/partials/Aider/InfoContainer/styles.js b/src/components/partials/Aider/InfoContainer/InfoContainer.styles.ts similarity index 98% rename from src/components/partials/Aider/InfoContainer/styles.js rename to src/components/partials/Aider/InfoContainer/InfoContainer.styles.ts index 020f01ad2..9a6d89a38 100644 --- a/src/components/partials/Aider/InfoContainer/styles.js +++ b/src/components/partials/Aider/InfoContainer/InfoContainer.styles.ts @@ -58,9 +58,11 @@ export const StyledInfoContainer = styled.section` @media screen and (min-width: ${BREAKPOINTS.desktop}px) { margin-right: 30px; } + height: 300px; .informer-illustration-container { width: calc(100% - 30px); position: relative; + height: 100%; &:after { content: ''; height: 60px; diff --git a/src/components/partials/Aider/InfoContainer/index.js b/src/components/partials/Aider/InfoContainer/InfoContainer.tsx similarity index 73% rename from src/components/partials/Aider/InfoContainer/index.js rename to src/components/partials/Aider/InfoContainer/InfoContainer.tsx index dbaeef9ef..5eb09143b 100644 --- a/src/components/partials/Aider/InfoContainer/index.js +++ b/src/components/partials/Aider/InfoContainer/InfoContainer.tsx @@ -1,16 +1,12 @@ -import Image from 'next/image'; -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { v4 as uuid } from 'uuid'; -import AiderImgFullWidth from 'public/static/img/aider-img-full-width.jpg'; -import AiderInformationsMissions from 'public/static/img/aider-informations-mission.jpg'; -import PictoCreationOpp from 'public/static/img/icons/picto-creation-opportunite.svg'; -import PictoFaciliterInte from 'public/static/img/icons/picto-faciliter-integration.svg'; -import PictoRechercheCV from 'public/static/img/icons/picto-recherche-cv.svg'; -import { TitleSection } from 'src/components/partials/Aider/H2'; -import { StyledInfoContainer } from 'src/components/partials/Aider/InfoContainer/styles'; -import { Container } from 'src/components/utils'; -import { COLORS, BREAKPOINTS } from 'src/constants/styles'; -import { isSSR } from 'src/utils/isSSR'; +import PictoCreationOpp from 'assets/icons/picto-creation-opportunite.svg'; +import PictoFaciliterInte from 'assets/icons/picto-faciliter-integration.svg'; +import PictoRechercheCV from 'assets/icons/picto-recherche-cv.svg'; +import { TitleSection } from 'src/components/partials/Aider/H2/H2'; +import { StyledInfoContainer } from 'src/components/partials/Aider/InfoContainer/InfoContainer.styles'; +import { Container, Img } from 'src/components/utils'; +import { COLORS } from 'src/constants/styles'; const uuidValue = uuid(); @@ -46,23 +42,13 @@ const infoContent = [ ]; export const InfoContainer = () => { - const [imagePosition, setImagePosition] = useState('top'); - useEffect(() => { - if (!isSSR) { - setImagePosition( - window.innerWidth >= BREAKPOINTS.desktop ? 'top' : 'right' - ); - } - }, []); return (
    - Coaches qui accompagnent des candidats vers la réinsertion
    @@ -92,8 +78,9 @@ export const InfoContainer = () => {
    - Un coach et un candidat LinkedOut
    diff --git a/src/components/partials/Aider/InfoContainer/index.ts b/src/components/partials/Aider/InfoContainer/index.ts new file mode 100644 index 000000000..ff75c7cd9 --- /dev/null +++ b/src/components/partials/Aider/InfoContainer/index.ts @@ -0,0 +1 @@ +export * from './InfoContainer'; diff --git a/src/components/partials/AnnouncementPartial.tsx b/src/components/partials/AnnouncementPartial.tsx index 50675ecf1..10ee47eed 100644 --- a/src/components/partials/AnnouncementPartial.tsx +++ b/src/components/partials/AnnouncementPartial.tsx @@ -7,8 +7,8 @@ export const AnnouncementPartial = () => {
    Victoire Transat Jacques Vabre diff --git a/src/components/partials/AssociationEntourage.tsx b/src/components/partials/AssociationEntourage.tsx index c4217fac5..bc5dbdb39 100644 --- a/src/components/partials/AssociationEntourage.tsx +++ b/src/components/partials/AssociationEntourage.tsx @@ -1,12 +1,7 @@ import React from 'react'; -import { - Background, - Grid, - Img, - Section, - Button, - Icon, -} from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import EntourageLogo from 'assets/icons/logo-entourage.svg'; +import { Background, Grid, Img, Section, Button } from 'src/components/utils'; import { EXTERNAL_LINKS } from 'src/constants'; import { GA_TAGS } from 'src/constants/tags'; import { gaEvent } from 'src/lib/gtag'; @@ -26,7 +21,7 @@ export const AssociationEntourage = () => { className="uk-margin-large-top" >
    - logo-entourage +

    L'association Entourage @@ -48,14 +43,15 @@ export const AssociationEntourage = () => { }} newTab > - Voir le site + Voir le site  +

    Association Entourage diff --git a/src/components/partials/CV/CVCallToActions/CVShareButtons/CVShareButtons.tsx b/src/components/partials/CV/CVCallToActions/CVShareButtons/CVShareButtons.tsx index e37b5b708..358fa8332 100644 --- a/src/components/partials/CV/CVCallToActions/CVShareButtons/CVShareButtons.tsx +++ b/src/components/partials/CV/CVCallToActions/CVShareButtons/CVShareButtons.tsx @@ -6,10 +6,10 @@ import { TwitterShareButton, WhatsappShareButton, } from 'react-share'; -import FacebookIcon from 'public/static/img/icons/facebook.svg'; -import LinkedInIcon from 'public/static/img/icons/linked-in.svg'; -import TwitterIcon from 'public/static/img/icons/twitter.svg'; -import WhatsappIcon from 'public/static/img/icons/whatsapp.svg'; +import FacebookIcon from 'assets/icons/facebook.svg'; +import LinkedInIcon from 'assets/icons/linked-in.svg'; +import TwitterIcon from 'assets/icons/twitter.svg'; +import WhatsappIcon from 'assets/icons/whatsapp.svg'; import { CV } from 'src/api/types'; import { openModal } from 'src/components/modals/Modal'; import { ModalShareCV } from 'src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV'; diff --git a/src/components/partials/CV/CVList/CVList.tsx b/src/components/partials/CV/CVList/CVList.tsx index 13bea22a0..e2afd3c4e 100644 --- a/src/components/partials/CV/CVList/CVList.tsx +++ b/src/components/partials/CV/CVList/CVList.tsx @@ -1,17 +1,19 @@ import _ from 'lodash'; import React, { useCallback, useMemo, useState } from 'react'; import useDeepCompareEffect from 'use-deep-compare-effect'; +import PlusFilledIcon from 'assets/icons/plus-filled.svg'; import { Api } from 'src/api'; import { LoadingScreen } from 'src/components/backoffice/LoadingScreen'; import { CandidatCard } from 'src/components/cards'; import { SearchBar } from 'src/components/filters/SearchBar'; import { openModal } from 'src/components/modals/Modal'; import { PostPublicOfferModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; -import { Button, Grid, SimpleLink, Icon } from 'src/components/utils'; +import { Button, Grid, SimpleLink } from 'src/components/utils'; import { CV_FILTERS_DATA, INITIAL_NB_OF_CV_TO_DISPLAY } from 'src/constants'; -import { FB_TAGS } from 'src/constants/tags'; +import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { usePrevious } from 'src/hooks/utils'; import { fbEvent } from 'src/lib/fb'; +import { gaEvent } from 'src/lib/gtag'; import { filtersToQueryParams } from 'src/utils/Filters'; import { AnyToFix } from 'src/utils/Types'; @@ -125,7 +127,7 @@ export const CVList = ({ const renderCvList = useCallback( (items) => { return ( -
    +
    ) : ( - + )}
    @@ -206,6 +209,7 @@ export const CVList = ({ }} className="uk-link-text" onClick={() => { + gaEvent(GA_TAGS.PAGE_ENTREPRISES_PROPOSER_OFFRE_CLIC); fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_OPEN); openModal(); }} diff --git a/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx b/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx index 3595eb023..a53793e6d 100644 --- a/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx +++ b/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import { Icon } from 'src/components/utils'; +import ChevronDownIcon from 'assets/icons/chevron-down.svg'; import { COLORS } from 'src/constants/styles'; export const StyledCVPageContent = styled.div` @@ -255,7 +255,6 @@ export const StyledCVPageContentInformations = styled.div` padding: 30px; display: flex; flex-direction: column; - max-width: 300px; margin-bottom: 30px; border-radius: 30px; margin-right: 30px; @@ -279,8 +278,7 @@ export const StyledCVPageContentInformations = styled.div` margin-top: 5px; } &.mobile { - width: 100%; - max-width: none; + margin-right: 0; } `; @@ -289,15 +287,12 @@ export const StyledCVPageContentPassions = styled.div` padding: 30px; display: flex; flex-direction: column; - max-width: 300px; margin-bottom: 30px; border-radius: 30px; margin-right: 30px; - position: relative; &.mobile { - width: 100%; - max-width: none; + margin-right: 0; } `; @@ -382,7 +377,6 @@ export const StyledCVExperienceDescription = styled.div` export const StyledCVPageContentCarousel = styled.div` max-width: 1320px; - padding: 0 15px; margin: 30px auto; width: 100%; @@ -433,7 +427,8 @@ export const StyledLeftQuoteContainer = styled.div` export const StyledCVPageContentFooter = styled.div` display: flex; - width: 100%; + align-items: center; + justify-content: center; max-width: 1320px; padding: 0 15px 50px; @@ -447,13 +442,13 @@ export const StyledCVPageContentFooter = styled.div` } `; -export const StyledChevronIcon = styled(Icon)` +export const StyledChevronIcon = styled(ChevronDownIcon)` top: 30px; right: 30px; + color: ${COLORS.primaryOrange}; svg { height: 20px; width: 20px; - color: ${COLORS.primaryOrange}; } `; diff --git a/src/components/partials/CV/PageCVContent/PageCVContent.tsx b/src/components/partials/CV/PageCVContent/PageCVContent.tsx index bdae527bc..559968d02 100644 --- a/src/components/partials/CV/PageCVContent/PageCVContent.tsx +++ b/src/components/partials/CV/PageCVContent/PageCVContent.tsx @@ -2,13 +2,13 @@ import Link from 'next/link'; import React, { useState } from 'react'; import UIkit from 'uikit'; -import CalendarIcon from 'assets/custom/icons/calendar.svg'; -import CarIcon from 'assets/custom/icons/car.svg'; -import DocumentIcon from 'assets/custom/icons/document.svg'; -import LanguageIcon from 'assets/custom/icons/language.svg'; -import LocationIcon from 'assets/custom/icons/location.svg'; -import QuoteLeftIcon from 'assets/custom/icons/quote-left.svg'; -import QuoteRightIcon from 'assets/custom/icons/quote-right.svg'; +import CalendarIcon from 'assets/icons/calendar.svg'; +import CarIcon from 'assets/icons/car.svg'; +import DocumentIcon from 'assets/icons/document.svg'; +import LanguageIcon from 'assets/icons/language.svg'; +import LocationIcon from 'assets/icons/location.svg'; +import QuoteLeftIcon from 'assets/icons/quote-left.svg'; +import QuoteRightIcon from 'assets/icons/quote-right.svg'; import { CVCallToActions } from '../CVCallToActions'; import { CVShareButtons } from '../CVCallToActions/CVShareButtons'; import { Api } from 'src/api'; @@ -55,7 +55,7 @@ import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { useIsDesktop } from 'src/hooks/utils'; import { fbEvent } from 'src/lib/fb'; import { gaEvent } from 'src/lib/gtag'; -import { addPrefix, findConstantFromValue, sortByOrder } from 'src/utils'; +import { findConstantFromValue, sortByOrder } from 'src/utils'; interface openedPanelType { informations: boolean; @@ -101,7 +101,7 @@ export const PageCVContent = ({
    @@ -134,9 +134,9 @@ export const PageCVContent = ({ /> {cv.catchphrase && (

    - + {cv.catchphrase} - +

    )} {cv.story && ( @@ -259,8 +259,7 @@ export const PageCVContent = ({
  • - {' '} - Type de contrat + Type de contrat

    {cv.contracts @@ -276,8 +275,7 @@ export const PageCVContent = ({

  • - {' '} - Localisation + Localisation

    {locations @@ -296,8 +294,7 @@ export const PageCVContent = ({

  • - {' '} - Disponibilité + Disponibilité

    {cv.availability}

    @@ -307,7 +304,7 @@ export const PageCVContent = ({
  • - Langues + Langues

    {cv.languages @@ -323,7 +320,7 @@ export const PageCVContent = ({

  • - Mobilité + Mobilité

    {cv.transport}

    @@ -358,7 +355,7 @@ export const PageCVContent = ({ }} >

    - + {!isDesktop && }
      {cv.experiences.map((experience) => { @@ -394,7 +391,7 @@ export const PageCVContent = ({ }} >

      - + {!isDesktop && }
        {cv.formations.map((formation) => { @@ -453,7 +450,7 @@ export const PageCVContent = ({ return ( - +
        {text} @@ -463,7 +460,7 @@ export const PageCVContent = ({
        - +
        ); @@ -477,11 +474,11 @@ export const PageCVContent = ({

        Je suis accompagné{cv.user.candidat.gender === 1 && 'e'} dans ma recherche d’emploi et mon intégration en entreprise par le - projet LinkedOut. Pour plus d’information, contactez : + projet LinkedOut. Pour plus d’information, contactez :  + + contact-linkedout@entourage.social +

        - - contact-linkedout@entourage.social - ); diff --git a/src/components/partials/CandidatListPartial.tsx b/src/components/partials/CandidatListPartial.tsx index e1327a3b3..557f1b437 100644 --- a/src/components/partials/CandidatListPartial.tsx +++ b/src/components/partials/CandidatListPartial.tsx @@ -1,6 +1,7 @@ import React, { useContext } from 'react'; import CountUp from 'react-countup'; -import { Grid, Section, Icon, Button } from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { Grid, Section, Button } from 'src/components/utils'; import { CV_FILTERS_DATA, INITIAL_NB_OF_CV_TO_DISPLAY } from 'src/constants'; import { SharesCountContext } from 'src/store/SharesCountProvider'; import { CVList } from './CV/CVList'; @@ -126,8 +127,9 @@ export const CandidatListPartial = () => { > {process.env.WOMENS_DAY === 'true' ? 'Voir toutes les candidates' - : 'Voir tous les candidats'}{' '} - + : 'Voir tous les candidats'} +   + diff --git a/src/components/partials/CandidateTestimonies.tsx b/src/components/partials/CandidateTestimonies.tsx index d53cb0a56..86aa3a45f 100644 --- a/src/components/partials/CandidateTestimonies.tsx +++ b/src/components/partials/CandidateTestimonies.tsx @@ -93,8 +93,8 @@ export const CandidateTestimonies = () => {
        guillemets

        @@ -106,8 +106,8 @@ export const CandidateTestimonies = () => { > guillemets-petits

        diff --git a/src/components/partials/CandidateTestimoniesOrientation.tsx b/src/components/partials/CandidateTestimoniesOrientation.tsx index feab6f2b8..30c0dd85f 100644 --- a/src/components/partials/CandidateTestimoniesOrientation.tsx +++ b/src/components/partials/CandidateTestimoniesOrientation.tsx @@ -63,8 +63,8 @@ export const CandidateTestimoniesOrientation = ({
        guillemets

        @@ -76,8 +76,8 @@ export const CandidateTestimoniesOrientation = ({ > guillemets-petits

        diff --git a/src/components/partials/Chapter.tsx b/src/components/partials/Chapter.tsx index b7bbce763..03ceb5039 100644 --- a/src/components/partials/Chapter.tsx +++ b/src/components/partials/Chapter.tsx @@ -65,14 +65,10 @@ export const Chapter = ({

  • {imgSrc && (
    - +
    )} diff --git a/src/components/partials/CompanyTestimonies.tsx b/src/components/partials/CompanyTestimonies.tsx index c48c8ca4b..a0f73ba89 100644 --- a/src/components/partials/CompanyTestimonies.tsx +++ b/src/components/partials/CompanyTestimonies.tsx @@ -59,8 +59,8 @@ export const CompanyTestimonies = () => {
    guillemets

    @@ -72,8 +72,8 @@ export const CompanyTestimonies = () => { > guillemets-petits

    diff --git a/src/components/partials/DiscoverPartial.tsx b/src/components/partials/DiscoverPartial.tsx index 066beb241..cbd2bd01b 100644 --- a/src/components/partials/DiscoverPartial.tsx +++ b/src/components/partials/DiscoverPartial.tsx @@ -1,8 +1,9 @@ import React, { useEffect, useState } from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Api } from 'src/api'; import { LoadingScreen } from 'src/components/backoffice/LoadingScreen'; import { CandidatCard } from 'src/components/cards'; -import { Grid, Section, Icon } from 'src/components/utils'; +import { Grid, Section } from 'src/components/utils'; import { Button } from 'src/components/utils/Button'; import { UIKIT_STYLES } from 'src/components/variables'; @@ -38,7 +39,7 @@ export const DiscoverPartial = ({ businessLines={cv.businessLines} url={cv.user && cv.user.url} imgSrc={ - (cv.urlImg && process.env.AWSS3_CDN_URL + cv.urlImg) || + (cv.urlImg && `${process.env.AWSS3_CDN_URL}/${cv.urlImg}`) || undefined } firstName={cv.user && cv.user.candidat.firstName} @@ -67,7 +68,8 @@ export const DiscoverPartial = ({ href={{ pathname: '/candidats', query: { employed: false } }} className="uk-margin-large-top" > - Voir tous les candidats + Voir tous les candidats  +
    diff --git a/src/components/partials/Footer/Footer.tsx b/src/components/partials/Footer/Footer.tsx index 1e0d3263b..9c43e820c 100644 --- a/src/components/partials/Footer/Footer.tsx +++ b/src/components/partials/Footer/Footer.tsx @@ -1,5 +1,6 @@ import { useRouter } from 'next/router'; import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { openModal } from 'src/components/modals/Modal'; import { ModalInterestLinkedOut } from 'src/components/modals/Modal/ModalGeneric/StepperModal/ModalInterestLinkedOut'; import { AssociationEntourage, Partners } from 'src/components/partials'; @@ -7,7 +8,7 @@ import { PageType, ChildrenType, } from 'src/components/partials/Footer/Footer.type'; -import { Grid, Section, SimpleLink, Icon, Button } from 'src/components/utils'; +import { Grid, Section, SimpleLink, Button } from 'src/components/utils'; import { EXTERNAL_LINKS } from 'src/constants'; import { GA_TAGS } from 'src/constants/tags'; import { gaEvent } from 'src/lib/gtag'; @@ -207,7 +208,8 @@ const pages: PageType[] = [ style="primary" className="uk-margin-medium-top" > - Espace coach & candidat + Espace coach & candidat  + ), }, diff --git a/src/components/partials/ImageTitle/ImageTitleComponent.js b/src/components/partials/ImageTitle/ImageTitleComponent.js index 798620530..0c9be5770 100644 --- a/src/components/partials/ImageTitle/ImageTitleComponent.js +++ b/src/components/partials/ImageTitle/ImageTitleComponent.js @@ -1,6 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; -import { Button, Icon } from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { Button } from 'src/components/utils'; import { addPrefix } from 'src/utils'; export const ImageTitleContent = ({ title, text, img, cta }) => { @@ -42,7 +43,7 @@ export const ImageTitleContent = ({ title, text, img, cta }) => { dataTestId={cta.dataTest} > {cta.label}  - +
    )} diff --git a/src/components/partials/ImageTitleNew/ImageTitle.tsx b/src/components/partials/ImageTitleNew/ImageTitle.tsx index 7caae50aa..c709c1b8d 100644 --- a/src/components/partials/ImageTitleNew/ImageTitle.tsx +++ b/src/components/partials/ImageTitleNew/ImageTitle.tsx @@ -1,4 +1,3 @@ -import { StaticImageData } from 'next/image'; import React from 'react'; import { StyledImageTitle } from 'src/components/partials/ImageTitleNew/ImageTitle.styles'; import { Container, Button, BackgroundImage } from 'src/components/utils'; @@ -6,6 +5,24 @@ import { H1 } from 'src/components/utils/Headings'; import { UIKIT_BUTTON_STYLES_SPEC } from 'src/components/variables'; import { useIsDesktop } from 'src/hooks/utils'; +interface CTAProps { + onClick: () => void; + label: string; + href?: string; + className: UIKIT_BUTTON_STYLES_SPEC; + isExternal?: boolean; + newTab?: boolean; + dataTest: string; +} + +interface ImageTitleProps { + title: string; + description: string; + img: string; + imgMobile?: string; + alt?: string; + cta?: CTAProps | CTAProps[]; +} export const ImageTitle = ({ title, description, @@ -13,22 +30,7 @@ export const ImageTitle = ({ imgMobile, alt, cta, -}: { - title: string; - description: string; - img: StaticImageData; - imgMobile?: StaticImageData; - alt?: string; - cta?: { - onClick: () => void; - label: string; - href: string; - className: UIKIT_BUTTON_STYLES_SPEC; - isExternal: boolean; - newTab: boolean; - dataTest: string; - }; -}) => { +}: ImageTitleProps) => { const isDesktop = useIsDesktop(); return ( @@ -49,7 +51,7 @@ export const ImageTitle = ({

    {description}

    - {cta && ( + {cta && !Array.isArray(cta) && ( + ); + })} diff --git a/src/components/partials/LandingPagePartial.tsx b/src/components/partials/LandingPagePartial.tsx index 6fc0f46ff..5d27a16fb 100644 --- a/src/components/partials/LandingPagePartial.tsx +++ b/src/components/partials/LandingPagePartial.tsx @@ -21,12 +21,6 @@ export const LandingPagePartial = () => { >
    - {/* LinkedOut by Entourage */}

    { qui n'en ont pas

    - {/*
    - - - -
    */}
    diff --git a/src/components/partials/MultipleCTA.tsx b/src/components/partials/MultipleCTA.tsx index 922926a22..e25d8126f 100644 --- a/src/components/partials/MultipleCTA.tsx +++ b/src/components/partials/MultipleCTA.tsx @@ -1,6 +1,7 @@ import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { UIKIT_BUTTON_SIZES } from '../variables'; -import { Button, Img, Grid, Icon } from 'src/components/utils'; +import { Button, Img, Grid } from 'src/components/utils'; interface MultipleCTAProps { showNumbers?: boolean; @@ -57,10 +58,9 @@ export const MultipleCTA = ({
    )} @@ -124,7 +124,7 @@ export const MultipleCTA = ({ > {item.button.label}   - +
    )} diff --git a/src/components/partials/Partners.tsx b/src/components/partials/Partners.tsx index e38b8e20f..7a6e4b724 100644 --- a/src/components/partials/Partners.tsx +++ b/src/components/partials/Partners.tsx @@ -1,6 +1,7 @@ import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { LogoList } from 'src/components/partials/LogoList'; -import { Background, Section, Icon } from 'src/components/utils'; +import { Background, Section } from 'src/components/utils'; import { Button } from 'src/components/utils/Button'; import { PARTNERS } from 'src/constants/partners'; @@ -54,7 +55,7 @@ export const Partners = ({
    diff --git a/src/components/partials/PartnersMap.js b/src/components/partials/PartnersMap.js deleted file mode 100644 index cfd522a96..000000000 --- a/src/components/partials/PartnersMap.js +++ /dev/null @@ -1,480 +0,0 @@ -import { GoogleApiWrapper, InfoWindow, Map, Marker } from 'google-maps-react'; -import PropTypes from 'prop-types'; -import React, { useState } from 'react'; -import { SimpleLink, Icon } from 'src/components/utils'; - -const partnersPlaces = [ - { - title: 'Mediapole', - lat: 48.606821, - lng: 2.3005192, - contactName: 'Catherine YVELISE', - contactFunction: 'Coach emploi', - contactNumber: '0637757809', - contactMail: 'yvelise.catherine@groupevitaminet.com', - address: 'Gare de Brétigny-sur-Orge, 91220 Bretigny-sur-Orge', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus 77', - lat: 48.8535246, - lng: 2.7643001, - contactName: 'Catherine YVELISE', - contactFunction: 'Coach emploi', - contactNumber: '0637757809', - contactMail: 'yvelise.catherine@groupevitaminet.com', - address: "14, avenue de l'Europe, 77144 Montevrain", - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 50.69133, - lng: 3.18253, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: 'Tour Blériot, 69 Rue Jules WATTEEW, 59100 ROUBAIX', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Envie Nord', - lat: 50.72535, - lng: 3.14692, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '37 Rue Jean Froissart, 59200 TOURCOING', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Vitinser', - lat: 50.77968, - lng: 3.10505, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '230, rue de la Lys 59250 HALLUIN', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Solutis Nord', - lat: 50.45099, - lng: 3.4118, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '215, rue du Marillon 59230 SAINT AMAND LES EAUX', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Le Grenier', - lat: 50.56195, - lng: 3.03894, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '46, route de Lille 59113 SECLIN', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Le Grenier', - lat: 50.562961, - lng: 2.8629111, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '601, rue du faulx 59274 MARQUILLIES', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 50.4959774, - lng: 2.9625709, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '117, rue Anne Franck 62220 CARVIN', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 50.397363, - lng: 3.101444, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: - "709, rue Jean Perrin - Hôtel d'Entreprises de Douai Dorignies 59500 DOUAI", - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Soluval', - lat: 50.3352322, - lng: 3.238691, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '4, rue des Frères Faches 59580 ANICHE', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Envie Nord', - lat: 50.3945529, - lng: 3.4791842, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '19, rue du cimetière 59590 RAIMES', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 50.3628727, - lng: 3.5208385, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '40-42, rue Hon Hon 59300 VALENCIENNES', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 50.2841826, - lng: 3.9402437, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: "49, rue de l'égalité ZI Petite Savate 59600 MAUBEUGE", - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'La Ferme des Jésuites', - lat: 51.0116846, - lng: 2.268134, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '283 rue de Quenez 59279 MARDYCK LOON PLAGE', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Envie Nord', - lat: 49.9059515, - lng: 2.2754966, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '21, rue Alfred Catel 80000 AMIENS', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Janus', - lat: 49.7730384, - lng: 4.7205225, - contactName: "Florence D'AYER", - contactFunction: 'Responsable emploi', - contactNumber: '0320617070', - contactMail: 'florence.dayer@groupevitaminet.com', - address: '16, rue du petit bois 08000 CHARLEVILLE MEZIERES', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Foyer Notre-Dame des sans-abri', - lat: 45.7633014, - lng: 4.9364005, - contactName: 'Maryline MACCHI', - contactNumber: '0618807852', - contactFunction: 'Chargée de Partenariats Emploi', - contactMail: 'mmacchi@cvgce.org', - address: '12 Rue Emile Zola, 69150 Décines-Charpieu', - link: 'https://convergence-france.org/', - }, - { - title: 'Armée du salut', - lat: 45.773894, - lng: 4.9130243, - contactName: 'Maryline MACCHI', - contactNumber: '0618807852', - contactFunction: 'Chargée de Partenariats Emploi', - contactMail: 'mmacchi@cvgce.org', - address: '2 Rue Stalingrad, 69120 Vaulx-en-Velin', - link: 'https://convergence-france.org/', - }, - { - title: 'Le grenier de Lahso', - lat: 45.7618994, - lng: 4.8621717, - contactName: 'Maryline MACCHI', - contactNumber: '0618807852', - contactFunction: 'Chargée de Partenariats Emploi', - contactMail: 'mmacchi@cvgce.org', - address: '24 Rue Riboud, 69003 Lyon', - link: 'https://convergence-france.org/', - }, - { - title: 'Ménage et Propreté', - lat: 48.9223279, - lng: 2.2091179, - contactName: 'Catherine YVELISE', - contactFunction: 'Coach emploi', - contactNumber: '0637757809', - contactMail: 'yvelise.catherine@groupevitaminet.com', - address: 'Rue Emile Zola, 95870 Bezons', - link: 'https://www.groupevitaminet.com/', - }, - { - title: 'Ares Service Seine et Marne (77)', - lat: 48.6398925, - lng: 2.5720423, - contactName: 'Youssouf ALI', - contactFunction: 'Chargé de projet emploi', - contactNumber: '0635313119', - contactMail: 'partenaire-emploi@ares-association.fr', - address: "42 Rue de l'Innovation, 77550 Moissy-Cramayel", - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: 'Ares Service Val de Marne (94)', - lat: 48.7828641, - lng: 2.5042718, - contactName: 'Myriam BITRAN', - contactFunction: 'Chargée de mission emploi', - contactNumber: '0609518528', - contactMail: 'partenaire-emploi@ares-association.fr', - address: '73 Rue du Moulin Bateau, 94380 Bonneuil-sur-Marne', - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: 'Atelier sans Frontière', - lat: 48.7828641, - lng: 2.5042718, - contactName: 'Xénia NEDELCOUX', - contactFunction: 'Cheffe de projets emploi', - contactNumber: '0776195638', - contactMail: 'partenaire-emploi@ares-association.fr', - address: '73 Rue du Moulin Bateau, 94380 Bonneuil-sur-Marne', - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: "Log'ins Ile de France", - lat: 48.5882379, - lng: 2.4408674, - contactName: 'Valérie DE FOURNOUX', - contactFunction: 'Cheffe de projets emploi', - contactNumber: '0634310152', - contactMail: 'partenaire-emploi@ares-association.fr', - address: 'Rue des 44 Arpents, 91100 Villabé', - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: "Log'ins Auvergne Rhône Alpes", - lat: 45.8428954, - lng: 5.2778809, - contactName: 'Valérie DE FOURNOUX', - contactFunction: 'Cheffe de projets emploi', - contactNumber: '0634310152', - contactMail: 'partenaire-emploi@ares-association.fr', - address: - 'Allée des peupliers - Bâtiment C – Zone Distripole 01150 SAINT-VULBAS', - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: 'Arescoop', - lat: 45.1880604, - lng: -1.0426095, - contactName: 'Frédéric CHAOUNI', - contactNumber: '0661408032', - contactMail: 'partenaire-emploi@ares-association.fr', - address: '3 rue de l’Industrie 33990 Hourtin', - link: 'https://www.groupeares.fr/notre-groupe/', - }, - { - title: 'ASBL', - lat: 47.1837448, - lng: -1.4555582, - address: '3, allée du Cap Horn, 44120 Vertou', - contactName: 'Marion MESSAGÉ', - contactFunction: 'Coordinatrice', - contactNumber: '0608862243', - contactMail: 'mmessage@cvgce.org', - link: 'https://asbl44.com', - }, - { - title: 'Océan', - lat: 47.2249155, - lng: -1.6429736, - address: '15, rue Gustave Eiffel, 44800 Saint-Herblain', - contactName: 'Marion MESSAGÉ', - contactFunction: 'Coordinatrice', - contactNumber: '0608862243', - contactMail: 'mmessage@cvgce.org', - link: 'https://ocean-insertion-44.org/', - }, - { - title: "Trajet – Atelier Bara'Mel", - lat: 47.2576057, - lng: -1.6565575, - address: '9, route de Brimberne, 44880 Sautron', - contactName: 'Marion MESSAGÉ', - contactFunction: 'Coordinatrice', - contactNumber: '0608862243', - contactMail: 'mmessage@cvgce.org', - link: 'https://asso-trajet.fr/', - }, - { - title: 'Emmaüs Mundo', - lat: 48.6314679, - lng: 7.7161878, - address: '4, Rue du Général Rapp, 67450 Mundolsheim', - contactName: 'Isabelle ITIC', - contactFunction: 'Chargée de Partenariats Emploi', - contactNumber: '0609475489', - contactMail: 'iitic@cvgce.org', - link: 'https://emmausmundo.wordpress.com/', - }, - { - title: 'Joffre', - lat: 48.5568142, - lng: 7.653349, - address: 'Route de Lingolsheim, 67810 Holtzheim', - contactName: 'Isabelle ITIC', - contactNumber: '0609475489', - contactFunction: 'Chargée de Partenariats Emploi', - contactMail: 'iitic@cvgce.org', - link: 'https://www.ursiea.org/index.php/structures/ateliers_chantiers_insertion/206', - }, - { - title: 'Les jardins de la montagne verte', - lat: 48.5790226, - lng: 7.7200782, - address: '5, Avenue du Cimetière, 67200 Strasbourg', - contactName: 'Isabelle ITIC', - contactNumber: '0609475489', - contactFunction: 'Chargée de Partenariats Emploi', - contactMail: 'iitic@cvgce.org', - link: 'https://www.jardins-montagne-verte.com/', - }, -]; - -const buildGMapsLink = (address) => { - return `https://maps.google.com/?q=${address}`; -}; -const buildEmailLink = (email) => { - return `mailto:${email}`; -}; - -const FRANCE_CENTER_COORDINATES = { lat: 46.71109, lng: 1.7191036 }; - -const PartnersMapContent = ({ google }) => { - const [clickedMarker, setClickedMarker] = useState(null); - - const getPartnerPlaceInfo = (infoKey) => { - const info = clickedMarker && partnersPlaces[clickedMarker.id][infoKey]; - return info || ''; - }; - - return ( - - {partnersPlaces.map((partner, index) => { - return ( - { - return setClickedMarker(marker); - }} - /> - ); - })} - { - return setClickedMarker(null); - }} - > -
    -

    - - {getPartnerPlaceInfo('title')} - -

    -

    - - - {getPartnerPlaceInfo('contactName')},  - {getPartnerPlaceInfo('contactFunction').toLowerCase()} - -

    -

    - - - {getPartnerPlaceInfo('contactNumber')} - -

    -

    - - - {getPartnerPlaceInfo('contactMail')} - -

    -

    - - - {getPartnerPlaceInfo('address')} - -

    -
    -
    -
    - ); -}; - -PartnersMapContent.propTypes = { - google: PropTypes.shape({}).isRequired, -}; - -export const PartnersMap = GoogleApiWrapper({ - apiKey: process.env.GOOGLE_MAPS_API_KEY, -})(PartnersMapContent); diff --git a/src/components/partials/PartnersNew/Partners.styles.ts b/src/components/partials/PartnersNew/Partners.styles.ts index 35cb27554..b6a308857 100644 --- a/src/components/partials/PartnersNew/Partners.styles.ts +++ b/src/components/partials/PartnersNew/Partners.styles.ts @@ -4,6 +4,7 @@ import { COLORS, BREAKPOINTS } from 'src/constants/styles'; export const StyledPartners = styled.div` padding: 40px 0; border-bottom: 0.5px solid ${COLORS}; + .logos-container { display: flex; flex-direction: row; @@ -15,22 +16,20 @@ export const StyledPartners = styled.div` @media screen and (max-width: ${BREAKPOINTS.desktop - 1}px) { margin: 20px 0 20px; } + > div { - margin: 0 30px; - margin-bottom: 20px; + margin: 0 30px 20px; position: relative; display: flex; justify-content: center; + img { - max-height: 70px; height: 100%; } + @media screen and (max-width: ${BREAKPOINTS.desktop - 1}px) { width: 100%; margin-bottom: 30px; - img { - max-height: 50px; - } } } } diff --git a/src/components/partials/PartnersNew/Partners.tsx b/src/components/partials/PartnersNew/Partners.tsx index 6d333cb17..19169a547 100644 --- a/src/components/partials/PartnersNew/Partners.tsx +++ b/src/components/partials/PartnersNew/Partners.tsx @@ -1,24 +1,8 @@ -import Image from 'next/image'; import React from 'react'; -import CarrefourLogo from 'public/static/img/partners/carrefour/logo.png'; -import DecathlonLogo from 'public/static/img/partners/decathlon/logo.png'; -import JCDecauxLogo from 'public/static/img/partners/jcdecaux/logo.png'; -import LeRoyMerlinLogo from 'public/static/img/partners/leroymerlin/logo.png'; -import ManoManoLogo from 'public/static/img/partners/manomano/logo.png'; -import MurfyLogo from 'public/static/img/partners/murfy/logo.png'; -import { Button, Section } from 'src/components/utils'; +import { Button, Img, Section } from 'src/components/utils'; import { H2 } from 'src/components/utils/Headings'; import { StyledPartners } from './Partners.styles'; -/* const partnersToShow = [ - 'leroymerlin', - 'manomano', - 'murfy', - 'carrefour', - 'decathlon', - 'jcdecaux', -]; */ - export const Partners = () => { return ( @@ -31,45 +15,50 @@ export const Partners = () => { /> */}
    - leroymerlin
    - manomano
    - + murfy
    - carrefour
    - decathlon
    - jcdecaux
    diff --git a/src/components/partials/Reviews.tsx b/src/components/partials/Reviews.tsx index ae64d8286..f4f4a1128 100644 --- a/src/components/partials/Reviews.tsx +++ b/src/components/partials/Reviews.tsx @@ -4,11 +4,11 @@ import { Img, Section, Grid } from 'src/components/utils'; interface ReviewsProps { reviews: { author: string; - authorStatus: string; - company: string; - industry: string; - companyInfo: string; - review: string; + authorStatus?: string; + company?: string; + industry?: string; + companyInfo?: string; + review: string | JSX.Element; image: string; }[]; title: string | JSX.Element | JSX.Element[]; @@ -64,7 +64,9 @@ export const Reviews = ({ reviews, title }: ReviewsProps) => {

    )}

    - {company} + {company && ( + {company} + )} {industry && , {industry}} {companyInfo && ( <> diff --git a/src/components/partials/SharePartial/SharePartial.tsx b/src/components/partials/SharePartial/SharePartial.tsx index fc1108925..ba06fe75e 100644 --- a/src/components/partials/SharePartial/SharePartial.tsx +++ b/src/components/partials/SharePartial/SharePartial.tsx @@ -1,11 +1,11 @@ import { useRouter } from 'next/router'; import React from 'react'; import { v4 as uuid } from 'uuid'; -import FacebookIcon from 'public/static/img/icons/facebook.svg'; -import InstaIcon from 'public/static/img/icons/instagram.svg'; -import LinkedInIcon from 'public/static/img/icons/linked-in.svg'; -import TwitterIcon from 'public/static/img/icons/twitter.svg'; -import YoutubeIcon from 'public/static/img/icons/youtube.svg'; +import FacebookIcon from 'assets/icons/facebook.svg'; +import InstaIcon from 'assets/icons/instagram.svg'; +import LinkedInIcon from 'assets/icons/linked-in.svg'; +import TwitterIcon from 'assets/icons/twitter.svg'; +import YoutubeIcon from 'assets/icons/youtube.svg'; import { StyledShareButton } from 'src/components/partials/SharePartial/SharePartial.styles'; import { Grid } from 'src/components/utils'; import { GA_TAGS } from 'src/constants/tags'; diff --git a/src/components/partials/SimpleSection.tsx b/src/components/partials/SimpleSection.tsx index 2091ec9a5..501ae49e4 100644 --- a/src/components/partials/SimpleSection.tsx +++ b/src/components/partials/SimpleSection.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { Button, Section, Icon } from 'src/components/utils'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; +import { Button, Section } from 'src/components/utils'; import { UIKIT_STYLES } from 'src/components/variables'; interface SimpleSectionProps { @@ -58,7 +59,8 @@ export const SimpleSection = ({ toggle={button.modal} onClick={button.onClick} > - {button.label} + {button.label}  + )} {children} diff --git a/src/components/partials/Timeline.tsx b/src/components/partials/Timeline.tsx index 021ab607a..d6b4d18dc 100644 --- a/src/components/partials/Timeline.tsx +++ b/src/components/partials/Timeline.tsx @@ -29,13 +29,9 @@ export const Timeline = ({ items }: TimeLineProps) => {

    {index + 1}
    - {text} +
    + {text} +
    {text}
    @@ -49,13 +45,9 @@ export const Timeline = ({ items }: TimeLineProps) => { {index + 1}
    - {text} +
    + {text} +
    {text}
    diff --git a/src/components/partials/Travailler/Participer/Participer.tsx b/src/components/partials/Travailler/Participer/Participer.tsx index 0e3f4a1f3..df15980a1 100644 --- a/src/components/partials/Travailler/Participer/Participer.tsx +++ b/src/components/partials/Travailler/Participer/Participer.tsx @@ -1,7 +1,5 @@ -import Image from 'next/image'; import React from 'react'; -import ImgSrc from 'public/static/img/travailler-participer.jpg'; -import { Button, Section } from 'src/components/utils'; +import { Button, Img, Section } from 'src/components/utils'; import { H2, H6 } from 'src/components/utils/Headings'; import { CheckListElement as CheckList } from 'src/components/utils/Lists'; import { useIsDesktop } from 'src/hooks/utils/usePlatforms'; @@ -15,11 +13,9 @@ export const Participer = ({ cta }: { cta: (label: string) => void }) => { {isDesktop && (
    - Binôme coach et candidat LinkedOut
    @@ -32,11 +28,9 @@ export const Participer = ({ cta }: { cta: (label: string) => void }) => {

    {!isDesktop && (
    - Binôme coach et candidat LinkedOut
    diff --git a/src/components/partials/Travailler/Rejoindre/Rejoindre.tsx b/src/components/partials/Travailler/Rejoindre/Rejoindre.tsx index db7d6eea9..fa0ffb4b8 100644 --- a/src/components/partials/Travailler/Rejoindre/Rejoindre.tsx +++ b/src/components/partials/Travailler/Rejoindre/Rejoindre.tsx @@ -1,8 +1,6 @@ -import Image from 'next/image'; import React from 'react'; -import ImgSrc from 'public/static/img/travailler-rejoindre.jpg'; import { StyledRejoindre } from 'src/components/partials/Travailler/Rejoindre/Rejoindre.styles'; -import { Section, Button } from 'src/components/utils'; +import { Section, Button, Img } from 'src/components/utils'; import { H2, H6 } from 'src/components/utils/Headings'; import { BulletListElement as BulletList } from 'src/components/utils/Lists'; @@ -51,11 +49,9 @@ export const Rejoindre = ({ cta }: { cta: (label: string) => void }) => {
    - Communauté LinkedOut au départ de la route du rhum
    diff --git a/src/components/utils/BackLink/BackLink.styles.ts b/src/components/utils/BackLink/BackLink.styles.ts index 11771c518..0194e35c2 100644 --- a/src/components/utils/BackLink/BackLink.styles.ts +++ b/src/components/utils/BackLink/BackLink.styles.ts @@ -10,6 +10,12 @@ export const StyledBackLink = styled.a` &:visited { color: ${COLORS.darkGrayFont} !important; } + &:hover { + color: ${COLORS.primaryOrange} !important; + svg { + fill: ${COLORS.primaryOrange} !important; + } + } svg { width: 8px; fill: ${COLORS.darkGrayFont}; diff --git a/src/components/utils/BackLink/BackLink.tsx b/src/components/utils/BackLink/BackLink.tsx index 9c5ee8e6c..08683a453 100644 --- a/src/components/utils/BackLink/BackLink.tsx +++ b/src/components/utils/BackLink/BackLink.tsx @@ -1,6 +1,6 @@ import Link from 'next/link'; import React from 'react'; -import ChevronLeftIcon from 'assets/custom/icons/chevron-left.svg'; +import ChevronLeftIcon from 'assets/icons/chevron-left.svg'; import { StyledBackLink } from './BackLink.styles'; interface BackLinkProps { @@ -16,7 +16,7 @@ export function BackLink({ label, url }: BackLinkProps) { return ( - +  {label} diff --git a/src/components/utils/BackToTop/BackToTop.styles.ts b/src/components/utils/BackToTop/BackToTop.styles.ts index d0673932a..4a408b0eb 100644 --- a/src/components/utils/BackToTop/BackToTop.styles.ts +++ b/src/components/utils/BackToTop/BackToTop.styles.ts @@ -18,14 +18,14 @@ export const StyledBackToTop = styled.button` display: block; opacity: 1; } - span { + svg { color: white; transition: 0.1s ease-in-out; } &:hover { background-color: ${COLORS.hoverOrange}; cursor: pointer; - span { + svg { color: ${COLORS.primaryOrange}; } } diff --git a/src/components/utils/BackToTop/BackToTop.tsx b/src/components/utils/BackToTop/BackToTop.tsx index 7ecce1ad0..14015cbd8 100644 --- a/src/components/utils/BackToTop/BackToTop.tsx +++ b/src/components/utils/BackToTop/BackToTop.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; +import ChevronUpIcon from 'assets/icons/chevron-up.svg'; import { StyledBackToTop } from 'src/components/utils/BackToTop/BackToTop.styles'; -import { Icon } from 'src/components/utils/Icon'; import { isSSR } from 'src/utils/isSSR'; export const BackToTop = () => { @@ -33,7 +33,7 @@ export const BackToTop = () => { }; return ( - + ); }; diff --git a/src/components/utils/BackgroundImage/BackgroundImage.tsx b/src/components/utils/BackgroundImage/BackgroundImage.tsx index e83058325..7157d4e0e 100644 --- a/src/components/utils/BackgroundImage/BackgroundImage.tsx +++ b/src/components/utils/BackgroundImage/BackgroundImage.tsx @@ -1,13 +1,13 @@ -import Image, { StaticImageData } from 'next/image'; import React from 'react'; import { StyledBackground } from 'src/components/utils/BackgroundImage/BackgroundImage.styles'; +import { Img } from 'src/components/utils/Img'; import { useIsDesktop } from 'src/hooks/utils'; interface BackgroundImageProps { - img: string | StaticImageData; + img: string; + imgMobile: string; alt: string; children: React.ReactNode; - imgMobile: string | StaticImageData; mobileHeight?: number; isHero?: boolean; hasCta?: boolean; @@ -37,23 +37,7 @@ export const BackgroundImage = ({ >
    {children}
    - {isDesktop ? ( - {alt} - ) : ( - {alt} - )} + {alt}
    diff --git a/src/components/utils/Button/Button.styles.ts b/src/components/utils/Button/Button.styles.ts index a93ebb3f6..0e3450eea 100644 --- a/src/components/utils/Button/Button.styles.ts +++ b/src/components/utils/Button/Button.styles.ts @@ -21,10 +21,6 @@ export const StyledButton = styled.button` justify-content: center; padding: 11px 20px !important; - > svg { - margin-right: 8px; - } - &:hover { transition: 0.2s ease-in-out; } @@ -67,11 +63,11 @@ export const StyledButton = styled.button` return COLORS[props.color] || COLORS.primaryOrange; }} !important; - path { + /* path { fill: ${(props) => { - return COLORS[props.color] || COLORS.primaryOrange; - }} !important; - } + return COLORS[props.color] || COLORS.primaryOrange; + }} !important; + } */ border-radius: 5px; diff --git a/src/components/utils/Button/ButtonPost.tsx b/src/components/utils/Button/ButtonPost.tsx index dc95cfe27..1585a63e5 100644 --- a/src/components/utils/Button/ButtonPost.tsx +++ b/src/components/utils/Button/ButtonPost.tsx @@ -1,5 +1,5 @@ import React, { FormEvent, useState } from 'react'; -import { Button, Icon } from 'src/components/utils'; +import { Button } from 'src/components/utils'; import { UIKIT_BUTTON_STYLES_SPEC } from 'src/components/variables'; import { StyledButtonPostContainer } from './ButtonPost.styles'; @@ -8,7 +8,7 @@ interface ButtonPostProps { color?: string; action?: (event?: FormEvent) => Promise; style?: '' | UIKIT_BUTTON_STYLES_SPEC; - icon?: string; + icon?: JSX.Element; disabled?: boolean; isLoadingOverride?: boolean; dataTestId?: string; @@ -45,7 +45,7 @@ export const ButtonPost = ({ {loading || isLoadingOverride ? (
    ) : ( - icon && + icon && <> {icon} )} diff --git a/src/components/utils/ButtonIcon.tsx b/src/components/utils/ButtonIcon.tsx deleted file mode 100644 index a8b9a6981..000000000 --- a/src/components/utils/ButtonIcon.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react'; -import { Icon } from 'src/components/utils/Icon'; - -interface ButtonIconProps { - name: string; - tooltip?: string; - onClick?: () => void; - className?: string; - href?: string; - ratio?: number; - style?: React.CSSProperties; - dataTestId?: string; - newTab?: boolean; -} - -export const ButtonIcon = ({ - name, - onClick, - className, - href, - ratio, - tooltip, - style, - dataTestId, - newTab, -}: ButtonIconProps) => { - return ( - - - - ); -}; - -ButtonIcon.defaultProps = { - href: null, - tooltip: null, - className: null, - style: {}, - ratio: 1.5, - onClick: null, - dataTestId: '', -}; diff --git a/src/components/utils/ButtonIcon/ButtonIcon.styles.ts b/src/components/utils/ButtonIcon/ButtonIcon.styles.ts new file mode 100644 index 000000000..bc0f5be1f --- /dev/null +++ b/src/components/utils/ButtonIcon/ButtonIcon.styles.ts @@ -0,0 +1,13 @@ +import styled from 'styled-components'; +import { COLORS } from 'src/constants/styles'; + +export const StyledButtonIcon = styled.a` + color: ${COLORS.black}; + display: flex; + align-items: center; + justify-content: center; + + &:hover { + // opacity: 0.6; + } +`; diff --git a/src/components/utils/ButtonIcon/ButtonIcon.tsx b/src/components/utils/ButtonIcon/ButtonIcon.tsx new file mode 100644 index 000000000..a1be63782 --- /dev/null +++ b/src/components/utils/ButtonIcon/ButtonIcon.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { StyledButtonIcon } from './ButtonIcon.styles'; + +interface ButtonIconProps { + icon: JSX.Element; + tooltip?: string; + onClick?: () => void; + href?: string; + dataTestId?: string; + newTab?: boolean; +} + +export const ButtonIcon = ({ + icon, + onClick, + href, + tooltip, + dataTestId, + newTab, +}: ButtonIconProps) => { + return ( + + {icon} + + ); +}; diff --git a/src/components/utils/ButtonIcon/index.ts b/src/components/utils/ButtonIcon/index.ts new file mode 100644 index 000000000..d016c203e --- /dev/null +++ b/src/components/utils/ButtonIcon/index.ts @@ -0,0 +1 @@ +export * from './ButtonIcon'; diff --git a/src/components/utils/Carousel.tsx b/src/components/utils/Carousel.tsx index a85b56d63..c3a1cafbf 100644 --- a/src/components/utils/Carousel.tsx +++ b/src/components/utils/Carousel.tsx @@ -1,6 +1,7 @@ import { useRouter } from 'next/router'; import React from 'react'; -import { Icon } from 'src/components/utils/Icon'; +import ChevronLeftIcon from 'assets/icons/chevron-left.svg'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { GA_TAGS } from 'src/constants/tags'; import { gaEvent } from 'src/lib/gtag'; @@ -63,11 +64,7 @@ export const Carousel = ({ } }} > - + - +
    @@ -97,7 +90,7 @@ export const Carousel = ({ } }} > - + - +
    diff --git a/src/components/utils/CarouselSwiper/CarouselSwiper.styles.tsx b/src/components/utils/CarouselSwiper/CarouselSwiper.styles.tsx index 36e9f0097..7ba93bcd0 100644 --- a/src/components/utils/CarouselSwiper/CarouselSwiper.styles.tsx +++ b/src/components/utils/CarouselSwiper/CarouselSwiper.styles.tsx @@ -10,6 +10,8 @@ export const StyledSwiperSlide = styled(SwiperSlide)` `; export const StyledSwiperContainer = styled.div` + padding: 0 15px; + background-color: ${(props) => { return props.backgroundColor; }}; diff --git a/src/components/utils/Hamburger.tsx b/src/components/utils/Hamburger.tsx index 223371035..660fbbae2 100644 --- a/src/components/utils/Hamburger.tsx +++ b/src/components/utils/Hamburger.tsx @@ -1,44 +1,19 @@ import React from 'react'; import UIkit from 'uikit'; -import { ButtonIcon } from 'src/components/utils/ButtonIcon'; -import { UIKIT_SCREENS } from 'src/components/variables'; +import MenuIcon from 'assets/icons/menu.svg'; +import { ButtonIcon } from 'src/components/utils/ButtonIcon/ButtonIcon'; interface HamburgerProps { - hidden?: UIKIT_SCREENS; - visible?: UIKIT_SCREENS; targetId: string; - light?: boolean; } -export const Hamburger = ({ - hidden, - targetId, - visible, - light, -}: HamburgerProps) => { - let classBuffer = ''; - if (hidden) classBuffer += `uk-hidden@${hidden}`; - if (visible) classBuffer += `uk-visible@${visible}`; +export const Hamburger = ({ targetId }: HamburgerProps) => { return ( { UIkit.offcanvas(`#${targetId}`).show(); }} - name="menu" + icon={} /> ); }; - -Hamburger.defaultProps = { - hidden: undefined, - visible: undefined, - light: false, -}; diff --git a/src/components/utils/Icon.tsx b/src/components/utils/Icon.tsx deleted file mode 100644 index 0106bf5bd..000000000 --- a/src/components/utils/Icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; - -interface IconProps { - name: string; - ratio?: number | string; - flip?: boolean; - className?: string; - id?: string; - style?: React.CSSProperties; -} - -export const Icon = ({ - id, - name, - className = '', - ratio = 1, - flip = false, - style = {}, -}: IconProps) => { - return ( - - ); -}; diff --git a/src/components/utils/Img.tsx b/src/components/utils/Img.tsx index 3880d469e..36dc02c96 100644 --- a/src/components/utils/Img.tsx +++ b/src/components/utils/Img.tsx @@ -1,52 +1,39 @@ -/* eslint-disable @next/next/no-img-element */ +import Image from 'next/image'; import React from 'react'; import { addPrefix } from 'src/utils'; interface ImgProps { src: string; alt: string; - width?: string; - height?: string; - className?: string; + width?: number; + height?: number; cover?: boolean; } -export const Img = ({ - src, - alt, - width, - height, - className, - cover, -}: ImgProps) => { +export const Img = ({ src, alt, width, height, cover = false }: ImgProps) => { if (cover) { return ( - {alt} + ); + } + if (width || height) { + return ( + {alt} ); } return ( - {alt} + {alt} ); }; - -Img.defaultProps = { - width: undefined, - height: undefined, - className: undefined, - cover: false, -}; diff --git a/src/components/utils/ImgProfile.tsx b/src/components/utils/ImgProfile.tsx index b76318ce5..53a271bf9 100644 --- a/src/components/utils/ImgProfile.tsx +++ b/src/components/utils/ImgProfile.tsx @@ -1,34 +1,62 @@ -import React from 'react'; -import { Img } from 'src/components/utils/Img'; +import React, { useContext, useEffect, useState } from 'react'; +import { UserWithUserCandidate } from 'src/api/types'; +import { CANDIDATE_USER_ROLES } from 'src/constants/users'; +import { UserContext } from 'src/store/UserProvider'; +import { isRoleIncluded } from 'src/utils/Finding'; +import { Img } from './Img'; interface ImgProfileProps { - src?: string; - alt?: string; - width?: string; - height?: string; - border?: 'circle' | 'pill' | 'rounded'; + user?: UserWithUserCandidate; + size?: number; } -export const ImgProfile = ({ - src, - alt, - width, - height, - border, -}: ImgProfileProps) => { +export const ImgProfile = ({ user, size = 40 }: ImgProfileProps) => { + const userFromContext = useContext(UserContext).user; + + const { firstName, role, candidat } = user || userFromContext; + const [urlImg, setUrlImg] = useState(null); + + useEffect(() => { + if ( + isRoleIncluded(CANDIDATE_USER_ROLES, role) && + candidat && + candidat.cvs + ) { + const latestCV = candidat.cvs.reduce( + (acc, curr) => { + return acc.version < curr.version ? curr : acc; + }, + { version: -1 } + ); + setUrlImg(latestCV.urlImg); + } + }, [candidat, role, user]); + return (
    - {alt} + {urlImg ? ( +
    + {`photo +
    + ) : ( + + {firstName.substr(0, 1)} + + )}
    ); }; -ImgProfile.defaultProps = { - src: '/static/img/arthur.jpg', - alt: '', - width: '80px', - height: '80px', - border: 'circle', -}; diff --git a/src/components/utils/Inputs/SelectSimple/SelectSimple.styles.ts b/src/components/utils/Inputs/SelectSimple/SelectSimple.styles.ts index a0f6c1572..025b7c61a 100644 --- a/src/components/utils/Inputs/SelectSimple/SelectSimple.styles.ts +++ b/src/components/utils/Inputs/SelectSimple/SelectSimple.styles.ts @@ -19,10 +19,8 @@ export const StyledSelectContainer = styled.div` &:hover { cursor: pointer; } - span { + svg { float: right; - height: 18px; - width: 18px; color: ${COLORS.primaryOrange}; } } diff --git a/src/components/utils/Inputs/SelectSimple/SelectSimple.tsx b/src/components/utils/Inputs/SelectSimple/SelectSimple.tsx index a2e251566..5d668778f 100644 --- a/src/components/utils/Inputs/SelectSimple/SelectSimple.tsx +++ b/src/components/utils/Inputs/SelectSimple/SelectSimple.tsx @@ -1,8 +1,8 @@ import React, { useEffect, useState } from 'react'; +import ChevronDownIcon from 'assets/icons/chevron-down.svg'; import { StyledInputLabel } from '../Inputs.styles'; import { CommonInputProps } from '../Inputs.types'; import { FieldErrorMessage } from 'src/components/forms/fields/FieldErrorMessage/FieldErrorMessage'; -import { Icon } from 'src/components/utils/Icon'; import { FilterConstant } from 'src/constants/utils'; import { useCloseOnClickOutsideComponent } from 'src/hooks/useCloseOnClickOutsideComponent'; import { StyledSelectContainer } from './SelectSimple.styles'; @@ -77,12 +77,12 @@ export function SelectSimple({ {showLabel || !title ? (
    {placeholder || 'Selectionnez dans la liste...'}{' '} - +
    ) : ( <> - + )} @@ -95,7 +95,7 @@ export function SelectSimple({ }} > {selectedOption.label} - + )} {optionsOpen && ( diff --git a/src/components/utils/Inputs/Selects/Selects.tsx b/src/components/utils/Inputs/Selects/Selects.tsx index d4daafe28..9cfda39c9 100644 --- a/src/components/utils/Inputs/Selects/Selects.tsx +++ b/src/components/utils/Inputs/Selects/Selects.tsx @@ -1,11 +1,12 @@ import React from 'react'; import { components } from 'react-select'; -import { Icon } from 'src/components/utils/Icon'; +import ChevronDownIcon from 'assets/icons/chevron-down.svg'; +import CloseIcon from 'assets/icons/close.svg'; export const DropdownIndicator = (props) => { return ( - + ); }; @@ -13,7 +14,7 @@ export const DropdownIndicator = (props) => { export const ClearIndicator = (props) => { return ( - + ); }; @@ -21,7 +22,7 @@ export const ClearIndicator = (props) => { export const MultiValueRemove = (props) => { return ( - + ); }; diff --git a/src/components/utils/Lists/CheckListElement.tsx b/src/components/utils/Lists/CheckListElement.tsx index 95cab432e..5f64f7ae1 100644 --- a/src/components/utils/Lists/CheckListElement.tsx +++ b/src/components/utils/Lists/CheckListElement.tsx @@ -1,10 +1,18 @@ import React from 'react'; -import { StyledCheckListElement } from 'src/components/utils/Lists/Lists.styles'; +import { + StyledCheckIcon, + StyledCheckListElement, +} from 'src/components/utils/Lists/Lists.styles'; export const CheckListElement = ({ children, }: { children: React.ReactNode; }) => { - return {children}; + return ( + + + {children} + + ); }; diff --git a/src/components/utils/Lists/Lists.styles.ts b/src/components/utils/Lists/Lists.styles.ts index c6a53ac8a..f4de8422f 100644 --- a/src/components/utils/Lists/Lists.styles.ts +++ b/src/components/utils/Lists/Lists.styles.ts @@ -1,4 +1,5 @@ import styled from 'styled-components'; +import CheckIcon from 'assets/icons/check.svg'; import { COLORS } from 'src/constants/styles'; export const StyledCheckListElement = styled.li` @@ -6,23 +7,22 @@ export const StyledCheckListElement = styled.li` position: relative; padding-left: 32px; margin-bottom: 40px; - &:before { - content: ''; - height: 10px; - width: 10px; - padding: 2px; - background: url('/static/img/icons/check.svg') no-repeat center - center/contain content-box, - ${COLORS.primaryOrange}; - position: absolute; - border-radius: 20px; - left: 0; - } + p { margin: 0; } `; +export const StyledCheckIcon = styled(CheckIcon)` + height: 14px; + width: 14px; + padding: 2px; + background-color: ${COLORS.primaryOrange}; + position: absolute; + border-radius: 14px; + left: 0; +`; + export const StyledBulletListElement = styled.li` list-style: none; position: relative; diff --git a/src/components/utils/Logo.tsx b/src/components/utils/Logo.tsx index 8ca1ef2e2..ffcb6b151 100644 --- a/src/components/utils/Logo.tsx +++ b/src/components/utils/Logo.tsx @@ -1,9 +1,8 @@ -import Image from 'next/image'; import React from 'react'; import { SimpleLink } from 'src/components/utils/SimpleLink'; import { GA_TAGS } from 'src/constants/tags'; import { gaEvent } from 'src/lib/gtag'; -import { addPrefix } from 'src/utils'; +import { Img } from './Img'; interface LogoProps { logoKey: string; @@ -23,19 +22,15 @@ export const Logo = ({ logoKey, link, bis }: LogoProps) => { key={logoKey} href={link} > - {logoKey} {bis && ( - {logoKey} { return COLORS[color] || COLORS.white; }}; - opacity: 0.5; + opacity: 0.6; display: flex; } @@ -45,7 +45,7 @@ export const StyledNavItem = styled.li` } & a:hover { - opacity: 0.5; + opacity: 0.6; } & .uk-navbar-dropdown-nav > li > a { diff --git a/src/components/utils/Navbar/Navbar.styles.tsx b/src/components/utils/Navbar/Navbar.styles.tsx index 56f050ccb..0e3715b62 100644 --- a/src/components/utils/Navbar/Navbar.styles.tsx +++ b/src/components/utils/Navbar/Navbar.styles.tsx @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import { COLORS } from 'src/constants/styles'; +import { COLORS, HEIGHTS } from 'src/constants/styles'; export const StyledNavbar = styled.nav` box-shadow: 0 4px 4px rgba(0, 0, 0, 0.05); @@ -16,6 +16,7 @@ export const StyledNavbar = styled.nav` display: flex; width: 100%; z-index: 1040; + height: ${HEIGHTS.HEADER}px; `; export const StyledCenterContainer = styled.div` diff --git a/src/components/utils/Navbar/NavbarLogo.tsx b/src/components/utils/Navbar/NavbarLogo.tsx index 66c7b2813..60b73e047 100644 --- a/src/components/utils/Navbar/NavbarLogo.tsx +++ b/src/components/utils/Navbar/NavbarLogo.tsx @@ -6,20 +6,14 @@ interface NavbarLogoProps { href: string; src: string; alt?: string; - style?: React.CSSProperties; } -export const NavbarLogo = ({ href, src, alt, style }: NavbarLogoProps) => { +export const NavbarLogo = ({ href, src, alt }: NavbarLogoProps) => { return ( -
    - - {alt} - -
    + + {alt} + ); }; diff --git a/src/components/utils/Table/Td/Td.styles.ts b/src/components/utils/Table/Td/Td.styles.ts index 8bf33e49e..ed49b2a54 100644 --- a/src/components/utils/Table/Td/Td.styles.ts +++ b/src/components/utils/Table/Td/Td.styles.ts @@ -25,9 +25,7 @@ export const StyledTd = styled.td` a { color: ${COLORS.black}; &:hover { - .bold { - color: ${COLORS.primaryOrange}; - } + color: ${COLORS.primaryOrange}; } } `; @@ -48,9 +46,7 @@ export const StyledTdMobile = styled.td` a { color: ${COLORS.black}; &:hover { - .bold { - color: ${COLORS.primaryOrange}; - } + color: ${COLORS.primaryOrange}; } } `; diff --git a/src/components/utils/index.ts b/src/components/utils/index.ts index fef2c8e94..f5938ee27 100644 --- a/src/components/utils/index.ts +++ b/src/components/utils/index.ts @@ -1,6 +1,6 @@ export * from './AnimatedList'; export * from './Background'; -export * from './ButtonIcon'; +export * from './ButtonIcon/ButtonIcon'; export * from './Card'; export * from './Grid'; export * from './Carousel'; @@ -21,5 +21,4 @@ export * from './Navbar/Nav'; export * from './Navbar'; export * from './Navbar/NavbarLogo'; export * from './Section'; -export * from './Icon'; export * from './Offcanvas'; diff --git a/src/constants/tags.ts b/src/constants/tags.ts index 636b3fa46..b862515f8 100644 --- a/src/constants/tags.ts +++ b/src/constants/tags.ts @@ -17,6 +17,9 @@ export const GA_TAGS = { PAGE_ENTREPRISES_CONTACTER_REFERENT_CLIC: { action: 'Page_Entreprises_Contacter_Referent_Clic', }, + PAGE_ENTREPRISES_PROPOSER_OFFRE_CLIC: { + action: 'Page_Entreprises_Proposer_Offre_Clic', + }, PAGE_ENTREPRISES_ENVOYER_CONTACT_REFERENT_CLIC: { action: 'Page_Entreprises_Envoyer_Contact_Referent_Clic', }, diff --git a/src/pages/404.js b/src/pages/404.js index 4c8fd656f..b6f693640 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -1,8 +1,9 @@ import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Layout } from 'src/components/Layout'; import { NewsletterPartial } from 'src/components/partials'; import { CVList } from 'src/components/partials/CV/CVList'; -import { Button, Grid, Section, SimpleLink, Icon } from 'src/components/utils'; +import { Button, Grid, Section, SimpleLink } from 'src/components/utils'; import { CV_FILTERS_DATA } from 'src/constants'; import { GA_TAGS } from 'src/constants/tags'; @@ -37,7 +38,8 @@ const Custom404 = () => { style="secondary" className="uk-margin-large-top" > - Voir tous les candidats + Voir tous les candidats  + diff --git a/src/pages/aider.tsx b/src/pages/aider.tsx index 0d149e472..798799b33 100644 --- a/src/pages/aider.tsx +++ b/src/pages/aider.tsx @@ -1,12 +1,10 @@ import React from 'react'; -import MainImg from 'public/static/img/aider-banner-desktop.jpg'; -import MainImgMobile from 'public/static/img/aider-banner-mobile.jpg'; import { Layout } from 'src/components/Layout'; import { NewsletterPartial, SharePartial } from 'src/components/partials'; -import { CoachContainer } from 'src/components/partials/Aider/CoachContainer'; -import { HelpCards } from 'src/components/partials/Aider/HelpCards'; -import { InfoContainer } from 'src/components/partials/Aider/InfoContainer'; +import { CoachContainer } from 'src/components/partials/Aider/CoachContainer/CoachContainer'; +import { HelpCards } from 'src/components/partials/Aider/HelpCards/HelpCards'; +import { InfoContainer } from 'src/components/partials/Aider/InfoContainer/InfoContainer'; import { ImageTitle } from 'src/components/partials/ImageTitleNew'; import { Grid, Section } from 'src/components/utils'; import { GA_TAGS } from 'src/constants/tags'; @@ -17,8 +15,8 @@ const Aider = () => { diff --git a/src/pages/backoffice/candidat/[candidateId]/suivi.tsx b/src/pages/backoffice/candidat/[candidateId]/suivi.tsx index 7f0eba29b..24f57229b 100644 --- a/src/pages/backoffice/candidat/[candidateId]/suivi.tsx +++ b/src/pages/backoffice/candidat/[candidateId]/suivi.tsx @@ -1,13 +1,14 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import UIkit from 'uikit'; +import HistoryIcon from 'assets/icons/history.svg'; import { Api } from 'src/api'; import { LayoutBackOffice } from 'src/components/backoffice/LayoutBackOffice'; import { LoadingScreen } from 'src/components/backoffice/LoadingScreen'; import { useCandidateId } from 'src/components/backoffice/opportunities/useCandidateId'; import { HeaderBackoffice } from 'src/components/headers/HeaderBackoffice'; import { Button, Grid, Section } from 'src/components/utils'; -import { Icon } from 'src/components/utils/Icon'; + import { TextArea } from 'src/components/utils/Inputs'; import { CANDIDATE_USER_ROLES, @@ -134,7 +135,7 @@ const Suivi = () => { }} disabled={value === userCandidat.note} > - + @@ -113,7 +115,7 @@ const CVPage = ({ cv, exists = false, router }: CVPageProps) => { metaDescription={sharedDescription} metaImage={ cv.urlImg - ? `${process.env.AWSS3_CDN_URL}${cv.urlImg.replace( + ? `${process.env.AWSS3_CDN_URL}/${cv.urlImg.replace( '.jpg', '.preview.jpg' )}` diff --git a/src/pages/cv/pdf/[id].tsx b/src/pages/cv/pdf/[id].tsx index 90aeadbf0..a8ac11cd2 100644 --- a/src/pages/cv/pdf/[id].tsx +++ b/src/pages/cv/pdf/[id].tsx @@ -35,7 +35,7 @@ const CVPDFPage = ({ cv, page, router }: CVPDFPageProps) => { metaDescription={cv.story} metaImage={ cv.urlImg - ? `${process.env.AWSS3_URL}${cv.urlImg.replace( + ? `${process.env.AWSS3_URL}/${cv.urlImg.replace( '.jpg', '.preview.jpg' )}` diff --git a/src/pages/entreprises/index.js b/src/pages/entreprises/index.tsx similarity index 83% rename from src/pages/entreprises/index.js rename to src/pages/entreprises/index.tsx index 85613e973..7e17024b0 100644 --- a/src/pages/entreprises/index.js +++ b/src/pages/entreprises/index.tsx @@ -1,10 +1,10 @@ -import PropTypes from 'prop-types'; import React from 'react'; -import TextLoop from 'react-text-loop'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Api } from 'src/api'; import { Layout } from 'src/components/Layout'; import { openModal } from 'src/components/modals/Modal'; import { CompanyContactModal } from 'src/components/modals/Modal/ModalGeneric/CompanyContactModal'; +import { PostPublicOfferModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; import { TaxModal } from 'src/components/modals/PopupModal/TaxModal'; import { LogoList, @@ -15,9 +15,9 @@ import { Timeline, } from 'src/components/partials'; import { CVList } from 'src/components/partials/CV/CVList'; -import { ImageTitle } from 'src/components/partials/ImageTitle'; +import { ImageTitle } from 'src/components/partials/ImageTitleNew'; import { NewsletterPartial } from 'src/components/partials/NewsletterPartial'; -import { Button, Section, AnimatedList, Icon } from 'src/components/utils'; +import { Button, Section, AnimatedList } from 'src/components/utils'; import { CV_FILTERS_DATA, STORAGE_KEYS } from 'src/constants'; import { PARTNERS } from 'src/constants/partners'; import { FB_TAGS, GA_TAGS, LINK_TAGS } from 'src/constants/tags'; @@ -29,25 +29,25 @@ import { linkEvent } from 'src/lib/lintrk'; const timeline = [ { text: 'Identifiez un besoin en recrutement', - icon: 'static/img/illustrations/loupe.png', + icon: '/static/img/illustrations/loupe.png', }, { text: 'Identifiez un candidat et déposez une offre', - icon: 'static/img/illustrations/approved.png', + icon: '/static/img/illustrations/approved.png', }, { text: 'Préparez la rencontre avec le candidat', - icon: 'static/img/illustrations/preparation.png', + icon: '/static/img/illustrations/preparation.png', }, { text: 'Rencontrez le candidat', - icon: 'static/img/illustrations/interview.png', + icon: '/static/img/illustrations/interview.png', }, { text: "Préparez l'intégration", - icon: 'static/img/illustrations/welcome.png', + icon: '/static/img/illustrations/welcome.png', }, - { text: "Suivez l'intégration", icon: 'static/img/illustrations/suivi.png' }, + { text: "Suivez l'intégration", icon: '/static/img/illustrations/suivi.png' }, ]; const numbers = [ @@ -69,12 +69,6 @@ const numbers = [ }, ]; -const titles = [ - 'recruter inclusif', - 'sensibiliser vos équipes', - "changer de regard sur l'inclusion", -]; - const reviews = [ { image: '/static/img/temoignage-entreprise-augustin-kenny.jpg', @@ -146,7 +140,7 @@ const reviews = [ }, ]; -const Entreprises = ({ nbPublishedCVs }) => { +const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => { useMount(() => { const taxModalClosed = localStorage.getItem(STORAGE_KEYS.TAX_MODAL_CLOSED); if (process.env.SHOW_POPUP === 'true' && !taxModalClosed) { @@ -159,51 +153,35 @@ const Entreprises = ({ nbPublishedCVs }) => { return ( - LinkedOut, le programme qui vous accompagne pour -
    - - - {titles.map((title, index) => { - return ( - - {title} - - ); - })} - - - {titles.map((title, index) => { - return ( - - {title} - - ); - })} - - - - } - text={ - - Notre objectif ? Vous permettre de créer les conditions d’un - recrutement inclusif réussi, au service de la transformation de - votre entreprise. - - } - cta={{ - dataTest: 'button-contact-company-header', - onClick: () => { - gaEvent(GA_TAGS.PAGE_ENTREPRISES_CONTACTER_REFERENT_CLIC); - fbEvent(FB_TAGS.COMPANY_CONTACT_OPEN); - linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); - openModal(); + img="/static/img/header_pic_hire.jpg" + title="LinkedOut, le programme qui vous accompagne pour changer de regard sur l'inclusion" + description="Notre objectif ? Vous permettre de créer les conditions d’un recrutement inclusif réussi, au service de la transformation de votre entreprise." + cta={[ + { + dataTest: 'button-contact-company-header', + onClick: () => { + gaEvent(GA_TAGS.PAGE_ENTREPRISES_CONTACTER_REFERENT_CLIC); + fbEvent(FB_TAGS.COMPANY_CONTACT_OPEN); + linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); + openModal(); + }, + className: 'custom-secondary', + label: 'Nous contacter', + }, + { + dataTest: 'button-offer-company-header', + className: 'custom-secondary-inverted', + isExternal: false, + newTab: false, + onClick: () => { + gaEvent(GA_TAGS.PAGE_ENTREPRISES_PROPOSER_OFFRE_CLIC); + fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_OPEN); + // linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); + openModal(); + }, + label: 'Créer une offre', }, - label: 'Nous contacter', - }} + ]} /> { style="secondary" > Nous contacter  - + } /> @@ -375,7 +353,8 @@ const Entreprises = ({ nbPublishedCVs }) => { href={{ pathname: '/candidats', query: { employed: false } }} style="secondary" > - Découvrir nos candidats + Découvrir nos candidats  +
    @@ -432,7 +411,7 @@ const Entreprises = ({ nbPublishedCVs }) => { className="uk-margin-small-top" > Nous contacter  - +
    @@ -456,12 +435,4 @@ Entreprises.getInitialProps = async () => { return { nbPublishedCVs: null }; }); }; - -Entreprises.propTypes = { - nbPublishedCVs: PropTypes.number, -}; - -Entreprises.defaultProps = { - nbPublishedCVs: undefined, -}; export default Entreprises; diff --git a/src/pages/entreprises/recruter-hors-linkedout.js b/src/pages/entreprises/recruter-hors-linkedout.js deleted file mode 100644 index d1cc2bb24..000000000 --- a/src/pages/entreprises/recruter-hors-linkedout.js +++ /dev/null @@ -1,79 +0,0 @@ -import React from 'react'; -import { Layout } from 'src/components/Layout'; -import { MultipleCTA } from 'src/components/partials'; -import { NewsletterPartial } from 'src/components/partials/NewsletterPartial'; -import { PartnersMap } from 'src/components/partials/PartnersMap'; -import { Section } from 'src/components/utils'; -import { EXTERNAL_LINKS } from 'src/constants'; -import { GA_TAGS } from 'src/constants/tags'; - -const RecruterHorsLinkedOut = () => { - return ( - -
    -

    - Recruter -  un candidat en précarité -

    -

    - Le programme LinkedOut est pour l’instant présent seulement en - Île-de-France, à Lille et à Lyon. -

    -

    - Dans les territoires où nous ne sommes pas présents, nous avons mis en - place des partenariats avec des acteurs de l’insertion qui recherchent - des opportunités d’emploi pour leurs candidats tout au long de - l’année. -

    -

    - Contactez-les de la part de LinkedOut, ils vous accueilleront à bras - ouverts ! -

    -

    - Contactez nos partenaires : -

    - -
    -
    - - Il existe d’autres façons d’agir avec nous. Découvrez toutes - les autres manières de vous engager aux côtés de - LinkedOut : -

    - ), - button: { - label: "S'engager", - href: '/entreprises#sengager', - }, - }, - { - title: 'Découvrez les clubs La France une chance', - text: ( -

    - Rejoignez d’autres entreprises engagées dans votre département - et découvrez des moyens d’agir localement : -

    - ), - button: { - label: 'Découvrir', - href: EXTERNAL_LINKS.FRANCE_UNE_CHANCE, - external: true, - }, - }, - ]} - /> -
    - -
    - ); -}; - -export default RecruterHorsLinkedOut; diff --git a/src/pages/orienter.js b/src/pages/orienter.js index d879a0551..6108c9f17 100644 --- a/src/pages/orienter.js +++ b/src/pages/orienter.js @@ -1,4 +1,5 @@ import React from 'react'; +import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Layout } from 'src/components/Layout'; import { openModal } from 'src/components/modals/Modal'; import { CandidateContactModal } from 'src/components/modals/Modal/ModalGeneric/CandidateContactModal'; @@ -11,7 +12,7 @@ import { Reviews, } from 'src/components/partials'; import { ImageTitle } from 'src/components/partials/ImageTitle'; -import { Section, AnimatedList, Icon } from 'src/components/utils'; +import { Section, AnimatedList } from 'src/components/utils'; import { Button } from 'src/components/utils/Button'; import { PARTNERS } from 'src/constants/partners'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; @@ -78,7 +79,7 @@ const Orienter = () => { return ( @@ -168,7 +169,7 @@ const Orienter = () => { }} > Inscrire un candidat  - +
    @@ -242,7 +243,7 @@ const Orienter = () => { }} > Inscrire un candidat  - + } /> @@ -290,7 +291,7 @@ const Orienter = () => { }} > Nous contacter  - +
    {/* @@ -319,7 +320,7 @@ const Orienter = () => { }} > Prendre rendez-vous  - + */}
    diff --git a/src/pages/partenaires.js b/src/pages/partenaires.js index 9ce125d8c..9045db409 100644 --- a/src/pages/partenaires.js +++ b/src/pages/partenaires.js @@ -144,16 +144,16 @@ const PartnerItem = ({
    {bis && ( )}
    @@ -185,13 +185,12 @@ const PartnerItem = ({

    )}
    -
    +
    @@ -209,13 +208,12 @@ const PartnerItem = ({
    )}
    -
    +
    diff --git a/src/pages/reset/[id]/[token].tsx b/src/pages/reset/[id]/[token].tsx index ce39448db..7d6134f92 100644 --- a/src/pages/reset/[id]/[token].tsx +++ b/src/pages/reset/[id]/[token].tsx @@ -1,11 +1,12 @@ import { useRouter } from 'next/router'; import React from 'react'; +import CloseIcon from 'assets/icons/close.svg'; import { Api } from 'src/api'; import { Layout } from 'src/components/Layout'; import { PasswordCriterias } from 'src/components/PasswordCriterias'; import { FormWithValidation } from 'src/components/forms/FormWithValidation'; import { formResetPassword } from 'src/components/forms/schemas/formResetPassword'; -import { Button, Section, Icon } from 'src/components/utils'; +import { Button, Section } from 'src/components/utils'; interface ResetPasswordPageProps { valid: boolean; @@ -58,7 +59,7 @@ const ResetPasswordPage = ({
    ) : (
    - +

    Ce lien ne semble pas valide. Veuillez contacter l'équipe LinkedOut. diff --git a/src/pages/reset/success.tsx b/src/pages/reset/success.tsx index cb2821d01..433c18fae 100644 --- a/src/pages/reset/success.tsx +++ b/src/pages/reset/success.tsx @@ -1,8 +1,8 @@ import { useRouter } from 'next/router'; import React from 'react'; +import CheckIcon from 'assets/icons/check.svg'; import { Layout } from 'src/components/Layout'; import { Button, Section } from 'src/components/utils'; -import { Icon } from 'src/components/utils/Icon'; const ResetSuccessPage = () => { const { @@ -19,7 +19,7 @@ const ResetSuccessPage = () => {

    - +

    Votre mot de passe a bien été{' '} {isCreation ? 'crée' : 'réinitialisé'}. diff --git a/src/pages/travailler.tsx b/src/pages/travailler.tsx index 1f38648e0..933180191 100644 --- a/src/pages/travailler.tsx +++ b/src/pages/travailler.tsx @@ -3,7 +3,6 @@ import moment from 'moment'; import React from 'react'; import UIkit from 'uikit'; -import MainImg from 'public/static/img/travailler-banner.jpg'; import { Api } from 'src/api'; import { Layout } from 'src/components/Layout'; import { formCandidateInscription } from 'src/components/forms/schemas/formCandidateInscription'; @@ -136,18 +135,15 @@ const Travailler = () => { { openModalInscription('Header'); }, className: 'custom-secondary-inverted', - isExternal: false, - newTab: false, dataTest: 'banner-cta', }} /> diff --git a/src/styles/dist/js/uikit-icons.js b/src/styles/dist/js/uikit-icons.js index 91866bc2a..f162d79b4 100644 --- a/src/styles/dist/js/uikit-icons.js +++ b/src/styles/dist/js/uikit-icons.js @@ -1,349 +1,169 @@ /*! UIkit 3.6.22 | https://www.getuikit.com | (c) 2014 - 2023 YOOtheme | MIT License */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - ? (module.exports = factory()) - : typeof define === 'function' && define.amd - ? define('uikiticons', factory) - : ((global = - typeof globalThis !== 'undefined' ? globalThis : global || self), - (global.UIkitIcons = factory())); -})(this, function () { - 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define('uikiticons', factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.UIkitIcons = factory()); +})(this, (function () { 'use strict'; - function plugin(UIkit) { - if (plugin.installed) { - return; - } + function plugin(UIkit) { + + if (plugin.installed) { + return; + } - UIkit.icon.add({ - '500px': - '', - album: - '', - 'arrow-down': - '', - 'arrow-left': - '', - 'arrow-right': - '', - 'arrow-up': - '', - ban: '', - behance: - '', - bell: '', - bold: '', - bolt: '', - bookmark: - '', - calendar: - '', - camera: - '', - cart: '', - check: - '', - 'chevron-double-left': - '', - 'chevron-double-right': - '', - 'chevron-down': - '', - 'chevron-left': - '', - 'chevron-right': - '', - 'chevron-up': - '', - clock: - '', - close: - '', - 'cloud-download': - '', - 'cloud-upload': - '', - code: '', - cog: '', - comment: - '', - commenting: - '', - comments: - '', - copy: '', - 'credit-card': - '', - database: - '', - desktop: - '', - discord: - '', - download: - '', - dribbble: - '', - etsy: '', - expand: - '', - facebook: - '', - 'file-edit': - '', - 'file-pdf': - '', - 'file-text': - '', - file: '', - flickr: - '', - folder: - '', - forward: - '', - foursquare: - '', - future: - '', - 'git-branch': - '', - 'git-fork': - '', - 'github-alt': - '', - github: - '', - gitter: - '', - google: - '', - grid: '', - happy: - '', - hashtag: - '', - heart: - '', - history: - '', - home: '', - image: - '', - info: '', - instagram: - '', - italic: - '', - joomla: - '', - laptop: - '', - lifesaver: - '', - link: '', - linkedin: - '', - list: '', - location: - '', - lock: '', - mail: '', - menu: '', - microphone: - '', - 'minus-circle': - '', - minus: - '', - 'more-vertical': - '', - more: '', - move: '', - nut: '', - pagekit: - '', - 'paint-bucket': - '', - pencil: - '', - 'phone-landscape': - '', - phone: - '', - pinterest: - '', - 'play-circle': - '', - play: '', - 'plus-circle': - '', - plus: '', - print: - '', - pull: '', - push: '', - question: - '', - 'quote-right': - '', - receiver: - '', - reddit: - '', - refresh: - '', - reply: - '', - rss: '', - search: - '', - server: - '', - settings: - '', - shrink: - '', - 'sign-in': - '', - 'sign-out': - '', - social: - '', - soundcloud: - '', - star: '', - strikethrough: - '', - table: - '', - 'tablet-landscape': - '', - tablet: - '', - tag: '', - thumbnails: - '', - tiktok: - '', - trash: - '', - 'triangle-down': - '', - 'triangle-left': - '', - 'triangle-right': - '', - 'triangle-up': - '', - tripadvisor: - '', - tumblr: - '', - tv: '', - twitch: - '', - twitter: - '', - uikit: - '', - unlock: - '', - upload: - '', - user: '', - users: - '', - 'video-camera': - '', - vimeo: - '', - warning: - '', - whatsapp: - '', - wordpress: - '', - world: - '', - xing: '', - yelp: '', - youtube: - '', - archive: - '', - car: '', - 'chevron-white': - '', - 'double-carres': - '', - entourage: - '', - 'eye-closed': - '', - 'eye-hidden': - '', - 'eye-opened': - '', - 'eye-visible': - '', - 'filter-empty': - '', - filter: - '', - gender: - '', - 'linkedout-arrow-back': - '', - 'linkedout-arrow-contact': - '', - 'linkedout-arrow-growing': - '', - 'linkedout-arrow': - '', - 'linkedout-calendar': - '', - 'linkedout-car': - '', - 'linkedout-close-button': - '', - 'linkedout-contract': - '', - 'linkedout-hamburger-menu': - '', - 'linkedout-heart': - '', - 'linkedout-location': - '', - 'linkedout-mail': - '', - 'linkedout-mention': - '', - 'linkedout-people': - '', - 'linkedout-plus-round-button': - '', - 'linkedout-share-facebook': - '', - 'linkedout-share-linkedin': - '', - 'linkedout-share-twitter': - '', - 'linkedout-skills': - '', - 'linkedout-trash': - '', - 'linkedout-work': - '', - 'plus-filled': - '', + UIkit.icon.add({ + "500px": "", + "album": "", + "arrow-down": "", + "arrow-left": "", + "arrow-right": "", + "arrow-up": "", + "ban": "", + "behance": "", + "bell": "", + "bold": "", + "bolt": "", + "bookmark": "", + "calendar": "", + "camera": "", + "cart": "", + "check": "", + "chevron-double-left": "", + "chevron-double-right": "", + "chevron-down": "", + "chevron-left": "", + "chevron-right": "", + "chevron-up": "", + "clock": "", + "close": "", + "cloud-download": "", + "cloud-upload": "", + "code": "", + "cog": "", + "comment": "", + "commenting": "", + "comments": "", + "copy": "", + "credit-card": "", + "database": "", + "desktop": "", + "discord": "", + "download": "", + "dribbble": "", + "etsy": "", + "expand": "", + "facebook": "", + "file-edit": "", + "file-pdf": "", + "file-text": "", + "file": "", + "flickr": "", + "folder": "", + "forward": "", + "foursquare": "", + "future": "", + "git-branch": "", + "git-fork": "", + "github-alt": "", + "github": "", + "gitter": "", + "google": "", + "grid": "", + "happy": "", + "hashtag": "", + "heart": "", + "history": "", + "home": "", + "image": "", + "info": "", + "instagram": "", + "italic": "", + "joomla": "", + "laptop": "", + "lifesaver": "", + "link": "", + "linkedin": "", + "list": "", + "location": "", + "lock": "", + "mail": "", + "menu": "", + "microphone": "", + "minus-circle": "", + "minus": "", + "more-vertical": "", + "more": "", + "move": "", + "nut": "", + "pagekit": "", + "paint-bucket": "", + "pencil": "", + "phone-landscape": "", + "phone": "", + "pinterest": "", + "play-circle": "", + "play": "", + "plus-circle": "", + "plus": "", + "print": "", + "pull": "", + "push": "", + "question": "", + "quote-right": "", + "receiver": "", + "reddit": "", + "refresh": "", + "reply": "", + "rss": "", + "search": "", + "server": "", + "settings": "", + "shrink": "", + "sign-in": "", + "sign-out": "", + "social": "", + "soundcloud": "", + "star": "", + "strikethrough": "", + "table": "", + "tablet-landscape": "", + "tablet": "", + "tag": "", + "thumbnails": "", + "tiktok": "", + "trash": "", + "triangle-down": "", + "triangle-left": "", + "triangle-right": "", + "triangle-up": "", + "tripadvisor": "", + "tumblr": "", + "tv": "", + "twitch": "", + "twitter": "", + "uikit": "", + "unlock": "", + "upload": "", + "user": "", + "users": "", + "video-camera": "", + "vimeo": "", + "warning": "", + "whatsapp": "", + "wordpress": "", + "world": "", + "xing": "", + "yelp": "", + "youtube": "" }); - } - if (typeof window !== 'undefined' && window.UIkit) { - window.UIkit.use(plugin); - } + } + + if (typeof window !== 'undefined' && window.UIkit) { + window.UIkit.use(plugin); + } + + return plugin; - return plugin; -}); +})); diff --git a/src/styles/dist/js/uikit-icons.min.js b/src/styles/dist/js/uikit-icons.min.js index ba4d04910..2f405894f 100644 --- a/src/styles/dist/js/uikit-icons.min.js +++ b/src/styles/dist/js/uikit-icons.min.js @@ -1,339 +1,2 @@ /*! UIkit 3.6.22 | https://www.getuikit.com | (c) 2014 - 2023 YOOtheme | MIT License */ -!(function (t, e) { - 'object' == typeof exports && 'undefined' != typeof module - ? (module.exports = e()) - : 'function' == typeof define && define.amd - ? define('uikiticons', e) - : ((t = - 'undefined' != typeof globalThis ? globalThis : t || self).UIkitIcons = - e()); -})(this, function () { - 'use strict'; - function e(t) { - e.installed || - t.icon.add({ - '500px': - '', - album: - '', - 'arrow-down': - '', - 'arrow-left': - '', - 'arrow-right': - '', - 'arrow-up': - '', - ban: '', - behance: - '', - bell: '', - bold: '', - bolt: '', - bookmark: - '', - calendar: - '', - camera: - '', - cart: '', - check: - '', - 'chevron-double-left': - '', - 'chevron-double-right': - '', - 'chevron-down': - '', - 'chevron-left': - '', - 'chevron-right': - '', - 'chevron-up': - '', - clock: - '', - close: - '', - 'cloud-download': - '', - 'cloud-upload': - '', - code: '', - cog: '', - comment: - '', - commenting: - '', - comments: - '', - copy: '', - 'credit-card': - '', - database: - '', - desktop: - '', - discord: - '', - download: - '', - dribbble: - '', - etsy: '', - expand: - '', - facebook: - '', - 'file-edit': - '', - 'file-pdf': - '', - 'file-text': - '', - file: '', - flickr: - '', - folder: - '', - forward: - '', - foursquare: - '', - future: - '', - 'git-branch': - '', - 'git-fork': - '', - 'github-alt': - '', - github: - '', - gitter: - '', - google: - '', - grid: '', - happy: - '', - hashtag: - '', - heart: - '', - history: - '', - home: '', - image: - '', - info: '', - instagram: - '', - italic: - '', - joomla: - '', - laptop: - '', - lifesaver: - '', - link: '', - linkedin: - '', - list: '', - location: - '', - lock: '', - mail: '', - menu: '', - microphone: - '', - 'minus-circle': - '', - minus: - '', - 'more-vertical': - '', - more: '', - move: '', - nut: '', - pagekit: - '', - 'paint-bucket': - '', - pencil: - '', - 'phone-landscape': - '', - phone: - '', - pinterest: - '', - 'play-circle': - '', - play: '', - 'plus-circle': - '', - plus: '', - print: - '', - pull: '', - push: '', - question: - '', - 'quote-right': - '', - receiver: - '', - reddit: - '', - refresh: - '', - reply: - '', - rss: '', - search: - '', - server: - '', - settings: - '', - shrink: - '', - 'sign-in': - '', - 'sign-out': - '', - social: - '', - soundcloud: - '', - star: '', - strikethrough: - '', - table: - '', - 'tablet-landscape': - '', - tablet: - '', - tag: '', - thumbnails: - '', - tiktok: - '', - trash: - '', - 'triangle-down': - '', - 'triangle-left': - '', - 'triangle-right': - '', - 'triangle-up': - '', - tripadvisor: - '', - tumblr: - '', - tv: '', - twitch: - '', - twitter: - '', - uikit: - '', - unlock: - '', - upload: - '', - user: '', - users: - '', - 'video-camera': - '', - vimeo: - '', - warning: - '', - whatsapp: - '', - wordpress: - '', - world: - '', - xing: '', - yelp: '', - youtube: - '', - archive: - '', - car: '', - 'chevron-white': - '', - 'double-carres': - '', - entourage: - '', - 'eye-closed': - '', - 'eye-hidden': - '', - 'eye-opened': - '', - 'eye-visible': - '', - 'filter-empty': - '', - filter: - '', - gender: - '', - 'linkedout-arrow-back': - '', - 'linkedout-arrow-contact': - '', - 'linkedout-arrow-growing': - '', - 'linkedout-arrow': - '', - 'linkedout-calendar': - '', - 'linkedout-car': - '', - 'linkedout-close-button': - '', - 'linkedout-contract': - '', - 'linkedout-hamburger-menu': - '', - 'linkedout-heart': - '', - 'linkedout-location': - '', - 'linkedout-mail': - '', - 'linkedout-mention': - '', - 'linkedout-people': - '', - 'linkedout-plus-round-button': - '', - 'linkedout-share-facebook': - '', - 'linkedout-share-linkedin': - '', - 'linkedout-share-twitter': - '', - 'linkedout-skills': - '', - 'linkedout-trash': - '', - 'linkedout-work': - '', - 'plus-filled': - '', - }); - } - return 'undefined' != typeof window && window.UIkit && window.UIkit.use(e), e; -}); +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define("uikiticons",i):(t="undefined"!=typeof globalThis?globalThis:t||self).UIkitIcons=i()}(this,function(){"use strict";function i(t){i.installed||t.icon.add({"500px":'',album:'',"arrow-down":'',"arrow-left":'',"arrow-right":'',"arrow-up":'',ban:'',behance:'',bell:'',bold:'',bolt:'',bookmark:'',calendar:'',camera:'',cart:'',check:'',"chevron-double-left":'',"chevron-double-right":'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',clock:'',close:'',"cloud-download":'',"cloud-upload":'',code:'',cog:'',comment:'',commenting:'',comments:'',copy:'',"credit-card":'',database:'',desktop:'',discord:'',download:'',dribbble:'',etsy:'',expand:'',facebook:'',"file-edit":'',"file-pdf":'',"file-text":'',file:'',flickr:'',folder:'',forward:'',foursquare:'',future:'',"git-branch":'',"git-fork":'',"github-alt":'',github:'',gitter:'',google:'',grid:'',happy:'',hashtag:'',heart:'',history:'',home:'',image:'',info:'',instagram:'',italic:'',joomla:'',laptop:'',lifesaver:'',link:'',linkedin:'',list:'',location:'',lock:'',mail:'',menu:'',microphone:'',"minus-circle":'',minus:'',"more-vertical":'',more:'',move:'',nut:'',pagekit:'',"paint-bucket":'',pencil:'',"phone-landscape":'',phone:'',pinterest:'',"play-circle":'',play:'',"plus-circle":'',plus:'',print:'',pull:'',push:'',question:'',"quote-right":'',receiver:'',reddit:'',refresh:'',reply:'',rss:'',search:'',server:'',settings:'',shrink:'',"sign-in":'',"sign-out":'',social:'',soundcloud:'',star:'',strikethrough:'',table:'',"tablet-landscape":'',tablet:'',tag:'',thumbnails:'',tiktok:'',trash:'',"triangle-down":'',"triangle-left":'',"triangle-right":'',"triangle-up":'',tripadvisor:'',tumblr:'',tv:'',twitch:'',twitter:'',uikit:'',unlock:'',upload:'',user:'',users:'',"video-camera":'',vimeo:'',warning:'',whatsapp:'',wordpress:'',world:'',xing:'',yelp:'',youtube:''})}return"undefined"!=typeof window&&window.UIkit&&window.UIkit.use(i),i}); diff --git a/stack.svg b/stack.svg index 29601e6dd..0214f5bf7 100644 --- a/stack.svg +++ b/stack.svg @@ -1,5 +1,5 @@ - Date: Mon, 13 Nov 2023 11:00:47 +0100 Subject: [PATCH 2/5] [EN-6375] chore(icons): try to fix cypress tests --- .eslintignore | 1 + .github/workflows/main.yml | 8 +- cypress/e2e/parcours-travailler.cy.js | 12 ++- next.config.js | 87 +++++++++++-------- .../Modal/ModalGeneric/ModalGeneric.tsx | 1 - src/components/utils/Lists/Lists.styles.ts | 1 + 6 files changed, 70 insertions(+), 40 deletions(-) diff --git a/.eslintignore b/.eslintignore index 1a3774493..4d7a76807 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,4 +6,5 @@ assets/ cypress.config.js jest.config.js next.config.js +server-next.js .lintstagedrc.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ffe632e91..10e02fefa 100755 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,6 +20,10 @@ env: SERVER_URL: http://localhost:3000 API_URL: http://localhost:3002 PORT: 3000 + AWSS3_URL: https://entourage-job-preprod.s3.amazonaws.com + AWSS3_CDN_URL: https://d3s4t580ymtqme.cloudfront.net + CDN_URL: https://d280vsj7wg1qqw.cloudfront.net + AWSS3_IMAGE_DIRECTORY: /images/ CYPRESS_IO_PROJECT_ID: ${{ secrets.CYPRESS_IO_PROJECT_ID }} PUSHER_API_KEY: ${{ secrets.PUSHER_API_KEY }} ADRESSE_LOCAUX_PARIS: "174 Rue Championnet 75018, Paris" @@ -45,12 +49,12 @@ jobs: command: npx cypress run --record --key ${{ secrets.CYPRESS_IO_KEY }} wait-on: http://localhost:3000 - - run: yarn lint + - run: yarn test:eslint - name: set-up uses: actions/setup-node@v3 with: node-version: '16.x' - - run: yarn test + - run: yarn test:inte - run: echo No tests diff --git a/cypress/e2e/parcours-travailler.cy.js b/cypress/e2e/parcours-travailler.cy.js index b97f581d6..decf5148a 100644 --- a/cypress/e2e/parcours-travailler.cy.js +++ b/cypress/e2e/parcours-travailler.cy.js @@ -45,9 +45,17 @@ describe('Parcours travailler', () => { '[data-testid="form-candidate-inscription-infoCoSubtitle"]' ).should('include.text', Cypress.env('adresseLocauxParis')); cy.get('[data-testid="infoco-radio-5"]').click(); - cy.get('button').contains('Valider').should('be.visible').click(); + cy.get('.ReactModalPortal div') + .find('button') + .contains('Valider') + .should('be.visible') + .click(); cy.wait('@postInscription'); - cy.get('button').contains('Fermer').should('be.visible').click(); + cy.get('.ReactModalPortal div') + .find('button') + .contains('Fermer') + .should('be.visible') + .click(); cy.get('.ReactModalPortal div').should('not.exist'); }); }); diff --git a/next.config.js b/next.config.js index 3b221ca2b..0d389af01 100644 --- a/next.config.js +++ b/next.config.js @@ -79,6 +79,40 @@ const securityHeaders = [ }, */ ]; +let remotePatterns = []; + +if (process.env.CDN_URL) { + remotePatterns = [ + ...remotePatterns, + { + protocol: 'https', + hostname: process.env.CDN_URL.replace('https://', ''), + pathname: '/**', + }, + ]; +} + +if (process.env.AWSS3_CDN_URL) { + remotePatterns = [ + ...remotePatterns, + { + protocol: 'https', + hostname: process.env.AWSS3_CDN_URL.replace('https://', ''), + pathname: '/images/**', + }, + ]; +} +if (process.env.AWSS3_URL) { + remotePatterns = [ + ...remotePatterns, + { + protocol: 'https', + hostname: process.env.AWSS3_URL.replace('https://', ''), + pathname: '/images/**', + }, + ]; +} + module.exports = withLess({ webpackDevMiddleware: (config) => { config.watchOptions = { @@ -95,24 +129,26 @@ module.exports = withLess({ config.module.rules.push({ test: /\.svg$/, - use: [{ - loader: '@svgr/webpack', - options: { - svgoConfig: { - plugins: [ - { - name: 'preset-default', - params: { - overrides: { - // disable plugins - removeViewBox: false, + use: [ + { + loader: '@svgr/webpack', + options: { + svgoConfig: { + plugins: [ + { + name: 'preset-default', + params: { + overrides: { + // disable plugins + removeViewBox: false, + }, }, }, - }, - ], + ], + }, }, - } - }], + }, + ], }); if (!options.isServer) { @@ -151,26 +187,7 @@ module.exports = withLess({ }, assetPrefix: !dev ? process.env.CDN_URL || undefined : undefined, images: { - remotePatterns: [ - { - protocol: 'https', - hostname: process.env.CDN_URL.replace('https://', ''), - port: '', - pathname: '/**', - }, - { - protocol: 'https', - hostname: process.env.AWSS3_CDN_URL.replace('https://', ''), - port: '', - pathname: '/images/**', - }, - { - protocol: 'https', - hostname: process.env.AWSS3_URL.replace('https://', ''), - port: '', - pathname: '/images/**', - }, - ], + remotePatterns, }, async redirects() { return [ diff --git a/src/components/modals/Modal/ModalGeneric/ModalGeneric.tsx b/src/components/modals/Modal/ModalGeneric/ModalGeneric.tsx index 74bec2efb..6447b4b78 100644 --- a/src/components/modals/Modal/ModalGeneric/ModalGeneric.tsx +++ b/src/components/modals/Modal/ModalGeneric/ModalGeneric.tsx @@ -63,7 +63,6 @@ export const ModalGeneric = ({ onClose(); }} style="custom-primary" - dataTestId="inscription-candidat-confirm-close" > Fermer diff --git a/src/components/utils/Lists/Lists.styles.ts b/src/components/utils/Lists/Lists.styles.ts index f4de8422f..d5db3b5fe 100644 --- a/src/components/utils/Lists/Lists.styles.ts +++ b/src/components/utils/Lists/Lists.styles.ts @@ -18,6 +18,7 @@ export const StyledCheckIcon = styled(CheckIcon)` width: 14px; padding: 2px; background-color: ${COLORS.primaryOrange}; + color: white; position: absolute; border-radius: 14px; left: 0; From 9389e1493a4ea1a593164535b3088eafcefa6c08 Mon Sep 17 00:00:00 2001 From: Emile Bex Date: Mon, 20 Nov 2023 18:37:03 +0100 Subject: [PATCH 3/5] fix(aider): fix icons on aider page --- assets/icons/aider-boite-outils.svg | 9 ------- assets/icons/aider-interview.svg | 9 ------- assets/icons/aider-reseau.svg | 9 ------- assets/icons/aider-welcome.svg | 9 ------- .../img/illustrations/aider-boite-outils.png | Bin 0 -> 52507 bytes .../img/illustrations/aider-interview.png | Bin 0 -> 62475 bytes .../static/img/illustrations/aider-reseau.png | Bin 0 -> 77269 bytes .../img/illustrations/aider-welcome.png | Bin 0 -> 47237 bytes .../AdminOpportunities/AdminOpportunities.tsx | 7 +++--- .../MemberTab/OffersMemberTab.tsx | 1 - .../ActionLabel/AdminActionLabelContainer.tsx | 16 +++--------- .../NoOpportunities/NoOpportunities.tsx | 2 +- .../AdminOpportunityItem.tsx | 1 - .../OpportunitySectionCandidates.tsx | 5 ++-- .../HeaderConnectedContent.mobile.tsx | 2 +- .../CoachContainer/CoachContainer.styles.ts | 4 +-- .../Aider/CoachContainer/CoachContainer.tsx | 23 +++++++++--------- 17 files changed, 25 insertions(+), 72 deletions(-) delete mode 100644 assets/icons/aider-boite-outils.svg delete mode 100644 assets/icons/aider-interview.svg delete mode 100644 assets/icons/aider-reseau.svg delete mode 100644 assets/icons/aider-welcome.svg create mode 100644 public/static/img/illustrations/aider-boite-outils.png create mode 100644 public/static/img/illustrations/aider-interview.png create mode 100644 public/static/img/illustrations/aider-reseau.png create mode 100644 public/static/img/illustrations/aider-welcome.png diff --git a/assets/icons/aider-boite-outils.svg b/assets/icons/aider-boite-outils.svg deleted file mode 100644 index 13b620f4f..000000000 --- a/assets/icons/aider-boite-outils.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/aider-interview.svg b/assets/icons/aider-interview.svg deleted file mode 100644 index 36d197ead..000000000 --- a/assets/icons/aider-interview.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/aider-reseau.svg b/assets/icons/aider-reseau.svg deleted file mode 100644 index 2510eb58e..000000000 --- a/assets/icons/aider-reseau.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/aider-welcome.svg b/assets/icons/aider-welcome.svg deleted file mode 100644 index 14c0de10a..000000000 --- a/assets/icons/aider-welcome.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/static/img/illustrations/aider-boite-outils.png b/public/static/img/illustrations/aider-boite-outils.png new file mode 100644 index 0000000000000000000000000000000000000000..befd8b71a3d374b2f669d3243e4611dd8be12fb5 GIT binary patch literal 52507 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 Lsg&Ni_w4@w5HN=> literal 0 HcmV?d00001 diff --git a/public/static/img/illustrations/aider-interview.png b/public/static/img/illustrations/aider-interview.png new file mode 100644 index 0000000000000000000000000000000000000000..6bcf3b41d3519545444ee690cf45c168963e1a84 GIT binary patch literal 62475 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

    kCTIe4kcFLmi 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�>kC{x=iAh%~a9pjgx7h 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 literal 0 HcmV?d00001 diff --git a/public/static/img/illustrations/aider-welcome.png b/public/static/img/illustrations/aider-welcome.png new file mode 100644 index 0000000000000000000000000000000000000000..5b629228283c2c0dfcbb4d802c482c3f8e41cf2a GIT binary patch literal 47237 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 literal 0 HcmV?d00001 diff --git a/src/components/backoffice/admin/AdminOpportunities/AdminOpportunities.tsx b/src/components/backoffice/admin/AdminOpportunities/AdminOpportunities.tsx index c7fa3bf55..0aab9ba2d 100644 --- a/src/components/backoffice/admin/AdminOpportunities/AdminOpportunities.tsx +++ b/src/components/backoffice/admin/AdminOpportunities/AdminOpportunities.tsx @@ -3,6 +3,7 @@ import { useRouter } from 'next/router'; import React, { useRef, useState } from 'react'; import UIkit from 'uikit'; import useDeepCompareEffect from 'use-deep-compare-effect'; +import PlusIcon from 'assets/icons/plus.svg'; import { useTag } from '../useTag'; import { Api } from 'src/api'; import { Opportunity } from 'src/api/types'; @@ -19,7 +20,7 @@ import { HeaderBackoffice } from 'src/components/headers/HeaderBackoffice'; import { openModal } from 'src/components/modals/Modal'; import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; import { PostOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; -import { Button, ButtonMultiple, Icon, Section } from 'src/components/utils'; +import { Button, ButtonMultiple, Section } from 'src/components/utils'; import { OPPORTUNITY_FILTERS_DATA } from 'src/constants'; import { HEIGHTS } from 'src/constants/styles'; import { GA_TAGS } from 'src/constants/tags'; @@ -244,8 +245,8 @@ export const AdminOpportunities = ({ }, ]} > - - Créer + +   Créer
    diff --git a/src/components/backoffice/admin/members/MemberDetails/MemberTab/OffersMemberTab.tsx b/src/components/backoffice/admin/members/MemberDetails/MemberTab/OffersMemberTab.tsx index a431b649f..b3177082a 100644 --- a/src/components/backoffice/admin/members/MemberDetails/MemberTab/OffersMemberTab.tsx +++ b/src/components/backoffice/admin/members/MemberDetails/MemberTab/OffersMemberTab.tsx @@ -1,7 +1,6 @@ import { useRouter } from 'next/router'; import React, { useState } from 'react'; import useDeepCompareEffect from 'use-deep-compare-effect'; -import { Opportunity } from 'src/api/types'; import { OpportunitiesContainer } from 'src/components/backoffice/opportunities/OpportunitiesContainer'; import { AdminOpportunitiesList } from 'src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/AdminOpportunitiesList'; import { AdminOpportunityDetailsContainer } from 'src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/AdminOpportunityDetails/AdminOpportunityDetailsContainer'; diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/AdminActionLabelContainer.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/AdminActionLabelContainer.tsx index 41c2e6b5c..60a4c017a 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/AdminActionLabelContainer.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/AdminActionLabelContainer.tsx @@ -12,23 +12,13 @@ export const AdminActionLabelContainer = ({ return ( <> {!isPublic && !isExternal && ( - + )} {isPublic && !isExternal && ( - + )} {isExternal && ( - + )} ); diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx index 71d50ae7c..688e743ca 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/NoOpportunities/NoOpportunities.tsx @@ -63,7 +63,7 @@ export const NoOpportunities = ({ shallow > -   Trouver des offres LinkedOut +  Trouver des offres LinkedOut diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/AdminOpportunitiesList/AdminOpportunityItem/AdminOpportunityItem.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/AdminOpportunitiesList/AdminOpportunityItem/AdminOpportunityItem.tsx index 513579f53..16013b9f3 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/AdminOpportunitiesList/AdminOpportunityItem/AdminOpportunityItem.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunitiesList/AdminOpportunitiesList/AdminOpportunityItem/AdminOpportunityItem.tsx @@ -122,7 +122,6 @@ export const AdminOpportunityItem = ({ {candidateId && opportunityUser && ( diff --git a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/OpportunitySection/OpportunitySectionCandidates.tsx b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/OpportunitySection/OpportunitySectionCandidates.tsx index ebd79dc54..88cfb64f9 100644 --- a/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/OpportunitySection/OpportunitySectionCandidates.tsx +++ b/src/components/backoffice/opportunities/OpportunitiesContainer/OpportunityDetails/OpportunitySection/OpportunitySectionCandidates.tsx @@ -1,11 +1,11 @@ import Link from 'next/link'; import React from 'react'; import UIkit from 'uikit'; +import EntourageIcon from 'assets/icons/entourage.svg'; import { Api } from 'src/api'; import { AdminOpportunityWithOpportunityUsers } from 'src/api/types'; import { useMemberId } from 'src/components/backoffice/admin/members/MemberDetails/useMemberId'; import { ActionLabel } from 'src/components/backoffice/opportunities/OpportunitiesContainer/ActionLabel/ActionLabel'; -import { Icon } from 'src/components/utils'; import { SelectSimple } from 'src/components/utils/Inputs'; import { OFFER_STATUS } from 'src/constants'; import { @@ -73,10 +73,9 @@ export const OpportunitySectionCandidates = ({ {recommended && ( } + icon={} /> )} diff --git a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx index 8e73b1579..fc5c8b4da 100644 --- a/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx +++ b/src/components/headers/HeaderConnected/HeaderConnectedContent/HeaderConnectedContent.mobile.tsx @@ -59,7 +59,7 @@ export const HeaderConnectedContentMobile = ({
  • -   Accueil +  Accueil
  • {!isEmpty && diff --git a/src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts b/src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts index dcc1f6c0c..b47d3c40f 100644 --- a/src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts +++ b/src/components/partials/Aider/CoachContainer/CoachContainer.styles.ts @@ -16,9 +16,9 @@ export const StyledCoachContainer = styled.section` min-width: 200px; align-items: center; margin-bottom: 40px; - .svg-container { - min-height: 103px; + .img-container { margin-bottom: 24px; + filter: brightness(0) invert(1); } p { color: #ffffff; diff --git a/src/components/partials/Aider/CoachContainer/CoachContainer.tsx b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx index 2f5736a9f..a2eacfa9b 100644 --- a/src/components/partials/Aider/CoachContainer/CoachContainer.tsx +++ b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx @@ -1,14 +1,10 @@ import React from 'react'; import { v4 as uuid } from 'uuid'; -import BoiteOutilsIcon from 'assets/icons/aider-boite-outils.svg'; -import InterviewIcon from 'assets/icons/aider-interview.svg'; -import ReseauIcon from 'assets/icons/aider-reseau.svg'; -import WelcomeIcon from 'assets/icons/aider-welcome.svg'; import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { StyledCoachContainer } from 'src/components/partials/Aider/CoachContainer/CoachContainer.styles'; import { CoachTestimony } from 'src/components/partials/Aider/CoachContainer/CoachTestimony/CoachTestimony'; import { TitleSection } from 'src/components/partials/Aider/H2/H2'; -import { BackgroundImage, Button, Container } from 'src/components/utils'; +import { BackgroundImage, Button, Container, Img } from 'src/components/utils'; import { COLORS } from 'src/constants/styles'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { fbEvent } from 'src/lib/fb'; @@ -18,22 +14,22 @@ const uuidValue = uuid(); const pictoContent = [ { - picto: WelcomeIcon, + picto: '/static/img/illustrations/aider-welcome.png', subtitle: 'Webinaire d’information', text: 'sur la mission et un parcours de formation.', }, { - picto: ReseauIcon, + picto: '/static/img/illustrations/aider-reseau.png', subtitle: 'Une communauté de coachs ', text: 'pour partager son réseau, des bonnes pratiques et des temps conviviaux', }, { - picto: InterviewIcon, + picto: '/static/img/illustrations/aider-interview.png', subtitle: 'Un suivi individualisé', text: 'par l’equipe pour répondre à toutes vos questions ', }, { - picto: BoiteOutilsIcon, + picto: '/static/img/illustrations/aider-boite-outils.png', subtitle: 'Une boîte à outils', text: 'pour favoriser l’accompagnement à chaque étape du parcours ', }, @@ -59,8 +55,13 @@ export const CoachContainer = () => { {pictoContent.map((content, key) => { return (
    -
    - +
    + {content.subtitle}

    {content.subtitle} From f6a8b28dc9cdabd58707fb290b5a110ae8d6e8f8 Mon Sep 17 00:00:00 2001 From: Emile Bex Date: Fri, 1 Dec 2023 15:41:12 +0100 Subject: [PATCH 4/5] [EN-6375] chore(icons): pr feedback --- .../cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx | 1 - src/components/filters/SearchBar.tsx | 1 - src/components/partials/Reviews.tsx | 4 ++-- src/components/utils/index.ts | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx index 47c36ed76..e391c2392 100644 --- a/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx +++ b/src/components/backoffice/cv/CVEditPage/CVFicheEdition/CVEdit/CVEditPicture.tsx @@ -2,7 +2,6 @@ import React, { useEffect, useState } from 'react'; import Resizer from 'react-image-file-resizer'; import UIkit from 'uikit'; import PencilIcon from 'assets/icons/pencil.svg'; -import {} from 'src/components/utils'; import { useIsDesktop } from 'src/hooks/utils'; import { addPrefix } from 'src/utils'; import { diff --git a/src/components/filters/SearchBar.tsx b/src/components/filters/SearchBar.tsx index 7a3cafbde..e5983f576 100644 --- a/src/components/filters/SearchBar.tsx +++ b/src/components/filters/SearchBar.tsx @@ -5,7 +5,6 @@ import { FiltersDropdowns } from 'src/components/filters/FiltersDropdowns'; import { FiltersMobile } from 'src/components/filters/FiltersMobile'; import { FiltersOptions } from 'src/components/filters/FiltersOptions'; import { FiltersSideBar } from 'src/components/filters/FiltersSideBar'; -import {} from 'src/components/utils'; import { CV_FILTERS_DATA, MEMBER_FILTERS_DATA, diff --git a/src/components/partials/Reviews.tsx b/src/components/partials/Reviews.tsx index f4f4a1128..a6514c975 100644 --- a/src/components/partials/Reviews.tsx +++ b/src/components/partials/Reviews.tsx @@ -8,10 +8,10 @@ interface ReviewsProps { company?: string; industry?: string; companyInfo?: string; - review: string | JSX.Element; + review: React.ReactNode; image: string; }[]; - title: string | JSX.Element | JSX.Element[]; + title: React.ReactNode; } export const Reviews = ({ reviews, title }: ReviewsProps) => { diff --git a/src/components/utils/index.ts b/src/components/utils/index.ts index f5938ee27..f4354e41b 100644 --- a/src/components/utils/index.ts +++ b/src/components/utils/index.ts @@ -1,6 +1,6 @@ export * from './AnimatedList'; export * from './Background'; -export * from './ButtonIcon/ButtonIcon'; +export * from './ButtonIcon'; export * from './Card'; export * from './Grid'; export * from './Carousel'; From b9ff47eb76dd5a9338417056af89cf0853004803 Mon Sep 17 00:00:00 2001 From: Emile Bex Date: Mon, 4 Dec 2023 11:44:12 +0100 Subject: [PATCH 5/5] [EN-6475] feat(offer): create distinct public offer form and add ctas (#164) * chore(icons): remove all uikit icons * started public offer form * [EN-6475] feat(offer form): separate public and private offer form * [EN-6475] tests(offer form): update tests * [EN-6475] fix(offer form): fix modal scroll to top * [EN-6475] feat(offer form): change wording * [EN-6475] chore(icons): manage auto margin if icons in buttons --- README.md | 3 +- assets/icons/archive.svg | 2 +- cypress/e2e/admin.cy.js | 28 +- cypress/e2e/parcours-cv.cy.js | 121 +++- cypress/e2e/parcours-entreprises.cy.js | 286 ++++++--- public/static/img/header_pic_guide.jpg | Bin 262092 -> 924618 bytes public/static/img/header_pic_hire.jpg | Bin 81396 -> 732117 bytes .../AdminCreationButtons.tsx | 2 +- .../AdminOpportunities/AdminOpportunities.tsx | 19 +- .../MemberTab/ParametersMemberTab.tsx | 4 +- .../MemberDetails/RecommendedOffersButton.tsx | 2 +- .../CandidateOpportunities.tsx | 2 +- .../NoOpportunities/NoOpportunities.tsx | 4 +- .../CandidateOpportunityDetailsCTAs.utils.tsx | 18 +- src/components/cards/OfferCard.js | 238 ------- src/components/cards/index.js | 1 - .../forms/schemas/formAddOpportunity.ts | 274 ++++++-- .../HeaderConnectedContent.desktop.tsx | 5 +- .../HeaderConnectedContent.mobile.tsx | 2 +- .../HeaderConnectedContent.styles.ts | 2 + .../HeaderConnectedContent.utils.tsx | 5 +- .../HeaderPublicContent.desktop.tsx | 4 +- .../HeaderPublicContent.mobile.tsx | 6 +- src/components/modals/Modal/Modal.js | 8 + .../ModalOfferAdmin/ModalOfferAdmin.tsx | 606 ------------------ .../OfferModals/ModalOfferAdmin/index.ts | 1 - .../OfferModals/ModalOfferBase.js | 57 -- .../OfferModals/partials/ModalOfferInfo.js | 152 ----- .../OfferModals/partials/NavList.js | 26 - .../OfferModals/partials/OfferContent.js | 92 --- .../partials/OfferInfoContainer.js | 41 -- .../ModalGeneric/OfferModals/useModalOffer.ts | 27 - .../PostAdminOpportunityModal.tsx | 109 ++++ .../PostOpportunityModal.tsx | 192 ------ .../PostPrivateOpportunityModal.tsx | 122 ++++ .../PostPublicOfferModal.tsx | 17 - .../PostPublicOpportunityModal.tsx | 99 +++ .../PostOpportunityModal/index.tsx | 4 +- .../ModalShareCV/ModalShareCV.tsx | 2 +- .../modals/PopupModal/SailInfoModal.tsx | 2 +- .../Aider/CoachContainer/CoachContainer.tsx | 2 +- src/components/partials/Aider/H2/H2.tsx | 26 +- .../Aider/HelpCards/HelpCard/HelpCard.tsx | 2 +- .../partials/AssociationEntourage.tsx | 2 +- .../CV/CVCallToActions/CVCallToActions.tsx | 50 +- src/components/partials/CV/CVList/CVList.tsx | 22 +- .../CV/PageCVContent/PageCVContent.styles.tsx | 13 +- .../partials/CandidatListPartial.tsx | 1 - src/components/partials/Chapter.tsx | 12 +- src/components/partials/DiscoverPartial.tsx | 2 +- src/components/partials/Footer/Footer.tsx | 2 +- .../ImageTitle.styles.ts | 24 +- .../partials/ImageTitle/ImageTitle.tsx | 85 +++ .../ImageTitle/ImageTitleComponent.js | 75 --- .../ImageTitle/ImageTitleContainer.js | 55 -- src/components/partials/ImageTitle/index.js | 1 - .../{ImageTitleNew => ImageTitle}/index.ts | 0 .../partials/ImageTitleNew/ImageTitle.tsx | 88 --- src/components/partials/MultipleCTA.tsx | 1 - src/components/partials/Partners.tsx | 2 +- src/components/partials/SearchCandidates.tsx | 28 +- src/components/partials/SimpleSection.tsx | 2 +- src/components/utils/BackLink/BackLink.tsx | 2 +- .../BackgroundImage.styles.tsx | 13 +- .../utils/BackgroundImage/BackgroundImage.tsx | 6 - src/components/utils/Button/Button.styles.ts | 7 + src/components/utils/Button/Button.tsx | 10 +- src/constants/tags.ts | 3 + src/pages/404.js | 2 +- src/pages/aider.tsx | 2 +- src/pages/cv/[url].tsx | 2 +- src/pages/entreprises/index.tsx | 48 +- src/pages/{orienter.js => orienter.tsx} | 67 +- src/pages/travailler.tsx | 4 +- src/styles/styles.less | 2 +- 75 files changed, 1180 insertions(+), 2068 deletions(-) delete mode 100644 src/components/cards/OfferCard.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/index.ts delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferBase.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/partials/NavList.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer.js delete mode 100644 src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer.ts create mode 100644 src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostAdminOpportunityModal.tsx delete mode 100644 src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostOpportunityModal.tsx create mode 100644 src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPrivateOpportunityModal.tsx delete mode 100644 src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOfferModal.tsx create mode 100644 src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOpportunityModal.tsx rename src/components/partials/{ImageTitleNew => ImageTitle}/ImageTitle.styles.ts (57%) create mode 100644 src/components/partials/ImageTitle/ImageTitle.tsx delete mode 100644 src/components/partials/ImageTitle/ImageTitleComponent.js delete mode 100644 src/components/partials/ImageTitle/ImageTitleContainer.js delete mode 100644 src/components/partials/ImageTitle/index.js rename src/components/partials/{ImageTitleNew => ImageTitle}/index.ts (100%) delete mode 100644 src/components/partials/ImageTitleNew/ImageTitle.tsx rename src/pages/{orienter.js => orienter.tsx} (87%) diff --git a/README.md b/README.md index 90c8d05df..acf0f9e4f 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,7 @@ ADMIN_COMPANIES_PARIS= ADMIN_COMPANIES_RENNES= ADRESSE_LOCAUX_PARIS= API_URL= +AIRTABLE_LINK_BECOME_COACH= ASSOCIATION_BROCHURE= AWSS3_CDN_URL= AWSS3_IMAGE_DIRECTORY= @@ -186,8 +187,6 @@ TUTORIAL_VIDEO_CV= TUTORIAL_VIDEO_FIRST_STEPS= TUTORIAL_VIDEO_OFFERS= TUTORIAL_VIDEO_OFFERS_2= -WEBINAR_URL= -WOMENS_DAY= ``` ## Styles diff --git a/assets/icons/archive.svg b/assets/icons/archive.svg index 64cfb0f47..5aa8797f0 100644 --- a/assets/icons/archive.svg +++ b/assets/icons/archive.svg @@ -1 +1 @@ - + diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js index 79aa0b067..17976c516 100644 --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -151,32 +151,32 @@ describe('Admin', () => { // add an offer cy.get('[data-testid="button-admin-create"]').click(); cy.get('[data-testid="admin-add-offer-main"]').click(); - cy.get('#form-add-offer-title').scrollIntoView().type('test'); - cy.get('#form-add-offer-company').scrollIntoView().type('test'); + cy.get('#form-add-offer-admin-title').scrollIntoView().type('test'); + cy.get('#form-add-offer-admin-company').scrollIntoView().type('test'); - cy.get('#form-add-offer-department') + cy.get('#form-add-offer-admin-department') .should('be.visible') .scrollIntoView() .type('Par'); - cy.get('#form-add-offer-department') + cy.get('#form-add-offer-admin-department') .find('.Select__menu') .scrollIntoView() .should('be.visible') .find('.Select__option') .contains('Paris (75)') .click(); - cy.get('#form-add-offer-address') + cy.get('#form-add-offer-admin-address') .scrollIntoView() .should('be.visible') .type('description'); - cy.get('#form-add-offer-companyDescription') + cy.get('#form-add-offer-admin-companyDescription') .scrollIntoView() .should('be.visible') .type('description'); - cy.get('#form-add-offer-contract-container') + cy.get('#form-add-offer-admin-contract-container') .scrollIntoView() .should('be.visible') .click() @@ -184,21 +184,21 @@ describe('Admin', () => { .contains('CDI') .click(); - cy.get('#form-add-offer-recruiterFirstName') + cy.get('#form-add-offer-admin-recruiterFirstName') .scrollIntoView() .type('test'); - cy.get('#form-add-offer-recruiterName').scrollIntoView().type('test'); - cy.get('#form-add-offer-recruiterPosition').scrollIntoView().type('test'); - cy.get('#form-add-offer-recruiterMail') + cy.get('#form-add-offer-admin-recruiterName').scrollIntoView().type('test'); + cy.get('#form-add-offer-admin-recruiterPosition').scrollIntoView().type('test'); + cy.get('#form-add-offer-admin-recruiterMail') .scrollIntoView() .type('test@gmail.com'); - cy.get('#form-add-offer-businessLines') + cy.get('#form-add-offer-admin-businessLines') .should('be.visible') .scrollIntoView() .type('Agr'); - cy.get('#form-add-offer-businessLines') + cy.get('#form-add-offer-admin-businessLines') .find('.Select__menu') .scrollIntoView() .should('be.visible') @@ -206,7 +206,7 @@ describe('Admin', () => { .contains('Agriculture et espaces verts') .click(); - cy.get('#form-add-offer-description').scrollIntoView().type('test'); + cy.get('#form-add-offer-admin-description').scrollIntoView().type('test'); cy.get('button').contains('Valider').click(); cy.wait('@postOpportunity'); diff --git a/cypress/e2e/parcours-cv.cy.js b/cypress/e2e/parcours-cv.cy.js index b581d37fd..d573bf5a0 100644 --- a/cypress/e2e/parcours-cv.cy.js +++ b/cypress/e2e/parcours-cv.cy.js @@ -42,6 +42,88 @@ describe('Parcours CV', () => { cy.wait('@getAllCV'); }); + + it('Créer une offre publique', () => { + cy.get('[data-testid="search-candidates-post-opportunity-button"]').scrollIntoView().click(); + + // cy.wait('@getCandidats'); + + cy.get('#form-add-public-offer-title').scrollIntoView().type('Form test'); + cy.get('#form-add-public-offer-company') + .scrollIntoView() + .type('Random company'); + cy.get('#form-add-public-offer-companyDescription') + .scrollIntoView() + .type('Random presentation'); + + cy.get('#form-add-public-offer-locations-0-department') + .should('be.visible') + .scrollIntoView() + .type('Paris'); + + cy.get('#form-add-public-offer-locations-0-department') + .find('.Select__menu') + .should('be.visible') + .scrollIntoView() + .find('.Select__option') + .contains('Paris (75)') + .click(); + + cy.get('#form-add-public-offer-locations-0-address') + .scrollIntoView() + .type('Rue de Paris'); + + cy.get('button').contains('Ajouter une adresse').scrollIntoView().click(); + + cy.get('#form-add-public-offer-locations-1-department') + .should('be.visible') + .scrollIntoView() + .type('Rhône'); + + cy.get('#form-add-public-offer-locations-1-department') + .find('.Select__menu') + .should('be.visible') + .scrollIntoView() + .find('.Select__option') + .contains('Rhône (69)') + .click(); + + cy.get('#form-add-public-offer-locations-1-address') + .scrollIntoView() + .type('Rue du Rhône'); + + cy.get('#form-add-public-offer-recruiterFirstName') + .scrollIntoView() + .type('John'); + cy.get('#form-add-public-offer-recruiterName').scrollIntoView().type('Doe'); + cy.get('#form-add-public-offer-recruiterPosition') + .scrollIntoView() + .type('Random position'); + cy.get('#form-add-public-offer-recruiterMail') + .scrollIntoView() + .type('johndoe@gmail.com'); + cy.get('#form-add-public-offer-recruiterPhone') + .scrollIntoView() + .type('0698754321'); + + cy.get('#form-add-public-offer-description') + .scrollIntoView() + .type('Random description'); + + cy.get('#form-add-public-offer-contract-container') + .scrollIntoView() + .click() + .find('.option') + .contains('CDI') + .click(); + + cy.get('button').contains('Envoyer').click(); + + cy.wait('@postOpportunity'); + + cy.get('.ReactModalPortal div').should('not.exist'); + }); + it("Ouvrir la page d'un CV", () => { cy.fixture('cv-cards-random-res').then((cvs) => { cy.get(`[data-testid="card-${cvs.cvs[0].user.candidat.firstName}"]`) @@ -59,19 +141,20 @@ describe('Parcours CV', () => { // cy.wait('@getCandidats'); - cy.get('label[for="form-add-offer-isPublic"]').scrollIntoView().click(); - cy.get('#form-add-offer-title').scrollIntoView().type('Form test'); - cy.get('#form-add-offer-company').scrollIntoView().type('Random company'); - cy.get('#form-add-offer-companyDescription') + cy.get('#form-add-private-offer-title').scrollIntoView().type('Form test'); + cy.get('#form-add-private-offer-company') + .scrollIntoView() + .type('Random company'); + cy.get('#form-add-private-offer-companyDescription') .scrollIntoView() .type('Random presentation'); - cy.get('#form-add-offer-locations-0-department') + cy.get('#form-add-private-offer-locations-0-department') .should('be.visible') .scrollIntoView() .type('Paris'); - cy.get('#form-add-offer-locations-0-department') + cy.get('#form-add-private-offer-locations-0-department') .find('.Select__menu') .should('be.visible') .scrollIntoView() @@ -79,18 +162,18 @@ describe('Parcours CV', () => { .contains('Paris (75)') .click(); - cy.get('#form-add-offer-locations-0-address') + cy.get('#form-add-private-offer-locations-0-address') .scrollIntoView() .type('Rue de Paris'); cy.get('button').contains('Ajouter une adresse').scrollIntoView().click(); - cy.get('#form-add-offer-locations-1-department') + cy.get('#form-add-private-offer-locations-1-department') .should('be.visible') .scrollIntoView() .type('Rhône'); - cy.get('#form-add-offer-locations-1-department') + cy.get('#form-add-private-offer-locations-1-department') .find('.Select__menu') .should('be.visible') .scrollIntoView() @@ -98,27 +181,31 @@ describe('Parcours CV', () => { .contains('Rhône (69)') .click(); - cy.get('#form-add-offer-locations-1-address') + cy.get('#form-add-private-offer-locations-1-address') .scrollIntoView() .type('Rue du Rhône'); - cy.get('#form-add-offer-recruiterFirstName').scrollIntoView().type('John'); - cy.get('#form-add-offer-recruiterName').scrollIntoView().type('Doe'); - cy.get('#form-add-offer-recruiterPosition') + cy.get('#form-add-private-offer-recruiterFirstName') + .scrollIntoView() + .type('John'); + cy.get('#form-add-private-offer-recruiterName') + .scrollIntoView() + .type('Doe'); + cy.get('#form-add-private-offer-recruiterPosition') .scrollIntoView() .type('Random position'); - cy.get('#form-add-offer-recruiterMail') + cy.get('#form-add-private-offer-recruiterMail') .scrollIntoView() .type('johndoe@gmail.com'); - cy.get('#form-add-offer-recruiterPhone') + cy.get('#form-add-private-offer-recruiterPhone') .scrollIntoView() .type('0698754321'); - cy.get('#form-add-offer-description') + cy.get('#form-add-private-offer-description') .scrollIntoView() .type('Random description'); - cy.get('#form-add-offer-contract-container') + cy.get('#form-add-private-offer-contract-container') .scrollIntoView() .click() .find('.option') diff --git a/cypress/e2e/parcours-entreprises.cy.js b/cypress/e2e/parcours-entreprises.cy.js index 35c3f893a..6df852382 100644 --- a/cypress/e2e/parcours-entreprises.cy.js +++ b/cypress/e2e/parcours-entreprises.cy.js @@ -11,116 +11,226 @@ describe('Parcours Entreprises', () => { }); cy.intercept('GET', '/cv/shares', { total: 184222 }); + + cy.intercept('POST', '/opportunity', { + fixture: 'opportunity-res', + }).as('postOpportunity'); + + cy.visit('/entreprises', { + onBeforeLoad: function async(window) { + window.localStorage.setItem('tax-modal-closed', true); + }, + }); + cy.wait(500); }); + describe('Formulaire de contact', () => { + describe('Ouvrir la popup du formulaire de contact', () => { + it('Bouton header', () => { + cy.get('[data-testid="button-contact-company-header"]') + .should('be.visible') + .first() + .scrollIntoView() + .click(); + + cy.get('.ReactModalPortal div').first().should('be.visible'); + }); + + it('Bouton première section', () => { + cy.get('[data-testid="button-company-first-section"]') + .first() + .scrollIntoView() + .should('be.visible') + .click(); - it('Ouvrir la popup du formulaire', () => { - describe('Bouton header', () => { - cy.visit('/entreprises', { - onBeforeLoad: function async(window) { - window.localStorage.setItem('tax-modal-closed', true); - }, + cy.get('.ReactModalPortal div').first().should('be.visible'); }); + + it('Bouton dernière section', () => { + cy.get('[data-testid="button-contact-company-last-section"]') + .first() + .scrollIntoView() + .should('be.visible') + .click(); + + cy.get('.ReactModalPortal div').first().should('be.visible'); + }); + }); + + it('Remplir le formulaire, envoyer et fermer', () => { cy.get('[data-testid="button-contact-company-header"]') .should('be.visible') .first() .scrollIntoView() .click(); - cy.get('.ReactModalPortal div').first().should('be.visible'); - }); + cy.get('#form-company-contact-firstName') + .should('be.visible') + .scrollIntoView() + .type('John'); - describe('Bouton première section', () => { - cy.visit('/entreprises', { - onBeforeLoad: function async(window) { - window.localStorage.setItem('tax-modal-closed', true); - }, - }); - cy.get('[data-testid="button-contact-company-first-section"]') + cy.get('#form-company-contact-lastName') + .should('be.visible') + .scrollIntoView() + .type('Doe'); + + cy.get('#form-company-contact-approach-container') + .should('be.visible') + .scrollIntoView() + .click() + .find('.option') + .contains('Recruter inclusif') + .click(); + + cy.get('#form-company-contact-email') + .should('be.visible') + .scrollIntoView() + .type('johndoe@gmail.com'); + + cy.get('#form-company-contact-phone') .should('be.visible') - .first() .scrollIntoView() + .type('0698754321'); + + cy.get('#form-company-contact-company') + .should('be.visible') + .scrollIntoView() + .type('Entourage'); + + cy.get('#form-company-contact-position') + .should('be.visible') + .scrollIntoView() + .type('Développeur'); + + cy.get('#form-company-contact-zone-container') + .should('be.visible') + .scrollIntoView() + .click() + .find('.option') + .contains('Paris') + .click(); + + cy.get('#form-company-contact-heardAbout-container') + .should('be.visible') + .scrollIntoView() + .click() + .find('.option') + .contains('Autre') .click(); - cy.get('.ReactModalPortal div').first().should('be.visible'); + cy.get('button').contains('Envoyer').should('be.visible').click(); + + cy.wait('@postContactCompany'); + + cy.get('.ReactModalPortal div').should('not.exist'); }); + }); + + describe("Formulaire d'offre publique", () => { + describe("Ouvrir la popup du formulaire d'offre publique", () => { + it('Bouton header', () => { + cy.get('[data-testid="button-offer-company-header"]') + .should('be.visible') + .first() + .scrollIntoView() + .click(); - describe('Bouton dernière section', () => { - cy.visit('/entreprises', { - onBeforeLoad: function async(window) { - window.localStorage.setItem('tax-modal-closed', true); - }, + cy.get('.ReactModalPortal div').first().should('be.visible'); }); - cy.get('[data-testid="button-contact-company-last-section"]') + + it('Bouton deuxième section', () => { + cy.get('[data-testid="button-company-second-section"]') + .first() + .scrollIntoView() + .should('be.visible') + .click(); + + cy.get('.ReactModalPortal div').first().should('be.visible'); + }); + }); + + it('Remplir le formulaire, envoyer et fermer', () => { + cy.get('[data-testid="button-offer-company-header"]') .should('be.visible') .first() .scrollIntoView() .click(); - cy.get('.ReactModalPortal div').first().should('be.visible'); - }); - }); + cy.get('#form-add-public-offer-title').scrollIntoView().type('Form test'); + cy.get('#form-add-public-offer-company') + .scrollIntoView() + .type('Random company'); + cy.get('#form-add-public-offer-companyDescription') + .scrollIntoView() + .type('Random presentation'); + + cy.get('#form-add-public-offer-locations-0-department') + .should('be.visible') + .scrollIntoView() + .type('Paris'); + + cy.get('#form-add-public-offer-locations-0-department') + .find('.Select__menu') + .should('be.visible') + .scrollIntoView() + .find('.Select__option') + .contains('Paris (75)') + .click(); + + cy.get('#form-add-public-offer-locations-0-address') + .scrollIntoView() + .type('Rue de Paris'); + + cy.get('button').contains('Ajouter une adresse').scrollIntoView().click(); + + cy.get('#form-add-public-offer-locations-1-department') + .should('be.visible') + .scrollIntoView() + .type('Rhône'); + + cy.get('#form-add-public-offer-locations-1-department') + .find('.Select__menu') + .should('be.visible') + .scrollIntoView() + .find('.Select__option') + .contains('Rhône (69)') + .click(); - it('Remplir le formulaire, envoyer et fermer', () => { - cy.get('.ReactModalPortal div').first().should('be.visible'); - - cy.get('#form-company-contact-firstName') - .should('be.visible') - .scrollIntoView() - .type('John'); - - cy.get('#form-company-contact-lastName') - .should('be.visible') - .scrollIntoView() - .type('Doe'); - - cy.get('#form-company-contact-approach-container') - .should('be.visible') - .scrollIntoView() - .click() - .find('.option') - .contains('Recruter inclusif') - .click(); - - cy.get('#form-company-contact-email') - .should('be.visible') - .scrollIntoView() - .type('johndoe@gmail.com'); - - cy.get('#form-company-contact-phone') - .should('be.visible') - .scrollIntoView() - .type('0698754321'); - - cy.get('#form-company-contact-company') - .should('be.visible') - .scrollIntoView() - .type('Entourage'); - - cy.get('#form-company-contact-position') - .should('be.visible') - .scrollIntoView() - .type('Développeur'); - - cy.get('#form-company-contact-zone-container') - .should('be.visible') - .scrollIntoView() - .click() - .find('.option') - .contains('Paris') - .click(); - - cy.get('#form-company-contact-heardAbout-container') - .should('be.visible') - .scrollIntoView() - .click() - .find('.option') - .contains('Autre') - .click(); - - cy.get('button').contains('Envoyer').should('be.visible').click(); - - cy.wait('@postContactCompany'); - - cy.get('.ReactModalPortal div').should('not.exist'); + cy.get('#form-add-public-offer-locations-1-address') + .scrollIntoView() + .type('Rue du Rhône'); + + cy.get('#form-add-public-offer-recruiterFirstName') + .scrollIntoView() + .type('John'); + cy.get('#form-add-public-offer-recruiterName') + .scrollIntoView() + .type('Doe'); + cy.get('#form-add-public-offer-recruiterPosition') + .scrollIntoView() + .type('Random position'); + cy.get('#form-add-public-offer-recruiterMail') + .scrollIntoView() + .type('johndoe@gmail.com'); + cy.get('#form-add-public-offer-recruiterPhone') + .scrollIntoView() + .type('0698754321'); + + cy.get('#form-add-public-offer-description') + .scrollIntoView() + .type('Random description'); + + cy.get('#form-add-public-offer-contract-container') + .scrollIntoView() + .click() + .find('.option') + .contains('CDI') + .click(); + + cy.get('button').contains('Envoyer').click(); + + cy.wait('@postOpportunity'); + + cy.get('.ReactModalPortal div').should('not.exist'); + }); }); }); diff --git a/public/static/img/header_pic_guide.jpg b/public/static/img/header_pic_guide.jpg index afef22d3961928f8adc0aeed498de3fc163595a4..d8189da1af975dc749825087b9dc28bffc76fc0c 100644 GIT binary patch literal 924618 zcmeFYWmsIz(kMC%6WlF0g9LX58{Az21oy$+Edd5k2oT)e-93aL2?Tfd;1CiLAbBAq zxr@BA_jAv8zI)I2_v~KJdb*~&s#aH3TXom`TK=^SB2ZOSQ3Rm?i4%nr1p2i@0#*oc zv;%=uRM zL{gUvMZ;3QPMzc{x5jQ@@a3MM8d4mJ)s zE-pDgJvBZ5|8e@&2O`7(g`xn$GJwE@D5!)ezuti8fOg)yvos3O*gq2r7!`644IKj$ z3mZUaBe>HPDj0%#?;ZpKUau$_{iHfG=S%|D zUg4NnWcSG_C?7Dhu(Gkk1cih}MB#Gs3W`d~Dyq7AkMs=;jf@dCws!Uoj!xb_zJC4z zfk6?GQPD9^pT#Dpq^6~3WM*X-mz0*3S5#J2H@CF5wRd!Obq@@_c{?=xZe(Cyr_hb zd-Qy0L^2Q2tvrbt_`@(rWRr@T`Y{;=bk0ewy=Jh;m|!~(KHrJP9O zf6289!a+p=jE71Hk^)`-%w@aB1(Kp5sfiMO%dq_-$Zt-Xh(~sYm&TIQW!_~x|H?*u4CFnme%E^9X zLCV?u(o`PgrD7{8TJO}9vb>q2<{en3V4kM>{wwQDf}(Ue_S5=eT#~RbirqG=lcr`B zIu@Kj(l~^_oog_+PY8Ng`DcZ;wZj8z^f}Tq%F&N=$~OiXw<4I{bp*P!>InB;^SbJK z7jpfkl`JhEjnaBf2HJ(9=|>WRp7wOJ^dfkM(Ar?L0%@Y-=O^ z1yZ5*tF8^}Tq_u8ew@ufNUIn$`}A5e4H~ZSJ!`nA%8k)oV2h^6g@a2J zxc%&7S%3^th~72#eZlh9aLfKF^5g9NHe7yIn#N_FfVxD(+;rxaw(XF~=z7>lYP=Z( zN3gJ5`cd8+HoqZ(zGKt6gUIf8u1ZE}i$;OUgpG{mecx~9O1NFZTMD=;q(_6OZC{t! zoh${#zj-s{Hz0z$TI~0HzLR+|TH))9G80qsqNiyzhV4#|gE>_4H%fTJwRH29W@|=B z;wreN7PGL_h$9SD)=%PG;tuuCf7T13a#Bn#iLCeL8fXYbNY>#9r#ncF(c`=pQr+{C zLQT^9bVl?AWHUu=;Cp^W(Zj(+B=if!yjS^^n(owSWW%EJ!RYX<)bvM}D~{(e>Pp`P zP85P@OS_t_E~~paWySPCp%gXnYJuZfc4{K{jc)8WoP$pcZ;`)1idto+;7UirYvU)X zrd_DXj~8Q%XI$)TPw?A4&;$~$w4cF&0rxtXATWcm?U5~C9NSb=ZE2gJ38A%S)C*X# zlx{(tI6S|HGO>seO04tn^IMTSgHKv*rZKd`=kAGMffBtZnDWpU!=`ok9)wbYx+C^U z`Lm;_IT5~^g@j4cF=1M|u`kd`=F;{$Nc!62r%2hmaP{7M1PPkOaS(RSVrT0Myw0pz zUc6;DB;deWU{o@|o$cUa*4PTrrSLHkD^w3@>#A5&O}w{DsydUl?ETh_`xgirxg9h! zKFt(q$RzGYN^_Q&yv0xCsowrA--glbw4m^Itj6v&$C5F=saVWZ2PIE1- zcJ%{nn|aNs9fAhq=;Si`AE}k^C$t&O~2gf*~ZW45=4y1&x#7x0*#ODh zkLF)5EPmf4QIPLJq?`Tea@p|sB*km_po_y!)Rap{NZ^ztl~bGeKwOJ>%_ zY4(i6?b}sDWYGH}7L+} z@IPp;E`?*xiXvoN4d2VJ$C@~Wb?#O*8jL&)@LaXjGf*wWy{m(MrcB?YV4Y^ zzqeaO*->dVfTORZ6HlZ1O@F4DjV7R})O3i9E_g(w#Ew4Bpm~~AV%8<=NEz^0pZ%Wc>+a#bEa zOO4ceW#N{QM_ z%yMcHBoy|zx;rsiEaXe$?m5lz%LkQdYt!GfKmkqSN~Mt8q{nVxwWM!9$U{tHKQML0 zZeWj|#EPZFe#wK+a&a$;IoR;M$&2CC^3tlRYx2cic)fBMW%Ilv)8DS~@PqS*cn#fQ zKcTpp)dER#B#-KePZd-C5L+3!zxEsJo*Nn-rH)J$+~i?qFV&{uJ(c<`^+i`(`KWhM z$iDResdxha^jh8LYVsD{=6WCB@*&J#2bI1&NyEx_9P>gn<&?MM$YzJK^ zTs}+FD70WV@Ql3^B^TT>QrxoFwrC5?&ww2f=32T9lOB0l$Wd zWj*uE@P6T~y?*LpLQlA}9F&XI-#NeeNHK9onF2Mo0ah|jzD*n5;{CyyGI(O7ts}rs zjS_b-7wd}#VqobP$Sq&(kds*>07?=wkK4Wg)`e zmdfTpk+!`2nfT!fWt8Tve$cB4()2f;inG*7S2g1J8TC$7IhET#R;lw-<&w*?ksK#C z0}g(;p3D~FiZS({w8{eWes%;`n^Dv=b4`tQUF$u@>e{6-I9u(HqVn;0f<#?-`3n@Y zWBLbu2x6o@*0Z^5O2^+%;^mH3teYTt`HVZWqcP;d(oU3~AI0=L5#N>I@n}W9!jr4> z>iwP16V+d{MH$`8XSXI4f-ws9raT$itH^wge_DOh2#iL~zO68Q)yZs|HL&~Rqx0Mq zKU$tJ(6`10TLfQ~tvCGw)vB!H2`p5TeQ-zgu_-)Y6`ZwXExanEb&zmC*A#KSW0?n?RpeoA@o3IE_aAga2 zUT;Cg$0)+B{S&8(7Y){Jv#u^BxzA|6iCbQo`rkUG)mM3euy*NG55!djCTcZ5u4RQE zej)jQajBLQ{`GB2(Xm!X%2dmKhCyaKFQ=i2U;2e;A2-m=3Hr--ZqdAP?bp{w zU8DQqwEsBI**T8^$*8;jvo&hkN+5$p+>cb{Bi^P67TdJyL#DhgsD}hAHW3G-sTxP3 zHqG;hd9e4eo60SpnrDz|lxA9n)0@>H!`x;L>YHDnBwhJ(-FG9UnSN|~)ZYRM^XV4m%>dU~8ROgi<) z)F6 zIat0*ljct8ML8a6(0(m-#Q!DaxPkBdd!R}v6w7a2cyt3#xiaCd7dbkzN!O=<%F0$9 z`*A@qEVHhPNXgXgXe1-1mR=S3yKeY2D)_N(_;=lb`7lZH^9!jU~Ws~Aw|a4gOh05K492|X_U1!DZcVXv6TT*qVs^z`_cJ(-_rgDa*vYDeYf zvFktZ(YiaCzqA?J(eO)gUKr}>r%h&Ser{SMBk%wEuEKPZarOYZ{lWbQWZr;3&{9e# z#4SxHaBvOY0j&c0oZ#AftC5{$nUi7HIm{kd6uN0FSqY5~h8*3eUzPYWv1|@Xww4Pvu>RZ);L9PN!F=DUQY07@h|- z<(<)@@7szy>;$)@xrW&8f%8lieS?}~XCpubUkoFy0xfule< zcQ0Egj2p(y%LN=s`tdUWJiKh|;5zb(e{leQNih7?RDXYeZhrx8cQ1P$K2cFo9$tPP zets?hgUdV6&BrQ$%gvkdZw~Ud-Uu&84+SCAg|Jodvvu=f{G0sl)bk(eJ0a{HT|It_ z0ch)=kJupo!SV3*a`|0vgW$1sv2_KQc>{Lg`v(`G`v>{IZ2aA)0SV#q?g-yIaus7=0Zq0fZfwwSa&Xm#CE$Ou)+4S`^05_cy(k zmm|=PtX%%RJ$HO;06uoY0)qTPB0^lEyaE6p5q=whk02kHwII+WTbP|FKTLoDdZ$FV zjJApd13x$KUq7{7tbFX;y<8<2G^`L%E#1G0^&DMob$zVvbi^mj%gYPn=NIM|;1w1W z`kPSS*2^2{8F##XpG7l3Z4hupfRhzqW=B^mds`kS4_o`+t%u8b*;@Iyd+E8myGStn zbAtV6od(dUZLEB(Mo3kVC>aJO-^3;h2=y&FcqZKv$$ z4SY86uOXpp>-iVt;t2iSA>metyY4N);BDn+Ys2tYA;Q7R&E6Ims6c1=6V36zu$`cw z0L(^In2$>sVFTEnj~}p|6~8E#ov5gd9Us574L>hn`#CtP4g5y~|MzL&U+#&m8?e>!2b_;z@4<~Ka&i{h zI$DY<>Iy(`0C2Hi=z?(dhVX(wu5LbFI!dxo;GP7hj-lztf$BIJRz&bb*`+c&R~3AQg}XNE-wNS%Z8*jvyD1 z4~PrM-GCBrkPc8U`@f;5{7tV7P+0?1jvxd;ArEo~xq_^I(}V780N?=WU%K_Sy9)>b z5(QQ zzXpI{5>!{TZB!H>j^giN5?a6-kh`#pJ5~HnKVrlRRtK~qzgVze{93scxRA>P|TA-JD^^kSHHq$RkXd(fgsp08o_ z6F>->i9rkcuz@_5DsL?%NzW5c9bc~?sdtx>4PF;P77aQ6mw)V`Fhr!dJv#6^SB;(d z%5GNT;$I+_98#JjraT>#pxU3A>X>8A&J925kqElaJztra)6HD8U&w05unOTTdBns7 zYHHM1mDR=|6u~Ef{8SHVIV8m*C&z-|p`oDgMpji);bMVtk>C=vXEi#xlTK!%I85@; zc?c~r5{XJL$KK;A7}zU>XG6cBW4%sQRignRk;_nn>%Xd+{?r-rK&-GVGl_>4|$`cy*v>nn;!*FT;-9=Pg#d~M!~Bx|4o1>z-0 z!}-w$M3m5m!cm4mHPWSvqOV;p@O5zoUdHvLk zjWvcJ=tG`}J55i^B@^b2;v(-L+K!06-4J^VjjtPRuf;>P)Gi7`7Ft>s7H(Uz5{N*^vF0qFb>g8a52<=TsK{i{ zn-QeNRJ7b-;3ec|_bt1}QPe> z8MGgoa4u|{7MoDaI<<`ql@=dz?eC4_lrSNYeaNsrC@(Kmi2NSu&2HuD((UArh=}S7 zs^uH6mRa@cI6A8Mo}IORqZp;mC!3pT8xxXWiZ8@&FD`x_PW_~ltuEi$x6XN=Dja#l zx`HOtXi0_9H(2T>2CL89-?;XcGI+Z1!O-UhJ31t{9$)dRRo9Jp3N^c)=_~QUsk800 zILp&h&6f+&7i(iuDk(bqcKW00kD}7;P{U|x+$C@B<6B_+HXO&b8flEk=T>`TRuF6Z zkkH_u_w^@+YI{>QvqCk|QNO5M6$lkp_GxPa+aGP--w!i1k%Sf%O`G$H)-yv45BF!P z&_3RW&>S#ENj)pO``4jh^?o62q4!?QBchl^oXuDq2bC?0?C!XGqTE&jM|rx9uJI`k zBA!Cu%J1tkTbAKjmNgryVA4Mj)et8d=wpFwXA{XvOAd$2GR112DL5?@8Z|#=T5l^y zc*7UB($2CLhpNvq@R*FqT9$4E+{!OFmb<#`_BL2Y?zGJd^}vlqivZ>pm-01S#+(Y{ z>nZ2r)BKsG33pGS^!p0Y>&#k$Up>ymX=B<%gM{lp8l;}&D^=_@ps#)o=}4Rc=wwtnn&{RNu%w0wQ_G0^tXy=3%KNnfm^WQ1$z zfzrfl?u(ZqQS#cSu{Vc6sXOck{Y^^kXqHMU$)>$L?x2$!o^PSYm8WlgSveD%{1mK3 za}Yb9krs6udM<uWhG!GARy zJR)3~re2o*nND&vFotq8o=A-vmcdIa=Z8#K+HeKU3I@)UC%g{_aJpBjjb`B$+Fn~E zmzr(%fm^P5NO8O(=`a}?S#4FDzH}m4Wfk-RZ53=#BW4kd7EwndpQ=i|+-2Q{ZC6KO zCx*^n>8xJUmgAIH&Eb^2{Ls_eUWEs49_N$Lb8_s{OB;WY;>;bqrD3|CiHDk~T>e3r ze6QH0zfaqTaYn&&s;Bo4DY4VbP=n{zCj*-YDqNG@AB7L!i+^4lS-X9$yFjrxvob2O z8Sy^oC*|kh0&)9#@iUTce)OdAsW73^^kHE+D5%?w;xFE1EZ=T| zi;SKE9bb5{yf7#-46uP3rVC&LZB_IE zX*Fz6F7be+_;5D%Gv&;@NYlc0r*$sb88J#-!|vVtj?dctGV-UN$LhKZw@nIl9p_wJ z+{|)1t}&hF(&XSXH#09UGR`Z_373sM&w#9Sv5m$vDZE3s&8Fdc9?R^|D_lm^fBEgT z!3)O^2Q72L^5ds9R_1|SJ2c`y%P%A}e}Rn5F0HUrDpH>O0ySLx0*zi>r+8sB>b!f0 zV+UsK$2t)KyO`9Mfx{fQeYxLFOHlhJ#08?8?&sST zDMa7Sji0^uC5&23^UdEh8|%mq>7v1B8&-l&2QDiJP(m$v^X}8$7G%`udFTldW?T2? zngtn7rV}YgUMu3mgJme`b1YGi+m>+jqHFxS!JvmAAi;$|qO2p3(w5Rz$fB?~PsnsQ z>fTd~RiF>Yl~7GLJpYrX?QQdgE!@T;Z^*2%VgA?s5V>9tiYx@fIdX(znZe<@R z7JeF=?i!Gv+QXOky#=bgbt^xq%vi|6UVROnA^^ArR7HMv)w>o6>yII-**sc`2;_GR`J zf}{(LanSd)P9YbhX%q5v9TpCyym^h6riNif4@lpF(nIK7Hq?IQ3DvhEtE5go5zgty&^BP>jHWO&^ zboG90^seX1j77fwW41#!k;Sd@fXGA61Y0&hWn$^YK3NFK7~ftyTFcE<4YC^zuo? z_G5Foy%VufIqRqW)Kn-q7-0sF%vzA_8)md8&mD_Thn|;ECM4KSX+A#)lCT&)T@TD} zo0Cl1n)+s7fbVcA^40C5im?pdivlg}G*5Im(Ulqu6`6{{s(>vs8b(rCa8h{Pu`esc3hLZh5Ekm?>uGEk-s$ z;xa$(2wCh8-^!j-uEkS9%Ismi6PoqzPZl_0Q{Fq5H^cEqKCguxoAHu9N=~uNo9xd2 zaEG5Zu#qMSYfN-VT!?kH-^V+wHNB$!DbZ0w@zU-G+AQw)v}Oq|lXQ|5#z5)Dk7gck!W2?L1>-QYoRRXvNlUCPj+14s7AlbtJ#6pz^CdajSMOuO+N|k&kHe6zfo=8cJ$<_f|p# z=G(!#tYcQ_ODO40hq01#u$P4I3uL<$E+3T;z*trE9IG@BwQyHT5GbUqM8_?& zSQX*YQcSDNT`PX06BXK)fa3<~OD0;m^V)!6(w`2jD3OIv=zxV@8I#_Htlx#q%8r8| z=zvAh*x#IB{e!1LV*|t4UZ4b=Mak`TwV&pu*{*5Bs48s8;jLGlv-we02g6<%+j|?w4%qJsI0T*$5G`l}7p~brMDc`-RH}Hpk z)+51&hZkOtUza?eFxCP;#ytO8YhG*) zsi;xPH8C(wvikHmXwo%U=T$RNnB$8f7!O!jsnJmmgysaX28q+4=|ZEla)b26_bL>( znR+0l%hjU}JnL(M@Z_i5D&_BnL|7h)3-v8Xz&>;k(>JqL)@fEqFtP_wXE3BqXpXfD z;RMNP$ja#&aXx@F0v3^0wrMrw575FaVq%Ku`$H1gg&9Y68b@Us#r83+H`Sg#Gq^Ax zeo$CPYS_B3*;VT7T354K>(6C(RF(!p5f%a`}uGRCcHQ|I$q z;m!h2fo9vDuUiO@vrg9PF2jSw6>4cpVEH~YPZ$5T@FiQ#bLaAFf@C2BS<4400jW^u z!6Ubi60a9_v%G$0rf%2^-SFgW4F~$fJe>QQpRzU5=DQ=TuIA)r+f~7wUe+gsLy_N! zGqxns-L*ug-?JXAl9@QGA?%|p13P8#Iu>}kP)zXA=Yh1Rg&Lc(rr!E-)`Jkakg@%F zKJvFR@ox}(+AfsdV9~m7jZzl?UQ@AQ$4t1nFfBWiE%vNY(74Z0omR7wc@(*o^ zC#^*1FY_3-BxijlQftz>xLRnwIM)dIQn? z6o;h(jia&BZ{98&nW{Z`69eV5NZ>le<n?YaFa-y6}7S#q|ik;OaivKw+s0{yux{%Y6tykPM6|a+h$G%%CEO~w^zTQ|5P4VoxG5_PzU9JFeI^en&0ZZ$!6)nxA zSIJ|F(wUOH`6O&0dhwkt`VVFK@+jWOS$Eb@=M=_T4j47PD;30EMi8H&GGJ$=EXG(U-4eh+otRFv!pRf~%uPm253u@J zBEM>2%0TJdWQb7ClgY|V?ll5CUL#_5SHQ@VH*FXTwVD58j2C*0ommg8~0fhGx|5o@+7RGVW~>#i#|-s z)Y&m>*tYbByo$c&sa8r>MSalcN_)B=Ld<032;=%-1PB~5by}8){z`(Uh65z!Qe4LD znhXjI58AN^9J0`O!}<#wNiz2hnBM|UcZ-vk`xt!}OhbGY)`m6+2Hyk8wYV|AcT;;a zT6UsC@C8>;5AbD*pv+hZuW)TulB9Pwk!ntTEX~0FRtD+?`A!SWQe42KBsXtGQP@$3Fdr+2Y2T4%zk0}$hO=)L+W^-Lw!e>PRUq}I~H?% z<7#+5kNSshM!g+;(c|jT?QqM0n80<)QLn^|fPB38f@wz7>QKA0;q8wUf$sChcd2@R zm>Hyc`Rx5L^!TJTG1q-N-kDiHEb*Zv)b`0#+0ic$M+LICPBLb}(M*Z|s>^ay>{G!; zvzI$jQTN!=ll7k`TRA;9;$r?q!vatC9Fy+(bFXUU9C>lmM%`CD8!if>&e)((?a8H3 ze_1UW?pLCulJzVbkvH?@@;D^aRnnI^4hOCODdVAfYc`nKAs(cC#2G(59)BdsX4C~b zi&5G`J?%APfjQJ!QjHa9j<&`Cq>SvMY2^*jj%?*qtCIV5Qm zQ#N@7g~=;CK+EP*(+OBEaGrQU&Q-Cs0l&Nr8`@0rMa>B9tm|s^`f}y1C->LXuTnba z?2XAxB82WM$u&vUI(uuol|I{VS(iw?1;5o&Z$y~=0@dWq#D40!p-EHeU+e3U(j9&^ zv-9)i6&sJZBd^Xy@jp}utS z13B)Jlm_MP(?!pPbRojb^>}RpLAiG!>P?+QG1@m+$V5;U!?4V>_HD?I(6Ma-OG|dr z=%{;EC}1>Z%k4P6QtOCk+rm6x?SjJfr{n~Lh7qVZvaq;*B^oa)-N(K9k(1=$^4o{; zkKinn4-raU%1|g7mYag4Fhj0Pvz!*j+yhl|2!sgipo-~|N))c9L!3OH*ocjG7z>o3 z&?lpu1J2)_S8g2pjx#)v$Jpz6t-HgRMyi3w$G7~$4nFt!o-J})Ms`=>v$9tYPx($| zfBn+$Z3-XpOi9rEG*eLQH(c)JI~6@sA$4)n>+ca1g8gZD)ja0@w3NkA!}7eqoXMbR zYz0q}x1U$2z-rmE=NX zeckhX>2}Is%D-E%%1?d-9-7zoLUKN5T;j`Bt;ctJO}E{XbC=B+>d82ob|1NeIkgK3 zJkk9t7W<3OTxw>d)9HPg0yhch{8QLrxzJD1=l~adySD81eBD8mZK>6 z@APqSr*Ej`Qf;2%@tsm(%J%=12pQa8z#_+hV1--JOJ^1qD)TZEAP7_iWC}rsN4eGKVg_Y@m`5svJUd?rl z%a|d(Ft3}Hsk6qDtjhw4a=$?TOrODG>jt}kjh`9UQx>|F(?wXrA12qtq}MyfVUJn!C_R(DX`bgf;$K?#2&LN~Nt=tCwX+!9&- z;bB}^=P)HyM>PqyMnb@(K{8j#+5wg>a7Ys&Cx;NpI;h&bDNRsTLx0QsjNV%GeF4)N zQzSACb(P4Qb~=%)$c60O*vO8IP0O2MuGMU(d_u4(YW}{SI-+o!!Lvj;vaE_;beviL zjPjc~e94aTAoFCx@ef_2waSwq#KxB;*MpOsyhr;Lv7HihSiT1Hq0VnR=g4v9H3UO~ z*%=K9jeXn?f4Xa#?R@exxyn^HRBI6RqKOp?V2DiFfh&BD z*GbpeTVDef?-wY3I$D0r9(-^Gp~!{~X=rnIs?jk{AwA)tbX(eb`K3qxn!0BX-QFBNwRj6dvC~GjS}9l=)ElM9E@AH<6xV0dO$qCuO7_IqUb3!5nrKod^qhc864fHlZEff*qU|4?N-xE z+xuv0?#s95v)_1X4zFlG(tAoz2o#hk4puxGD}T-f%MEH{U1wMsGoHZ6a@dlL$w_=Z z-r#po7t6#@`+gNqbVXck{-U+Mo)zwuSJP|$sn9~;==-;cmv4082ak6fv4NA8>ewrb zqJt|QwHWKO!^X~xb{#lB!#akcbNO{}?%Z>BuAaK$C7si=mF|ygCHD;rrDYODIAxG( zZf@e{9dDN=|9B~g403YPz0|eLE$g%NJPBjbmX&s*vh6B7=4N+O+ynVbLvI6q6pU3` zlkoE5U}C+Mi@UqqgKA4l6L_Lwymfr-g;!2`R7x-J|a>8pfGe}!}_G5@d_xV%O5AAQ+y-k^Pv*YqikWQqG=O<}OU z%CW)Q$GK^#4lzBsJe0S)U*=HL(lj)QF6$*kUE?rpBI3s7 zv9gt+F3I@xaulR#mKz#ByG&+tV+bsFNnwtt#G=I%CB%Ux)|m3UII4m;>d_yPhrAWh z?&c*+RZJ^R9X9cCN8J{ubqHFg^ra8ngdv@z7eA6C>`FirsMcBwvkRos|jLE@>wu)LPSue z{8aHRm>8-4rYSS0B#q>~8#p`+5~fbwmr5jalTt<_R9t^-p|?6=I3mu}EXxE*FQD4K z@ynJ!kSLw3%8+m0=yW@T=}=#7PBi`Bl}~Q^dc-I-xa?jHY6xG=sIM}Ylu|TwOm1yHjTB-ZgsPK>)}UHzR$3q)4c z&F39iN<{zs=SxRZn(PDPk-%DQ?desO;zUX}bvB07gsDEU) zQ)A8tqk?6hDHg(Pnkm$nMCIaHDVX_j?omXhijg3G&pg0wDoKteY_{@zgZg}hn>)%* z^n4$PSsI=Tt^$4MtTvr>{uaaS5{1xoWg}5@TzgLSJi31Dr8isoo(Ubgtf|8}7pB~q za-10v`LW`(_mTzEIx4-P0c-?G!Xh4mugJXJu+(jw+>k zvyE9opd=l$+i@moCPx?+rwwHSVqKut7_IK3tyxZNJ^6Y+LU zra#H5@r_Lb+a%xgm^|l8r;R|BN#D)f zfY6G=VDszA*M-;^6wZ~~A95DFk1}_=e$d6Y+)(rTP8c4UVNZo9F=J;icQAx- z$vxR~pZS!k{8!NmOG zAubTfA+3(dne;Hi+F>pcI4jD(excnim9cG{lSkNNIJlA@Q9`}GG~I%8@QECvTB8Rfw($4@j;UdL)?6?ee2 z#zkF6GuN-`0)MP`j06qkyKU88S;#fmeBcc7@NlBQun`(pKqO)iFfG{gm{+}BP|BZF z-lt%gMdZCLpS98yvQd1mJPjWqB8$A%5%BWS5?Tjwa(o{ATEK-Y0-iz#Z76Ra0W^Rb z43Q3FK4Xy?$|WwAb|D~ei%X$r#KGkUfgK}HQ5u&iJ4j}7s5?DyNHj6}kkQ3ZnWytO zWUNE`GQ7YdogBmP)P|EX5;(GxnRW=kkLdeOXS2eIYSY!@Eoj=L60WRlgM7m2W>Ji; zsN^)T(E6x!&AZgD>JoXfzbZK9Th=jQQq9oF6c(A9uc+&qpp#5SG;Um=DSlXjXSmtX zBQhUtX!mkz@;luA`ElU)nCZ=%E)E}q`(jZfJ+H(IUd$~7c2_e7lo4f~>?`QE#gEBq zpk|MyJBzmXQ#{&pw$D|bu*o18;z{;Zs9n(PayAnQlFH$!UteZ^RJU9DgT-|J*jxES zfx@m!-mQ-B7+I-$JpG!cslY^i$Kf~NBm%qTk?C4eh2fRG>s6=y<$Hv5pNN7+KkFh< zIP(7?>8rxxYPx0zm*AGchcLLi!{F|&!QB}&KyVN4?(P~ixVt+9*Wd(5$b07d&$I9L zW$*6VYgN^%p3%PdwEr6b)xY|CoIXZs*WN_6I<3^c9k<8}g16F-B@|RT<>ghaOpQ0TpQewu^uwlu)f(0vW9Gx(^uCpIRLg zOe@=~a=0%nsY|av!Q)0Rred&TASwvM!^cnwD8i6JA+dZJ1C~9r=+EpV=JB~z$b&QWNyno^-4pNW8&}H8)b}T=c{`V^mBlu5 zw9#435^fsWy2R43G^q;xH4!2G`PW}*Q^v$RwR725qI6X=J$?V+4*rN(EIjb`%{utj zlOKKY7mHk3u_#JfAB~@p-OJ-#U(qp=Tx56?IPc=Wcsj9AGH`P$(AgQSxm@JVsqA`Fny4g>dvps1huTwWCduW+s zroQvkPuS+P_um?rxFGYIT#JB!0tef`MvFmp_TPW6@OPbcwk64(dC3A5 zN^H!D5q^R79Pu@a7V*2E(iTJd2g6zdLBaF=R+t!r zas?LO_~`~tQjq{06tsmw2V~~4K)E==iP7S>hfd3V1{>~ue6lLHVg%U7gU5xBlMV$l zFCf%0sUT)y>chc|GeH4-X~O7KrE#?U%ZaJ@q?xf{M$4O=Ps&lpl8JcmlglxghSsgB zm08ZF!_|>IJapxTv>P|=9hKc9_WelWop+`x0!f+BqqK%Dm#05P{X-MA7zdAOG%96tKI!~AaFzm z*6~v5?K5$pV<7|;Zj#7w$_b7EwtKJ4SC{)A&^XO6?+L@YOt~P?lJ>n2) z5@)#Wu7!}`(86L6tUDN}Mz;;xWKX0^ikW8D*S*3@wOuIzB|(~?*0i1->L$<#2@ zaEaCgIwBA_fMA!ZQ$AAj?$%z$YS^NJF+_Dx0m$|{3L5Bl)#HSRMIXXT%m9JHbmIL3 z)jo*Ab9VHJM-XQNcW7zoHwChYqcV0IJ}O=LCGtF_4R>{#blx%^1X~5#WVf6#i{xx#vwbb$e{? zQV;cgLPqc89gz#?WCqVFMqX>tALN--&z5ZU0&JG1?@?s7=CJ;C9}Vg>$&M{!dWx0Z zI{UrS+2)qNFXxOuW+1MTaLu*&p0nwvw4>9JFqNQSOiO7Hxd}k`f&6gU4To1NfB*G< z&Z#8e9M+D>CGh#a#IMyA$?YtW7`hy20p~O}nuDtnBe8%XMn>s$e-Vy>gouQIB+fnn zCkeOD4#I(eK-{PZV1Yy|037Bmcv}V(O5YDrvtHtNYfS4m)~Su7jtm?5aV%-ql$!A*{U0)l_MVBw+7q_L zMi-^$9jVHojZd;GO0ww3*RRKsHHD9d$c;^NB~CftWJ(%nkb5|(O9CGPcH2k{&AKVP zOQ!#H3M8~WxOpAsyLpX4hP>j1P9~H`eAaUnj1QB82=iF(Wz-Z5v%-wolK%pk~pYe zC&=iE4)F>mzp*CO>j}c2~b`jhP9o?)nv| z=I|z2)zo}JUGsbBEzo{^u-z6-?}RPu`{``&kNmp51lNIeJZA#b8PW}rG3cs zYPP@AfQVc`ZqbO#eQ}DR%}Ja}z;VJgl-O1fNHb>yD`$fGxu{^2lfSWFB(@~MVH!S( z()nAijy*x=r~@y8oOH>!a+kdAnbd)8oGHp-!HuZ6By8{n5R_O8`KIMPFsI3cB28sH9wr3Y2Tb3uz%h8$Ko`48-^AHY|# z=6DiPIyUpq-hzzhLLIsX>-LVB3Z$r9ZsJiDRq__$ii{93EO8cty0Qk1l}o`qDtjw= z0UehDiU$$4oWFg0+>gTJYZL4Ieh!{P34X!>Tyu|%vzf^8ygD3fBu^6!bd1WfkBajYk45w3e!HTp7KVn)62K*Y+l2 zNG=i*1|A>*$6~w~1#U8=Feq3GvG4?zDA{A@?u2hwlF@S zvQ*Qg(~65SG=O7cc{T$Kj+yovD$R4{0u$` zOC^1>fpCY=lnC!M@tAR|PUaiyYfWpce2wk4$JW@Fk#eSS;lSP>HgwX_2ly*>o5~!} z#UYk<6XU+*w?J~DH+Sq0XJR3nglsUca1T z@DWSc)6tZ_OFY`spmQ4O;;3;g;&5U{9?{+W6M-ECIC02AkRu2LrpL#?0N`+7!H~(o zCqpmF5yPdtDg=?tqAqn4p*4&4yV{uR!LRa}l;C~#{!vp@R6GuzY!EwdOgbt_+=8y^!5COk@-eR>Fe&ueDvb<^vLjG~VnTk1FRu38POueiDua0PY!dToks z!UX4>hpG>;B5hPtInKN(3Ml=SNTT;bJ^aY>oT^H{2=7%@4d>Xa$=C#OWb_GuAkOu`J5kccwCc&Q^Tj^r7Up9lc!24ng47t(#!m| zmU8Kx`Or7<@G{jPCR`st_f@DK>i!G60eZf8SRq6a9eBq5n1nqMQL+D!JZWJ9MZAr+HII+M z@F0DngNxW4Z$+N0R8INsn((7U7OMuBbDjnEE#TI}3R8$4om^rf?II#7ZrL@7oRoSySd~&|_@;ewqnZvp~sw(b0v+|0J zR!(s@uj(6j;udLVbEH0xLN!uY9QL^C&R@Tf|5GTbAVKS<5D28uG&pLMKg2Xdz+V*^ z0EaMw=Y#O6Q77rtlhN3`EzOPty)(l;);044(o|@>m6%frQX?S+vnnH2Y4$^qo6ATz z=)-J5;t0iw+ePvg{Rb{1v)QSdXUWSawRZZ5Cnt!RWQ?2TtI>@xd%ZPLk!4=gm4vNa zY!;8-l!o)*DkG6G9wA?PwILVoAb>Qwwoy92ar4t`OY`n@4LFtiuh+4kG|lY$)P_fb z$_P@*>D}+5p>gVJWaEIZEs;KJq`~U$Pp`OMe?Bg~?y3Lw@QAv2_<`LpEnHwf#jOv^ zz^*Wua}o2~Rhh|@tbx+~ zwWn`AL1gB&@=f?DuCb#V)L}aScU~Ue65W9kJ%R6|pcA&ymJ@i{uG0UFmv3T3&Ae*nQ}QE%%@O{u ze`3JGN{AX5p96VFoINNJqQnk?v87BngcV^5z}&6Y-V)_HAM{sKaJ-{B zR7N!W?KmUovxzKwmg2xn@L?ciC9Qc>0(4m4fSiR-Bby32a3{%7u$9N}zjvNd(q<8m z$XrR(Lp&)D8$OCxQ!O4$ZA=t`G$#)l2c04XDMp&c-fbK0g(tfm%D-McE++vF!*Jx> zaXF@wkB>E0Gt7Uip{-$s%d*LW_a9%J8=!g49GgZWB`VJNJ0pj`oZo-@_X?c7)(E-H zv8~_Te5_NxexcMAQAO)>ZV+~VYr|bpK6>M<#;rlC!D4M7_TxXJ$cWi?TIre7t#fxU zn`-SeWR|AbSQWl#ozuQJo%g%F+U0Aic$zaA(a`y->VDtNDlm0*ShyEb+}TZ8CPaA2 z=9{FU&l zSe_eFJNk(o2RCySE;L>}Xqk>D-n?4hnGQ_1nR{Z)K*ed4Dj2Smk~u|Ni(<|MH|-3O zLm8vhDon55X0dISj=C~vQ&`YWG)6yTBW;$ht_u}R6XarTWeC?9H$7V3s4F1nJ#cxN z+|o~R{gvE!Xx5%}@+Rte_{9662GuE!$mn-N!kF*V8|Bgi_}=sNX6E^o)%dT=`n|~O z&d)Chfi8G2V#+0lJ54vl$G@k;rpk{!Cim3$vMc8I=Y{;+iFT-`pLqLNxBNegpU#kJ z+YxmCto-e9Y4CH^Kf%yw_gTeBsO8~btLKa04YpB!y|Dt-Oy?i$ni-ewoO2W}x zNJ-67qbmTp?aQ>)j1J;(6BRh`!#OlDZbWbb$&dlCYZVo%c9cFJPeqI?C0QkH*g@Th zBTU-hz%nS-X^Oo)SX%trBvxQR|J3HfM6z2|+pi~Z5XrO`X-YNul_Pnj4@RH$Ti7tC}LPDcUbiS&G_$lhrQ@*}Y8z zst-o}{yn74XFO&A!V?4cDe~~oO`r&@y%vWALz3dSQ9(dKY`7K#z`P^Kvm)#z41mLK zDXf%;p(gF5GAW=+ZXe_s~1pCy-Bl|z~Ar>WU(zk?s5sbgQ8(!;o0 z?3o_yKXbxX?g4d*xt8GdtS(8j%g^d_##7hrA%FkE(k1iv_tqipQji3Ob9X@nC7fYHQ;-kqnx`->*O0)#aZ)CS3T%0)N}MM0PvP zk&-`s<*MJS5y-Z&S_yCX%o8akfcB36E+FUXOjg<|h|UF%8#fZ_!4sZIk+|wNG8#%= z?&*Q8qSn>qK@NQAcJQB_u}P=`vmj>Eg0raYGbcCYu9X+~Qo_?x=d087d-#~00c1f? zG2njy?|Z#)7~uqKxYcUG^ayC!P4oR=UUaO`>41u`Gkm>ZVDtwqMnppR^Uei@(sqh)8Bco147yMa|^h((s)?ZVTGpvl-d-`M2wKbcE4Q~7-K!Tv znwjjmLZRp8DF;}?s*=}kvSC%;*;hFb2QAsZt~}l7VtMnuVg!SqlhKw&f3Q+F`uF<79Dih_6=gx+#-*EBsoWYv_f&|x zyfN@cv+uxnzohwnQ{cE_4!fFbEyJLyTta@^-<%`kimyPYJY5~m+l2ewi^a?<#@$4Y}$l6F5vlMDIBz)sK4YxY!`eEdh&h#Q~v`3CNF=2JOdT zNCDw72njLS2PHGkh_XGfQc%^{!Sa?t$&mwZ8saB{*fADa2#L${$qS8D{D>*PEI$P> z!O6Mrmo>}jb6iA1BN<_OJ;u``RHvU>16KX;IyW7r=77aW?r7|dIejZ>q(`RZl+dgJUdM<4-guE{Fn4XE_!EA5< zySibY7ujaVskhX@*_zK=SQVCWR*Yk`@UnS{NcKj1HG`BoXJ7AS>$U%_m57C4g`Mr?_$G=Se9r2lWZR z!0BwT9?@`{g^0JwcYqhaJ?LiXTv@qp41X6$^0Xd>t z6eJfgIzDNVC{%A1A{jqZ}1W!5~)blMOQ5{#*F-zfq+ zMug~zax(P0Qlbo~LH7B_!0zEFYDJ+oOs{Pxe!Hy3o66_4yMBAJtd|0B`GWqZLg!sd z9U*LiS%K1P(1UQY+TU0c}5LiV8^FzV`3gILmI3RpV z50DB5AWWLM89}^JbC?=ceXuj80h-~sG`tVQX(V-u2#;ByeT;{LquQscOeF9DBLOT8 zGrif3g82F5eXG97*=txw)4RIE^#@K|E22fuqJ{Xt;!iGI!cz4Sf2x#m;4S3}#m0(w zwDz2|wI4UA4+Z=OVEGMS2O}eK)Dn?lB_np|zUe+cG8W9J84Qm|)^;aWaPD6t#KN`q zxqD5}=iH%y_J}pV=J<>{b`dV&aQw3XZao`;}X}Q-q6>;4FC`c)e!{WpkNsyFPJ>3xx%WtlU8_jPh#1 zxBMCsF-915x#M^02c_z6OR2%?hh;jv+M1<|IO=Atn1IM5gqwe22*AqzejO4tWaL2% zBm~$6QE*5ofJ6`+ZP`97X~((T)(w4-q)07}ihXk4&E$}EW#}58fDk>-9Kmj^ERNQk z3_)D(rxdb$1Y9rxL8oN9O#@;vfF!X@UqDAFhhl!J8IU_bOGU*$}J8yfVYh*q^} z$7`orl}MyV(t-ZWvrUhP=oQd-fdU9!$b$%pu#X|$ zly>`7=*Q3JyreuLV;s-Xlt5RX&AaD!;=8wQI$esrrJ2g(rR8#gh=8uY4pS{#a{_et-de?V*XxzSakl#dMD7j z*_$BfEu*2KPU>tlzDC!o!75k5J>k(tpG=Py!v+48t8pWvpQr2g=zI9{UxxD|`{h^J z!>#8B3w9!W{%i4pwQ6@LA2&2jPr{lNncG7BC|=*9HQvKmaK%cI_uvyqk6sOmBS!Hb z;OpJX2n=`P)WA3-u&(NtW#e$7w%UzUFwe`-RuQ+gVJq*rt4TYCj(t9X*7JDiatY zTW_^Nk3o(?&(1D@iWQ2H6xVuc6d(p{dF;7an`ycCBUQ}fvRKGc6~COM%-fPBXEnjk z_e;L499wEzVyW+B>)Z{UY0s-SXiy=$X-Kd+yg8vrhq;i-(%o|Hsc;XBF^`&EG zZtctM&A++aq%xb2(%!s(zP26DolXCmz@ru*wf@)HD?epzZ9b%d6t+*^4BMRU&y9^W zK5xQ9w_nw}-~4-X&V*r7bW}{ge0tMrY)XUC!G$<6^K4Uj=IEBzv+`2zy|SH3k6zDj7TqPMkQ-G$Hzk-Mt*56YU=grFlRl zuW+a}Xpmp0>9u#(I8CvQ7C2-cOpP184*+FaK!J>82$E4FGKhR~kbYylklK)_e8iHfQ1!c6j^s&)%+A*npVQe1Jv{;Sp348w(xXtVx_v$5<4$NNSfio!T z7uN8j6i85iA`NpJ3L~fNRgPsLl+0{hLl6-eaZpD7BMUdHa-X)@`73re35{`1Y<2eY zuh@d+{DO>5y8@QOC)>lW9A%@ew94;&HkR080dxfcVvf|%Ig#_DlYm{L+wJwBR zd`IZi5MDA|uJQrxE+zePE7@-tv}dM)yn#1|xBpW;*-;4*$8eO?`h8F_*l}x7@U`e! zl!B;CdHKXw6e8xM+!BJ}In>r6g(tt6cgm(#z{n%wArb7sYEe#Fy3`VlFs;ZHT{<0N zuBN7AMdJV`9~gqGB}^M)-rZcUnZpBSMiQopw=E6b-#_AhAVV3PNjGn_imC{^S4dTE zsb3;5A@8R9XmbB8Ikt)xStWke8h{SO=I9SR(031>cf|^^h~mb_K$k+*J1_QddDvsU z$tTyWInPi!zRD@kwI6X(WsJIB$k177*L1dhSWU@k`8;~;erezAU6NkmITe7-r*pm^ zc2^)mNa8WJl#g`C=>Yxt^j`81IJ>bmG~8RyX8!u+oqH}Fh0^#lYffa#DXhPs9s6ax z_OaDjMe1roYsXIJI$|pb1_`G3k-YLr%BN2+{{ap}8_M2{M3&Ba0%DhbYD96WNo%@$ zUj7a6p_c#NUc50e9@HS6I%I*s%N#Z8QQcFGpRV1)gJn$*V5dw<=zFC>!oZN>kc5Nu z5A=ia39;B=zgnsN3E;HdoiG(5acE35W+Bccg*g=O%218slZiLZSAyxyQ3*%^i$*lJ0rAU%Aj=W2!w#}>_dy?3vY$$5kQdPj)Wk9I z+tv>TIt-iW!yX~p3P!TNJ2H8E1x^dS@v*7$2*F!q7)VGc>!v?B71FUngP=el3=2Pi z!i=CN+gmRd6h8{`*i_F3|A^!cwRE{bw`bf}D)=t6HuuAFZJz^3MajR6VM`C7{orQI z=ezLL5)t(b@CfZN;J&>4AlxPNIpM~yX7thDc}0Tq*v3Ph zUuQw%`t$ntjmb&p(#D+?TsA$YE?5N^5*mYThhZN&adXEu@lI#?$S?GJ-d6~_Vptjn zTpCkz1Y=U)vS!EAfRLq)D+#k=#)V2?Vlw{6V$ajmk^9hP*s`WYe%+SB$Nb`+SL?bj|P4|;F%_ZrV7{IEXS z<~=PawKKGu6TxOOK7ZJx%9%rNo-N^XiBv5SW`hNnQ0y_jV^15~303gPu81*x_VXC= zrub9Pc`~#05mL*}?p|hZjJxSdwjjXy>)W7G8GLFNSI~vQ;8OwL{N32h9}%${N~te> zGGiC6q-EhD@?CwRd0#WCS#>ObDso2rIxq#Y*Yi5lAY>aG6Op)a_C$}Zow7V76sfD% z+3IW$x19c7{mTmz=Od{87n%f%;X*|vLx3fdARqw{N?-Eq)YhlTwd95|vET|NacV7@ z#?1ISK7Gl^?HPfGH!l(w*Q=bM4uZ!Bk|{hyRpC~mCBZ}tH*F*tlv6>?{Z1>P*c;qk zm_x`;7apXHX8M2%Mr@UbdD->CEA^YFnMs;d?3q1SsODyVZIYUd4t@+~N5vq+K!{Ou z10oA}a#jIFhs=UuA$TDZQRWU=w@)u?B7Z|1rr#cp4UbK0oDUxb6GZPHmZaxTcZ^aE z@51&J4xYSrl{Xx?$GO(Bf4{z|eoiAbGN z6Q3aYn)BZH)9aOGZFxVdUIws%a4uxlIIz>i?zL2HydWq~0wSnQ0i^NeT~fFd4GW8@ z+H6sb-T3PMizH3AWKPQL+I9Z+HKi);2Nk<-aLo`0Kt?Zo zvf$YVhRty}qs|>J`0_u`D~)TnRA4W#kIQgQM)=;WgqCLv*GUu!1$H2(hT)NN@n0 zN($7r$hRg--7&e#!+P=K9@5N|D0(jnQt5J%SIsav*($LXMVMLLVos-1i1~4=i`stE zi;;DNyF{*k|5K_}rcN^RV|02sH>{Ha!YWKtFCs{&?`}!>t#jayeEbfaGyfs~PnUdT z?;@uu-Ilc=gOhq_ojb#p$56AE&S;W`vSA)qLkMzD+YQn1xhjc)OnYu%hW!4c#Z3Y6 zQ_ly^>!#iip4Ql?f>wX$z1DY8sb5iAjb!*~?pgw7p&dxBPm<643n5d)c+BRL#|s$R zswmbSLt9*WTLEH%TivNSdU_F@n-w|5kqJeewO|FG6sPU%(dr1pa6(-yZp}JPnOs?= zzphRvl$zvo-LsF*+vFc;8ZGL!5~jr(rhHg06b4~1 z1`fu+hyrZ+L!;Pn`r~3wHYsLfk4{=&a$$1Gfdr;Nfw!OuEqpOR%7Kj?GfVjBmDz=F92v^w=q$9@ zwxhEyWot$QqwMulvcf!$x(aNA*yyvxir&{)YSt#K}8v%t4w`P!}1 z@{LGUrIeGLV_Q!hb4zDf{|x4zzYWn}Fbo84!C(=XX{MMw5K`O>QaMEFt~ z8c{46ELSZ{C9m&$P~TS}7geq&Y%Kvlh1}gu6D|?bcxA;_a_(%G?99AX&DIrK^L@7~ z+>)-Dj?XL!I-E}>d&=9aq)U}JUj`%Lw3>j(xX{|6|X7>Fdun6RX;qTrwdR7(6dHiS5F z{t%}lb66lOA^HHk1!^61$`Bz3(ujnCVl}S(NRO`y3I=2b6-9wy0K<-I504QFZ;Bfa z$Gz!Hl`6Q1`1S?!6eJ6 zdCuYeTv$w^f^vQ?~L6^MVFP`h6xFp{stnam4x$q=~95Yr8Q zPo`@+`ZM&Iu1380rLQ65dw^JKfx{gv+5?CR6Ss)bWTFf2VzS^qz~K{_qmrSJxFOS# zxT*wW9>rNA4Sk9Dwa@HGSd?{0_?$@yp9G};60il>pmR4H|^g7LhoWP0P>CJLRjEYYKI_j&Hty(7=DqN<#y z$M3n%Gur_sXnDkPJ=^8h3Wfr9szYmacb;u|sJWi3#a0ZeTy>nt2ifT`>8$#bg;7gR z$;iC_%OlUK$R6D;ImKtAsFM5cziktj{sC`$DG(5>K%`akfl0JwiJ<9JLE^Rk#?+({CbS3vSlg%1ZqG$Y}upF+N3M>Imem9lqEdy ztdR+~S9=-rSF9drL;GQ9eMT>U42M{lWs%B{j5wB92+?FdEu%27tFz4@+pNgjUOH_+ zn(7#ff0}Wv=`oUTgv6i1A(psOa!csb^e0yRZTEya3h##UrI+m-O&3eq-|p)Q=RP%m zqqHb1k}3Z!;w@_Oqt)MK)0n~{^+)yX6k>#}v zbNSC{L*#W3!1)GyE%o zy3_u@Zm1Vudsh}p|Ln^4cKHVmwlv(oQ*yojOBi8md`*M3LKv_esuWhzFJ4ThW$I)K zZ=QwGpA8}CN1MQyS4f*^y(dS>hEjk>r!pl8b#2!*^E3`K;1CEAlviDrIY^UVC zs`Rl2Q#UCHG?+B%27Z%0pTCi6XG}LDAc#jz(ktkL%oh)wrr%T$;#|=q!L&G*X}N!H zhhJsOPFCZy$xs(E>m*tHIWj6nyE<`Zf=Sej1go;;67?(yX|Tjgj=STVPrn#-8>{MH z-iMZCt9V&SaYAe4w}W8n8aCWnO?U%j|LPs#XQbW5fqt<(`S&EM*2AB5HWZt4*ft!8 z=LZW76tSn!C-OAf8dvqlsgk)zy1IcjKVkQ_S?S1n=cpxAH37l48?i1?Ev?7)$QFi}_UuX00H*9B=pJTh3-}o}N%6#AVa@ZPf{})gV{GW7= zOe-E;IHMl5DHG1Fb>Ixw8kC}}m6>YAoxDO{!BpSqEg_9=5%+Ho{&Y?xkn?LM*_`}BqQQOkOOL3PRbv8%Jn@w-| zktBm`b--!@X5`7wi;E98F{nLk=EBkAH3rWa>Fc$quRry@jzGgi4Cas)6RaK{( z7L7EfwZF1y^AWuzeAHz--ix$a7$ftj%P*^4-7u{%;9DeTgdZ1X-}w1HZF|6hE(+hgG8d5Qw` zpP#iK+Al=Cy^n4#{dr{IL*PS-#ARUdGQlZ&e1J{bVED=v;I}9+5N$P@>l=yEFn1Dw z4@Vi8PZC2u-M_itT}E5DUKGU+BG@7g0@a%>_7A}5cVR4A_iY%&s{_@mUCEX8&~})5 zq;tUW4p|aO3XI4n%R0gA|0`j@h=qw`a8EkH)3U|G89`_Yf8YW@GF2HNtE*PmAz#pKER=QL4UvYom{ot z69|3D@gh%cK*#jG3$Q}>D{AleWa`wy4P-tg;pK@m8)0A888{whFNCVD;U(aczY5}xf^W35uda^Wo zO0xA*Q^_p&^|M&XAKzZzt@J+^z7KD1zVWDaiP7v6+ILU3yEYY+G@M0?w<)YrLv5;2 z$e+YB^A-FO;?I~DH^b>}8j!6W3)v0v7sGB1bhjARKxYYZt}3t{~;XxMau z8Nf)It_O+J;>Tw1@1M6zc8kO_0?&iL-6rM_uC&d>M%O7>>|atV%TzWIMk%A2f!w9R z?&9-4WMsE3AK3FxM$=-gQ--@4{{vw9fp>33s#X@b2%`|o07(%WF+xhot?h5RUxxZG zu?8ihK%fbb$NA9J!)e{I)STYmx3!aV_w&~}V`nGAp~VWUvEx5qMn%}4P7Zc}tLM`I zR?E}c%!}5sb}jn_PHhoY-RrxvFTz;@hFw}VAJE+w;KgfhPwGh9w@@i2`@;U-{5UV5 zTPUdaY`NfTA)ECro^LbeQd3(X%VRRS3b-M0kb1K?2LS7JPQgdOp(Ymx47>Tua z<~DmaGFgTns*X49zF3pc0HgZpZ{@4p_3;)rHZ&MI>3`wK@!*G64w+~U{YYK$@d&IJ zc@+KJDAEcfM`c$m6ehxm;MsHIZ7>!G_BTIpI zntmK{=69|jv|J2{1`zU&Ua(ATFXnmBmch--0PzUe$q+H5xDU|)fQWtJg(kf-AU%d5 zzLJd{%g;`!R#;-8L+(YiV>TY#zFZ+nwG|I6e=%5&tVxs$Wni=nDTR5%l!;a!gP@fv zI%zII!}Cn}x^5R;y$B5uEuImll`P>Ab;SW2J7V zsU;)iCDJycxj$knriNd11M`_4DZX}h{}ufuJ(sgG(6cA|@bvUmwDA8QhpH4pbYVP3 z?rjuCxm>NqGOd07qfK!7Q5b%aO*xZW|2FfgvMG}U67LeQs)gE9!E@@De9WL(1bpE< zB&cxt`yj-TpbQ0)4RaqLVdM}m)Lxm#ky$qBcebuFJ23b$1cSi{i=uck>vC0%1pP2{ zO8UN7bo~LRF?pg!=1N^8q#UO>MS0HnvxwkOFN~-x_f<_cy_3Nc7yr$Qx|Cyip$a!| zx(~!d%cAiXxqbfoe)Xzs)dDoe7E_%oyRom#od1M5x4v}$7{0M*{rfK- zcjzq8zb|JH1o>Ybs-}fAP6*tkmCqsfh}W=dld0T<$}Hfgu>w?LNi3J@-4F5Un@|`5 zHaujNE4*OmXgz~~fe1B-BN!GA&xivrcc@M!ht4M*%0W-RKb3OHW;}ap zY2Q!YxbGDjJcD>W<$mD*QppywhT>x`V zo*gvYoxP#J^2X)2{Tp zM-xtSO7c851F-4Z-m&L)z1(odQIT0Yaw?SWMfmmcYQqe`hqcQz#(55HUW`-Tm{q!M!+ z#@F8uhWSEQzT)X+5e34qXbh{$<*v)Y?AKq1ejVI*8S)Rk|8fR)xRO``sYkmJNP{#a~P za)he@GUz7I5dbx*(K@#t6aL+N$fs!F==m$qp<5stI``YgCUR-~a@$z=%iQJP!*|)Z z!l0sH7@IawBb9}zsWom%M|PN`8`H!`0+soMw@r%7MlF@&HfzM_OJu5xibB*sFq0-T zLh}vJh+Y_Rfqe)NloTiLNH84o$!VFC(i&}eAtu~(2D~l}UxtJxk%~t%mBCDBG~3y} zB=9>oy_|9SF@nhNkhbh@lJqACgPc}Rg>jrY+)81jB!q?Dy!CLe`{VrMxBRqghTGY} zpfq}%WnBKu9cV@l6D%goqHv!mG%E%f$S?fIoy_YnFcP`St@QZE4C>>hJ#n&hujniD zRtm|g39I{~Cneii{*+Hji#KDOQf^HI_gvN&O6J{l(=38x7nMwK**6M9Z)~xJXUgbn z=s$|*klhl8o>GP~gOvAvPNa&HsXZ(@tXNedDw!ly} zn*BQ-V)>nK;NIT{# zIi)nozCO@UjjgM#Y&~A*I@X zIv;G)LNCbg2M^aY9(s8}i6M4bg)#ma zu~dj><;pBLME1zqb1*G^T{g<4Wag{%(61ko{d)*jhkHMK$@fwkYVQ80)3T$obD(o6 z%ear1VYqwJB5^a`S{}>0!ZdR^&YTGcc}6S;+Bik`D0ioyVy^E>rC0EB%TjzJU=^74 z7XDjdP?Y8OB#bRjzGToqB7ZvX{w`@KyBZ`wAT&8OF${A*>~Iz zd-cMvSdxp6#LaA*O#~1JWZPOyG&oH;w9XsY zy_rE-dimdcJnR8x2V;~aNrjVix=l2u)$U>%?WcWGC63p!A&jmAyW6EMz%L(I=e8Go zPd;9wMdp;D1G@+BtFgPXlc0VwO+$o7Af12-wxLmOnk%XZ)9n2qU%U`KMY6&a=7GDe z$dF-X2BoSj-wC^Ye|HJVRQ$sxv;k%ocn{4G#ZOZuGph&C>9#ADUz;q!c%u(8*s<`E z9M~L?jjz)6iSKlpu2{h*OC~25wR6RT%_*h2|BtD+j%urWzJ~(@EpDYa6n6`5!QI{6 z-L+_OcXxNEP@LlK#VM{W#ai_F-G09BAMZ^_ZXj#1?woVy%*>g+_fcQS@TvU=$D@L} zPuBjV{`$8g2#5^C9FUyD=6vd$Z?66$7fyntGnpdlrtDY^j88sBSHJyv-g`ZsJQ>QT zwit^j=0=;wHx%BZghf6L@r~a+){Mq5{^0 zzfygLAJLRke0;7g959yNvwIb6uH}}d<;NzAXQt_73GCY?F6g>_B1jQ6k&cWh$39&q z%E2qjrZ1v3p7NvRF7Rv}VGUvld`}CI+9B50b+2J4Bi=ms3l?hrpBnG|H=p`s&EEYrfTr8Q@wVEsOD4mcEswNG(mA7QwuH=gp$OkkqClwH-ZqPcG zI~HMz2xQoN*icbP#Xl1{$IrVU;o?$*=ku^b_V}FQ?_?#DPBzkxC5ID?fewE}W_CF_ zrgh$I3PC1aKE6^q#+#}vZRL3Whu__c>k~N!v1B+y6kW`)lF0OvZlRvycX=s^iJb+$ zJC)o=m&*r=G3iwjN(<4t3JYhjkA<3rTmsmvzPCcJVVU!p z83~NpI#2!aSAvFqJ@%0LC~!^Ins|KtNynYLm%ve)2H#>PV^h@>@of2qW2%LZ!*VO6 z{VY7A0F0Xi<|*}aPZanrxaB>|v21NrU&)#w!1nlh7bF5*pCRM(z_g*x>Pe{nt-k-v zjd7=VLXWwF9p<*FH?DT;hKaj{<3^6k`@z1%_3rV=bYFVqsIcVlVXb=4+nppawssas zsjt<~-hyDn;b6pJpz5kA77#_1B1Hk&(F9xktO6wB4w*#IH*+s~7(H??n;1$N36uu? z%)426B@JGnX%CF>*$ilIfQ^8G9pA*YiY7O)#ZpE}1zvlko(yq};Y$wJ{==yOEXL?^B?% zF_%j;cB-c5?1B6B>8Zi9wzNi_&^zHztsGCtgZ+Fz?s)Vk7oAmemTpgLSUv0hXeX@u zkSKZ>n3Xa{OqFw7e$J-Mdy2-DmbbPW4_{=O5B?s`PUl{Gcu>pdc*YIBCHC`3_(_&W zrg`hZ?r#+!LI=UYx!jjIKI*ZgpzTutg94#Er?$}#?K ztI7EGjKyE>^{qmF4UfP4PFgnl@PfDC5E-=S=3DJmqRUp4NcdSXN~_(yMluG(@oU=5 zSUuPHu|hh0`#Q0gSwh^a;LEEkEL0c2zN=@q#i=() zrBygSj+F?WHZZG|cIFp z8{GMWPj5j2A04sR9zQM2o@!PuDF+#MH&5ZpiKP*i-y_kfZ*To6AbjLbTY9q#2Oyp2 zBA0!1fU+q8%4b-@ic%mVvVw`K{s^nX08xS@5W3CN5fECTWFrlJ+tzR-QW{Bd%kkTn z&m_)8LPEo-I1URo1Hp{oh%%{?qkTjS`O%F)3rcmtf)E|}5W~pAJm}C0QU`~_jNuI! zCLG}$#VyIL1?S`yf{>=RV|%J6#+3);Rv?pq#^PRYIQ9o|@y~m~hMdiZRiDS{Rm9vg?tO(C&)CN6xiSsT#*YanzAI zxN@9lKfKbJ{3$kbqc3vq-pt7&Pb@H&o{5!l|>}8|<@@M{eDwA5BK{$yNqxJPez4eb;!EKgN)c`0TpTorI==Em&rPkn}{ z7W~whu1=AoWi_aG@1|dpU3qDJ#z^-Rp)c;j3^*d9hyY#7OiJ2>{ejMpZV;JY-`s8%p(Du(d`W+` z4h#8Tc2-oKG{cFij2Ns)PdCp1-XaP{*R8U_0=kt;5yYv4Yb2KTT}u^?DJoe3 z_leD;=W?>->lv|-YB*eBdBdgVVbB)Faf-~?D1z4=za4{{$nnYZ@nUL08EBtPfKD}L zR@mPH^vx1}8a#1HEjbCiLuHgZ%MUy(-1_?Ty;2kMreB(+MrI#`{mycX#do~wNjB8v zsLH^Z=u2z90v;j)E3rIvnJR7HO%IcY^>T--9cqp?-kBn*7tQY3GmmInd*NnPN7*w4 zYm;j1739Z|`l?!g9Xw}MAIz2>`Mi0)Tlhrk^K*`<(0AuF2`I7QSAAJEPIX*+7u>VN z^9xAzG`^pya$7p^%z2y2G`kEnbuVkzT9JHS&Y4E;)tOvQELcvhjCd`iofMJ0`7QCC zw+)9b6D^tj%rs%?W>u{FY1+whs%xzBPV&I*&{NNN;8LsV`Yd?+wbU5PBFWF_U1ukB_J^u z@Wj$5tnqhRJKF8No~{O?p?uzPW|s`Kv@R6~3de2dI$`B#ntZCEvCI`3m+jmZx^0Iu z*sE<{IQ2%oIT-MI6OH`cbnU*$Dm8E|e>Bb_Gya{E=}qiOqi@g6$judtyy|iO#(igx zeiPE5gvVlUe|+{FeR%gAi<;J+?Rxqgsn5<}MV)cn5A$51Pv07V; z*0vc#sgIjba>~;hIe!{BPrf;x>MDuwb#E~fZcEL>`@TNX-V2{T%G=jI-vfWW3PT~~ zPekqNF`4RSX%YDn5z-~ZizV4A5M0Q;=dD-x?y}+5<@z_;da4zf`$H|$brsFeCa>=` zxs{0=i^mx%rObn9?@fP@wf=RL(BKkB$3GtN&>5|lOHCiFE7nrnNHPpxJ(=0QUz^@M z)53JwDqa=R&9Ojflgj(>Asf==Sp3-A=Se%t*`M&b6J+YwhgcTZ{hqrAXA;<<6CwkO zd31CpkP=qRO%;q6Ri3x~Fm*o_*If^cWrW~huy&y0mg#5{flogAa>Qs5v zT7u~0LlRrdyXGYnCMF>AJghJP9PpQbfbLoWcVJT!!Uv&&CCF=2v{=p0K(E=tVZm~J z?~$Lx@KNJpEpNyPKY0PaB7$a2k~!%>&Vf5RAw!ul(DzB&NE&Z?0w4JUyA8>EP5_aq8irC|8-C z97$Ylt4L{9^+1&oViTiLqUg|@XJGNY>zUr?sT(10Qx?0;YaXRFh6LAEH5<|KQhS_5JS0 z8KFY#ZX9s4OM{a!)LNHNJ`!t0EAKn{=a9P3`qr%8OS=N47tW;b`VwSrGG%=*VQiCG z;ytZO8gmWd=B{q1=EiV3<6mEdJkS4>8+N_VKl|j-mpBYi91j46ZWT?5oY2q; z@iD3eWE@FgBb2!1sDeB%2co37H!iVMOi8!FpM+>u4xu^PSDlRewl|SDvwotM!(L7G z&5DbvhYDe^BoA?d&Bp>vH(45QbY)MF_Hq_#@ICPw8!qQ zI4i`6@248^VRI ze7tAuoW@k3m}gBqxuxepd)Io~$e;H-84JFnEFE%rPd*NXynVm+N{!fRbbV!NzvPE{ z=ww!GaMZ0KEEd>vaA)wz{bb)g_0C;+@J~ebIxT2kGz7!zftBRF!ttDl+-K4I;B^1~ zg#2!tx4aP1{&vTBcoxv@V$8Vm^71MjS_K4EQVeW(U@h8E)jc`_qI7%)JgIE1c($V^ zsr+0o+x6xT$aV@OIqW1#aLsBu_rnPiV!8E&vW!5jbabkTKdb=Aw> zUa+G{Z*$bu5YB8_6M5+bXv~NL1NEUsYpzEH2RYEqpuCLRjHb~cno2Z5viV>eX%B)RcC@v9;GLz zORYNz_E^?Vv&|d#v-Wc~J$X1*X~`Ob`9UImi6=decOuMqNsY*B-cr-UPOykE)od^y z)Mqk~z1@p95BleY(Hq-^y%??*Wjba3%BRHn!)4GG=q}jT3Lkp|-UYk_74&iZalQAh z{qY9}eI%n>Id%Q<%abz+us>xVyUFW$Vh7g;|pmE#txrq_=yKRQaL-!~K} zhGz8h)L1T;6uJg>3e9>_rbj`jT>G${>}*oG#1rutR2Mj`RnaOu9&0ZjjpmL|PG5E^ z8fSJFF5Z=0nlzGjTF7);XrA;iRAi}QUv1N(s#fQ4U%73$`@6;S7bG>x9AB=npBBy5 zLfnsy>%6a8dzUzJwi)Su@!H)@``z&_9kXt~1?nzL7^@4%uFMZI9Zzxj@m9D@_;isE zO5tN^jeIv>x+|SKeMUYxRNA7F3&@mn+dz=mo0j6Q^8|zxjKRCCq@!;vf7tGg>wo-d z|J>lc5@0NTb9FDw5L!wQ5(Ok9T+7HvBVz1&Y*dT(2;wgAQ|N?NG*6WkTd@)=lNw(j znep&)#gAR>95n`R-$Quxq@wXTyk@BSq{hbBf!Ta3HG8;PsB{!{Io(Qf22Z)5Fa-|4Eq zQL1HFO1w`Ezbj3xv?_lJL2g&wu>tA|iNPt$##RGAsl4v;3423w#>TM_MCS^=jk;#` z?f1qnp-4@imF7Het`AowHxIu0t2ZyU55_3Nv9J#xuGN5okxY#^6y z+LFthTsJ37B1BtE6l(b5cYX?Y0S2Gj&So3DiS!w0T1{p*_c|cljds+3ig;V zBzKL+D=5*p(rTrP&s9oCm-mR^QjRs8Lj}UbdpCNR`ci}HLfmr)Q(cL-xNeAbKmMq{ zRh9#ukXXicL@vIze?~u7+xZQv!F=k~?#G3@#{5&dJQUeYtvN$&A^VT^nT6%u0Z)<| z@^ZR6a#MCod@!xcic@;8`%SpcV3np+D@nO3u2zN=jN~6bx4O~atc&=B=nMj1AqNT? z>otL#b&<;ai|ukxKNG9s`Bd}_$(?A z(U6F!2PE`Y=Pktd(y064bVH|$iz$W-+r;aRcf}6R_N+dM79`?6fAK3^yY9sk+(sm! z6I2HFUhn&0LnB~=OW{Bv18g3+Y+#vbMLY{Y>q(h7Otps4CgiO0c$Q1`2k$Cu#iqh? zn6jdttca}VI3H}GTM=DSbXZ!Ior?~b6W$iO%#DK9Vj>70M#QARgRQZvF8V8tM9vkj z0nu3B=@c;aqWU>UG9tAJ3BcE8u|-|=66@2`O*t)vRL>?IW<)O@UKMP12uL!ALcTLF z8T>?Zh*iu)>6w!y&UsY4d+EAUbT$gI^Vw;v5^Pk);xEZ$zUNyr%!f>ObYMX59y7#O zPjn`)wf+bgS~ls$=Zg};bpU|q7pJ$9E?(pddBvOS#@Qa~%SXctyzf8?WA>`>p$(-~ zE`@<(wQOZXlk!W5-Q@*iXBuJm^mf#PhNr5DJ3<>Vzn%MPgm+oIL@#s zeRY2+3w1F3_1X}>M^xvl^;DOEtzD?0H6}Dl^~Q7U2t+w>?P`y7Sl-l^*Jk=UrkKf0 z`S@ytyjyzm%Zt5ZZkg2ByRk>auA9+ojh`={#m{4_BOIUYspDlE(JAl~#MD+Vww~6j z$Hm*XmBdC{*Mhs;usWtOw-%|Pxa~z12`q8+4I(`vPBpH*A7LLSFdisP>tK^hC*GYBrDl%KR?8AT( ziV6k;Xg$n5-eG(;kT{NPiPqr)Xu0JmC*r$JAWx;VdmEhroD3S*j7--c@pj!;JLP3^ z6B&3Z@MpDedxI6#1iSzaC@+mGhrOc?I#2NtD->1!LuDir6-Anq#?Zoe6GKrA8oOy? z!~th_^#)DjaoyJD1&*DmBzMh#=;{|CZaazI@%$E}BdI?P{+gL31r_$JH7w~m)@40B zH;2D&jr+J9*}AySdkl@CZ$VpYZl{~91ZOtczZBYP^0AF}D?X*1-M0BGHZ53nFmtxl z{i1mgt;FxktJP9lw=h{`Uj*B?_dHwxIqc@Siyyn2*A9l!SHjYK^Y`2p+0?IxC9N6umuEGUqgp41Ok(WRE2~*prp`yTx5R+dq0!70 z@=*ve2#Jkwwg4Ung0M7__K`cQ!GQ;5qs#AUmFQDSz!sDTnQI)a6Ko<*F2w^OVps}z zYoM$gMcBc3xViIgJn%E}dEU{U1|;`pDi?hL*5(ng6i^s5xsER}2?bRKt4r15sNm-`-45UX6_3 zx5t-CtJBKh!!%ufD9s2S>m@TBr`P5Nx_R`bXx`NbCj@1Y?j{fV^EyH%smt~+?s#H< zKH+?OddKADKu_4VMs(bv=9N3<)KhDD+h?>ZXm3RDTsUWZe(c~HKF&lVbu@v?#w)Io z&*FieaaN5N>OqvX%iBwoS9`Z~urSguJKzbXCG-r(Kq6@QVcAeU)rq2h5YR2i^UM0w z*?9PF`o=?7U9eyLmh7%i3brT=4h{}R-2<%>?nCf*Gk9?Iic|rJ3yo6+BxAD)HH=qG&~y)|ToAH*bj1M)7{#LwT1XoPc(n{C%&{VwpknY& zk;YUlJcQU`2G@uKKN-EeT^z3oVOO;oMqbFEU2`yff&w|J?x*-H)`b>DL--ai zG)0oAda=>MX_SlQj+4ep$Bbk<#vlG4$L?Q|51zG|KgMedRT-sa+pXX>8-<M}di z-1(&@J=^8#`M2msyTq@EAt#BIfB#fBiNg&Hxgbdxgl;hyIZRp1q>%A&a+1QzpKck& zBlRo2k^b3w5-1z*N~ee(&0jE+XNAFu%;@%Jd66<7&%X0f-yJD;JJfjPIrI}r z{SQ?6+vOh|0EGaY4HwEy{t*Ti2@#N5-~c1k=u>wiqoCweRPT+m!N(hrH?bjekRpML zp1RboDVCen>k>>|2Omdp{Ew~QkC=fzYl9Xap^5M+YRq&*9p(*IYqM`7? z4lJyCO?Glri>?$1)nATH_!l;E@X_=s7gC4DnI!4?VCXaA`rpSl-*wH<*-BCpPqlgN zip>8h4EZG)lX70-tj8!nWi=GhcA4Ym{d~Bx8XxmevBg#|$va+9YZULuVrN$6wp8x? z`F^AhljyPY;_)qVf7o_zF?Vpc!-q&(+e**U)^MJvZSW5?*^{ zwTa=;=FQfe+gTc-qf;Os8lvT6+!f1 z73#7juWpwp6bVpr$R(H%wk|;1?WcS2G$Y~xe0^Q z4CXRkeA{NQ)kheWQjKe$#mYEDx>W?&VyRG36*h_}ZXiTHllrW9C}Un6OkXrjN_{Rz zjm^DCL{M>{48y15$QzTbD9uLGPCprecHLCnQqHC}LZ8qycwE+^DN&=$VWLE%PrX1z zRY_5e<2K}{rSR20-tFOW`4rZEN43I){_9xndE#s!f&0&)#Tr(Ld{2$jpBts0>H#nXMC7d9h-bUK_zJLcMXSMetMw3x=^;3Ss zGC7j3R_9)s(S)toKoyOUWL;eNzHe8Q>60J}d*2WtE3s#{0xQ6)F$sg;30dSYO} z`%}%;Uo?I~L>WCD=%zJ`kKHe8Yl#tkYqy!5Gl=BM86iw{U<6s0Vp0pDV)7UdFq<>@ zvVG_A`E={G;KuXM9|$k{{0lbM#30?g1PA_mGKMAIr!NJ*kFY$~g{_6Y4=>JYdHG{G zU6twQpB#m22LTiq(EDjZ2OK8k4vQKa8Iu!i(vDPtkW1$Of4y6n@d zau&&gOIJYO)M^|VvUnP{deVe=K7(KOWfneDD{H3d$}#*JVRKXoFA`_U6X)J5nZoUJ z?TKEg;U}#^0lS3U`COczuP?nkLb98`xYMDr>8hUU(mXotjUyWy{i{^ei&lKG-H%Hr z#`8X;p|_rQ(yaCB32WFeu4Q%kgk7C&<zAyDEF_(JonE}y6F$svZkg%aW9H{ia72>@MMC1~#pR@-%*F-p`<@oSzmI!~6cWaHX#M$VF7{$_?}ET_vZr7EHuCNb9|5)$ur^d24n`afII!aA?KnQb zBI!BSSpksWQp8}}R6H&liBc}|cS$g)sK77bCZjotqI}5UZE?Wwun>k|tzcWR;^_$J z;-nVff=^{iU$*`ISXejHz;)CRFx-9YtIx#c&6uh(?6B#zQ zZzNmzUh%%5Y}yYfocBDbmru8&f9zHU=M2U9%WFzJHOocSFY8|}dKxI$(?_+bCk%9# zm!)!MiQ*XZX~uMRR)I26BCSE=pwX|nKT3MQMnvJyvuu02>ch0f1{VLQc5XfVL+(l& zs|k0O3M;Ef{=bErzaM#eZ@WiGFmfw~b(dK9X5~mo-V5}fPF9M0|1IpeC@`*^5Bp?y z{F^}U^3HYW1?S;E5KO(dZ!XN&y-BG-K$m&X0)-x?HWfy^I9ZNI9MKZ5&-F>g$f)mN z_osGxNmRsbCZ>!^w%c>q0wklE!_S*lnIP^ZQOF1j7=nVi=!86gw~&0*1jy{Tv6wMF9-JN6_egxhc(c z8C+2bwCE$OUR#ln&S9!?repWHB%oZXOnIlub=}>9U-gMAABO$H?XRT>w_Bclh zTLXyVu8TaOSJeFfKs>g-T{NEwA0y|Fe>-n{^7oe*Hb8pfvjCx6!GaLrM1#X8b4BrS zHG*BJrM|9_6|1_Ry~#iC?*9zlCxhA)WTi`7wfF`{?C%}hPj2MH`i?J;BYGh*w6?BSl|hqgwTkS4-8;2f-o_q)T3OG38ocvKq0~L z}LT(QfNmAtt}%NRiSm*vDT>x`ib zYUFp<^DdvPq6eeW?z)wM+fPPgTcKR7U5gPYn(TMzhR8K}9I2o9u^V&ujqRU%PSIZt zuit06JRX~`u}oX@1Xa9A|Lj&!mgPL1-!5bLdwH?HTl(0*{OhH>x;g^QgN+nsItgnq ziQEP$g{}-5re>B;STfA~5GR0X$bjELw!(Na6_#>7wO}eO@Xo|qB556E^GN1jUgwSmFdV|5M&N9hgHTCG8=nX zi|-l}FEw(`yUyzID)ed>xLBepzi+tM`+A7USz?xdS0%`3-6$s#PPw<{=Gr9H(aIAM zb}mTnOs4G%ga8lM>!$~y-XSrZqafrV2!^aN25QBLFu08v zhUlJCf&cch}GvZ0o!Wpbi1Qu@B*08{m)RnPdn zHt`%QmG#2je;`}0Is4)J`p5g^PS0EZ|3ECpl7PDb{LMeB|Fb@+GY6g3P+90m%9 z5KJyAn`B}xhk~?98>b2^&S?NHgBs3?Vw3=2ex{>K12iL%>}7IjqEQxraR?0y2D+L< zu6+}l=Uvdy=iNR?WXBC279ws?<|CK1;-#wNq~S=KOyOQiG8Y)l%`fFPF45wUBWDe4 zD$tqc{z42|Xv}%C6MTX^cEg-$-EZTx6~_GO+tK=3@SC&5!tJD|AUC*fxzp*mn0%XF zZN}#O<#~6K=cs>0IQY6RWqdM+-<;~T{^-DD#cln!yxQjI{7MSgQ}n-1#o?%MMimOmBr`8S*p!Ye^IEiGMXZgfAM)H+CP zla3LI4Gm=&ki39{#X=1O1&0^ak$)qRo0p+sz$+((jRggV ziV6cnjTclDdmc!nh(qF3VKMoLA!j5|9Vh@oP0GLrc;%rc(ffzi(uL@8I5Hl@uDFU} z5+lC*6*rBg0GReZSDDqQ&8W_{f=98~SiWt?(l-)1}RoBAKls#u@||XB|frJh<~s8qS%1I!si=tnxi`y?shT z76bn^))M4d|LxH)KjX?g7P)ZQ$J6gUxH)zcei zFjX)e7Y=xy?jQmI6ag0;LE{hxQ5MrKU3AFu02x@f!&^ToJ~s5_XUrVmq&+k3C~@H) zjK*6DiBnX$T@6$J{mL?j>Oc0KS0gZw%PenN&2gf=sr$DAP=^K8Kv6oZAgs zU+Lv@(7u>Rph3_m+=dEO|B^w^MLuq?uGm>^#PjQE>M3Zwj{4@3>f2%YQ-90y^U|AI zkgHB;%S!tEy+eMon`>?3CdiwyHfFQj^FI*cX*cQj1*yMMW4=3lZHojswee=*L#*d! zBdWDkW2M>&A)(dyieG-VQLpL!*x@@(M&2O>% z;S%wBsbxR<;WH18I`@UZ_rnuQjNW&t(pDlI_&l#Z7g{zEKiR7^D~4Hp-$1l1;~NCCJHs6JXSp?-iw z`KG{JC(%=oQ-hO|BE=L^K9G}YIGSTYH0rTQhzFX1HFVt!Ur`ZRp;-ICyn%X>zCGW_ z6L$g>F*3~+A}?_zDAf1#=-e3GQJz`9xpHMsM2mR-xPP`jBJ8)jH4wYhvgx))B4o?U z43lQ4w|T+LSg42pGIDm^Am}X=+u+j=U2GHz+@7xe!_C7&m(tMSME(9uuIiIkWx-RK z2a7g|1{F7UL%jj7kg*V#S=Vf%)+u*Y{wCi!4$+K)t6QLU^6MN~vj2Y|TD~|va+Uax zCZgmZ1Um#2RooIWg_g9o9Xd`cfjBSK_1V__w@aVSD^j7nQw+9qLn~Yk1hZgyJ7gs1UtF@}}axKIK)-UiB4e7DKE$g5x3 zPdlGap1MnGr0g@=wkvGB1KjTtdR$yrq5K_zXoEo&ejSF~7QMcmnhuJ^{8l8I;K#2k zx6&+VwI$u&@xSf}JuR>F-KP~a2S=`mEQY@*q*dCwsugq=T)XXR$M0mhkj>{+bZ~)A zta9+vD}R=K*>TrrNSNXDW$0)OyEi|;sD5O4`wzs)MU)LC7fmkm8Aq^+u_7;${2(KX zMn&ipR!-_Lv`ez=ezS_#*!jk?E6)1|5UR_L=H{%jB7j3p%3XMQo5d=*sqf=F`|YsZ zV-(ME?_9XDZ19QcQ|TzstpV6oRE5eM(67V&Uz`qr8rbj%Mu18FZ)Tgqz#ss8xiB!u zqQSw#FrvX>Am9N51z6yLpS)TLlu&rWSiC*{R=#^g4e4ifyPVa%A>91d6quMEBKQp}Xap_A$SQu+)icPa&j1Ik@5=FdS&$@jDYELf;M7}OX zHE^{oq8l|vO!Kr{yyuDk%&p;gc%kmXdAjPli+M^O&4@6#%bV}}+DleqcgM3;@@DVK zana0-P_~=->cq+$$TKR?fkBaPCpc^}9UoQ}{6P*q6czyiHaHY+;!u6>W7nJ*0I(;i zVh#jQMo*H*9(=aTd1bG~AzeM0p&A>E%C}EF7tW)6o-P>1nZ|d#9TP&CC;eiULFqwl zkD9=Y2Ilntj(?}X6Bbph844VLWdW$CZm^kZ6+sj#rqesHIN-JaO=lobXZttl0k97( zN=~ynIYkm3KYDmk^2e+0NR33LYREB18Q4SLq!n4|_l;asA%>G>?`VN1GOWl&G1i#1~e3`qhoL*1YE|!W^fB_PsVxJEGi>j&k}L0pB4s z9r!EDv#AnwjwToI*Bma(NBDJn13s8UbR)!4-~vg20&)7@=WCs3Mf(He=-Qcd;@aoj z%nr#EJI~mx2{HLpheVl^%~`J(_Cn`0;mo-!Fq=TAK(V|?>`Pu}?)YbSbl z=jK-GUi!mTDMJUg@jY<;kbkHx0!W5Lztfq_>wpn)Z=5qZ`8j^NuA((I6-X5-y!2INT_up%ZV+a^ z!=Grtu7>c;aV~|_3$7$uGyR%Pbh7@%$8wA~w%h!-N30dlp9Uhoe-R)MX#nN}-T-zO zI^cwkjuD{i!bQTx0}sLf3;B{105=U-9QZOO0Z>-~&KOY9cwoK(%9jYVA;%Lu$Q0e^ zVSCr|!~+=`Z3>7(5{c}~ya*FeA--{d0XYDPO7*awzx|ci>_c|68aRu09j%xnRhfGb zrmT|%Lw|Lb^WM33rEdO-vn97jJ!%tTxk10{j zDsS_XMD^oDfWP-3P{6%@v6ynl&_rF}Op3={-zsZ*iJ$mS@tlqANIo~pEP*_J7thRv zBVxea&Se@8i~i;h$F7|Xr9Ep5{>7@>{^q0W#L7pwE}N{9D5>|srzX6p+1&(Sn|Tu% zFtFu{XqxuD?a`eR)Z0pO?iko~!~H~Z^b3V6J|4$O1A;%qhLnw`D0%j%FDC1HCLHaJ zovwf}hImRw5fV3`k=`x^B=In?Kz3NH1JGNj(C~(umV$;sgMg@_%qXB-gM=4@1PE-! z!NQw0B^8yBYXPPupkuHK#g6~RI}DARFAf_}jiM8jO}ikWINU}YeN=;Ia~IR22`>tu zf*S{<|FDyJ-KGDL)ukv4ExvShOm0f-tICG|Ahpqgi60!}#KZ&%dftmn2R59{ETPQ2 zvkY;MyR7zquPk`8p3>g)L}9JBby20Lo9NzS!jOtK$(4K|z)Bm4G4_)<_lalhsmeDs zcA`#>d8=-=%+j%Dn-R&I%jX`*Lq&=9j&N3;s*h9qS~%@HaV z0$UU!n)E0^jcPMbt^fc@QeBYnIIv(t(FW;wx$uF>`#FwUM=ms8b`+aEh5%)wOthQ; z;9}HKk7Dz&Lx+u*2vZS-B7w-SmBS7KND!j}oD)P3!Sgvd?(VQE!aRfXT)dpfP{_A+ znx!nhFm|8BQoCF=HP>Yxv{Zn9?AivbhDja_XGxQK+4p|=55~uh=CH!Mq;;X00*vo^ zE)HEw_xwRT2C9p*-7yvJYt~DIKQ?EUzAPD9ti``|?)%fmuJzu&!e@{WY3VIpaFy~e zS&T97^7MS!>Krq&hYr_S+l2O{v{zV5Ir)zCDW6)(F2v7jf4Mc9%We_h(h|sBtdPq` zw^cn1YW>^o)X3N61ZU-dbfFGTZt|IcLo-AeY@$@CrXWC)Q9q(#wpEBH(+mm9nAv<@ zADR0#ZCka9D12}5q-9atx{~CtJDwGD${N_1`yujtB&_Q^CLj z9Q9z}1Qree_krNRSb$hF0uDI^J1!*~;ztfVE>S2ICz1-j7`4fJ8VT|LHb6*#ng9$u z?2F&25bZMMK&x@^J^Ow@Q7o8*XTHw#gJt><1Q7}oW5Ur9HBTUd8Hz*>JY&H+O;89Z z7z)-&rW}byl#0HUsL;e_m5RT`r)^YML9T98N49fv!wuzV>R>wf!}}tHQvIjc6Wn6G z{&2$`nB}}3gx+r{0;^|DZEfe%Putbr5{qZ;uncQo9ImM7DFh+=ZmG{vpN;QCNA;H^ z=)?u?YUqs~>>PVSDby1A^WpjT@FuR@8!q&(C)3|PBl2KT@K4!eE!sk(S)EAs%4Ol6 zXM#Up6^8{RRx7%JMtp=lA)*(~C3Qmx>>Lp(ss1W1_>#_Zx4fK|^zM zJ52-0HTh3`G>bP{Z@c*3$=_J7R(>-JZ_RAC{|)`c!zMuj0p)OZ*x`LP#ZgJfIkgf$ zwcO;m3jfohEr?lo>%)5R`9%$B_x-H+0prfLlEA_H{o+gVu(ey%rl}3<7O_7yd;;(0%mm4lI`m}L|)aDx&+>uegu4=i5on+Dn!KA6nL#C%= z>MZM-4&$xXr1gUe*P6z+ywHaq0Zf=LhI}8dQbgR<6Um%tdm3O6f6(Z2=3dQ-xHv*B zvq2LgTYH%Gz^xU=1&|NpS@@W6yJ$t0T%&JQd$=2+5bV^icW>5;<^ecd$Hd&CusO2y8D)Jg&A&u?hL;nA+j_#oWNd(6Bmig~Ac=}G@ zDwv>IHl*Zr9z7@L0nQNg2Viz!Z2gTC)2ga{i+uanbIskwgS7w7{M(~Uz6U>?u*vxl zUR?5$ArBY<4kletD-`bH|3(YTYy`L~fh)r@lZeJgj}!W;bn%dut&Xf8l_A+C)n}Ln z9-jeKe*E*paEH-{(8*iraaZ8PC4b5NQ%9ykc2r@YDi}IH-G4C6z4E#{Ot6F(nC34s zM*gJy{_rP3b6_zW7luHwk3+=7vAD(UM}4%`nF5FLZp&>BGRIi0SrXwLh3oDM)`&M= zqaUAWpZcs59YUUS^1OeKV1E%Z!{J$6_jFHbAT+Iu!nRkz!5e3^+J7FPz(n!{!)-2H zaiOB{)BOh`9$da7i!KE&wl5yI|2P8)q_CD;GYt_%&9YFd_dB8II{zF@C{nZ8NGN*Y zC2$`CHz4HzO)*wshk8K6@Ap(loZzP)WCEMCkfX=??v_OF_nB9TUPJ4GgJ?sZ52yY)*=7@GRzvfaIaC!`8F<|)I&<|2&V!JJqNbg!@dCSj!$Z z^I3YFV=a)@x#dn8{ebr81ZsU=4+X#179^aZ_V(;N>L4fb2i5r(L(Z{|e|8WI%v$^+ zq@R0s3rggmvH7Fg5aNxdS``s}l>cz|b6G29ACV9T=%0C(79+<|%{2=9J7(-W0HQ zSb6Ej0j4AtwJU_+wF~<%gq_fQz51l1zBy`w#@L=|0%#xSj_QfOU^u?i)fS>ZSyi14 zqdUf(?1Hd!rcK_2L|YBonm%+MpjnE+Aj+f81$CweISD$w(FZy8$3I*4WsdL}rvC?` z)OKNFgdpXdnoH5Jhffg-$TKbbw=?xYHq#RhJ}ZpWz-)A4|N0@!Tee@jc);3n$FW`@ z)FS=U&h_AO6uUpPYt1Y_u-4gU|MuQb>~lCOhYg7M zvtbcdw(ZQdwO9p<1&g>`_ha3%7B2?4M{9(>k7VmvYQL(shxL>xyH7TE7Q`3qbFR9O zHY4`iN{o=vBuPi%M}T+5y6A<(=m(R|d&*+JHqk`)(_@LbKS zFJi}_iR+`OHkyOe_z+Cl*>!3)X^cGJkW{YuKQM0FaZ35%r-xgx)ilA;2u-=I)JO?l zccFpYfUe923?LZlPveJN4B5{d3KM3c|5Sz#K5Poq*rxF-CTUX3=4093Ii=B1Oo@1^ z?zJ~(uRF`#FN;s4loRwN5zO0%7AQwRH*@Mg3C>Cvq{=!{^<@W065IwS3}wso3BNbD zbiLd%8g#7>O4~(TBa%onm_~1tZTrcUVGQK(Ff(#_6NfOK3uyg2h8O*|4bKc}Jp6=$ zGa@QXi)skuAfg+z{wN@iLfTpl(j|GjBJ8Szt65SLh}2bIlR2gru$TG?kT0_74>J z(>2>AHTH)FEkv1DeDxaMF`lLna7z*y`zcf3)_kehv;-%?=!2uc8rtiZFglPKal_&( zH=dt>a_={3u2+052XR^>u3H^gj5_@y{d*`4{#D`usHEQ%S1<6>cYW-{IyN{kA9~q%R5=jmsTk} z@@CDmpAt*-pbWgemK5GsBf)zJig+b{=yyWw1lzmrrtIiz1j|~!HcMElIXDR_77?z`B&e? zEH-r#<8suJKNhn>lFASB2WpaVp|kahcUEPC;L8LbZI%H&{f9?F8YirK7YVZ52t8hm zdbNk(Ua6a~XHDzbBT#L|&nMR=iD>JRRW#Qr#;Cf8{GSX0unZ8P z$)}+|(Y$ZBTc56x(9y_WapG6VHScvghxiy-f-B3$U?^3+x9f-n74=WVLK=ykl{Vw| zlSNT8P}CwnKfe%my~|{HnF4r3v<*`8JGxbRw8H57xd*@Yrl!MjDYetk3FL~f4AN|1 z;qgWANc@7J!@Uwc1*OyA1IE6az@f(7a|;`j<}bAbmLHzaO)!_O~k7W_t5f2xtwIDL;z}%g0q03wl{> z8&p-5Vu&`>ZrnR^0CSsSot(HXSwu-QV(35J2LIHuMT0`t0$gt>xm<4I)g*f@zHXm8 z`Z}J!x?&Dx8IELz7_Uzhoj+fjm&opVCYo%q@6B=6`pJX_W7J`ptVSFFV; z;)UC*;{1*7yH~s7>|oAe%rEZLfE{=sS4Bz^<=>(D2N-o}Lv#ND4 zko~3eUVruNJhps=k&^rX#0G0YkZOr-J#47+=(~k&y%--MWnuW62v2FD(LnA-KTZ8# zV@k46xORX9?q*Ykl$D9R3`ti5ogmh?12tr;^=15fZ4&~~Uta#n24QW)xAq}k-<)Ag z#5AGQz|*qRTg6MF)}l28KTpQXbTxe&ZDshG9wDzi1vUUZM9F(*i(w>4^^KqM{Mhso zD?>Hf`a(DMEe65`DK7=mq)5)vbxMmBpDhH!M zXJr;~{yTYliT!fq>J~!va`fCG+oJPr1mV$Qv8*~0^g2CzWy8@aH^k|T93G&7JgJs* z*87w~ZvOzxzhnXiTL7K$i(0WV>*@FE>5tE$L7{Y9*}9BFpx^Yr8MK+q(mv;Zh)9JF z48+CZ^A$XATJ<_*;73-lgtmKC_I*Qm;!s^O5@ZO=Zd!XObb1@ciy#DIlOa8gLvbe0 z5@ZKgxhg`V`|~)vwf%A<%XLp!aGxtO>!yx0yL`YE%N?lktje5t7B_^i)8k=|8!MxP z=D7bmJlWtK1SfsCKbstmt}V$p^cP8f3x3l|{5de~$Zb^3hj;~CX=bwUr&q0`yJrzV z1O@Z7Ah#N;d&|H%39i6!YsPidycFdkt!zJGbgFdz1c83)iL^x$G#t!X8B%-KcV)~d zokfLFVS&Mwowy)(jNE(lCrryf>4O|<9E=D9N$>st@aKtXdBOkykW~yTR$Q0e6-hM> zQk~lam&e{4^$*0ow~R+)dHKsF)qf|hkEGnbq&Pqr{5n?ic4*Li({%G(xXJA?Js^X_ zuz{$E45@Be&Vhy0U=eoB^kLA1r^Yu+iKqixkl4!precz|y~V@^_FpFJbIw!| zF|@ie4lNk%h^@RMTQ;lsS{#}SZgb~3iOu83R-xWU7PZa;!#(*$t#hgQ^YX28_25Y9 zvo{#UyspkPU5^_I$@f2WCB)kdF6}49kuJdrkyTHn=N}vMug3$?cw%EF6@O|pCW_#H zo@@hCq#_f%uSTo33Uah_9u#$n2vHeHSlj?RVT2EF31)kyliU4fOA z-_1A}I%$CvfmiF(ODwdC=6&~$Rz-`>0+~tefQdj7oO^*OZvHO>yHCIvfCo=?=81ZfW=RGTLmUkT zvxc7AWRUFmdB&b?!>X;?e{XO==b-4k**y6sIi85wlLA;F6!7n8vSZOflrE|(=V-9P7CU${HgU^TQpvBRj5yO$k6w2l@AjU(DmG0~2)s#EOjo@M2eWHs-i zUG2dqQ_+V22NK%_$j84856n0$8(P>*_=vPid-*RI|3ee}`x^BREN27_D;E#1lgEkX zepsUTnIhk!&IugGcbkq>g?B$g7wIf(2O&$2Aw%Kcw=%&h)&k~@x4~js>-t_`(J$}> z@pTEc9z$_INs`5@YaW~v3uF1Wi`H}o0k+(g*TZ9@&Py{5bGfryXN%t?>x@qWs4tvi9(mddSEJoY^1Jw6>b?hj z3&l(PNB~jM(fJq2-+do|O1mp+m(YQz`_ia=dZ@U_#WAM15*koHfZX^u>rtbD0HTOZ z7vfxt$Ly`t>s2q;s3xXX4BEn+e=VW9q1VVp=iToe*4d9rss~TvQ67=lKNT}jOm|&k zq#9{I*bKD4Bo-N$;q83Eb$jS5Dh;V~9Aq`tp~d^mv@rWgsBQ#;-9N&{R(F@S4{AtV z>ZzN5De~W8U|zobPqwanRLKdNxF>WhF!3DfqhK`F1wcoDS1QEs5O?1N{B`h1@zu5D~&X%j8g;+dx zWq}>~vw?J?rUh9P4Sz3F^k9^8>EnkjOA7~YHO+`h+SN_U;|GcDlAXrqnO`637+Vq? zns5ET#AB4Xcpr{|c8xtAxCvXBiXUylh60Ij5*Aan8Il`PZp z?&PJX2TAkuH!Tuu(S)hR7yPE(_2DdV9!S0~(-ldO?+^-wR-1sr|9NLDPF2-$?37QnV&_D{Xpk%+IJp&1Jlkxtu7IJ}1Jv z*N1Xd+8-tRD%pvdV76q zkcfQW?dWtCDPm`byvMzMKTG5*jj;hz@tGme=mL}s9JSO}A4~N9arzkQq>f~wI<|!` zLojhQS-Ek`dSTP5)1tUoC{jsAvV<1*mZK$U7}97PWQ*B-w-vnIjh|_HsrRR%{UtfS z?x%UCd`#V~((q;Ng=lGsg>$`&zGbEiYtwH&(BLOW(v?0DU*8QguSu#YH;dX@D1LR& z!o&Keu~+HhawXK}d;F16&d;6qdQKrgTy0%6h;Yu5AhSMc-*7UL>pJ@E5O05_T@XO#BlB0fFHOA!k5wJp(G6X_dm+8^oKjs)Ax$S zpXG9!4ERjY*@%utsrpB~iWkng*Yb3YOKmDrsXGYEN*)Qc-zvkBc%KqnD z0bd*=3jCXT4y8{@zChw>JeaPi6#)2~l09pV-sn->P37SK!StST-zvlslhlqt#&-bp z!_*XZ9DS;XI(}T>x>#6vdGp!i`e4>bdXJhwlag`F#Wck45?t=%xeu-e?z3Pcfa7Wk zBmeh$V}V@8((fa7b#C}zAX_-3skq=snvs#gyKFl?EhUptkooP%dPh|8(do1; zJ+TbQo)sz6U9{N(BMFiC=H03F-WZI5AAW9#`+^zT(7b>64F9JJ=pQB_^x?WjVJjQ! zK3!sKe{~jPEt;miN?iXe2&-5e1+)6HEQ!b3Ha!IE&BHjCT|j}pX5_kG^MNp4Sw!6; zRgC%NTE2h@dw3MDce;_|29P3+3y@TlRR zUp`@4QMlJ0;XU&WJ0__6+|>N*SUthpugr>{Qj41#UbOos*t?mk+3GLSbMU6GC06Kt zbpTmj%%mGHgH29j+JJu&g|eFNMVe(tMekgA7z20qxigAQ%C_Y{wMs;6#SP$*N&!hoVTSxbN_S0ny)1E9!CUH8`Vy@|mE+pE56(8`YJ zuBJq$!x;_``}bsH60wBnWE0j*-}&UwLp3*LMN4OG;sX{*3y zL1DJOy^L7fL3w#CYKU2=iN9qb$LSn<*|0X$sP2GIf32+XOM+>`#rL50ar3;R@$T?Hv;EihM0xLYrHcH8Sm*0z5{_$0p_-1`<+wXVX2>itH1s(nwjEjWWc~ zMC+{jsSLqzv2I3hZmrQjAvzXiMgIj4oS`Y6J?2TV1T2{oe-ySEsvbyv_Dq3B4{$Fj z+G?$mS_MAeOXT{Clp@%@|hf|LcR z=XVAcr6+3D_|eFIP`vgxL4;1?f~b8i_n%~J=o?xf+1$Zdoz~lcl826pDg}%VsH%wX zg6;%W0J<=az^tNZI>Am7>u@nF7vH`5R;!)EYvh|NaSj{r&o+=N$=9STvEqSw{ZZra zP#yeSZ!>$D`4QRIfT#6^u|;P6VQl8iG337%{y5au#ZG-qdyn7Cep!=Gf*(3*QL*z?Ad18t8oghG)K{~k?{j{<5l1$MRCt!g|<2Pl$`?UuxX3cn51=s{aff~IgR8|tz-{F zN;Zc-EE>dJ%(pXdfqVQ1{KMzM&}Pjd>WP<83FF~y-CB*wc{&5c3|UG623xGjo0@w4 z+d^<+)`%ftKaQ8Ah1w*k*Q~?i6I4ld0^&W){*M`SKL(3f-^`SUBMOiF;$^~589(z# zYI~2~C*TJZa~PZ7|3xa@ra2!FLC#NW6i4?MA1pXeJ%1T8!RN42a!I_8OICZXPile1 zyUetUMvW%PbvLFuzla@7bx(77K<$YJ3P1(WgWnGjR^=)GK5Xuw5f`1{%`PpMG=}V> z?v!Z=W);>vY2Gv5p=|A3UDl8!VlV?=DY+s%OkXNS7vMj49414MMQt38u5nOQ=hiL# zB&E?{KOP=A=<$!$mrkmVJ$Pk{_gmTCEC1+2zeR7spK60k-1Nf_ynMn*SM)`;-?Nei z(qD}#8)m;Aw}~|7U_K(>i=F;*Iv$7<-I@bM3hj7tU5*qr&|LiPQL54_!Rop|(mfTH ztpK{ooMm0-P)eDAP@!j3^tW`r=y7d-{(Y1szx}6;iz%1%tfr=sg7hvp7&^l6Cd{{H z3>p=+#TU9TtSgHe*I^@F&`KH?MF|YuzL)%vVU)% z>Y?GNp;){EW7Os;u;;ur4vyifX%cP1w;IzuKt~l*<>}&fKA8cFhnNRjxid_se>5l4a4QS&v(=+Q~+G;V`jaLhuw<-Ps;0=nKXaMo(aV61_I_o|#+O94V@uOqvC3u6T2Nr@?^(rAP^M5`SV0O0CXJ=i8))bVo;>)31J!0NH2szFRj>B*$_fZ|EcAb zWmh9zq*c;?BVZJdXyx~5C|xm8>nFcTIU$@OTOXPx2v%W_uMO5({cs(QUxgRO9K1hQ zHs81Zadn#MG-KleyvtoKYM6ie<-5A%JFEA$^~n|RiUbzO4Om4Cm+39(H{FZVeXhUnvBzFR>Iso{MfOQzA({=Y^^&!=HXhr5 zktCXZACdP!V`E*@uKu{*kNc7SGngV#C6&4tK(BN=$(r`Zke+nI1KJBX9d@?*3p=+0 zdlb{gEK2=&fD#ALT%KfoYQg8dnj~}_`Q(%iBX5azcn*~7Ph37k_72A=MkU|Lahu=s zRgEUZmAg(9u`3Lws~LpFB~XsWFbJ?p zCp4|LOODiT)X{%K>G5>&bvpXaVn8+_vt%K6jw`g&vP&J*TW#gV&Rt~$HGP(#glYfl znYQt^66-KYCF{2irCu%v6OuIpd+oA>{;h=+D^pJK^&B%C+fQVQ9KP%W0nonrGvp|A6eZ>AEx%Wn4tU_mV zeF#)k=g?-Qq0-a!$WNXzLaAWdH$>R06)e8fr$7$|z&YUcNM?Hzf<()$%<-zc$(+bx zfI;GgGKDsXsMV!;AG)0D@+{FY{F-LtRV}->X26!LEYHtlr#~w=*_zR(l*nsrvEQU8 ztd{&IdJN1YXqw)v9;Hf<4ZB9Ijw~Ck&X%-_uQimMAG{Q1v1`8*<+tW)GC{AnsC+J< zQnwM!i#XWQy%fb4#`Y(35ZW^;SRm3ZSJa#Quj*@wcEX>zB1z^V%%5DXE8O0ylHeGj zQLE}!jDZK8xVP7V8`<$Y#KgnowRLd`3by6^NTE=1RCr28SU&;+^$Be2%{eBCaP;f8 z$Wnlb^LLynxbzvxkZlP7MVJrZ1>a0v*9=IInRzP=w&Kh-^1_8C1&=iD;rcTO6 zD2wte>UkHyTcj2;N1O7xNZ7})hVc5v;GUCDxMIIf8VRN=E2kyQy&-BI3Q38J?X@-& z8!Y)U`xnVdU3tLvz*uUtk^i)F*mFp+sw59FPDnuzp*@tamMJS%#N2c0<|-jHF$C#p z(y@XYe$*e>yrDdNk!^=TFwYJBMpwhL+gdk%U~H7~$CG+u$#CQTwY2hOn_d0)V%>dF zJD=gj`eWUt9}D{srtt46C+pnvnymlnR3=q|XaczG(_(UJIY>Y86Pkal0>{6$+Q`^?9MOeW4JJ@6ENr%)DydXm<#i^15?olNrj#|GtZkaeyOgY*-RQyjeA>}) zeb&xN@(68n#hu%ud42zI-jRr=xtHpqfPvTE)Dbsew^5@NL}$Sil1w~IbZBKZ1b-ZF zH-a9cC+jUhg{&WBG$5lVVrrC5kc2$uG{bcZN#6Bx&CxRzv(rkf#B~Xi&l>>=G<`4T z3#gmW3-#=3t?^erJ)e0@A7L=TGnN-*k6Ot{4AZc%TGZV51h(wkESnnp)wAPJ&@%I9 zfxW6OxV*a1{Q=5DTDy4R^nGB{MsIDLl?Hp_`F7pBNg<5!A`mOEj+niUo65sHp;nF> zqc}jrg2Dnc7%*w^7m4hKnxB8Nhd?$4D*+b<14cb^g455Hz_H{P|BHkb!l@9$O6XJT z5InEWE$uzm-_#y%6HUbFX8S{E#5DSEia?eHFWw*nvMOYYBg z<<~O;67=_ygE0Ew!OymT`}qY)9?A-}EZzd8@pDS_+=q|;nQzpi+aefQ|pW8){%gkSkxM*z{-BW)gu z3zf`u8C6gaRdtsVs9PTZBVyXK#E;w`lVRpd&)`lme#$vMXZf3bBT?U3M~Sf?Z{n>q z>-l}t_C zYAg*F>h%q$r1ex#n}D%FnC#1~wr{C(gIXy`h4qKpLL~_9ccRuqkK{8IL*czIY_~Qx zs-dJZqZYjS;5Upm@h@6Q%WRpo6WI@JCm-Jm*m6bQoZX+9$o2+WoK zB1PU*)Yv4lR48n3_PyI`X@F_t9PQkroYz>She190|->-ePYot83CIm3ZvYL zq0M=8(XQxie|ojNoatV2OpGbUZE!V)^z?$A?;|S4lOLh|xeASZ13y1f3`SWGfs{X* z{6R4q%Clfo5HcU50keTZ{_8(44@I@&dZ+diWWkgz zm7~f?uU*aa>x}-TUY4up=JH~H!HDAVITbOadGtQ4fnO~(Wl0JD_3lkQ*P#zh`2LhTk8go>fk1PoAHPVOy8JhLRm)zs?0hD@h^Y(7Ovvh9;Zw73eB(Xd^dr=}f zHf%_p1+oBREy!(Fr8|)8{xyE+DNw*-?n?x(vRnH=y>jlr8slQgw9ZEg}hh`MlxvR4qiIT{!|HS1CgyH$sM z!(or>T-dqY@fB)&MiEPmVFPk%R)0@@q zlvOKX2)<0MXG7Jkh`?2j(m@VZCvmA&Y@%TZG#um>du!gc{wwM)(q^lY^5HS*Fcs@) zBe4ZM`QiGIw+Wy9tnWID){W*vzze2^E`>)=lD|m0;+$0a5&3|DWD-E=?lcK5>7+2# zI4tB8a^N%`%2Im@V#V6H$sq48p@CE`#04a|E-}SX@H4>WZnK(To%>Q1&!^c4+i zUV7FSHt110F#6h0Riy8((EPfXe|URTxqs8kzv)7Asn-s?1$Vvj<)96s0Vk|)Z2O#N zzQ$8*w}C`by=i%jrGVq=F??9r3GGanHEs{crACpK8ow7&I*ffZRenmU;R;qF@u9`Ll1LZalg+DmPD{jjpo&OzLa^R_ z7_~bt*FMoJqY!jmBMVpzzM@*0Zj-scp|HGwSzOBL*1Sai^dl{R=>as8anHc#{pPMT zbh=pEVA1ou3Xpi0@j8KWgxY0!PFv%h=l~K5?$rj7ivWHFrf9mz ze9TfpbIg3EXb4f<%}fx zg}xi_r#trEmiG6+QJ+VOebviW-vwjKb|CF<>~V>>%C=Cc&W3w7L;H#TWI^8fdG32x z)vt+uz7L(0vVK54B|l5p(hWWJ=w|FF^%vZSvWhZ(7i*da)cAc`-4d}zR#B2#%t=-$ zO8mY0tTEA1QgXJC!4$bFY15D{l3sa2ayc%((xs}>)IAoWj{Y`xL-3m?YeE^qwM>vuVq0!5+?%vx{>CI<+%U?l)~s&H0$jM`9)2EE4z}9S@7G1$7sxBxToU&A2GZYp%-~d(=bo)HLc~OQu6OXrZ47s4-$2S-Fg^mPo z6PO;~nC^9S%St8$eDT2#EzDQ!)uoMj4s;Q$l43L*QBy)~mOkBLy4>KGzbFOq1>5n3 zwEM2U4X+1KOQX@m4`qr@U!sOXSUKqmtwfKN*dZ9m#d={xwYQ5O94dScNN!5~?wyG1 zSh8PfRo~0Go83#>_ivrlX!)l+GtVoN^D8Y?9~6O*X=zt;I|)9YtBy7~Tg{bO%jXI@<9Kxe=zffwj@oIeJ>-OpmEBXFHgJu#&Jn9BhU z0YDiC)RTYU`-$xP@}tkh&x|>_cV7}I6h03hp0z6IGxkrh5ry6SYP|kq6{yw^@lG}@ zBU-XJQ*N6Te&b5%A0XfVF;?SYxMlQ*2TOZUnI5N~TP1gR{#ay(^SOx%I}$aBwLEOK zxWt;(pB!G{G<%+U^Jd0O7rMCSsL^f{1l-3!mQ|4Z$|iN-v~uOzx&ij~DQC0G>IGj7 z*L7$fV27R@8*}q#XzmUD+?mb&()-k$RR0jMamI z=no?4zycXypzf8p1bi}pWf2n>9oQmBG?xPaA{uecyL1Qd_Z5sAx{_4)pJ?7Gun%%r zj&Gc~@bWOTCpyXyMwt@FH)?5aS}ONZ4pq8B=1LW(kNXDjxb4Ju!@7sZsq3=5^pfm! z{klZIL*za0V5rpmF$uA=H2CHwTU(!!r?rkQ_4aZ5tFUfgP0(9x`c{bC&4@Q2JDn1A z_FLsZdY@C(APDT>?HGAKa|q4_54d_n+ZuROircjjw^MS|f|lw* zNnGj$4bw9$_aV@=_9wC0u|WwlJXp`l18Uwp#DF3>&ddKG4Qby^=SHz9Yx>n{$TrzWyPMks7U56XuIAGqN^A1St3tlTr6Bu7W5 zlJCsi@Ze<4f;U&xvR-iD)r@iE0U4})bJy&Aqpzg{iZ=s z5bA?rL)CPo zTWK`rM9PK2Yg=Hhdq#79~?6cYZ4&*efg?+eN-?H&FXEhBCAq}pZ;7Ifq1u_UbJLrznb z;6ROmecB6TevBdj&p~S~n#y~1LkMIP63#@9QD>b~r}Cn$r75=}}{H2@s-y{;*Gbb&=3*A(z|>A{NaB*0N>;BYmy`;`BHpXzWRKB-H@{ z1dhz}E>b|i%m>_|v>|MOTq&=`n%sN;nvEvzCnT{<7nr0-G>tAA4?Jv|^xJ#X-(IGm z6^XZ04n7Rjxv^avyh%t~A#<#BMM)^`?V9VHxm!G{kJD~Rd7O_b@N`y$@Zirn*kd6t za{NrO)y@bHA~78HIy^XaJSB^=cCXeTiA+GIIepF(WFqiv!-AnHb4$ZaF<8yAMx)&@)HZRw4R%&{!1L1=I`-4d5(=*iE zMMnoBaN%^8>VxUy=;?c{x*MSdxUv$>`+@*n79g>3WdQaHR}Z=g?0CEfLM18*Vv*pI6L{&%)?fa0=7dcE&+?jO>{{h6#z5s-B@q>+ z@41__<+rT z{T0pWW-6pOFCtiH{<6C0-ndTcp}r1))8xM^N%)k3+-+seFuAatGr!(>dP zLlUTpP_-BZwc?vR3}pTy#Q|gia5q<^1*ZcF6M&m3#n2|2HA&Ib-m=#yt^o97U=NNV z4~RqZu=!Jss`h!ZFusf;WsWu<8%NC8nQsPc^B!wh0ap&Cy_X$fgSMae-6uGzxSVNz zUza2ML{1RI)BvuzW(hm2;eNC85iZ_~i=mRtC#1PZb(B0`e5_Ak(b&SKm)#lBl<1%$ zeIy`@S3Is)YW(L|^qdv~Gbk9a-0M(ibxW2$K?)&|zr_b!QAdPlNGaRFJl>XX2fd=+ zGxA%js^Ko3gM9x3rw~C!?Aq>2HoKJdWuHf~5DyUp-eksaRlgy7Gv2K1KczPJG};;a z?);=pIzE3shL_$6y}dfCduZ*}COc0sZbKU1Yor9kl%|fi31r)iK~fAwmPc7dQxMTy zalyTnN=;48cTvUGz^DRJlzsB+k+PxYKKZ#ovV>^r&*kEN_lpcv#Z;L9H9)Nw$cDGy zH?gD#Ldvh8vKZs=1(j2h1a86_wrVtdtyX)i`Acj>zyaFlQ)~_6c=kia0uAGP-e6 zjwyXY`o0sM=GXn-7@R07W2_CrDmG3p*dZFcV$F2*23QXuUzZ$(q7b|V+O5>95n+-m zI9>b%A!i5jUnEcR4mhHY6yJpUjt9}u^cP9!66>j={R;;`D%r-cf_G^T9(Np=4_2i2 zz*%EsJyXs2k*`d90at649Kh+?=l2q#0be6XQpyTDmNupr5?P|4KG&cw#7D=eahoc&ok!$umh?iAh0QN$O^e_J=A*C)aht?!H z93{3z0$W;<1naF2=y{B$SrY&YHs`B2SGMNuH_j;7xy;rJ_XKFGY1d}5h$*%q6q7-^ z*kczW8$`6#xs%!8X4~QBTY(j;q@Fhel0CbAt?GyQcF5C4xZXAs?`T7(j_`|WuTu6u z$-PG8uQc@1Ih$O=Egl&uTn09IRXjL2$;r+4C|iWekD8cUzd{NhbY6N975$cg_u>~g5oGN-7iu;R*0=Dg4 z>^WI`*{D#4dniNDprUC4XzC@$v{SKD$R05zCv6mq3v^!?mk47ws$IQtE1x0UTiFMk zTlY;AE!7>Uv7o-9R%xcn@#-KOM11qk%k`%36KzTK--*WGre;uYX{E$OkNR=;at*Fk zb?a!Ey^ar^wEDbo;O4gr_KxuEGRxZbOj|ay5RHA6%ixgaLifpGsr@AajxtVg7tgpt zI)bMXUG(+2mNuy*qTtldej3o}$*oNI1I*J z6aaAz&?(UY%TGo|v^k$9Nj@LmbD*n$&5PREehjZu0L>JrPdk2`6gz$eFoGVZfk>VC z0ym4|4p*ZgWyKtZ}0(2BquwQe)(f z1aLk|Nr^<_QWMCa0b6>$<7ykdG~k!S;g36?oe=YAwVjf`cT4HYemxy7{2y+!rJ9}}Eem&Kg^|duG zR_yQZ$*FOoMSg%ba1y@bH~-lgD_;Eb8f2pv=c<;gAAFx;2XB0FK!ot*h0n8K)v0+t z3-lK-O)~cUoSuHzca}LrtMWQgM+!4^QS&v+zOV8Ku1TjMWuvo61+WoNI@} zM-M2Qb`6{t1_KD~r8UmyE=n=c2V7O#_%8~cv#m2zBVuwx2-H)Q24Es-z`TU+Gzoai zUPN8($nQj^IR8b0oen$-;7J6&%u%z=-|la?cbPUx&@{sBzmZ1N{V8m_#ZSN72Rx(v zAYi8n7%53$XSqhwq?l+Z$o%|hgtF4lrRXrLS4HBtEjIV6PGI>%ntcqODwo$;g&q_D zGs~_~T`ZEImGj~+(kWL|$$Zm>v7v+l>s?9EU!$h-6gmmrm3Ab4m%i&4o;z7pBm=8@c? z2?{{vhhB1xIwgk|-_so1*#YGUtE8l)A_y3?Q-Nni;D>mO&sCd(q><8hpIQ{5tU9Ss zdJ2K%T!2^-_cb$BB&5be+7Mu^=S3MUj{wf`bP+z$u-M+3V(x+vFuZPiDC5o|5f>+D$8>?e`ep?~ zTG3o6D*3f*EiL&|ZdeqJ5r+Pwwx>&RtPSxSKU@DeNwgKsvJYwfGB;Rm+8{$ z8-J1F-`ol7YfPMC6uZ%6yz5UrYn1GoRSDom(uNG~KH1e*{837ae&(|LE;H8d zPfhz}poqoF_1wen;gMGq0+X#aqVBAp2Q91Fnpa`Xyv$3 z?Fcaq<29&n*IxWYumjG!8IZxv*Fjs^-~z~0etraCBLhk;AWehhgYL?JM^yv?=7{Hg zwh{DlTojGl2HcvSE|8C4sAg@`>CWB+^T;@7Wak=p zg8v`r-s^Z)PNt37KKM}bu&zqec2xtJ<95COYbYY6UKm0{!z{HaG*ANnL`Ft#cqI3} znYY&WP6INhal&%Ko$2A(Ii~R{tWLb`*T|Q;4hxG<=qc;1(%Sl$PX`7>Ahj!w`V%7N z>zV_m2g3sEO`biplj=-cS^v>2pHrLx`Z&!hxh$O)5k9~<|JQBf1|tp(-S}O|9D-Sh z0m#q5=fIp_84Mkh;WiW~xjNCOe4IE6skEM}_nItG)2{!1ntA(M1J^ zJgM9vNfWc)l7R5JAQ)*+&#D&xY0Z4l7CgI>yK6x{0HXk^HZX9_y862VB3O_VEukz( z_M@CFE*=(49YY%9hg`I2)bjzvG0zBomE&F2$GNWV>-*6j;y)@En3L!bRs`}=6 z2J_$fQb}?D_V%Zd+7KdCGNq=hz6!VDXhT?4CLVHee)%WY6nI`B>0cx!k$r-os)bkDq|Ng22nuc80-3n zJE79My0n0K1mp&u(np;#O$TE7RIQPs0pA`|n7p2C>Y*0mppd^N!(2~nej9j5jM&hM zXfp|KRZ=8hDIzkyeg4lMNgYQ;_(vp2@vPr+s6%GhR7H2^7kbV*RrTWf@u{YzqoyT{ zvny1QX{+|T>*POHGiF|Dy@nyHkI6g2-48;i?Yz@b-7b**k6!kpS#ymaAJq1bU)ar) zL~&e*)>SS?)RSqm>7O)=oxf+8skvlKP5!g|{QaobYj5*hExm*^ef~tk!;s~ki~%b% zOP9<-PF4*a6^CWVLAwvWl2%J90km)qPBMikKl?$i@V`j0X8B^@Ki+&ann5qzZhVY; zEdGo1rmn4T;27j4NvNi|*Ra9o>uLg=wex=R~cxEeKOzKe?20ruZtrJpPIs0+K^_cXxMu=^RFeuJOM7?p^nt zHM3q8{K1?#bIv|{KhI~ky%8xIdp9fGA@;fMV!?j0#@M0v&(n;BviH$NZ#C!d_u@qG zs=uRkc)JLAHr}5ksC0@+5Z`xt=JeG2sE9eSL=PJ*=SEqJ?u)F>(@~VvksaCEBb+Au z8Ka(ksq<$N#7_m1H)m{9j_0W@t}mCm%@Mum%dY$jK4)~!%U=VZ_)ottpv7*S^8R4} z*f4Rt=F6|`r;ScC58Gn_pg6#8H|qe*S)U)`Qa~o)h$WowU+-Bfu|dGRfKy@rt(%+5 z5qrsbTFDy%mMMA?i26?wh$@cKt28v!J|D*SZ*D|HJzXkpRoKm(#;Wo7d9c=M5N$i? zN(C~}nj(i;TE)ho-~9b?$0`FLsF!Qwlaix9O{Pm8%WWiR=f;2E3;Zzp=w#Uu%9q%8 zr4hJpH?-q?H@96VK>2g~6ok$Ujxune^6Xu8JjC3pd|ZNZw(b0T;RNDyu5V@H;yi@> zpgiC=JZ|r*meQX^;i&&6d^6P~Qgm`OSTR@Kq+McU)iCeX3UR}gPDFT&(*6C>Ag_m|LjnQj^mLz>%649 zo+jxztj%{4ga~W3d~=oAZwwyQj~9<@=1t|&BZc*KBLzUd5999-REpO;Vdx05#f6V6 zCcM&2|1hxqh;D+_1jl8+lMI!n+|d9w(no+NZald@4~Sr(QmDGGqkHxlR&B`?^E??o z1{=!|4`A_~-F|cV7Kcd|#7Qc22*|DS8o90#QB+r_pyd8qVd2!mx}kD?i1cwE%V*{q zRswAU?`fig@VGYhp27;Bk2f}2h|FG;h(pm-CHZYq$Uyyf9?^s}e_YQpp|lLjlyxGH z)?ZDylS;%aJ_227#)^pp`JL4ol>6_BklU45Ee*3<8p<?IcjdD?(%_;Mqhk)cn$jsR5Jcyd^@8?+R23x_w@$i#VYLn5b{_YW7eZYMr5zpI4v z+rNzx1P%EOJ-2xFpFVe41DoLYT0!xR#n+z3(!wu=UnI9YYLE9-`RlEw>MVmG4~O}N zWDPCduxwzBc!Ky~|jAWu)L+)hy(1g?DX1uQP1H=^xtACif46wej(b zJyFchK&gq%;^kCp&bTNuanr-3?tT46;~AT_^$3T}itwi1k>lklfPBfZIN&iXdyy<# z0y3x2WaWo#Z~-;MzsHUy{Zmo=?}d+}d?*SNT);szxlBz%iN=6 zO*82uot9Q^?RDXcj#Eb$7aof6;|j1B{e{j}u(3SHyMy;=<5dIU)Zg_QFG7bDdg^L)kT;wQ*d?*?ljJK$ue75f_I>d(L$dVd*ozqfg;*(OMJvFn^S zB;L8Ed~^AK^Q;F?y}x%%89ffPn*#7jVt@_I9V47FD+>EVv=G$^+D6n+4y}l%_&ize zP0=qFtw9+{P*T?#jV8ny(9PjGJ}BUaPzONg0PSYGw<5hjj+DS?L2EhoMfsXnKK`QF zq&jrQfZitkgRf&TOy;qjRsZwZoW-8LfznYyp?d$KIX+hbDK@rPh!wBMOniL*wc9!> z+4kL_^I+7~_56I|)n?CfkhWk@Gu9?%_m#=nMmTr>7UBke?UTU0>lJQf=A~S=bYz&& z=TxBXSK(kW@Fj733!5m;Ov8-VY<1x0v$($Fr26jZq;nRirD5KzPrQU%oFiM31bHJj z6TC{vp{d%yJ;TXTTGV&XCpF9qwBr>pqJ2qRD5pIC2c7HrL)(}=X!a9qIK7XW3MRSB7P=a00i_j0o$J$BITZ*Jwzc4IhcS0x!jHKKR)18^q^WfRT6NH z5FhX^LL9~?E16hFuvnVcwSpA%wI_hY=oJHy9Ic-%F$cxG0;dMvTA;v>K^2K35?p<7 z$N0g6B{t7UGtq)KbJw3OZT3IAVMF{uG&?K@sU&g>0SQBrWJ}LGv$`FZW&X+f_NQ&*~IgAyC{4zTx=dg zomM)s`g)aai-foR8$d8La;N7a6WmN;Sbd2W|A*1mg?CYc7NHO3G1pF-|A(=esj~Bs z9{d6%(8DS03Q_{LePyKB>=D4;_vta7vgDL2AbmXpvgp(ndWNO1p7tduC~*ttyy3q5 zLmFZ5#;#V!BD*(ihb5+og%Y-5&>*dlJp#mxWE!CNb`%z(J+1rDm&)2atlE-Afd!=X z{lbR90gM*|sE+>XFyVwx_U7&x`Zz?CQjDPC`=&_p!ifG_7R&MZ!CBo1njugY)Kq`1 zd@ioG$v#hOIG7@+im?mL&_l-<7X8luv8VjcoR|}TZl^>O?74-XCP4Y*2vinVt1nDf zkZLDweo5!ZFrW4bx0OE*Khi*gimCB!!0u+q8vh=uN-~?w|A+sA%`>4!YCwl2is)=b{RR zSG7QU%thFa;J(r6XOM3f`v%6?FDwNz752!VR##UcFn=_X;2*|}RUd7Ha|PdfS@HG5 zN&hEjPtO3KLqX=APnn5h9(4hQEja+AEPR0aJPzV|>J3nnBI$bKyF;=0(A;s-U>g6+ zkM$$mRh3%52+LmJYug5BZD;F393jN8a!dhgh$5+#1->vF@9@bT11s-)C|jht3^Qc6 z)ox=$D}p?Sx1tK+&MQo6ZlU#o^_HvX+j98DY!9a$2{d6ypJ}q_V&m=htJjZ&92}*7 z<*%M!(%D{emXu~UD!)6FtT^h)AIm5AB3#@(xMWRp3J}5Stra96d=~F~MHCsJ;4yee zU=@3-90hgmYI>pdb)OP&QU!(7XF2F=w-4?WCx$K8yuPJP9g6ZeGI-jdtEHgdwYb+{ zz<&4{(pvN0X-R-zL+iSMd}cdYMVXSNhQoGs+pU@%lpEEtj{FGM{ zQMg^1O0Q6InAAIDI6u4v64nv9uz^h)>~lB7B>YyV1V`B{2+T55t6*U@qnshSebCu6Rcy6*H!>1ZWH>h;$bXS=!DtPu z&1;|X+Zs%J)n%3skn>R=^Dw8~ux2bq#FoeULgacf*E|i;Yjp5k3*A{>b_XCvp+aMh zd&@kf1|+>$%AJ*ZfBZx2cr8MbFkaoYbZ! zp$Ff98D^yi`TzETZhUXV|643MAvb=v<3-n-9YGVsBV?zqKBK0qgQ(T5S)lT0 zd`F66c!x265M7erHby^7;66Xqx|o3E(TpJFyQN9#`H~9tkl;hX)_uXr^zq*#wcNaZ z(Q3_9Obgz*h9xXlZ%uq6qycP)V-^ZNru~4AZM*ep6(5_%DksHPuP<15V@uTMZwW9P zmdNqHmlI?FZFO)JzQKk>D_rE49w|^y* zp}o0@MMkHZ_bkoHo8!WE*D=?`?nDP>HV;j7-o1i_j%?faFff4tDO^WloVie6K793+n3$CLP+dgl08sruHkdb?Fb`pyYBbTXcA z%u@_$&6eu%RJ8Sp2Lf~5Z5g<5Up@7XSU&!d??&_hgb@^^8tJjlBMyQ}{1rK6s-$J} z(FvK%i%)8y(PKZDx-T~Q@wE66Z*#84{50(C>x56*n3vA89%+i(g10PFV~JbX`Q4Y? z&Aa=BjCbL*49&LRiofRQ;pXsamd8ujIk7goJTWHi=}_}oon##QoT1x?Pd*a;d^N#i z0Wuosk+I}cF6~ih#IRkVRd&k3+vL;RG+?}iziqL!WI`k#|LrERALgm^vwd9z{NG}g z>w6Ws&d|Q;cXxzeil=85pI{ix6bcH9Clz7c2A7_ZxGVs*4v4{#xI&2ne_u^|ZJk>Q zNv2fHnHh`v!342U(w=}5CJOa>7LFiah>g{V=us-*DC0TM&$BEoy|EKM{Ul&mdQkVK zU#`*0f}F7+EqlufN;T3NueItw#j)n!FzqYvkc3w*^fmc-oc@V{@(o7%D)@kK8Ne)z zO9MEyD`5B~?_B&_{?`3<`1T`)-}C5CNeNJY0et8TQJ&t!fKv%jJUBY?1$KHn5`Vot z#;;$&{vbp(PQ4;BBJGjYPkS0@kgLjRqp4T#XCF7xMdM#{^&tc32g=;sPCuqozFhr? z`jh>m#cTGAR)knEP5@< zj`^jqN873$SMG8}8A3}vUPskUpRB5xYGpKxG@B;uIicA2EsWG?AI5cDsQ9?$LXZPu z;WCe<&l>q2EHPuZ10^1ZaIWSbwecG+2a{*v`IixyWu<(T-8n3>1D^dpA~ zb6?SzDh*jwC212?O~}IY+20!aP3m@fp&{WQaQ4o&$y$8eU>&4<5JrvFDEnwpd}B|1 zL3tLA(_gf@zS@XQt8kx4fOX;0z#ANyndC)yA^JO68M_Nfb%5W3iRzp0xq5mRk}plK z>TXvB)FkSMS6MF(>qVugoqDbMcuzJMBifK6oPK?bPUMLT?^e0(fi;ZXJNP#h;ZyHG z4GJv$JreELU84EJ0MbxdiYfeo&yFXTAmuyVbDgu1tZ5vi$Bx}$ycl=(u-r z;Pt1+gDrd&{tC-6t2)}YCc)Hffe&Pnw5QKacCHg&8S8t>l;HPsQe-$>v7Tklw|$G- z@>HKyw$<)>k7FHm*Ayl&RJXh|?$;5K)hi0Is$!ng`pt_dn6~4^fWD)+>^z3pas@Ed z)%KL6Os#Qd6=T&FmG_v;_?TyS-Z4(Dg7{SM80AAmv<4x%r{6oB^1jqPMSg(I*lR4A zZ)KMx8s#;6K?<7;`>=xf!=pmZ@@zkmduMb(^GNmq*xc0>{rPE(hh*`Z$PY5~7uo|6bGZYO1p3<9b?UommA@*(>Mk=^s9w(zy4 zCD?67J^M0{*cO~f$)rPE3!=0){WW0uOHIphTKoA|xQfQ_41KSJ7o~zJhrR1_p*m5g zmDi=Jadd*g^`j&|tG=z{5Dh^pa&<;ZxQLRT9V)ie>F|Sa#T2g-SF)n4j;=wnZjsM( zKQ^NgfbUa_dj%0?wab_+x`& zn-f}iCk1thrQ9yB+-`b6qDVOMuo_9Koe*9qaRQ7Pi~dU5O#((y?^kvD1?Nb z452hNOy<@yY=2MsC=QuB&-)Q7`Pp^T>7)-`1qib1S+bbpkt=2umJ;?mQa%c|v3Elh z)t!pMZMANdhgv&p$_u7x1oX@M&w~ZgpmeB%5cUIt}3S8^_vjDRzzb{1mr+=;04>6D` zII`847nC$$wN8)sAH9;Oe3`4SWQf_BC?Gpl8^8I7F{gR~B+DenyMRn`Lef7BKEY-^ zrGjogr3rybEQH1*%pW<1*o}yJuFHa+c(zu0;~||Ix8o-@q@o8V5IxmuY@1^J;Gh1Q zM~Onq!@_L)atc~QJM;_kPRYBQ1u#Pb2bWnPJv(l#yjf4nOG^_wr>1)L3LWc#Ncj~L zl>YR)(nGA^U`;+dt_-6?6K}5?ZH{E9mmQ?eB3c8&z!TUF53eX;EEE}YprZ4D1~v2k z*QiVfR&=!VGgiBa2-mF<46e-13ct4VHk>Gdl@8nwM6Q0)rV@MRK+{;d=3LAI`4ntu z1q%4_NpNXPCq4Q$nVQh}uE@B|N26vbGC!LcudXx~2yV9{%=B0QR<~%nS_95(b3%kEj5$%xo8bR8r=1PV#&H{x|6C z8h{M*Lc?QSBu?@59>i$pgrmt?(+*tq_ud$~aVUd(SpHs`wfhgr&npE{JT0Tbe+|{jHz{}jMa_% z#@(uKzuF_XY;y6vo7>yFOKaa;vg#ttfXLEq>3zkZ>kL2+1adSfxlAF7{AI@ar7axpN;M)OeNg zl_FsF6gm!yaMe_oFqr~9jme1ca4khg**{U6bc;i}H-@ld{q2N#!<1V%AxlK(XU;}c zuE2X$%AHakw*4JPQECxZRxzE3s#87YFzd}}3Y|9U0gbKJ*%}n0#f7huaX7!lXL09U zTkVWrPqCJ5xX9v?qUwSJm_JS5r*`X9i%ocFE{r6!UMW^J>|I@Hq#mCwcwyn3AO89l zd5rZ^QI}%6ekk&sir5-cbId}UkY>&t${p<ZL=xKdTy1LW%@za@cv+ZZ<;I*-7i+yPi?hD_dNy?F8dOX&TVQ70{4D?L5t9o^_*z2N~UAC$0;Sa17O49$-= za8azmw@O@bCv+%{;ZS*h3(6lfbi*XF?&65clat%uX`naVUO8`Qn&x8jSik&w5sI!O z=@55n_$rwrtdJgpfx!FJ(TaY}fPQuwHBeHv9j@=yOQ3WLJSeDllDGs$1V(~38SV+; z7w^OI>8|Ft^8{36f9em!_`zvX(U@pO zKM0hO>8Fh#iPJ{t=#{ZoY%4$rcta$-?hKT{@pmz4_JO`9BuM3K4U3Wu1Dpz{Of{N4 z$8X&j(goeJ*M-~K3Z>I!ylMi>mXfKIZ+R?~<`-c3u^#qy*hRtef{xc+21( z+gpB|kiymb#CZa+eW-Z@c=5>oQ$Q!Bo+G$m-=HzDtXa>Xi1}huG=D51HJqo~Ll1{@ zW<~DJX`YHv+(K{!oo)fCFph{9_%k|t`(Dm;(B4?MlTi&yl#+=;Dlp8V5Z{Po8Hdd< z+Wd|o~ za+l;s@h8D-3$ls@BLyaF^+#mm^vcH=y);dq$5TI|9>0#MS_GY zp@9N5V&KzS6VBU6UU|TL3HV}u+fA`bF|F@%RehhIHq|^5JGF`du?RI925_#_+_;L8 zai<5ybU^~m?FgJ&RldAo-KLNu=H&@TK9?F?3+i$!*)cwW2)KZ2_w7Ev3 z2F=TIP<=zFg{+xg*iN(mOfe*-bD^bU&hxI^=#J&xv5Jt5*o62e5p6WvE}qA=VVu38 zA8wWOe^<~!70Qq{M)8P|&8d{FN-sEAglMEHRYjr}&dt53Z@%?T$(=pCj4R=IpoO>Y z*GRtMj`-7Z(gR1I3AGc*}DjnOg%Ue|&<8Rq@hFng!|1dsYQ*Pbi z6#xy6vd-FiP5OAmR{b{<(TAOu{^uKf&=13HxNG;8JNLq=0kf?Ci|}@KZk)1$e*@My zm4OA}7a!oyB{9ANj>>1)-(KhfT0p>Q_2N5Vo6FV_ar&7hegnf?DF;xVhp#JJGr2Pl zIqEFiY_|tnuKgTGTB7NCYkM6@SWX&zega()Cc{8)m-O?r+$&i3E?7lXo!`#J%O5|_ zt(k7q+L?>#vE;^U;e|FmP9D`a5l$JgWACkA+CZDI?Y$d)>3(H^6aW5^*p8t%R}`mc zyoY(%uPHs&CY=NKpO-Z&yHpEin{hg2)fh9s<|dTxWp{Yi@A%dul<1n*$Tytt;L8CK?Rn50xK($y z`8Lw5AtF7*?b*b$vJ_y++1?c3TH_|V?v4;5yC(`_nDXn=SjKUx{_#!aK2Fokj;sES z-3V}sEM61tDhC3t(Rf1zj|aN8t7YU0enJDRCd5cuChxC?`i$53$dL3bxYA&oo~b+`WiBH3c__M*;{)y zt3NOE`q|)YLZO>&@r#ifgQQ(lNAJ30u2gmdM}#{^p*0COhTF-lW8>YeY~|^0M)E zU0s(&)ca&kzqL)fQ^kibeH+U%93!^mQ4OALP-rrUaJSW0&U8^kS=%;nedj!hV$}^m zTvF9ToNL~`>C>o}nv#^b#Gof$7i>5o&aVi1MtFtg4M*686AE=?ULF1_+%RqedR{dW z|LMCL6o|jt-4(bW`@#AQF%4zo{mu;t{sF(Bt=%aAng(31|4-io6fi4?eJ;&HuFG#1VfA9qgO=RX#A1A+s;a&AJTo5n#`$^4r$-+1*(s&76Ej*#b zk%l`spGllfKa=0+*0{o^qwYU#;QqWf#w%|}lGFX~dZqCeo;fj7$BgY%; zN=6InvAkv9hVhlGub%#*OFBk~AF^P*$eVR9YaIT87(k7KYqW9cwN{=GU)+4N@xVmX zkQ@{s{hnnKuJm2iL|>aaB(Og1uMtsmjU6x*q>m5893IuT+Z3Uc-r|kmb3Qq}V`z7# zs{Vde1E;f_(lU(Ka6mhXIR@3` z`JO&Tuq((o%Ew}&HuT0@7}ud?R^XarC!K(*?fahxr2xZRx48R_$Dbei@t42aD#F*S_%>4QZv1h!?*&fVTKZjN*Vuw8;iKkiv7cp5 zPeEpn5?s`4$v3h$r!yd;p;Gs;bX=5X>@c{bor%Q=lmeYQzF;UG$X`b7_fAoN6~uhr zzFGKYZ6g?d;PdG)(TYA)!PNDAiSM%b*|4KvijsmC3DI!!pNIQxuRLvhgnNG z(Z23$Z8bI4CC*~})z6~cmoe~K;f!&QF;n6EHs$E?M;L)ga$y+@=mU+WGfFC3znCpn z!2|zWdhF$=L_PcUkWA{AOTYlPzHd7gVd3x__!+=P64MJ6---GQ4DLP_0BQLD7eG9H zK*DF^|IdX51UaoxRnP1fVHGl3z*CobuzO@QKeBg=r;4WwC3CTWlQkanNZZptMn&<* zz^TaXt^T2U7O#8_)JSn?iL{iJwSnP88oVtg%GT;)^e!sCo-q%5 zE~XU|R-*Rd(alR>*ogqVAo@I5BCb`0$cg;Vgqns1_)+(nEv%DZ*3ePy_2GdMNQ0L4R z&3spFPQudy~ROY*gDjhEYoQFS3dj~0m35#&&-qr;sDwF(mm&oz6*g!mc>qekW| zv)wAJF3}qqY*?%Q1o*M|l`n(?z8q?XdZBh+aIHQWs$=XEKl=G~%oC3BReBuY9$#(a zEsfo|W-fcGkZg89YRrXJ>d^UsJ?r5zatHb`xlPY)19(KWIY6=t2v7H`aEAdpVkLH1 z1;xXL_xME^b8#DI8qIrSvsD$OU_(<8mUpmk8==gLvwQGZ6O&Q$>KI?1f)^;-!FGYD zp~l=5$DagpFD@{k-+K=oltdjaREN_flu)olnQiG}cV+RfG2JaCy->|%9y~HI0XJC@ z4)Weh^n(G{@JJg?(bdh>7@g6MR&)>8U(wtTk-H!0#9ECMQ`heKp?y*HqesH_h?vua zOXm;w(OfQHbNjWRz2{WdE6eU) z^%4*2+`aam>O8Pg52!Jyd73h9pbsm$e#`P3V$n@dSmA7StThU?i8}RM&f^*>EOER3 z8jX?OjgNYMi6M66ZqAS14C@-%K#x6Ty%l=QEYU)ugMM!?$L`xKc{1w1wk~ko*29mE zV#CAXcDmQjYXtlkwsvzsb^b2k_nuIcO1}M3`Y)XarQbKRVy&IJEkiLA%AKBmn7ZDX;b9%g^SQetNiYvtg@HH?G7`$e<6?YK&Nwyi$H!9cD= zeKRUyZxs^u(Y>@b*RTYtZS1$lYb2B#JJeq-n)cX$>s}rKkNRt1;>bfnW<_}uq2ts$ z_v_A~EXH8JiHQDOp|C+Knc~FCJ^V|F`dPzKv4%liyh_n)qa96q8I2U@s5>{i@`L89 z;7%u{uKxaxQU7O_iwk~CoeB+NE)jI4cE56BhZ>i|m%jhq&Nkdb)rv0L+M5&RfQshc zwVJ|tW2w$PQ{xNaCB7|zcuTAP6&GipDIBIRZAnFUo%c*Lwtv%P9zA_hXWgAl-@7cW zlg4#4yitj(`dsPwTODTjNds^U-Cv_`sf?=QTBJMAc2#b=W23xM3*)amdC!>ZbpQ52 zpKWWG*8MW6g}eaV$LuZ)>D@Oz;L9*Q}Ss zw1w!gW!|m9_pQ0;_2rk~P77@stHYt+rIo@so(H-0hjLETFsNc_f!21$L6O}j{ZJlD zJ*PV#eeQ;gUd06mH7%tcpvXI52kPC>3nDq7FM8c99I;@i8dTm#yLqh0nP$spLVM#O zlyYcLTrgV*>0%rsZpppPq+`~Lpth-_ZM_D*5=v;&R5EMByW=&x$&C{TLK>G!ja9)% z3@-*19ZkNNKf}mqf7GN+%j(fpc*ItxJXY(YoYa(ggjsvRi62L=7=qkvIcC#i0P3Y} zxW`n0+?pbNA_dwGrMrc^*un=5ZOv z^92`dgTxj)?lmvtWpzbQ>6Zsr2A`G^<&(O!1bkI}J+=bNXz4RX(R&dTgV$S0=?;VTvd7laU29@{CBW<*t9!k=yvkQo zRWDbGB>K`DZA`1bZ1QB664a65kA?#)@c|%x&oPpD7~{tjm>5880g!E{{32yZwb_9c zg0uZa8W3Wu_Oy+a)1Ro$r%!~EHCff~w+y__NTYnQ3}vfnjmS^$M@^RCE%D-M63_l+ z=`V{*i8A17qVK3JpIqHFo+(ii87@hPpT3&bb;&iB)vAgU2|$n0AwAd*xI?;r=6qO!ZmN|MWMvhJPCL?N&=<%EaG6ci}NN6lI(mm%AX;aBOQl1F!7) zlBv4zLI1WmpFvL}Eyymfq>!JMg==KA4}~gLI4X&Y>Y2`Xy1pfr#oA(XCe)W?BKNgeSv_(i^jrQ{VGczr;cBAI90k&L#%tmr%Of){{5UW|kkU_}Ys8TGfhEbLrPmKJJ3pE#ga5P(eK22Lbtz!G1y zdN%`7nAP4$*2z!zG~w(k?J%_u*6s)F5<~U#iTAQsGq#I<>#Lki(YVWNAb<0e31MeD z_Af{AT!tE9y;iEi(G%d?1^LfSR(7<1X7g~3W9r^=R^eiIg|(^BcK3;F=y_- zxqJ54&I@^twn1hi7yIT9C61vIth?P99aX|A zx1Up)VQ-!cs(r0hU7w97;QugA%D9)h#H=%H$KFVOPCpds&M+I}v+^F@ z{t-BGNjLHhPjnFD+VC=A?e4bPgNb8m1}*N%C@Oxct^rd)`NZCH~cF0r2mH}*_WnXFTX3l>Sr;90n(X*52u2naPIs+huN@H?SBb{auBYe1)|AaHyx`!KMG^zv6bha7`M-^{8J*3zn8wP6{H z(>U0sd)FD{Tg5k@?M!X7d7yawgt@s+*-(SWyW~lP2gwCHkMBwig>|k*0KjSoF7#lJ>?|8ES#W3j9LbvK1 zTQ&Mab1BN;no5tt@JeAr7uh86+`}gD*1|6`?nS%FV64OwVl%YyIOV2Cda=un|1f&ps&1rtmCvTd#*?5^YJIgn+pjBm z)1m@gQIUYOe&Lc4U_rWmWXx%>lL zU}3WYviKIKE!@kyO*^YaASlkiLEd^(nP!{@44?#@QJQctrHbmH>|)d9)8~O1Wc_pO zvxMHx`;Gfwob5_RAbO9`^@0i{NU z4y}ftYx2>3@jjWiN|jCUTXC>fvLhOc`ZdGyU)n+3bkssDFJ4-6ahI~>k*YHVWnw= zfX4s52Lr!sp#j9?8lOly>K_!M0O}ENWU=PuwLB~X4^#MrjjP#%=YBw-O2avs%}u~N zbxpd(7AB3HtOGCfZG&bnuBW&;P&75q$^*4wiQ$7(%|B|g^Vs5LRh>%@j}@pyS3+jO z$q%y|#q#P(OXjxc&7K56mRsdmBF4tlqPD+S8}RnLCr(bB=O-qCsMnUUcHH$^IT%A~ z<}?Iq@vI!dm)F)Q_J>kUlspM5oHg<6kK&33!Rlt3_RO$DvW6KC*pn zLahMu&%JtQT{GwwM&xgdb|H_^)!&XV2|-|XUW%;%eWMDqO4l4z|JSt?40Pqo%eQ_w z5QHuX%K%HkcMl-vXc-9HWdnDQ@E>H*fbAD(j|$j{9*f!mO!)7*Xyy0GiI!Uh^H1=_ zZLtc01*UkeH7|=T>tfGzzr)B>pJxR+8;G+czSuV44CvKPgi(KKYVs)>TmQH`v8j2z z#$!Q}Pu*FqaKIa}pls&2uCSSAAV8oO9{Ov}B`q>2%}3~D4b;tgl;*v1yk5a&Ida4x zJ-4Ej{1!6(r>aTRm4J45=)GfH%H4rIsx|R&cDZ!xPwZKePH~`Wxle2X?ZvqmCQZsRv&St- z!x&;D9gBw1xeRg&B2I#dw5?iHn7ekBtS~VF9n0k4UkeK4aqhi~U0KwVLTS zGG>0~=&Xv42^@*_ljl;OUJ86Bf201&%q9DKW#_*|jK`Q*n3&?2_g#$UZOG(3?d>t6 z%g|HdKW#8+vB^3fJ>n}8sfZl*LH>sqv5q1#irlnt!DzKg9r@owA2q**u9(%GKw?Im zd=-iC7FmZ?+x9^7^9xQwTha&8^M1(w`|K%yrWj`FLLyuyij+3!{NV}xk@Qn!DA5Q1 zvgC24)yvtV(!P!NI)x$KTI5GXLA~(XuodI3U1(Q)M9EOOYQhg5JG3xVCqugRWBpZ&* zh+iA_lHc&Juxa}>K*}^XbSy0;BcobSLqBXr6$Hwb2nruPxMYZ?x~$ghaepE<0go++ z_uni*I_~C<6&l3uO8EftE5Wv!BOe6u`R`JrmOQi!vz|1oo?KK1v2>zm`nbVW%m5kW z`&zdzK5`43W%iTWT2$Eka`~(wA>O_+U?%cYW+ku9^*ugXr8rStJcjlegm0pJZlqsigw&Z(Ieu49B$?|n}y)B2;V(!c5SHlf8)nyHX+K=iRY>NcYKZu!3C(lCfA zdR*a%<#Duk=0TV@!l_Ws)Ql>fu_>Aatw<@}6}|6GKhs!;gyl0^);S@ESZ;&8kEjNW z)N`uo3lPwJPlVtJeeQ=HYx5Ten!V<$<2%9{lT^b_^?fZ_O6r_prH<6rN{I#;bzOe$ z+~Bou=>Doff@S3uv+6akho?o0ez;C+z_hoCoGHxqhWW>P`WZIn_m#bmsO^sKR4@Ge zUFOPOfnQ#;Wf8ZUIPdAZol>3C4@F->#d^TdN!^8D4?_f)+%Kc&shrXwd`isINROndyv8yu@IPL!S; za3e3=uR9^HFNxkKBhTi87nS-FQfIcvsppv0FJ-UO%TL&{q!v`o#z+571t*HXp5S3^UKX7U-ds>0s=jn(Yj~_OtI;Y4cr2Yh6HyaPg@~%!{xkH;y0Po$hmxG9)^6r|Ob2Rc ze9LgHct!oZ%jpUgxbIQb&=v^6pp;p|ysByJwz|OPmf^P{sCRaH)9<|^ihpnydLX}O z40UfHG=!^TgBcZPCZ^4(rP9u2b$ricDQ()sI!Yao$VEQmYZGQ2P?24K;5DGW`;T8b zbgyds%qr)SiV&BK=m{}<+S9P-?CLwcx7}uYC{FEzpLz*V%ssnp&qjXfb$Ie{)24@|&L|=SbT;vRz z(DI%RR^_LccO}zd3NdSe7YshPd`bB=*&qes1H)}1YE`)4jb2fl*+(H^!*buD@ISy? zswhfQVtp3snIWx^_#cbqnAF0a4~g`8^O#Iil>B;I=w2V@LbkT~*O?Rd#*DhQEoE=` zk!~M9X@5{YQQmE6YX(;gJ3F7mrTn%xory4R7e&A(G4C z#G?0D-r$b@bi8)Da&AK}G$!G;zjEp$EbLZm&%k|6BL@YzdZlnO&=#f1qQ$OT z=#U)AB$)z1NhJrO18-%-lc{cXI2j++cv8QJ*sBs^(kYWdh<&JjmcC|Cz~Q!Q6VQQB zk75zo9b7FTb6h=Xym`%igDkkYHlhCjQ(U`d%HqjKsiIWX_Wj$kbKCRTPa}l=%>_|*21tB^3l94gdKQbbd zJ^^TumqgIJBtllq-UFh@cusNWKyAn$Ydv{MH`&Z;`FRe5q#T1>PKM|f2>!=1EL#2eQVRz?;Z>dQo8b*XXgf(n&Agu$Qms%G!<|@QL!=4aoGnXgx(D-((r{*bDt}n8f z8>e19U0-u1W^AEorj54g0vlZsy_+HDTI(RIE(`5a33Sl(j!vl-kmKOSDVdZlRs?6D zxbCB$G3DJUYWS%&xWXJ znijJEd_$Y1)0yTpU0pdVo!E;-&qd8^v!5|n8ld}om^nrJ zougbtpB#(Q7?H>{W{0}*eNtC`R-s<#&}nraTj@;xDaW|YSry;PiKB9Kp@VdjvwuW! zZNP^912c_N_lIAV+!*y%jdv`&ag?NQlSGO^g>Ogpk+!DnbFvxMCgVvfgj`{No z-Ql~sv5T*2-<(b*d)RxgmKByA3H~3N-aMSGH0&Sm%ygzLs}W79q-GL06d}&jn4xtH%6F zccE|N!8L{S{k?hwl+koh@Y3TV4t3v& zFFw?mB6)1`^Gt2w@!^&~j@q2nfAV% zcJAAn2aseVrSX_zS$;@1F6mssF;Y1JB`^e$u)MrVbpA2>u$qO|p@%ui?i+8!+Da(fgSS6ja4kk%aahl1i-VZlTn)0Emg75PVluN`66pukJ()cQB6S}^zAYH?W8B1DT&Z`5FZ;EV9 zeiVqLPTJTJghW$BhA-H7G!-= zDB%4)jES5b*$jx0UdK^St*!roGP6SYOZ~P`B~}QMbPhw~A08GS`G~nRkkzZ^R3@D?P^nk-4vg`5Gau0JA zC~c+~r5u_}U3@=zH*{F=>SH-qBQS00qbuyfK8pO>+UsPJEMze@ZaC8a{E#tx4TE`A6Ezbz`0etrjmt?|d%eo{YN^{|z)nTpr%*ANj}G zMqA;c6f;?_>D#(9j!6UomYEo_?o|_m16PTb3~aTCcDkdTdl|P+%w2HM#xVRw!xH#~ z_QI*0boz{N8yl=V`JsY_J5F!tE7@JmA)NPxMxJ#p)Q2U*rP}-PQNwNvWnlkMIp*&uNX*wZ!r%$p!kS5jZW&ok7`(MIOG z8Etm^=cWEv2ls=SKhL~)7BuFc!z^&Nlk_h9>rQG z!Lv03+iKY-%-3#66%v&_RFBc?eJlD7$=apz9cILe&0VM_$t`m~0%hsd!`^O-OYq2KCfLZ|lN`g;=~Sp7C;Il=zD&R^ zO1>ixcQoSgKEO?<=531dd82CIHZuo)p4r;cjwimvhcMsOjYKN&K@@1e#W#IgxVz%C z`{!1x@F8=U zYH5g}3%#4)gpdzjFrIXt!LgNt_oINB_J`cB5`>Qc4}`O^LoNykB-*N6FCF?L!Bq|( z8AH>@3DYVsfjeA8wZ=CL=CRf1JDbtv0 zj*T87-Qf{Qw)2Gx>(LVq!ylGu{6k;&1)M2z$fqV?sZx#hxci0H+PlhAJ;k?beXFb# z!Pb*?SRkOf{i7?jg#L$aVwRhKR^IF&glW(n>D9290Rag8knkMBmGI->7yK{dCuX)3+kQ7~`p4l_#0wne6<|I)KKy#Ciag$~&d94NgO z57@Of+f*HcY+Jw$mu zu{GO+VYMw%z@b(5bh<+NXj2hC&)i?fSd~3M=f7~OR;j%{4|m1en3)hJxt%{}-}C(A zFA1LCo}Kr+yG#>^+e<%5d?K7{(^U|Y|8fnS`(XoCbidv@?a>;jEqeBiV(GoRmU|%G z-{qRw3f^&@1|f+3^3c(zzRR?n{ZH&~-CYwDkIt&fUD^A&qOupv{Da#r&p}o5r0oS* zcQdq;&?B{P8z(-UB;YI~&O(h;P?DiDSV(uzPGp^*hLL?=J+o&?Z`j+=w&OXZ?bHa& z+=8?XMCz-4uYFWDoRjQ)tI6Xo-on19lA{~ti@<}&a7twLU%ju6V*yksBqKF#wc{) zDbBeZp}BE+M9_K3I#Jo=)r^%-psf%bpGGW@m!9^Im~Mk$GI9NTLK>@f9$b(8P~|2V z_II5ZtJjyjS}!~ibWOT;{Wo3FrQ9XwMqO^*3roMdh6{aDlK!1qH~EBjU?=jAU#%oW z|Nhqi^yxFakTOp_PBUKiSb%@Rc5BcZU;5ycuwLdLr&?hHsmT1&Tw)OAqM1z=B)9Xf zO=JD5F&=cpd4u}FK@1ihD-Z5bdXh18L|Aa zVi%K~jb-{ddE0s%z2UUI9ukUWx1(bGr7So)O0z9DMuac={k>}i$#%vhV-oze(6c4$ zrSz)drQ=IR%`}1Y8H#Pu>lI)qdmmzBI9k-2H+5~_f8ox!!;+yEJ^C7r|Lg6}9ZSj* zef8EQV^mhsm0X~CjHeKMQu(B-0h=+Jn5e7#7j}~#rY5|1XC0~);{WqZb#0m-J7wI?scW~9q_gZADKM6v*tQYPHx91p39|TG@(~q_uI9ckAQ=iXAWW$}1 zv|Ku~Z*3$af2PIwUGnelI)dTq;b00fIJ$4z$eIxobaiAwU1PhYxX1omqn1-BvRr$TcFk6cfQ?fAxOD~C z?K}4F6F$@>{DUlJhz0C(!LOhE+Z!8;IH2(-`6|RyL!_Eier80Kx^n$Qc)~oqh8%bW zA`+{Dlp+Hig#jx8@~AeFbMlzYxnI3Z5NLfl#h3tfz~>l1Z-KtU3t}RD1S2_DB-W*g zX&`$cCg<+Vy&LPVcEqc9!V3UHADEXbq)EX{ZPL^JtA$0D@+@nyJ;@KU6n@j@$L!KB zvMNG8S6KLVAGMqBVbu@hbmLw7ac3`HR-(9S#f>fCwyyJVhKE^#YZ+wawK;TL83oh1{?*<##eov9e+VIlMS%;`zVYBe?zR z(RUy8n^vHULk5zf$s{G^`a@nJd;f^p*G?Y=jRZ%F8e)RiwURJCnig@qFCwFY;=({` zd|4dyR9u43`&+$_*7W(Xn?j@3Gq|2F4k013o`>o2vxcI|z12oq3y+d#waD&|?D{6q z<5GY;Dph9T_F*xWKUmQS86>hZXSTH4(($ja(xyneO6>Ddq|ZK8XG$Kwejq~~;8;~1YPIo1(#erq_MVlC2cR;Qgsfn>nSF-i9#5A*^ZE~=8PmgNzhgwsdS>+2tb8t*Dv%J+IQ+r8h=v&zHG(wAVZ zX>Y?%KWiEq__lY(BB}$0Z2R_95Qvq)lf9!9b}%(a&dLqI8m&mECE%yA#R)~h&5_{o zW`~l<2(BO-ighBJLS@emM&Ga*sGLha_uGZPU*Sm(c(X*XqP&*7nVd{6w+0+0;RC>g zO0L;7R)EsaGiovtJIarSJs2q1U5aP8NVPYb`)#3ManTi)SP^4-utdm0$P-Af!qc70 zORi>YT%Ms$aguim#P_8#aYm)$MY=4qUVshWM-&Ehzl1lD@Vk}oSDvx0PM+~M=O{8+C( ztdtpMAajY(Q1-xVIvz{J9i&f0YQlKnbo*~{ArI~O#@E z2;-de+Ph{_-hY`1m!4JJA-OlmO2ko5y2R4Pwv?fA0ei5<5wx8^!|+Rev2n{Ip<1#n zKVP<70t^@FQD7w~XZDF0`C;Qgc)RMWws1`hId^FZ9gVS`PjB&?k_S1Nn$$A~61-}T z&Gi8k2>=0mo+iPyw?MQuw&v#(_F+q4XUb>E!9zkTIqd4!2aNSvuo)9gHbQAKQ{UiMnxjqq_0# z#tz(fU=}*|bPyy!%p0ix;pL?LQsI)ByZznKm{^be0>js`?)t{OCMQ&go&991 zz-#aNrhoAs51fla48XR6Gw<)FlEMv>EtVBBM4wb$);F$05ps zoTVUDobT*Wwsl+HL0P%3z$d-Y^E%(MW}_y0lHP6IdRzEr_jglk;&`J=Z|5d&i18&c zNM^qQWCA8!o^imtP`G@vjXqrp~<1S@tr{Ehvf|5_H&Zq=?iX~FaR@&_UN^-@%GoW zENTVgHL3Ip$(8HeGG3rQ-e{l#f2Mx3X7ek1#%Nf$zLMf516jgCgx_RsDflesIfGLQ zBoXBn?pp2q1FzrIHDP;w7}!BoieHz}V3|;NnPX3Yt^0#<#1jG|+$N?IWJiFyp$8}E zpM-BDe*G<2_PWE{1lwVu5=?^haR%anE>95j$uW2Pj8?Pn^f`)05%bBHMT4*WIa5-{ z>kpvDWxjZ&;#HzX%`xh>=64Wg(z}^~^+ZGa$1&q{{mY$nxAJX zi${}(OoJ3_qOZ$%w*RhJ`(&TMZ+D9GDm^O5Ex-d-HMLIc9Jb^1If1X!L3=nv*6Sa= zO?!8X2~ZF;GpuOv>(?PO{E6M8js46M_+#q4f?jIDOn0pNlN&1hhOg6CJ!ZFsRr&AF zT&XI5BoL6OAOKgR_~;&^e8$*YH$CtlAg2D5&MMO||93OjZPel!VZu85neGd=N2gq@ zTz&4sM$Yghi(w^lux|c7k^5G^O?e-kuxAhD5aIOxw?Or{0TY688D@AwoRZ#}548tw z!vep1o&!#yC^y{EG;LwGuO%DICAi2qow(B&K>+sQ&U=;%upuG<#TCQ#1lX6JSEm@O z=Rk=%?`B@SK(T=bgMH?J*Cl5-MF?_}kLZ#2`T253abY>uSa1*$tXyhlJDe~yqatYq z_%s#vC3H)V<2NL93j;(9f?a<3u>pf?^JU2?ncPaYifrN8ac07s}YpsbdKWiDn3}bN!lP|czXQMnQhs+iVXAa)BncC zZO=QlF*gTlr@6K<8DyL<5ZlZMN)b6HLK@Noq(btn75BNGQ2*W=HE^jH*Eb=M( zBV^Cr(Wp}OO6PoR=cCWh3DU+B?_R!5Y{HnO*JplWVL!+|YuJ60WNboHdtA^k(AnEl zTVdqf^5HZxruO^HVaA?COd^=9ldv$L2flFe^D@pnJV-{xj{W=-Xz*Ww6t#Wf7yc0{ z@Bf0^$kOX4B4w9@8yAp&wCaqS3mrem5sfKG!+8}mCjYi#Od4J~CiJ>Y=~UP)hL{l+ zYc>9h=bd&e!d6SlzT>tGA4rKK>`@R5Iy#Pdp*$vaY@tN)@QXt~4H43dJEv;i^XPI$ zH(K~c;1l0^XtCFYU>WYK#;?|1QOE+)SG-Pd*f78S0E~App&?oYYM;j^9Fv^2(KeOK zqup0Ig|m0`wya4aL_TKctd~ja6LwTa&~EOs(&HQ01=igiW|((?+g>OGDs}i$?|#$D zx=Wz*h;VzFMR2*^?X|!UUu8U(s9hyj=j?Zxp~@)5g&tDvrQEomXQsA0o*NaxK$SQS zqh}fDZSQz=5qEKI&*o~xxsb3erHGr8@s59fQF1-r z2k=gy9ifd6g2HgUlVmD~_yF|Tdjhv93;KxF<-D|6v9<1cqc{!kC%HCmK|}T>T)syR z9(5IKMW7y*P|G@=w`fm8d7Cwd{lYOY!MP=!s*{qtfT%$$+iafRxYGaYr-cERi~Azk zVF{tfwdFaTAC=y$rxxzm4i!*|oa4vpis-!>@@NYPh+o$LPFmnXG$7RC37JDACf9@7 zc(ccZ)<`7RrCu+-?s1CnOKab@Bz5~CUd}h{W`#CA`ableMfo^wLs=t<;^TIH*{v)= z+*l%;w_j_}z65)i-&H1D@FJt>0SkGvz92=AqMYp9oKuYk;7!PAbb?WI{_nTUU#Flz zBX$Ad>`pJknB@*~t<#P>!0WasS+_o}7nKzKi|T$?6_9Ao+5bGV!VG&bnvI$>Bmr3m z5&{X07|fRU2?S2sIm=T?oJX05L*W|M0LYAy{~LKosMq^~iixrpqTl^>O)4#lPo~q` zyB<`(dS#XLsvdvkZW{dkczv0nO8`%jhts~m>kwwb(thmtA6r^}7NG8_2T93=n28qY z1!$4u?TWC=Pi>p+;9XS9O+b+%)*#*$Qez7R7v?TUpb1yu;~oM2Ag&Cp(9&Jy9RNkt zDzmOijpH7PKsmQ9_1`{5J}nuKF;e+#_~)b3vCz@FpJ&$EY2a#IarV$Uz{bNdJ#n`= zME~oQJ3ULtiMnbtf(O>l_H=W4OVeU9@@xCfs!)I7eB>S{8_FekwKdtz5b=ANQpEF# zrqpN+P(PBwlbhgfsA6=?Xcwn6lDvGZKM1>x)-88zP2A?Fjco6=y$k1ENEB?j^g2Q% zHjazxuQsF@Cj8$&*=53=RKxjL#w1BDDcAX0O@|GYZ634ws*lNj90!+e7qBWuiPrIe zJ(L%f$8rZw$0Ehy$CXX7(dS#!V62-GIvSqc3#g^4h z(q+$C8fvFadR=CK0%3YZZzxx73JQLtr+S?yo_v&Q)JKQWqaTgT(h@|&h!wdn^%3^$ z1^Y;|7nckYchu$LzUUQ%8XCr6*|dFSCS}fkW%GzQ9ZJteF`~oqvgBQX((H-Xu12C< z{MVj{0MhA%CC;00fGm&N*O{wcDI8p54}4x@@6V4iIEE|z(Wp0mjqVzP0g12O!g#X! z#myo#JARnWCEc}osc0%}snN0Z$sNmHaD~bvch;d|DWUECen`8URsRVa#5}{z^bRvV z*(Bq}x0R~~#rop2vi@2D>Y{G%!^L?TMHtcOT*H}pG^sX@n8ggxX9iT;7GV5zjOHge zOxexsG7(t;Z9Qt<6{9X8QcHr{YJDyqcS|4%xzDAiKLlEv42V)n_W`Ps*uvU@<~CfURVicyKk11P;K(bhY;98V3Rd(JFcv7TVG zmuBWx+d{0h7xgE3HuQ%R{bkGvH5{6Nr1Lf;z%HNXZfX^Y^1Q9=+lKP2b4&$BuOO&jrSKBPYb0X6stKyiwp?1l(Gw(1 zd^)yC zo*$yJyEAd8DI<8lPZpNHkvCbmxUYr|Rm=o*3>Uotf5pahKhX;pY2r)HDKq>GWpCWX zHjB`=v7WyYx0oW?Xt zW-*hluPd@0Glmn7<;7o*CSGgHA6F{{j%t$q=*uQHRI20D=zoku^QZkyOq;{Ucc3O6 z(M^abFv&;TCaX)Pr;A#{#4)$O?ydpqq{mJ3wa}Zn7EIj!-p?}*W4)q|1b_I*o7lF^ z)=ydDBs4)5FG|m7>9HumrpA?c-q11VZLmd$d30nKX@mF%evt4!%1Uo%9!!S_IvjDU zir4WIP+;`n6Yy>N%zZ*hK%};q<5+)&Js{oT(m2Y($V}ikiE_e?z@wn&(W-~}rWb-+ zk{lYTTuW7zfuqFo1hD-}ga*GDNu(wC3hzAI}5FJf!$zC??RvtyK~)cl?OZ)al*7m)}z8MSs2R# z?bRIPLxf|VUP@2TjLNv-mU5w{vi9pghY`Kp8FHed#ez=3a~0I{P6*xetX|(Fm4c|i zX?_6gy^&ZP(-=a3oYvOBI9UMR@O*vu17FNuT9Y}&If5PKJn47<=_8zE%20lUVof`s;4riN#a-gJ|h>T+3m^ZG z(|!_iad+Mg(yhRd@dir9Xzc@@`eFa}W~>?@PMJeUbh2!`JlNuN)O`W04|>yTc8wZE646(9a&en-q_IPG0neo)Ir7;-I{ zWRG`3v?_P;VYvqEB7c3RoS;pde)>`O=9NcDy1sV#>YD)hLdHb(rW)x^?8A6Xx@Wge zd7S0dUD>dlwm982zU)WT3_$O#HUgijeVf@9H)_4cp&qyC0s>!E68vS}RvYeACDf-E zo=?#C>;ozU&h!`maH(6VEWE@1>5ubf{{+K$Jxt6SnmR3nq)Y;p960M8d6XF?qpk97 z=3CP36CU|r`?}TPg9TDxDw$8!!J(L>`^WMu`uxLer3&M5+jT9R;|7%#AgpfdFdBAi zOH9lX9sj9g0JWCT8_P-yKy-Oo;Oa3liZY$j7hn}3{jF;r>%$Z|_?_0|7yc)CR z;?;eh#N4w^lCv^-HC~>`e4EzLvDFVO%TL|``m}p|U2>5o@Oh+>aq9J!!LhLMkNPxq z#LT`vSEf1z06!KZ)}ZV=d%P$6PNQjm;ZcO%&@5^9Mg?s|H&%xwk2R~ep=VZ^7R9JA z$610KRD7^tz>~zD7(&F6@&4N4y7CWrpjp+MrY^ix>2tyr`a{~J5H0P$bS)W0Bb=`* z02?N}4*K-8UGFSWH~}nY47p@@!IBTTl$}$xa&q~#jH{BmB0W*8wd5;F7lnP=t?~p# z3r{i-1c>yJX)dNEe}U%z0G-VfJl1qM8GG0Vrwq5&4^I1OoXUnWcXpW{k@L- zf>ZJ1ZFUr|MTyRO*}Yfk^+%!wr=PqXaB>lKI?a1+aSeTqpzT);`&nYGu>jsle(Fy~ z=|I>xlGppRSdy2gBIJ@>fN)lg2jsNFwI^I^i+lg*g|#2;`mfh&){Y;Rsa_IO6Xrr4 zYB5JPTB}YMUu7)s9;Ik|%Xs#@OGyy_o%Rd1#OR809E8iZr6<1(9yBJLG4Z+~6}KtF z0}Rvt@cmu{)3T?AWWZynXlQtXQuSfC6O)^PX)xO3D$PW}{xCaB9Xvz(4M^Kx_KMkYqKKLE zG)m;nqw%Z!i73!*YS1;_KGh=Wi&tLl3pad~af?oNHR6-hq`?N`$P&>5h8bXOyuUvG z*f25e^?$I^soT-E%(t!}n?H5Wry0htEOI32qxO&6PHz&97%M%~Jx(cHf~zY>%Kv5O zuhyS_a-yzGVF)~=xK1EY|Bg%CvH^e?OhfFcN7-u*-FZ?fIs}R9SF~viPCZKc-R`)T zG&jgQB52x$F}OPe)v}jL2=$){2Y=JiT}!W*6^u7x;cdW-fX79A48L#y#DDp%=yQyVei(Tlihn2Jbo_4+>8RM)bH2k+gV! zjos_wL!gxV1UKXcwI_F4^zsf}EM_3B-#U%II8a#eXTgK>+&+ z*MW??RqdnYqJg>}WjKT7yZ29RlS0ElhW<5 za$_4^)g5cUeXZJ&&G97MY5zmv&qJj#ItP3}br}WD>w8H(OBsy!jw)t`0pWAUb>zFl zuEMB2(Mgj5dHiClExqPc)53$iJ|E?hK%=fkH0kiP5KlvQ<^vSf?+|LD!l-QW)CeJU zsVM*b=+j2Un2@uvZ5kw>)jFKHeUdF(x!B~GYmBB(l4@f^ZAH&*wGz@sW(>z7BP_&5 z_(?*T5Hndr(ef{ohbfgci4X8jtRXjF^76leNWH$(YtSsH zHDY7!*eEj+F(;M1(*g;yO`*~e>iU4asD7{cTUXh;W)@&|0$y~bDSzD2Dm zV6n$aXsWTXw9KTPxs{K9=j#}E6hZ+t_uA$k^es)=YWAI&refuil9=*Fz%-VPLVtbY zHWy&`cAj$D#ui`K=Ccu}$hGoiShnvq9^>m9Be8(nV;=__{YADGsS4go%4Uil6 z0ONzX!ZSNxs~v1X+B>t|fv_~OP&z2aG(Jw zd53J2GSxk-6LmRNwV}pn{X=HkmZ7z`!|wK>Fk}4K)En!|VLDYynB73PSNiZpJb^+nyvK{6ei`7bH+EctR<9% zITW7*h(bukN7du|7Hyo2v4pqOg-4H@;7d?d@AM|E<YIV7iBbo=?k>#<8=)?cEWDH`!$rx;J6%vboO^AP;z~KvA7fQ-Kf2hl*=%nZL zBaB=G_3ewWHm@5$K%Ni<(DuY|f>Mw)<(v~hw?um6tVV&IX4!F*^y)c?YRr zNo(b<>|BwFnr-Hu{ntuxjR%c&y|IEm=&xB`L>P3MM^rl9;*OM}>COQ$oBvjtLoOf7 zXqPR8`08DV z%@D02^7s7AY~u}geakFb@y|1*xjH8I3Rx@D=HWq5mkD}>5}sa8qZ zgtoFtJ|V=~h?$W+9#=k^0PcWy_Y0dD-tz5$WkYeOJZkE#{^Z!w0aUmvz%kweIZ1Q^ zf)9pWo=c<2Z_RzUGP*l%rTpaP6wWuM@VE1PiLo{=pzLa6zPX#D))YTCilVwTE;+aK zd3N@<##9c&sNzW6k>~Y`MueD{l-m=NM_+n2zVMkVl$OHtvJKCY_hs(E6M~U8C}&x1 z85%zbZY1^d4C@$k(WI2eHn6`QyK9vxuKMU zR*jedVex&0O{L!W?(YE4@#HDsPrLFg>0K9aB~YGQWrB0q6po?YN!aTqdF`H}ZjRJ5 zPOq?;xR&!qhMF{`m0oKmAYNr~Xl1L^kEfVBncYo{(_@07MtJMXf>1hnR1sZbtux^^ ze&|N8|4vr>5FL}F>C_&^;&%v!6@)xAM>{6|!iv354)^#aP<3DQ1E za3-bm$c^4G&=7+Y`gEL@iDTx{!l=jHlQtAP8^^TV$74!BbnI@%(A_TMQ2Dzbj$1(a@CN&+LRCFnJz0HI`tQ2y+>p5ZrB~mzMo0<&4ikeL zu{+>%)P4RRQ_F1WbJWqNGAe(R=-;MDasN>s^L#12IJfJAa)QG>v%cCJ;Yha+A6xs6 z4&@E5s;|^|@n$$93P62l)xa=aQ~Qg)M!&|Trx*RzR}$i6y1RAlNe-sHC?R##S+@0# z>~%huUsIP}BoO2cLYQbuMx*tXF-yXx+AF*5yJ_>;|I&^=L4LrNYF@`2XtH%!GFml~ z!@R3~288~$if#~392~(N)jaoRuXzRq?~YQt(dg3Xz}Qs^QVPLwF5@sT(hSUud;xr` z{I4uYYw^2@*4I=Mmh8S%9d%N&;Xy(q$3dBK)sD2~X}p`q@)JV!m59iL6IOuU8*z;y z+~HFTv5)YE0Av>K)0G4?;Yxy{AmYz*E9e99R{c88 z`C6GjR8U^4anonWVl0WU1an-k-c{;FlM%hnczBEoq8!d&2=9(TIgQ!{z{gpmawVh_R*F&unLV1-FUv2A3 z28p%7gUj1E-()^vv8d_q0XGP5BKI`IqxkxYqhS2Q(-KYc6zj`<9mwQX|EOoXt-6|@ z=UO1isCGkf3cp@A{-O!->j98F98IcvMa-w3y5n?D+KdNsU7k6V1InH0A;M$Zd6ETk z2>x;?cS#qaV*ib>T0JHpx!=xXBrC+2`4AK6(|Uk!NXekva-Q;NkWdsuc;ZfrQbZ_q zM@;;^(TJ=lYBpE7Cb6%Lg*;5*NLUJw72A%03);eQO=A+04Kr`!C$&d3Uly8l>~Ut{ zAJdYOUyN7&$o^87pc{EER4%B+Bx~tr>S(uf2^n6?d}>Ab+*cCR0ufY1+W0<)IS#+7 z=<`(B-gSsFD$mJ#S;47Zb6ih=o+r(jPFPuaX&Wd`AE>SFh_cdxoirLV-w?8<-Vc7t9poW`J|{-R%Hmv^iW6C zb|)$-&*RM%Kl#Z+k9^zW!HV3)@wU@Ju8)vM+a!Br&WZo8%{FM8O<5ml zcdq=MZ^F9Q#^;bB{12#JMod7gd^W^tSOoth@aTe{!mvK+kX&2R7>uKn?{Bphr_b+S z8-2dP-R^Y8q0tB8yKYYGEyKU_E4y+JJz`{h=6^6AZIt|2 zus2Jnje3_{DIabq1}nfPI~*{L?oj{@E&uvegTYwslne1iEuPrUEN@f54*q!&#FJ8R zl}taem^k*k)s~C#o{E?u1|LjYS7gbEWs!RbuB8)>Q#E8BlA}9|1Huy;laeW z|664GXx&ic&ok4N%N@<16@a7@c`q1P8B(qGX_1V*WSwbSRtOlTdJd(<8k**406hx*3dp4?zgXyMqGDi94Hjp?K z0^}aQIzP#6WFR~cMMzvI{~zam8OlY?83$m{p+!|V=&Z0)wnbN<9&(^Iw5`z10@J_U z5u*aXe1OrOce@;`QxpT>G;R{+zsAof=T9*=be2(w7}jJp>pv@toNXwZdj6f6y6AtR z_l%g^7uuG4x%>x+aA|`{x;-=cy{T{*l6H=x(Aj(YdsTyePuAxy+jZq)4RArp;&Y|i zEd{hWoQ^0srS&A(n6XmlU=OA(#aGaL6h(SN$`_;Zn-@ua^TNmHSx5(O-yRp9i&+*zJeBB#sa{4{|n5j)00Q;advcqB^jA5_F!q6n?I;@-%%qbaW~#%i%!wY!fqz!YYIe+?Y0Zf0nY)?n zZBOtN10?EkD{okh48tee>Qdo}x=WaD($zZ*y&{afa?L0}uz*Jh-^K3h?(F#`Lire&S1%I&nj3B zY*24vLMr8u3@?a-dHQCwqIxfy)ssyicnOpVJ=vtH69vN(6!lEqAwuky3ceI`dGS@M z4}F#l@F>3kN}oaD-)o|S7T+s!MC9&8%(TYJ%-M9Rt3k-gcG0rAvAN$`GeYZ<97tlG zW+P|8>rp|w++P0PtV4hyo=ueJYyizerTcdA3c(o5Tw0n#W_hke7twGzP&;uRcX>Va z)b;;XcZ>>3*vkc;-Elwg@O<|!<(_{!fYHfk@8vO_kzYVyu8X{L{K$wGj%|WEg%6KzsQk-^vGNX8$`hAUS_x4#CWF1hZ?mrE^a4_)mJnfb z-m9YlV{Y0%vNcC7phWbtQJp{KbO7!uw;n~0_Q$aokv#GOd>`$9)Ne9#d48nq?z0{Z zZ-8&fi!FHTs+gEtxB69ohR7MoN{$M9p6!uaFK-wPHQl*3mT3ww8G}0eSyuk7g`Sbk zoi{gmKY31<#f~D|R&wT0r0k#dwNYP+uGP%Mzi)PE?wFA~ z42yTYVvW1>%@8d{oH~#&8;Y343gZrls6Dg!!R8s6ARYRFv`P#hlB6~P(lV0xqzZ=a zD!Qd14gN!2PId?&Kat@WfM+%pyB-~Oc_8C*i99&;ke*Qzt$>cf_4++#s`XT~fM8-^ zWzowl#!`S?LB`igByA}sFDp|v1JOY3DbHyUgqU<2_z%uoxAH}S%%8KA^r1&R9|n?5 zxfV>2S99f+6M$pF_)4dej;L2YH_qH{D|}&BRyu7@<43R)*S<(QPo&PiNMY39D+XK| z5i@a_%rte)?G{irdR0&Uk~AK1&*`J|ZQfm(5Hv;&^&4pO?JQ|tVIAtq?3?KsI}?tfaP1p@lcuEALVY|oo=wvpbeNvyPl`I8*D!( zJ4{r_{Qs7#IxgPR(97;@$iK421ht4Ceq-OS?yqMo`7chQ4+BSX&(jUv@_9UE+VIw? z^Fc@+uqyHbqU@Ok@>kfadKu7gqM;Y>wsL`?sGy34jIColze1p>nFys{qDccRd(p%r zx9ckgvd>o|8<*;A_^JLp52htF-TVKFao93l_Z>X zO=b>(=l>_|@u}xA3RQ|oMFe>X`I4@zA6-vt`gsO4BERcZTypix(p8~@5E#UU!ln`x z3w(}ZG6y>U%V>d2hbQ@IGg}dn?ZmlEf5YsVp%&Ty_x}3tnP4J}^xWB@ZL?qetB;(T zZYmAL1d4+L#TOjQEf#TY41i;zB20*GDLh`6l!slnATSxR^WntAI%c9yr%`m190JiQ zL^0b|?v=R}58zJz3{$tpNTDP4cPym7H@w5e_pN>O@S8l4U&2`iI*qnpFcaRbR%QvNX|s06``jmd_t2_(#mY>TCkV7iA5c zxFr2+Q}|5ibou~KRBqvHY0hY$r2KBN()^0>5P4lWIC68rdh(EJr6lRxmPR%Q0a#vM(D%v z_rZucY|l$yEqZ++LTBUq$cS1DFTvG$q(c`L|BtVCLY8wyugZ;Bf?w76QOr`#yV@!b9}e*?u`&+`L7AE2 zFgCD1bLOPKt+%e#{HSo87BaV7{BFxxuuVdLFz(orn&@Un_;<~2!DPi?fDiH4?DSlI zr>F704(x>h?E_jRcs0HrV78~XF}Yh4c%7*hovp=C000$eW9UsX(d_^(`2XX?<FDUfb%SZ1qW)WRktHjgDziqZ ze4h5&HmL<*-t^JyWz4| zn2^3PDlJ5u6+wpUD10*Hd3w38VnugX)2d;Ym`LcYk(IH%akVtEZ)|{x{V>iMNDDD+ za=4g9hZVHaQii5>B0{s~f4vw$_QjDb-LS2k6Fh4OWNTm*2t8!>2GvVWQ7hJJXrrq@ z+E4^T-ueIU*(#;D^p_-F!fB!Gmqs?O<-4eDbm*-S`pJX@2s&MgM&!X&qUe`Crnqc!!#m1ddci56Dhw{C7*&Uc8Cjw@q}JHyT|pVCsm zW3Z{eFwmizv3I$i@Av<+D$Lg*Nle$=^~ncSMH{B}lc6&*731K+Kls%F-;*5DF-^NU zefZW+|JIcoNuLCSx8c?^*V+*ELO-yDekCT>vD|!O$=A~5&yw`4YjmG%y6`B`rB8jt z=Is4+&(uiYIyl|5=6*%ehC4v{)fqEF(0mVV-Bs+Q*`^p2#f)rdHK;FSv~)_Oj)k8? zHFh54@2*TfPik)QuSA&2`a$!aI?kR1FNU{v6uhQ(qUt!;8xGt1w?lHX*07%RS4|$l@L^n{3O1U8!x?oQf*|c($?9+uq=6@_AyFAUT9;`9d=` z0MbesFYpI6c9X~J-b;Q8-Qnpw<2oZN-Jf2PdpJe?M5jQ-o8*^BPE&JQm4sjMHLW1~2Y6KXmFa?)<{>L;6y$u~(30 z0-bh@CP-KTKgU6kDy^Tu-4y@9QM?yn_O2*evNx|=nclTjB-|8|Exe*ghe^D@OikB< zk>Mnm#qb>LRYnUd?~6@)@&-PEC8L|_B(46e?mMlK=y2@Nnxq=h_;;)6+G8#`Uk^{S zjxq@+_$OI;J6~%x0AE?R9zHebEq-Hodop1pVc+dMb12 z#HG$F-5ekLEC-p{HC4vO;yzrTUhpP$%PEEeFD_kw+3MZvz7dia-gO)&c<>4V?}5&> zE9k+6g(Jg^L}cT!!cjc#Jdejx?9}@2pgg{l#1JnED(x6WnH~4g_+@ji`RFx{`#Q@w zIo(ia2cei;W(}Am{lS1l9A7&I-b}jvcBja7=*ZEB5N>XzH@A2`@#?MYi%c96BYvN_ zM(VS6^SitoG&C#W?(kmROm|mmA-2uQB2`FhYV7U?E_i`1%74A+KE_8#0%95dw0NQD zGZvE(Z^6%#bK%m2aYY|9fupp|Vfz zzrUqVCpEA)wU=CS?#b_fKDYbI?6LsMpGutJ+$TdZOr56Lsrq1rEXRk0AA672+BVKb zpW5k3old2Mgfcso-guyHlj@pyv8t9qA-nyv;YnaXpTJtbeRydiy?IgIj$OpVZAzN* zf{$^%_$$WHsJS~kB0=}AtvZRN*{pqb?LGg)HQW61tk6*thf9;c2Fd-1-hOL$&BR9id|v@7 zbaXy|_iKr!3%dDr29i@RX2IW$Nzs9ZzwcUbZ1;0abKXoJsM%jX5&3n;z1KJYmei{5 zf#b9~?43qWM6!RWDSjq;g(z-m-aC~XEnGi6TLzR}uvrc7Bh z^T=VD_M;Px78-HEHMwa-#v>)f+|Bl`KHvx$6WtYC{JLVb=MviJ5i3M#|7KDX3#()h zCeTDmQf)iOF??{^9To1ysy9* zGMo{hq|fj5&Mk9BQO{I@@ThL6Y85cVkaHkf^*a70AZ}w zjsvI8F{obio_=DzxPAXC(1ke@Lqw9DPOUljV~(M`xBz}mG1KW`Adjlmy&M-<5?P)L z|4{euZ{M$iLs`~rcDsxny@Us0bz3xalF*~OLd>WsoE-r(3i+bhW- zOlKKnQG~Tb^*d9s7qNJkI!#kB2_B`P*#7;Ei-EoPr{rk0tocadsQTsU*h!(T`Hn8J z!xZ4U^xvYr112z*xu4=9RLiPDM)HPqldxLot5!{2`tbdQGWo>DB*SS$iJ73%iGUG+ zuD|h<4PCZ8Ixu0Em9nW^gwaf^xP zP3TkKWMrP@9DHQR{KRV4-q@D?b%4e=R^jGc^7;2S>_D}3Jca;q5(ay%9plmMjE7fR zYKh817u+99n9uDHf`=nZi=9Ly$;8uz$1sSfR*#WSKJw*t=EptVRcJSuB$ur&(3P*B z4wBwr{dxQDb!uyY^9b@@N^zb7A|9FZxzw?E8@gH6{KvtQ+2a8#r&n$H{o8)~Y0oWa zPp_=?9xzR=jVhVw=zIYH{gDip% z6#)<`L4sRq#Ipo7o(PNkD-QYZZy!9&7?%3j92JD4Dkd^J zMok9itBT57&aI~g3Q5StNBaL&B7Kkoa?Qd^E}RGpo2PXh@quq9QM+*^ zh_R&v&$pm$``+D~*S+NV%uu8Fbq!eLb3afr)S6>@NB zU!D`2*K%#!X1m>oTGtV3lB5JGZ3@y#r$#9n!Kmlh3Rd5W)rE*(u$sxA_YF4Fn~4s3N&zqF_mrYt-b`TarjH{)ckzaUFQL;JI~%wPcg4|Ni!cWB7wUxA?r{ z*3Hdl)(5^r=@`5Gk|Vp)Y|n49rjsqG5@Bf{Ott}3i0BhZ@-QtGkmxD3i*j?!b5SHK zA1$9+%KqnltMj)Yw3pjdIO2+;7PhJKNJB$6TKriiwtLG3@WIljlOfeZq^D> z8rL%0bGOkNe0#^F=;)s_CfXl;2X+ONo-Qlu?_x4Dlu9vyaKT7)d zH`vdr>9~&_qH_r-#%0<7#+IP#CTfdY4kl(Da=^GdGba7u28&vZL~X1uiYyqeY4}p0 zq}71#@!-e9n_9N#Nxc1;ka9a|vn?rU zIcubq3b%L|8`AuQL1xd*U5fY*p0gzSZ7ei-BAni>CnJFT5*vWlLcY!y%_ zb8GEi2H`2|#N$m933-)i8q$9la~VEhkUpHkDW;%Lb%2+(JiNfW5^&`E7SR^HO56)5 zq58C0g*KZP1IZMA49n22!mInB9h?hKbZVtGZk~E!%zLIpTaP=VTl{0D+-!M}Q`9w>qD8dsH?&duMT_8_UXyy7bA(~B?{YA=IAfkdojqN+vw~%1 z2WQHAw6W?UN2)EgdHY@-C>uaWp^DaXJY!O^cVc_osCjO#pr$B?<{WxJ5)H;*S-W2N zsaLp9PAlbR^2y7pAH*9(sa!HluZxQ~^#w5s|NdsFD`^Et zS<3PG*CB01e}1jqKEAv^d)!rt&XEja&h^hR%kgCQ#{tcJpn^)}dJx=TT5&!_!o);$ zSNHmcX2iU;fAEfXU%GGrKly^bR|BOV{_=qP2*MwxQBHTMfr)N$&mg^p?$QUk+n?ex z;vW>x_w+nWSyemfXacJ@xP*@1H2yDE{rBJhbN07Ce*1r6)&C2)>Hw==4Y2C>U~nGc zTd2RC%%0`_kEsr*?3({soc;H=cK@N!qv>XkwZK2kNZIjZVCD#5Oy!l48VZEUmitsE z@~$@7FF-``9nvR*Pz5>j_qIJWwSILL*MM71Q)uFlgZ%h}gY0a(fAPbhGE>e^a?%>Y zuuNCZUNgJRf`as?U221i_kq?)#o-~~%6j$W>ET_XhBup_)TCR~x)J)@-1$mp4sEvL zJ*&-=Oy&Q0@>$B36>4K1(D0MFN3c?SGy%LKr|a<@6Xe z5M7)5u^-G!1W$caX+6|uzytL5?i>w1R7Nu;Zhy)~)Qglg?zi6S(3R&Hc>PQqaVJ2z zD5Et62-NYT#}8S&dQya~!Mzn3=6_Z#jGf@m)hrds^ z99mCU_p2K(u5vGVXWCt15`CD1IcuHPQ!`F)!HpkY z+D3bzy%5QJQVKNO)qKq2gE|Yuo=~9At4Xi=!~LukW~>V6(hc-IE);bLEBZT9vRJ|K zrX2KHO!;xQTQq0*T%8a+*b09%v5VIv)Hrv6n6BX_9vYtmN{Sv_;ECBF_e z%y}QX3bo|?Z^G6e;ax*=En;u#xIfb>w2noH&08G*yB5exys)|<7*6WiJ&uGn9T5Pv}{y|AkJt2nlIb82`KNjrJw*wp?p>=fzkvZa)f%n)`&XhPA6k2LM zJ)fhh5XKO`_i>lj7 z?L$&N?=YHwjIj2Sx+Mf6HzG&Pd&52B#9Yp(;D2q+(7i5L#x!pvF_}wgEB%$Vmi-}Tkj*h z?@SJduXhg1r(`0SsWGP2A;3e-%!A^fV&wG-u{pD zr&nz18@tpyuLO=aKAzi>dlFYOd)z)O6m;QneNUHUS{a>3@(TjTaUR~5#;*WzEthco z33Er?R-da$`iIQ%x%*uZ+uNW&UJJ%IN4pArseYfq7wMs`yp%prJvp?kjew@hyRaPp zG3cU5dn~UvCz86OjPrth^YH$B?^U`VZ-$ZLN_*y2sfI(?x#8Fk=ppD-2tDF=m!l*)KdWE61(ww%var!uKEXzHEHIt#wtI}r!Ri<;!YF6eqvU_-e zB1gaF*tNKE<*{v@B7bYVm8g~qfLFVP5g3t(f1)V8+&5_|9GFXTctnx$i`$qkH@Djs zy!q28DZ(?s=$Fji`)kA<5ofp_8I}|x|K1%?`yxz**nJt-C@+x>wL6;YCk=bB4X6>g z6Y1FpiTNwqGVfJKZzjiLl`>w%sVcxZMDY*RA4^lRpsUcK2(xfxO!5nKptRC%tCzKB zJ10NA`z889h5^pO^RUswH}o)eafdrhrX0YFoXWKuOU=5g%Yd(sN`4H@Z`=kt^Os9; z6nZW&%Ge23MJz*8tU|^vAmQ2yZ||ktQtlmae)#y;_i<_lGn8IOkhcv z!)$Ta$`hZ2AvnP`k`1f&VtEI`L(R@7xz?6=LuOA5`1p22{3n*};C%|Tj>yL_{*(j` zZxt6Cz0`r&rXhGQh9=wSQi;<5_EKrShh;RB`Z=s(IORMei<;GuThyu?+gj?&@qxnZJ({Ps92x zsyh4z;{VkBGJ8BIXo-MW>6WNp$^3OgJEuKN-CuVE8pM!i6N@`PRaB=I>&H`;5l(_L zIzqU7Xn6;)O?odkxBG+5zWI^{mhM|!<(=ykdDxIMR6{uq7LwOohD7R3-3wX{0*rZe zP25V7Ve8?wOcEiPgh>vbH{Xpd5RNh|?Mo9=P-f**XJmMMc{qvX^FF+~=aAW@X_qbT z-d>Dj$Hd;a(h{$}lwZ7_3Utk;?gz^WDZ2SKI%iLEzjt}gx9JML8<}rI99T21JsSy- zn6T@TAhde=V;8{kWT-?2{fvBROe*}Je7uQu?)#4(*7Vf?`(TrzjQ)owU;aZ3J^J+v zLvNg}#9Tr}@fquLt?I>eVtAvm)>c76Dr;0zo=@CMOrP1~&4VD^j?g~Odb-o*EW>Qm zH?${M^>bvYh{-M+T)0SUs&@3&Rk@nHgN*!HXN0?s&Qy-cwpwr|Q;TVmL_gH*#U3B# z&dUpE(_tM4__;8XZP+(SmjREGijhKy$&HhKA7CiA3wN!0&6xGO`@{VL`J9$sP?V1e zR_3D-Xx-=EtVTAG-3M_-%$dd6vfMD<6{9Vy11imYnU81|!d6aFgr+pk}z6%4tU z;9X9-NbAX=FxrbTtrxQyTz&C~tRP?BsXdzUCEj0-$JLIhv6u^M+?UKUwKLUtKTFqc zBXA=sk8)w5w1~DmsXF0~0o?+*j25E@T>}qx2Y&rnMtSKLM(lh9Xei5vU=AUL7VO887R2!h2eAkQAZ) z0uXBh^mkqAq%m>Dd&<~fi6O~UVuL}Ev2H%iCNCi3Kg8DHX~WH)1hRs8&u&at!zs_E z;8dCSKgXN{w zHf9`fZ-tBR85Ecb3yavBB=l>IaNJD5CqhTxYeY&3T`3xE-ctU0djeTHq`s(r=P%$+ zBDsfhsZ{qH=n{m|L%<_MpW&{6DjKyD3~Wrokikjvxr0)>mi zWb=XPB22b|T}PUVf)Osydyyz;}dR!Y&lOIqA`ulazTDO&At1 z$Sbb6q^D|%hVhBxQxF?hLL>ucwPW?-hvz6{xCz;Uc zf_k2QXhW-7a=Zc=eF;A1AbJeR37*!r$#|hIV*}3GkIh)3JAwn6vR8um_v;vldwJIt z4fdsiW&LK4vS#fU>!4lzI*Mlhd736>n&ymy`vGSD4S6nzQ$nv@Vw6ELL1$%Af2OnD zBI(W{(QgPoc*nl9>EeTqzUoi$*;6GepDXGCm)zhBV^95-o$iByKsg2NIM*Z&J8M33 zzmhxw^Eg8h-etcx_et8{-7g@1uIk}j`fsDv;&d~q) zeYoa3A5$jstp(hY?c;nzVkT2X^y3JzF9xf7ec3Br{ZF|(G%@I{;WbHhLsg`3Z4)MC z;LYohgD01+R+xIa)jLf*!(D;*S#uV;mY34T7Vnq?Zc6Pw=}2zz(HB_ryVxR>Fkby4 zY=a>VF;L->oE>1|_J=8sl7eUpt)X+X1g z4{eShO@>mw9){NGblvk>CCn#x2Flh(-G4Q}{;nIFBHY{8u!X)A9bLZ7L$G%IX!$Hp zPH0m8UUA;%xsiubgEy=kg>ga&c3P!rJWhjGCn7nr7bs`7LBiE5Z(YCSX4zRtHq2`Usb%R1#Nobiu$gJ)d=>w8#N-fqva&dMcmT zMJS>wwS@c8L}uQ_;xt6$&wN~TK}mn|mH8fkA)%&eoJQ6(JLQM1`Ith2OU$Q zWmHZZ(o58o0g011F}_{@bBNw+ZUJc|hO1Iv!=wF$SiKx!V*?5MFE!=Af>&3^BaX~B z4)I<0?gv!YFLQS%BYq#NdY5i$RwA#Y9wMP(ARn*YxUI;fc*%T7AGRHDj_5veiAfXT zC@cQ^<`dx1*Z94fC+X=`;F178iqn6S0mj6|z%J6#rMx39*nqe*P*)cqb;~J04<+LH z12jKfHXK3{TlI|y`Bw!pTNm#Tx2R<9{lu?pAyxxC+~ z<}chlgBA*XG%^tH57o!7Eb3AQ>ZFejnG0EEG~5eHQ7JrxD67t3Gwz)3U1gpjK74|k z-o)(4e6T9o%qnR;#eM`>Gzp%=<3zyi`W73SAfxvxf18v09BX3FF0@+61tVuIWG(y0 ze;SwoT^B%7gE*I(C8LoSyN2m|p5?G^}c{~;vaFe}0 zJ#pyOFq~vFT0A^C?D4@-2+wypwS>*U_keqipUu+d%MoHwW@x16MO5C<_fU@adk3dc z#XkakF{#Rl&8z)Vq!WFcd%GDUA9c!WtWVBvY*XQP+?|^G(DTjKMUdDS% zv1C8k>Zztt8;Ofx`Vh1&Y#KzR=s^h}XT~$eFfS*2u0$iabhP zYip=U(s9I2TFk(U`xwQ$mk+PCuc)0H%(N-B0w2B0cz-oE#g<-eC5-ss*r-bAPiYwE zu`0`|m^q_uNbcEn=iYIxElyrARe{9&%G=4rm5EQAk`JuDV*(Yf*bsO|M;A4Fno`<6 z(HG5M*c=dp%HUsBm3}G{)@r&V%wlMRjIr=D#w?eqtI$ky<3(Jlc>@|B=mNcM-3?Vg zzcU7n??LPe-*p@A47PdsYG+j_15xFZZ^3zW9`o;S1+<=EdbnCl)mzyoCa?Pz{9%3b zH-y-&DqSBp;)N)~^XWByz9`elfd{e0b7-iZoq_qg$;Bhyu<#d`IOPP8jK+Mjw2X6; zt4@!6UKU{M{Z0&&0~5V=uGsKqDNCkn6VK2#@>ujt&Ee(!#0L4iV6=1?TR0_UpcA2e zTZ@HdU!e(cluFHOjS1kF%(RWoh&Kt4^w)X*>*6X+a`w3;Hx;kTug^(-ZG&>a(^P_3 z7ll>JNla(ZIB=Cs%~PJt+PT_GZ>g$)a|+(arOfIhIX5XS&9 z5}YK*T^^yKDlxfs44zWXHmu=8rCD^l&CvE8lxj~@We9|a09NP_v{6X0 zz67ZKocYzER_4Dfb+jJej}b5)72bHHwdFm-&{?DbH}Xo;3D91IJkE=ftz7$R7D1ZH z`nj;vs#>f#SY^Bz%ZrG?^S57Ibrdth^Z67aWl-u8f@OAkTkMwIg*0kTg&8fR)9nlB zyk4c58cs%V-WiS$?KjlxbmH~cx64Dg zuUwS8^vCc4=j-D2YoXwP*^N&MwHj0T_0EZjMmFSFyOwl@3ZElu4t=hfTwo}Jeh|bi znD+SYaFG^A(`3Xg+`j!07s(eiX*05<%I!=)zV8yNl_aR%@h~ZoOC!H%4S&HJDE?zt z;M{c>EB$6wbYkAb;@Yqmg-^#ayWUMAt*ViEmmaRMW4LNn7i^Up(eQWdY*as-Vz5)z z&^`quRATx6fy>J|0MsTh)pY{OPX4IS)NoLF&@60DP1i?fTn>E=&mg5rKt`pnocInD zowP;tvg6QWfYyL(*)3VF_KNzuL3{Z64``SQ2+?E1>I*^p?G9okBAqgU;!-Yg*peW~ z?^>=n+>mffJZC*_7$tExQ909HV5G})N9fh=jr(iuT+c_sG&+ImGY1jSqy#`)ej5EW z_-J2MxJVLP9IC4`*h7aK@#it560bpd)pdgC5*m^gv&{GCXcOV-F`z(J9d!gZG9YXH zK*PG(e6+tt;1=&ST$>s_sSK-JC0ubjyp~CQ@A@lBuxZQqP#FDV@e&?HWoAMrpUW!HQEz@ zz7B7y_rPWDE+^7MYh?BQl#341faleG-f=U zkNZ_Um2!|0M0_C=CS86U+4vV4+BaBG{u%%jM>Vb<;O!Lndx%K`-%s;j>>Fx&%?E^~ zh+Hhr+uV_wYglx&5*gfENJrTj8aJ;6DQ~tvAC;zd4C#Nf%=bAu|9;MKi_6vFNd}09 z(rB2Ii+D97GrQk7C#>P+U_X&Qae82T>>j#kRAR;faM7X#g0y}4yxU*pAzfgHSWVynVXKd`I|J00I9dRMk~k)jiOiRH!7o94q^S?ca#pKxo*t(dcS=ZDCFY$ z$CwU4@P6sKSBZv{P3&B+LAQvqoRjKl!uDhoTQ<@-R>HZ?C#Op|*c-?v9;U3KWiQY@ z{07?%n`UkZ&2DDb(EiE1GLnHettkc}Yt~i~AEy~@ZA;hs(kDZLcAHgms7={f2edXq z>+B&&Df&e^*13KA4yztnM|J!l%t!-j8)uW+MDfvX!Vr%jPQygZXP(@pT={GkA9i`96CX-qTg`2@&G|{d0vKn`gjJsS@`c!2$|33~ty%XmOy{ z)x~Yzn0ypP7U;&adC^0cZNAR;v+1jv$PaNv;~%v8(CHC!%R2p|5KDtz4r*d#4x8Ez zB&lzC_u6w?++(xXL>IhQ%?*hQLQM<)f=3A{PR;=!WUUtk#AHn74ls-C%qO*)5z2~v zLwFR{bLhsstGDIhYeCn6$q68Neu~fCtHL5>qKtH49Jq|nIeokIT|UUxhcB+6`yRmU z%%81Iz@q0L?T=xo0Vx9w7E%@xXu~sTy3~W2g0(rcHA+MGa;>wQ%v^VjL2k<6guFv_ z)-Az;Wwdd)i2JltZqN?j4Ffn~T&lpvWYhXC@r@s;JR#dz;n4y1S}U8iMGb3S-%D16 zirm1{3s#cOOL}&3!+4LHU{u!Z(FMyD+2n>+YOn@6VaE7tD4kJ7WNbBu(q{MkH^h7G zyRy^x=Zj<*xvH%zU(^jQu*2s&oZ8RNIU+d_z@3>oUnY>GcYo{2wmXl+qIJbdPik8J z#Iw4%{k9Hiq2X?OirLkV_&d%7MX3irkt&cX7*4-o5iQ}{5i274=c5yIyla=$4a}2P zx*YmrbGS>9`}d|@!2;E2?~C&W!-PVYm~wip%^{JN)cF20#`lldZ?0#}4LMULZ3nM# z)ebd>Qd9SGJBj+5Rnu8uHOhTgsPWAD@^U~JVO<<#kg}7ETpD(pFX#^ZFxq_QDAuRB z+j=Kg(YM6@Q&8n8J>vD@6-Aj~>2m{z*YX8oAM3Mlzy)dV4sX7>*Wm>1<#H(y_tJL2 zc?#%X1}1g5A*d>$uMd)I3iAu}(a<1Vwy;e|><|>_TVp;EV+^8Tbz&VI@X$k2+HRq| zziRKTE1^d`OnP;ha+LP7H)KyWy*IT#h16iwI3S9P=)Eh?NuJgzaCG=ja1iIlQZZv! zSYGc#pT^uX-l~pz_wXjcni@|e} z10&k!>#mDN-yrr?LXF)%VH|VC43CLz;v(Pmq#)|9786YVX~Ii65{z$&3u{xQ zip*_1+vYIyw~@F-Yqy3U0YYZ1T!jUS>mpwV@RFZ#5;+>MD4K*sqh8i0A`VnE zGsO%BOdy34oOR40y)UL+S;KLM%&8f-CWtq?bw~e%N2G{H|Lt|6%Z4PxYQl+{=$eyo zYnDMxM8K#;xC^KHwsji|kN-ll^6-;A+sPi=*BXRk+#k`CP;64sf-8?(S9;Q2+uC*k z(PXn|uiw6p5>hJj;BaPl-E3i&vAuwyfdmWzgI}R6f9r6K09Gu?d1Ap$5;lVEc0qrc z*S{BER&v{^1g{JocMr~><5>GD+**pF{lXfpLLa<=K?D%H8yf zhnwcg3QaeC?2ZMrRqz|2avK4ZCNk%okP!GRd@w1WAg@=&IU`0u+!q6jDAuwFj+@$n z3Fq1PUGJ4d*If1wcfaHg^dyj5@z=p47#GFYVPjrX|7yc5ZYTm8M5&&y@hoR{mKF{__@b0Y8iEHHbPqE0#0&h>@yBOs| z>?b?Dx)z*X4YX%rQO8aOtr<{Dt;H}RT&qx%R&8@*COJp;g9R^QW;hW|A*az*>g<}! zJnOD!e6bfQz5M0CK4)h?!UocKfW-NiT8MO(m0Rc9XcVjMp*ix8^K)n+4hv}Gwfx~X zm_xjED))+ zBM~*$C!E@oDbF%$p+@ykVV(Wr+i0}T`T9Du;h3+qf5u!Me387}FZLao*E7U8jkQGP zkoFmPUPoy+B|DAK;aJ*}gD{ta;6IHoH9h8*I%f5b7+$n2$ko1F zF!|1?(_CfunouJPH_Sa_{mYA@ywDx>Kbh{YXhYQ?Ox5m`j%6-x(l&w^Z4H%x-W|3l z9?F4gO#y_p5U*eU6dxmBQo1r#55$R(yiDrXYmc3M`*L?Ku8ppR&ZzG)}#H$Xxg4pw87DGJ9$) zLbs&Ic>H;Sq zW?D^Sn%ya(Rk#)VlWt!z-$Qk^qM{!Rkvlc10xoOC>+{FG_df+E4vta6UE?3x7LQ4l z*9;g$LrzhAH5?+W#794cYlU0Q;zmwb0uOSF_Gp%tn<5qvIS@`%8^U5+X*X~DY%&v^ zIUx;{Ko5fvk-6K}Yi)~QY+q0>&EnO|0}nR$ceqZDA%-LM(IFi8bM2Y8jZs`qO~Q@p zB1$JgvV>z2qiwE*PHIVGG(F+A8eN5^Q_Cd!rZdg1;BgtTvsGzdZ>)X&{!`vc3Cn>H zfqSg>L5$1iFd>(%WuJPhi58-)xl_eC@dC~oKiD0oot~|>xg5lFzy0^O9_^2T(h-*N z_FrVjxe9IE**dKU3Gjq;gy!#~=G({F7KOT(baeQ5!_IQ6qeRG^%e{d+$`_mI?SS3$ z{L^Ke7MVsKMsGLt)Hg~N;Q9#C(rxn(f6W;o&oTjN#2C?K7@@T)S*#q)`&f9JcZ3_6 z;#_a{p^u`6sY~n@SZ@9p%ADX{Y>^9xTU5r2^qyV{l+pQ z%SqcCw<^3MdOe9Q(;JeGB>4A*AA8cuZZuL<)bocf_dh#YsH;afK?orAHN^be`ij)R z9cY?dfSCSRDD{WE%kHmx)!b-Xds_j#MRB0rX}v7%WBZc3;vildd<`+^=?sGYs-JzY zuebgok;_=D<`^4QBtrJs1J+XDwPn;9XcKf*d=DBkXU>~N47wzLQ;u=9YQ`R(s0sqE zXSe#feq+~upuk`J@Y%{j zsu5M;s4MAex9X{VeOJCeGU4%T-uLg*==;`1DLiRXr!Kfhub=OpS}!}PvhGSrIn_#6 zJd%KTH8NsIQKdsen~%0AY7K2Kq+YDvtI#h!HNNGLsjl=bJa-biblNZz%+p@t2vRlV zys3ZCVWIR_k1H z)lDsWg}etVi-h~{&-b6x=lsN#xFf~qW$m^c5tm>!Z}4GMF^_u#aPGPbW=ASl4K7N; z&K5Mut7&i)gJhf1SjiPWftWbuI#nsuj?@q2oc?(gT5ULiCU(nj*3kNE;ZEPQ;B_6E1 z)urWCpiG|k`gMrVjG(RihMxFa5#j5eJ&h%sSx0s;AV2{qun4Z8lDb^r1nl-gkVulN z4|q*$Do=DI3#3C7ILl^7#z>gdK%*C^2(VEky8I|%#~IZIxaKq&Jg=+8vLXN6hQCI~ zc122YeL9V^w!XiBKyRH-=lnds*dwJf-Ernqn@9U;7@e15b+ z-B|LA6r1!ZvSO-Qa-ublic`w$1QQ}4ssVfRY8Z3%X{dTZV!eR!B5hNC`pSvMwhAk5l6agFMRyBFYApcsJdD{*4*6BZ}yKxN6CPDn%|zl`(1 zodR0fX*NyqEB?cz$O0E+oEFskhJng7$u&C`f1~&=F;lSCEl(f(qixBC)`OsN2`ggmvczrk4jsD$Ypb4|)!jg*PC%oF2|NUA zfOp~)j?+uKi8udiRTOSa$)kqMOLBC8fZ(;`mpn*c%tdqQ8^+2c2K9TnLaBPByg_5O zU2b_>XPvho8*eGSBieAaugy|u$GrQoYa!NHM$z6V)0MyOzE{Ht>596}O2Dsczds=6 zXQi%t_O8Yv2c-FkRT1a@vBZEvc*zqVrerqkyNH1ee+g8-Km@#$!=!5aZ=dKL!DZu{ zr;~M6Zkedo-2T_#5ou2D(rEav32?!#L$c$SVHKl8h6_}WY=g_aW>|zY3nJxahDutK zHvAuQYfX?zI5=8^lxogHwv>D%S?!Cnvu)3Z7_SDkqmh)PXX+5Ui_qQ=fm>3PSOv+R zI!H_G0wA+EAt+<7UO4tqTD(-x{M}}-{gz! zq`a(q?&6T2iso&!Y^cziu4^lV<^{?<;l=4?Ei0if*CJEaLMK*M_0kP@n@aaP)b(xa zg{_Z4AQrYN)4B3QuRLB`+AVeba=qQ!(&lwpKU&T)%^1TiPUn%3aqYJsifC{YBC}Nk zzg32hA$~eBzm;p)C4KmX34=TGw(9ExRuMiO$D8}Ih845?8CaN<6DnOn@%L$) zFY5z>VN$w+^1WEDRwzRDmoz>uXC;7E@F4OL zK~lMzo0qmL>{R6a*pBB z!*>L0g}nEbgJzUwrIuw1LV$Qu`u@zHO4?jAXIl^a6(ZI3cXy8MI9+pV7_<|v{f61W z-$O3rUp#leawXH9&-Z_|!efmOE#vDWs0J%ylzJa1oenwMNDHkD8q`{DrCpL3_3Lzu zO_A^oJsnK1X^?B8MW#Ue*z9NXwIx9iRBL*H^##=%|MeKAe&k{mNRQYQ zm!@`_LXFbK#SHYJL6IAb9dO}rl++HbQ5p@%&T&x z&jqrE62OtjrtHfwxpi#-2gy3ZE%=WCi741t7al9Mch2ZO2BVkes5^g^^v@flotoxFN;+G^v zb2jY2s+?Pc7d|zG&TWVXs*h>aUU`UWsJKht>Dj%Zvrr^$Y7q*E=t;0f+fBT)yQQSW zMFlaXz;Zp;AxluC#A`Pd6Ud2K5zma9XA7L*R}a%DyUiStzWB1YaqQORZD$F2uY23y z7MUMSYGxGavzacVmORo?mc_Z8B_*D|b|<>tcGQmMzBfo-)t*kFrey0XoGVIVzNFui zbKK3#QL-1|`17iS1&`fA7)x(hSFLL$DI)d7IK)sQ-p*Lq?hT{Wcb4%zIN~IlZ?o2K-1k2!Zb?jscOdqCb3=R1c;m8BBC|pI&ee8~mGzMJ=mPEUadectkvT{~lgm6}@g*|@wG-jmkI7uo4=n;?M9i?r_aljSje@Ar9J z5b1d(i~_eT*qA-(^}Ey&RIw+J#cjirgW;&T+36an_pYW^svNV+nI|R^YK3lz16DW~ zKliEy!R>~#8;s`@4L))S1;(09dEF+_+j@4!;@)lBDm(Ph!{Z$ZO9sGH&rw*p7pfFx zid2$k_L`#DMPz83=1EJ_S70JNUr-I;;|KGbs87RIsw7JEo9OkVs`Ss88Pq5DcCJ^u z{DM`us|Lv_l0-@vyZx0uM3#h;bBa>i90y3TH+T3?bDoB7MZe)_hYh++CHrohTALyd z>4v0~DmgYMcuQS4d1F2z9Xd5-LKdG2zBn=VHY&b=aSE}8ZNff`y;}DiCL#-Z)=JJ( z3!~yO^b+>s%6u_8hEqC#_SADjZhP`|-N|Vsm}dbTQkE2kbEWM&0I%<2NsOgUU;GYv z`;>JCWSN^buK{8w$m{i|D;bsqKWfHs&nI_deIIy%=_|)m+eXgHhUQsHZe7%R9$HiO z^&amRwkd1kh+oN{lD0i)9#`vxMCatMCj_KHd`;}^epiV2O(Gy#K%55wg9NnZpdt9mpjcwuZ5+jK9#@1P%+b$2cAjf$dl^x zZ)JfrK}chbGR8oOS2ljVS6b=Yqvpe!{=(zl0Gi(k@zl7gcJ_oG)_ky2mT`Dpg|`_D z*AA|(4Rm7>(444H18(ttsFjFuUwr<;FC<3RK^%Uq{rB##x~EnjH$fjI)7v19e zrdd9D`!bPPYZa)xK>Aju#h5DP^tv};!tbx*7puS)7sSSdKen_`Zj*&r2(R{(a=Gw~ zEQ@ny6y8?rD0U)Sy)oY<^gSPlcZ!M%l$vslG&7*^#Tph#43na&YImfuWqC&q$ci4P zMh9;yhW@sGBwL30pk}4*_<+<*=geoQpWXqX_tTZmjka{{R(8AedAkJPiuJIPSY*ik z$|`r8H4J}G%1SS2JN_TnR3qoS6VH$#rNnuo3dSt^&JfnCbGgOSZ$nvw&JL;mkmcy3 z=+Ly<{y(C=JDlzH{om=PL+uu&V(+3wDOwUMW~`cNm7-Ru)J$?tYsRXrRhwExYt~B6 zDQfQ-N@^1$cFgqm^z;4WcX7G=5tsM#e(vXf?(w=`ue{7x;@;gA5fbl0O8X4{n+Omf zwr;sM>ByhJnB8!#g>jH7O(DK*qxSE$r>Te)l;Ctgi~E;FORsgKFLSwKX4zJnR!*H& z!r88CCtXO_q+-;q?#SL0@pUex1Go4eWOZ zk<}gjABXguOd*=0((j9ODre*lE*_f9`|^>b^24f^s621U+Q|+^?Jlo|zgvCJ&+|ZR zvNm)-2mN1!Y&I@GSX)e-XuW)llg+<0n^I*pK_rrU#iLtIqr8*6A$LXg_!&+vVSdxS zNLbcg{#uU%1d&(%?Uaq70zorsZrG_okSem{*$>N!Ar-?g{^6PdO1A6ztL$+5Tchc| z{mBHiuddloi@_jI^nSN@-%pG!fGq{4Zdj;l1uSX;NQgeAZ`NmRwfpcrLYB3xoS)-c zjs833L%ZCeB)pUNt!?t-K-W1cZ-ojyMtg}6J;;~ehsf;)<@(t3g!h^j3F=}6j7%ky zIrZT=gsT_t@suoj@fM1Fe&6E7o?I^cZd%=0gRD4I6!Yde1d4FV4Tv{|bjUG9Cas_@ zz-ER$WF_2775&ZYxOvGqIct%w!;4P0&c=g0ctRzl0a|5b(25a zk+UoCH1eLVY*3=3L-&<^l(4(gNOERj;ipK9+~6`%)YQ1{;Sn1rGjQ^{`3!&uK50He ze41_cLHlDXc-A*%B+EaUtRIR1c|v^Qd)Y}Xd`Nk9U|&~Kxc!ays(5G< znLl<%K->(mGBRvKAuqyR`6IF5?~7`1L}vMS;ljb8Ulpp+L~JQi>m$TJo_o zL@&lEJ|3a8@8Vl3skFwrV5NLO^%txob7M*;7kbsFWmBM zN5-_-_{V(fE0&`eGQ$s(BsnL>qt{}lVV9p*YhJ!Lv~1Q!)TpWrgg)Mr^l>b6r+o9h z_o#RqSfS)iX&3*fnLSd()3x%j`51=^$sOpnXT|h>Pr0|Rc=|GCM?+4zm zEB+1joZg4}9B@7)HM@nFjc*r9-j~}E)fk02AhbR^4S$F=*B#MP?Ks_1O>$C?dil9PI5v4yoG@w0-eH+IBE}U)QCj)yERnE}D@8B19m@#P zlkrw~Q<-b4`ls}_n3|8Rw-m9Co_Lzz!bWVxpT+o!SAc2_2*p@MiD35AB+12l-Q|^! zxN&waJ@o0FM9^_HzRGHmC-}%&oSa-G>0UHu$VAJDJxPQeeXu`Omq_8xvzqK^EWUp~ zS?)h|mGjw9V>?Q71pAla6an8oMW38ihz&YD{u8W#ycNK5s%fZLVdJncoLDND?$OM% zx6Km19^W4mkg7zX)?G1-!|O{~F=G)TDF_wmQg4BfR~m|#YbGw81&mKGD;DR(W``ok zD)$A*cL4%hADJRhy`XV@qe?*K|F7*BgLkO#{Aux|HLwAmeoR(Q8d(D7C{@seckITo z290oW2|}vbhDE!An|;bn+mx z3bF9re4cMn3xZ(9-3Z)hF|!q+?>}JYzFd{N1NzcKf?0E2!CrM_E69LSsvbWm{xV2- zIbH}Zw90KHTLv1UmoDe;w`5xoDVSSt*Omc2-8t$GRAEn|sdnq+qg2Wyb2{%cLb<{gC`_S&nvRGn)DvWlQ&K={ zg_Wvn)A?0-zB7rX{a@D-u6HI1 zuF5xIrF-i;A_VSV(;DZZ#_SI!;AJFe5Yq#I*2O5T>~YaT<)dI)MLeO>TsgY;hwTaf z`i>+$Loti``0mw7L~=bqD2iX9cT}$%N{-6q`I!7UU5lr|*C-n{wI|Ym&j&|{6~+WZ zeWC@oV=xOTHPq>s^+@**f==eAQ=XfMqt^xt-k_VizcvE6TjNvuyJ~#JiRy2d@y}W4 za%5tQhNC-=Dn1uk7n@eqG-r#y?yyhlFnaMeE<9iRYiG)Y1MFuSzjKb6UV4gGNcplQ z&%3_HUh?IlW}O24%LYPsDihTX`QNJ#2{V&ssYJ$gX442XL@ylYuo?++}_5|7;u*z0CSBF ze@?CRCqO!PWWQe<^vZ5lPj+GE@6rl%K;5X4j8khbvziWj#WpO-PTk=l$e<)n%N3}K zwkKivKQ*JO#wtmqpWC8n-K1Nc3!M}@F!N22y-u;ZY;Kg*VQXD@w@`;~o{t_0Xejjr ztIPhHxc{}BNt$T|rF(!hc#Zp+(-DX? zO7%YIQ*G*CcTSQ&L?e_ba?d|TY5%vkQjfbeTRBbq=XzxqHtt5)yS8_gED*8<=mxoD zBE6L^Hu&J@bWKWs)?{qfwH!mE${eOogg>a>$m)cAgs`D3@75 z)!obdM!`xEe;(fIdJoXPzUI4p+rsI4K)*hiETD5uVBnkp|JggTNq4UKv)2p@N~l}Z z8lOaU(kBg<>Pf#}?tG4g-0JI&yJal3t$Z}4PCsGwBP9Ms2Y1k9{6?n1nlP8!R0c1N z*ZVS7?iw<16AT+&5n|E`JfZi6r0eb$h7?KVp`i1og}F!|{1wk`2XXXg5eNZ@K^^X^ z$(PFip7zZLDpfzn$9MRXYiA^HiCH;QM^7jqXVN{~JHXH%BW0FrhbzV~!i@c)!S?__ zs|#W24e|!>20|H{vZy-H0EXFY0P$m6BmPHYY?5ntb$zXs@(iIUzpuz8T^sUdKCz<@ zF|sJ2GkBE9?W}-;F)6)9ZHlPo=`fHTP2RjL@yt4?=8h4Xf~x`6DMQZWp;jco%Gfh) zgBWqKD6%F0Rd#BILq=YJKWI)HWCG@12pGc(wh*}IlUck&QPZp3O@0p;h^~nK5*ZoY zt-H~lO$x6v6C8=K4Qn*E)ivLZ3-QRY=qo#7897YWSBA67J=hs#0zzKvCgXok@A2*RiU|aP|=+W<5kpcSBU&Kd`Y1DRbDZB?q06{FdY?T%pOUoV z?SoRXbvcy0w{!ewH^QnKds(oMHXM+cMpbxFt#c1VEF~M~Nb-?9;I#1tH`-Xb-K@_B3PcOw# zRs|!J(-nA}BxZl_`iMhHAnY?=^JC3kL@$!2{kTNj%z1%K_)T};+4=#It$j~KQ$Y}8 zt3-m6g$9HRgBx{}*tiJrga-QHBH^K;?=J_FDn=I7+xo|Uq>l-DTbM;pC+#`fj;6y6 z2wY!Px66~3H}pzJW3ye#PPB4B^`~4ecnIAJoRIDBaU( zq!fobr1+u*&=%L~Y|y9JX#%o6(e^_zJ}Fb>^kqHU-*hsba=-2>MnsSl5Pf2D(a%I* z=Vg0481>Jo=b#{U!@8{XZ^)8C(;9U*zUWl`UD@WbH1OODu{+RQZdm84J^qxlh*fzs zrQ#EnP`dg^e6IZ8vgaBoNbRPu%6i7T)>r-ESx@U^KbLT2yNFfpDsym8kWzPiKv3_I z{svUUvtOWsiX!?0RIP0vIIDRs!ii9n)8#eFw?Aa~y#!gJoxFEFKja5~xE^q4SWAv}>+DLnJ(*4;iY?6C4mRH8$5FdcCq`EM?=RyjX8f5EHNa&lG;t z8rL7B3#lXhq+|Hcnl7%N90lnBfWFq{wG(hfTLwzc94ei3pqE%FLZfJh#HjJZKhoUXS`-)LS@EQ!GgLaJau&y{ayfuRgJeyLL-l zvqKh9Bxs#t%s)_LNm=bc1kmTRmz2++3Wu5}v>dml@DC+9tK84Xt8#1@w%QpkEU#L{ zzpV=d^`8WZ-9QRQRWIK>wZD2~AHzXeAbJKKasE8?S@4zeMJpSu7MfH&tFLVsWQD3e z?@Tb`KO?V|bB7fY!u!|1FSEwHR@g)y>zmW=__1|wss$*S1iVtwaqa>W-Jw#NEiy=#G4w_6{TL3QM%@SUw?Mtw zyMaJV8$GbkSYf|JYK#Aa{All?%%Sc(o1{;-de`A$ujVZzHF12G6W|k^0t4*DkLK^0 zL|MkF%hv7P*u5EE*@tER5LE<^UntczC);$Ug6>R?YQ>$SVTrNqF9lZDP?5Get~>la z@VU`ld(8phkt-o#@0K2Qw+7USF-QN&uIiaH0%-=<+J>xzHzl%{*9MnzH$)DnbNd70 z2a=DsxtHaSTS&u0TDvC^ptjnrDSejX@65mFkAu5(l8V?&wI+A|H%)-)J%O!zeyi!P z9{X9FbbRm%|AMs%M+5x1wzk8QYshb=Zbjt~vMQ_#s93&`H!aLF1%VNmItqU81rcOS>1>tThP#MctB2cfaFfJ-yQ%wl3EO72Y38VuShh{KK&!@*{ynkZHn;zA6E2lx<_p-*)G>+Gyl8E zw13hIh(JOz0WIGPV0Df;pr>%$U?}z9PJh<1)xMcHQ8w2%C*+DkMG9TFr%zESV|t9D13P z8cFm#wyYS$RB}hD`-odF-}R9bGqwFboGbE!d=H^Gw<+mf$|5L+OV{+Ad7bkN#h%mo zF&ZTR^vd5vR;OhC{8G_u7&eZM4C;f=FT;sIbn)0QzVTb_qb`5?W2Z}} zrnT9OP8eath%tM)0+F)XeXQBQ(Mfwyo~8;Q{cZQ|BjF?MU|KW3D=s2tA;3{j9iaQ8 zEA&dWHA7sm*NeeoZ1RjqKMrkWrD7Ia04F%KBp@hep>)8ktECDP8EUKcRp(p%Mgz9a z1+=Oq$~;nPHExF6+v*9Plk_aoefM>i*I)I_G_wDIzASd$>Txe)dAt1$oG(-OyY%(` zws)C%?Wf|Qa3xO}CAM-0KwfUQTld^r>1x1d%w%85@wQ0{m}FberFX6nsJwmTSu{N3 z!?#9hS>2K3f#tbUh8wW1Dg0ENO&zb~1)NRXqirK+`*}yH>|kv#k*Cu{1Bc>BMW?I? zK3AWyq8-KHIeF3O;ex&-vesQ#0C5*DP@XHI9b;jiEv}~ytyWvb?}R=6mPiG2NCq-n z)+FDS+D=tuyj2XvVeH>RB1A>XwV1T`I;F-uKkTx&(+9`cl`psww)hPs-y^@E5GS66 zZAm{HL)f;~ts`r*m$3Y(&!^S!V$C%nW)1*p3%l&Fdp zYz;4(OlW=RMWOnL)RQaf2?wc-_#9UPl{+r7rKO=2GN^%KE^|7KVT5WBNfBc`$rCI- zYZ&ZuEupqPm+&Ullknb7ImqKjzO#ujGMRI=4eVQMY)j3^jI_XA|O_x4iBi`T8gp4H!ih zjxQQ!Gl%ecK~&CdWFZD8mvadlKmQXkL^VV+DanjW>)B=z#{GV9k|LSP~ z;})D9{BMBVKq{jq_?Z#)uOf5jez8RO$DkKVKR4W-K{T>ePA@==`T4Jo;||zFjX#8A zM!J7B+3_F_k_|bSL|s2+DCce|QW1UdY8lqj0fFN1ADJwda=o7oM{qsx?EdBET%y4d z5!v!Dm@UCIoF(mR+ZrDgT$=qDf5_*m@mH`_oQQcQGa^qrU}#4T{&n{?2KlY2VB=MP za(>QUPz0y9hMt}&QV&tS z3Y3jok$|!IPO9!7)=7f`zIebI)T-lO@&^KrlF+^O8q7n%Q7n|j9A$}pWI z+z4&YZub^JtU<%YB8wy~0Xjp+!BUHHr6NEHP5du!c%jUvxJ!5U69(g73C02(e8iq^ zHL!IR=9#CMr!;9(=6e|!5EMRg8vr2!euVsdU7bpe8|@!W&8ma(=c~}S8dD;|e@JTY ziQTOx>&(AozcF9G7#@%aZ&-s9eonsytUVRoUbf%YJ{cmEnsx=(`GZMdcHVdPPsrFO zWJNvZ{{POWY1Et!q9`KIK@|Icr_%G}k>Q@k+8`sGJ_B^fzY z>OrwG%rboKr+fi}B!9p_>RH5B!O(E<;YO5#ps^+n-n{L#S->GY7oaYy@oxG-?7$jl zA3Bg?n{-pFPtEZi5JfW-@)8oR5`qmD{3$1wS@GGtS2#h_$MIIZ1Q=;mK>5h)if%1) z%uh#tJM~w{ZaM`OU%(ibKTHTDrMT!*u!t0sKvG}LK@tGAnUkZpDgKxDCGTex@G@M1 zhEnU}dTE82_E6=ON6ec%{Uhx!qKq480|(__Tk9VSCPxYkR$X#<(0i9&+j1Uns=06?jDjmb`nVua-pG8{~0vc}l zo?JDph&_qZI{!TTdAcZZB*}Mx)ux=tQPpJ&cN-EId0gb}c&pn=a<7R!7UW?NHCJ>S zeg9V=gVlbl2iO3rl9Ual^iS{KBB|=`Ta$*ssMsg~<(?!iM zYHXaXC-k4?9I$F$Q4w74FJdeNO#LHU(u&x|irxl3fBQUV|NVJ8!64(dqZ;vHE8hcu z&-s@JNnw>kC0*sQ8R>AWD@NiIG(5@nq|iCWYFi=h2$fTM>E4ZD@1oFx)7qc<0l9fw**w~3$8^@Iu_6dJP5ydYGs(ynb-v_ z;8UX?68>*#gt%w_J9_W$T5G8JOz)B6_Sb6bUjZ(9kXBSrlCVv~SIhu06%yTR=sS<4NW39Z!_d+C8Nc*H+OLeu` zF-C*!QOuVNjlucDg*bDwm{ny%4Obp=GV^YYh;}JMK+7&qiZPoLm*<;4s~1*q?kQcr zR1a;pW|Q59E5-f!S_bKjI*bNdYZaGA9YAZL3y?k+Y@fse*my(x!x(k5x+#~k<2YI6 zqu2?O*LTnP$H&TB993|!OLunW-+=>!S)?-zCPR@Zn3B+5i?5)N-ea%GnSrN z_&xXf(d8l*`h{1bCgQ1Oac4AHt{zk!e3S}u@a;dJT>#U{y(!%L20Mt~94-}r~+r%WJ*SQj1<{)gvGKs@fz z)eqsrEedFrgukQx3Y(UH(_JJp)YN@i5n067VFgRg5((?^or$2|@pHUV6cbdgDgU%E zErj>A)A^$ep#-0m_fGCNTc6{7M?Y~U*Wi9gj&S>uWm^W1u19*ZOy|om^9S@6{PiSn zNa9&2WIyu>$$M^Y1(>y?{uB z-RN=5W!NIrKcT<2Iu}FTTbMqHDZm~pCC#Htx@{Aaj9WDZ;5``=c&?+U(7Zi%FDG-j zth`&ZKA0GFHZL%iNrHi5MAQ1aeL#>tga&-XfP+J|TE+e4!qCpvrsNWwZPf=&|DY}V z({ttNlv#D(I`(*)0%5$AGBULM*lR!8XSm|jzD~ApPh7sz8CzsoR#<&%|AE_r%u+?U zy&yqkdlYHR$hT++obNq#p0>dnAv+}C#bQP+rL1G;NVWJ+)Ouv&={hOA6+8Ap#bcV9 zG^NZq{CPF2$%?X%7s_M0Yq^+uTAuoz<59OaAE5{$;@t$%4g&;Hn6!0*T3yS;Z@NCV z=s@JYX{-UERo1M%w)Qt&NWheGM4(3h@UCk-ZcS{yGeaVNny3-DS;seHC#Z}w%ysQH z&NSEYC5wo~*8)5S%n_O-#>d#z4zix?oKlYs>uKxbp5Llu{C`J9yWc#en_=2!b zik8XMi&rArun?xe9f>J{$K58v{5L*j>Yosf0Evf1Wx3mXKFS(I8K@KnjnwPtGV(`N zHY<38w_1|=Z#6d-KOsVT0{~;GkorA8ApuC21%KYjp6n9|NjXit{C~@7qWE-9s{NP zFdG_*XpDp6Dn5S?Wtvl7 zm)h6ZmLDKPf5SZVCzXf|gqB)p40<~6M!FuzWcPR;N!mKVMc&mW_(*VnfE4^RkdqWP zh>B&;9s<1pqDZ7c%}#CGzEs>|jiM2ruq#&4no_NcJ`X`~K@`xI z^yXw%u_Ma9z~Rb!fXz@T8p~dKp&Yd<1*d^Ms#+;i9Cv}-r)vJTFjjv z5(*EmkMG2(s5(Z=a7!|q-OhSaDcHOjzg(<(F&NEJ??MCPcQ4E-1@)$d?LQA))TXEYT21u8C#k!2dgsuX7M2* z$458uz+??(VoTQF*17bq8uH@@4c+W0?%h;Bb>m&^-*b=ZUkM|=--}m-D@nihOdi6j za~*y3-orb}lKeI*(aN+D!IT#7GMflyup@c(?`)v2^0mE!peVKNMuU}E=@CD0koi69 zc@MeJ;Du)mmp61=?CRhCr8kAZqG8#yJvoISXi>m z2QHgq8B0{tuWD9f$SgJ^>Ws7zJCn*>fT#XwvnEiOOa44GCN!7+Zj9JGf1UNV+*5lm?|<%Syot-cAn-6g=j(q1Ge#!QD!y;A-F-DU z`{XS0#prXwV)1r3R%T)f>d^QDclM7q_#wu)Ivh$0MSu(sLS%(!JTE*65LgvEA~O zSsF&_IH+$08R9#+SSn3|!;!sj!hWU|sZ84s9v8W&?2^7GW=a*r~zM2oUoyKnOsG?4TkYSMrV`f$JTd@Y4Uut*~jW~^Na1VTgW>K2tk+oOR%TXmSS^2Uum8L39XeAwtVLVTT2ug-%!IP2P97C(&(!LR5HnC?8iMqdm zqX;LGVv)}lW?RemNRe+%~&TY`oI-F`+qNKVDd+G?ZVvQ+R^z_nsi3z>4>M@ zZ#p*ccU`UMN%5_G!XTA$`T*<@{;0{9a_UOJfcGFrz#KPX2+H8uSLZ0Cv{q92av+t` z&`TkCrV<``D*x|O9GKs9L&rB?gLnUa1IDWgjB^@TRU9++Z|S3=GmBBgBtRFK%yPr4_JqNNj|t z8mCz{*yy4MBl&sMe1*+HH1FmXR>=y&&&J)AfRP83g}IZU9-2x?&)6)j z+7pi_8zxT|)9l1|1eZOBlk;}WQ?|-Kn4phM?`G=$F*aU&JVf4tAR}$TPBqHQbT_T-e-lM`_6o=O+*)zlQ{d(rMj zNR`V3?d9sif9|h6x@AXkF0?Qz>x#(JQQ7?vy1LplR93Zam;W|U?7l~vfug{M1+R@#-Ev(qBl#z-wVogVn#tCqM zFAfq&`o~48X`5R?t7QaU-kCY-QSoT$bn((w;87!Tl#m&j){^nMbLm7mf0c^0qGeEc zNNNP^0&vIsL_Amt)dF*Rx2}i z5WudXw%kg(ib?-_+nEi$W@b=g#cH2{cyCQwhiTaxQS|n{^T+R1exV=K@wcJpbNGgJ zaXS_4r-iPvoL;;yEn(flY-3EHpNJzYHox=_|I@I4HtT2KTc&?D;g+diODvzGnGmgQ~s+n#W}DDrNR=+}R(H8!zd*;g427n@jUJ z=vB=5SwPL0vRmstbzZ*rcuTqd?=>4I(Pg)L9n?hPWP2f<5=2)$CQ5rJE!OGrEg|76 zNAHR)%`WLMq0yPU2-#3(anA{bntaIeiBIS?dHaW<_njMFwIo}jBEk3E%!}p z$SlTVd^fhRR;OL{rK?%eRz^Yb2~&%ul0mB*SyU{i;V0T%yxP<(^^nlkb`peab$Jj- zI~uPhj39xN8nLCJY6%$BM$@q)c=eh?Mv|_ErIjN zyHj@j;55StbBwL=J)ruH)%&l)chv|j8K=XU(wu|->HC8U;y3L&8j~*KnkS+a?GX02 ziA+ii=dzY1LT)9;G4l?8)>zL>{8ajByDH~)E}JPcz1Ow4IoW07EY+*E@~>Vl{+xIv zGS9H~EmY&P-?gvdiovkW0?}|T21wR(s|mfZaQuDqTWkC!Vf+$}G-j^$S6qP2j7^b4 zBf4HbsOpx>SGIGS*6fLHkkm*m*AJ*!M$1L^CZ9!t44bLc_%4sukFvO4+rN&cTU@XE z#d|>@Po$=p7y@c`U97Y|IwN1k8Clq0Dt~rr*W)DXU@V{?XiPBzN-MfUzTElN)dEd;1a3##Fd?m>tzl|z z5)Q9OnVO|#KH>!(KTclXSm4yl8dwfc{o1Y92iy=)IBGy?u1C-8d=_GOM*0q2ccek? zG9CTR|LWb_ULMr!T>bZZP4SuOI|-kz)yyP6zOE_U|FY_(-rE}sUzQKpALdjH=8yJ% zL@6qz%ysh@oU=UdCiV4dp^iU9ENXsyt?*r3d*Y~QCH6u_^n-t%Jo*cl14&-jQSJ7$ zGkZPZJn+zLOv*1(WJ(Eb_peLtv!~*3g3B%pkH^YrQr&AYNeqRfjF1%6h#YFE-q{k4Lhp{%iC|1KusyCvMuP~6z*?52S9e`!k=c}ra*y(i30`miTC=SG{weXq%OEb*}93ogF+#d~!yqn=8YC~K*;y*u0mbx{s6lp=XD_U`HKF-X>_Dz0`Zn#R} z${6BH)dyJ33l5vzS>PxINvDOJRMSGO>bq?&UG!QzB4kAnE_hHP zv)s8HS^J^6*al`9Oum%mB4{g;&dK_8+e?wY#W=PqcQCeE9oASL=waJHi^TU`Khe<- zEL1hk@E#mA!bDcK*4J8CbjI(203qpA+;_%0zOH1m9NayThhycts>iOU#~WbFPF4wJ z4OHrA?@A?zrLf?hIcx$O#kj`v$2%T#Il7evES2IVM;clhT-_z50|yJzrd*FKx;D2i z^fZV*7({)KbZc!>>R>|r%Dn!YF4dJOR>9(I*rwl|AGf%;uva?_YQJ>Z z=6UxLUDk8YYqw?7gl&A)tG<8JW)is+d!@~0`J+j_)c1$PnuS}oAGY7dM~~E0jJ+rl zh+u>IX%&dUpvITiczjN+*zUzsBv%Eg`_JrpD8m`O89n#VZ;KG}urh4A2f5aEHDH~D zn!wi|o{Z)+J{aRNpIYhZZpy5*c7HZCLMTfpQn02XCZD(9_HGZC6*qV^`Q(USO|$S8 zEIe-~P~V1Wft3rOhfU1~u1Cm=S$k>at{ZaIb< z+SbWB2r)@Z!bL8GB*xD8gdPwDzFneu_Oo{^Z5)m?2GKxGVQO}^bnjsOl%sx!T5o~z zv?J4Qoni^#eV4S74*duzAo}u+B!HjNxhI&E|NXKqS!7)jS_?+%XQ$?n?39$)BmagX zmNA`5R9(r!+;P!Zcf7=#B9z@$Rf7$(#EzpmS%q@$@`Xq9SwAy^IL+7nUwG2qxyr@h zl@_*&x8Ec@s)Jm*`N}+(3Bo!%H}p{cFBigReM)hVjrGx;!kB+~@~Q`qyCzC3uLyp< zDiASJk)pK)D=FwB8lt3U$OfD%!b*}g)v-`K)XsVn6nt%Q3kNYl}KrVd&_g?ih51dW2Q6`!h^B)Z_ z&w7a{K41I$(?WQne;S147H8EUzAuqG!rK;hC8~jP|I+mo&D>jEU)=-C*@D9&f76Mb zDEN*200w<%1neCo-3h%`R=T_e(sE0SsDQ?)y;f_G(JWbuADH*qdX^NAar8D}bB`PC z2q4~qt^OI8_l+eGKr(em%Onwc8-CN(?pqz~pRA&!`q(KPGb4+i`g~QcbsqZd2aOTf zRChirM?1e<9{+WNO%~neali0vEAzvDUZU$;9yAx9jnLqCpx2%h@Azv>+b^_v)99wx zbv}q2j-mXpDMRT?NXYA=j28X0goz^g;2M|#n|0~_I_LH4X8bUy8R;&(SgZ13>=j49 zcEcB+(lj5K2?&}P$k#|FOvKU$-m5a=$Oy2nC6&x_a?SLZv4+_{_N9k>Dr4pudmhKC zeSfVmyg0WTwmCZRGY!&UkzbaJZE-7m{X9k;1T6h@#cC&QkyrSPXXJd)t z60DUVjg!OnL+55q0k=1)BrApdHdk}nmXcb=T%5E13(7QefEr8{A->MC&NX_;c8!d~ zi6!q1t{qO)93`g&2<=gi@9K^wF|C@#`xJ6{ale!(%uyb+Sk7k~dP#ElNI8U`Kt zKuWB?;d|i$I{N;{r}|1il+ACm{V?*52hnmq_=Ofy7Da@F3xb z>JbB{q3_2(xytn*T6z$&!728||1zPGReKQsZIJvBe(9*2i{l9hYKj-;)UF41qrx%*ruvViVRSD5*}{49C)0T84n2p*aYy?Po1q z_;T$P9(GG*BUZ2zri+Zm+vBdcTkc23W_PS+-8tL*M`ZgSY#n=<0|`j!lF&3{Kt^esR{KCdss#nmp}u;QD;{xKhA~r@vo(EmbIkF( z69lyTaf&_8yqC)>px#Vy!Q`W{eR{TfZlpbbEmlV~>A$9A_b{Q`ah>YnE9*>cbN9`8 z|NGXcV^7=+J>RI6SoPz%#D((*OICKVmw1- zkFZrrUEEPCh}_(wv7J6Z4z<-T*-|kfq$S&9%1)D=C+7G8`j~o53maJk#RpH0KUIw^ zkY)BA-&ak4jT$9Sfzxj${QlV;^)3bbk|OJCa;$41PbM7}aDCj*x&K4_E6L|YtH+c+ z`J$B~!4*ulhvoIXOn>Aqr>ALfS^dmym4C7}sbT+iT?$JJ{jV{3yK=VIN3HJK-@8Wv ziY@o(E+x2EO|&xc(TsQ)Dx8_Z^Vc0}GJew?4!&F0w`i)znePL>7>4tv`W*csf!UgH zVobXCecF^(s!unFGn0nu{Zu}Mek9ceA?uDSuK^mz60T8PF^(N>n&wdM7Z z@<8haDaR4=X)#>5C`0B7PxiPT03MYkf8Q)t6^BS|oH1wVzUhyOG)V_$Ay4jvEsDARM-_?~bS z<_mX(Hngoa*X(Yp`TJ&jHF=j&*rzmSyYGC8LY?q?ZTGLge%bGR^o73N?5YBP;Z5yX z2F+j7O=`27+|MWdUn65XOAvkw-mQW_#^nJFF(n>|cUZ zI$X;>LTADc4rnMW$3`hZ><|-%rbz)8!mCE0lz?3Q@B|o4AE?QlJlFvEcMud)NQWSx z^|1>u}io%|!*TJ_S)&AwK{cWR;bx)2*;U@d#)mh zyMb4e#Qnn!b9GnWOlLRuTpX%bdd1J&c~xI>-B!5Vk{y5}z#|n}3V6Ad}N(Ea)$fBU%naUsm)e?+q~=bL0!l7Om%d5l$d%RoMKl0`1R+fyu)()vP(Ad z)OlKOQ+{ZBt@#lDHW7EP>~V12=*Z^Jf_(w4XOXj7-VerCGX6gnRH z7n9)^wZ+nZdW?;Un9?-r*i{eeTIn?30*LA_zNN3i|HG&G)fnXXO=m9woW(EZvRBK~Y2V zZ!c7QL?+&d!fYk&!@13e`!%gKHPH!Ux%ay(jNAnj#7STJ#60-$})y(8tyUs0amh#;a)MTTveZyV= z`&+}xGEVRBWnXJXrh{u%;QtH^+C2PgaDPS1^#v~E3~GSiu4aC0LRO)=3o0swi>M4S zW3n(C(>sS}SplM)=?%CXn5PFlD*N_)+hoT&*8fMbITs`chjSrH@#^xI45s?Lx~s^V zZVWHmtrJQblHrTH-dn&VF80$RU2>3l`5zzW#Am6ZmF^L}ol$=ErrHrTGzu=lbELs{ z;)san`8jK6M&^eY(>=E2hTeD~3Dqi8 zzJBoi=_fgt+F>&$R!mvzU_XNKZ&%+L%eYCKd-ah{vctyrhfap&c|047_fJ&Amdy9i z!ZSD0ur1=Ou#BYwiWK3B;`RO`4|oLcLKG|E_C*(|%+ zC?g-dc>Ai6F=G|f%5nU&{5i$_`#6vUovg90;t?-DBGcoTG6v=c}uc0># zao89la%ClF-?R?J{H2xH*S=d;TVH|N! z3McDcvy%L}G^mE*g3&-uoN1ak)0t~}&}e4O6o=?7o|}>7H{ZYO*_>09|IA{tK+kyx z3XOY+Y+*{wL&*4aU+GFvGPT@~>3C&b7|+KY6&_$&cW36p|wGm=NkbUy0d>o^#rQ=-!m^AA9L}DY=Yd9xtM+-S_&?>kye^!LuVB>2~{zgSxl| z`JC-WJ{}Tn3Zi2@#nu$}dLQw$P~G}o`~JuZ$ZB=3vahg-9}EK8hO>nC!&D5cby z29y{K+TkFiiIUgG?&Q5eKB4p!*h)T2_k%g@@Z;RDF`zz5#A}DnA=)__}jyR{`(~W=Y!NF`jh~ zFceNdyxDOvO}cs40MseAd}+79Eu2LSYy?FK(0d|uwPDo=SYOJ~wNn~ahjajLVPDW{ zAy8=FNsE*tw*14x%+b2jCYo07?CgBk^d^8%mq-J04PEFyH&8bnst zbYqb+R@bjH;afjeg-=+PeP=p2Q&aNqTzJ0x=)>e;v2V$XmT_#ix5MSyV=OB#T`+kr zC|ZBWM#v36z{&c<*8wHCe_xX&i9Ofv7I8ltV9Z}oqMmZz#KYS zYc`B?twe`0J81BvJR9hH6W=K!FKF^hzeS)%O7vLs;^~}E%|G!FtM(8_0`f|&S$Utm zarOV>=q%%!e!DOZ2nwjkaFj@m9;G57h}1?+V$^69=>{ojkr<;}K}5!=QBng&DIrqQ zT>^r1NT<*5|GeO{H}GnQ`#$$|zSng+-W+;Y?>Uy93lTJho0|t+mjDs0G(tvh_sHJ$ zxPZ=?wPMY)I@_jHcx=V2Xm=w4sLuJq)AD99$ig^#%&myJTAtISa~}&dLN&YdFmhOP zh-dUJPP!g-;b46iLt8p-`5DWb zLdO=bvZb3ya+gKQZc!-phEB2jBHO)Qn7+e$PGCe#PM)#xm7K~(dG?130l~AA<{;th&p?R+Gt#S;oRyu~r~SbL zKEOx7Auzp}-@9Z1s`cnPFqQmAB5!e&cL{7hvH0G6SOE9QzaQIjcC6gCI8rEQS443n z^z4pUE7(-+*BpNa897b~ycj0#y+OnMc3CREpH*KUo?OHY=UnJ^0fz~GAhPJWL^o;Q z^zG8EADx*m0#TToO(ji2Xh1IfDGRK&-wdw7-St5=+HDv}er`MO>y>uj7lz*E?H@D7 zuD|faie#4G%k}7agt|41OpuLxn%0@a>e{#x@Rf|DaD`(AoFMqKkIDU)YNnwR?<R}F5W4W_Bb1?y z*qb>52U#am`2~^4zPB0bSz~_DUR`!5gnYD`u;<|0rg!UF%qCYPIJW*t5hpI(nez=+ zxRFaNJ6FO{LWk%GVbn{KDTDoTpcz-1ST){CYfp;IqhF*&S9=^$Onz*y8Op=VK0+dB zCXM9Hq8L62(~e@x9EZ(z9v8XC^@;V00&O9EYwcXpV;+;;HRl1)WmRzzx8EShRTKq8 zd9q2@9OKQq0zdYwDJK0r-qia?QWtDqTY5BY9c3_E_!bci2njhB#&|P*t1Li)T96e7 zdV!sayY`F~=W^$<;nejmR*2F;zh+_6dk5Z9YoJ%GXlx-tq4|*6p51YBRWaN%1tbz( z*%lm$s-U6r(`-jsQN8?$ha_>wBlLll-&IC+_?sTLTMLcVbQJi*MF_nHKcGd`67lMC zwG(t$5TXwEF8|1#(zDzqw_dyU?5x?{J>fUDjC)7eC#ofo4AWr*z^eU>5>cNtAF~BWN8s<5$IY>v$3Pjp2`!@qHs92 ze(JObJZ%`a_vP{eF8pPWFYmVW1G>szKt&1aXWZWh^s-CFVAS6;m&??;DU7C?J-aj2@>;M|M z{TUK_8Ql1%nNQ^rq?BpR)W7=7 z&R#e?9Cd!uaURGfJrNpRHCC9#%t#qmMmxUgx#ol4pIeVwKU<&^b^2pM7o!88kF4079eJCs4i}i*QtT%NlIDem6-mKEbk5S z44TD#GcluX2eRYZmH0Qd{5_e`C7+BQ+o>@X!CVlVVE+L9C>0TNL^Q|{iYc?CqP`iJ zz&;I?iQ@V-=lG)F{z{En(D(Q5pEBAO-_o1-3gJszyQN{3|42rMV>NsFc9{Ji$4d6M zJC5%T-i^6(quxIWw|^qZ;#I=&DQHgCj_TR@FZfuXL?KzhAhqV&4J zc#WN!ZZ74MKZ9_(BpNZqy_~E|fYhbn%zj{6n4ADo;&dy7H{_Oi7 zUuA1%tITHuwH)~AS-Dut&Y8&N`Oej#v4vDnKfZ#=|8~W52Bu{@bpNBEE*hfnI+G6@ z%#VdiDS5&I)uj6Do?!m8GdBX7cO-nG;@v#Y>XH5-lZd1dCgEe#laKm?P-SS2c@lJu z)c2hO*@~^hgQ0}y120Tzy4W-sg=}n2?z0+F{YdE=&r;1)#K~9)rL(!(J?=4dyYBn> zMkmZDjHo+k!)5QqCbb(=cZ2tyiqM_7T3PS*a_~btbryLq(pzw^6h5g)rwv2=y}9uW z=z-HUS~|{uBsbH-Y7U@^gL3|X29*n&(NjM0Bs|Ejxl9q0QTKb7 zzflvbUroUya7o=UI;fO1Q_V+Z|$y^MhAIK_|y`gnu$=YmuDT3q@Mwct?MPdb+t#6riGd) zVCG3{!g59G;l+PO&z43v-Su~dh}cQwUCq^$I^UBGPwylrJ-vio{(|;*->&6?C%vXw z=<F9rK zOW=QEQp>{PKN45DmhJuX$lNYX(p^K3C>I-CkTpH#GzEp^JYc6I2Hl zax%?R7LwbawT$@|3=`l{EfU`@)2ubP*RIO4LyFp7$0{%e_27FR(pD#YClt;dO;NId z4|0U!ENTbCpsM^b>iax!7&tCWSlZX~lXvO$*Ll}?bm7jV`5*K`qGBHWG7Lo%j43C) zlAqLnQzbZej2WOv-h*M2gy(TKsUt5*mN_4M938#Y_nR|iPtxDm1}FMPL3O!{^zB;j zgI{?l?J(ECn`sjru-F%q*KU1Zm484ro&WkRn*z6$#M@8C*AKkK=$PH3cCWp=Hm=L# zTnY)Ds>b^t6|4TpM1n>$Ngk{|xKWl@Zn;VSnx@n=uU265c^)&ku1(YG{veEU>)poP zht!U5AkVPR;tObhTCG7|u_hV}lEO|yxaEyJh6fhz%~VZxZz#ZE7;;K^b=lnPeXltH-tb0fnU+HCS@SV&c4?_A+ZT~BfP2xVIXI&{42 z+rQ*N5Wr9R2-jEdqCo*-l!2I<^hF{TJHNPjP+$rrY#3QofgvZw9@Iv@NV={g2h_^6 zznSu~*J!~J^im|R=D(D;H%9c5)2?cC@V32y>GCXas?H#MvuE;18FLPz(r2_86!47x zf)K4ylp#37IKX`sR1T|Yi&EZ>hBMw+)?{&dE~a*0;J<>TNIp@&SW1~IkA-1e{mIZG zCoP*?$<~-q#&8;XlJf91N0Gy-qi}#MHKV%K{)E917o>2CaIM6YISrlQ-LLUzsz_Dd zGd$50a;rWq3r_TeL|ZCV(9N}C8#Y>d>%(~We7zq$q{IuB62pv+ML2yeUv37xRNHAG zBKS|EEr5sr_8EPVsF{)AAGNa^fA;~RZD8M^pHVXU&)J=zOJL9YF~DgZpJtsOA6|ve zw*4dPm5{C_WL`g@iTVi_^$LMBmX=e0yLhIWsD9V8 zD&#AA|L1jj3O(medgRwWJ2YX{P+e3}?GE4d7aqSnKEoW-8kG<9`pc2*DDXl-O4#AN z>+McOq5uyFK4Qw_NgLNZx%%Gi8wv@+swUp`_yB76dqfkG;J7M4ed9^etj+}l?ONB? z*2<3*BYAM}G5dZNaSzJ-MP5-uH=VW{{$nrmV-`=uYNj~$f?&tgGZ9htiKs^pUJ-Fl zpW_<(lmTuo7U`J56c3JoMA-gNw@AtvrUO;$bGqT+pr;WPgh8O2*}jc7IYb3}e;Xbg zg-$#b@E3h#4tw{l(+_-XCc(Qr@=>8cAF@+#VhJo^tlkYUs~^f=-Ga|nsc9ie;u)ul zXRH`&Cr1nN*yHoXdT|I17s*eP0+f4dvk&53v3hB@fhc0rRK2CO`;cX7>HK?qS`tf@ zL+?0Y&V@-U_qhr`K4ab()L~bquJayYgqNA9*46Y!8|~@h7>A~$yXRH;RAK&)(kF23 zoMzwq#1g>~KqV-M^u1(iWr<&OXYy78W3Jq}G#^jLKV1qNfVsJbEKED*d>9_{aw*ms z@9zZWXZm~t}bq|=io;6%O( z)|dzMh(3$p;r-(sSGn0Gtu2Zj2V;u|f#-Iz^G%L4nIZFtcp04B8pHD0=!2La`m_m8 zl5WWB(TxzE_OSD=ZZ)sUc2qy zS{%3|af3pIyBmh=u{32&iBc{3{QGPOsQc_O1ApbL;9CrX(kBc*@9bzg7X&08aFEuf!mT6s8OBsI}a;R1VJkU6o9? zBqnA48-g|=Cs9)!H_otwB-;OaAQeygvr3FS#rYLXk=C9L`gYI>XZ-lNjBQyA{S60d z-Z@xjA!H6a!^?Y5>XJh*<|{Z6WWr4j(QM*M(WZ+^*n6u5oe3&}6Oi5KkLu z@$M048>|STxA;eIx&?!LHb&GVI%%{M+;pai>=k08NES1FC&A`R5woKv zRF_LPD*9>zx?bDU;24`&(uwk zOnXC4^+vjw3!T~*(a{7y@XbrhP~A%iLe~ReTh4&D5ks zk+WwA+ND1Xe%vD<3bT~^N8*xNBc|)f#|{4g&7qvQE)9z_bsJng9Lp1IoubgS7sZN+ zq<@<%82p|`BEyk4z|E6ZS<)Hx<+{+2#j7&GZlso-;pIrZIHTw6;j%R_9);RFf)VO`M zGt|P4I}UzPuxe6#%7=DU+rIaeuIyWT2FE`By|YE7z`1@z%#Rmp74$rwoHY?3$jRAb z{-`{m<*`njiY}3qd1t4l0Et5uiFxsspL1|?y&KSg(xce8n%#4?VKVbQY0-x6`N82GKM_& z4Kq9QMsX3u!ejDHlH@8F|HIfNEXu!Iut1Hf=jv>v(8L>R4?&tuy^yn^4TplhN^%@1 z@6A=Fc>W_vOEs?GyVt#uUVwcxd?W)$;O!9jHA}c&lv8?DxhZE^!fPR=)hNns^5`!N z&sHz-#1xIk32u0(s0Ecn`i5S8Dj4NedSx+@x6Cl@4VgajmpetV6UX$mB5Lsk8$9&` zNe$E6rTFHu>SIQAEUuFNa7*iIs%aZvL;zfncI8#WNBnx}YO5NnpL2^N^V(aE3_@=& zLJJ!U)So_uu}D2;^6WQrx!uEr#fz4ts6LLHlVvYL>LukRzcf;RD9kNggN|2%`L0hT z+wDw1Q6OikKFg<1#oivY;_`*_zp9oEXee^Fl1rx>$sYuoNtHbg`)NL1gppeQJw>_4 zc=B?1)TkisUcb=wAFF6pFYgzcj%$0mUjsxRV<72Y3QM#Pb`$pk@u4;xb%UH{A{lKi zG63^QDZOO^Z*gHFO2q~ch0S$bPY*v9_DP3jq6XXnx%;Fo1!n?zXXyx}^20LsZ|c4i zp_!G?WQur2OG}sN-icI(AU6ZRRMio*p~`1IAH0L8JL*a4|B*y589VE~c{D&U?!?M( zlu`P#IgHP%9Y9mPH2s>IBhOA-L?w>{`Ib!Q#PimD0&iwr1 zj%$JO6)ON1(g1`g0A1b5*=`OFx;$%9(F)`PAmg6?3qjYoD{q;bm)rCs8iY|Y?o0eP zdf9+YiPZj`<&YJ)iL`OXUch{mMvm1J0W<6EEtM^rNZCC>d%T45; zeyR!hL%CE*u%%+b5msU8^>@I!Fh4N7d2Qo#LY**Po-u9E#MYG}m(P zoZx~Z&by4PsKfOY^oTseE;~T;wXBMN=fx%xwH3P!pWrB%S*ek&da~|DC4O)Z^+H@t6b0k#^S3qnRjrW?#8$i`i-FJS-OkE8iq@I7mWRportk+5qRus#4D)W zCR2~qF0bZZ6pQ3g*aB5IE7`N#(ohA~OkD>IgxiZYt|%}HaNK9e!t<9Z2IbRn3c@tC zg}$M$&pP?#yOb%rJ8sikDbzkVgHU`Yu@x%-bBEetG#R1RAM!1mczZop3o^U!dKvmo z%4_h)R+}nyh-7yfa_&ZmNCmJl(tKyq2f4p*qh+~f=za20?v={jxF_E|?SEa!JiF5t z+eJuE3zSFsmz{BPvExYwr={=Q@U^~pVhg@OJB1Z=VWgJg%73)xDR^>ta&@NVvo;UC zoD;qhKCJqw4lwdn!3_uI|B>{fvr9X3|488T$KyfAdp?uq#2r`M&fMtuna=;e`S+Pm z{TpYy4g^>7__hmXC(sA#(`AI&U}Dw>KDzCxck7z0GF*ti=lI`7&WDE=;@;m$o%2mJ zkZ%s%1~SV@K^ZjDg(^B*YZx6LtM-Gc)fJ(P!Vo{ zg6Rbh_HVAk>(@f2}p1Q-!+g=A!IZ-?9>QkdE`e5Nh?E9|Q0`O5}6m7z% z7dykb(L=iCw0}P<@Vu=OtdBILf;>}vqNuDBviHg8NgDVqhNeL(1Y_Y?qr)nTaD!Q- zQbXZ>V+{XD#3_wUkN^$fvvI?tFh`}x*{b$726pYrPq?xNQmX-?l4~5_T%-D#Wgyj+ zP7kqD9a@7ZEX6G9daZgo8ls6L>3k9b|46(uA|p4web>Gk84+~;SSu*1(S{tsZXT{R z1~HJv^j1+T#-Za?qiP@5J?k3&1ls-iu-BYN;fs>gO=pq=Cc78IThL^fzX}u z>}XrSgJoVWQ+!aqvEs9HarN%cnFZkEdK!3i6_=7dF)zo)Shil|!XvNPa!18GgIm)} zzo`VBSS^D5$n8oX&TOrS!_UoZBh$sCy=Ibjgk4rI;G4D|Kp)@yKS@gmlr z={Oa-2ZU8+opg22oXF%fxE_4oO3McOm!D2#I)7wZzGw($f$9$P+ak=bZRvSrfH`Ll zw(|;Jm$qt>YsPkAC&l5CHJA^4P7Ot!QfoiE5$kS-pOoIWG z>qKrx-i^(mCMiBJY^1Rpxq1gkiVz09vU$h@vlSk##Kv_|b{eKTT~R-7Tc}WpZ2rI@ zao}6hV(ohnjE#+CYJZuXX2aUiD)iQwxYeurTqSaA@LSEp+j#BAFg9xenhZx~^tT8x z?oOUacgh~D@(Z-C{kn$X44&r^E@^W33X>(m^pb5x2JoLQ zEmm_8ozKgySQ1{}f5|HSZ2Z{PgiV_Wc}^h|LX9LthoD0a`j!@ZTmn4H9+$xq)N0HG z(}b;(?mDL>QXU)*8IDvXQg+?7Omz2NlU%tIC>#fRloFIeMPF=3oBd zLI$9bM9)$FS7 z^5j2H5tM23Tm(+5#!%(U_S=x$!UY$DA#wxrv|_h|)e(gCC`e*=I=Brw+M0U( z_iZQD*iF@s8wz4p?$F}*WkS!rQDG=3&ezt`7>qp{xFx0Vb`z={a zd(#VjCq0uF&ipnBd!GF&Btz6MJ!bSFo_#&D(j2V(k>I$y(y@7^6gP{cqWJG~sM&WZ zftPqD{LoyaqxdKsC#S)TDm5oZ^sVRsO{$(0sdg<`WGIQ}8^wyTbS7#t2bVoz>6;au z#b3ZyA<=C$4LqgH_hRze6UW>}2VBxEqp0|dA%&c9*Uw?`OIrr7R4o-T>Wyp6YX01^ zEto{7hZ;i&-cxtSEzg_|1Mvr<#x{^cC%3$_2(O%9=EYAx7d9Dq(ANx&6$P$GG=VtN z@XW*{xJHtEb)ZN3DHI;{LRL*ujj57Z^dvVQxl?`?yG_a~@MC1cT zToeNm;wCrlk{$5J`kfq~&IiZJ-C^Jo9I|G!=x|Oc++pE~EC000S=tVi7KUWc;vM+&JM;x+TDtDNfEe(B5E)+u8*|%)--+C=77it4Fyf|L z9T33P!QLqMBE6V?FT~bQm z<(7Zyb}d^lU5$;rCTYD^?+>{M-DKOf!A|Pcn7A$;6P_`PV&II?Ro#3qmC*Cd_k+Eg zuj=*sYYO`CN&%i!(J3bTyckNqv=!>~_*-w}Cdw5F8_v^tSB%$@=Ux?T8^;FY)YH25 z235j88eCoXwI{&DQ7V1WBMettn*oyk_BvEqvi7O!b8EabSwbe$6IT^(eSKCLy_X`~ zt2Y=~Y2hqyKrSL+edSjK_YvtPqMAfeU(l;*PPP#Ar=}OAC5Yr+S??LOK)fnehWjCi z7Q&Iv!Y5bUvo=6XTvX#-=<$0fVH%h9Yz}?yc@bvfoAe~g1L9Ptq8+j-Kxy}+GdY6T zO15VWOpi-=VRE-RbB$g!<_+o=>Ls^qXuq7*_Ei4CoXh|DK)bF`p`Dgzrl>A`K_pfx zG=ts1-7amY@Rw@oQJy(jE1kmEU2oP-q)%>t{_CN0O?pvrVb=`+K8iJNw!oE&4sD&$ zlr#3M`5*6WpScFd|KE)x+5B_kKQ7Vvi544!{4GKww4Lb5=5?b-)`fR-?Lx77PqLm;>4UOM4|($ zJkx#oR31qOhS2roAKjHw;IIC99}EAI=QRLDuC|g2dp3y&yIy`5QVZoNzT66#1$-C9!pO#Mp za%#cGBdYh5VGFcj*Kd@IzU|f(fBM-)HPnHl0cM8svi87{jV%0lnaMF=^IFWHo*Py# z?kiJfXcP5{se!_$;?c)DpW%&(NQ49bEFFIo8`>iJ3%93TgR**VQ>8g;I@?72`W;1# z49vPZU3Fet^w$^2Qv3wY{mlrRVa>{fJ|w~GRwqg;7vVk1_`#{T2IUl?vxw!5!ydJh0`GNW@Em%?9E0H0X6QND*8$QKIZXBl8k_JBx_O?##(1X??wvi?fMb$^WU*81i_ke+Z7K$B8_#K9&YXaN^1Hdnff^{#Ox zLiw5T_&)GF`*R3*+B<=?jw@i20$iiLS3!UWxpD5|3OE!0b1YfN{YM!AI7UCD?$)wQ)U_RDXZiMZA6HYkc~SEP}j=8G0>=+BL>YzTu^MS^_)uEV+R|#dT99&efn6 z#W1i96dfgt=Qk0Ou2&>u*7{6$)(sn)>oClwid&9B_ZY!KqE#42$5q2(Mmt z6+&uykGO=XUC5&9s=nT=U2%9b9{b0xwzwUc^MQ8h|nJ6|G9D`vw>)lD|1&M zeBo+GW`6PT@{Z?K@1N2+n;jW1z(szhb6(_XA${Ixb~N~CHHWau&vcaNcsI1IbT`hD z?fc8t9`B1{B=4t~WR+LH@+Zh2n09#Sf3Mb{tpty$6so;`bxlla`R%|XGHbMWZ{S~z zyej*4o3((aBxD@6ortdYX_JEKisCDeN4Y;G#VZ{NK6tP}Ho3Ye#>1(hvx&KL^?RNB z76xr|H`mO}g2xM?uIjH_Ao zU9r~s4Mgad$)4^^NI^H`mJ81BRX)oNqYv3*1)}W-Od@3j?TaC7o9SwnKz=?Ez04n*qj7k-3^V11y@wwDiiR>sy#ke zQe?(S5Zw#&#xZ+~vx=BslU%*EB6QqQ3|UHpBw@h~pY_0s`if(!{1Cw=Ggg@C1E%YX zO9k|nk*wBVyfI+kF!C1$tgLs`o=J~QK_SraAKcA3{NEq`5}|?eRB&bTE|#P=$4;Lw zy3yPz&eKa+o`cxsLttSB{i|sE2TLSmYr80ZMHAkK=17xj?|1L;6a_FcD_LMrEg|3r zqEMmqtsF+>atLS@kO?*4CP@ro8#Ll16-81xEDmNSi#_Z)u+^kbiB_->2J2HueSZ*F zxJw#&XEX~+HU!? za3MH4s%Fu1007MYnLXwYEVj^&#iu3S z%cXSgk)CF=Lv2~}4$~O(hztZh?_myIPM(Tg?i?)E5GhXey88%R0jjGH;D#iU9Yw?G z3bD}`PHVWhZ=23z`2&QAbOmhi2}9l7_9QXi)}rZBDux% zM(Ate(>+prG7%vh@qtxQhA(CJhWvaluI&L+m`=rqr!PXYzz(hQFl3bK!tH01AD$D3 zKPJs#MFhNCc5u%dXP(jBS)~2LC=!r%KUJK@9@2loFk1q#hF_=^|HOZWG{%w|sX?r} zci(CMVv{z#euHj~`HNjZHH`PbWs2@vu0&`4@Ydry%;)#Mwm&WWMQB;kAd$%U{IXb5 z%%E2JI?2=K`VTYl8T&f*(4=hv2hj*OYK-K2Me5Jwc5fdVnJn~PzU88>!M=u>7?zl- z-^=GlCakW~yU5VZjMA;AA(PA>vb|i}V0TqqBNpu&hHKZSz^d2uPk07AqI&agkht<= z&74^nNfOfUOlC>RFrri8bYt0-a;td~sonu)QL4#E!ENE`+zv%*bc1dzJ;)lTr_8yB zu%L%*${U%!)m}714AE_Rx9WS{mBp(!+=_C>ZSzbTcC5OMyq3uNk^ja!de<$_>Bp#ENq!tYA?_m~%zS9y<9QJi=|{Cr zX)yQASID~=F-Szj9_I+()&-c-fxnblQCM1p{|ViPIyjq10+XWb^%HvXX?=Pg478}* zEN7V6)9W9}h&0^2VK;o(A%CtnPbA!CCJaP3K8&-JPyo1T_ir6RE_;G$O{qNixeS2%t|!l|!mk<1T;~j^lv0%nmFQ{l^{@x88KN=V=7LYYi8>0Iu*cZHxv<|c){?Y+ zpZyt-nzK)R8|GTbi%~mGE~Pbp0oJL%UrVy({1OV-=&sB?e1Y&URB#JW)4&maeysK1 z_%Z${^yC!CKf0s}*su+(&K70jc`*|{V8NVPPHraPx%s20wMW*3LPfo9*IqLLtfIoa ztLvO}?G``R`|#%@otF7wdv&MZrM#CqQ{H^N$Dfr!pl-CIj$00OQl@C7jCrB+-cD#g zj6^_fQ=xEHXo|VaGQX(qDMW@0MCsvoO^84BdHru7<%BU@#3a{1qv1;L{CkLDqm4js zM;gxhGsA>S`@=EyQ-rCQfcu>y;_q8ZG_mS^WOpMLY$?UNG5Pn&f8Il%ka?lK*T_af z?io8FA#a7AuxMHl0^njFl?sv-xn5~hIBY4P!f(;4=njpFh>d=Odys-BUu%QdF!ysg zM-O3vkYC~aQDqxge0Z`=TXjsGl`)N9P={%}S<=h*j2f0un^0xs;_7{_ZpD`-Ix`6q zgTM5Ujc;|t(ozrPUt1lxdfy0etFg+DIM@8C^S)4uS;?L7-JF4I5eu z&FL*Y*hc!Tt68Way`;!*6EFMKu@}xT^X^TpXq>p^p%KbuuDTc+OE7;?MtwG>RDhZ| z5wO&7sIcCkkPFpicG7r$R3}g}Ys$^9?OEBAp>u2HP}!Kn@BXHC_~7^FS ze{?(szis##ct-`v$BML-PvUrbJp&F-i571i&Y8Uq68cH)rf1=-9Ywc}Q5m9#39OAs z#~cLBO3e()a8I#@|75ZSxg+vE-`N_>eF#z%&a)QSlaEkVk~L*53x8aUQ&@2G&MzCo zE{ql*7L^k9kuFiyDK(;#R7hnbtF+U=jFAOi98nZy2F;uk-FYg3@Xz6G<5T6FpxSDH+0-8hcS1)w8pwo))_e+u^ z<{gjLNJq>xA*n}c9fD4x_A;zcN6J0*qs#L6q0K47~oH>da}Y)AiS zOCtkifL&bscyOjkJ%F4`GQm&JnX$qPrt(m%9^VTyH!)4!1wyT>rN{IQ@Ux*`l%ttO zM!bZHuyFpc&KZj;L)tvEf#BLm;Uz95)W81DPDo z-ZapB(K}=urRPy%;@SEj%I-<_$wzuJBoAx~Q#jY9sz)^CmX{zQq0*vUkDxP>fX42)j^=-PM(Nt^9%rQaL-i*phd+&rVRy~;7JJ$0 zUuS{~6UFu0ar%pWZl&PdBWBbZzf{I(GxYQFD70OrUQ;H zS+3k80X@vQ9QY3oJXL(Y;c_^=gS(t2_+9l$!M!{3h)@VN33^K?clzY9fyqS`i_`Lu z+7_-ZBEPGb(fO>bA$qEuI5?3iZkBHHy34s?>RflBw8i@XR*EUie3CTHuMJBZpYnGp z-aRO$=@u*8IPBRMqZ47uWkj%p%_Wn9Ua$ z?ztuWO(}$#B(48``wh`v#*;5fSq?OYH<%}2$IL2E3%m4JKsFW8NH16_)!ks_p%Xt-&lM{MAu__M14PHj(3h*DeBmI) zC<6wW;zFf(rk*tGhaNk7@zM&_$0fsqmy~W_LBx7L5qzAK7hd%D%pk zTJTZp?4*RxNb*8C40F41KGH)}ravG5FM@E;2AzEOPW)6Z-_>Pe5ZoDjH}S zqfCmuM_2Z|e2?Y`S7#TFKC5O&Z{~x~cW`@t4OjH@&HX?g=jP=N*Q{+I0uT_oY!CK= z?*Ql9*#&Stw`9!||B<}hDLriIur|kQiF+Gtr4s%Nr}^VlhAY)?=xF%9yQRnbQAxut zv2v5gH6@DC*39w?29Y+sUdkVWZXV88k4S=WGDBljdrzNb(eiiq=Z}8DZt@FU$R>VV zQV}O&3J;y&E2WJWV>PyonJDj(iSR4qv>xX}r;Va}??Z5@B15L7!s@@;m5r_3NVX0H z+EG*khSkIvIAux{tsX{*AmaJXD6$h-Nr!hrPnmcNM_jv#>#)<;tX?tk%JU5LUlVEm ztub1;v7S@qlWr`mYV?f91n^YcRx^Afls*ydE~u($#(p?dH?1C$l-0TpE#wxQTI3vI zEw@Au=)>C)SPY(SErb7Rr0%3pUC>I8p1Uq-^N&cP%0)HfyuZMXK5RkpD0mOcT2YKrt2rcwA5)2d{Zv#bseot`=TpVv)BRLoK-69V@}2-5C=x< zWi0za<FhAZ)W9~D(c$`KVLRG$3X?Z^lxOm0Yh`=Szd1hhz$IAHC)z7m zefCTXXt>%s{>wd;Yzh9}uu~i?${4g}(r|G(KLpHjDx2nPmk!jHj!%e<+kgm_3iN4n zz~{Xkpj0-iai=VBbD&#M?99hqdV) zTzjVqEpA7DTun&0fODFQJi8}5W^!mGoqG>v&Tzc7w&M6ZlY4ql7 zX(-?18&#uCY@NgGTV|Oq9E@{B;bp)X2}o>f*f*QX^2@~a9tQq>-{?dIMn@bO2ltUx zXV-qnEitb!Uc0x^C=SXYYibS*g!a+~%j{-1UJ&YblZJDvtHxw9II>E;)bg7!p#zsH zy{Lcsos<4eWL9ACZ4m^&e<{z(0{5^n(~CDrZH0aY=|2g0m&!HxbWnViDh^^IflWPE za`}{aul}X6VE$k_P#%kGj%(wBA;7&2goJ^7+`c2@nS!y=JcSH-3W8AHK1m?diS5fK zQpIa**5LdxYDS^KVWz%W^ujJxqP@&y%h{r4^I*;62*ESfr$8B;9|8+VTuMix z)zr?U%k_5*pS$-Owf$8P)=;}dtR6l(fFUgMNtyguofBq+{yzE1=NRQ2Uv>6YlN&Cs zDqKU!=#D+tkA9smcnm~>cu8B;!Y6nB)V$nvxzD7(ta-uNei~oRzbJq<&DwQQV8>Nh*7NNwl`R~br)U&!{(blE72A?f`{gYyK z&)V11byuSb`6JPRM1zf;Nn9OVeZ!h*R`!FUl5%LJ9(=~01xMh`g74~}7d23BTpHch zzDW)X5k;%3!!f4{(l78~{4@HLzF%uRp_KW>{zd{kp5{Rf^Ip`9AS`-Yr*5}%DwPfs z=z^V^2Y;mUR{m(Rn`qqW887W{)H00Huj~>MK+W4bPkSk9bcw{_VHyo!3fG1_#i>$) zY1-Jr3cHQ?gN2)u`XWV>Mg~;1^!ND)ADwxpSQT@>LYCTjw!+@1DrPI_RDOY>QTp|? zUFyw19O&s)bl=ka!Oa7fjX>A`rWUUI!Py_q2`9Ce^Vs7nHdo;Py0fz%P!BGGMS*M^ z>!8O?fLX8XatCl6yIk%p?rdBHm;f<2<%7qE!B+X*>RN*brR5cGw*Hp*yGWqgtEFO| z5JuZ8CRkPRIC&*dM4_92`*-kklgxFyL*X-?q5O)c2qs2l*|5#s@i3ON-tUyU4nGWZ z(%T#$wf2EZJea`j3wv{WO9F?5J5D`SD?7NXhAxB}ceW&q(2(N$JnWR{N<_goukx;K zo41Fm<**N0`*>~4c-iR0S zwc?vc{Byo(lMpt+efsQeu8yrp- zK%fJ?k_5WwHXfM`vVmgH@9Ql+dSLH-vNdV2I2+iIf;U*0{h3~BRZ-zIFPz2J zPk*~a8i;;)V`RmzbmSL^|K>r2eG*q@fxCT-ftmB&;5Uh4{7#SINfd#Xc~7JdU1NP% z-f+Nk#-6I;J*Aa1`)8-dwe)awY5q^p`B2c?+5fU>z5{u*LFMd0z?2{z&`|&X$euiq z1w2J9oyUO6^yl(g(?61myYp&Q_~e7s!nv4^*)@W1vnI59>m^a^nL0>pFN+b+A0 zIVIHBw^0r)q;=ahK z2p`Sv%lW^ZASUoiOBNZF@$3y>-EHd>XPHw$o^0c_o_!C@lr*g^3 zrUlJw%33hZ>@j4(ct5ni>n*~)L3(DSwQN^vvQ{k>d^))GERomH zZA!^bqZO1fC!x*{Hu_i=AUd5223pXpt%qNGS*uOc4slXNpAecr=@(i`RFAGG| zuxriZ0a23rKfMxY3y)8;0h93ZpW~gmE0GrV;I=;Xos&Gi;D%#Va3}CY3C;p~OV(pR z>)EO8ya-P91MZH~;+CGDJI6th4ZX7~E@$B5A)TOP`P^k}2pR*0W7L3iP3xWH2#&CkPNTcZRA^fJ)$h9FBym=Pg0~m$+(>{< zR9ySDDaaI&=$Vv2n`zCyEB`Zt{U3>)YjpX0$>fjwkfF3J+aGlk7o61A{ghW`uh{&h z9+`GLwT*mvpvd7HQ}JD+Q;$+Stmy9Dg$vhZUg6^8dZW@4S#p#i10Ps<&0cS8;C^pp zXylKl)Zf7@3-@P~fyMAe7J+{(%~&~ZMU-93uc1Lvwl6|*nLl59%@i_^BJGS1&Ci3d zu#FJg1G!OKR6f#uL!nW=&afuJ+L~)_+_#y~=*pug0Z$dpPm$_X3^Lx%m0142maG}Q ziUWnEpE>y+C15Np5PC0<&cIcK(uj8yVOmbFhR!{O!^7$GR={5OVTm)5D5Jn~m$DYj zycJ=bHBl%xFumm=V^FMUi)}F`cVm(eIUm$e_&<`)Ix4E~|N4}a(xuWvw;-+bkRvrR z)DVJzbb~aA#0*{1CEeW!DBaydBi+*ZeeUP?{57x^YYlMk+;h%;@BP{pcRNfTlfQ+V z;=?;a>nBQ0E{q9}EpNq{)R_E@u-;JN#H&ivrQ1+?YwzQ^sg}f$#=1jbY|T<195#NQ zcLeizKOC*_B~AGJGVZa-+Paha54<(@HTv->ykm9MA3*e<0I=hd|JZ)`wxTIXp>+6T^ zDz5JoGu$I!VzJ6NPfs!9sVb=1?ZBdd@N%8p(<_deU)uc&`C@%YRUG+l?7yUY@xEa! zy#kX#Gdok9ytU+`|9k|)AtNFrBTu)#l&=^j>%Vn<=I7%~o3%yXw(#taZs+~38~Vz8 zHr1OL+r>-T2isLOMz!i=P2Gnb(Sq+)uy%H&>smjidG4Eif;v-kj=1@toXADY1g{`N z(A99^c%BPk7XfB@P9P_To@lTTWyL_kV+)H`dO{f%5*tPYMf2j#nI(Gz8cyFM*3u-7 z3FaY@CyOAfWi$#wXwsQ)7ZoKo?a>zTZ!nS4t?QGRR15QtJXY`+<3OS+iprPm8v4U0 zr{!_)O?_PTHOyMYIB<(9&Lv*U3Y3QpGPN`=Ua5xZH<`b*+?_>{C-xVmal@#W1+v5K z8t&ihxt3a=>-jy6s622cHca2c08!W57FC+I{y(&qmdC-w3Rk1@1Jz$S)CP9k8##=2 zv5ds~(GH5wgpfYH_Rj}JgcRiKw7cKjct&ABCH%6!gkRru1pB{!GXDAX1emg%tgL(iHcKa) zjR0u+|7h&Mx(Fn?*0)){o;0);`u&FteS(buhhe}Z`~RmjK>Y%sVT<@Z8qXtZ;^HrI z>|kWV{US#>%aS}&TZLMtSOi791ld)YUU*DpDp-<83;oVdjD(`3n0lUI)1ut60pU0* zA1-Uh410#f#Kikr-%F)*(B$wGmee+m^AaPc-xeFW@ z9$Vnu4FcSJkJLcY*RjNude*dy>N1lb;43;>hE>cY!CwL}66Tbxm0t>rM1wtfqpg3` zPQGP(d5IaGj9@v8DcrwzE#(oB-$&&sOU_3>gIiY|?Z>LsaCjBchs4R(T4$fxuCweV z9YU8yj^??{j6>U7BF16bvziU25Au`1RYkJUsbc9f#c_HwGnM+|y0@{>5+--apO|UA zyzmwj##-R2geIn)K9-QnFO}HX-FfaNY}$dVS8Z(JSJGjL`z2Y$1^O`0^8$lr*LkOwfVuU8gE<)TuLXEJ$nC1u%jqNL~_%tkDy0J|_wBVG8Kk zpgb1bjY_0($zx?2h&@Q&y4b@LyLt%kIloiiy0DQu18Mk_Ztd_*=G&i(%-*eJ`8rhm z*LHIG$mjPswfpYB`5mAR@3!5a&+h+cv!3c(Jq6Ue#b#jfyS{1uHR_OOd`O=6$W4;Z z%nX8RPw5hbjN&Nr7n0z!WdBwYca`7533W-Z>kG;oenIDCge0UU`)-SHF?D!}6&kUl zP;xX=q1dmP_X^_$hMA|fqNTIL z1ofdX4J{|JNS&Y{{8JJ_DWxyjXz@8oTX@jDmr?UqpXqHMX`Lu8D%3Ml&!}aAHWVxe5A^0odSgPBTU`gUT{r<49q89VoJWcZdq1|WT*H_j< z@56>lcmsyR_^%jIdoxIEG9JL%CP{kaYU)En`zF^MjqnM{nnuZVc&1e6tA3Lb|C427 zJ}69Ei}8vH09n{^uH2KES2hS#69_j>n&q^9Hh+2M8&?F{<4HVF4-d;pgQ6t7E!}%( zVeJ=C8Ls=c9YnQoFYSgQzZq-8pd?ytsJeyZ2<;+t#7^I&t=eg0dI6??S%=O(p$-#Ey=^%arInAuo`G^RGSyX{H6 z-n^e}W7{-}Up4w6d3VtvWIXQs^ z@3UXD{oGtDW=tHHrC7{Cv}oEL?N3W!{OzptS>A`VZ`sl4*Ie)Ibw|tN=d4&36)!SQ zL+Hlpr)D76pu-xLjo7PVO&#}DFK;Qj)Mz|>zV(hH?NJVbkY#{?p$<8m+^-92iCcb* z{t{T(^o<0&i(Y&{kWjse;juwJ!CZtTE~Q+!>+{hlqFrjb46`le{4 z7<+-b8;~6C-fZJ##@`Hupmv%|5_2l}gGy31kCI&FY+3tv&evMEF-17j2@?K4?+)%J zpU90RF1#9zoo6O={6^|Kc3Rp%tE>M*%dleFS!z8%JkD{>7v39Z|Chv%KDi?TmbZlq z{{YxD;z;#dx485LC=#7Dx5Z^oCUIQ%Kz^!FkxM$DU#7O(8*&WVmIJ;T;#cq@V7v9h|>JzgK%p3IGj94s(QryJcoG zUHB7Ew|v3q$hQ;HGiMy(Hmc(U7Rp>Ef6BegfA7*Y+vGDtMeG}8!DO^~!h(rO*o*h% zO`-My<3{ghlt)!d_X(hSz8NO65Gy;`)JHQmC-~Gt85EVRhoxcbylz)jbE<~kchtX@gMqAf=L8X45&opF!YTa;A^&m78PzRc z*D$mSjrvWEGA$;Cme_FhC#C6#)GOC3YoBeCeANVzyD2K-)XRC`FA$C{E0Gnof=ojv zHy>4E<=D)4yg>$y$PZ1qf5!O~!HqJ4iMlZ_IU{q}H8(Q9phWN85KWEd+T|oaf(ybw z1#~hq#|f-WGO8G2E+uJEKxN{(o7}8(KJIMnB&l51?q3wH*8HII_lq>7`tKsDp;lAG z1|y&021N?TxxC0_zfdza75YR%3Sl^G;r6_^+KaCW;?{KhhS$};ewdJ_|M(JjvZOTZ z{CB1JB4-Y(Nz8mltF5^CktT>reEBOQl~RfOzI?So{OotxFdY=Rq^ax*p^x7(NH<7R z6Jmb&eT1=$KImEJ3yFWLHFnw`n)~MK+6e(0_r~&R6iMPLxuy<1dfU?sHWT)_M+i~y zED{$crKnZDDh_U(@HZB@xjj&HFr>J)+bO@SJuRQ5Sm1)4VOadyO)FWE4nJc*DvkdB zYGF35L;C(<6p*jJK6oGA0v0g9)kq1H{Hz1JEq?&ae(zbl0pPv)R#$I*`TRQGcHG|q zi|WG)FQ7rA?kS|e4?fq*eEIc;@0ETQlS>ps*UvCU8Of(eM_(vFPX;b%C3D4oXdR6!N| z1tzB7Q>NpnAGFy1wBmb*&Yg&GCpnf4iT84oSG!eL(6r`K?~0#F!Bcs%Z$qWuJ}=aU zGewjb)>LyCdzBS{R4H0VV~i!d@eE$og)wpbbQH<{IANJtJ|vn$x-lqGr~mI{uF6J&Khk9gVYFI`ZZ7W;={3 zl#(K|483Jc-BmAL6gl>5Won3UmHfNRe8g$L9coWoNt#k6tU#eCk2;t1%F!$$2PSND5C zc)k8gTTQ;4YU8r^!=8g3O0WdJqg2RD0H=>PlaTZ45mISK2^;k+Ghx5?lQ!c*4UFJY?RtH}$C;V_J4Y)U{&FeW;r`3$;lGN=IN%u^>8Jdvh z<;Y$(Fho*OOxu3LjOGrI##!S#d9hb;MXE2RR8q3Qxo>P4y*V+TOA4HGi^5006@mR> z*b(DRlc}o9;msgk!S){!r(?(hPGhO**nYOBu&!A zgZ3zc{cwL{odfMjueD;!s`t`*?oz>DRmMeDms5&kV%4x_6 z?*QxvS|Ys1fwEU139Iefm1ROYtcIs^x9Gcn8DkJ)>mJs=-^#cDdfD{=j8bWc(MQE< zX*Xmy$)*WcvP`*xJ#hNGn)5gI&HOJAvwo-O2fX<2IY@nd3h}`ERB4d%&XNAJ zPMtusI{$cnV4eN@&Cw0=bT_&$#FNA^p#IZQVYBuh<7+&w7*Qk6NyMs6|C$I8Db5N^ zaXkA$-RcHEbI4P;7ijLL*=(H*e+N%kHgnjlZ;I>CG*W~+x01|wQ~r2mCF*V!3fmr_ z`In&G15=`i1Xn~TfV>&$M1OFq!pXGeX98$|k1O>Qt-xA<2B@XQmK}IjQE2iQvenef zR3g{|KVmu_7w4KPDS-6TViK$KVVccw^RlAv2fH(Uo^aD+I$Evl3QMh;9#P7FQ%6?i z{UF@P2E2L_occxfv!ot~?>=H>y7B!FKVp)6@IqbOva)4F=;!t<@Mp0<`|$aqG2H&}^GjI@4bL{t>RsenXwT+@l=Oe7P-T66 z=am+oIy{z*Hgsc;eEj~H*Q6|{v6qoAcj&fML+$FUE9s6WfV_QH2SDxsxL`5>#Tf|W zJ-k2pdOtUGuPpUJpP#t}7|*g#WWx;AI0dVGoX~>Vs(R%U*Tu)^s7SJZL%1)e`(y3b zQiX3hwuL{j6i*jwm3Ch6w)Oz_e!@5E{FkI?; z(PG>FC{*oj90}koIs}dUI~$E}v^x@)v&1)qwzV22u3=5S)?xWq;F7zq$2;lXRTo-8`1<>$f&|Pqe>h^w1s!2672Ucy3h(^SOCMsTBHd8s zU(5BNT-EN{72fkLiE(gT549yNFw#t`IO>IB;&6G|;~P=zDTy zMe=dge6hWbbnl}_H2`tp>m^=4J3OYa4UczKYBI1mzhO}|eI@8r82sXe%7&60qb6@s z+T(klRr&UEUT^K5N9tP^f0curg%QQ`Rr%V=)X>$Z67=oJBy(9O!6yC~ROaY;B^cIW2R{KWZo_4T=SMSFSaRgv8R$~$KcpQ0kq(8_<|#_D-6iR)q8+@qEz1y_#4t`fF> z>pK7>(onvU>b}Bp&*=yfwSgZ!Uyv(s{vt3+#IIM5{o;KYEqi=7AG-h5P zZ&3Cp7R^^qAOKdjtOH>i{2yAqvK?Hwvhr!)mWowGk8D=6+GT%g$>x7(AwFE;@n0JQ z=~(`bd+8dCPPbv*(VI5-3f}?Ut5mCCgmI+4!J{i@=|SFq(-9%R|H?}{8~rF+Ps>+> zDMzh^)V(I|XaBp1M9xq@s+?<1TNNRmQga!#4x4*SAf@xR!yAZ@0aov8l;M%ixgF43 z^F$|Qd?j!b7r&)^r!bR`f;4v9%#a?mFe0fAbEZb#52>*-$iQl?WzW!eB_tTvV=@sD zcN9M3UDTpUf95i=u*t>VmqA)&mfpS7_~2}WIq8TuA^17TCN;mVm@qAnGKY*peKxly zHA}c#TJzwlK;rchkSFV|KWM)*Y>1p&oyh0S{G*mHyV7TqA|7=X?_*myatHd_yzpjzFCFQTm%7on*9BY-JksWrj76}7Z09^^+N$v2bVew26* z>u?4c&4Oi=qA5tv3rgJzAy*}k+TyQ^4f%b}C9pngH@KaF-y|pMQXwZz)7QJ?`VyYC z3YS=&%%4ubbTc;0tzCxvTMVz}Jb1dSJ8Tt1c_r0%=_Pv#+v!a+IuA0l@JP;?l1t+C z5l07CdAMJyJn6FYv-vSh@n5ya`#L;Wxw+WpgEuI%|mX0`&!8i9~)mFa|qroHq z(Q1vNvKXygoQ8QH!FE=4w656%CcUnX>y1;FP_vcGK5(kDGk=~{iv}0g%f-^hGE40J zG`FNTY|8%H`6E^GBD(S*LwOANvG!!-}|Wk56$D*evO1&*6Q!1g%MS^*IeeV z^EIkc^^n@s3&7V)Ij4S@R|#NbZoK}_E=~n>)}4%PUjs)(UZ8f+57~NA*%E&d4E)UI zed+b2Frm2=qJ`0D)?)E*28Uy4&xaP5w8&lTLq4X41%3{sNU=9gX;h5%V5uLoVYpI$ zXGo5MFl?Ef!O6D*pBQDf6cne~GN1#{UfL@H+n+4YVJH6U+Qz;~w>rli;=mEq5a2eq zZ9_wAH3x-M@O7Vp1p_78ol->FR6fgJxZn7iW=R=6X7tE(XW$6Ok+$m$E z;In5vX7r_>#4&rF(lXGn)b`+wb}c96;q^LO@Q>Ra*V;d}mr9>X4lC|?_u+@k57zfr zm$M@s5_KJs#ino(&Wd}Tlbtru1HHwa3z+VY~nM{Or7O@+kLU zvDNa)+e%VuQ}uzP=3Dm)R#3Ror(c;p#`l&aG0LPzEUE{ONe{q&wWFsN00kUBV*c0Z z`3o5E?cG74P+vOW`EjeWx*g_Lv8q#1jf=1GDK>G!J%_;xc6er#>^Z~z$DEjO$aToY znlze-?YGeg+0R7WuvjYE*08)*P;gQHROmC@rdSrkoJ1v5=JIQ*XG6u2$E_MeNHiUU ziUj@X&`;I%8RrSFA4(s}CyuPA&L+QsmY~;K^*w-fu9E7qa&=7S(zf)8qV{&KWEN8C zRAI`~Di%L0Z#-vidtE4D=z6#S*Qo@G#97?qGaGo4O6qk+8+}m+CFKr=*E$z%4r=xL zDv>9&OS>HetYgNb705BWaOHa6(v|6z=h$LnzdY@7^murklfduX-kDUlQ+Cg1^)O~f z=>i<_VWgZA6{Nr?AGa|S%7#zk`5Q4*nEdu{7pjz(HYRgwMJ3NLb3&;D+CUuSZtEJ$ zH^aUU+>|+}$|0}i1F)MbB&HI;y0x`SSA~=CCKW@ojK%#o&4ObU@|A)5HdVUG`WEWe31yC4xRlcB~ZM;pJ zY<#32YzLND$hIke@Glvex+765GnIq{KplzFG73wg(aZ_~$twVJ61h z3yMuhXK)+)4DMtS!3->uXIM-E*W~*@TZK0_%$?>vQS)ppk6G{M-8U}VoR!ZRxwV;t z_6@K0%T4_9)vPD$&F5QNO3OtIxo&};``+tS<1n|C#-q0837fw~ts;dm+slVihgSRU z@}&7JPPK$ah7;J0r4LiM$;VFJ@s{m^C0^qEZ0S@wo48MCY8I??_H^tsrEh%p-BEe^F;C8L6CP@Fx~O*QJ4VWT-|yb(kqz)(61M+HRo2 zivA2p(2D;veHq2Mb?Wi!9YT9VnAXun91-HBuH9m=Orj+wIFU`%t%jx41Z7rk4}6{tp8WIV{{Dy5vU%++0@34h>dw{(&B$OgsiGVZN3ywU+sC?jAU2#B*{Xe9yZo&S!M_n*oON*c|almFxNw zcv!-6sNV&hdUuAq^5U%8HhnT6ptli7*M!k>mX!t-W#<;fHVp^mR{j*H@nbL?L}TiD zlNS(_YG$UH*glXhM8U?^WXqLU!DwEPKvh!{R8NJqeyGFB9B)UV6-%QzRb&pR0$T{n z|Dlm0SjVNyh%Nhwb3o$Cf0!88d00>VmeHP%ifV$fCkSSk=~77W5_}^~@~r4jW6df_ z8R`f`xjF@=o!Rfvb%f^XDf;Su@;!T z#2Fbg^&Gc$UcQ={IZBI@yqO5? z_?@UpH{RTQ4ogsq3H}}Le{-k8M1&)@_K$_D^_$N`o>AP^zj>!Ux&UCbsq<`IRYZ%q zcfDUH{DYDSyZibe)XHv%_sW1u)HjpI6(K9vECkAVnqh0*ZTJ7s=31wGvMPUG*(i6K z&oKCUgYJ*8miT~=oa7s>JJkUv?ydkXt;VU?sX!-469;1<-bcBjt4c6q+dWyylXY$q^v z%E6~!GiJ9HgHQD}?O!ihzP3yXOE~KVbR>B^E zvtn^;mKQj)&Z!(EBXNWR2D3Ar(~QZ?SZeotxYxXG&^!O294ORG99fzL0pgYc2{%j@uRt;nouEv8WlO8>p>uc+1CyW zmOo)jhww;n>(hSAkaITc3}Df+AbI6lg3@Tdm%3JgHD1GR8-1Qe+zMN*XHVAZ8`aY8 zo?fpTW^sA#-veXJO|Y-BUkQ}wpu^7AxV=o7;sCq~KTa!$RxZOOVQn@ybL*}CB`vo{ z)~I2mpZU+uwU;i$8z*6$2sWi9UJ~M~U4D>Xy*on)z8&eJ)pnC^7qt!iX@K{rfeh8?MGELQNxz8>3XqxF@)+DaPi!2*Jllpcpc5C`Ytn zq$6$^R_Dbp?zT&9wXH=Gxmbs|QxgJm2w!5ZOO*~!C>%G$mg-V>zZTvgzGFnvq;6~m zsPWvB$Ihq0wR`IAe(MM+_x9R}@h9;RqF-c)YdP_5=~Uw*OY} z!7b^looB-tS5#oEi-pDB%u%u^#{1-tLI2W<@PV}(@fY)cfH;Ifu@EN!h~c}2g>H#D z2j-B3MTQ5Zc(h1WD<^0>&#|g%($LpV-gI4p$Q_0C{8emBq>)BrhbPK@0b_pQa05l9B4jMVM-m`E>YGvh?vyJsNt~Bne z^oqUvW{NBC86y`@?VC`FzjEJlBrDZt>a{0BLLREsJR^3%w}Kq0Yu?vsUVd%s^-XF@ zC7mIS7ik7NxGJXLd!P)pU;cr9xrE=%MduWgb;qGqe)3~-Ww;(%(6f~Bbocap4*mqI z^3U*p-LPn!`FNR-h${9f{kq)Hk~mw@qMo7O(*E^!PO6RTdigzMA70h~x-0peroBfF zDXBE)C{vU8b83OMVHpLg;3IxEiZa%g+Gs6l63^7BNaZ@tUkx z;;*PVSe{%^&Rw}kV9?Xv)m*}ayZ3U+^ribbIH7ymC0!MZ$#i@?i3mqpk$=#RBzO9+ z#`MH&WE>s|F(SF)Ud$XVfc_>!oKX>P=4maM2JV`Qi1ITCR?(RC$qd;6f12-)g>`!j zP(vG%!;c{Eg=_-etX_v~5o9vy{&B(Lf5k_Yi@h|?69bV6@qGLoxs|@BKLX+wEe*+& zM+|{n!N$BweUg#^;$K)Vck#J%JvGVA9fzC__NEt1{thT;grX5O;-^^DZOY}<)WT-u zcH?6>UJ)m1c&VR=lmC+#TxUyeD&?{lRO3Szxb2BWXB4&R6yZ&C6Gq7mSCa~l3zSr` zr&o=;{$w``K_YGDm~QT5OAy<{1=kb!s@H_v%G9Ev+kTT8n;XbacY!)eU;aVmdUo zM#5mrfU@^BqY<0n^2}jIga(Od&Mw<(nAz5>y(0SUShUc$01r3&6Jq+V^rM5Yk!A>c z1QQa??)P`k&_07yYQ(})nMJ|cyz+4GUpo@VQ*{BogebwyO>;%;V-b@*)oQY2VCyq5 zEY&p-; z0g1p5p9X=_xC+4RfPeDP2!zc~ya3wb%<7i$SD3##P%`)E2Bd&TPde^7I5;GueI4#p zXS(2}w1}nbKMW6w`BGL^uFLL^4+lDYMq`F{2QBx-I_63K#hiv;wXTgS7jPeQc8U}~ z>2KL5X-p@naI%hidzTD76bqkgqmFh~emu0mW(flPf3AgKwu?0izl;pNB|N)ZSTv^zE#7TK_Ye5XlyF>a)C z=gU~I(&sp0U>zvyjnTL&e@LH(DSLrN=@ZB}utsr;JZ?CQUHD_QJ(Ok)JQWMX%=05z zrZ6$LX!0y+sX1)rz6v$%O$CFPwmj|ZsNZb873ea=$hBMkoLq88uT%nNB6Z-YE`gK3?*4T^r z?$Y593+83{@t%%RUL%~)Pvt!e6YB;61d+zDiP&~!hskH*t;>THICBw>Dq=PWyG|T% z4){E@Qu<;kSSHS@DYkCY?DC8$(R9Jj^miMAPigf7rnZHJt_G5UtfG>6q6B{fFY^mE zWgBH2US<@pdZFHYAS;$VyI6^uK$LuP!{$pz4(jHR&A#^oR2<`2+Wr4xY7M|X$x!ID zKw^gT_*wFYd)M-&L)!}RS5bm%;l8ZM{+@y8TnSH;%TPT;;{12_k6gqAA}QR}gD)Os z6+Y2?kE4$YLg>GV!%vayg33bKsNRx}6UV4Hj=kL&O2-JMk#Vw6ntpAW%FKeq3|fZ} z5WKHj+sPXq%0PcVZ_NyLyO&H3Ca2}zc)2lf*MwuuN)k;K9~!(F;SO>^Z=?J8Z&NO`KN%AG6Wxa<1iG#4fL8<^C)5XrXjxp&X@2x-<*1tArgF zE7x4LhWphopJ}vj29%g7MH=hoxWruehArFpUfSfG-#yNBWKi&SY?o)2UaqvXp-Pv> z4$6_&Je6?Y!NxYfCx>(Beoe*S_KTegy7JZo=coPE2kZZ#h0RIWKS0X@^V*c_t#zfa zf0duNJXVe9dGnew@cJUhsX~4+2kJC`s$wtMsypO{d?&d_^Afsujq;Gf3$b5_q8@#6 zidIN5f_9&#;9+@4V?Kxta~|Q5iaA?d>+ry-iKFXytz5l@TNcnKAGfsu$Ad!4U-~jqEs8E@;0L21yg}oA46-CF3F3Z zF|@|Y>%bS~Q-sejOA#$(<4l)d&2C@}82#EJ$1n0d3yTrFM;jX~{ zb}UoEWwJ0Bi8v&H!W+wP%}95T6RZ{cc%>&=U8uX!8;TL*-qo zRDcU+MS?-6SElq!Zm&)nx4kClBXJ}sO!trTOek&$x9OX|41Coj-&0ucBU7Ax!$^H) z=9Zcp?hK*BMG;`v=VpX=Qnzy7aAwuw$r4b^tjPhkYW)@XO(HM5G*3k>9KMGrCiUUl zZMiyDVr3XeGnw*OhWDQCBDzE0ych|6@m;_#4q1s6LiO_8bnSm=-P50gv3jhDDP5IP z*ngph(<~McjpbE8T{_!IzS3>vWE+ztPvLS**rsfF>!5%89~u%)_pUpbiWkL`_k43L z!@MQmW*grkmA%+%Jst9)l_G7e1K0Ey%^rwTETp^RdpBv=X{jRXg@W zy?is*hx%JE9(D`^h-F>-PP~nkKT}=%bL96=UzB8vWR=1=!(Fv_WaSP!lXhE*-;e#^ zp&GFo^O}6nk|HujEcuTYFSMS!cUXsU`5G)6=YIuUp}XFI1GJ>Ev}g4{63RIMCh!Ni z2Io>)DJM@|>b@)wD_+YRtMG%&=7Z3^SupaZ+~XboqAgpx>%iBNPWG&Zx}>T014FA3 z&5ecH8Ex{z{ryG?Ig9b-8Tw1D_~Xl&mKou@5aeiiK-$%GG}3*s5pL%I2+VF?NBi)* z{h{kZ!B*HY>ZH6?*mvb_!R_fChnHljgMR&CU^)La+08+6IiVLU^Ygr&G`S4iZaCn3QLs6;5Nv`0DNuSfG72(%GfO-*DEgX%h~~Uk z2}wipzGD5)gdz5s(pv_B%m6gWWiH#lrJokVZ9*AX2W3d77wEDP>8HC1T&-(1{R?LVX1>X{1G1;5=!DoQ9++FM67GXH9rNzG1I1;1&xjqGq0K zDDOsu;;$=eLIki}{Jb8S_wqfeZc{=6IOm1OyTznIj^E0C^6*_QjMKJhIZIw)TVYx- zPkpFMj7ggy8+ODBDy%@~8#xymFEA~_N7Q+8+L4*T5#c{#V@0yc1d0E-{*@AAXGo8E zHsk0aQ}@^7_I(r>lflrbk3(7Al%9LDK&^sy2;4r#%COTQ`zqxVc@VCiGXptuO9Sc? zn3MTDo2R;{txYa*nYu)cT;=qcrHsP+S8-pMKOmI4(S|n%I?K>3Qh)BefzCWJhVQ|EgtlD!}_ z%=lqvGJMVW$oQ}lF$7i~IF5-I-31x*S=W63@8}mj7uKZ(S1omRK^C4^DmiXxu>aGW z!EpMu>fwNvod@n^Mfu+Tpm4Iaf1kdS1bt->k9`}$c*gct;Ic^}ud~Bh4$;2CqP>Cg z_!1gQ7Gb`6TZPMy&L(g{Lt|;st{+|!G^$@G&$=Wv5*h|xMc>6JvS9rfAn%HuA%NTBYZbGOg<|U{p72f@u zI7VZDM43Ex?%7YXh=I6b1}+MWsB)I>)mskb830RDV4y`J{+LYIMi&huMnX(MF%@01 z(=3HS5#C=UV1(Lm68LZ+9^!OAy>3V#1FuE(PQuC=`;Lk7qWMMjaA=-w3pst<3Z2i= zsXgO%*Pr=5!;i*Tzy8AiDdPQ`S({?t0vbpke*Im2sQyPyWnSsJ^N4O)bmg{S2RYMt z5VAHS;jxH&`nOTUJ3f!d(0m#O>gJxFzWD7u0`?B^VqvJq?Sb>`{_;hVfQ-8S0_WgA z&ii*ZrnHs&W(B8V3ogGY6JHlM)w zpRdVgXbaBUq{fj6aCP4Kz~!MmK%h}@gmS8WdC2-)lce7y&cZR#oNP=g*@E)ppN1Mc z8ku$1jBuCXiCi!QB`&A%N1Jo;3uxnmVbBjxQsH!lbZ`}3ZtHxQ=9w{1G{{*0!atgt3bysj}N!1iyEfv+q zqMto`;%->p#5)`|-xem}qVpAu)LTZZuE+pq9MJHgCW3_NQ&IM;KG&QCOEPFzTs_58 z8nY?@(=$r+^^5J~R(q#s%6W>59$1mss_*pz1TxiYD-DUcLNM5MajszSGD7J~ zUsuvRK8qX$sbj@+#0S9i9ZJLaR#U$1QzOJdB# z9Jn_X@r;uOLqBkYt8QD(Y_Wj8>-oHvtZg7)BPGFaVb3ccxfNnTUHtDC&V*f^iB&?OoCsu1`)0FI8gfY>|rK$#Hn~Yz?R4TJ! zHHs6KnWcYDl%ZF6|7G&RGnI2RH@wm@ZHY>zZUwJZv>CHUfehaWDxG%{K z@Qh<*bT(C^{OCv(ob+Otpuc6)7e6K$x1NDq3rANGTa$k@L{C7zcWBBHwIwE&GBEtB zhK+*0i%X4?DNjY$*Ez^j25rwv`rF)tBHFQHkp7QU|Ieb+0b32*7Qe==6+=BRKKZ1% z*p5CA^w7Zz?-Gw_dKqHyL0Xhm>>FapDv*2Kt_vsPH%$`jdJ{HNC@eD6w;*UP0pgcR z4v;p=93IEhmNm;+vlKX?rDjEL#?s58>=sbb$xOX04hE{KOFst1%Cbm|5-slehgLSq zMwWa#Gt_Fr6=HbIQoP#5-q!a7JMif15uWiz#cg3eBxGWoMzOu^lEgN{GIE>Hd0<)F zlTR9wc5bp)CqQgUfj6U^FVFAH^K)*evc&I|X}l0&n?neuju zrUX&YHnFhIZ&}|zB=&T$z|0fn77i&uhQ5ywl~&4qr1?sFONW#gr@cCqzz8nvpnB;$ zr?oI=)XG*)wO-0+w9=AM@vU`kp_pF0Jia6^Rk3tNXQ8 Avw{-)6VI&x6#iQF-(( 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

    , @@ -76,7 +76,7 @@ export const HeaderPublicContentDesktop = ({ }} style="default" > - Faire un don  + Faire un don
    diff --git a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx index ebe09b698..c027f84c9 100644 --- a/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx +++ b/src/components/headers/HeaderPublic/HeaderPublicContent/HeaderPublicContent.mobile.tsx @@ -50,7 +50,7 @@ export const HeaderPublicContentMobile = ({ >
    -   Accueil +   Accueil
    @@ -107,7 +107,7 @@ export const HeaderPublicContentMobile = ({ href={{ pathname: '/candidats', query: { employed: false } }} style="primary" > - Découvrir les CV  + Découvrir les CV @@ -122,7 +122,7 @@ export const HeaderPublicContentMobile = ({ }} style="default" > - Faire un don  + Faire un don diff --git a/src/components/modals/Modal/Modal.js b/src/components/modals/Modal/Modal.js index 813733274..da81fedc1 100644 --- a/src/components/modals/Modal/Modal.js +++ b/src/components/modals/Modal/Modal.js @@ -18,6 +18,14 @@ const CustomModal = ({ children, closeOnNextRender, className, fullWidth }) => { { + // Fix to make modal scroll to top on open + if (document.getElementsByClassName('ReactModal__Overlay')?.[0]) { + document + .getElementsByClassName('ReactModal__Overlay')[0] + .scrollTo(0, 0); + } + }} style={{ overlay: { zIndex: 1050, diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx b/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx deleted file mode 100644 index 331b32aae..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/ModalOfferAdmin.tsx +++ /dev/null @@ -1,606 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import UIkit from 'uikit'; -import ArchiveIcon from 'assets/icons/archive.svg'; -import BoltIcon from 'assets/icons/bolt.svg'; -import CaretDownIcon from 'assets/icons/caret-down.svg'; -import CopyIcon from 'assets/icons/copy.svg'; -import EmailIcon from 'assets/icons/email.svg'; -import HomeIcon from 'assets/icons/home.svg'; -import LanguageIcon from 'assets/icons/language.svg'; -import LocationIcon from 'assets/icons/location.svg'; -import PencilIcon from 'assets/icons/pencil.svg'; -import PhoneIcon from 'assets/icons/phone.svg'; -import SearchIcon from 'assets/icons/search.svg'; -import StarIcon from 'assets/icons/star.svg'; -import UserIcon from 'assets/icons/user.svg'; - -import { Api } from 'src/api'; -import { ExternalOpportunityDto, OpportunityDto } from 'src/api/types'; -import { FormWithValidation } from 'src/components/forms/FormWithValidation'; -import { formEditExternalOpportunityAsAdmin } from 'src/components/forms/schemas/formEditExternalOpportunity'; -import { formEditOpportunity } from 'src/components/forms/schemas/formEditOpportunity'; -import { useModalContext } from 'src/components/modals/Modal'; -import { ModalOfferBase } from 'src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferBase'; -import { ModalOfferInfo } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo'; -import { List } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/NavList'; -import { OfferContent } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent'; -import { OfferInfoContainer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer'; -import { useModalOffer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer'; -import { Button, Grid, SimpleLink, ButtonIcon } from 'src/components/utils'; -import { - BUSINESS_LINES, - EXTERNAL_OFFERS_ORIGINS, - OFFER_STATUS, -} from 'src/constants'; -import { DEPARTMENTS_FILTERS } from 'src/constants/departements'; -import { - findConstantFromValue, - findOfferStatus, - formatParagraph, - mutateDefaultOfferStatus, - sortByOrder, -} from 'src/utils'; - -const getCandidatesToShowInInput = (offer) => { - if (offer.opportunityUsers && offer.opportunityUsers.length > 0) { - if (offer.isPublic) { - return offer.opportunityUsers - .filter((oppUser) => { - return oppUser.recommended; - }) - .map((oppUser) => { - return { - value: oppUser.user?.id, - label: `${oppUser.user?.firstName} ${oppUser.user?.lastName}`, - }; - }); - } - return offer.opportunityUsers.map((oppUser) => { - return { - value: oppUser.user?.id, - label: `${oppUser.user?.firstName} ${oppUser.user?.lastName}`, - }; - }); - } - return undefined; -}; - -export const ModalOfferAdmin = ({ - currentOffer, - onOfferUpdated, - duplicateOffer, - navigateBackToList, -}) => { - const { onClose } = useModalContext(); - const { loading, setLoading, isEditing, setIsEditing, offer, setOffer } = - useModalOffer(currentOffer); - - const sortedBusinessLines = - offer.businessLines && offer.businessLines.length > 0 - ? sortByOrder(offer.businessLines) - : null; - - const defaultBusinessLines = - sortedBusinessLines?.map((businessLineObject) => { - return findConstantFromValue(businessLineObject.name, BUSINESS_LINES); - }) || undefined; - - const updateOpportunity = async (opportunity: Partial) => { - setLoading(true); - try { - const { data } = await Api.putOpportunity(offer.id, opportunity); - setOffer({ - ...data, - opportunityUsers: data.opportunityUsers, - }); - await onOfferUpdated(); - setIsEditing(false); - } catch (err) { - UIkit.notification(`Une erreur est survenue.`, 'danger'); - } finally { - setLoading(false); - } - }; - - const updateExternalOpportunity = async ( - opportunity: Partial - ) => { - setLoading(true); - const { candidateId, ...restOpportunity } = opportunity; - try { - const { data } = await Api.putExternalOpportunity( - offer.id, - candidateId, - restOpportunity - ); - setOffer({ - ...data, - opportunityUsers: [data.opportunityUsers], - }); - await onOfferUpdated(); - setIsEditing(false); - } catch (err) { - UIkit.notification(`Une erreur est survenue.`, 'danger'); - } finally { - setLoading(false); - } - }; - - const updateOpportunityUser = async (opportunityUser) => { - try { - const { data } = await Api.putJoinOpportunity(opportunityUser); - setOffer((prevOffer) => { - return { - ...prevOffer, - opportunityUsers: Array.isArray(offer.opportunityUsers) - ? [ - ...offer.opportunityUsers.filter((oppUser) => { - return oppUser.UserId !== data.UserId; - }), - { - ...offer.opportunityUsers.find((oppUser) => { - return oppUser.UserId === data.UserId; - }), - ...data, - }, - ] - : data, - }; - }); - await onOfferUpdated(); - } catch (err) { - UIkit.notification(`Une erreur est survenue.`, 'danger'); - } - }; - - const getUsersToShow = () => { - if (Array.isArray(offer.opportunityUsers)) { - if (offer.isPublic) { - return offer.opportunityUsers.filter((oppUser) => { - return ( - oppUser.status !== OFFER_STATUS[0].value || oppUser.recommended - ); - }); - } - return offer.opportunityUsers; - } - return [offer.opportunityUsers]; - }; - - const isInternalContact = offer?.recruiterMail?.includes('entourage.social'); - - // Modal - return ( - -

    Modification de l'offre d'emploi

    - {offer.isExternal ? ( - { - setIsEditing(false); - }} - onSubmit={async (fields) => { - const tmpOpportunity = { - ...fields, - startOfContract: fields.startOfContract || null, - endOfContract: fields.endOfContract || null, - candidateId: offer.opportunityUsers[0]?.UserId, - department: fields.department.value, - businessLines: fields.businessLines - ? fields.businessLines.map((businessLine, index) => { - return { - name: businessLine.value, - order: index, - }; - }) - : [], - }; - await updateExternalOpportunity(tmpOpportunity); - }} - submitText="Mettre à jour" - /> - ) : ( - { - setIsEditing(false); - }} - onSubmit={async (fields) => { - const tmpOpportunity = { - ...fields, - message: fields.isPublic ? null : fields.message, - startOfContract: fields.startOfContract || null, - endOfContract: fields.endOfContract || null, - recruiterPhone: fields.recruiterPhone || null, - department: fields.department.value, - candidatesIds: - fields.candidatesIds?.map((candidateId) => { - return typeof candidateId === 'object' - ? candidateId.value - : candidateId; - }) || [], - businessLines: fields.businessLines - ? fields.businessLines.map((businessLine, index) => { - return { - name: businessLine.value, - order: index, - }; - }) - : [], - }; - await updateOpportunity(tmpOpportunity); - }} - submitText="Mettre à jour" - /> - )} -

    - } - > -
    - - -
    -
    - {(() => { - let className = ' uk-label-warning'; - let content = 'À valider'; - if (offer.isValidated) { - content = 'Publiée'; - className = ' uk-label-success'; - } - return
    {content}
    ; - })()} -
    - - } - tooltip="Modifier l'offre" - onClick={() => { - setIsEditing(true); - }} - /> - {!offer.isExternal && ( - } - tooltip="Dupliquer l'offre" - onClick={() => { - duplicateOffer(onClose); - }} - /> - )} - {(offer.isValidated || offer.isArchived || !offer.isExternal) && ( - - } - tooltip="Archiver l'offre" - onClick={async () => { - await updateOpportunity({ - isArchived: !offer.isArchived, - }); - }} - /> - )} - -
    -
    -
    - {offer.message && ( - <> - - }> -
    {formatParagraph(offer.message)}
    -
    -
    -
    - - )} - - - } title="Entreprise"> - {offer.company} - - {!offer.isExternal && ( - } - title={isInternalContact ? 'Personne à contacter' : 'Recruteur'} - > - {(offer.recruiterFirstName || offer.recruiterName) && ( - - {offer.recruiterFirstName - ? `${offer.recruiterFirstName} ` - : ''} - {offer.recruiterName ? offer.recruiterName : ''} - - )} - {offer.recruiterPosition && ( - - {offer.recruiterPosition} - - )} - {offer.recruiterMail && ( - - - {offer.recruiterMail} -   - - - - )} - {offer.recruiterPhone && ( - - - {offer.recruiterPhone} -   - - {' '} - - )} - - )} - {offer.contactMail && ( - } title="Mail de contact"> - - {offer.contactMail} - - - )} - } - title={offer.department} - > - {offer.address && {offer.address}} - - {offer.externalOrigin && ( - } - title="Origine de l'offre" - > -
    - { - EXTERNAL_OFFERS_ORIGINS.find((origin) => { - return offer.externalOrigin === origin.value; - })?.label - } -
    -
    - )} - {offer.opportunityUsers && ( - } - title={offer.isPublic ? 'Statut pour' : 'Candidat(s) lié(s)'} - > -
    - {getUsersToShow() - .sort((a, b) => { - return a.user.firstName.localeCompare(b.user.firstName); - }) - .map((oppUser) => { - if (oppUser.user) { - const offerStatus = findOfferStatus( - oppUser.status, - offer.isPublic, - oppUser.recommended - ); - - return ( -
    - - - {`${oppUser.user.firstName} ${oppUser.user.lastName}`} -   - -
    - {oppUser.bookmarked && ( - - )} - {oppUser.archived && ( - - )} - {offer.isPublic && oppUser.recommended && ( - - )} -
    -
    -
    - -
    - - {offerStatus.label} - - -
    -
    -
    - ); - } - return undefined; - })} -
    -
    - )} -
    - -
    - {!offer.isExternal && ( -
    - {(!offer.isArchived || offer.isValidated) && ( - - )} - {!offer.isValidated && ( - - )} -
    - )} -
    - - ); -}; -ModalOfferAdmin.propTypes = { - currentOffer: PropTypes.shape({ - id: PropTypes.string, - message: PropTypes.string, - title: PropTypes.string, - company: PropTypes.string, - description: PropTypes.string, - prerequisites: PropTypes.string, - otherInfo: PropTypes.string, - recruiterName: PropTypes.string, - isPublic: PropTypes.bool, - isArchived: PropTypes.bool, - isValidated: PropTypes.bool, - recruiterMail: PropTypes.string, - contactMail: PropTypes.string, - recruiterPhone: PropTypes.string, - businessLines: PropTypes.arrayOf(PropTypes.string), - date: PropTypes.string, - location: PropTypes.string, - department: PropTypes.string, - opportunityUsers: PropTypes.arrayOf( - PropTypes.shape({ - status: PropTypes.number, - bookmarked: PropTypes.bool, - recommended: PropTypes.bool, - note: PropTypes.string, - archived: PropTypes.bool, - User: PropTypes.shape({}), - }) - ), - companyDescription: PropTypes.string, - skills: PropTypes.string, - contract: PropTypes.string, - endOfContract: PropTypes.string, - startOfContract: PropTypes.string, - isPartTime: PropTypes.bool, - recruiterFirstName: PropTypes.string, - recruiterPosition: PropTypes.string, - numberOfPositions: PropTypes.number, - link: PropTypes.string, - externalOrigin: PropTypes.string, - isExternal: PropTypes.bool, - salary: PropTypes.string, - driversLicense: PropTypes.string, - workingHours: PropTypes.string, - }), - onOfferUpdated: PropTypes.func.isRequired, - duplicateOffer: PropTypes.func.isRequired, - navigateBackToList: PropTypes.func.isRequired, -}; - -ModalOfferAdmin.defaultProps = { - currentOffer: { opportunityUsers: {}, businessLines: [] }, -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/index.ts b/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/index.ts deleted file mode 100644 index 47a9bfc6b..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferAdmin/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './ModalOfferAdmin'; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferBase.js b/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferBase.js deleted file mode 100644 index cb3e97afc..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/ModalOfferBase.js +++ /dev/null @@ -1,57 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { LoadingScreen } from 'src/components/backoffice/LoadingScreen'; -import { ModalGeneric } from 'src/components/modals/Modal/ModalGeneric'; - -export const ModalOfferBase = ({ - isArchived, - isExternal, - children, - navigateBackToList, - editingForm, - loading, - isEditing, - setIsEditing, -}) => { - let className = ''; - if (isArchived) { - className += 'uk-light uk-background-secondary'; - } else if (isExternal) { - className += 'uk-background-muted'; - } - - return ( - { - if (isEditing) { - setIsEditing(false); - } else { - closeModal(); - navigateBackToList(); - } - }} - > - {loading && } - {!loading && (isEditing ? editingForm : children)} - - ); -}; - -ModalOfferBase.propTypes = { - isArchived: PropTypes.bool.isRequired, - isExternal: PropTypes.bool.isRequired, - children: PropTypes.oneOfType([ - PropTypes.element, - PropTypes.string, - PropTypes.arrayOf( - PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.bool]) - ), - ]).isRequired, - navigateBackToList: PropTypes.func.isRequired, - editingForm: PropTypes.element.isRequired, - loading: PropTypes.bool.isRequired, - isEditing: PropTypes.bool.isRequired, - setIsEditing: PropTypes.func.isRequired, -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js deleted file mode 100644 index e854a5a9e..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/ModalOfferInfo.js +++ /dev/null @@ -1,152 +0,0 @@ -import moment from 'moment'; -import PropTypes from 'prop-types'; -import React from 'react'; -import BoltIcon from 'assets/icons/bolt.svg'; -import CarIcon from 'assets/icons/car.svg'; -import CreditCardIcon from 'assets/icons/credit-card.svg'; -import LinkIcon from 'assets/icons/link.svg'; -import { ContractLabel } from 'src/components/backoffice/opportunities/OpportunitiesContainer/ContractLabel/ContractLabel'; -import { ButtonIcon } from 'src/components/utils'; -import { useCopyToClipboard } from 'src/hooks'; - -function translateCategory(isPublic, isRecommended, isExternal) { - if (!isPublic) { - if (isExternal) { - return 'Offre externe'; - } - return 'Offre privée'; - } - if (isPublic) { - return ( - <> - Offre générale - {isRecommended ? ( - <> - {' '} - recommandée  - - - ) : ( - '' - )} - - ); - } - return 'Offre inconnue'; -} - -export const ModalOfferInfo = ({ - offerId, - title, - isPublic, - isRecommended, - isExternal, - contract, - startOfContract, - endOfContract, - isPartTime, - date, - salary, - driversLicense, - workingHours, -}) => { - const { copyToClipboard, hasBeenCopied, setHasBeenCopied, fade } = - useCopyToClipboard(); - - return ( -
    -
    -

    - {title} -

    - } - onMouseLeave={() => { - return setHasBeenCopied(false); - }} - onClick={() => { - copyToClipboard( - `${process.env.SERVER_URL}/backoffice/candidat/offres/${offerId}` - ); - }} - /> - {hasBeenCopied && ( - - Lien copié ! - - )} -
    -
    -
    -
    - {translateCategory(isPublic, isRecommended, isExternal)} -
    - -
    - {isPartTime ? 'Temps partiel' : 'Temps plein'} -
    - {workingHours &&
    {workingHours}
    } -
    - {(salary || driversLicense) && ( -
    -
    -
    - {salary && ( -
    - - {salary} -
    - )} - - {driversLicense && ( -
    - - Permis requis -
    - )} -
    -
    - )} -
    -
    - offre soumise le {moment(date).format('DD/MM/YYYY')} -
    -
    - ); -}; - -ModalOfferInfo.propTypes = { - offerId: PropTypes.string.isRequired, - title: PropTypes.string.isRequired, - isPublic: PropTypes.bool.isRequired, - isRecommended: PropTypes.bool, - isExternal: PropTypes.bool, - date: PropTypes.string.isRequired, - contract: PropTypes.string, - endOfContract: PropTypes.string, - startOfContract: PropTypes.string, - isPartTime: PropTypes.bool.isRequired, - salary: PropTypes.string, - driversLicense: PropTypes.bool, - workingHours: PropTypes.string, -}; - -ModalOfferInfo.defaultProps = { - contract: undefined, - isRecommended: false, - isExternal: false, - endOfContract: undefined, - startOfContract: undefined, - salary: undefined, - driversLicense: undefined, - workingHours: undefined, -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/NavList.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/NavList.js deleted file mode 100644 index 5006c2aa8..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/NavList.js +++ /dev/null @@ -1,26 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -export const List = ({ className, children }) => { - return ( -
      - {Array.isArray(children) - ? children.map((item, i) => { - return
    • {item}
    • ; - }) - : children} -
    - ); -}; - -List.propTypes = { - className: PropTypes.string, - children: PropTypes.oneOfType([ - PropTypes.element, - PropTypes.arrayOf(PropTypes.element), - ]).isRequired, -}; - -List.defaultProps = { - className: undefined, -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js deleted file mode 100644 index f8179f20f..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferContent.js +++ /dev/null @@ -1,92 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import CheckIcon from 'assets/icons/check.svg'; -import LanguageIcon from 'assets/icons/language.svg'; -import LinkIcon from 'assets/icons/link.svg'; -import MoreIcon from 'assets/icons/more.svg'; -import { OfferInfoContainer } from 'src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer'; -import { Button, Grid, SimpleLink } from 'src/components/utils'; -import { BUSINESS_LINES } from 'src/constants'; -import { findConstantFromValue, formatParagraph } from 'src/utils'; - -export const OfferContent = ({ offer }) => { - return ( - - {offer.companyDescription && ( - } - title="Description de l'entreprise" - > -
    {formatParagraph(offer.companyDescription)}
    -
    - )} - } - title="Description de l'offre" - > -
    {formatParagraph(offer.description)}
    -
    - {offer.skills && ( - } - title="Compétences importantes" - > -
    {formatParagraph(offer.skills)}
    -
    - )} - {offer.prerequisites && ( - } title="Pré-requis"> -
    {formatParagraph(offer.prerequisites)}
    -
    - )} - {offer.otherInfo && ( - } title="Autres précisions"> -
    {formatParagraph(offer.otherInfo)}
    -
    - )} - {offer.link && ( - } title="Lien"> -
    - - {offer.link.trim()} - -
    -
    - )} - {offer.businessLines && ( - - {offer.businessLines.map(({ name }, index) => { - return ( - - ); - })} - - )} -
    - ); -}; - -OfferContent.propTypes = { - offer: PropTypes.shape({ - companyDescription: PropTypes.string, - description: PropTypes.string, - prerequisites: PropTypes.string, - otherInfo: PropTypes.string, - skills: PropTypes.string, - businessLines: PropTypes.arrayOf( - PropTypes.shape({ - name: PropTypes.string.isRequired, - }) - ).isRequired, - link: PropTypes.string, - }).isRequired, -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer.js b/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer.js deleted file mode 100644 index 57884cd85..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/partials/OfferInfoContainer.js +++ /dev/null @@ -1,41 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Grid } from 'src/components/utils'; - -export const OfferInfoContainer = ({ icon, title, children }) => { - if (!children) { - children = []; - } else if (!children.map) { - children = [children]; - } - - return ( - - {icon ||
    } -
    - {title ? {title} : undefined} - - {children} - -
    - - ); -}; - -OfferInfoContainer.propTypes = { - icon: PropTypes.element, - title: PropTypes.string, - children: PropTypes.oneOfType([ - PropTypes.element, - PropTypes.string, - PropTypes.arrayOf( - PropTypes.oneOfType([PropTypes.element, PropTypes.string]) - ), - ]), -}; - -OfferInfoContainer.defaultProps = { - title: undefined, - icon: undefined, - children: [], -}; diff --git a/src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer.ts b/src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer.ts deleted file mode 100644 index 0f97f9cb2..000000000 --- a/src/components/modals/Modal/ModalGeneric/OfferModals/useModalOffer.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { useEffect, useState } from 'react'; -import { OpportunityWithOpportunityUsers } from 'src/api/types'; - -export function useModalOffer(currentOffer: OpportunityWithOpportunityUsers) { - const [loading, setLoading] = useState(false); - const [isEditing, setIsEditing] = useState(false); - - const [offer, setOffer] = - useState(currentOffer); - - useEffect(() => { - setOffer(currentOffer); - }, [currentOffer]); - - useEffect(() => { - setIsEditing(false); - }, [offer]); - - return { - loading, - setLoading, - isEditing, - setIsEditing, - offer, - setOffer, - }; -} diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostAdminOpportunityModal.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostAdminOpportunityModal.tsx new file mode 100644 index 000000000..47e911153 --- /dev/null +++ b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostAdminOpportunityModal.tsx @@ -0,0 +1,109 @@ +import moment from 'moment'; +import React, { useCallback, useMemo, useState } from 'react'; +import UIkit from 'uikit'; + +import { Api } from 'src/api'; +import { ExtractFormSchemaValidation } from 'src/components/forms/FormSchema'; +import { formAddOpportunityAsAdmin } from 'src/components/forms/schemas/formAddOpportunity'; +import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; + +interface PostAdminOpportunityModalProps { + callback?: () => void; +} +export function PostAdminOpportunityModal({ + callback, +}: PostAdminOpportunityModalProps) { + const [lastFilledForm, setLastFilledForm] = useState< + ExtractFormSchemaValidation + >({} as ExtractFormSchemaValidation); + + const [shouldHide, setShouldHide] = useState(false); + + const postOpportunity = useCallback( + async ( + fields: ExtractFormSchemaValidation, + closeModal, + adminCallback + ) => { + const { openNewForm, department, address, ...opportunity } = fields; + + const candidatesIds = opportunity.candidatesIds + ? opportunity.candidatesIds.map((candidateId) => { + return candidateId.value; + }) + : []; + + const successMessage = 'Offre validée'; + + try { + await Api.postOpportunity({ + ...opportunity, + department: department.value, + startOfContract: fields.startOfContract, + endOfContract: fields.endOfContract, + candidatesIds, + message: opportunity.isPublic ? null : opportunity.message, + recruiterPhone: opportunity.recruiterPhone || null, + businessLines: fields.businessLines.map((businessLine, index) => { + return { + name: businessLine.value, + order: index, + }; + }), + date: moment().toISOString(), + }); + + UIkit.notification(successMessage, 'success'); + + if (adminCallback) await adminCallback(); + + if (openNewForm) { + setShouldHide(true); + + setLastFilledForm({ + ...fields, + candidatesIds: [], + }); + + setTimeout(() => { + setShouldHide(false); + }, 1000); + } else { + closeModal(); + + setLastFilledForm( + {} as ExtractFormSchemaValidation + ); + } + } catch (err) { + UIkit.notification(`Une erreur est survenue.`, 'danger'); + } + }, + [] + ); + + const modalProps = useMemo(() => { + return { + title: 'Ajouter une nouvelle offre', + submitText: 'Valider', + defaultValues: { + isPublic: true, + ...lastFilledForm, + shouldSendNotifications: true, + }, + formSchema: formAddOpportunityAsAdmin, + onSubmit: async (fields, closeModal) => { + await postOpportunity( + { + ...fields, + isAdmin: true, + }, + closeModal, + callback + ); + }, + }; + }, [callback, lastFilledForm, postOpportunity]); + + return !shouldHide && ; +} diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostOpportunityModal.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostOpportunityModal.tsx deleted file mode 100644 index d6de892eb..000000000 --- a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostOpportunityModal.tsx +++ /dev/null @@ -1,192 +0,0 @@ -import moment from 'moment'; -import React, { useCallback, useMemo, useState } from 'react'; -import { DefaultValues } from 'react-hook-form'; -import UIkit from 'uikit'; - -import { Api } from 'src/api'; -import { - ExtractFormSchemaValidation, - FormSchema, -} from 'src/components/forms/FormSchema'; -import { - formAddOpportunity, - formAddOpportunityAsAdmin, -} from 'src/components/forms/schemas/formAddOpportunity'; -import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; -import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; -import { fbEvent } from 'src/lib/fb'; -import { gaEvent } from 'src/lib/gtag'; -import { AnyCantFix } from 'src/utils/Types'; - -interface PostOpportunityModalProps> { - modalTitle: string; - modalDesc?: string | JSX.Element; - isAdmin?: boolean; - callback?: () => void; - formSchema: S; - defaultValues?: DefaultValues>; -} -export function PostOpportunityModal< - S extends typeof formAddOpportunity | typeof formAddOpportunityAsAdmin ->({ - modalTitle, - modalDesc, - isAdmin = false, - callback, - defaultValues, - formSchema, -}: PostOpportunityModalProps) { - const [lastFilledForm, setLastFilledForm] = useState< - ExtractFormSchemaValidation - >({} as ExtractFormSchemaValidation); - - const [shouldHide, setShouldHide] = useState(false); - - const postOpportunity = useCallback( - async ( - fields: ExtractFormSchemaValidation, - closeModal, - adminCallback - ) => { - const { openNewForm, department, address, ...opportunity } = fields; - const candidatesIds = opportunity.candidatesIds - ? opportunity.candidatesIds.map((candidateId) => { - return candidateId.value; - }) - : []; - - let successMessage = 'Offre validée'; - if (!isAdmin) { - if (opportunity.isPublic) { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_GENERALE_CLIC); - fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_SEND); - } else if (candidatesIds.length > 1) { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_MULTIPLE_CLIC); - fbEvent(FB_TAGS.COMPANY_CV_OFFER_SEND); - } else { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_UNIQUE_CLIC); - fbEvent(FB_TAGS.COMPANY_CV_OFFER_SEND); - } - successMessage = opportunity.isPublic - ? 'Merci pour votre offre, nous reviendrons bientôt vers vous.' - : `Merci pour votre offre, le(s) candidat(s) et coach(s) associés reviendront bientôt vers vous.`; - } - - const locations = - 'locations' in fields && fields.locations.length > 0 - ? { - locations: fields.locations.map( - ({ - department: locationDepartment, - address: locationAddress, - }) => { - return { - department: locationDepartment.value, - address: locationAddress, - }; - } - ), - } - : { department: department.value, address }; - - const startEndContract = - 'startOfContract' in fields && 'endOfContract' in fields - ? { - startOfContract: fields.startOfContract, - endOfContract: fields.endOfContract, - } - : {}; - try { - await Api.postOpportunity({ - ...opportunity, - ...locations, - ...startEndContract, - candidatesIds: - opportunity.isPublic && !isAdmin ? null : candidatesIds, - message: opportunity.isPublic ? null : opportunity.message, - recruiterPhone: opportunity.recruiterPhone || null, - ...('businessLines' in fields && - typeof fields.businessLines !== 'undefined' - ? { - businessLines: fields.businessLines.map( - (businessLine, index) => { - return { - name: businessLine.value, - order: index, - }; - } - ), - } - : {}), - date: moment().toISOString(), - }); - UIkit.notification(successMessage, 'success'); - if (adminCallback) await adminCallback(); - if (openNewForm) { - setShouldHide(true); - setLastFilledForm({ - ...fields, - candidatesIds: [], - }); - setTimeout(() => { - setShouldHide(false); - }, 1000); - } else { - closeModal(); - setLastFilledForm({} as ExtractFormSchemaValidation); - } - } catch (err) { - UIkit.notification(`Une erreur est survenue.`, 'danger'); - } - }, - [isAdmin] - ); - - const modalProps = useMemo(() => { - return { - title: modalTitle, - description: modalDesc, - submitText: isAdmin ? 'Valider' : 'Envoyer', - defaultValues: { - ...defaultValues, - ...lastFilledForm, - shouldSendNotifications: true, - }, - formSchema, - onError: (fields) => { - if (!isAdmin) { - if (fields.isPublic) { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_GENERALE_INVALIDE); - } else if (fields.candidatesIds?.length > 1) { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_MULTIPLE_INVALIDE); - } else { - gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_UNIQUE_INVALIDE); - } - } - }, - onSubmit: async (fields, closeModal) => { - await postOpportunity( - isAdmin - ? { - ...fields, - isAdmin: true, - } - : fields, - closeModal, - callback - ); - }, - }; - }, [ - callback, - defaultValues, - formSchema, - isAdmin, - lastFilledForm, - modalDesc, - modalTitle, - postOpportunity, - ]); - - return !shouldHide && ; -} diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPrivateOpportunityModal.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPrivateOpportunityModal.tsx new file mode 100644 index 000000000..b0f68eaf1 --- /dev/null +++ b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPrivateOpportunityModal.tsx @@ -0,0 +1,122 @@ +import moment from 'moment'; +import React, { useCallback, useMemo, useState } from 'react'; +import UIkit from 'uikit'; + +import { Api } from 'src/api'; +import { ExtractFormSchemaValidation } from 'src/components/forms/FormSchema'; +import { formAddPrivateOpportunity } from 'src/components/forms/schemas/formAddOpportunity'; +import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; +import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; +import { fbEvent } from 'src/lib/fb'; +import { gaEvent } from 'src/lib/gtag'; + +interface PostPrivateOpportunityModalProps { + candidateId: string; + candidateFirstName: string; + candidateLastName: string; +} + +export function PostPrivateOpportunityModal({ + candidateId, + candidateFirstName, + candidateLastName, +}: PostPrivateOpportunityModalProps) { + const [lastFilledForm, setLastFilledForm] = useState< + ExtractFormSchemaValidation + >({} as ExtractFormSchemaValidation); + + const [shouldHide, setShouldHide] = useState(false); + + const postOpportunity = useCallback( + async ( + fields: ExtractFormSchemaValidation, + closeModal + ) => { + const { openNewForm, department, address, ...opportunity } = fields; + + gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_UNIQUE_CLIC); + fbEvent(FB_TAGS.COMPANY_CV_OFFER_SEND); + + const successMessage = `Merci pour votre offre, le binôme reviendra bientôt vers vous.`; + + try { + await Api.postOpportunity({ + ...opportunity, + locations: fields.locations.map( + ({ department: locationDepartment, address: locationAddress }) => { + return { + department: locationDepartment.value, + address: locationAddress, + }; + } + ), + isPublic: false, + candidatesIds: [candidateId], + message: opportunity.message, + recruiterPhone: opportunity.recruiterPhone || null, + date: moment().toISOString(), + }); + + UIkit.notification(successMessage, 'success'); + + if (openNewForm) { + setShouldHide(true); + + setLastFilledForm({ + ...fields, + }); + + setTimeout(() => { + setShouldHide(false); + }, 1000); + } else { + closeModal(); + + setLastFilledForm( + {} as ExtractFormSchemaValidation + ); + } + } catch (err) { + UIkit.notification(`Une erreur est survenue.`, 'danger'); + } + }, + [candidateId] + ); + + const modalProps = useMemo(() => { + return { + title: `Proposer une opportunité à ${candidateFirstName} ${candidateLastName}`, + description: ( +
    + Contactez ici le candidat et son coach LinkedOut afin de solliciter un + échange. +
    +
    + Si vous souhaitez échanger avec le coach bénévole qui accompagne le + candidat dans sa recherche d'emploi, précisez-le dans votre + message. +
    +
    + + LinkedOut est susceptible de transmettre cette opportunité à + d'autres candidats dont le profil correspond à votre besoin. + +
    + ), + formSchema: formAddPrivateOpportunity, + submitText: 'Envoyer', + defaultValues: { + ...lastFilledForm, + shouldSendNotifications: true, + }, + onError: () => { + gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_UNIQUE_INVALIDE); + }, + onSubmit: async (fields, closeModal) => { + await postOpportunity(fields, closeModal); + }, + }; + }, [candidateFirstName, candidateLastName, lastFilledForm, postOpportunity]); + + return !shouldHide && ; +} diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOfferModal.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOfferModal.tsx deleted file mode 100644 index b24ac5638..000000000 --- a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOfferModal.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { formAddOpportunity } from 'src/components/forms/schemas/formAddOpportunity'; -import { PostOpportunityModal } from './PostOpportunityModal'; - -export const PostPublicOfferModal = () => { - const postPublicOfferModalProps = { - defaultValues: { - isPublic: true, - }, - modalTitle: 'Proposer une opportunité', - modalDesc: - 'Cet espace est dédié aux potentiels recruteurs qui souhaitent proposer une opportunité visible par tous les candidats.', - formSchema: formAddOpportunity, - }; - - return ; -}; diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOpportunityModal.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOpportunityModal.tsx new file mode 100644 index 000000000..aa7aefaa5 --- /dev/null +++ b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPublicOpportunityModal.tsx @@ -0,0 +1,99 @@ +import moment from 'moment'; +import React, { useCallback, useMemo, useState } from 'react'; +import UIkit from 'uikit'; + +import { Api } from 'src/api'; +import { ExtractFormSchemaValidation } from 'src/components/forms/FormSchema'; +import { formAddPublicOpportunity } from 'src/components/forms/schemas/formAddOpportunity'; +import { ModalEdit } from 'src/components/modals/Modal/ModalGeneric/ModalEdit'; +import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; +import { fbEvent } from 'src/lib/fb'; +import { gaEvent } from 'src/lib/gtag'; + +export function PostPublicOpportunityModal() { + const [lastFilledForm, setLastFilledForm] = useState< + ExtractFormSchemaValidation + >({} as ExtractFormSchemaValidation); + + const [shouldHide, setShouldHide] = useState(false); + + const postOpportunity = useCallback( + async ( + fields: ExtractFormSchemaValidation, + closeModal + ) => { + const { openNewForm, department, address, ...opportunity } = fields; + + gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_GENERALE_CLIC); + fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_SEND); + + const successMessage = + 'Merci pour votre offre, nous reviendrons bientôt vers vous.'; + + try { + await Api.postOpportunity({ + ...opportunity, + locations: fields.locations.map( + ({ department: locationDepartment, address: locationAddress }) => { + return { + department: locationDepartment.value, + address: locationAddress, + }; + } + ), + candidatesIds: null, + message: null, + isPublic: true, + shouldSendNotifications: true, + recruiterPhone: opportunity.recruiterPhone || null, + date: moment().toISOString(), + }); + + UIkit.notification(successMessage, 'success'); + + if (openNewForm) { + setShouldHide(true); + + setLastFilledForm({ + ...fields, + }); + + setTimeout(() => { + setShouldHide(false); + }, 1000); + } else { + closeModal(); + + setLastFilledForm( + {} as ExtractFormSchemaValidation + ); + } + } catch (err) { + UIkit.notification(`Une erreur est survenue.`, 'danger'); + } + }, + [] + ); + + const modalProps = useMemo(() => { + return { + title: 'Proposer une opportunité', + description: + 'LinkedOut transmettra cette opportunité aux candidats dont le profil correspond à votre besoin.', + formSchema: formAddPublicOpportunity, + submitText: 'Envoyer', + defaultValues: { + ...lastFilledForm, + shouldSendNotifications: true, + }, + onError: () => { + gaEvent(GA_TAGS.POPUP_OFFRE_ENVOYER_OFFRE_GENERALE_INVALIDE); + }, + onSubmit: async (fields, closeModal) => { + await postOpportunity(fields, closeModal); + }, + }; + }, [lastFilledForm, postOpportunity]); + + return !shouldHide && ; +} diff --git a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/index.tsx b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/index.tsx index 9eceab877..75728f927 100644 --- a/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/index.tsx +++ b/src/components/modals/Modal/ModalGeneric/PostOpportunityModal/index.tsx @@ -1,2 +1,2 @@ -export * from './PostOpportunityModal'; -export * from './PostPublicOfferModal'; +export * from './PostAdminOpportunityModal'; +export * from './PostPublicOpportunityModal'; diff --git a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx index 7d01588a4..faa3ab14d 100644 --- a/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx +++ b/src/components/modals/Modal/ModalGeneric/StepperModal/ModalShareCV/ModalShareCV.tsx @@ -77,7 +77,7 @@ export const ModalShareCV = ({ firstName }: ModalShareCVProps) => { href={EXTERNAL_LINKS.ENTOURAGE} style="primary" > - En savoir plus  + En savoir plus
    diff --git a/src/components/modals/PopupModal/SailInfoModal.tsx b/src/components/modals/PopupModal/SailInfoModal.tsx index d4eeeb145..7c3784022 100644 --- a/src/components/modals/PopupModal/SailInfoModal.tsx +++ b/src/components/modals/PopupModal/SailInfoModal.tsx @@ -23,7 +23,7 @@ export const SailInfoModal = () => { style="secondary" className="uk-margin-medium-top" > - Lire l'histoire  + Lire l'histoire diff --git a/src/components/partials/Aider/CoachContainer/CoachContainer.tsx b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx index a2eacfa9b..b05062752 100644 --- a/src/components/partials/Aider/CoachContainer/CoachContainer.tsx +++ b/src/components/partials/Aider/CoachContainer/CoachContainer.tsx @@ -90,7 +90,7 @@ export const CoachContainer = () => { }} style="primary" > - Devenir Coach LinkedOut  + Devenir Coach LinkedOut
    diff --git a/src/components/partials/Aider/H2/H2.tsx b/src/components/partials/Aider/H2/H2.tsx index 7dba9ae54..23eafd749 100644 --- a/src/components/partials/Aider/H2/H2.tsx +++ b/src/components/partials/Aider/H2/H2.tsx @@ -1,9 +1,20 @@ -import PropTypes from 'prop-types'; import React from 'react'; import DoubleCarresIcon from 'assets/icons/double-carres.svg'; import { StyledTitleSection } from 'src/components/partials/Aider/H2/H2.styles'; -export const TitleSection = ({ title, titleColor, svgStroke, svgColor }) => { +interface TitleSectionProps { + title: string; + titleColor: string; + svgStroke?: string; + svgColor: string; +} + +export const TitleSection = ({ + title, + titleColor, + svgStroke = 'white', + svgColor, +}: TitleSectionProps) => { return ( { ); }; - -TitleSection.propTypes = { - title: PropTypes.string.isRequired, - titleColor: PropTypes.string.isRequired, - svgStroke: PropTypes.string, - svgColor: PropTypes.string.isRequired, -}; - -TitleSection.defaultProps = { - svgStroke: 'white', -}; diff --git a/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx index e5abf69da..122f340e3 100644 --- a/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx +++ b/src/components/partials/Aider/HelpCards/HelpCard/HelpCard.tsx @@ -33,7 +33,7 @@ export const HelpCard = ({ cardContent, keyMap }) => { if (fbTag) fbEvent(fbTag); }} > - {cta}  + {cta}
    diff --git a/src/components/partials/AssociationEntourage.tsx b/src/components/partials/AssociationEntourage.tsx index bc5dbdb39..241eb99e5 100644 --- a/src/components/partials/AssociationEntourage.tsx +++ b/src/components/partials/AssociationEntourage.tsx @@ -43,7 +43,7 @@ export const AssociationEntourage = () => { }} newTab > - Voir le site  + Voir le site
    diff --git a/src/components/partials/CV/CVCallToActions/CVCallToActions.tsx b/src/components/partials/CV/CVCallToActions/CVCallToActions.tsx index 8e24fd43d..522f88155 100644 --- a/src/components/partials/CV/CVCallToActions/CVCallToActions.tsx +++ b/src/components/partials/CV/CVCallToActions/CVCallToActions.tsx @@ -1,8 +1,7 @@ -import React, { useMemo } from 'react'; +import React from 'react'; import { CV } from 'src/api/types'; -import { formAddOpportunity } from 'src/components/forms/schemas/formAddOpportunity'; import { openModal } from 'src/components/modals/Modal'; -import { PostOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; +import { PostPrivateOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal/PostPrivateOpportunityModal'; import { Button } from 'src/components/utils'; import { H3, H5 } from 'src/components/utils/Headings'; import { COLORS } from 'src/constants/styles'; @@ -30,45 +29,10 @@ export const CVCallToActions = ({ }: CVCallToActionsProps) => { const isDesktop = useIsDesktop(); - const opportunityModalProps = useMemo(() => { - return { - modalTitle: 'Proposer une opportunité à un candidat', - modalDesc: ( -
    - Contactez ici le candidat et son coach LinkedOut afin de solliciter un - échange. -
    -
    - Si vous souhaitez échanger avec le coach bénévole qui accompagne le - candidat dans sa recherche d'emploi, précisez-le dans votre - message. -
    -
    - - LinkedOut est susceptible de transmettre cette opportunité à - d'autres candidats dont le profil correspond à votre besoin. - -
    - ), - defaultValues: { - candidatesIds: [ - { - label: `${cv.user.candidat.firstName} ${cv.user.candidat.lastName}`, - value: cv.UserId, - }, - ], - isPublic: false, - }, - formSchema: formAddOpportunity, - }; - }, [cv]); - return (

    @@ -95,7 +59,13 @@ export const CVCallToActions = ({ onClick={() => { gaEvent(GA_TAGS.PAGE_CV_PROPOSER_OFFRE_CLIC); fbEvent(FB_TAGS.COMPANY_CV_OFFER_OPEN); - openModal(); + openModal( + + ); }} > Proposer une offre diff --git a/src/components/partials/CV/CVList/CVList.tsx b/src/components/partials/CV/CVList/CVList.tsx index e2afd3c4e..b1893a65a 100644 --- a/src/components/partials/CV/CVList/CVList.tsx +++ b/src/components/partials/CV/CVList/CVList.tsx @@ -7,7 +7,7 @@ import { LoadingScreen } from 'src/components/backoffice/LoadingScreen'; import { CandidatCard } from 'src/components/cards'; import { SearchBar } from 'src/components/filters/SearchBar'; import { openModal } from 'src/components/modals/Modal'; -import { PostPublicOfferModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; +import { PostPublicOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; import { Button, Grid, SimpleLink } from 'src/components/utils'; import { CV_FILTERS_DATA, INITIAL_NB_OF_CV_TO_DISPLAY } from 'src/constants'; import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; @@ -46,10 +46,10 @@ interface CVListProps { } export const CVList = ({ - hideSearchBar, + hideSearchBar = false, nb, search, - filters, + filters = {}, setFilters, setSearch, resetFilters, @@ -127,7 +127,7 @@ export const CVList = ({ const renderCvList = useCallback( (items) => { return ( -
    +
    { - gaEvent(GA_TAGS.PAGE_ENTREPRISES_PROPOSER_OFFRE_CLIC); + gaEvent(GA_TAGS.PAGE_GALERIE_CV_PROPOSER_OFFRE_CLIC); fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_OPEN); - openModal(); + openModal(); }} > Publier une offre d’emploi @@ -255,13 +255,3 @@ export const CVList = ({
    ); }; - -CVList.defaultProps = { - nb: undefined, - search: undefined, - filters: {}, - hideSearchBar: false, - setFilters: null, - setSearch: null, - resetFilters: null, -}; diff --git a/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx b/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx index a53793e6d..38db5a07a 100644 --- a/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx +++ b/src/components/partials/CV/PageCVContent/PageCVContent.styles.tsx @@ -11,18 +11,7 @@ export const StyledCVPageContent = styled.div` color: #484848; font-size: 14px; > a { - margin: 26px auto 0; - color: black; - font-size: 14px; - line-height: 16px; - width: 100%; - display: flex; - max-width: 1320px; - padding: 0 10px; - - :hover { - color: ${COLORS.primaryOrange}; - } + margin: 26px 26px 0 26px; } p { color: ${COLORS.darkGrayFont}; diff --git a/src/components/partials/CandidatListPartial.tsx b/src/components/partials/CandidatListPartial.tsx index 557f1b437..7f47525a3 100644 --- a/src/components/partials/CandidatListPartial.tsx +++ b/src/components/partials/CandidatListPartial.tsx @@ -128,7 +128,6 @@ export const CandidatListPartial = () => { {process.env.WOMENS_DAY === 'true' ? 'Voir toutes les candidates' : 'Voir tous les candidats'} -   diff --git a/src/components/partials/Chapter.tsx b/src/components/partials/Chapter.tsx index 03ceb5039..b5b76429e 100644 --- a/src/components/partials/Chapter.tsx +++ b/src/components/partials/Chapter.tsx @@ -45,23 +45,19 @@ export const Chapter = ({ animate ? `cls:uk-animation-slide-${ direction === 'left' ? 'right' : 'left' - }; delay: 200;` + }; delay: 200; target: > .animate;` : '' } > {smallTitle && ( -

    +

    {title}

    )} -

    +

    {content}

    - {cta && ( -
    - {cta} -
    - )} + {cta &&
    {cta}
    }
    {imgSrc && (
    - Voir tous les candidats  + Voir tous les candidats
    diff --git a/src/components/partials/Footer/Footer.tsx b/src/components/partials/Footer/Footer.tsx index 9c43e820c..5a77d27c7 100644 --- a/src/components/partials/Footer/Footer.tsx +++ b/src/components/partials/Footer/Footer.tsx @@ -208,7 +208,7 @@ const pages: PageType[] = [ style="primary" className="uk-margin-medium-top" > - Espace coach & candidat  + Espace coach & candidat ), diff --git a/src/components/partials/ImageTitleNew/ImageTitle.styles.ts b/src/components/partials/ImageTitle/ImageTitle.styles.ts similarity index 57% rename from src/components/partials/ImageTitleNew/ImageTitle.styles.ts rename to src/components/partials/ImageTitle/ImageTitle.styles.ts index ffb6eb5fb..af81a3772 100644 --- a/src/components/partials/ImageTitleNew/ImageTitle.styles.ts +++ b/src/components/partials/ImageTitle/ImageTitle.styles.ts @@ -5,6 +5,13 @@ export const StyledImageTitle = styled.section` color: white; box-sizing: border-box; padding: 20px 20% 20px 0; + margin: 0 20px; + + flex: 1; + display: flex; + flex-direction: column; + align-items: flex-start; + h1 { margin: 0; font-size: 24px; @@ -15,7 +22,9 @@ export const StyledImageTitle = styled.section` font-size: 14px; line-height: 20px; padding-right: 40px; - margin-top: 16px; + flex: 1; + display: flex; + align-items: center; } &.desktop { padding: 40px 55% 40px 40px; @@ -23,9 +32,20 @@ export const StyledImageTitle = styled.section` font-size: 32px; } p { - margin-top: 32px; font-size: 20px; line-height: 30px; } } `; + +export const StyledImageTitleCTAsContainer = styled.div` + display: flex; + align-items: center; + flex-wrap: wrap; + button:first-child { + margin-right: 8px; + } + button { + margin-top: 4px; + } +`; diff --git a/src/components/partials/ImageTitle/ImageTitle.tsx b/src/components/partials/ImageTitle/ImageTitle.tsx new file mode 100644 index 000000000..dae64d952 --- /dev/null +++ b/src/components/partials/ImageTitle/ImageTitle.tsx @@ -0,0 +1,85 @@ +import React from 'react'; +import { + StyledImageTitle, + StyledImageTitleCTAsContainer, +} from 'src/components/partials/ImageTitle/ImageTitle.styles'; +import { Button, BackgroundImage } from 'src/components/utils'; +import { H1 } from 'src/components/utils/Headings'; +import { UIKIT_BUTTON_STYLES_SPEC } from 'src/components/variables'; +import { useIsDesktop } from 'src/hooks/utils'; + +interface CTAProps { + onClick: () => void; + label: string; + href?: string; + style: UIKIT_BUTTON_STYLES_SPEC; + isExternal?: boolean; + newTab?: boolean; + dataTest: string; +} + +interface ImageTitleProps { + title: string; + description: string; + img: string; + imgMobile?: string; + alt?: string; + cta?: CTAProps | CTAProps[]; +} + +export const ImageTitle = ({ + title, + description, + img, + imgMobile, + alt, + cta, +}: ImageTitleProps) => { + const isDesktop = useIsDesktop(); + + return ( + + +

    +

    + {description} +

    + {cta && !Array.isArray(cta) && ( + + )} + {cta && Array.isArray(cta) && cta.length > 0 && ( + + {cta.map(({ label, style, dataTest, onClick }, index) => { + return ( + + ); + })} + + )} + + + ); +}; diff --git a/src/components/partials/ImageTitle/ImageTitleComponent.js b/src/components/partials/ImageTitle/ImageTitleComponent.js deleted file mode 100644 index 0c9be5770..000000000 --- a/src/components/partials/ImageTitle/ImageTitleComponent.js +++ /dev/null @@ -1,75 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import ChevronRightIcon from 'assets/icons/chevron-right.svg'; -import { Button } from 'src/components/utils'; -import { addPrefix } from 'src/utils'; - -export const ImageTitleContent = ({ title, text, img, cta }) => { - return ( - <> -
    -
    -

    {title}

    - {text && ( -

    - {text} -

    - )} - {cta && ( -
    - {cta && ( -
    - -
    - )} -
    - )} -
    - - ); -}; - -ImageTitleContent.propTypes = { - title: PropTypes.element.isRequired, - text: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), - img: PropTypes.string.isRequired, - cta: PropTypes.shape({ - onClick: PropTypes.func, - label: PropTypes.string, - href: PropTypes.string, - className: PropTypes.string, - isExternal: PropTypes.bool, - newTab: PropTypes.bool, - dataTest: PropTypes.string, - }), -}; - -ImageTitleContent.defaultProps = { - text: undefined, - cta: undefined, -}; diff --git a/src/components/partials/ImageTitle/ImageTitleContainer.js b/src/components/partials/ImageTitle/ImageTitleContainer.js deleted file mode 100644 index 1a3c3d593..000000000 --- a/src/components/partials/ImageTitle/ImageTitleContainer.js +++ /dev/null @@ -1,55 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { ImageTitleContent } from './ImageTitleComponent'; - -export const ImageTitle = ({ id, title, text, img, cta }) => { - const viewportMobileHeightWithoutHeader = 'calc(100vh - 80px)'; - const viewportHeightWithoutHeader = 'calc(75vh - 80px)'; - - return ( -
    -
    - -
    -
    - -
    -
    - ); -}; - -ImageTitle.propTypes = { - id: PropTypes.string.isRequired, - title: PropTypes.element.isRequired, - text: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), - img: PropTypes.string.isRequired, - cta: PropTypes.shape({ - onClick: PropTypes.func, - label: PropTypes.string, - href: PropTypes.string, - className: PropTypes.string, - isExternal: PropTypes.bool, - newTab: PropTypes.bool, - dataTest: PropTypes.string, - }), -}; - -ImageTitle.defaultProps = { - text: undefined, - cta: undefined, -}; diff --git a/src/components/partials/ImageTitle/index.js b/src/components/partials/ImageTitle/index.js deleted file mode 100644 index a2eb455d5..000000000 --- a/src/components/partials/ImageTitle/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './ImageTitleContainer'; diff --git a/src/components/partials/ImageTitleNew/index.ts b/src/components/partials/ImageTitle/index.ts similarity index 100% rename from src/components/partials/ImageTitleNew/index.ts rename to src/components/partials/ImageTitle/index.ts diff --git a/src/components/partials/ImageTitleNew/ImageTitle.tsx b/src/components/partials/ImageTitleNew/ImageTitle.tsx deleted file mode 100644 index c709c1b8d..000000000 --- a/src/components/partials/ImageTitleNew/ImageTitle.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import React from 'react'; -import { StyledImageTitle } from 'src/components/partials/ImageTitleNew/ImageTitle.styles'; -import { Container, Button, BackgroundImage } from 'src/components/utils'; -import { H1 } from 'src/components/utils/Headings'; -import { UIKIT_BUTTON_STYLES_SPEC } from 'src/components/variables'; -import { useIsDesktop } from 'src/hooks/utils'; - -interface CTAProps { - onClick: () => void; - label: string; - href?: string; - className: UIKIT_BUTTON_STYLES_SPEC; - isExternal?: boolean; - newTab?: boolean; - dataTest: string; -} - -interface ImageTitleProps { - title: string; - description: string; - img: string; - imgMobile?: string; - alt?: string; - cta?: CTAProps | CTAProps[]; -} -export const ImageTitle = ({ - title, - description, - img, - imgMobile, - alt, - cta, -}: ImageTitleProps) => { - const isDesktop = useIsDesktop(); - - return ( - - - -

    -

    - {description} -

    - {cta && !Array.isArray(cta) && ( - - )} - {cta && - Array.isArray(cta) && - cta.length > 0 && - cta.map(({ label, className, dataTest, onClick }, index) => { - return ( - - ); - })} - - - - ); -}; - -ImageTitle.defaultProps = { - alt: '', - cta: null, - imgMobile: undefined, -}; diff --git a/src/components/partials/MultipleCTA.tsx b/src/components/partials/MultipleCTA.tsx index e25d8126f..32a926977 100644 --- a/src/components/partials/MultipleCTA.tsx +++ b/src/components/partials/MultipleCTA.tsx @@ -123,7 +123,6 @@ export const MultipleCTA = ({ size={item.button.size} > {item.button.label} -  

    diff --git a/src/components/partials/Partners.tsx b/src/components/partials/Partners.tsx index 7a6e4b724..27b50213c 100644 --- a/src/components/partials/Partners.tsx +++ b/src/components/partials/Partners.tsx @@ -54,7 +54,7 @@ export const Partners = ({
    diff --git a/src/components/partials/SearchCandidates.tsx b/src/components/partials/SearchCandidates.tsx index a00e80d77..ac7739e7b 100644 --- a/src/components/partials/SearchCandidates.tsx +++ b/src/components/partials/SearchCandidates.tsx @@ -1,8 +1,13 @@ import React from 'react'; -import { Grid, Section } from 'src/components/utils'; +import { openModal } from 'src/components/modals/Modal'; +import { PostPublicOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; +import { Button, Grid, Section } from 'src/components/utils'; import { UIKIT_STYLES } from 'src/components/variables'; import { CV_FILTERS_DATA } from 'src/constants'; +import { FB_TAGS, GA_TAGS } from 'src/constants/tags'; import { useFilters } from 'src/hooks/useFilters'; +import { fbEvent } from 'src/lib/fb'; +import { gaEvent } from 'src/lib/gtag'; import { CVList } from './CV/CVList'; const cvFiltersWithoutGender = CV_FILTERS_DATA.slice(0, -1); @@ -27,10 +32,25 @@ export const SearchCandidates = ({ style }: { style?: UIKIT_STYLES }) => { Découvrez les candidats

    - Découvrez ci-dessous les CV des candidats LinkedOut disponibles, et - envoyez votre offre au profil qui correspond à vos besoins de - recrutement. + Découvrez ci-dessous les CV des candidats LinkedOut. Vous pouvez + leur donner un coup de pouce en partageant leur CV, leur transmettre + des opportunités, ou leur proposer des offres d'emploi.
    +

    + +

    - {button.label}  + {button.label} )} diff --git a/src/components/utils/BackLink/BackLink.tsx b/src/components/utils/BackLink/BackLink.tsx index 08683a453..83e234776 100644 --- a/src/components/utils/BackLink/BackLink.tsx +++ b/src/components/utils/BackLink/BackLink.tsx @@ -17,7 +17,7 @@ export function BackLink({ label, url }: BackLinkProps) { -  {label} + {label} ); diff --git a/src/components/utils/BackgroundImage/BackgroundImage.styles.tsx b/src/components/utils/BackgroundImage/BackgroundImage.styles.tsx index 955892231..e64365d54 100644 --- a/src/components/utils/BackgroundImage/BackgroundImage.styles.tsx +++ b/src/components/utils/BackgroundImage/BackgroundImage.styles.tsx @@ -30,6 +30,8 @@ export const StyledBackground = styled.section` z-index: 0; top: 0; left: 0; + right: 0; + bottom: 0; height: 360px; max-height: 360px; overflow: hidden; @@ -40,8 +42,11 @@ export const StyledBackground = styled.section` position: absolute; top: 0; left: 0; + right: 0; + bottom: 0; z-index: 100; width: 100%; + display: flex; } &.mobile-banner-container { height: ${(props) => { @@ -50,14 +55,6 @@ export const StyledBackground = styled.section` max-height: ${(props) => { return props.mobileHeight ? `${props.mobileHeight}px` : '199px'; }}; - &.hasCta { - max-height: 300px; - height: 300px; - .banner { - height: 300px; - max-height: 300px; - } - } .banner { height: ${(props) => { return props.mobileHeight ? `${props.mobileHeight}px` : '199px'; diff --git a/src/components/utils/BackgroundImage/BackgroundImage.tsx b/src/components/utils/BackgroundImage/BackgroundImage.tsx index 7157d4e0e..8f4b06d37 100644 --- a/src/components/utils/BackgroundImage/BackgroundImage.tsx +++ b/src/components/utils/BackgroundImage/BackgroundImage.tsx @@ -43,9 +43,3 @@ export const BackgroundImage = ({ ); }; - -BackgroundImage.defaultProps = { - mobileHeight: undefined, - isHero: false, - hasCta: false, -}; diff --git a/src/components/utils/Button/Button.styles.ts b/src/components/utils/Button/Button.styles.ts index 0e3450eea..84d63f6a2 100644 --- a/src/components/utils/Button/Button.styles.ts +++ b/src/components/utils/Button/Button.styles.ts @@ -21,6 +21,13 @@ export const StyledButton = styled.button` justify-content: center; padding: 11px 20px !important; + svg:first-child { + margin-right: 8px; + } + svg:last-child { + margin-left: 8px; + } + &:hover { transition: 0.2s ease-in-out; } diff --git a/src/components/utils/Button/Button.tsx b/src/components/utils/Button/Button.tsx index cf885ab0c..68191add7 100644 --- a/src/components/utils/Button/Button.tsx +++ b/src/components/utils/Button/Button.tsx @@ -79,7 +79,15 @@ export function Button({ data-testid={dataTestId} color={color} > - {children} + {/* Hack to wrap text node in span to be able to add margin to Icon components */} + {Array.isArray(children) + ? children.map((child, index) => { + if (typeof child === 'string') { + return {child}; + } + return child; + }) + : children} ); if (href) { diff --git a/src/constants/tags.ts b/src/constants/tags.ts index b862515f8..9b4aa729f 100644 --- a/src/constants/tags.ts +++ b/src/constants/tags.ts @@ -41,6 +41,9 @@ export const GA_TAGS = { PAGE_GALERIE_CV_CLIC: { action: 'Page_Galerie_CV_Clic', }, + PAGE_GALERIE_CV_PROPOSER_OFFRE_CLIC: { + action: 'Page_Galerie_CV_Proposer_Offre_Clic', + }, PAGE_GALERIE_PARTAGE_CV_LINKEDIN_CLIC: { action: 'Page_Galerie_Partage_CV_LinkedIn_Clic', }, diff --git a/src/pages/404.js b/src/pages/404.js index b6f693640..8a3e54864 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -38,7 +38,7 @@ const Custom404 = () => { style="secondary" className="uk-margin-large-top" > - Voir tous les candidats  + Voir tous les candidats diff --git a/src/pages/aider.tsx b/src/pages/aider.tsx index 798799b33..9251b29c6 100644 --- a/src/pages/aider.tsx +++ b/src/pages/aider.tsx @@ -5,7 +5,7 @@ import { NewsletterPartial, SharePartial } from 'src/components/partials'; import { CoachContainer } from 'src/components/partials/Aider/CoachContainer/CoachContainer'; import { HelpCards } from 'src/components/partials/Aider/HelpCards/HelpCards'; import { InfoContainer } from 'src/components/partials/Aider/InfoContainer/InfoContainer'; -import { ImageTitle } from 'src/components/partials/ImageTitleNew'; +import { ImageTitle } from 'src/components/partials/ImageTitle'; import { Grid, Section } from 'src/components/utils'; import { GA_TAGS } from 'src/constants/tags'; diff --git a/src/pages/cv/[url].tsx b/src/pages/cv/[url].tsx index 30b25d25b..aca4346d6 100644 --- a/src/pages/cv/[url].tsx +++ b/src/pages/cv/[url].tsx @@ -77,7 +77,7 @@ const CVPage = ({ cv, exists = false, router }: CVPageProps) => { style="secondary" className="uk-margin-large-top" > - Voir tous les candidats  + Voir tous les candidats diff --git a/src/pages/entreprises/index.tsx b/src/pages/entreprises/index.tsx index 7e17024b0..1b5a2da2e 100644 --- a/src/pages/entreprises/index.tsx +++ b/src/pages/entreprises/index.tsx @@ -1,10 +1,9 @@ import React from 'react'; -import ChevronRightIcon from 'assets/icons/chevron-right.svg'; import { Api } from 'src/api'; import { Layout } from 'src/components/Layout'; import { openModal } from 'src/components/modals/Modal'; import { CompanyContactModal } from 'src/components/modals/Modal/ModalGeneric/CompanyContactModal'; -import { PostPublicOfferModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; +import { PostPublicOpportunityModal } from 'src/components/modals/Modal/ModalGeneric/PostOpportunityModal'; import { TaxModal } from 'src/components/modals/PopupModal/TaxModal'; import { LogoList, @@ -15,7 +14,7 @@ import { Timeline, } from 'src/components/partials'; import { CVList } from 'src/components/partials/CV/CVList'; -import { ImageTitle } from 'src/components/partials/ImageTitleNew'; +import { ImageTitle } from 'src/components/partials/ImageTitle'; import { NewsletterPartial } from 'src/components/partials/NewsletterPartial'; import { Button, Section, AnimatedList } from 'src/components/utils'; import { CV_FILTERS_DATA, STORAGE_KEYS } from 'src/constants'; @@ -154,7 +153,7 @@ const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => { { linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); openModal(); }, - className: 'custom-secondary', + style: 'custom-secondary-inverted', label: 'Nous contacter', }, { dataTest: 'button-offer-company-header', - className: 'custom-secondary-inverted', + style: 'custom-secondary', isExternal: false, newTab: false, onClick: () => { gaEvent(GA_TAGS.PAGE_ENTREPRISES_PROPOSER_OFFRE_CLIC); fbEvent(FB_TAGS.COMPANY_GENERAL_OFFER_OPEN); // linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); - openModal(); + openModal(); }, label: 'Créer une offre', }, @@ -257,11 +256,10 @@ const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => { linkEvent(LINK_TAGS.COMPANY_CONTACT_OPEN); openModal(); }} - dataTestId="button-contact-company-first-section" - style="secondary" + dataTestId="button-company-first-section" + style="custom-secondary-inverted" > Nous contacter  - } /> @@ -289,6 +287,20 @@ const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => { animate direction="left" style="default" + cta={ + + } /> { animate direction="right" style="default" + cta={ + + } />

    @@ -351,10 +371,9 @@ const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => {

    @@ -410,8 +429,7 @@ const Entreprises = ({ nbPublishedCVs }: { nbPublishedCVs: number }) => { style="secondary" className="uk-margin-small-top" > - Nous contacter  - + Nous contacter
    diff --git a/src/pages/orienter.js b/src/pages/orienter.tsx similarity index 87% rename from src/pages/orienter.js rename to src/pages/orienter.tsx index 6108c9f17..95f8e08e2 100644 --- a/src/pages/orienter.js +++ b/src/pages/orienter.tsx @@ -80,31 +80,18 @@ const Orienter = () => { - Travaillons ensemble pour - l'accès à l’emploi - - } - text={ - <> - Vous accompagnez des personnes en situation d'exclusion ? - Avec LinkedOut, accélérez leur retour à l’emploi ! -
    - Notre tremplin vers l’emploi en 6 mois s’inscrit dans la continuité - de votre accompagnement. - - } + title="Travaillons ensemble pour l'accès à l'emploi" cta={{ label: 'Inscrire un candidat', dataTest: 'button-orientate', + style: 'custom-secondary-inverted', onClick: () => { gaEvent(GA_TAGS.PAGE_ORIENTER_INSCRIPTION_CLIC); fbEvent(FB_TAGS.SOCIAL_WORKER_REGISTRATION_OPEN); openModal(); }, }} + description={`Vous accompagnez des personnes en situation d'exclusion\xa0? Notre tremplin vers l’emploi en 6 mois s’inscrit dans la continuité de votre accompagnement.`} />

    @@ -160,7 +147,7 @@ const Orienter = () => { />
    + + -
    - -

    { style="default" cta={ } /> @@ -282,7 +265,7 @@ const Orienter = () => {
    {/* */} diff --git a/src/pages/travailler.tsx b/src/pages/travailler.tsx index 933180191..9cac86cb7 100644 --- a/src/pages/travailler.tsx +++ b/src/pages/travailler.tsx @@ -15,7 +15,7 @@ import { SharePartial, CandidateTestimoniesOrientation, } from 'src/components/partials'; -import { ImageTitle } from 'src/components/partials/ImageTitleNew'; +import { ImageTitle } from 'src/components/partials/ImageTitle'; import { Partners } from 'src/components/partials/PartnersNew'; import { Participer } from 'src/components/partials/Travailler/Participer'; import { Rejoindre } from 'src/components/partials/Travailler/Rejoindre'; @@ -143,7 +143,7 @@ const Travailler = () => { onClick: () => { openModalInscription('Header'); }, - className: 'custom-secondary-inverted', + style: 'custom-secondary-inverted', dataTest: 'banner-cta', }} /> diff --git a/src/styles/styles.less b/src/styles/styles.less index 184e993cb..7871d94db 100644 --- a/src/styles/styles.less +++ b/src/styles/styles.less @@ -7,7 +7,7 @@ // permet de créer un ellipsis sur un text à plusieurs lignes body { - overflow-wrap: anywhere + overflow-wrap: anywhere; } .ent-card-ambition {