{"version":3,"sources":["utils/reportWebVitals.ts","redux/slices/counter.ts","redux/slices/legal.ts","cookies/cookies.ts","api/Config.ts","api/DateUtils.ts","api/ICompliance.ts","api/ISiteDetails.ts","api/LicenceVersion.ts","api/LicenceProfile.ts","redux/slices/licenceProfile.ts","redux/slices/compliance.ts","api/ISiteVisit.ts","redux/slices/siteVisit.ts","api/IComplianceInvestigation.ts","api/LicenceDetails.ts","api/ILicenseeReturns.ts","redux/slices/licenseeReturn.ts","api/RequestForInformation.ts","redux/slices/requestForInformation.ts","api/IFindingAndRecommendation.ts","redux/slices/findingAndRecommendation.ts","api/Instruction.ts","redux/slices/instruction.ts","api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions.ts","api/IEpaCorrespondence.ts","api/ITask.ts","api/IEdenMessage.ts","redux/slices/edenMessage.ts","redux/slices/complianceInvestigation.ts","api/IIncident.ts","redux/slices/incident.ts","api/IComplaint.ts","redux/slices/complaint.ts","api/Incident/IIncidentUpdateRequestDetails.ts","redux/slices/incidentUpdateRequest.ts","api/IMeeting.ts","redux/slices/meeting.ts","api/INonCompliance.ts","redux/slices/nonCompliance.ts","redux/slices/actionOrInstruction.ts","redux/slices/epaCorrespondence.ts","api/IThirdPartyCorrespondence.ts","redux/slices/thirdPartyCorrespondence.ts","api/CircularEconomy/Config.ts","api/CircularEconomy/INotifiers.ts","apps/circulareconomy/redux/slices/notifier.ts","api/CircularEconomy/CertificateOfRegistration/Config.ts","api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration.ts","apps/circulareconomy/redux/slices/certificateOfRegistration.ts","apps/circulareconomy/redux/slices/certificateOfRegistrationList.ts","api/Abstractions/IAbstractions.ts","apps/abstraction/redux/slices/abstraction.ts","redux/store.ts","i18n.ts","components/Main.tsx","constants.ts","hooks/useOuterClick.ts","hooks/useLocalStorage.ts","hooks/useSettingsState.ts","hooks/useAppSelector.ts","apps/leap/ThemeContext.tsx","hooks/useTheme.ts","contexts/SidebarContext.tsx","hooks/useSidebar.ts","contexts/LayoutContext.tsx","hooks/useLayout.ts","components/Settings.tsx","layouts/Auth.tsx","components/Wrapper.tsx","components/Content.tsx","ScrollToTop.tsx","layouts/LeapDashboard.tsx","leap-dashboards/LicenceProfile/index.tsx","pages/auth/Page404.tsx","leap-components/EpaCard.tsx","leap-components/EpaField.tsx","leap-pages/LicenceProfile/ActiveLicenceDetails.tsx","leap-pages/LicenceProfile/BreadCrumbs.tsx","leap-components/Grid/FetchGrid/ColumnFilter.tsx","leap-components/icons/Spinner.tsx","leap-components/Grid/FetchGrid/index.tsx","leap-components/Grid/NoFetchGrid/DefaultColumnFilter.tsx","leap-components/Grid/NoFetchGrid/index.tsx","leap-components/Grid/index.tsx","leap-components/Grid/NoFetchGrid/SelectColumnFilter.tsx","leap-components/icons/LeapIcons.tsx","assets/img/leap/leap-logo.svg","leap-pages/routeFactory.ts","leap-components/Compliance/ComplianceGrid.tsx","leap-pages/LicenceProfile/Compliance.tsx","assets/img/leap/leap-logo-tagline.svg","leap-components/LeapHeaderComponent/index.tsx","leap-pages/LicenceProfile/LicenceProfileHeader.tsx","leap-pages/LicenceProfile/LicenceDetails.tsx","leap-pages/LicenceProfile/LicenceProfileSiteDetails.tsx","leap-pages/LicenceProfile/LicenceProfileSubTabs.tsx","hooks/useAppDispatch.ts","leap-pages/LicenceProfile/UrbanWasteWaterSiteDetails.tsx","pages/auth/Page500.tsx","leap-components/Loading.tsx","leap-components/LicenceProfile/LicenceProfileResponseComponentFactory.tsx","leap-pages/LicenceProfile/index.tsx","leap-pages/LicenceProfile/SiteVisits/BreadCrumbs.tsx","leap-components/EpaFieldHtml.tsx","leap-pages/LicenceProfile/SiteVisits/SiteVisitDetails.tsx","leap-components/EpaField2Rows.tsx","leap-pages/LicenceProfile/SiteVisits/SiteVisitHeader.tsx","leap-components/ComplianceInvestigations/ComplianceInvestigationsGrid.tsx","leap-components/Documents/DocumentsGrid.tsx","api/Documents.ts","leap-components/FindingsAndRecommendations/FindingsAndRecommendationsGrid.tsx","leap-components/LicenseeReturns/LicenseeReturnsGrid.tsx","leap-components/NonCompliances/NonCompliancesGrid.tsx","leap-pages/LicenceProfile/SiteVisits/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/ComplianceTab/BackToCompliance.tsx","leap-pages/LicenceProfile/SiteVisits/index.tsx","leap-pages/Confirm/BreadCrumbs.tsx","leap-pages/Confirm/Header.tsx","leap-pages/Confirm/ConfirmTextCard.tsx","leap-pages/Confirm/CookiesDisabledCard.tsx","leap-pages/Confirm/index.tsx","leap-pages/LicenceProfile/ComplianceTab/BreadCrumbs.tsx","leap-components/Grid/FetchGrid/StaticSelectColumnFilter.tsx","leap-components/Grid/FetchGrid/DateRangeColumnFilter.tsx","leap-pages/LicenceProfile/ComplianceTab/index.tsx","leap-components/SiteVisits/SiteVisitsGridProps.ts","leap-pages/LicenceProfile/LicenceVersionsTab/BreadCrumbs.tsx","leap-pages/LicenceProfile/LicenceVersionsTab/index.tsx","leap-pages/LicenceProfile/LicenseeReturn/BreadCrumbs.tsx","leap-components/Instructions/InstructionsGrid.tsx","leap-components/RequestsForInformation/RequestsForInformationGrid.tsx","leap-components/SiteVisits/SiteVisitsGrid.tsx","leap-pages/LicenceProfile/LicenseeReturn/RelatedComplianceRecords.tsx","leap-components/EdenMessages/EdenMessagesGridProps.ts","leap-pages/LicenceProfile/LicenseeReturn/LicenseeReturnHeader.tsx","leap-pages/LicenceProfile/LicenseeReturn/LicenseeReturnDetails.tsx","leap-components/ComplianceInvestigations/ComplianceInvestigationBox.tsx","leap-pages/LicenceProfile/LicenseeReturn/index.tsx","leap-pages/LicenceProfile/RequestForInformation/BreadCrumbs.tsx","leap-pages/LicenceProfile/RequestForInformation/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/RequestForInformation/RequestForInformationHeader.tsx","leap-pages/LicenceProfile/RequestForInformation/RequestForInformationDetails.tsx","leap-pages/LicenceProfile/RequestForInformation/index.tsx","leap-pages/LicenceProfile/FindingAndRecommendation/BreadCrumbs.tsx","leap-components/EdenMessages/EdenMessagesGrid.tsx","leap-pages/LicenceProfile/FindingAndRecommendation/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/FindingAndRecommendation/FindingAndRecommendationHeader.tsx","leap-pages/LicenceProfile/FindingAndRecommendation/FindingAndRecommendationDetails.tsx","leap-pages/LicenceProfile/FindingAndRecommendation/index.tsx","leap-pages/LicenceProfile/Instruction/BreadCrumbs.tsx","leap-pages/LicenceProfile/Instruction/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/Instruction/InstructionHeader.tsx","leap-pages/LicenceProfile/Instruction/InstructionDetails.tsx","leap-pages/LicenceProfile/Instruction/index.tsx","leap-pages/LicenceProfile/EdenMessage/BreadCrumbs.tsx","leap-pages/LicenceProfile/EdenMessage/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/EdenMessage/EdenMessageHeader.tsx","leap-pages/LicenceProfile/EdenMessage/EdenMessageDetails.tsx","leap-pages/LicenceProfile/EdenMessage/index.tsx","leap-pages/LeapHome/BreadCrumbs.tsx","leap-pages/LeapHome/Header.tsx","leap-pages/LeapHome/HomeText.tsx","leap-pages/LeapHome/LeapHomeContent.tsx","leap-pages/LeapHome/Search.tsx","leap-pages/LeapHome/index.tsx","api/ILicenceProfileSearch.ts","leap-pages/LicenceProfile/ComplianceInvestigation/BreadCrumbs.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ComplianceInvestigationHeader.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ComplianceInvestigationDetails.tsx","leap-components/Complaint/ComplaintsGrid.tsx","leap-components/ComplianceInvestigations/ComplianceInvestigationActionsInstructionsGrid.tsx","leap-components/ComplianceInvestigations/ComplianceInvestigationEffectsGrid.tsx","api/ComplianceInvestigation/IComplianceInvestigationEffect.ts","leap-components/ComplianceInvestigations/ComplianceInvestigationLikelyCausesGrid.tsx","api/ComplianceInvestigation/IComplianceInvestigationLikelyCause.ts","leap-components/ComplianceInvestigations/ComplianceInvestigationOutcomesGrid.tsx","api/ComplianceInvestigation/IComplianceInvestigationOutcome.ts","leap-components/Incidents/IncidentsGrid.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/index.tsx","leap-pages/LicenceProfile/Incident/BreadCrumbs.tsx","leap-pages/LicenceProfile/Incident/IncidentDetails.tsx","leap-pages/LicenceProfile/Incident/IncidentHeader.tsx","leap-components/Incidents/IncidentCorrectiveAndPreventativeActionsGrid.tsx","api/Incident/IIncidentCorrectiveAndPreventativeAction.ts","leap-components/Incidents/IncidentEmissionParameterResultsGrid.tsx","api/Incident/IIncidentEmissionParameterResult.ts","leap-components/Incidents/IncidentUpdateRequestsGrid.tsx","api/Incident/IIncidentUpdateRequest.ts","leap-pages/LicenceProfile/Incident/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/Incident/index.tsx","leap-pages/LicenceProfile/Complaint/BreadCrumbs.tsx","leap-pages/LicenceProfile/Complaint/ComplaintDetails.tsx","leap-pages/LicenceProfile/Complaint/ComplaintHeader.tsx","leap-pages/LicenceProfile/Complaint/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/Complaint/index.tsx","leap-pages/LicenceProfile/IncidentUpdateRequest/BreadCrumbs.tsx","leap-pages/LicenceProfile/IncidentUpdateRequest/IncidentUpdateRequestDetails.tsx","leap-pages/LicenceProfile/IncidentUpdateRequest/IncidentUpdateRequestHeader.tsx","leap-pages/LicenceProfile/IncidentUpdateRequest/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/IncidentUpdateRequest/index.tsx","leap-pages/LicenceProfile/Meeting/BreadCrumbs.tsx","leap-pages/LicenceProfile/Meeting/MeetingHeader.tsx","leap-pages/LicenceProfile/Meeting/MeetingDetails.tsx","leap-components/Licences/LicencesGrid.tsx","leap-pages/LicenceProfile/Meeting/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/Meeting/index.tsx","leap-pages/LicenceProfile/NonCompliance/BreadCrumbs.tsx","leap-pages/LicenceProfile/NonCompliance/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/NonCompliance/NonComplianceHeader.tsx","leap-components/EpaFieldEmpty.tsx","leap-pages/LicenceProfile/NonCompliance/NonComplianceDetails.tsx","leap-pages/LicenceProfile/NonCompliance/index.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions/BreadCrumbs.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions/ActionOrInstructionHeader.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions/ActionOrInstructionDetails.tsx","leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions/index.tsx","leap-pages/LicenceProfile/EpaCorrespondence/BreadCrumbs.tsx","leap-pages/LicenceProfile/EpaCorrespondence/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/EpaCorrespondence/EpaCorrespondenceHeader.tsx","leap-pages/LicenceProfile/EpaCorrespondence/EpaCorrespondenceDetails.tsx","leap-pages/LicenceProfile/EpaCorrespondence/index.tsx","leap-pages/LicenceProfile/ThirdPartyCorrespondence/BreadCrumbs.tsx","leap-pages/LicenceProfile/ThirdPartyCorrespondence/RelatedComplianceRecords.tsx","leap-pages/LicenceProfile/ThirdPartyCorrespondence/ThirdPartyCorrespondenceHeader.tsx","leap-pages/LicenceProfile/ThirdPartyCorrespondence/ThirdPartyCorrespondenceDetails.tsx","leap-pages/LicenceProfile/ThirdPartyCorrespondence/index.tsx","apps/abstraction/pages/List/BreadCrumbs.tsx","apps/abstraction/components/AbstractionHeaderComponent/index.tsx","apps/abstraction/pages/List/Header.tsx","apps/abstraction/pages/List/AbstractionContainer.tsx","apps/abstraction/pages/List/index.tsx","apps/abstraction/pages/Details/BreadCrumbs.tsx","external-apps/Config.ts","apps/abstraction/pages/Details/AbstractionFields.tsx","apps/abstraction/pages/Details/DocumentsGrid.tsx","apps/abstraction/pages/Details/ContactUs.tsx","apps/abstraction/pages/Details/index.tsx","apps/leap/routes.tsx","hooks/usePalette.ts","utils/ChartJsDefaults.ts","utils/axios.ts","utils/jwt.ts","contexts/JWTContext.tsx","apps/leap/App.tsx","assets/img/logo.svg","assets/img/avatars/avatar.jpg","assets/img/avatars/avatar-3.jpg","assets/img/avatars/avatar-4.jpg","assets/img/avatars/avatar-5.jpg","components/sidebar/dashboardItems.ts","components/sidebar/docItems.ts","components/guards/AuthGuard.tsx","assets/img/illustrations/customer-support.png","assets/img/illustrations/searching.png","pages/dashboards/Analytics/WorldMap.tsx","assets/img/illustrations/social.png","assets/img/avatars/avatar-2.jpg","assets/img/photos/unsplash-1.jpg","assets/img/photos/unsplash-2.jpg","assets/img/photos/unsplash-3.jpg","pages/dashboards/SaaS/USAMap.tsx","pages/dashboards/Crypto/Chart.tsx","components/auth/ResetPassword.tsx","pages/tables/data.ts","pages/icons/Feather.tsx","pages/icons/FontAwesome/iconsSolid.ts","pages/forms/Formik.tsx","pages/tables/RowExpanding.tsx","pages/tables/ColumnFiltering.tsx","contexts/NotyfContext.tsx","apps/theme/App.tsx","mocks/adapter.ts","mocks/auth.ts","layouts/SlimEpaHeader.tsx","layouts/SlimEpaFooter.tsx","index.tsx"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","fetchCount","amount","Promise","resolve","setTimeout","data","incrementAsync","createAsyncThunk","response","counterSlice","createSlice","name","initialState","value","status","reducers","increment","state","decrement","incrementByAmount","action","payload","extraReducers","builder","addCase","pending","fulfilled","actions","LegalCookieName","acceptedTermsOfService","cookieName","ca","decodeURIComponent","document","cookie","split","i","length","c","charAt","substring","indexOf","getCookie","confirm","legalSlice","acceptTermsOfService","toggleAcceptance","selectAcceptedTermsOfService","legal","selectConfirm","ENV","API_URL","padTo2Digits","num","toString","padStart","formatDate","dateString","date","Date","getDate","getMonth","getFullYear","join","formatDateTime","datePart","timePart","getHours","getMinutes","formatDateForFiltering","GetComplianceListFetchUrl","profileId","pageNo","recordsPerPage","searchText","filters","params","filterParams","f","filterId","id","date_from","date_to","encodeURIComponent","GetComplianceRecordTypesAsync","url","fetch","json","body","list","map","item","type","GetComplianceRecordStatusesAsync","GetComplianceListByProfileIdAsync","pageRequest","page","per_page","compliancerecord_id","licence_id","licenceregno","profile_id","profilenumber","reference","related_compliance_recordid","subject","GetSiteDetailsByProfileIdAsync","GetAllLicenceVersionsAsync","reg_no","licenceprofile_id","licence_type","licence_name","date_of_licence","ceased_date","licence_status","licence_substatus","licence_application_status","licenceprofile_number","urban_areape","GetLicenceVersionAsync","licenceId","GetLicenceProfileAsync","profileNo","ok","httpStatusCode","httpErr","statusText","licence_profile_id","siteDetails","complianceList","versions","active_licence_id","activeVersion","profile","county","dateIssued","active_licence_startdate","firstIssued","first_issue_date","iedActivity","ied_activity","majorActivity","major_class_of_activity","organisation","organisation_name","profileName","profile_number","sector","active_licence_sector","active_licence_status","subStatus","active_licence_substatus","active_licence_type","version","active_licence_regno","prioritySite","uww_priority_site","licenceVersionsList","activeLicenceVersion","licenceProfile","isRadiologicalProtection","error","undefined","fetchStatus","licenceProfileResponse","loadLicenceProfileAsync","licenceProfileSlice","rejected","selectLicenceProfileResponse","complianceRecordTypes","complianceStatuses","loadComplianceOptionsAsync","recordTypes","recordStatuses","complianceOptionsSlice","selectComplianceOptions","complianceOptions","GetSiteVisitDetailsAsync","siteVisitId","sitevisitid","licenseesubmission_id","visit_date","report_issued_date","compliance","summary","announced","visittype","instigated_by","sampletaken","odourassessment","adourassessmentcompliant","licence_regno","siteVisit","loadSiteVisitAsync","siteVisitSlice","selectSiteVisit","GetComplianceInvestigationDetailsAsync","complianceInvestigationId","complianceinvestigationid","licenceid","licenceprofileid","responselevel","title","origin","receptors","description","closedate","dateraised","GetLicenseDetailsAsync","GetLicenseeReturnDetailsAsync","licenceDetails","complianceInvestigationDetails","licenseereturnid","datereceived","closeddate","doctype","docsubtype","decision","documentcategory","licenseeReturn","loadLicenseeReturnAsync","licenseeReturnId","licenseeReturnSlice","selectLicenseeReturn","GetRequestForInformationDetailsAsync","requestForInformationId","licenseesubmisionid","rfiid","datesubmitted","duedate","responsereceiveddate","question","licensee_return_reference","requestForInformation","loadRequestForInformationAsync","reuestForInformationId","requestForInformationSlice","selectRequestForInformation","GetFindingAndRecommendationDetailsAsync","taskId","regardingobjectid","taskid","sender","recipient","details","category","subcategory","observation","findingAndRecommendation","loadFindingAndRecommendationAsync","findingAndRecommendationSlice","selectFindingAndRecommendation","findingAndRecommendationReducer","GetInstructionDetailsAsync","instructionId","licenseesubmissionid","licenseeReturnDetails","epainitiatedcorrespondenceid","licensingnotification","correspondencetype","regno","instruction","loadInstructionAsync","instructionSlice","selectInstruction","GetComplianceInvestigationActionOrInstructionDetailsAsync","complianceInvestigation","complianceInvestidationDetails","GetEpaCorrespondenceDetailsAsync","epaCorrespondenceId","isFindingOrRecommentation","GetTaskDetailsAsync","GetEdenMessageDetailsAsync","edenMessageId","isSiteVisit","isComplianceInvestigation","taskDetails","actionOrInstructionDetails","epaCorrespondenceDetails","lr","edenmessageid","message","edenMessage","loadEdenMessageAsync","edenMessageSlice","selectEdenMessage","loadComplianceInvestigationAsync","complianceInvestigationSlice","selectComplianceInvestigation","GetIncidentDetailsAsync","incidentId","incidentid","incidentcategory","nature","vulnerablereceptors","likelihoodofreoccurence","likelycause","newrecurring","datenotified","firstnoticed","approximatestart","finishtime","notifiedparties","dischargepoint","emissionpointname","uncontrolledrelease","otherrelevantinformation","impactonenvironment","activityinprogress","dischargedetails","incident","loadIncidentAsync","incidentSlice","selectIncident","GetComplaintDetailsAsync","complaintId","complaintid","dateoccurred","durationofoccurance","complaint","loadComplaintAsync","complaintSlice","selectComplaint","GetIncidentUpdateRequestDetailsAsync","incidentUpdateRequestId","incidentDetails","incidentupdaterequestid","request","incidentUpdatRequest","loadIncidentUpdateRequestAsync","incidentUpdateRequestSlice","selectIncidentUpdateRequest","incidentUpdateRequest","GetMeetingDetailsAsync","meetingId","meetingid","meetingdate","meetingtime","organisationid","location","regarding","attendeesepa","attendeesnoepa","actionitems","originalmeetingid","organisationname","meeting","loadMeetingAsync","meetingSlice","selectMeeting","GetNonComplianceDetailsAsync","nonComplianceId","complaintDetails","noncomplianceid","condition","dateofnoncompliance","dateofnotification","nonCompliance","loadNonComplianceAsync","nonComplianceSlice","selectNonCompliance","actionOrInstruction","loadActionOrInstructionAsync","actionOrInstructionSlice","selectActionOrInstruction","epaCorrespondence","loadEpaCorrespondenceAsync","epaCorrespondenceSlice","selectEpaCorrespondence","GetThirdPartyCorrespondenceDetailsAsync","thirdPartyCorrespondenceId","thirdpartycorrespondenceid","receivedfrom","dateoriginalcorrespondencereceived","dateoforiginalcorrespondence","inspectorsupdate","thirdPartyCorrespondence","loadThirdPartyCorrespondenceAsync","thirdPartyCorrespondenceSlice","selectThirdPartyCorrespondence","GetNotifierByIdFetchUrl","notifier_id","notifier","notifier_name","date_received","source_local_authority","use_local_authority","open_for_submissions","NotifierResponse","loadNotifierAsync","notifierId","notifierSlice","GetCertificateOfRegistrationByIdFetchUrl","certificateOfRegistration","valid_application_date","site_name","site_computed","local_authority_org_name","main_class_of_activity","waste_category","expiry_date","GetStatusFilterValues","GetLocalAuthorityFilterValues","local_authority","GetWasteCategoryFilterValues","GetClassOfActivityFilterValues","class_of_activity","certificateOfRegistrationResponse","loadCertificateOfRegistrationAsync","licenseId","certificateOfRegistrationSlice","statusFilterValues","count","localAuthorityFilterValues","wasteCategoryFilterValues","classOfActivityFilterValues","loadCertificateOfRegistrationFilterValuesAsync","certificateOfRegistrationFilterValuesSlice","GetAbstractionByRegnoFetchUrl","abstraction","registernumber","sitecomputedaddress","abstractionpurpose","maximumdailyvolume","licencestatus","openforsubmissions","openforsubmissionstext","applicationreceiveddate","licenceissueddate","GetFilteredAbstractionsCsv","orderBy","orderByParam","orderByName","orderByAscending","abstractionResponse","loadAbstractionAsync","regNo","abstractionSlice","selectAbstractionResponse","store","configureStore","reducer","counter","counterReducer","legalReducer","licenceProfileReducer","complianceOptionsReducer","siteVisitReducer","licenseeReturnReducer","requestForInformationReducer","instructionReducer","edenMessageReducer","complianceInvestigationReducer","incidentReducer","complaintReducer","incidentUpdateRequestReducer","meetingReducer","nonComplianceReducer","actionOrInstructionReducer","epaCorrespondenceReducer","thirdPartyCorrespondenceReducer","notifierResponse","notifierReducer","certificationOfRegistrationReducer","certificateOfRegistrationListResponse","certificateOfRegistrationListReducer","abstractionReducer","i18n","use","initReactI18next","init","resources","en","translation","Search","fr","de","nl","lng","fallbackLng","interpolation","escapeValue","Main","className","children","classNames","SIDEBAR_POSITION","SIDEBAR_BEHAVIOR","LAYOUT","THEME","THEME_PALETTE_LIGHT","primary","secondary","success","info","warning","danger","white","black","THEME_PALETTE_DARK","useOuterClick","callback","callbackRef","useRef","innerRef","useEffect","current","addEventListener","handleClick","removeEventListener","e","contains","target","useLocalStorage","key","initialValue","useState","window","localStorage","getItem","JSON","parse","console","log","storedValue","setStoredValue","valueToStore","setItem","stringify","useSettingsState","setValue","dataset","theme","querySelector","setAttribute","useAppSelector","useSelector","setTheme","layout","ThemeContext","React","createContext","ThemeProvider","currentUrl","href","toLowerCase","newUrl","to","Provider","useTheme","useContext","isOpen","setIsOpen","open","setPosition","position","setBehavior","behavior","SidebarContext","SidebarProvider","useSidebar","setLayout","LayoutContext","LayoutProvider","useLayout","themeOptions","sidebarPositionOptions","sidebarBehaviorOptions","layoutOptions","Settings","query","URLSearchParams","useLocation","search","setSettingByQueryParam","set","get","ref","onClick","Alert","variant","checked","onChange","Button","as","rel","size","Auth","Fragment","Container","Row","Col","sm","md","lg","Wrapper","Content","ScrollToTop","useLayoutEffect","getElementsByTagName","scrollTop","pathname","LeapDashboard","LicenceProfileDashboard","fluid","Page404","EpaCard","content","Card","Header","Title","Body","EpaField","label","labelClassName","valueClassName","Form","Label","ActiveLicenceDetails","bodyElements","BreadCrumbs","text","xs","Breadcrumb","Item","active","ColumnFilter","column","filterValue","setFilter","useAsyncDebounce","placeholder","Spinner","style","color","icon","faSpinner","FetchGrid","props","quickFindSearch","setQuickFindSearch","setRecordsPerPage","totalCount","setTotalCount","tableData","setTableData","totalPage","setTotalPages","loading","setLoading","columns","exportToCsvFn","exportToCsvFunction","fetchUrlFn","fetchUrlFunction","formatFn","formatFunction","formatAnyResponseFn","formatResponseFunction","enablePagination","enableQuickFind","propsSearchText","orderByColumnName","setOrderByColumnName","setOrderByAscending","fetchRowData","useCallback","orderByAsc","fetchUrl","res","reponseData","responseTableData","Math","floor","defaultColumn","useMemo","Filter","useTable","manualPagination","manualGlobalFilter","manualFilters","manualSortBy","pageIndex","pageSize","pageCount","useFilters","useGlobalFilter","usePagination","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","canPreviousPage","canNextPage","pageOptions","gotoPage","nextPage","previousPage","setPageSize","setGlobalFilter","globalFilter","Control","Table","striped","headerGroup","getHeaderGroupProps","headers","getHeaderProps","render","enabledOrderByColumns","filter","colName","columnName","faSortUp","faSortDown","faSort","canFilter","colSpan","textAlign","row","getRowProps","cells","cell","getCellProps","Select","Number","defaultValue","width","Pagination","First","disabled","Prev","Next","Last","DefaultColumnFilter","preFilteredRows","NoFetchGrid","filterTypes","rowValue","values","String","startsWith","Grid","SelectColumnFilter","options","Set","forEach","add","option","_image","foreGroundColor","backGroundColor","IncidentIcon","faCircle","faExclamationTriangle","IncidentUpdateRequestIcon","faQuestionCircle","ComplianceInvestigationIcon","faSearch","ComplaintIcon","faCommentDots","MeetingIcon","faHandshake","NonComplianceIcon","faWindowClose","SiteVisitIcon","faIndustry","EPAInitiatedCorrespondenceIcon","faEnvelope","ThirdPartyCorrespondenceIcon","faEnvelopeOpenText","LicenseeReturnIcon","faFileExport","ActionOrInstructionIcon","faClipboardCheck","ExternalLinkIcon","faExternalLinkAlt","getIconForType","GetLicenceProfilePageUrl","GetLicenseeReturnPageUrl","returnId","GetIncidentPageUrl","GetComplaintDetailsPageUrl","GetSiteVisitDetailsPageUrl","GetComplianceInvestigationDetailsPageUrl","GetActionOrInstructionDetailsPageUrl","actionOrInstructionId","GetEpaCorrespondenceDetailsPageUrl","GetComplianceRecordDetailsUrl","complianceRecordId","complianceRecordType","GetThirdPartyCorrespondenceDetailsPageUrl","ComplianceGrid","tableColumns","accessor","Cell","rowInfo","paddingTop","rowData","index","ViewAllCompliance","display","flexDirection","marginBottom","Compliance","_excluded","_extends","Object","assign","bind","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgLeapLogo","_ref","svgRef","titleId","xmlns","xmlnsXlink","height","viewBox","xlinkHref","ForwardRef","SvgLeapLogoTagline","transform","LeapHeaderComponent","headerContent","paddingLeft","paddingRight","HeaderSubComponent","LicenceProfileHeader","LicenceDetails","LicenceProfileSiteDetails","address1","address2","address3","city","eircode","nacecode","nutscode","LicenceProfileSubTabs","activeKey","Tab","defaultActiveKey","Nav","Link","eventKey","Pane","useAppDispatch","useDispatch","UrbanWasteWaterSiteDetails","plantcapacitype","treatmenttype","uvtreatment","Page500","Loading","IsLicenceProfileReady","GetLicenceProfileNotReadyComponent","LicenceDashboard","licenceProfileSelector","dispatch","useParams","isUWW","contentElement","EpaFieldHtml","dangerouslySetInnerHTML","__html","SiteVisitDetails","EpaField2Rows","SiteVisitHeader","marginTop","ComplianceInvestigationsGrid","relatedRecordType","relatedId","relatedrecordId","GetComplianceInvestigationsBySiteVisitFetchUrl","tableColumnsBig","original","tableColumnsSmall","parseInt","filesize","trunc","DocumentsGrid","regardingObjectId","GetRelatedDocumentsFetchUrl","GetUrlForFindingAndRecommendation","profileNumber","FindingsAndRecommendationsGrid","GetFindingsAndRecommendationsFetchUrl","formatObservation","LicenseeReturnsGrid","GetLicenseeReturnFromComplianceInvestigationFetchUrl","GetLicenseeReturnFromSiteVisitFetchUrl","NonCompliancesGrid","relatedRecordId","GetUrlForNonCompliance","GetNonCompliancesByLicenseeReturnFetchUrl","GetNonCompliancesByComplaintFetchUrl","GetNonCompliancesByIncidentFetchUrl","GetNonCompliancesBySiteVisitFetchUrl","GetNonCompliancesByComplianceInvestigationFetchUrl","LicenseeReturns","SubTabs","RelatedComplianceRecords","BackToCompliance","navigate","useNavigate","SiteVisit","loadingSiteVisitId","setLoadingSiteVisitId","siteVisitSelector","ConfirmCard","queryString","returnUrl","Continue","cvalue","exdays","d","setTime","getTime","expires","toUTCString","setCookie","listStyleType","fontWeight","CookiesDisabledCard","faExclamation","Footer","Confirm","hasCookiesEnabled","navigator","cookieEnabled","profileText","CreateStaticSelectColumnFilter","start","stop","step","years","Array","from","_","months","getNextYearValue","currentYear","currentMonth","CurrentMonthHeader","monthDate","changeYear","customHeaderCount","changeMonth","decreaseYear","increaseYear","prevYearButtonDisabled","nextYearButtonDisabled","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","NextMonthHeader","CustomDateRangeHeader","margin","justifyContent","DateRangeColumnFilter","startDate","setStartDate","endDate","setEndDate","renderCustomHeader","selected","dates","end","selectsRange","monthsShown","isClearable","locale","dateFormat","shouldCloseOnSelect","SiteVisitRegardingObjectTypes","ComplianceServerSide","ComplianceTab","complianceOptionsSelector","LicensingDocumentsCellFactory","licence","IsIndustrialEmissionsLicense","IsWasteLicense","IsWasteWaterDischargeAuthorisation","IsCoALicense","IsDumpingAtSeaLicense","cursor","marginRight","LicenceVersionsGrid","LicenceVersionsTab","GetUrlForInstruction","RefNoCellFunctionFactory","InstructionsGrid","GetInstructionsFromLicenseeReturnFetchUrl","GetUrlForRequestForInformation","RequestsForInformationGrid","GetRequestsForInformationFromLicenseeReturnFetchUrl","SiteVisitsGrid","regardingObjectType","GetSiteVisitsFromComplianceInvestigationFetchUrl","GetSiteVisitsFromNonComplianceFetchUrl","GetSiteVisitsFromLicenseeReturnFetchUrl","EdenMessagesGridType","RequestsForInformation","Instructions","SiteVisits","LR","LicenseeReturnHeader","LicenseeReturnDetails","ComplianceInvestigationBox","LicenseeReturn","loadingLicenseeReturnId","setLoadingLicenseeReturnId","licenseeReturnSelector","RequestForInformationHeader","RequestForInformationDetails","linkToLicenseeReturnDetails","RequestForInformation","loadingRfiId","setLoadingRfiId","requestForInformationSelector","GetUrlForEdenMessage","EdenMessagesGrid","edenMessagesType","TaskBasedEdenMessages","GetEdenMessagesByTaskFetchUrl","RegardingBasedEdenMessages","GetEdenMessagesByRegardingFetchUrl","getFetchUrlFactory","FindingAndRecommendationHeader","FindingAndRecommendationDetails","Instruction","loadingFindingAndRecommendationId","setLoadingFindingAndRecommendationId","findingAndRecommendationSelector","findingAndRecommendationId","InstructionHeader","InstructionDetails","linkToLicenseeReturn","FindingAndRecommendation","loadingInstructionById","setLoadingInstructionById","instructionSelector","EdenMessageHeader","EdenMessageDetails","EdenMessage","loadingMessageById","setLoadingMessageById","edenMessageSelector","HomeText","LeapHomeContainer","LeapSearch","searchChangedFn","searchValue","setSearchValue","searchChanged","newSearch","InputGroup","LeapHome","GetLicenceProfileSearchFetchUrl","searchResponse","result","licence_number","town","results","searchContent","ComplianceInvestigationHeader","ComplianceInvestigationDetails","ComplaintsGrid","GetComplaintsFromComplianceInvestigationFetchUrl","ComplianceInvestigationActionsInstructionsGrid","GetUrlForActionOrInstruction","GetComplianceInvestigationActionsAndInstructionsFetchUrl","ComplianceInvestigationEffectsGrid","GetComplianceInvestigationEffectsFetchUrl","ComplianceInvestigationLikelyCausesGrid","GetComplianceInvestigationLikelyCausesFetchUrl","ComplianceInvestigationOutcomesGrid","GetComplianceInvestigationOutcomesFetchUrl","IncidentsGrid","GetIncidentsFromComplianceInvestigationFetchUrl","CI","ComplianceInvestigation","loadingComplianceInvestigationId","setloadingComplianceInvestigationId","complianceInvestigationSelector","IncidentDetails","IncidentHeader","IncidentCorrectiveAndPreventativeActions","GetIncidentCorrectiveAndPreventativeActionsFetchUrl","IncidentEmissionParameterResultsGrid","GetIncidentEmissionParameterResultsFetchUrl","renderRequest","whiteSpace","overflow","textOverflow","IncidentUpdateRequestsGrid","GetIncidentUpdateRequestsFetchUrl","Incident","loadingIncidentId","setLoadingIncidentId","incidentSelector","DataProtectionAlert","dismissible","faBell","fixedWidth","ComplaintDetails","ComplaintHeader","Complaint","loadingComplaintId","setLoadingComplaintId","complaintSelector","incidentUpdateRequestDetails","IncidentUpdateRequestDetails","linkToIncident","IncidentUpdateRequestHeader","IncidentUpdateRequest","loadingIncidentUpdateRequestId","setLoadingIncidentUpdateRequestId","incidentUpdateRequestSelector","meetingDetails","MeetingHeader","MeetingDetails","LicencesGrid","GetLicencesByMeetingFetchUrl","Meeting","loadingMeetingId","setLoadingMeetingId","meetingSelector","nonComplianceDetails","NC","NonComplianceHeader","EpaFieldEmpty","NonComplianceDetails","NonCompliance","loadingNonComplianceId","setLoadingNonComplianceId","nonComplianceSelector","ActionOrInstructionHeader","ActionOrInstructionDetails","ActionOrInstruction","loadingActionOrInstructionId","setLoadingActionOrInstructionId","actionOrInstructionSelector","EpaCorrespondenceHeader","EpaCorrespondenceDetails","EpaCorrespondence","loadingEpaCorrespondenceId","setLoadingEpaCorrespondenceId","epaCorrespondenceSelector","ThirdPartyCorrespondenceHeader","ThirdPartyCorrespondenceDetails","ThirdPartyCorrespondence","loadingThirdPartyCorrespondenceId","setLoadingThirdPartyCorrespondenceId","thirdPartyCorrespondenceSelector","AbstractionHeaderComponent","AbstractionHomeContainer","GetDetailsUrl","AbstractionList","countyFilterValues","sortType","n","GetFilteredAbstractionsFetchUrl","SUBMISSIONS_DOMAIN","LEAP_RSS_URL_DOMAIN","GetSubmissionUrl","MakeASubmission","abstractionDetails","isVisible","visibility","MakeAObservation","AbstractionFields","faRssSquare","CreatedByFilterValues","AbstractionId","GetFilteredDocumentsFilteredFetchUrl","ContactUs","AbstractionDetails","abstractionSelector","GetNotReadyComponent","absDetails","routes","path","element","LicenceProfile","usePalette","palette","setPalette","ChartJsDefaults","defaults","global","defaultFontColor","defaultFontFamily","Chart","elements","Rectangle","draw","left","right","top","bottom","signX","signY","borderSkipped","ctx","_chart","vm","_view","borderWidth","horizontal","base","x","y","barSize","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","cornerAt","corner","moveTo","radius","lastVisible","findLast","findLastTo","datasets","getDatasetMeta","hidden","_datasetIndex","lineTo","quadraticCurveTo","fill","stroke","axiosInstance","axios","create","interceptors","reject","isValidToken","accessToken","decoded","jwtDecode","currentTime","now","exp","setSession","common","Authorization","removeItem","INITIALIZE","SIGN_IN","SIGN_OUT","SIGN_UP","isAuthenticated","isInitialized","user","JWTReducer","AuthContext","AuthProvider","useReducer","initialize","signIn","email","password","post","signOut","signUp","firstName","lastName","method","resetPassword","App","useRoutes","titleTemplate","defaultTitle","Sliders","Layout","Users","BookOpen","Heart","CheckSquare","List","PieChart","Bell","MapPin","Calendar","Share","Info","Code","ArrowRightCircle","Shield","Globe","Mail","AuthGuard","WorldMap","USAMap","ResetPassword","faAd","faAddressBook","faAddressCard","faAdjust","faAirFreshener","faAlignCenter","faAlignJustify","faAlignLeft","faAlignRight","faAllergies","faAmbulance","faAmericanSignLanguageInterpreting","faAnchor","faAngleDoubleDown","faAngleDoubleLeft","faAngleDoubleRight","faAngleDoubleUp","faAngleDown","faAngleLeft","faAngleRight","faAngleUp","faAngry","faAnkh","faAppleAlt","faArchive","faArchway","faArrowAltCircleDown","faArrowAltCircleLeft","faArrowAltCircleRight","faArrowAltCircleUp","faArrowCircleDown","faArrowCircleLeft","faArrowCircleRight","faArrowCircleUp","faArrowDown","faArrowLeft","faArrowRight","faArrowUp","faArrowsAlt","faArrowsAltH","faArrowsAltV","faAssistiveListeningSystems","faAsterisk","faAt","faAtlas","faAtom","faAudioDescription","faAward","faBaby","faBabyCarriage","faBackspace","faBackward","faBacon","faBalanceScale","faBan","faBandAid","faBarcode","faBars","faBaseballBall","faBasketballBall","faBath","faBatteryEmpty","faBatteryFull","faBatteryHalf","faBatteryQuarter","faBatteryThreeQuarters","faBed","faBeer","faBellSlash","faBezierCurve","faBible","faBicycle","faBinoculars","faBiohazard","faBirthdayCake","faBlender","faBlenderPhone","faBlind","faBlog","faBold","faBolt","faBomb","faBone","faBong","faBook","faBookDead","faBookMedical","faBookOpen","faBookReader","faBookmark","faBowlingBall","faBox","faBoxOpen","faBoxes","faBraille","faBrain","faBreadSlice","faBriefcase","faBriefcaseMedical","faBroadcastTower","faBroom","faBrush","faBug","faBuilding","faBullhorn","faBullseye","faBurn","faBus","faBusAlt","faBusinessTime","faCalculator","faCalendar","faCalendarAlt","faCalendarCheck","faCalendarDay","faCalendarMinus","faCalendarPlus","faCalendarTimes","faCalendarWeek","faCamera","faCameraRetro","faCampground","faCandyCane","faCannabis","faCapsules","faCar","faCarAlt","faCarBattery","faCarCrash","faCarSide","faCaretDown","faCaretLeft","faCaretRight","faCaretSquareDown","faCaretSquareLeft","faCaretSquareRight","faCaretSquareUp","faCaretUp","faCarrot","faCartArrowDown","faCartPlus","faCashRegister","faCat","faCertificate","faChair","faChalkboard","faChalkboardTeacher","faChargingStation","faChartArea","faChartBar","faChartLine","faChartPie","faCheck","faCheckCircle","faCheckDouble","faCheckSquare","faCheese","faChess","faChessBishop","faChessBoard","faChessKing","faChessKnight","faChessPawn","faChessQueen","faChessRook","faChevronCircleDown","faChevronCircleLeft","faChevronCircleRight","faChevronCircleUp","faChevronDown","faChevronLeft","faChevronRight","faChevronUp","faChild","faChurch","faCircleNotch","faCity","faClinicMedical","faClipboard","faClipboardList","faClock","faClone","faClosedCaptioning","faCloud","faCloudDownloadAlt","faCloudMeatball","faCloudMoon","faCloudMoonRain","faCloudRain","faCloudShowersHeavy","faCloudSun","faCloudSunRain","faCloudUploadAlt","faCocktail","faCode","faCodeBranch","faCoffee","faCog","faCogs","faCoins","faColumns","faComment","faCommentAlt","faCommentDollar","faCommentMedical","faCommentSlash","faComments","faCommentsDollar","faCompactDisc","faCompass","faCompress","faCompressArrowsAlt","faConciergeBell","faCookie","faCookieBite","faCopy","faCopyright","faCouch","faCreditCard","faCrop","faCropAlt","faCross","faCrosshairs","faCrow","faCrown","faCrutch","faCube","faCubes","faCut","faDatabase","faDeaf","faDemocrat","faDesktop","faDharmachakra","faDiagnoses","faDice","faDiceD20","faDiceD6","faDiceFive","faDiceFour","faDiceOne","faDiceSix","faDiceThree","faDiceTwo","faDigitalTachograph","faDirections","faDivide","faDizzy","faDna","faDog","faDollarSign","faDolly","faDollyFlatbed","faDonate","faDoorClosed","faDoorOpen","faDotCircle","faDove","faDownload","faDraftingCompass","faDragon","faDrawPolygon","faDrum","faDrumSteelpan","faDrumstickBite","faDumbbell","faDumpster","faDumpsterFire","faDungeon","faEdit","faEgg","faEject","faEllipsisH","faEllipsisV","faEnvelopeOpen","faEnvelopeSquare","faEquals","faEraser","faEthernet","faEuroSign","faExchangeAlt","faExclamationCircle","faExpand","faExpandArrowsAlt","faExternalLinkSquareAlt","faEye","faEyeDropper","faEyeSlash","faFastBackward","faFastForward","faFax","faFeather","faFeatherAlt","faFemale","faFighterJet","faFile","faFileAlt","faFileArchive","faFileAudio","faFileCode","faFileContract","faFileCsv","faFileDownload","faFileExcel","faFileImage","faFileImport","faFileInvoice","faFileInvoiceDollar","faFileMedical","faFileMedicalAlt","faFilePdf","faFilePowerpoint","faFilePrescription","faFileSignature","faFileUpload","faFileVideo","faFileWord","faFill","faFillDrip","faFilm","faFilter","faFingerprint","faFire","faFireAlt","faFireExtinguisher","faFirstAid","faFish","faFistRaised","faFlag","faFlagCheckered","faFlagUsa","faFlask","faFlushed","faFolder","faFolderMinus","faFolderOpen","faFolderPlus","faFont","faFontAwesomeLogoFull","faFootballBall","faForward","faFrog","faFrown","faFrownOpen","faFunnelDollar","faFutbol","faGamepad","faGasPump","faGavel","faGem","faGenderless","faGhost","faGift","faGifts","faGlassCheers","faGlassMartini","faGlassMartiniAlt","faGlassWhiskey","faGlasses","faGlobe","faGlobeAfrica","faGlobeAmericas","faGlobeAsia","faGlobeEurope","faGolfBall","faGopuram","faGraduationCap","faGreaterThan","faGreaterThanEqual","faGrimace","faGrin","faGrinAlt","faGrinBeam","faGrinBeamSweat","faGrinHearts","faGrinSquint","faGrinSquintTears","faGrinStars","faGrinTears","faGrinTongue","faGrinTongueSquint","faGrinTongueWink","faGrinWink","faGripHorizontal","faGripLines","faGripLinesVertical","faGripVertical","faGuitar","faHSquare","faHamburger","faHammer","faHamsa","faHandHolding","faHandHoldingHeart","faHandHoldingUsd","faHandLizard","faHandMiddleFinger","faHandPaper","faHandPeace","faHandPointDown","faHandPointLeft","faHandPointRight","faHandPointUp","faHandPointer","faHandRock","faHandScissors","faHandSpock","faHands","faHandsHelping","faHanukiah","faHardHat","faHashtag","faHatWizard","faHdd","faHeading","faHeadphones","faHeadphonesAlt","faHeadset","faHeart","faHeartBroken","faHeartbeat","faHelicopter","faHighlighter","faHiking","faHippo","faHistory","faHockeyPuck","faHollyBerry","faHome","faHorse","faHorseHead","faHospital","faHospitalAlt","faHospitalSymbol","faHotTub","faHotdog","faHotel","faHourglass","faHourglassEnd","faHourglassHalf","faHourglassStart","faHouseDamage","faHryvnia","faICursor","faIceCream","faIcicles","faIdBadge","faIdCard","faIdCardAlt","faIgloo","faImage","faImages","faInbox","faIndent","faInfinity","faInfo","faInfoCircle","faItalic","faJedi","faJoint","faJournalWhills","faKaaba","faKey","faKeyboard","faKhanda","faKiss","faKissBeam","faKissWinkHeart","faKiwiBird","faLandmark","faLanguage","faLaptop","faLaptopCode","faLaptopMedical","faLaugh","faLaughBeam","faLaughSquint","faLaughWink","faLayerGroup","faLeaf","faLemon","faLessThan","faLessThanEqual","faLevelDownAlt","faLevelUpAlt","faLifeRing","faLightbulb","faLink","faLiraSign","faList","faListAlt","faListOl","faListUl","faLocationArrow","faLock","faLockOpen","faLongArrowAltDown","faLongArrowAltLeft","faLongArrowAltRight","faLongArrowAltUp","faLowVision","faLuggageCart","faMagic","faMagnet","faMailBulk","faMale","faMap","faMapMarked","faMapMarkedAlt","faMapMarker","faMapMarkerAlt","faMapPin","faMapSigns","faMarker","faMars","faMarsDouble","faMarsStroke","faMarsStrokeH","faMarsStrokeV","faMask","faMedal","faMedkit","faMeh","faMehBlank","faMehRollingEyes","faMemory","faMenorah","faMercury","faMeteor","faMicrochip","faMicrophone","faMicrophoneAlt","faMicrophoneAltSlash","faMicrophoneSlash","faMicroscope","faMinus","faMinusCircle","faMinusSquare","faMitten","faMobile","faMobileAlt","faMoneyBill","faMoneyBillAlt","faMoneyBillWave","faMoneyBillWaveAlt","faMoneyCheck","faMoneyCheckAlt","faMonument","faMoon","faMortarPestle","faMosque","faMotorcycle","faMountain","faMousePointer","faMugHot","faMusic","faNetworkWired","faNeuter","faNewspaper","faNotEqual","faNotesMedical","faObjectGroup","faObjectUngroup","faOilCan","faOm","faOtter","faOutdent","faPager","faPaintBrush","faPaintRoller","faPalette","faPallet","faPaperPlane","faPaperclip","faParachuteBox","faParagraph","faParking","faPassport","faPastafarianism","faPaste","faPause","faPauseCircle","faPaw","faPeace","faPen","faPenAlt","faPenFancy","faPenNib","faPenSquare","faPencilAlt","faPencilRuler","faPeopleCarry","faPepperHot","faPercent","faPercentage","faPersonBooth","faPhone","faPhoneSlash","faPhoneSquare","faPhoneVolume","faPiggyBank","faPills","faPizzaSlice","faPlaceOfWorship","faPlane","faPlaneArrival","faPlaneDeparture","faPlay","faPlayCircle","faPlug","faPlus","faPlusCircle","faPlusSquare","faPodcast","faPoll","faPollH","faPoo","faPooStorm","faPoop","faPortrait","faPoundSign","faPowerOff","faPray","faPrayingHands","faPrescription","faPrescriptionBottle","faPrescriptionBottleAlt","faPrint","faProcedures","faProjectDiagram","faPuzzlePiece","faQrcode","faQuestion","faQuidditch","faQuoteLeft","faQuoteRight","faQuran","faRadiation","faRadiationAlt","faRainbow","faRandom","faReceipt","faRecycle","faRedo","faRedoAlt","faRegistered","faReply","faReplyAll","faRepublican","faRestroom","faRetweet","faRibbon","faRing","faRoad","faRobot","faRocket","faRoute","faRss","faRubleSign","faRuler","faRulerCombined","faRulerHorizontal","faRulerVertical","faRunning","faRupeeSign","faSadCry","faSadTear","faSatellite","faSatelliteDish","faSave","faSchool","faScrewdriver","faScroll","faSdCard","faSearchDollar","faSearchLocation","faSearchMinus","faSearchPlus","faSeedling","faServer","faShapes","faShare","faShareAlt","faShareAltSquare","faShareSquare","faShekelSign","faShieldAlt","faShip","faShippingFast","faShoePrints","faShoppingBag","faShoppingBasket","faShoppingCart","faShower","faShuttleVan","faSign","faSignInAlt","faSignLanguage","faSignOutAlt","faSignal","faSignature","faSimCard","faSitemap","faSkating","faSkiing","faSkiingNordic","faSkull","faSkullCrossbones","faSlash","faSleigh","faSlidersH","faSmile","faSmileBeam","faSmileWink","faSmog","faSmoking","faSmokingBan","faSms","faSnowboarding","faSnowflake","faSnowman","faSnowplow","faSocks","faSolarPanel","faSortAlphaDown","faSortAlphaUp","faSortAmountDown","faSortAmountUp","faSortNumericDown","faSortNumericUp","faSpa","faSpaceShuttle","faSpider","faSplotch","faSprayCan","faSquare","faSquareFull","faSquareRootAlt","faStamp","faStar","faStarAndCrescent","faStarHalf","faStarHalfAlt","faStarOfDavid","faStarOfLife","faStepBackward","faStepForward","faStethoscope","faStickyNote","faStop","faStopCircle","faStopwatch","faStore","faStoreAlt","faStream","faStreetView","faStrikethrough","faStroopwafel","faSubscript","faSubway","faSuitcase","faSuitcaseRolling","faSun","faSuperscript","faSurprise","faSwatchbook","faSwimmer","faSwimmingPool","faSynagogue","faSync","faSyncAlt","faSyringe","faTable","faTableTennis","faTablet","faTabletAlt","faTablets","faTachometerAlt","faTag","faTags","faTape","faTasks","faTaxi","faTeeth","faTeethOpen","faTemperatureHigh","faTemperatureLow","faTenge","faTerminal","faTextHeight","faTextWidth","faTh","faThLarge","faThList","faTheaterMasks","faThermometer","faThermometerEmpty","faThermometerFull","faThermometerHalf","faThermometerQuarter","faThermometerThreeQuarters","faThumbsDown","faThumbsUp","faThumbtack","faTicketAlt","faTimes","faTimesCircle","faTint","faTintSlash","faTired","faToggleOff","faToggleOn","faToilet","faToiletPaper","faToolbox","faTools","faTooth","faTorah","faToriiGate","faTractor","faTrademark","faTrafficLight","faTrain","faTram","faTransgender","faTransgenderAlt","faTrash","faTrashAlt","faTrashRestore","faTrashRestoreAlt","faTree","faTrophy","faTruck","faTruckLoading","faTruckMonster","faTruckMoving","faTruckPickup","faTshirt","faTty","faTv","faUmbrella","faUmbrellaBeach","faUnderline","faUndo","faUndoAlt","faUniversalAccess","faUniversity","faUnlink","faUnlock","faUnlockAlt","faUpload","faUser","faUserAlt","faUserAltSlash","faUserAstronaut","faUserCheck","faUserCircle","faUserClock","faUserCog","faUserEdit","faUserFriends","faUserGraduate","faUserInjured","faUserLock","faUserMd","faUserMinus","faUserNinja","faUserNurse","faUserPlus","faUserSecret","faUserShield","faUserSlash","faUserTag","faUserTie","faUserTimes","faUsers","faUsersCog","faUtensilSpoon","faUtensils","faVectorSquare","faVenus","faVenusDouble","faVenusMars","faVial","faVials","faVideo","faVideoSlash","faVihara","faVolleyballBall","faVolumeDown","faVolumeMute","faVolumeOff","faVolumeUp","faVoteYea","faVrCardboard","faWalking","faWallet","faWarehouse","faWater","faWeight","faWeightHanging","faWheelchair","faWifi","faWind","faWindowMaximize","faWindowMinimize","faWindowRestore","faWineBottle","faWineGlass","faWineGlassAlt","faWonSign","faWrench","faXRay","faYenSign","faYinYang","Yup","shape","required","username","zip","getToggleAllRowsExpandedProps","isAllRowsExpanded","canExpand","getToggleRowExpandedProps","depth","isExpanded","Notyf","duration","types","tagName","axiosMockAdapter","AxiosMockAdapter","delayResponse","JWT_SECRET","JWT_EXPIRES_IN","users","displayName","avatar","fakeRequest","time","mock","onPost","reply","config","find","_user","sign","userId","expiresIn","faker","datatype","uuid","onGet","verify","SlimEpaHeader","src","alt","SlimEpaFooter","ReactDOM","getElementById"],"mappings":"qcAceA,EAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,+BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,EACT,GAEJ,E,gDCEM,SAASQ,IAAwB,IAAbC,EAAY,uDAAH,EAClC,OAAO,IAAIC,SAA0B,SAACC,GAAD,OACnCC,YAAW,kBAAMD,EAAQ,CAAEE,KAAMJ,GAAtB,GAAiC,IADT,GAGtC,CAOM,IAAMK,EAAiBC,YAC5B,qBAD4C,iDAE5C,WAAON,GAAP,iGACyBD,EAAWC,GADpC,cACQO,EADR,yBAGSA,EAASH,MAHlB,2CAF4C,uDASjCI,EAAeC,YAAY,CACtCC,KAAM,UACNC,aA5BiC,CACjCC,MAAO,EACPC,OAAQ,QA4BRC,SAAU,CACRC,UAAW,SAACC,GAKVA,EAAMJ,OAAS,CAChB,EACDK,UAAW,SAACD,GACVA,EAAMJ,OAAS,CAChB,EAEDM,kBAAmB,SAACF,EAAOG,GACzBH,EAAMJ,OAASO,EAAOC,OACvB,GAIHC,cAAe,SAACC,GACdA,EACGC,QAAQlB,EAAemB,SAAS,SAACR,GAChCA,EAAMH,OAAS,SAChB,IACAU,QAAQlB,EAAeoB,WAAW,SAACT,EAAOG,GACzCH,EAAMH,OAAS,OACfG,EAAMJ,OAASO,EAAOC,OACvB,GACJ,IAGI,EAAoDZ,EAAakB,QAkBzDlB,GAlBR,EAAQO,UAAR,EAAmBE,UAAnB,EAA8BC,kBAkBtBV,EAAf,SC7EO,IAAMmB,EAAkB,yBAO/B,IAAMhB,EAA2B,CAC/BiB,uBAJsC,SCNjC,SAAmBC,GAIxB,IAHA,IAAInB,EAAOmB,EAAa,IAEpBC,EADgBC,mBAAmBC,SAASC,QACzBC,MAAM,KACpBC,EAAI,EAAGA,EAAIL,EAAGM,OAAQD,IAAK,CAElC,IADA,IAAIE,EAAIP,EAAGK,GACW,KAAfE,EAAEC,OAAO,IACdD,EAAIA,EAAEE,UAAU,GAElB,GAAuB,GAAnBF,EAAEG,QAAQ9B,GACZ,OAAO2B,EAAEE,UAAU7B,EAAK0B,OAAQC,EAAED,OAErC,CACD,MAAO,EACR,CDRQK,CAAUd,GAKjBe,SAAS,GAGEC,EAAalC,YAAY,CACpCC,KAAM,QACNC,eAEAG,SAAU,CACR8B,qBAAsB,SAAC5B,GAKrBA,EAAMY,wBAAyB,CAChC,EACDiB,iBAAkB,SAAC7B,GACjBA,EAAM0B,SAAW1B,EAAM0B,OACxB,KAIE,EAAmDC,EAAWjB,QAAtDkB,EAAR,EAAQA,qBAAsBC,EAA9B,EAA8BA,iBAKxBC,EAA+B,SAAC9B,GAAD,OAC1CA,EAAM+B,MAAMnB,sBAD8B,EAG/BoB,EAAgB,SAAChC,GAAD,OAAsBA,EAAM+B,MAAML,OAAlC,EAEdC,IAAf,QExBaM,EAHI,kCAKJC,GADa,UAAMD,EAAN,UACN,UAAMA,IC3B1B,SAASE,EAAaC,GACpB,OAAOA,EAAIC,WAAWC,SAAS,EAAG,IACnC,CAEM,SAASC,EAAWC,GACzB,IAAKA,EAAY,MAAO,IAExB,IAAIC,EAAO,IAAIC,KAAKF,GAEpB,MAAO,CACLL,EAAaM,EAAKE,WAClBR,EAAaM,EAAKG,WAAa,GAC/BH,EAAKI,eACLC,KAAK,IACR,CAEM,SAASC,EAAeP,GAC7B,IAAKA,EAAY,MAAO,IAExB,IAAIC,EAAO,IAAIC,KAAKF,GAEdQ,EAAW,CACfb,EAAaM,EAAKE,WAClBR,EAAaM,EAAKG,WAAa,GAC/BH,EAAKI,eACLC,KAAK,KAEDG,EAAW,CACfd,EAAaM,EAAKS,YAClBf,EAAaM,EAAKU,eAClBL,KAAK,KAEP,MAAM,GAAN,OAAUE,EAAV,YAAsBC,EACvB,CAEM,SAASG,EAAuBZ,GACrC,IAAKA,EAAY,MAAO,GAExB,IAAIC,EAAO,IAAIC,KAAKF,GAEpB,MAAO,CACLL,EAAaM,EAAKE,WAClBR,EAAaM,EAAKG,WAAa,GAC/BH,EAAKI,eACLC,KAAK,IACR,CCPM,IAAMO,EAA4B,SACvCC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,EAA/B,wBAENI,EAAe,GACnB,GAAIF,EACF,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAQtC,OAAQD,IAAK,CACvC,IAAI0C,EAAIH,EAAQvC,GACZ2C,EAAWD,EAAEE,GACjB,GAAiB,iBAAbD,EAEFF,GAAY,WADZE,EAAW,gBACC,YAAoBD,EAAEjE,YAC7B,GAAiB,SAAbkE,EAAqB,CAC9B,IAAME,EAAYZ,EAAuBS,EAAEjE,MAAM,IACjD,GAAIiE,EAAEjE,MAAM,GAAI,CACd,IAAMqE,EAAUb,EAAuBS,EAAEjE,MAAM,IAC/CgE,GAAY,qBAAkBI,EAAlB,oBAAuCC,EACpD,KAAM,CACL,IAAMA,EAAUb,EAAuBS,EAAEjE,MAAM,IAC/CgE,GAAY,qBAAkBI,EAAlB,oBAAuCC,EACpD,CACF,MACCL,GAAY,WAAQE,EAAR,YAAoBD,EAAEjE,MAErC,CAaH,OAVI6D,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,6DAAkEoB,GAAlE,OAA8EM,GAA9E,OAA6FD,EAOrG,EAoBM,SAAeQ,EAAtB,kC,sDAAO,WACLb,GADK,4FAGDc,EAHC,UAGQlC,EAHR,6EAGoFoB,GAHpF,SASgBe,MAAMD,GATtB,cASD7E,EATC,gBAUwCA,EAAS+E,OAVjD,cAUDC,EAVC,QAWAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAA8B,CAC5BC,KAAMD,EAAKC,KAEd,IAfI,kBAgBEJ,GAhBF,6C,sBAmBA,SAAeK,IAAtB,+B,sDAAO,yGACDR,EADC,UACQlC,EADR,mDAOgBmC,MAAMD,GAPtB,cAOD7E,EAPC,gBAQqCA,EAAS+E,OAR9C,cAQDC,EARC,QASAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAA0B,CACxB7E,OAAQ6E,EAAK7E,OAEhB,IAbI,kBAcE0E,GAdF,6C,sBAiBA,SAAeM,EAAtB,oC,sDAAO,WACLvB,EACAwB,GAFK,4FAICV,EAAMf,EACVC,EACAwB,EAAYC,KACZD,EAAYE,SACZ,GACA,MATG,SAYgBX,MAAMD,GAZtB,cAYD7E,EAZC,gBAa6BA,EAAS+E,OAbtC,cAaDC,EAbC,QAcAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAoB,CAClBO,oBAAqBP,EAAKO,oBAC1BxC,KAAMF,EAAWmC,EAAKjC,MACtByC,WAAYR,EAAKQ,WACjBC,aAAcT,EAAKS,aACnBC,WAAYV,EAAKU,WACjBC,cAAeX,EAAKW,cACpBC,UAAWZ,EAAKY,UAChBC,4BAA6Bb,EAAKa,4BAClC1F,OAAQ6E,EAAK7E,OACb2F,QAASd,EAAKc,QACdb,KAAMD,EAAKC,KAEd,IA5BI,kBA6BEJ,GA7BF,4C,sBCtHA,SAAekB,EAAtB,kC,sDAAO,WACLnC,GADK,4FAGDc,EAHC,UAGQlC,EAHR,gDAGuDoB,GAHvD,SASgBe,MAAMD,GATtB,cASD7E,EATC,gBAU0BA,EAAS+E,OAVnC,cAUDC,EAVC,yBAYEA,GAZF,4C,sBCMA,SAAemB,EAAtB,kC,sDAAO,WACLpC,GADK,4FAGDc,EAHC,UAGQlC,EAHR,uDAG8DoB,EAH9D,sCASgBe,MAAMD,GATtB,cASD7E,EATC,gBAUkCA,EAAS+E,OAV3C,cAUDC,EAVC,QAWAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAwB,CACtBQ,WAAYR,EAAKQ,WACjBS,OAAQjB,EAAKiB,OACbC,kBAAmBlB,EAAKkB,kBACxBC,aAAcnB,EAAKmB,aACnBC,aAAcpB,EAAKoB,aACnBC,gBAAiBxD,EAAWmC,EAAKqB,iBACjCC,YAAazD,EAAWmC,EAAKsB,aAC7BC,eAAgBvB,EAAKuB,eACrBC,kBAAmBxB,EAAKwB,kBACxBC,2BAA4BzB,EAAKyB,2BACjCC,sBAAuB1B,EAAK0B,sBAC5BC,aAAc3B,EAAK2B,aAEtB,IA1BI,kBA2BE9B,GA3BF,6C,sBA8BA,SAAe+B,EAAtB,kC,sDAAO,WACLC,GADK,4FAGDnC,EAHC,UAGQlC,EAHR,oCAG2CqE,GAH3C,SASgBlC,MAAMD,GATtB,cASD7E,EATC,gBAU6BA,EAAS+E,OAVtC,cAUDC,EAVC,yBAYE,CACLW,WAAYqB,EACZZ,OAAQpB,EAAKoB,OACbC,kBAAmBrB,EAAKqB,kBACxBC,aAActB,EAAKsB,aACnBC,aAAcvB,EAAKuB,aACnBC,gBAAiBxD,EAAWgC,EAAKwB,iBACjCC,YAAazD,EAAWgC,EAAKyB,aAC7BC,eAAgB1B,EAAK0B,eACrBC,kBAAmB3B,EAAK2B,kBACxBC,2BAA4B5B,EAAK4B,2BACjCC,sBAAuB7B,EAAK6B,sBAC5BC,aAAc9B,EAAK8B,eAxBhB,4C,sBCmBA,SAAeG,EAAtB,kC,sDAAO,WACLC,GADK,wGAGDrC,EAHC,UAGQlC,EAHR,0DAGiEuE,GAHjE,SAagBpC,MAAMD,GAbtB,WAaD7E,EAbC,QAcSmH,GAdT,yCAeI,CACLnH,SAAU,CACRmH,IAAI,EACJC,eAAgBpH,EAASM,OACzB+G,QAASrH,EAASsH,cAnBnB,uBAwBwCtH,EAAS+E,OAxBjD,cAwBDC,EAxBC,OA0BDjB,EAAYiB,EAAKuC,mBA1BhB,UA4BmBrB,EAA+BnC,GA5BlD,eA4BDyD,EA5BC,iBA6BsBlC,EAAkCvB,EAAW,CACtEyB,KAAM,EACNC,SAAU,IA/BP,eA6BDgC,EA7BC,iBAkCgBtB,EAA2BpC,GAlC3C,eAkCD2D,EAlCC,iBAmCqBX,EAAuB/B,EAAK2C,mBAnCjD,eAmCDC,EAnCC,OAqCCC,EAA2B,CAC/BC,OAAQ9C,EAAK8C,OACbC,WAAY/E,EAAWgC,EAAKgD,0BAC5BC,YAAajF,EAAWgC,EAAKkD,kBAC7B1D,GAAIQ,EAAKuC,mBACTY,YAAanD,EAAKoD,aAClBC,cAAerD,EAAKsD,wBACpBC,aAAcvD,EAAKwD,kBACnBC,YAAazD,EAAK7E,KAClB+G,UAAWlC,EAAK0D,eAChBC,OAAQ3D,EAAK4D,sBACbtI,OAAQ0E,EAAK6D,sBACbC,UAAW9D,EAAK+D,yBAChB3D,KAAMJ,EAAKgE,oBACXC,QAASjE,EAAKkE,qBACdC,aAAcnE,EAAKoE,kBACnB5B,YAAaA,EACbC,eAAgBA,EAChB4B,oBAAqB3B,EACrB4B,qBAAsB1B,GAxDnB,kBA2D2B,CAC9B5H,SAAU,CAAC,EACXuJ,eAAgB1B,IA7Db,6C,sBAyEA,IAwBM2B,EAA2B,SAACD,GACvC,MAA+B,4BAAxBA,EAAenE,IACvB,EChKKhF,EAAoC,CACxCqJ,WAAOC,EACPC,YAAa,aACbC,4BAAwBF,GAGbG,EAA0B9J,YACrC,sBADqD,iDAErD,WAAOmH,GAAP,iGACyBD,EAAuBC,GADhD,cACQlH,EADR,yBAGSA,GAHT,2CAFqD,uDAS1C8J,EAAsB5J,YAAY,CAC7CC,KAAM,iBACNC,eAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ6I,EAAwB5I,SAAS,SAACR,GACzCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ6I,EAAwB3I,WAAW,SAACT,EAAOG,GAClDH,EAAMkJ,YAAc,OACpBlJ,EAAMmJ,uBAAyBhJ,EAAOC,OACvC,IACAG,QAAQ6I,EAAwBE,UAAU,SAACtJ,EAAOG,GACjDH,EAAMkJ,YAAc,WACpBlJ,EAAMgJ,MAAQ7I,EAAOC,OACtB,GACJ,IAGUmJ,GAA+B,SAACvJ,GAAD,OAC1CA,EAAMmJ,sBADoC,EAG7BE,KAAf,QCvCM1J,GAAgC,CACpCuJ,YAAa,aACbM,2BAAuBP,EACvBQ,wBAAoBR,GAGTS,GAA6BpK,YACxC,yBADwD,iDAExD,WAAOgE,GAAP,mGAC4Ba,EAA8Bb,GAD1D,cACQqG,EADR,gBAE+B/E,IAF/B,cAEQgF,EAFR,yBAIS,CACLD,YAAaA,EACbC,eAAgBA,IANpB,2CAFwD,uDAa7CC,GAAyBpK,YAAY,CAChDC,KAAM,oBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQmJ,GAA2BlJ,SAAS,SAACR,GAC5CA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQmJ,GAA2BjJ,WAAW,SAACT,EAAOG,GACrDH,EAAMkJ,YAAc,OACpBlJ,EAAMwJ,sBAAwBrJ,EAAOC,QAAQuJ,YAC7C3J,EAAMyJ,mBAAqBtJ,EAAOC,QAAQwJ,cAC3C,GACJ,IAGUE,GAA0B,SAAC9J,GAAD,OACrCA,EAAM+J,iBAD+B,EAGxBF,MAAf,QCWO,SAAeG,GAAtB,mC,wDAAO,WACLC,GADK,4FAGD7F,EAHC,UAGQlC,EAHR,iCAGwC+H,GAHxC,SASgB5F,MAAMD,GATtB,cASD7E,EATC,gBAU+BA,EAAS+E,OAVxC,cAUDC,EAVC,yBAYqB,CACxBhF,SAAUA,EACV2K,YAAa3F,EAAK2F,YAClBvF,KAAMJ,EAAKI,KACXa,QAASjB,EAAKiB,QACdF,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbqF,WAAYX,EAAKW,WACjBU,kBAAmBrB,EAAKqB,kBACxBuE,sBAAuB5F,EAAK4F,sBAC5BC,WAAY7H,EAAWgC,EAAK6F,YAC5BC,mBAAoB9H,EAAWgC,EAAK8F,oBACpCC,WAAY/F,EAAK+F,WACjBC,QAAShG,EAAKgG,QACdC,UAAWjG,EAAKiG,UAChBC,UAAWlG,EAAKkG,UAChBC,cAAenG,EAAKmG,cACpBC,YAAapG,EAAKoG,YAClBC,gBAAiBrG,EAAKqG,gBACtBC,yBAA0BtG,EAAKsG,yBAC/BC,cAAevG,EAAKuG,cACpB7C,eAAgB1D,EAAK0D,iBAjClB,4C,sBAqCA,IC7FDtI,GAA+B,CACnCuJ,YAAa,aACb6B,eAAW9B,GAGA+B,GAAqB1L,YAChC,iBADgD,iDAEhD,WAAO2K,GAAP,iGACyBD,GAAyBC,GADlD,cACQ1K,EADR,yBAGSA,GAHT,2CAFgD,uDASrC0L,GAAiBxL,YAAY,CACxCC,KAAM,YACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQyK,GAAmBxK,SAAS,SAACR,GACpCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQyK,GAAmBvK,WAAW,SAACT,EAAOG,GAC7CH,EAAMkJ,YAAc,OACpBlJ,EAAM+K,UAAY5K,EAAOC,OAC1B,GACJ,IAGU8K,GAAkB,SAAClL,GAAD,OAAsBA,EAAM+K,SAA5B,EAEhBE,MAAf,QCqCO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,4FAGDhH,EAHC,UAGQlC,EAHR,0BAGiCkJ,GAHjC,SASgB/G,MAAMD,GATtB,cASD7E,EATC,gBAU6CA,EAAS+E,OAVtD,cAUDC,EAVC,yBAYmC,CACtChF,SAAUA,EACV8L,0BAA2B9G,EAAK8G,0BAChC/F,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbyL,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvBC,cAAejH,EAAKiH,cACpBC,MAAOlH,EAAKkH,MACZC,OAAQnH,EAAKmH,OACbC,UAAWpH,EAAKoH,UAChBC,YAAarH,EAAKqH,YAClBC,UAAWtJ,EAAWgC,EAAKsH,WAC3BC,WAAYvJ,EAAWgC,EAAKuH,YAC5BhB,cAAevG,EAAKuG,gBA3BjB,4C,sBCpDA,SAAeiB,GAAtB,mC,wDAAO,WACLxF,GADK,4FAGDnC,EAHC,UAGQlC,EAHR,oCAG2CqE,GAH3C,SASgBlC,MAAMD,GATtB,cASD7E,EATC,gBAU6BA,EAAS+E,OAVtC,cAUDC,EAVC,yBAYmB,CACtBW,WAAYX,EAAKW,WACjBS,OAAQpB,EAAKoB,OACbC,kBAAmBrB,EAAKqB,kBACxBC,aAActB,EAAKsB,aACnBE,gBAAiBxD,EAAWgC,EAAKwB,iBACjCC,YAAazD,EAAWgC,EAAKyB,aAC7BC,eAAgB1B,EAAK0B,eACrBC,kBAAmB3B,EAAK2B,kBACxBC,2BAA4B5B,EAAK4B,2BACjCC,sBAAuB7B,EAAK6B,sBAC5BC,aAAc9B,EAAK8B,eAvBhB,4C,sBC0DA,SAAe2F,GAAtB,mC,wDAAO,WACL/B,GADK,8FAGD7F,EAHC,UAGQlC,EAHR,uCAG8C+H,GAH9C,SASgB5F,MAAMD,GATtB,cASD7E,EATC,gBAUoCA,EAAS+E,OAV7C,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,WAYCW,EAZD,QAcD1H,EAAK8G,0BAdJ,kCAgBKF,GACJ5G,EAAK8G,2BAjBN,QAeH9G,EAAK2H,+BAfF,wCAqB0B,CAC7B3M,SAAUA,EACV4M,iBAAkB5H,EAAK4H,iBACvBxH,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbyL,UAAW/G,EAAK+G,UAChBR,cAAemB,EAAetG,OAC9B4F,iBAAkBhH,EAAKgH,iBACvBa,aAAc7J,EAAWgC,EAAK6H,cAC9BC,WAAY9J,EAAWgC,EAAK8H,YAC5BZ,MAAOlH,EAAKkH,MACZa,QAAS/H,EAAK+H,QACdC,WAAYhI,EAAKgI,WACjBC,SAAUjI,EAAKiI,SACfZ,YAAarH,EAAKqH,YAClBa,iBAAkBlI,EAAKkI,iBACvBpB,0BAA2B9G,EAAK8G,0BAChCa,+BAAgC3H,EAAK2H,iCAxClC,6C,sBC9EP,IAAMvM,GAAoC,CACxCuJ,YAAa,aACbwD,oBAAgBzD,GAGL0D,GAA0BrN,YACrC,sBADqD,iDAErD,WAAOsN,GAAP,iGACyBZ,GAA8BY,GADvD,cACQrN,EADR,yBAGSA,GAHT,2CAFqD,uDAS1CsN,GAAsBpN,YAAY,CAC7CC,KAAM,iBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQoM,GAAwBnM,SAAS,SAACR,GACzCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQoM,GAAwBlM,WAAW,SAACT,EAAOG,GAClDH,EAAMkJ,YAAc,OACpBlJ,EAAM0M,eAAiBvM,EAAOC,OAC/B,GACJ,IAGU0M,GAAuB,SAAC9M,GAAD,OAAsBA,EAAM0M,cAA5B,EAErBG,MAAf,QCFO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,gGAGD5I,EAHC,UAGQlC,EAHR,2CAGkD8K,GAHlD,SASgB3I,MAAMD,GATtB,cASD7E,EATC,gBAUoCA,EAAS+E,OAV7C,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,eAYCW,EAZD,iBAawBD,GAC3BzH,EAAK0I,qBAdF,eAaCP,EAbD,yBAiB0B,CAC7BQ,MAAO3I,EAAK2I,MACZvI,KAAMJ,EAAKI,KACX2G,UAAW/G,EAAK+G,UAChBhG,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB5H,QAASjB,EAAKiB,QACd6H,qBAAsB9K,EAAWgC,EAAK8I,sBACtCC,SAAU/I,EAAK+I,SACf/N,SAAUgF,EAAKhF,SACf0N,oBAAqB1I,EAAK0I,oBAC1BxG,UAAWwF,EAAe7F,sBAC1B0E,cAAemB,EAAetG,OAC9B4H,0BAA2Bb,EAAepH,YAhCvC,6C,sBCjCP,IAAM3F,GAA2C,CAC/CuJ,YAAa,aACbsE,2BAAuBvE,GAGZwE,GAAiCnO,YAC5C,6BAD4D,iDAE5D,WAAOoO,GAAP,iGACyBX,GACrBW,GAFJ,cACQnO,EADR,yBAKSA,GALT,2CAF4D,uDAWjDoO,GAA6BlO,YAAY,CACpDC,KAAM,wBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQkN,GAA+BjN,SAAS,SAACR,GAChDA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQkN,GAA+BhN,WAAW,SAACT,EAAOG,GACzDH,EAAMkJ,YAAc,OACpBlJ,EAAMwN,sBAAwBrN,EAAOC,OACtC,GACJ,IAGUwN,GAA8B,SAAC5N,GAAD,OACzCA,EAAMwN,qBADmC,EAG5BG,MAAf,QCPO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,gGAGD1J,EAHC,UAGQlC,EAHR,8BAGqC4L,GAHrC,SASgBzJ,MAAMD,GATtB,cASD7E,EATC,gBAU8CA,EAAS+E,OAVvD,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,eAYCW,EAZD,iBAamBjC,GAAyBzF,EAAKwJ,mBAbjD,eAaChD,EAbD,yBAeoC,CACvCxL,SAAUA,EACVyO,OAAQzJ,EAAKyJ,OACbrJ,KAAMJ,EAAKI,KACX2G,UAAW/G,EAAK+G,UAChBhG,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB5H,QAASjB,EAAKiB,QACdyI,OAAQ1J,EAAK0J,OACbC,UAAW3J,EAAK2J,UAChBC,QAAS5J,EAAK4J,QACdC,SAAU7J,EAAK6J,SACfC,YAAa9J,EAAK8J,YAClBC,YAAa/J,EAAK+J,YAClB1C,YAAarH,EAAKqH,YAClBnF,UAAWwF,EAAe7F,sBAC1B0E,cAAemB,EAAetG,OAC9BoF,UAAWA,IAlCR,6C,sBC/BP,IAAMpL,GAA8C,CAClDuJ,YAAa,aACbqF,8BAA0BtF,GAGfuF,GAAoClP,YAC/C,gCAD+D,iDAE/D,WAAOwO,GAAP,iGACyBD,GAAwCC,GADjE,cACQvO,EADR,yBAGSA,GAHT,2CAF+D,uDASpDkP,GAAgChP,YAAY,CACvDC,KAAM,2BACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQiO,GAAkChO,SAAS,SAACR,GACnDA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQiO,GAAkC/N,WAAW,SAACT,EAAOG,GAC5DH,EAAMkJ,YAAc,OACpBlJ,EAAMuO,yBAA2BpO,EAAOC,OACzC,GACJ,IAGUsO,GAAiC,SAAC1O,GAAD,OAC5CA,EAAM2O,+BADsC,EAG/BF,MAAf,QCUO,SAAeG,GAAtB,mC,wDAAO,WACLC,GADK,gGAGDzK,EAHC,UAGQlC,EAHR,6DAGoE2M,GAHpE,SASgBxK,MAAMD,GATtB,cASD7E,EATC,gBAUiCA,EAAS+E,OAV1C,cAUDC,EAVC,iBAY+ByH,GAClCzH,EAAKuK,sBAbF,eAYCC,EAZD,iBAewBhD,GAC3BgD,EAAsBzD,WAhBnB,eAeCW,EAfD,yBAmBuB,CAC1B1M,SAAUA,EACVyP,6BAA8BzK,EAAKyK,6BACnC1J,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB6B,sBAAuB1K,EAAK0K,sBAC5BC,mBAAoB3K,EAAK2K,mBACzBC,MAAO5K,EAAK4K,MACZL,qBAAsBvK,EAAKuK,qBAC3BpC,eAAgBqC,EAChBtI,UAAWwF,EAAe7F,wBAhCvB,6C,sBC9CP,IAAMzG,GAAiC,CACrCuJ,YAAa,aACbkG,iBAAanG,GAGFoG,GAAuB/P,YAClC,mBADkD,iDAElD,WAAOuP,GAAP,iGACyBD,GAA2BC,GADpD,cACQtP,EADR,yBAGSA,GAHT,2CAFkD,uDASvC+P,GAAmB7P,YAAY,CAC1CC,KAAM,cACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ8O,GAAqB7O,SAAS,SAACR,GACtCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ8O,GAAqB5O,WAAW,SAACT,EAAOG,GAC/CH,EAAMkJ,YAAc,OACpBlJ,EAAMoP,YAAcjP,EAAOC,OAC5B,GACJ,IAGUmP,GAAoB,SAACvP,GAAD,OAAsBA,EAAMoP,WAA5B,EAElBE,MAAf,QCEO,SAAeE,GAAtB,mC,wDAAO,WACL1B,GADK,gGAGD1J,EAHC,UAGQlC,EAHR,8BAGqC4L,GAHrC,SASgBzJ,MAAMD,GATtB,cASD7E,EATC,gBAWGA,EAAS+E,OAXZ,cAUDC,EAVC,iBAcwBwH,GAAuBxH,EAAK+G,WAdpD,eAcCW,EAdD,iBAeiCd,GACpC5G,EAAKwJ,mBAhBF,eAeC0B,EAfD,yBAmBsD,CACzDzB,OAAQzJ,EAAKyJ,OACbrJ,KAAMJ,EAAKI,KACX2G,UAAW/G,EAAK+G,UAChBhG,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB5H,QAASjB,EAAKiB,QACdyI,OAAQ1J,EAAK0J,OACbC,UAAW3J,EAAK2J,UAChBC,QAAS5J,EAAK4J,QACdC,SAAU7J,EAAK6J,SACfC,YAAa9J,EAAK8J,YAClBC,YAAa/J,EAAK+J,YAClB1C,YAAarH,EAAKqH,YAClBnF,UAAWwF,EAAe7F,sBAC1B0E,cAAemB,EAAetG,OAC9BoI,kBAAmBxJ,EAAKwJ,kBACxB2B,+BAAgCD,IAtC7B,6C,sBC5BA,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,4FAGDxL,EAHC,UAGQlC,EAHR,+FAGsG0N,GAHtG,SASgBvL,MAAMD,GATtB,cASD7E,EATC,gBAUuCA,EAAS+E,OAVhD,cAUDC,EAVC,iBAYuBwH,GAAuBxH,EAAK+G,WAZnD,eAYL/G,EAAK0H,eAZA,yBAc6B,CAChC1M,SAAUA,EACVyP,6BAA8BzK,EAAKyK,6BACnCrK,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB6B,sBAAuB1K,EAAK0K,sBAC5BC,mBAAoB3K,EAAK2K,mBACzB5D,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvBU,eAAgB1H,EAAK0H,iBA3BlB,6C,sBCKA,IAAM4D,GAA4B,SAAClL,GACxC,MAAgB,eAATA,GAAkC,sBAATA,CACjC,EAMM,SAAemL,GAAtB,mC,wDAAO,WACLhC,GADK,8FAGD1J,EAHC,UAGQlC,EAHR,8BAGqC4L,GAHrC,SASgBzJ,MAAMD,GATtB,cASD7E,EATC,gBAU0BA,EAAS+E,OAVnC,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,eAYCW,EAZD,yBAcgB,CACnB1M,SAAUA,EACVyO,OAAQzJ,EAAKyJ,OACbrJ,KAAMJ,EAAKI,KACX2G,UAAW/G,EAAK+G,UAChBhG,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbsN,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzB5H,QAASjB,EAAKiB,QACdyI,OAAQ1J,EAAK0J,OACbC,UAAW3J,EAAK2J,UAChBC,QAAS5J,EAAK4J,QACdC,SAAU7J,EAAK6J,SACfC,YAAa9J,EAAK8J,YAClBC,YAAa/J,EAAK+J,YAClB1C,YAAarH,EAAKqH,YAClBnF,UAAWwF,EAAe7F,sBAC1B0E,cAAemB,EAAetG,SAhC3B,6C,sBC4EA,SAAeoK,GAAtB,mC,wDAAO,WACLC,GADK,oGAGD5L,EAHC,UAGQlC,EAHR,6CAGoD8N,GAHpD,SASkB3L,MAAMD,GATxB,cASC7E,EATD,gBAUmCA,EAAS+E,OAV5C,UAUCC,EAVD,OAYD0L,GAAc,EACdC,GAA4B,GAE5B3L,EAAKyJ,OAfJ,kCAgBuB8B,GAAoBvL,EAAKyJ,QAhBhD,WAgBGmC,EAhBH,QAiBCN,GAA0BM,EAAYxL,MAjBvC,wBAkBDsL,GAAc,EAlBb,UAoBOpC,GAAwCtJ,EAAKyJ,QApBpD,QAmBDzJ,EAAKgK,yBAnBJ,sCAsBD2B,GAA4B,EAtB3B,UAwBOV,GACJjL,EAAKyJ,QAzBR,QAuBDzJ,EAAK6L,2BAvBJ,mBA8BD7L,EAAKwJ,kBA9BJ,qBA+BCkC,EA/BD,kCAgCsBjG,GAAyBzF,EAAKwJ,mBAhCpD,QAgCDxJ,EAAKwG,UAhCJ,mCAiCQmF,EAjCR,kCAmCO/E,GAAuC5G,EAAKwJ,mBAnCnD,QAkCDxJ,EAAK2H,+BAlCJ,gDAqCqCyD,GACpCpL,EAAKwJ,mBAtCN,eAqCDxJ,EAAK8L,yBArCJ,iBAyCgBrE,GAA8BzH,EAAKwJ,mBAzCnD,SAyCKuC,EAzCL,QA2CM/Q,SAASmH,KACdnC,EAAKmI,eAAiB4D,GA5CvB,iCAiDuB,CAC1BC,cAAehM,EAAKgM,cACpB5L,KAAMJ,EAAKI,KACX2G,UAAW/G,EAAK+G,UAChBhG,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbiM,WAAYvJ,EAAWgC,EAAKuH,YAC5BO,WAAY9J,EAAWgC,EAAK8H,YAC5BmE,QAASjM,EAAKiM,QACdhL,QAASjB,EAAKiB,QACdjG,SAAUgF,EAAKhF,SACfwO,kBAAmBxJ,EAAKwJ,kBACxBC,OAAQzJ,EAAKyJ,OACbjD,UAAWxG,EAAKwG,UAChBwD,yBAA0BhK,EAAKgK,yBAC/BrC,+BAAgC3H,EAAK2H,+BACrCQ,eAAgBnI,EAAKmI,eACrB0D,2BAA4B7L,EAAK6L,2BACjCC,yBAA0B9L,EAAK8L,2BAnE5B,6C,sBClGP,IAAM1Q,GAAiC,CACrCuJ,YAAa,aACbuH,iBAAaxH,GAGFyH,GAAuBpR,YAClC,mBADkD,iDAElD,WAAO0Q,GAAP,iGACyBD,GAA2BC,GADpD,cACQzQ,EADR,yBAGSA,GAHT,2CAFkD,uDASvCoR,GAAmBlR,YAAY,CAC1CC,KAAM,cACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQmQ,GAAqBlQ,SAAS,SAACR,GACtCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQmQ,GAAqBjQ,WAAW,SAACT,EAAOG,GAC/CH,EAAMkJ,YAAc,OACpBlJ,EAAMyQ,YAActQ,EAAOC,OAC5B,GACJ,IAGUwQ,GAAoB,SAAC5Q,GAAD,OAAsBA,EAAMyQ,WAA5B,EAElBE,MAAf,QCnCMhR,GAA6C,CACjDuJ,YAAa,aACbuG,6BAAyBxG,GAGd4H,GAAmCvR,YAC9C,+BAD8D,iDAE9D,WAAO8L,GAAP,iGACyBD,GACrBC,GAFJ,cACQ7L,EADR,yBAKSA,GALT,2CAF8D,uDAWnDuR,GAA+BrR,YAAY,CACtDC,KAAM,0BACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQsQ,GAAiCrQ,SAAS,SAACR,GAClDA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQsQ,GAAiCpQ,WAAW,SAACT,EAAOG,GAC3DH,EAAMkJ,YAAc,OACpBlJ,EAAMyP,wBAA0BtP,EAAOC,OACxC,GACJ,IAGU2Q,GAAgC,SAAC/Q,GAAD,OAC3CA,EAAMyP,uBADqC,EAG9BqB,MAAf,QCkCO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,8FAGD7M,EAHC,UAGQlC,EAHR,sCAG6C+O,GAH7C,SASgB5M,MAAMD,GATtB,cASD7E,EATC,gBAU8BA,EAAS+E,OAVvC,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,WAYCW,EAZD,QAcD1H,EAAK8G,0BAdJ,kCAgBKF,GACJ5G,EAAK8G,2BAjBN,QAeH9G,EAAK2H,+BAfF,wCAqBoB,CACvB3M,SAAUA,EACV2R,WAAY3M,EAAK2M,WACjBvM,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbyL,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvBF,0BAA2B9G,EAAK8G,0BAChC8F,iBAAkB5M,EAAK4M,iBACvBC,OAAQ7M,EAAK6M,OACbC,oBAAqB9M,EAAK8M,oBAC1B1F,UAAWpH,EAAKoH,UAChB2F,wBAAyB/M,EAAK+M,wBAC9BC,YAAahN,EAAKgN,YAClBC,aAAcjN,EAAKiN,aACnBC,aAAclP,EAAWgC,EAAKkN,cAC9BC,aAAcnP,EAAWgC,EAAKmN,cAC9BrF,WAAY9J,EAAWgC,EAAK8H,YAC5BsF,iBAAkB5O,EAAewB,EAAKoN,kBACtCC,WAAY7O,EAAewB,EAAKqN,YAChCC,gBAAiBtN,EAAKsN,gBACtBC,eAAgBvN,EAAKuN,eACrBC,kBAAmBxN,EAAKwN,kBACxBC,oBAAqBzN,EAAKyN,oBAC1BpG,YAAarH,EAAKqH,YAClBqG,yBAA0B1N,EAAK0N,yBAC/BC,oBAAqB3N,EAAK2N,oBAC1BC,mBAAoB5N,EAAK4N,mBACzBC,iBAAkB7N,EAAK6N,iBACvBlG,+BAAgC3H,EAAK2H,+BACrCpB,cAAemB,EAAetG,SArD3B,6C,sBC3EP,IAAMhG,GAA8B,CAClCuJ,YAAa,aACbmJ,cAAUpJ,GAGCqJ,GAAoBhT,YAC/B,gBAD+C,iDAE/C,WAAO2R,GAAP,iGACyBD,GAAwBC,GADjD,cACQ1R,EADR,yBAGSA,GAHT,2CAF+C,uDASpCgT,GAAgB9S,YAAY,CACvCC,KAAM,WACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ+R,GAAkB9R,SAAS,SAACR,GACnCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ+R,GAAkB7R,WAAW,SAACT,EAAOG,GAC5CH,EAAMkJ,YAAc,OACpBlJ,EAAMqS,SAAWlS,EAAOC,OACzB,GACJ,IAGUoS,GAAiB,SAACxS,GAAD,OAAsBA,EAAMqS,QAA5B,EAEfE,MAAf,QCiCO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,8FAGDtO,EAHC,UAGQlC,EAHR,wCAG+CwQ,GAH/C,SASgBrO,MAAMD,GATtB,cASD7E,EATC,gBAU+BA,EAAS+E,OAVxC,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,WAYCW,EAZD,QAcD1H,EAAK8G,0BAdJ,kCAgBKF,GACJ5G,EAAK8G,2BAjBN,QAeH9G,EAAK2H,+BAfF,wCAqBqB,CACxB3M,SAAUA,EACVoT,YAAapO,EAAKoO,YAClBhO,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbyL,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvBa,aAAc7J,EAAWgC,EAAK6H,cAC9BC,WAAY9J,EAAWgC,EAAK8H,YAC5BuG,aAAcrQ,EAAWgC,EAAKqO,cAC9BC,oBAAqBtO,EAAKsO,oBAC1BxH,0BAA2B9G,EAAK8G,0BAChCa,+BAAgC3H,EAAK2H,+BACrCpB,cAAemB,EAAetG,SApC3B,6C,sBCjEP,IAAMhG,GAA+B,CACnCuJ,YAAa,aACb4J,eAAW7J,GAGA8J,GAAqBzT,YAChC,iBADgD,iDAEhD,WAAOoT,GAAP,iGACyBD,GAAyBC,GADlD,cACQnT,EADR,yBAGSA,GAHT,2CAFgD,uDASrCyT,GAAiBvT,YAAY,CACxCC,KAAM,YACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQwS,GAAmBvS,SAAS,SAACR,GACpCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQwS,GAAmBtS,WAAW,SAACT,EAAOG,GAC7CH,EAAMkJ,YAAc,OACpBlJ,EAAM8S,UAAY3S,EAAOC,OAC1B,GACJ,IAGU6S,GAAkB,SAACjT,GAAD,OAAsBA,EAAM8S,SAA5B,EAEhBE,MAAf,QC5BO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,8FAGD/O,EAHC,UAGQlC,EAHR,0EAGiFiR,GAHjF,SASgB9O,MAAMD,GATtB,cASD7E,EATC,gBAU2CA,EAAS+E,OAVpD,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,WAYCW,EAZD,QAcD1H,EAAK2M,WAdJ,kCAe0BF,GAAwBzM,EAAK2M,YAfvD,QAeH3M,EAAK6O,gBAfF,wCAkBiC,CACpC7T,SAAUA,EACV8T,wBAAyB9O,EAAK8O,wBAC9B/N,UAAWf,EAAKe,UAChBzF,OAAQ0E,EAAK1E,OACbyT,QAAS/O,EAAK+O,QACdhI,UAAW/G,EAAK+G,UAChB4F,WAAY3M,EAAK2M,WACjB/D,cAAe5K,EAAWgC,EAAK4I,eAC/BC,QAAS7K,EAAWgC,EAAK6I,SACzBgG,gBAAiB7O,EAAK6O,gBACtBnH,eAAgBA,IA7Bb,6C,sBCPP,IAAMtM,GAA2C,CAC/CuJ,YAAa,aACbqK,0BAAsBtK,GAGXuK,GAAiClU,YAC5C,6BAD4D,iDAE5D,WAAO6T,GAAP,iGACyBD,GACrBC,GAFJ,cACQ5T,EADR,yBAKSA,GALT,2CAF4D,uDAWjDkU,GAA6BhU,YAAY,CACpDC,KAAM,wBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQiT,GAA+BhT,SAAS,SAACR,GAChDA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQiT,GAA+B/S,WAAW,SAACT,EAAOG,GACzDH,EAAMkJ,YAAc,OACpBlJ,EAAMuT,qBAAuBpT,EAAOC,OACrC,GACJ,IAGUsT,GAA8B,SAAC1T,GAAD,OACzCA,EAAM2T,qBADmC,EAG5BF,MAAf,QCxBO,SAAeG,GAAtB,mC,wDAAO,WACLC,GADK,8FAGDzP,EAHC,UAGQlC,EAHR,yDAGgE2R,GAHhE,SASgBxP,MAAMD,GATtB,cASD7E,EATC,gBAU6BA,EAAS+E,OAVtC,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,eAYCW,EAZD,yBAcmB,CACtB1M,SAAUA,EACVuU,UAAWvP,EAAKuP,UAChBnP,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbkU,YAAaxR,EAAWgC,EAAKwP,aAC7BC,YAAazP,EAAKyP,YAClBC,eAAgB1P,EAAK0P,eACrBC,SAAU3P,EAAK2P,SACfC,UAAW5P,EAAK4P,UAChBC,aAAc7P,EAAK6P,aACnBC,eAAgB9P,EAAK8P,eACrBC,YAAa/P,EAAK+P,YAClBC,kBAAmBhQ,EAAKgQ,kBACxBC,iBAAkBjQ,EAAKiQ,iBACvB1J,cAAemB,EAAetG,OAC9BsG,eAAgBA,IAhCb,6C,sBCjBP,IAAMtM,GAA6B,CACjCuJ,YAAa,aACbuL,aAASxL,GAGEyL,GAAmBpV,YAC9B,eAD8C,iDAE9C,WAAOuU,GAAP,iGACyBD,GAAuBC,GADhD,cACQtU,EADR,yBAGSA,GAHT,2CAF8C,uDASnCoV,GAAelV,YAAY,CACtCC,KAAM,UACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQmU,GAAiBlU,SAAS,SAACR,GAClCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQmU,GAAiBjU,WAAW,SAACT,EAAOG,GAC3CH,EAAMkJ,YAAc,OACpBlJ,EAAMyU,QAAUtU,EAAOC,OACxB,GACJ,IAGUwU,GAAgB,SAAC5U,GAAD,OAAsBA,EAAMyU,OAA5B,EAEdE,MAAf,QCsIO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,8FAGD1Q,EAHC,UAGQlC,EAHR,qCAG4C4S,GAH5C,SASgBzQ,MAAMD,GATtB,cASD7E,EATC,gBAUmCA,EAAS+E,OAV5C,cAUDC,EAVC,iBAYwBwH,GAAuBxH,EAAK+G,WAZpD,WAYCW,EAZD,QAcD1H,EAAK8G,0BAdJ,kCAgBKF,GACJ5G,EAAK8G,2BAjBN,QAeH9G,EAAK2H,+BAfF,mBAqBD3H,EAAKuK,qBArBJ,kCAsBgC9C,GACjCzH,EAAKuK,sBAvBJ,QAsBHvK,EAAKwK,sBAtBF,mBA2BDxK,EAAK2M,WA3BJ,kCA4B0BF,GAAwBzM,EAAK2M,YA5BvD,QA4BH3M,EAAK6O,gBA5BF,mBA+BD7O,EAAKoO,YA/BJ,kCAgC2BF,GAAyBlO,EAAKoO,aAhCzD,QAgCHpO,EAAKwQ,iBAhCF,wCAmCyB,CAC5BxV,SAAUA,EACVyV,gBAAiBzQ,EAAKyQ,gBACtBrQ,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChBE,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbyL,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvB4B,cAAe5K,EAAWgC,EAAK4I,eAC/B8H,UAAW1Q,EAAK0Q,UAChB5J,0BAA2B9G,EAAK8G,0BAChCyD,qBAAsBvK,EAAKuK,qBAC3BoC,WAAY3M,EAAK2M,WACjByB,YAAapO,EAAKoO,YAClB/G,YAAarH,EAAKqH,YAClBsJ,oBAAqB3S,EAAWgC,EAAK2Q,qBACrCC,mBAAoB5S,EAAWgC,EAAK4Q,oBACpCjJ,+BAAgC3H,EAAK2H,+BACrC6C,sBAAuBxK,EAAKwK,sBAC5B9C,eAAgBA,EAChBmH,gBAAiB7O,EAAK6O,gBACtB2B,iBAAkBxQ,EAAKwQ,mBAzDpB,6C,sBCtKP,IAAMpV,GAAmC,CACvCuJ,YAAa,aACbkM,mBAAenM,GAGJoM,GAAyB/V,YACpC,qBADoD,iDAEpD,WAAOwV,GAAP,iGACyBD,GAA6BC,GADtD,cACQvV,EADR,yBAGSA,GAHT,2CAFoD,uDASzC+V,GAAqB7V,YAAY,CAC5CC,KAAM,gBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ8U,GAAuB7U,SAAS,SAACR,GACxCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ8U,GAAuB5U,WAAW,SAACT,EAAOG,GACjDH,EAAMkJ,YAAc,OACpBlJ,EAAMoV,cAAgBjV,EAAOC,OAC9B,GACJ,IAGUmV,GAAsB,SAACvV,GAAD,OAAsBA,EAAMoV,aAA5B,EAEpBE,MAAf,QCnCM3V,GAAyC,CAC7CuJ,YAAa,aACbsM,yBAAqBvM,GAGVwM,GAA+BnW,YAC1C,2BAD0D,iDAE1D,WAAOwO,GAAP,iGAEU0B,GAA0D1B,GAFpE,cACQvO,EADR,yBAISA,GAJT,2CAF0D,uDAU/CmW,GAA2BjW,YAAY,CAClDC,KAAM,sBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQkV,GAA6BjV,SAAS,SAACR,GAC9CA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQkV,GAA6BhV,WAAW,SAACT,EAAOG,GACvDH,EAAMkJ,YAAc,OACpBlJ,EAAMwV,oBAAsBrV,EAAOC,OACpC,GACJ,IAGUuV,GAA4B,SAAC3V,GAAD,OACvCA,EAAMwV,mBADiC,EAG1BE,MAAf,QCrCM/V,GAAuC,CAC3CuJ,YAAa,aACb0M,uBAAmB3M,GAGR4M,GAA6BvW,YACxC,yBADwD,iDAExD,WAAOsQ,GAAP,iGACyBD,GACrBC,GAFJ,cACQrQ,EADR,yBAKSA,GALT,2CAFwD,uDAW7CuW,GAAyBrW,YAAY,CAChDC,KAAM,oBACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQsV,GAA2BrV,SAAS,SAACR,GAC5CA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQsV,GAA2BpV,WAAW,SAACT,EAAOG,GACrDH,EAAMkJ,YAAc,OACpBlJ,EAAM4V,kBAAoBzV,EAAOC,OAClC,GACJ,IAGU2V,GAA0B,SAAC/V,GAAD,OACrCA,EAAM4V,iBAD+B,EAGxBE,MAAf,QC7BO,SAAeE,GAAtB,mC,wDAAO,WACLC,GADK,4FAGD7R,EAHC,UAGQlC,EAHR,2FAGkG+T,GAHlG,SASgB5R,MAAMD,GATtB,cASD7E,EATC,gBAU8CA,EAAS+E,OAVvD,cAUDC,EAVC,iBAYuBwH,GAAuBxH,EAAK+G,WAZnD,eAYL/G,EAAK0H,eAZA,yBAcoC,CACvC1M,SAAUA,EACV2W,2BAA4B3R,EAAK2R,2BACjCvR,KAAMJ,EAAKI,KACXW,UAAWf,EAAKe,UAChB6Q,aAAc5R,EAAK4R,aACnB3Q,QAASjB,EAAKiB,QACd3F,OAAQ0E,EAAK1E,OACbuW,mCAAoC7T,EAClCgC,EAAK6R,oCAEPC,6BAA8B9T,EAAWgC,EAAK8R,8BAC9CC,iBAAkB/R,EAAK+R,iBACvBpH,mBAAoB3K,EAAK2K,mBACzB5D,UAAW/G,EAAK+G,UAChBC,iBAAkBhH,EAAKgH,iBACvBU,eAAgB1H,EAAK0H,iBA9BlB,6C,sBCTP,IAAMtM,GAA8C,CAClDuJ,YAAa,aACbqN,8BAA0BtN,GAGfuN,GAAoClX,YAC/C,gCAD+D,iDAE/D,WAAO2W,GAAP,iGACyBD,GACrBC,GAFJ,cACQ1W,EADR,yBAKSA,GALT,2CAF+D,uDAWpDkX,GAAgChX,YAAY,CACvDC,KAAM,2BACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQiW,GAAkChW,SAAS,SAACR,GACnDA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQiW,GAAkC/V,WAAW,SAACT,EAAOG,GAC5DH,EAAMkJ,YAAc,OACpBlJ,EAAMuW,yBAA2BpW,EAAOC,OACzC,GACJ,IAGUsW,GAAiC,SAAC1W,GAAD,OAC5CA,EAAMuW,wBADsC,EAG/BE,MAAf,QC3BaxU,GAHI,uCAKJC,IADa,UAAMD,GAAN,UACN,UAAMA,KCwCnB,SAAe0U,GAAtB,mC,wDAAO,WACLC,GADK,8FAGDxS,EAHC,UAGQlC,GAHR,uCAG8C0U,GAH9C,SASgBvS,MAAMD,GATtB,WASD7E,EATC,QAWSmH,GAXT,yCAYI,CACLnH,SAAU,CACRmH,IAAI,EACJC,eAAgBpH,EAASM,OACzB+G,QAASrH,EAASsH,cAhBnB,uBAqB8BtH,EAAS+E,OArBvC,cAqBDC,EArBC,OAuBCsS,EAA6B,CACjCD,YAAarS,EAAKqS,YAClBE,cAAevS,EAAKuS,cACpBC,cAAexS,EAAKwS,cACpBpR,OAAQpB,EAAKoB,OACb9F,OAAQ0E,EAAK1E,OACbmX,uBAAwBzS,EAAKyS,uBAC7BC,oBAAqB1S,EAAK0S,oBAC1BC,qBAAsB3S,EAAK2S,sBA/BxB,kBAkCqB,CACxB3X,SAAU,CAAC,EACXsX,SAAUA,IApCP,6C,sBAwCA,IC5FDlX,GAA8B,CAClCqJ,WAAOC,EACPC,YAAa,aACbiO,sBAAkBlO,GAGPmO,GAAoB9X,YAC/B,gBAD+C,iDAE/C,WAAO+X,GAAP,iGACyBV,GAAwBU,GADjD,cACQ9X,EADR,yBAGSA,GAHT,2CAF+C,uDASpC+X,GAAgB7X,YAAY,CACvCC,KAAM,WACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ6W,GAAkB5W,SAAS,SAACR,GACnCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ6W,GAAkB3W,WAAW,SAACT,EAAOG,GAC5CH,EAAMkJ,YAAc,OACpBlJ,EAAMmX,iBAAmBhX,EAAOC,OACjC,IACAG,QAAQ6W,GAAkB9N,UAAU,SAACtJ,EAAOG,GAC3CH,EAAMkJ,YAAc,WACpBlJ,EAAMgJ,MAAQ7I,EAAOC,OACtB,GACJ,IAMYkX,MAAf,QC9BarV,GAHI,kCAKJC,IADa,UAAMD,GAAN,UACN,UAAMA,KCkBnB,SAAesV,GAAtB,mC,wDAAO,WACLrS,GADK,8FAGDd,EAHC,UAGQlC,GAHR,uCAG8CgD,GAH9C,SASgBb,MAAMD,GATtB,WASD7E,EATC,QAWSmH,GAXT,yCAYI,CACLnH,SAAU,CACRmH,IAAI,EACJC,eAAgBpH,EAASM,OACzB+G,QAASrH,EAASsH,cAhBnB,uBAqB+CtH,EAAS+E,OArBxD,cAqBDC,EArBC,OAuBCiT,EAA+D,CACnEtS,WAAYX,EAAKW,WACjBS,OAAQpB,EAAKoB,OACbE,aAActB,EAAKsB,aACnBC,aAAcvB,EAAKuB,aACnB2R,uBAAwBlT,EAAKkT,uBAC7BC,UAAWnT,EAAKmT,UAChBC,cAAepT,EAAKoT,cACpBC,yBAA0BrT,EAAKqT,yBAC/B7R,gBAAiBxB,EAAKwB,gBACtBE,eAAgB1B,EAAK0B,eACrBE,2BAA4B5B,EAAK4B,2BACjC0R,uBAAwBtT,EAAKsT,uBAC7BC,eAAgBvT,EAAKuT,eACrBC,YAAaxT,EAAKwT,aArCf,kBAwC6C,CAChDxY,SAAU,CAAC,EACXiY,0BAA2BA,IA1CxB,6C,sBAqMA,SAAeQ,KAAtB,gC,wDAAO,yGACD5T,EADC,UACQlC,GADR,4CAOgBmC,MAAMD,GAPtB,cAOD7E,EAPC,gBAQoDA,EAAS+E,OAR7D,cAQDC,EARC,QASAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAoD,CAClD7E,OAAQ6E,EAAK7E,OAEhB,IAbI,kBAcE0E,GAdF,6C,sBA0BA,SAAe0T,KAAtB,gC,wDAAO,yGACD7T,EADC,UACQlC,GADR,sDAOgBmC,MAAMD,GAPtB,cAOD7E,EAPC,gBASGA,EAAS+E,OATZ,cAQDC,EARC,QAWAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAsD,CACpDwT,gBAAiBxT,EAAKwT,gBAEzB,IAfI,kBAgBE3T,GAhBF,6C,sBA4BA,SAAe4T,KAAtB,gC,wDAAO,yGACD/T,EADC,UACQlC,GADR,qDAOgBmC,MAAMD,GAPtB,cAOD7E,EAPC,gBASGA,EAAS+E,OATZ,cAQDC,EARC,QAWAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAqD,CACnDoT,eAAgBpT,EAAKoT,eAExB,IAfI,kBAgBEvT,GAhBF,6C,sBA4BA,SAAe6T,KAAtB,gC,wDAAO,yGACDhU,EADC,UACQlC,GADR,0DAOgBmC,MAAMD,GAPtB,cAOD7E,EAPC,gBASGA,EAAS+E,OATZ,cAQDC,EARC,QAWAC,KAAOD,EAAKC,KAAKC,KAAI,SAACC,GACzB,MAAuD,CACrD2T,kBAAmB3T,EAAK2T,kBAE3B,IAfI,kBAgBE9T,GAhBF,6C,sBCtTP,IAAM5E,GAA+C,CACnDqJ,WAAOC,EACPC,YAAa,aACboP,uCAAmCrP,GAGxBsP,GAAqCjZ,YAChD,iCADgE,iDAEhE,WAAOkZ,GAAP,iGACyBjB,GAAyCiB,GADlE,cACQjZ,EADR,yBAGSA,GAHT,2CAFgE,uDASrDkZ,GAAiChZ,YAAY,CACxDC,KAAM,4BACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQgY,GAAmC/X,SAAS,SAACR,GACpDA,EAAMkJ,YAAc,SACrB,IACA3I,QACCgY,GAAmC9X,WACnC,SAACT,EAAOG,GACNH,EAAMkJ,YAAc,OACpBlJ,EAAMsY,kCAAoCnY,EAAOC,OAClD,IAEFG,QAAQgY,GAAmCjP,UAAU,SAACtJ,EAAOG,GAC5DH,EAAMkJ,YAAc,WACpBlJ,EAAMgJ,MAAQ7I,EAAOC,OACtB,GACJ,IAMYqY,MAAf,QCnCM9Y,GAAmD,CACvDqJ,WAAOC,EACPC,YAAa,aACbwP,mBAAoB,CAAEC,MAAO,EAAGnU,KAAM,GAAIpD,OAAQ,EAAG2D,KAAM,GAC3D6T,2BAA4B,CAAED,MAAO,EAAGnU,KAAM,GAAIpD,OAAQ,EAAG2D,KAAM,GACnE8T,0BAA2B,CAAEF,MAAO,EAAGnU,KAAM,GAAIpD,OAAQ,EAAG2D,KAAM,GAClE+T,4BAA6B,CAAEH,MAAO,EAAGnU,KAAM,GAAIpD,OAAQ,EAAG2D,KAAM,IAGzDgU,GAAiDzZ,YAC5D,6CAD4E,gCAE5E,oHACiC0Y,KADjC,cACMU,EADN,gBAEyCT,KAFzC,cAEMW,EAFN,gBAGwCT,KAHxC,cAGMU,EAHN,iBAI0CT,KAJ1C,eAIMU,EAJN,yBAOS,CACLJ,mBAAoBA,EACpBE,2BAA4BA,EAC5BC,0BAA2BA,EAC3BC,4BAA6BA,IAXjC,6CAgBWE,GAA6CvZ,YAAY,CACpEC,KAAM,wCACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QACCwY,GAA+CvY,SAC/C,SAACR,GACCA,EAAMkJ,YAAc,SACrB,IAEF3I,QACCwY,GAA+CtY,WAC/C,SAACT,EAAOG,GACNH,EAAMkJ,YAAc,OACpBlJ,EAAM0Y,mBAAqBvY,EAAOC,QAAQsY,mBAC1C1Y,EAAM4Y,2BACJzY,EAAOC,QAAQwY,2BACjB5Y,EAAM6Y,0BACJ1Y,EAAOC,QAAQyY,0BACjB7Y,EAAM8Y,4BACJ3Y,EAAOC,QAAQ0Y,2BAClB,IAEFvY,QACCwY,GAA+CzP,UAC/C,SAACtJ,EAAOG,GACNH,EAAMkJ,YAAc,WACpBlJ,EAAMgJ,MAAQ7I,EAAOC,OACtB,GAEN,IAOY4Y,MAAf,QC1CO,SAAeC,GAAtB,mC,wDAAO,WACLtT,GADK,8FAGDvB,EAHC,UAGQlC,EAHR,sCAG6CyD,GAH7C,SASgBtB,MAAMD,GATtB,WASD7E,EATC,QAWSmH,GAXT,yCAYI,CACLnH,SAAU,CACRmH,IAAI,EACJC,eAAgBpH,EAASM,OACzB+G,QAASrH,EAASsH,cAhBnB,uBAqBiCtH,EAAS+E,OArB1C,cAqBDC,EArBC,OAuBC2U,EAAmC,CACvC5N,UAAW/G,EAAK+G,UAChB6N,eAAgB5U,EAAK4U,eACrBC,oBAAqB7U,EAAK6U,oBAC1B5E,iBAAkBjQ,EAAKiQ,iBACvB6E,mBAAoB9U,EAAK8U,mBACzBC,mBAAoB/U,EAAK+U,mBACzBC,cAAehV,EAAKgV,cACpBlS,OAAQ9C,EAAK8C,OACbmS,mBAAoBjV,EAAKiV,mBACzBC,uBAAwBlV,EAAKkV,uBAC7BC,wBAAyBnV,EAAKmV,wBAC9BC,kBAAmBpV,EAAKoV,mBAnCrB,kBAsCwB,CAC3Bpa,SAAU,CAAC,EACX2Z,YAAaA,IAxCV,6C,sBA4CA,IAgEMU,GAA6B,SACxCrW,EACAC,EACAC,EACAC,EACAmW,GAEA,IAAIlW,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAEzC,GAAIE,EACF,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAQtC,OAAQD,IAAK,CACvC,IAAI0C,EAAIH,EAAQvC,GACZ2C,EAAWD,EAAEE,GACjBJ,GAAM,WAAQG,EAAR,YAAoBD,EAAEjE,MAC7B,CAOH,GAJI6D,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAG3CoW,EAAS,CACX,IAAIC,EAAe,GACnB,GACO,0BADP,OAAQD,QAAR,IAAQA,OAAR,EAAQA,EAASE,aAEbD,EAAe,0BAKfA,EAAe,iBAGnBnW,GAAM,oBAAiBO,mBAAmB4V,IAApC,OACJD,EAAQG,iBAAmB,GAAK,SAEnC,CAQD,MANO,UAAM9X,EAAN,sCAA2CyB,EAOnD,EC7LKhE,GAAiC,CACrCqJ,WAAOC,EACPC,YAAa,aACb+Q,yBAAqBhR,GAGViR,GAAuB5a,YAClC,mBADkD,iDAElD,WAAO6a,GAAP,iGACyBlB,GAA8BkB,GADvD,cACQ5a,EADR,yBAGSA,GAHT,2CAFkD,uDASvC6a,GAAmB3a,YAAY,CAC1CC,KAAM,cACNC,gBAEAG,SAAU,CAAC,EAGXO,cAAe,SAACC,GACdA,EACGC,QAAQ2Z,GAAqB1Z,SAAS,SAACR,GACtCA,EAAMkJ,YAAc,SACrB,IACA3I,QAAQ2Z,GAAqBzZ,WAAW,SAACT,EAAOG,GAC/CH,EAAMkJ,YAAc,OACpBlJ,EAAMia,oBAAsB9Z,EAAOC,OACpC,IACAG,QAAQ2Z,GAAqB5Q,UAAU,SAACtJ,EAAOG,GAC9CH,EAAMkJ,YAAc,WACpBlJ,EAAMgJ,MAAQ7I,EAAOC,OACtB,GACJ,IAGUia,GAA4B,SAACra,GAAD,OACvCA,EAAMia,mBADiC,EAG1BG,MAAf,QC7BaE,GAAQC,YAAe,CAClCC,QAAS,CACPC,QAASC,EACT3Y,MAAO4Y,EACPxR,uBAAwByR,GACxB7Q,kBAAmB8Q,GACnB9P,UAAW+P,GACXpO,eAAgBqO,GAChBvN,sBAAuBwN,GACvBrM,gCAAiCA,GACjCS,YAAa6L,GACbxK,YAAayK,GACbzL,wBAAyB0L,GACzB9I,SAAU+I,GACVtI,UAAWuI,GACX1H,sBAAuB2H,GACvB7G,QAAS8G,GACTnG,cAAeoG,GACfhG,oBAAqBiG,GACrB7F,kBAAmB8F,GACnBnF,yBAA0BoF,GAC1BC,iBAAkBC,GAClBvD,kCAAmCwD,GACnCC,sCAAuCC,GACvC/B,oBAAqBgC,M,oBCnBzBC,KAAKC,IAAIC,MAAkBC,KAAK,CAC9BC,UA5BgB,CAChBC,GAAI,CACFC,YAAa,CACXC,OAAQ,wBACR,eAAgB,iBAGpBC,GAAI,CACFF,YAAa,CACXC,OAAQ,mBACR,eAAgB,eAGpBE,GAAI,CACFH,YAAa,CACXC,OAAQ,eACR,eAAgB,yBAGpBG,GAAI,CACFJ,YAAa,CACXC,OAAQ,eACR,eAAgB,kBAOpBI,IAAK,KACLC,YAAa,KACbC,cAAe,CACbC,aAAa,K,gECvBFC,GAJF,SAAC,GAAD,IAAGC,EAAH,EAAGA,UAAWC,EAAd,EAAcA,SAAd,OACX,sBAAKD,UAAWE,KAAW,OAAQF,GAAnC,SAAgDC,GADrC,E,2DCRAE,GACL,OADKA,GAEJ,QAGIC,GACH,SADGA,GAEJ,QAFIA,GAGF,UAGEC,GACJ,QADIA,GAEJ,QAGIC,GACF,UADEA,GAEF,UAFEA,GAGL,OAHKA,GAIJ,QAGIC,GAAsB,CACjCC,QAAS,UACT,eAAgB,UAChB,gBAAiB,UACjBC,UAAW,UACXC,QAAS,UACTC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRC,MAAO,OACP,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZC,MAAO,QAGIC,GAAkB,6BAC1BT,IAD0B,IAE7B,eAAgB,UAChB,gBAAiB,UACjBO,MAAO,UACP,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZC,MAAO,SC9BME,OA3Bf,SAAuBC,GAErB,IAAMC,EAAcC,mBAEdC,EAAWD,mBAoBjB,OAjBAE,qBAAU,WACRH,EAAYI,QAAUL,CACvB,IAEDI,qBAAU,WAER,OADAxd,SAAS0d,iBAAiB,QAASC,GAC5B,kBAAM3d,SAAS4d,oBAAoB,QAASD,EAA5C,EACP,SAASA,EAAYE,GAEjBN,EAASE,SACTJ,EAAYI,UACXF,EAASE,QAAQK,SAASD,EAAEE,SAE7BV,EAAYI,QAAQI,EACvB,CACF,GAAE,IAEIN,CACR,ECWcS,OApCf,SAAyBC,EAAUC,GAGjC,MAAsCC,oBAAS,WAC7C,IAEE,IAAMza,EAAO0a,OAAOC,aAAaC,QAAQL,GAEzC,OAAOva,EAAO6a,KAAKC,MAAM9a,GAAQwa,CAKlC,CAJC,MAAOlW,GAGP,OADAyW,QAAQC,IAAI1W,GACLkW,CACR,CACF,IAXD,oBAAOS,EAAP,KAAoBC,EAApB,KA8BA,MAAO,CAACD,EAfS,SAAC/f,GAChB,IAEE,IAAMigB,EACJjgB,aAAiBpB,SAAWoB,EAAM+f,GAAe/f,EAEnDggB,EAAeC,GAEfT,OAAOC,aAAaS,QAAQb,EAAKM,KAAKQ,UAAUF,GAIjD,CAHC,MAAO7W,GAEPyW,QAAQC,IAAI1W,EACb,CACF,EAGF,ECfcgX,OAlBf,SAA0Bf,EAAUC,GAClC,MAA0BF,GAAgBC,EAAKC,GAA/C,oBAAOtf,EAAP,KAAcqgB,EAAd,KAcA,OAZAzB,qBAAU,WAKR,GAHAxd,SAASuD,KAAK2b,QAAQjB,GAAOrf,EAGjB,UAARqf,EAAiB,CACnB,IAAMkB,EAAkB,SAAVvgB,EAAmB,OAAS,QACvBoB,SAASof,cAAc,kBAC9BC,aAAa,OAAzB,eAAyCF,EAAzC,QACD,CACF,GAAE,CAACvgB,EAAOqf,IAEJ,CAACrf,EAAOqgB,EAChB,ECbcK,GAFyCC,ICKlD5gB,GAAe,CACnBwgB,MAAO3C,GACPgD,SAAU,SAACC,GAAqB,GAG5BC,GAAeC,IAAMC,cAAcjhB,IAMzC,SAASkhB,GAAT,GAAyD,IAAhC1D,EAA+B,EAA/BA,SACvB,EAA0B6C,GAAiB,QAASxC,IAApD,oBAAO2C,EAAP,KAAcK,EAAd,KAEM5f,EAAyB0f,GAAexe,GAExCgf,EAAa1B,OAAOlL,SAAS6M,KACnC,GAAID,EAAWE,cAAcxf,QAAQ,aAAe,IAC7CZ,EAAwB,CAC3B,IAAIqgB,EAAS,sBAAwB/c,mBAAmB4c,GACxD,OAAO,eAAC,IAAD,CAAUI,GAAID,GACtB,CAGH,OACE,eAACP,GAAaS,SAAd,CACEvhB,MAAO,CACLugB,QACAK,YAHJ,SAMGrD,GAGN,CCxCD,IAEeiE,GAFE,kBAAMC,qBAAWX,GAAjB,ECEX/gB,GAAe,CACnB2hB,QAAQ,EACRC,UAAW,SAACC,GAAoB,EAChCC,YAAa,SAACC,GAAuB,EACrCC,YAAa,SAACC,GAAuB,EACrCF,SAAUrE,GACVuE,SAAUtE,IAGNuE,GAAiBlB,IAAMC,cAAcjhB,IAM3C,SAASmiB,GAAT,GAA6D,IAAlC3E,EAAiC,EAAjCA,SACzB,EAA4BgC,oBAAS,GAArC,oBAAOmC,EAAP,KAAeC,EAAf,KACA,EAAgCvB,GAC9B,kBACA3C,IAFF,oBAAOqE,EAAP,KAAiBD,EAAjB,KAIA,EAAgCzB,GAC9B,kBACA1C,IAFF,oBAAOsE,EAAP,KAAiBD,EAAjB,KAKA,OACE,eAACE,GAAeV,SAAhB,CACEvhB,MAAO,CACL0hB,SACAC,YACAG,WACAD,cACAG,WACAD,eAPJ,SAUGxE,GAGN,CC1CD,IAEe4E,GAFI,kBAAMV,qBAAWQ,GAAjB,ECEbliB,GAAe,CACnB8gB,OAAQlD,GACRyE,UAAW,SAACvB,GAAqB,GAG7BwB,GAAgBtB,IAAMC,cAAcjhB,IAM1C,SAASuiB,GAAT,GAA2D,IAAjC/E,EAAgC,EAAhCA,SACxB,EAA4B6C,GAAiB,SAAUzC,IAAvD,oBAAOkD,EAAP,KAAeuB,EAAf,KAEA,OACE,eAACC,GAAcd,SAAf,CACEvhB,MAAO,CACL6gB,SACAuB,aAHJ,SAMG7E,GAGN,CC1BD,IAEegF,GAFG,kBAAMd,qBAAWY,GAAjB,ECeZG,GAAe,CACnB,CACE1iB,KAAM,UACNE,MAAO4d,IAET,CACE9d,KAAM,UACNE,MAAO4d,IAET,CACE9d,KAAM,OACNE,MAAO4d,IAET,CACE9d,KAAM,QACNE,MAAO4d,KAIL6E,GAAyB,CAC7B,CACE3iB,KAAM,OACNE,MAAOyd,IAET,CACE3d,KAAM,QACNE,MAAOyd,KAILiF,GAAyB,CAC7B,CACE5iB,KAAM,SACNE,MAAO0d,IAET,CACE5d,KAAM,QACNE,MAAO0d,IAET,CACE5d,KAAM,UACNE,MAAO0d,KAILiF,GAAgB,CACpB,CACE7iB,KAAM,QACNE,MAAO2d,IAET,CACE7d,KAAM,QACNE,MAAO2d,KAQX,IA8LeiF,GA9LE,WACf,IAAMC,EAJC,IAAIC,gBAAgBC,cAAcC,QAKzC,EAA4BzD,oBAAS,GAArC,oBAAOmC,EAAP,KAAeC,EAAf,KAEA,EAA4BH,KAApBjB,EAAR,EAAQA,MAAOK,EAAf,EAAeA,SACf,EAAyDuB,KAAjDL,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,YAAaG,EAA/B,EAA+BA,SAAUD,EAAzC,EAAyCA,YACzC,EAA8BQ,KAAtB1B,EAAR,EAAQA,OAAQuB,EAAhB,EAAgBA,UAEVzD,EAAWJ,IAAc,WAC7BoD,GAAU,EACX,IAEKsB,EAAyB,SAACnjB,EAAcojB,GAC5C,IAAMljB,EAAQ6iB,EAAMM,IAAIrjB,GACpBE,GACFkjB,EAAIljB,EAEP,EAaD,OATA4e,qBAAU,WACRqE,EAAuB,QAASrC,GAChCqC,EAAuB,kBAAmBpB,GAC1CoB,EAAuB,kBAAmBlB,GAC1CkB,EAAuB,SAAUb,EAGlC,GAAE,IAGD,uBACEgB,IAAKzE,EACLrB,UAAS,+BAA0BoE,EAAS,OAAS,IAFvD,UAIE,uBAAKpE,UAAU,kBAAf,UACE,uBACEA,UAAU,wEACVzR,MAAM,gBACNwX,QAAS,kBAAM1B,GAAU,EAAhB,EAHX,UAKE,eAAC,KAAD,CAASrE,UAAU,yBALrB,cAOA,oBACEA,UAAU,yBACVzR,MAAM,gBACNsV,KAAK,QACLhC,OAAO,SAJT,SAME,eAAC,KAAD,CAAU7B,UAAU,8BAGxB,sBAAKA,UAAU,iBAAf,SACE,uBAAKA,UAAU,mBAAf,UACE,uBAAKA,UAAU,2CAAf,UACE,yBACEvY,KAAK,SACLuY,UAAU,2CACV,aAAW,QACX+F,QAAS,kBAAM1B,GAAU,EAAhB,IAEX,qBAAIrE,UAAU,2BAAd,8BAEF,uBAAKA,UAAU,gBAAf,UACE,eAACgG,GAAA,EAAD,CAAOC,QAAQ,UAAf,SACE,uBAAKjG,UAAU,gBAAf,UACE,iDADF,wFAMF,uBAAKA,UAAU,OAAf,UACE,uBAAMA,UAAU,+BAAhB,0BACA,uBAAMA,UAAU,0BAAhB,kDAGA,sBAAKA,UAAU,iCAAf,SACGkF,GAAa3d,KAAI,gBAAG/E,EAAH,EAAGA,KAAME,EAAT,EAASA,MAAT,OAChB,uBAAKsd,UAAU,QAAf,UACE,yBAAOA,UAAU,oBAAjB,UACE,wBACEA,UAAU,wBACVvY,KAAK,QACLjF,KAAK,QACLE,MAAOA,EACPwjB,QAASjD,IAAUvgB,EACnByjB,SAAU,kBAAM7C,EAAS5gB,EAAf,IAEZ,sBAAKsd,UAAU,kBAAf,SACE,sBACEA,UAAS,sDAAiDtd,UAI/DF,IAhByBE,EADZ,SAsBtB,wBACA,uBAAKsd,UAAU,OAAf,UACE,uBAAMA,UAAU,+BAAhB,8BAGA,uBAAMA,UAAU,0BAAhB,iDAGA,+BACGmF,GAAuB5d,KAAI,gBAAG/E,EAAH,EAAGA,KAAME,EAAT,EAASA,MAAT,OAC1B,yBAAOsd,UAAU,OAAjB,UACE,wBACEA,UAAU,wBACVvY,KAAK,QACLjF,KAAK,kBACLE,MAAOA,EACPwjB,QAAS1B,IAAa9hB,EACtByjB,SAAU,kBAAM5B,EAAY7hB,EAAlB,IAEZ,sBAAKsd,UAAU,kBAAf,SAAkCxd,MATPE,EADH,SAehC,wBACA,uBAAKsd,UAAU,OAAf,UACE,uBAAMA,UAAU,+BAAhB,8BAGA,uBAAMA,UAAU,0BAAhB,iDAGA,+BACGoF,GAAuB7d,KAAI,gBAAG/E,EAAH,EAAGA,KAAME,EAAT,EAASA,MAAT,OAC1B,yBAAOsd,UAAU,OAAjB,UACE,wBACEA,UAAU,wBACVvY,KAAK,QACLjF,KAAK,kBACLE,MAAOA,EACPwjB,QAASxB,IAAahiB,EACtByjB,SAAU,kBAAM1B,EAAY/hB,EAAlB,IAEZ,sBAAKsd,UAAU,kBAAf,SAAkCxd,MATPE,EADH,SAehC,wBACA,uBAAKsd,UAAU,OAAf,UACE,uBAAMA,UAAU,+BAAhB,oBACA,uBAAMA,UAAU,0BAAhB,6CAGA,+BACGqF,GAAc9d,KAAI,gBAAG/E,EAAH,EAAGA,KAAME,EAAT,EAASA,MAAT,OACjB,yBAAOsd,UAAU,OAAjB,UACE,wBACEA,UAAU,wBACVvY,KAAK,QACLjF,KAAK,SACLE,MAAOA,EACPwjB,QAAS3C,IAAW7gB,EACpByjB,SAAU,kBAAMrB,EAAUpiB,EAAhB,IAEZ,sBAAKsd,UAAU,kBAAf,SAAkCxd,MATPE,EADZ,YAgBzB,sBAAKsd,UAAU,kBAAf,SACE,sBAAKA,UAAU,SAAf,SACE,eAACoG,GAAA,EAAD,CACEC,GAAG,IACHC,IAAI,aACJzC,KAAK,mFACLhC,OAAO,SACPoE,QAAQ,UACRM,KAAK,KANP,iCAgBb,EChPcC,GAlBQ,SAAC,GAAD,IAAGvG,EAAH,EAAGA,SAAH,OACrB,gBAAC,IAAMwG,SAAP,WACE,eAAC,GAAD,CAAMzG,UAAU,sCAAhB,SACE,eAAC0G,GAAA,EAAD,CAAW1G,UAAU,qBAArB,SACE,eAAC2G,GAAA,EAAD,CAAK3G,UAAU,QAAf,SACE,eAAC4G,GAAA,EAAD,CAAKC,GAAG,KAAKC,GAAG,IAAIC,GAAG,IAAI/G,UAAU,wBAArC,SACE,uBAAKA,UAAU,4BAAf,UACGC,EACD,eAAC,IAAD,eAMV,eAAC,GAAD,MAdmB,ECFR+G,GAJW,SAAC,GAAD,IAAG/G,EAAH,EAAGA,SAAH,OACxB,sBAAKD,UAAU,UAAf,SAA0BC,GADF,ECIXgH,GAJW,SAAC,GAAD,IAAGhH,EAAH,EAAGA,SAAH,OACxB,sBAAKD,UAAU,UAAf,SAA0BC,GADF,ECC1B,SAASiH,GAAT,GAA6D,IAAtCjH,EAAqC,EAArCA,SACfjJ,EAAWyO,cAIjB,OAHA0B,2BAAgB,WACdrjB,SAASsjB,qBAAqB,QAAQ,GAAGC,UAAY,CACtD,GAAE,CAACrQ,EAASsQ,WACN,eAAC,WAAD,UAAWrH,GACnB,CCFD,IAeesH,GAfiB,SAAC,GAAD,IAAGtH,EAAH,EAAGA,SAAH,OAC9B,eAACiH,GAAD,UACE,eAAC,IAAMT,SAAP,UACE,eAAC,GAAD,UACE,eAAC,GAAD,UACE,gBAAC,GAAD,WACGxG,EACD,eAAC,IAAD,cAPoB,ECSjBuH,GAV2B,SAAC,GAAD,IAAGvH,EAAH,EAAGA,SAAH,OACxC,gBAAC,IAAMwG,SAAP,WACE,eAAC,IAAD,CAAQlY,MAAM,oBACd,gBAACmY,GAAA,EAAD,CAAWe,OAAK,EAACzH,UAAU,MAA3B,UACGC,EACD,eAAC,IAAD,SALoC,ECkB3ByH,GAlBC,kBACd,gBAAC,IAAMjB,SAAP,WACE,eAAC,IAAD,CAAQlY,MAAM,cACd,uBAAKyR,UAAU,cAAf,UACE,qBAAIA,UAAU,oBAAd,iBACA,oBAAGA,UAAU,KAAb,6BACA,oBAAGA,UAAU,yBAAb,mEAGA,eAAC,IAAD,CAAMgE,GAAG,IAAT,SACE,eAACoC,GAAA,EAAD,CAAQH,QAAQ,UAAUM,KAAK,KAA/B,wCAVQ,E,WCaDoB,GAXC,SAAC,GAAD,IAAGpZ,EAAH,EAAGA,MAAOqZ,EAAV,EAAUA,QAAV,OACd,gBAACC,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,UACE,eAACD,GAAA,EAAKE,MAAN,UACE,8BAAKxZ,QAGT,eAACsZ,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SAA6B4H,MAPjB,E,WCqBDK,GApBE,SAAC,GAKA,IAJhBC,EAIe,EAJfA,MACAxlB,EAGe,EAHfA,MACAylB,EAEe,EAFfA,eACAC,EACe,EADfA,eAMA,OAJKD,IAAgBA,EAAiB,kBAEjCC,IAAgBA,EAAiB,kBAGpC,gBAACzB,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAWmI,EAAhB,SACE,eAACE,GAAA,EAAKC,MAAN,UAAaJ,MAEf,eAACtB,GAAA,EAAD,CAAK5G,UAAWoI,EAAhB,SAAiC1lB,MAGtC,ECAc6lB,GAnBc,SAAC,GAEK,IADjC3c,EACgC,EADhCA,eAEI4c,EACF,iCACE,eAAC,GAAD,CAAUN,MAAO,UAAWxlB,MAAOkJ,EAAeN,UAClD,eAAC,GAAD,CAAU4c,MAAO,SAAUxlB,MAAOkJ,EAAexB,aACjD,eAAC,GAAD,CAAU8d,MAAO,OAAQxlB,MAAOkJ,EAAenE,OAC/C,eAAC,GAAD,CAAUygB,MAAO,SAAUxlB,MAAOkJ,EAAejJ,SACjD,eAAC,GAAD,CAAUulB,MAAO,aAAcxlB,MAAOkJ,EAAeT,YACrD,eAAC,GAAD,CAAU+c,MAAO,SAAUxlB,MAAOkJ,EAAeZ,SACjD,eAAC,GAAD,CAAUkd,MAAO,iBAAkBxlB,MAAOkJ,EAAelB,gBACzD,eAAC,GAAD,CAAUwd,MAAO,eAAgBxlB,MAAOkJ,EAAepB,iBAI3D,OAAO,eAAC,GAAD,CAAS+D,MAAO,yBAA0BqZ,QAASY,GAC3D,E,WCJcC,GAdK,SAAC,GAA0C,IAAxC7c,EAAuC,EAAvCA,eACf8c,EAAI,UAAM9c,EAAehB,aAArB,cAAuCgB,EAAerC,WAChE,OACE,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,eAAC+E,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBJ,UAKlC,E,+BCOcK,GArBM,SAAC,GAAqB,IAAnBC,EAAkB,EAAlBA,OACdC,EAA2BD,EAA3BC,YAAaC,EAAcF,EAAdE,UACrB,EAA0BjH,mBAASgH,GAAnC,oBAAOvmB,EAAP,KAAcqgB,EAAd,KACMoD,EAAWgD,6BAAiB,SAACzmB,GACjCwmB,EAAUxmB,QAASqJ,EACpB,GAAE,KACH,OACE,gCACE,wBACEiU,UAAU,iCACVoJ,YAAY,SACZ1mB,MAAOA,GAAS,GAChByjB,SAAU,SAACxE,GACToB,EAASpB,EAAEE,OAAOnf,OAClByjB,EAASxE,EAAEE,OAAOnf,MACnB,KAIR,E,iBCnBK2mB,GAAU,kBACd,uBAAMC,MAAO,CAAEC,MAHK,WAGpB,SACE,eAAC,KAAD,CAAiBvJ,UAAU,uBAAuBwJ,KAAMC,SAF5C,ECyCVC,GAAY,SAACC,GACjB,IAEA,EAA8C1H,mBAAS,IAAvD,oBAAO2H,EAAP,KAAwBC,EAAxB,KACA,EAA4C5H,mBAAS,IAArD,oBAAO3b,EAAP,KAAuBwjB,EAAvB,KACA,EAAoC7H,mBAAS,GAA7C,oBAAO8H,EAAP,KAAmBC,EAAnB,KACA,EAAkC/H,mBAAS,IAA3C,oBAAOgI,EAAP,KAAkBC,EAAlB,KACA,EAAmCjI,mBAAS,GAA5C,oBAAOkI,EAAP,KAAkBC,EAAlB,KACA,EAA8BnI,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACQC,EAAkBZ,EAAlBY,QACFC,GADoBb,EAATznB,KACKynB,EAAMc,qBACtBC,EAAaf,EAAMgB,iBACnBC,EAAWjB,EAAMkB,eACjBC,EAAsBnB,EAAMoB,uBAC5BC,GAA8C,IAA3BrB,EAAMqB,iBACzBC,GAA4C,IAA1BtB,EAAMsB,gBACxBC,EAAkBvB,EAAMpjB,WAC9B,EAAkD0b,mBAAS,IAA3D,oBAAOkJ,EAAP,KAA0BC,EAA1B,KACA,EAAgDnJ,oBAAS,GAAzD,oBAAOnF,EAAP,KAAyBuO,EAAzB,KACM1O,EAAUgN,EAAMhN,QAEhB2O,EAAeC,sBAAW,iDAC9B,WACEllB,EACAC,EACAC,EACAC,EACAkkB,EACA7N,EACA2O,GAPF,yGAUUC,EAAWf,EACfrkB,EACAC,EACA4kB,GAAoC3kB,EACpCC,EACAmW,EACI,CAAEE,YAAaA,EAAaC,iBAAkB0O,GAC9C,MAjBV,SAmBsBrkB,MAAMskB,GAnB5B,cAmBUC,EAnBV,gBAoBuBA,EAAItkB,OApB3B,OAoBUA,EApBV,OAsBUukB,EAAcb,EAChBA,EAAoB1jB,GACpBA,EAEEwkB,EAAoBhB,EACtBA,EAASe,IACE,OAAXA,QAAW,IAAXA,OAAA,EAAAA,EAAarkB,OAAQ,GAEzB4iB,EAAa0B,GACb5B,GAAyB,OAAX2B,QAAW,IAAXA,OAAA,EAAAA,EAAalQ,QAAS,GACpC2O,EACG9jB,EAAiB,GAChBulB,KAAKC,OAAiB,OAAXH,QAAW,IAAXA,OAAA,EAAAA,EAAalQ,OAAQnV,GAAkB,GAClD,GAEJgkB,GAAW,GArCf,4GAD8B,kEAyC9B,IAGIyB,EAAgBtI,IAAMuI,SAC1B,iBAAO,CAELC,OAAQlD,GAFV,GAIA,IAYF,EAkBImD,oBACF,CACE3B,UACAroB,KAAM+nB,EACN8B,gBACAI,kBAAkB,EAClBC,oBAAoB,EACpBC,eAAe,EACfC,cAAc,EACd7pB,aAAc,CACZ8pB,UA7GU,EA8GVC,SAAUlmB,GAEZmmB,UAAWtC,GAEbuC,cACAC,mBACAC,kBAlCAC,EADF,EACEA,cACAC,EAFF,EAEEA,kBACAC,EAHF,EAGEA,aACAC,EAJF,EAIEA,KACAC,EALF,EAKEA,WAEAC,IAPF,EAMErlB,KANF,EAOEqlB,iBACAC,GARF,EAQEA,YACAC,GATF,EASEA,YACAX,GAVF,EAUEA,UACAY,GAXF,EAWEA,SACAC,GAZF,EAYEA,SACAC,GAbF,EAaEA,aACAC,GAdF,EAcEA,YAdF,MAeEC,gBAfF,EAiBE3qB,OAASypB,GAjBX,GAiBWA,UAAWC,GAjBtB,GAiBsBA,SAAwBhmB,IAjB9C,GAiBgCknB,aAjBhC,GAiB8ClnB,SAgD9C,OA3BA8a,qBAAU,WACRgJ,GAAW,GACXgB,EACEiB,GAAY,EACZjmB,EACA4kB,GAAoCtB,EACpCpjB,GACAkkB,EACAS,EACArO,EAEH,GAAE,CACDyP,GACAjmB,EACAsjB,EACApjB,GACAkkB,EACAQ,EACAC,EACArO,IAGFwE,qBAAU,WACRwI,EAAkB0C,IAClBa,GAAS,EACV,GAAE,CAACb,GAAUa,KAGZ,iCACGpC,GACC,eAACtE,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAKC,GAAG,KAAKC,GAAG,IAAhB,SACE,eAACuB,GAAA,EAAKsF,QAAN,CACElmB,KAAK,OACLjF,KAAK,YACL4mB,YAAY,YACZ1mB,MAAOknB,GAAmB,GAC1BzD,SAAU,SAACxE,GACTkI,EAAmBlI,EAAEE,OAAOnf,MAC7B,QAKT,gBAACkrB,GAAA,EAAD,2BAAOC,SAAO,GAAKhB,KAAnB,cACE,iCACGE,EAAaxlB,KAAI,SAACumB,GAAD,OAChB,iDAAQA,EAAYC,uBAApB,aACGD,EAAYE,QAAQzmB,KAAI,SAACyhB,GAAD,aACvB,kDAAQA,EAAOiF,kBAAf,cACGjF,EAAOkF,OAAO,UAEdvR,GACCA,EAAQwR,wBACR,UAAAxR,EAAQwR,6BAAR,eAA+BC,QAC7B,SAACC,GAAD,OAAaA,IAAYrF,EAAOlB,MAAhC,IACA5jB,QAAS,GACT,uBACE6hB,QAAS,SAACpE,GAzGX,IAAC2M,KAyG6BtF,EAAOlB,UAxGrCqD,EACjBE,GAAqBvO,IAErBsO,EAAqBkD,GACrBjD,GAAoB,GAoGO,EADX,SAGGrC,EAAOlB,SAAWqD,EACjBrO,EACE,eAAC,KAAD,CAAiB0M,KAAM+E,MAAUvO,UAAU,SAE3C,eAAC,KAAD,CACEwJ,KAAMgF,MACNxO,UAAU,SAId,eAAC,KAAD,CAAiBwJ,KAAMiF,MAAQzO,UAAU,WAIjD,+BAAMgJ,EAAO0F,UAAY1F,EAAOkF,OAAO,UAAY,UA1B9B,MAFX,MAkCpB,qDAAWpB,KAAX,cACGzC,GACC,8BACE,qBAAIsE,QAASpE,EAAQrmB,OAAQolB,MAAO,CAAEsF,UAAW,UAAjD,SACE,eAAC,GAAD,SAIJvE,GACA2C,EAAKzlB,KAAI,SAACsnB,EAAK5qB,GAEb,OADAgpB,EAAW4B,GAET,iDAAQA,EAAIC,eAAZ,aACGD,EAAIE,MAAMxnB,KAAI,SAACynB,GACd,OACE,iDAAQA,EAAKC,gBAAb,aAA8BD,EAAKd,OAAO,UAE7C,MAGN,YAGNlD,GACC,gBAACrE,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAKE,GAAG,IAAR,UACE,wBAAM9G,UAAU,OAAhB,UACG,QACD,oCACGuM,GAAY,EADf,OACsBa,GAAYlpB,aAGpC,uBAAM8b,UAAU,YAAhB,mBACA,eAACqI,GAAA,EAAK6G,OAAN,CACElP,UAAU,wBACVtd,MAAO8pB,GACPrG,SAAU,SAACxE,GACT6L,GAAY2B,OAAOxN,EAAEE,OAAOnf,OAC7B,EALH,SAOG,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAI6E,KAAI,SAACilB,GAAD,OAC3B,yBAAuB9pB,MAAO8pB,EAA9B,SACGA,GADUA,EADc,MAO/B,uBAAMxM,UAAU,YAAhB,yBACA,eAACqI,GAAA,EAAKsF,QAAN,CACE3N,UAAU,iBACVvY,KAAK,SACL2nB,aAAc7C,GAAY,EAC1BpG,SAAU,SAACxE,GACT,IAAM9Z,EAAO8Z,EAAEE,OAAOnf,MAAQysB,OAAOxN,EAAEE,OAAOnf,OAAS,EAAI,EAC3D2qB,GAASxlB,EACV,EACDyhB,MAAO,CAAE+F,MAAO,UAElB,wBAAMrP,UAAU,YAAhB,UACG,4BACA+J,QAGL,eAACnD,GAAA,EAAD,CAAKE,GAAG,IAAR,SACE,gBAACwI,GAAA,EAAD,CAAYtP,UAAU,YAAtB,UACE,eAACsP,GAAA,EAAWC,MAAZ,CACExJ,QAAS,kBAAMsH,GAAS,EAAf,EACTmC,UAAWtC,KAEb,eAACoC,GAAA,EAAWG,KAAZ,CACE1J,QAAS,kBAAMwH,IAAN,EACTiC,UAAWtC,KAEb,eAACoC,GAAA,EAAWI,KAAZ,CACE3J,QAAS,kBAAMuH,IAAN,EACTkC,UAAWrC,KAEb,eAACmC,GAAA,EAAWK,KAAZ,CACE5J,QAAS,kBAAMsH,GAASZ,GAAY,EAA3B,EACT+C,UAAWrC,aAMpB3C,GACC,eAAC7D,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAKC,GAAG,KAAKC,GAAG,IAAhB,SACE,eAACV,GAAA,EAAD,CACEpG,UAAU,UACVxd,KAAK,cACLujB,QAAS,SAACpE,GACRO,OAAOoC,KACLkG,EACE+B,GAAY,EACZjmB,EACA4kB,GAAoCtB,EACpCpjB,IAEF,SAEH,EAbH,iCAsBX,EClWD,SAASopB,GAAT,GAII,IAAD,IAHD5G,OAAUC,EAGT,EAHSA,YAAa4G,EAGtB,EAHsBA,gBAAiB3G,EAGvC,EAHuCA,UAIlCzN,EAAQoU,EAAgB3rB,OAE9B,OACE,eAACmkB,GAAA,EAAKsF,QAAN,CACEjrB,MAAOumB,GAAe,GACtB9C,SAAU,SAACxE,GACTuH,EAAUvH,EAAEE,OAAOnf,YAASqJ,EAC7B,EACDqd,YAAW,iBAAY3N,EAAZ,eACXuE,UAAU,QAGf,CCJD,IAAM8P,GAAc,SAACnG,GACnB,IAAQY,EAAkBZ,EAAlBY,QAASroB,EAASynB,EAATznB,KAEX6tB,EAActM,IAAMuI,SACxB,iBAAO,CAGLtD,KAAM,SAACsE,EAAWnmB,EAASoiB,GACzB,OAAO+D,EAAKoB,QAAO,SAACS,GAClB,IAAMmB,EAAWnB,EAAIoB,OAAOppB,GAC5B,YAAoBkF,IAAbikB,GACHE,OAAOF,GACJlM,cACAqM,WAAWD,OAAOjH,GAAanF,cAEvC,GACF,EAZH,GAcA,IAGIiI,EAAgBtI,IAAMuI,SAC1B,iBAAO,CAELC,OAAQ2D,GAFV,GAIA,IAGF,EACE1D,oBACE,CACE3B,UACAroB,OACA6pB,gBACAgE,eAEFrD,cACAC,oBATIE,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,kBAAmBC,EAA1C,EAA0CA,aAAcC,EAAxD,EAAwDA,KAAMC,EAA9D,EAA8DA,WAY9D,OACE,gBAACW,GAAA,EAAD,2BAAOC,SAAO,GAAKhB,KAAnB,cACE,iCACGE,EAAaxlB,KAAI,SAACumB,GAAD,OAChB,iDAAQA,EAAYC,uBAApB,aACGD,EAAYE,QAAQzmB,KAAI,SAACyhB,GAAD,OACvB,kDAAQA,EAAOiF,kBAAf,cACGjF,EAAOkF,OAAO,UACf,+BAAMlF,EAAO0F,UAAY1F,EAAOkF,OAAO,UAAY,UAH9B,MAFX,MAWpB,oDAAWpB,KAAX,aACGE,EAAKzlB,KAAI,SAACsnB,EAAK5qB,GAEd,OADAgpB,EAAW4B,GAET,iDAAQA,EAAIC,eAAZ,aACGD,EAAIE,MAAMxnB,KAAI,SAACynB,GACd,OAAO,iDAAQA,EAAKC,gBAAb,aAA8BD,EAAKd,OAAO,UAClD,MAGN,UAIR,EChFKkC,GAAO,SAACzG,GACZ,IACEgB,EAUEhB,EAVFgB,iBACAE,EASElB,EATFkB,eACAE,EAQEpB,EARFoB,uBACAC,EAOErB,EAPFqB,iBACAC,EAMEtB,EANFsB,gBACAV,EAKEZ,EALFY,QACAroB,EAIEynB,EAJFznB,KACAqE,EAGEojB,EAHFpjB,WACAoW,EAEEgN,EAFFhN,QACA8N,EACEd,EADFc,oBAGF,OAAKE,EAID,eAAC,GAAD,CACEJ,QAASA,EACTroB,KAAMA,EACNyoB,iBAAkBA,EAClBE,eAAgBA,EAChBE,uBAAwBA,EACxBC,iBAAkBA,EAClBC,gBAAiBA,EACjB1kB,WAAYA,EACZoW,QAASA,EACT8N,oBAAqBA,IAblB,eAAC,GAAD,CAAaF,QAASA,EAASroB,KAAMA,GAiB/C,E,SC9BD,SAASmuB,GAAT,GAII,IAAD,IAHDrH,OAAUC,EAGT,EAHSA,YAAaC,EAGtB,EAHsBA,UAAW2G,EAGjC,EAHiCA,gBAAiBhpB,EAGlD,EAHkDA,GAM7CypB,EAAU7M,IAAMuI,SAAQ,WAC5B,IAAMsE,EAAU,IAAIC,IAIpB,OAHAV,EAAgBW,SAAQ,SAAC3B,GACvByB,EAAQG,IAAI5B,EAAIoB,OAAOppB,GACxB,IACM,aAAIypB,EAAQL,SACpB,GAAE,CAACppB,EAAIgpB,IAGR,OACE,gBAACxH,GAAA,EAAK6G,OAAN,CACElP,UAAU,OACVtd,MAAOumB,EACP9C,SAAU,SAACxE,GACTuH,EAAUvH,EAAEE,OAAOnf,YAASqJ,EAC7B,EALH,UAOE,yBAAQrJ,MAAM,GAAd,iBACC4tB,EAAQ/oB,KAAI,SAACmpB,EAAazsB,GAAd,OACX,yBAAgBvB,MAAOguB,EAAvB,SACGA,GADUzsB,EADF,MAOlB,CCrBD,ICjBI0sB,GDiBAC,GAAkB,UAClBC,GAAkB,UAEhBC,GAAe,kBACnB,wBAAMxH,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAMwH,UATS,EAcfC,GAA4B,kBAChC,wBAAM3H,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAM0H,UATsB,EAc5BC,GAA8B,kBAClC,wBAAM7H,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CAAiB/Q,UAAU,2BAA2BwJ,KAAM4H,UAP5B,EAW9BC,GAAgB,kBACpB,wBAAM/H,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAM8H,UATU,EAchBC,GAAc,kBAClB,wBAAMjI,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CAAiB/Q,UAAU,2BAA2BwJ,KAAMgI,UAP5C,EAWdC,GAAoB,kBACxB,wBAAMnI,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAMkI,UATc,EAcpBC,GAAgB,kBACpB,wBAAMrI,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CAAiB/Q,UAAU,2BAA2BwJ,KAAMoI,UAP1C,EAWhBC,GAAiC,kBACrC,wBAAMvI,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CAAiB/Q,UAAU,2BAA2BwJ,KAAMsI,UAPzB,EAWjCC,GAA+B,kBACnC,wBAAMzI,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAMwI,UATyB,EAc/BC,GAAqB,kBACzB,wBAAM3I,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CAAiB/Q,UAAU,2BAA2BwJ,KAAM0I,UAPrC,EAWrBC,GAA0B,kBAC9B,wBAAM7I,MAAO,CAAEC,MAAOqH,IAAmB5Q,UAAU,WAAnD,UACE,eAAC,KAAD,CACEsJ,MAAO,CAAEC,MAAOsH,IAChB7Q,UAAU,kCACVwJ,KAAMuH,QAER,eAAC,KAAD,CACE/Q,UAAU,2BACVwJ,KAAM4I,UAToB,EAc1BC,GAAmB,kBACvB,eAAC,KAAD,CAAiBrS,UAAU,eAAewJ,KAAM8I,OADzB,EAInBC,GAAiB,SAAC9qB,GACtB,OAAQA,GACN,IAAK,WACH,OAAO,eAAC,GAAD,IACT,IAAK,YACH,OAAO,eAAC,GAAD,IACT,IAAK,2BACH,OAAO,eAAC,GAAD,IACT,IAAK,iBACH,OAAO,eAAC,GAAD,IACT,IAAK,aACH,OAAO,eAAC,GAAD,IACT,IAAK,UACH,OAAO,eAAC,GAAD,IACT,IAAK,2BACH,OAAO,eAAC,GAAD,IACT,IAAK,+BACH,OAAO,eAAC,GAAD,IACT,QACE,OAAO,eAAC,GAAD,IAEZ,EExLK+qB,GAA2B,SAACjpB,GAChC,MAAM,oBAAN,OAA2BA,EAC5B,EAEKkpB,GAA2B,SAC/BlpB,EACAmpB,GAEA,MAAM,GAAN,OAAUF,GAAyBjpB,GAAnC,8BAAmEmpB,EACpE,EAEKC,GAAqB,SAACppB,EAAmBwK,GAC7C,MAAM,GAAN,OAAUye,GAAyBjpB,GAAnC,gCAAqEwK,EACtE,EASK6e,GAA6B,SACjCrpB,EACAiM,GAEA,MAAM,GAAN,OAAUgd,GAAyBjpB,GAAnC,iCAAsEiM,EACvE,EAEKqd,GAA6B,SACjCtpB,EACAwD,GAEA,MAAM,GAAN,OAAUylB,GAAyBjpB,GAAnC,iCAAsEwD,EACvE,EASK+lB,GAA2C,SAC/CvpB,EACA2E,GAEA,MAAM,GAAN,OAAUskB,GAAyBjpB,GAAnC,qCAA0E2E,EAC3E,EAEK6kB,GAAuC,SAC3CxpB,EACAypB,GAEA,MAAM,GAAN,OAAUR,GAAyBjpB,GAAnC,6CAAkFypB,EACnF,EAEKC,GAAqC,SACzC1pB,EACAmJ,GAEA,MAAM,GAAN,OAAU8f,GAAyBjpB,GAAnC,0CAA+EmJ,EAChF,EASKwgB,GAAgC,SACpCC,EACAC,EACA7pB,GAEA,OAAQ6pB,GACN,IAAK,aACH,OAAOP,GAA2BtpB,EAAW4pB,GAC/C,IAAK,2BACH,OAAOL,GAAyCvpB,EAAW4pB,GAC7D,IAAK,WACH,MAAM,GAAN,OAAUX,GAAyBjpB,GAAnC,gCAAqE4pB,GACvE,IAAK,0BACH,MAAM,GAAN,OAAUX,GAAyBjpB,GAAnC,+CAAoF4pB,GACtF,IAAK,YACH,MAAM,GAAN,OAAUX,GAAyBjpB,GAAnC,iCAAsE4pB,GACxE,IAAK,UACH,MAAM,GAAN,OAAUX,GAAyBjpB,GAAnC,+BAAoE4pB,GACtE,IAAK,iBACD,MAAM,GAAN,OAAUX,GAAyBjpB,GAAnC,sCAA2E4pB,GAC/E,IAAK,+BACH,OAAOF,GAAmC1pB,EAAW4pB,GACvD,IAAK,6BACH,OA9B4C,SAChD5pB,EACAmJ,GAEA,MAAM,GAAN,OAAU8f,GAAyBjpB,GAAnC,gDAAqFmJ,EACtF,CAyBY2gB,CAA0C9pB,EAAW4pB,GAC9D,QACE,OAAOV,GAAyBlpB,EAAW4pB,GAEhD,EC1BcG,GA/DQ,SAAC,GAIK,IAH3B1nB,EAG0B,EAH1BA,eACA9B,EAE0B,EAF1BA,eACAygB,EAC0B,EAD1BA,QAEMgJ,EAAsD,CAC1D,CACEzL,OAAQ,WACR0L,SAAU,OACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,iCACE,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAemB,EAAQhxB,WAEhC,8BAAKgxB,EAAQhxB,cAPf,GAaR,CACEolB,OAAQ,gBACR0L,SAAU,YACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OACE,eAAC,IAAD,CACE7P,GAAIkP,GACFU,EAAQ7rB,oBACR6rB,EAAQnsB,KACRmE,EAAerC,WAJnB,SAOGmqB,EAAQhxB,OAGd,GAEH,CACEolB,OAAQ,UACR0L,SAAU,WAEZ,CACE1L,OAAQ,SACR0L,SAAU,SACVvH,OAAQoE,GACRjC,OAAQ,YAEV,CACEtG,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,IAKZ,OADK1B,IAASA,EAAUgJ,GACjB,eAAC,GAAD,CAAMhJ,QAASgJ,EAAcrxB,KAAM4H,EAAexC,MAC1D,EC1DKwsB,GAAoB,SAAC,GAAD,IAAGvqB,EAAH,EAAGA,UAAH,OACxB,uBACEyW,UAAU,kBACVsJ,MAAO,CAAEyK,QAAS,OAAQC,cAAe,UAF3C,SAIE,eAAC,IAAD,CACE1K,MAAO,CAAE2K,aAAc,QACvBjQ,GAAE,2BAAsBza,EAAtB,eAFJ,0CALsB,EA4BX2qB,GAdI,SAAC,GAA0C,IAAxCtoB,EAAuC,EAAvCA,eAChB4c,EACF,iCACE,eAAC,GAAD,CACE5c,eAAgBA,EAChB9B,eAAgB8B,EAAe9B,iBAEjC,eAAC,GAAD,CAAmBP,UAAWqC,EAAerC,eAIjD,OAAO,eAAC,GAAD,CAASgF,MAAO,4BAA6BqZ,QAASY,GAC9D,EHpCG2L,GAAY,CAAC,QAAS,WAE1B,SAASC,KAAiS,OAApRA,GAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAU1S,GAAU,IAAK,IAAI5d,EAAI,EAAGA,EAAIuwB,UAAUtwB,OAAQD,IAAK,CAAE,IAAIwwB,EAASD,UAAUvwB,GAAI,IAAK,IAAI8d,KAAO0S,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1S,KAAQF,EAAOE,GAAO0S,EAAO1S,GAAU,CAAE,OAAOF,CAAQ,EAAUuS,GAASS,MAAMC,KAAMN,UAAY,CAElV,SAASO,GAAyBN,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,CAAC,EAAG,IAAkE1S,EAAK9d,EAAnE4d,EAEzF,SAAuC4S,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,CAAC,EAAG,IAA2D1S,EAAK9d,EAA5D4d,EAAS,CAAC,EAAOoT,EAAaZ,OAAOa,KAAKT,GAAqB,IAAKxwB,EAAI,EAAGA,EAAIgxB,EAAW/wB,OAAQD,IAAO8d,EAAMkT,EAAWhxB,GAAQ+wB,EAAS1wB,QAAQyd,IAAQ,IAAaF,EAAOE,GAAO0S,EAAO1S,IAAQ,OAAOF,CAAQ,CAFhNsT,CAA8BV,EAAQO,GAAuB,GAAIX,OAAOe,sBAAuB,CAAE,IAAIC,EAAmBhB,OAAOe,sBAAsBX,GAAS,IAAKxwB,EAAI,EAAGA,EAAIoxB,EAAiBnxB,OAAQD,IAAO8d,EAAMsT,EAAiBpxB,GAAQ+wB,EAAS1wB,QAAQyd,IAAQ,GAAkBsS,OAAOK,UAAUY,qBAAqBV,KAAKH,EAAQ1S,KAAgBF,EAAOE,GAAO0S,EAAO1S,GAAQ,CAAE,OAAOF,CAAQ,CAM3e,SAAS0T,GAAYC,EAAMC,GACzB,IAAIlnB,EAAQinB,EAAKjnB,MACbmnB,EAAUF,EAAKE,QACf/L,EAAQoL,GAAyBS,EAAMrB,IAE3C,OAAoB,gBAAoB,MAAOC,GAAS,CACtDvtB,GAAI,uBACJ,YAAa,uBACb8uB,MAAO,6BACPC,WAAY,+BACZvG,MAAO,KACPwG,OAAQ,IACRC,QAAS,eACThQ,IAAK2P,EACL,kBAAmBC,GAClB/L,GAAQpb,EAAqB,gBAAoB,QAAS,CAC3D1H,GAAI6uB,GACHnnB,GAAS,KAAMoiB,KAAWA,GAAsB,gBAAoB,QAAS,CAC9E9pB,GAAI,cACJ,YAAa,cACbwoB,MAAO,KACPwG,OAAQ,IACRE,UAAW,8suCAEf,CAEA,IItCI,GJsCAC,GAA0B,aAAiBT,IIpC3C,IJqCW,IIrCC,CAAC,QAAS,YAE1B,SAAS,KAAiS,OAApR,GAAWlB,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAU1S,GAAU,IAAK,IAAI5d,EAAI,EAAGA,EAAIuwB,UAAUtwB,OAAQD,IAAK,CAAE,IAAIwwB,EAASD,UAAUvwB,GAAI,IAAK,IAAI8d,KAAO0S,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQ1S,KAAQF,EAAOE,GAAO0S,EAAO1S,GAAU,CAAE,OAAOF,CAAQ,EAAU,GAASgT,MAAMC,KAAMN,UAAY,CAElV,SAAS,GAAyBC,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,CAAC,EAAG,IAAkE1S,EAAK9d,EAAnE4d,EAEzF,SAAuC4S,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,CAAC,EAAG,IAA2D1S,EAAK9d,EAA5D4d,EAAS,CAAC,EAAOoT,EAAaZ,OAAOa,KAAKT,GAAqB,IAAKxwB,EAAI,EAAGA,EAAIgxB,EAAW/wB,OAAQD,IAAO8d,EAAMkT,EAAWhxB,GAAQ+wB,EAAS1wB,QAAQyd,IAAQ,IAAaF,EAAOE,GAAO0S,EAAO1S,IAAQ,OAAOF,CAAQ,CAFhN,CAA8B4S,EAAQO,GAAuB,GAAIX,OAAOe,sBAAuB,CAAE,IAAIC,EAAmBhB,OAAOe,sBAAsBX,GAAS,IAAKxwB,EAAI,EAAGA,EAAIoxB,EAAiBnxB,OAAQD,IAAO8d,EAAMsT,EAAiBpxB,GAAQ+wB,EAAS1wB,QAAQyd,IAAQ,GAAkBsS,OAAOK,UAAUY,qBAAqBV,KAAKH,EAAQ1S,KAAgBF,EAAOE,GAAO0S,EAAO1S,GAAQ,CAAE,OAAOF,CAAQ,CAM3e,SAASoU,GAAmBT,EAAMC,GAChC,IAAIlnB,EAAQinB,EAAKjnB,MACbmnB,EAAUF,EAAKE,QACf/L,EAAQ,GAAyB6L,EAAM,IAE3C,OAAoB,gBAAoB,MAAO,GAAS,CACtD3uB,GAAI,UACJ,YAAa,UACb8uB,MAAO,6BACPC,WAAY,+BACZvG,MAAO,IACPwG,OAAQ,IACRC,QAAS,cACThQ,IAAK2P,EACL,kBAAmBC,GAClB/L,GAAQpb,EAAqB,gBAAoB,QAAS,CAC3D1H,GAAI6uB,GACHnnB,GAAS,KAAmB,gBAAoB,IAAK,CACtD+a,MAAO,CACL4M,UAAW,eAEZ,KAAW,GAAsB,gBAAoB,QAAS,CAC/DrvB,GAAI,cACJ,YAAa,cACbwoB,MAAO,KACPwG,OAAQ,IACRE,UAAW,21+CAEf,CAEA,IAAI,GAA0B,aAAiBE,ICIhCE,IDHA,ICnCa,SAAC,GAAkD,IAAhDC,EAA+C,EAA/CA,cAC7B,OACE,uBAAKpW,UAAU,YAAf,UACE,eAAC2G,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,uBAAKsJ,MAAO,CAAE2K,aAAc,QAA5B,UACE,eAAC,GAAD,CACE3K,MAAO,CAAEuM,OAAQ,OAAQxG,MAAO,QAChCrP,UAAU,iCAEZ,eAAC,GAAD,CACEsJ,MAAO,CAAEuM,OAAQ,OAAQxG,MAAO,QAChCrP,UAAU,8BAKlB,gBAAC2G,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CACE5G,UAAU,4BACVsJ,MAAO,CAAE+M,YAAa,UAFxB,SAIGD,IAEH,eAACxP,GAAA,EAAD,CACE5G,UAAU,4BACVsJ,MAAO,CAAEsF,UAAW,QAAS0H,aAAc,QAF7C,SAIE,eAAC,GAAD,CACEhN,MAAO,CAAEuM,OAAQ,OAAQxG,MAAO,QAChCrP,UAAU,8BAMrB,GCpCKuW,GAAqB,SAAC,GAAsC,IAApC3qB,EAAmC,EAAnCA,eAC5B,OACE,iCACE,eAAC+a,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,gCACGpU,EAAehB,aADlB,MACmCgB,EAAerC,iBAItD,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,8BAAKpU,EAAenE,aAK7B,EAOc+uB,GALc,SAAC,GAAsC,IAApC5qB,EAAmC,EAAnCA,eACxBwqB,EAAgB,eAAC,GAAD,CAAoBxqB,eAAgBA,IAC1D,OAAO,eAAC,GAAD,CAAqBwqB,cAAeA,GAC5C,ECTcK,GAbQ,SAAC,GAA8C,IAA5C7qB,EAA2C,EAA3CA,eACpB4c,EACF,iCACE,eAAC,GAAD,CAAUN,MAAO,eAAgBxlB,MAAOkJ,EAAehB,eACvD,eAAC,GAAD,CAAUsd,MAAO,eAAgBxlB,MAAOkJ,EAAed,cACvD,eAAC,GAAD,CAAUod,MAAO,iBAAkBxlB,MAAOkJ,EAAerC,YACzD,eAAC,GAAD,CAAU2e,MAAO,SAAUxlB,MAAOkJ,EAAezB,YAIrD,OAAO,eAAC,GAAD,CAASoE,MAAO,kBAAmBqZ,QAASY,GACpD,ECQckO,GAnBmB,SAAC,GAEK,IADtC7sB,EACqC,EADrCA,YAEI2e,EACF,iCACE,eAAC,GAAD,CAAUN,MAAO,YAAaxlB,MAAOmH,EAAY8sB,WACjD,eAAC,GAAD,CAAUzO,MAAO,YAAaxlB,MAAOmH,EAAY+sB,WACjD,eAAC,GAAD,CAAU1O,MAAO,YAAaxlB,MAAOmH,EAAYgtB,WACjD,eAAC,GAAD,CAAU3O,MAAO,YAAaxlB,MAAOmH,EAAYitB,OACjD,eAAC,GAAD,CAAU5O,MAAO,SAAUxlB,MAAOmH,EAAYM,SAC9C,eAAC,GAAD,CAAU+d,MAAO,UAAWxlB,MAAOmH,EAAYktB,UAC/C,eAAC,GAAD,CAAU7O,MAAO,YAAaxlB,MAAOmH,EAAYmtB,WACjD,eAAC,GAAD,CAAU9O,MAAO,YAAaxlB,MAAOmH,EAAYotB,cAIrD,OAAO,eAAC,GAAD,CAAS1oB,MAAO,eAAgBqZ,QAASY,GACjD,E,sBC4Bc0O,GA3Ce,SAAC,GAAD,IAC5BlX,EAD4B,EAC5BA,UACAmX,EAF4B,EAE5BA,UACAvP,EAH4B,EAG5BA,QACAhc,EAJ4B,EAI5BA,eAJ4B,OAM5B,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CACEC,SAAS,oBACT3T,KAAM,oBAAsBjY,EAAerC,UAF7C,iCAOF,eAAC+tB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CACEC,SAAS,mBACT3T,KAAI,2BAAsBjY,EAAerC,UAArC,aAFN,gCAOF,eAAC+tB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CACEC,SAAS,qBACT3T,KAAI,2BAAsBjY,EAAerC,UAArC,eAFN,qCAQJ,gBAAC6tB,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,oBAAnB,SAAwC5P,IACxC,eAACwP,GAAA,EAAIK,KAAL,CAAUD,SAAS,mBAAnB,SAAuC5P,IACvC,eAACwP,GAAA,EAAIK,KAAL,CAAUD,SAAS,qBAAnB,SAAyC5P,WArCnB,ECJf8P,GAFQ,kBAAMC,aAAN,EC6BRC,GAvBoB,SAAC,GAGI,IAFtC/tB,EAEqC,EAFrCA,YACA+B,EACqC,EADrCA,eAEI4c,EACF,iCACE,eAAC,GAAD,CAAUN,MAAO,aAAcxlB,MAAOmH,EAAYitB,OAClD,eAAC,GAAD,CAAU5O,MAAO,SAAUxlB,MAAOmH,EAAYM,SAC9C,eAAC,GAAD,CAAU+d,MAAO,UAAWxlB,MAAOmH,EAAYktB,UAC/C,eAAC,GAAD,CACE7O,MAAO,gBACPxlB,MAAOkJ,EAAeD,qBAAqBxC,eAE7C,eAAC,GAAD,CAAU+e,MAAO,kBAAmBxlB,MAAOmH,EAAYguB,kBACvD,eAAC,GAAD,CAAU3P,MAAO,iBAAkBxlB,MAAOmH,EAAYiuB,gBACtD,eAAC,GAAD,CAAU5P,MAAO,eAAgBxlB,MAAOmH,EAAYkuB,cACpD,eAAC,GAAD,CAAU7P,MAAO,gBAAiBxlB,MAAOkJ,EAAeJ,kBAI5D,OAAO,eAAC,GAAD,CAAS+C,MAAO,eAAgBqZ,QAASY,GACjD,ECNcwP,GAnBC,kBACd,gBAAC,IAAMvR,SAAP,WACE,eAAC,IAAD,CAAQlY,MAAM,cACd,uBAAKyR,UAAU,cAAf,UACE,qBAAIA,UAAU,oBAAd,iBACA,oBAAGA,UAAU,KAAb,oCACA,oBAAGA,UAAU,yBAAb,uGAIA,eAAC,IAAD,CAAMgE,GAAG,IAAT,SACE,eAACoC,GAAA,EAAD,CAAQH,QAAQ,UAAUM,KAAK,KAA/B,qCAXQ,ECOD0R,GAVC,kBACd,gBAAC,IAAMxR,SAAP,WACE,eAAC,IAAD,CAAQlY,MAAM,eACd,uBAAKyR,UAAU,cAAf,UACE,qBAAIA,UAAU,oBAAd,wBACA,oBAAGA,UAAU,KAAb,iCALU,ECEVkY,GAAwB,SAC5BjsB,GAEA,QAAKA,IAIkD,MAAnDA,EAAuB5J,SAASoH,kBAI/BwC,EAAuBL,eAK7B,EAEKusB,GAAqC,SACzClsB,GAEA,OAAKA,EAIkD,MAAnDA,EAAuB5J,SAASoH,eAC3B,eAAC,GAAD,IAGJwC,EAAuBL,eAIrB,eAAC,GAAD,IAHE,eAAC,GAAD,IARA,eAAC,GAAD,GAYV,EC8DcwsB,GA5EU,WAAO,IAAD,EAC7B,EAA8BnW,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACM+N,EAAyBjV,GAAe/W,IACxCisB,EAAWZ,KAEXnuB,EAAcgvB,cAAdhvB,UACN,IAAKA,EACH,OAAO,eAAC,GAAD,IAQT,GALK8gB,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEE4sB,EACoB,SAAxB5sB,EAAenE,MACS,QAAxBmE,EAAenE,MACS,kCAAxBmE,EAAenE,MACS,6CAAxBmE,EAAenE,KAEXgxB,EACJ,iCACE,gBAAC9R,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,4BAAf,SACE,eAAC,GAAD,CAAgBpU,eAAgBA,MAElC,eAACgb,GAAA,EAAD,CAAK5G,UAAU,4BAAf,SACE,eAAC,GAAD,CAAsBpU,eAAgBA,MAExC,gBAACgb,GAAA,EAAD,CAAK5G,UAAU,4BAAf,UACGwY,GACC,eAAC,GAAD,CACE3uB,YAAa+B,EAAe/B,YAC5B+B,eAAgBA,KAGlB4sB,GACA,eAAC,GAAD,CACE3uB,YAAa+B,EAAe/B,oBAKpC,eAAC8c,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CAAYpU,eAAgBA,WAMpC,OACE,iCACE,eAAC,GAAD,CAAaA,eAAgBA,IAC7B,uBAAKoU,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,oBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECvEc6c,GAnBK,SAAC,GAAD,IAAG7c,EAAH,EAAGA,eAAgBiC,EAAnB,EAAmBA,UAAnB,OAClB,eAAC8Y,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBjb,EAAUzF,kBAbvB,ECsBLswB,GAtBM,SAAC,GAKJ,IAJhBxQ,EAIe,EAJfA,MACAxlB,EAGe,EAHfA,MACAylB,EAEe,EAFfA,eACAC,EACe,EADfA,eAMA,OAJKD,IAAgBA,EAAiB,kBAEjCC,IAAgBA,EAAiB,kBAGpC,gBAACzB,GAAA,EAAD,CAAK3G,UAAU,OAAf,UACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAWmI,EAAhB,SACE,eAACE,GAAA,EAAKC,MAAN,UAAaJ,MAEf,eAACtB,GAAA,EAAD,CAAK5G,UAAWoI,EAAhB,SACE,sBAAKuQ,wBAAyB,CAAEC,OAAQl2B,SAI/C,ECkCcm2B,GArDU,SAAC,GAA0C,IAAxChrB,EAAuC,EAAvCA,UAKtB2a,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,kBAAmBxlB,MAAOmL,EAAUX,aACrD,eAAC,GAAD,CAAUgb,MAAO,mBAAoBxlB,MAAOmL,EAAUvF,UACtD,eAAC,GAAD,CACE4f,MAAO,0BACPxlB,MAAOmL,EAAUP,YAEnB,eAAC,GAAD,CAAU4a,MAAO,gBAAiBxlB,MAAOmL,EAAUJ,cACnD,eAAC,GAAD,CACEya,MAAO,wBACPxlB,MAAOmL,EAAUT,gBAGrB,gBAACwZ,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,qBACPxlB,MAAOmL,EAAUV,qBAEnB,eAAC,GAAD,CAAU+a,MAAO,aAAcxlB,MAAOmL,EAAUL,gBAChD,eAAC,GAAD,CACE0a,MAAO,gCACPxlB,MAAOmL,EAAUH,kBAEnB,eAAC,GAAD,CACEwa,MAAO,8BACPxlB,MAAOmL,EAAUF,iCAIvB,eAACgZ,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,UACPxlB,MAAOmL,EAAUR,QACjB8a,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,qBAAsBqZ,QAASY,GACvD,ECxCcsQ,GAbO,SAAC,GAAD,IAAG5Q,EAAH,EAAGA,MAAOxlB,EAAV,EAAUA,MAAOklB,EAAjB,EAAiBA,QAAjB,OACpB,uBAAK0B,MAAO,CAAE2K,aAAc,QAA5B,UACE,eAACtN,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,eAACqI,GAAA,EAAKC,MAAN,CAAYgB,MAAO,CAAE2K,aAAc,UAAnC,SAAgD/L,QAGpD,eAACvB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,YAAf,SAA4B4H,GAAoBllB,QARhC,EC2CPq2B,GA1CS,SAAC,GAAyC,IAAvClrB,EAAsC,EAAtCA,UACzB,OACE,gBAACga,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,+CAAiBnrB,EAAUzF,sBAKnC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOmL,EAAUzF,cAGrB,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOmL,EAAUlL,WAEnD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOmL,EAAUD,yBAO9B,ECrCK2E,GAA0B,2BAE1B0mB,GAA+B,SAAC,GAIG,EAHvCC,kBAGwC,IACZC,EAH5BC,EAEuC,EAFvCA,gBACAxtB,EACuC,EADvCA,eAyBM6f,GAvBsB0N,EAuBQC,EAtBjB,SACf/yB,EACAC,EACAC,EACAC,GAKI,O9FuBoD,SAC5DuG,EACA1G,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,gCAAqC+H,GAArC,OAAmDtG,EAO3D,C8FvCgB4yB,CACLF,EACA9yB,EACAC,EAKP,GAOGgzB,EAAsE,CAC1E,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAehgB,QAExB,8BACE,eAAC,IAAD,CACEyR,GAAIkP,GACFQ,EAAQ7E,IAAI0K,SAASprB,0BACrBoE,GACA3G,EAAerC,WAJnB,SAOGmqB,EAAQhxB,cAdb,GAqBR,CACEolB,OAAQ,OACR0L,SAAU,aACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,sBACR0L,SAAU,QACVvH,QAAQ,GAEV,CACEnE,OAAQ,gBACR0L,SAAU,QACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,EACRmC,OAAQ,aAINoL,EACJ,CACE,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAehgB,QAExB,8BACE,eAAC,IAAD,CACEyR,GAAIkP,GACFQ,EAAQ7E,IAAI0K,SAASprB,0BACrBoE,GACA3G,EAAerC,WAJnB,SAOGmqB,EAAQhxB,cAdb,GAqBR,CACEolB,OAAQ,sBACR0L,SAAU,QACVvH,QAAQ,IA2Bd,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECjJKqO,GAA6D,CACjE,CACExR,OAAQ,gBACR0L,SAAU,WACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,oBAAG7P,KAAM6P,EAAQ7E,IAAI0K,SAASryB,IAAK2a,OAAO,SAA1C,SACG6R,EAAQhxB,OAFP,GAMR,CACEolB,OAAQ,gBACR0L,SAAU,WACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,kCACG+F,SAAS/F,EAAQ7E,IAAI0K,SAASG,SAAU,IAAM,EAC3C7N,KAAK8N,MAAMF,SAAS/F,EAAQ7E,IAAI0K,SAASG,SAAU,IAAM,MACzD,EACH,QALC,IAWJF,GAA+D,CACnE,CACE1R,OAAQ,gBACR0L,SAAU,WACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,oBAAG7P,KAAM6P,EAAQ7E,IAAI0K,SAASryB,IAAK2a,OAAO,SAA1C,SACG6R,EAAQhxB,OAFP,IAQJk3B,GAAgB,SAAC,GAA+C,IACxCT,EADLU,EAA4C,EAA5CA,kBAoBjBpO,GAnBsB0N,EAmBQU,EAlBjB,SACfxzB,EACAC,EACAC,EACAC,GAEA,OCvDqC,SACzCqzB,EACAxzB,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,gEAAqE60B,GAArE,OAAyFpzB,EAOjG,CDoCYqzB,CACLX,EACA9yB,EACAC,EACAC,EAGH,GAOH,OACE,iCACE,sBAAKyZ,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,GACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,GACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAK1B,EElFK8O,GAAoC,SACxCC,EACA3oB,GAEA,MAAM,oBAAN,OAA2B2oB,EAA3B,kDAAkF3oB,EAAyBP,OAC5G,EAMKmpB,GAAiC,SAAC,GAGA,IACVd,EAH5Ba,EAEqC,EAFrCA,cACAH,EACqC,EADrCA,kBAqBMpO,GAnBsB0N,EAmBQU,EAlBjB,SACfxzB,EACAC,EACAC,EACAC,GAEA,O3FZ+C,SACnDqzB,EACAxzB,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,4DAAiE60B,GAAjE,OAAqFpzB,EAO7F,C2FPYyzB,CACLf,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAAuE,CAC3E,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,kCAExB,8BACE,eAAC,IAAD,CACEvO,GAAI+V,GACFC,EACAtG,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,OACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,GAEV,CACEnE,OAAQ,WACR0L,SAAU,WACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,GAEV,CACEnE,OAAQ,cACR0L,SAAU,cACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAjFc,SAACA,GACzB,OAAO,oBAAGiF,wBAAyB,CAAEC,OAAQlF,EAAQhxB,QACtD,CA+E6By3B,CAAkBzG,EAApC,IAIJ8F,EACJ,CACE,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,kCAExB,8BACE,eAAC,IAAD,CACEvO,GAAI+V,GACFC,EACAtG,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,OACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,GAEV,CACEnE,OAAQ,WACR0L,SAAU,WACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,IA2Bd,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECtKKmP,GAAsB,SAAC,GAIG,IACFjB,EAJ5BD,EAG6B,EAH7BA,kBACAE,EAE6B,EAF7BA,gBACAxtB,EAC6B,EAD7BA,eAiCM6f,GA/BsB0N,EA+BQC,EA9BjB,SACf/yB,EACAC,EACAC,EACAC,GAEA,MACO,OADC0yB,EhG+CsD,SAClEhrB,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,6CAAkDkJ,GAAlD,OAA8EzH,EAOtF,CgG7DgB4zB,CACLlB,EACA9yB,EACAC,GhGwB0C,SACpDyG,EACA1G,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,6CAAkD+H,GAAlD,OAAgEtG,EAOxE,CgGlCgB6zB,CACLnB,EACA9yB,EACAC,EAKP,GAOGgzB,EAA6D,CACjE,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,uBAExB,8BACE,eAAC,IAAD,CACEvO,GAAIyO,GACF7mB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAAStqB,kBAHzB,SAMGykB,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,OACR0L,SAAU,eACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,QACR0L,SAAU,UACVvH,QAAQ,GAEV,CACEnE,OAAQ,gBACR0L,SAAU,UACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,mBACR0L,SAAU,aACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,WACR0L,SAAU,WACVvH,QAAQ,EACRmC,OAAQ,aAINoL,EAA+D,CACnE,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,uBAExB,8BACE,eAAC,IAAD,CACEvO,GAAIyO,GACF7mB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAAStqB,kBAHzB,SAMGykB,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,QACR0L,SAAU,UACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECxJKsP,GAAqB,SAAC,GAII,IAQFpB,EAX5BD,EAG6B,EAH7BA,kBACAsB,EAE6B,EAF7BA,gBACA5uB,EAC6B,EAD7BA,eAEM6uB,EAAyB,SAC7BT,EACA9hB,GAEA,MAAM,oBAAN,OAA2B8hB,EAA3B,sCAAsE9hB,EAAcJ,gBACrF,EAyDK2T,GAvDsB0N,EAuDQqB,EAtDjB,SACfn0B,EACAC,EACAC,EACAC,GAEA,OAAQ0yB,GACN,IAAK,kBACH,O3EmD+C,SACvDxpB,EACArJ,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAErCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,2CAAgD0K,GAAhD,OAAmEjJ,GAAnE,OAA4EC,EAOpF,C2ExEgBg0B,CACLvB,EACA9yB,EACAC,EACAC,GAGJ,IAAK,YACH,O3EyF0C,SAClDiP,EACAnP,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAErCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,yDAA8DwQ,GAA9D,OAA4E/O,GAA5E,OAAqFC,EAO7F,C2E9GgBi0B,CACLxB,EACA9yB,EACAC,EACAC,GAGJ,IAAK,WACH,O3E0DyC,SACjDwN,EACA1N,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAErCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,uDAA4D+O,GAA5D,OAAyEtN,GAAzE,OAAkFC,EAO1F,C2E/EgBk0B,CACLzB,EACA9yB,EACAC,EACAC,GAGJ,IAAK,aACH,O3EgG0C,SAClDwG,EACA1G,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAErCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,2CAAgD+H,GAAhD,OAA8DtG,GAA9D,OAAuEC,EAO/E,C2ErHgBm0B,CACL1B,EACA9yB,EACAC,EACAC,GAIJ,QACE,O3ELwD,SAChE2H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAErCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,2CAAgDkJ,GAAhD,OAA4EzH,GAA5E,OAAqFC,EAO7F,C2EhBgBo0B,CACL3B,EACA9yB,EACAC,EACAC,GAIP,GAOG+yB,EAA4D,CAChE,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAIyW,EACF7uB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,aAVb,GAiBR,CACEolB,OAAQ,+BACR0L,SAAU,sBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,qBACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,sBACR0L,SAAU,OACVvH,QAAQ,IAINuN,EAA8D,CAClE,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAIyW,EACF7uB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,aAVb,GAiBR,CACEolB,OAAQ,sBACR0L,SAAU,OACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EC3JK8P,GAAkB,SAAC,GAAD,IACtBltB,EADsB,EACtBA,UACAjC,EAFsB,EAEtBA,eAFsB,OAItB,eAAC,GAAD,CACEstB,kBAAkB,aAClBE,gBAAiBvrB,EAAUb,YAC3BpB,eAAgBA,GAPI,EAWlBovB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAtpB,EAHc,EAGdA,UACAjC,EAJc,EAIdA,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,0BAEA3rB,EAAyBD,IACzB,eAAC0rB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,MAAnB,gCAGF3rB,EAAyBD,IACzB,eAAC0rB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,UAAnB,gCAGH3rB,EAAyBD,IACxB,eAAC0rB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,6CAKF3rB,EAAyBD,IACzB,eAAC0rB,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,MAAnB,4CAIN,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmBhsB,EAAUb,iBAE5CnB,EAAyBD,IACzB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,UAAnB,SACE,eAAC,GAAD,CACE3pB,UAAWA,EACXjC,eAAgBA,MAIrBC,EAAyBD,IACxB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEwC,cAAensB,EAAU9C,eACzB8uB,kBAAmBhsB,EAAUb,iBAIjCnB,EAAyBD,IACzB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,MAAnB,SACE,eAAC,GAAD,CACE4B,gBAAiBvrB,EAAUb,YAC3BksB,kBAAmB,aACnBttB,eAAgBA,OAIpBC,EAAyBD,IACzB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,MAAnB,SACE,eAAC,GAAD,CACE0B,kBAAkB,aAClBsB,gBAAiB3sB,EAAUb,YAC3BpB,eAAgBA,aArEd,EA8FDqvB,GAhBkB,SAAC,GAGX,IAFrBptB,EAEoB,EAFpBA,UACAjC,EACoB,EADpBA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,YACVtpB,UAAWA,EACXjC,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,EChHc0S,GAZU,SAAC,GAAyC,EAAvC3xB,UAAwC,IAC5D4xB,EAAWC,cAEjB,OACE,uBAAMpb,UAAU,kBAAkBsJ,MAAO,CAAEyK,QAAS,QAApD,SACE,oBAAGzK,MAAO,CAAE2K,aAAc,QAAUlO,QAAS,kBAAMoV,GAAU,EAAhB,EAA7C,wCAKL,EC8GcE,GAhGG,WAAO,IAAD,EACtB,EAA8BpZ,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAoDrI,mBAAS,IAA7D,oBAAOqZ,EAAP,KAA2BC,EAA3B,KACMlD,EAAyBjV,GAAe/W,IACxCmvB,EAAoBpY,GAAepV,IAEnCsqB,EAAWZ,KAEjB,EAAiCa,cAA3BhvB,EAAN,EAAMA,UAAWwD,EAAjB,EAAiBA,YACjB,IAAKxD,IAAcwD,EACjB,OAAO,eAAC,GAAD,IAGT,IAAKsd,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI0vB,IAAuBvuB,EAGzB,OAFAwuB,EAAsBxuB,GACtBurB,EAASxqB,GAAmBf,IACrB,eAAC,GAAD,IAGT,IAAMc,EAAY2tB,EAAkB3tB,UAEpC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAUxL,SAASmH,GACtB,OAAkC,MAA9BqE,EAAUxL,SAASM,OACd,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAiBnS,UAAWA,QAGhC,eAAC8Y,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAkBnS,UAAWA,QAGjC,eAAC8Y,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEnS,UAAWA,EACXjC,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CAAaA,eAAgBA,EAAgBiC,UAAWA,IACxD,uBAAKmS,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC/Gc6c,GAVK,kBAClB,eAAC9B,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,eAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,SACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,mCAJY,ECCdyN,GAAqB,WACzB,OACE,+BACE,eAAC5P,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,6EAKT,EAMc8H,GAJA,WACb,OAAO,eAAC,GAAD,CAAqBsO,cAAe,eAAC,GAAD,KAC5C,EC+GcqF,GAjHK,WAClB,IAAMj3B,EAAU4e,GAAete,GACzBwzB,EAAWZ,KAGXgE,GAFWN,cAEGlZ,OAAOlL,SAAS0O,QAE9BiW,EADY,IAAInW,gBAAgBkW,GACV7V,IAAI,aAE1B+V,EAAW,YpHxBZ,SAAmBj4B,EAAoBk4B,EAAgBC,GAC5D,IAAMC,EAAI,IAAIv2B,KACdu2B,EAAEC,QAAQD,EAAEE,UAAqB,GAATH,EAAc,GAAK,GAAK,KAChD,IAAII,EAAU,WAAaH,EAAEI,cAC7Br4B,SAASC,OAASJ,EAAa,IAAMk4B,EAAS,IAAMK,EAAU,SAC/D,CoHoBGE,CAAU34B,EAAiB,OAAQ,GACnC60B,EAAS5zB,KACTwd,OAAOlL,SAAS6M,KAAO8X,GAAwB,EAChD,EAEGnT,EACF,iCACE,eAAC7B,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,gNAOJ,gBAAC2G,GAAA,EAAD,CAAK3G,UAAU,OAAf,UACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,sBAAIsJ,MAAO,CAAE+S,cAAe,UAA5B,UACE,iDACA,kKAKA,+DAGJ,eAACzV,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,sBAAIsJ,MAAO,CAAE+S,cAAe,UAA5B,UACE,mJAIA,2DAIN,eAAC1V,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,6XAUJ,eAAC2G,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,oBACEsJ,MAAO,CAAEgT,WAAY,QACrBzY,KAAK,sFAFP,sCAQJ,eAAC8C,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,UACE,qBAAG0C,MAAO,CAAEgT,WAAY,QAAxB,oFAEM,IACJ,oBACEhT,MAAO,CAAEgT,WAAY,QACrBzY,KAAK,wHAFP,kCAKK,IARP,oCAaJ,eAAC8C,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,gBAAC4G,GAAA,EAAD,CAAK5G,UAAU,SAAf,UACE,wBACEvY,KAAK,WACLye,QAAS1hB,EACT2hB,SAAU,kBAAMmS,EAAS3zB,IAAf,IAEZ,uBAAM2kB,MAAO,CAAE+M,YAAa,UAA5B,4BAGJ,eAAC1P,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAACoG,GAAA,EAAD,CAAQoJ,UAAWhrB,EAASuhB,QAAS,kBAAM6V,GAAN,EAArC,6BAQR,OACE,eAAC,GAAD,CACErtB,MAAO,mEACPqZ,QAASY,GAGd,EC3Fc+T,GA/Ba,WAC1B,IAAI/T,EACF,+BACE,eAAC7B,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,+BACE,eAAC,KAAD,CAAiBwJ,KAAMgT,MAAejW,KAAM,KAAMgD,MAAO,SAAW,IACpE,uBAAMD,MAAO,CAAE+M,YAAa,QAA5B,8LAWV,OACE,gBAACxO,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,UACE,eAACD,GAAA,EAAKE,MAAN,UACE,4BAGJ,eAACF,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SAA6BwI,IAC7B,eAACX,GAAA,EAAK4U,OAAN,MAGL,ECGcC,GA7BC,WACd,IAAMC,EtHgBCC,UAAUC,csHdjB,OACE,iCACE,eAAC,GAAD,IACA,uBAAK7c,UAAU,OAAf,UACE,sBAAKA,UAAU,OAAf,SACE,eAAC,GAAD,MAEF,eAAC2G,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,sBAAKA,UAAW,MAAhB,SACE,eAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,iBAAiBwwB,iBAAkB,UAArD,SACE,eAACD,GAAA,EAAInQ,QAAL,UACE,gBAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,UAAnB,UACGmF,GAAqB,eAAC,GAAD,KACpBA,GAAqB,eAAC,GAAD,sBAU1C,ECRclU,GAnBK,SAAC,GAA0C,IAAxC7c,EAAuC,EAAvCA,eACfkxB,EAAW,UAAMlxB,EAAehB,aAArB,cAAuCgB,EAAerC,WACvE,OACE,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,eAAC+E,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,WAD3C,SAGGuzB,IAEH,eAAClU,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,8BAKT,EClBD,SAASiU,GAA+B9M,GA+BtC,OA9B+B,YAI3B,IAAD,IAHDjH,OAAUC,EAGT,EAHSA,YAAaC,EAGtB,EAHsBA,UAIvB,EAA0BjH,mBAASgH,GAAnC,oBAAclG,GAAd,WACMoD,EAAWgD,6BAAiB,SAACzmB,GACjCwmB,EAAUxmB,QAASqJ,EACpB,GAAE,KAGH,OACE,gBAACsc,GAAA,EAAK6G,OAAN,CACElP,UAAU,OACVtd,MAAOumB,EACP9C,SAAU,SAACxE,GACToB,EAASpB,EAAEE,OAAOnf,OAClByjB,EAASxE,EAAEE,OAAOnf,MACnB,EANH,UAQE,yBAAQA,MAAM,GAAd,iBACCutB,EAAO1oB,KAAI,SAACmpB,EAAazsB,GAAd,OACV,yBAAgBvB,MAAOguB,EAAvB,SACGA,GADUzsB,EADH,MAOjB,CAGF,C,ICvBc+4B,GAAeC,GAAcC,G,qBAGtCC,I,OAHSH,GAGK,KAHUC,IAGJ,IAAIz3B,MAAOG,cAHOu3B,GAGQ,EAFlDE,MAAMC,KAAK,CAAEn5B,QAAS+4B,GAAOD,IAASE,GAAO,IAAK,SAACI,EAAGr5B,GAAJ,OAAU+4B,GAAQ/4B,EAAIi5B,EAAtB,KAG9CK,GAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGIC,GAAmB,SAACC,EAAqBC,GAAtB,OACN,KAAjBA,EAAsBD,EAAc,EAAIA,CADjB,EAMnBE,GAAqB,SAAC,GAAD,EACzBC,UADyB,IAEzBr4B,EAFyB,EAEzBA,KAEAs4B,GAJyB,EAGzBC,kBAHyB,EAIzBD,YAKAE,GATyB,EAKzBC,aALyB,EAMzBC,aANyB,EAOzBC,uBAPyB,EAQzBC,uBARyB,EASzBJ,aACAK,EAVyB,EAUzBA,cACAC,EAXyB,EAWzBA,cACAC,EAZyB,EAYzBA,wBACAC,EAbyB,EAazBA,wBAbyB,OAezB,iCACE,yBAAQxY,QAASqY,EAAe5O,SAAU8O,EAA1C,SACG,MAEH,yBACE57B,MAAO66B,GAAOh4B,EAAKG,YACnBygB,SAAU,gBAAazjB,EAAb,EAAGmf,OAAUnf,MAAb,OAA2Bq7B,EAAYR,GAAOj5B,QAAQ5B,GAAtD,EAFZ,SAIG66B,GAAOh2B,KAAI,SAACmpB,GAAD,OACV,yBAAqBhuB,MAAOguB,EAA5B,SACGA,GADUA,EADH,MAMd,yBACEhuB,MAAO6C,EAAKI,cACZwgB,SAAU,gBAAazjB,EAAb,EAAGmf,OAAUnf,MAAb,OAA2Bm7B,EAAWpE,SAAS/2B,EAAO,IAAtD,EAFZ,SAIGy6B,GAAM51B,KAAI,SAACmpB,GAAD,OACT,yBAAqBhuB,MAAOguB,EAA5B,SACGA,GADUA,EADJ,MAMb,yBAAQ3K,QAASsY,EAAe7O,SAAU+O,EAA1C,SACG,QAxCoB,EA6CrBC,GAAkB,SAAC,GAAD,EACtBZ,UADsB,IAhDGF,EAkDzBn4B,EAFsB,EAEtBA,KAFsB,EAGtBu4B,kBAHsB,EAItBD,WAJsB,EAKtBG,aALsB,EAMtBC,aANsB,EAOtBC,uBAPsB,EAQtBC,uBARsB,EAStBJ,YATsB,EAUtBK,cAVsB,EAWtBC,cAXsB,EAYtBC,wBAZsB,EAatBC,wBAbsB,OAetB,+BACE,iCACGhB,IAjEoBG,EAiEKn4B,EAAKG,WAhElB,KAAjBg4B,EAAsB,EAAIA,EAAe,IAiEnC,IACAF,GAAiBj4B,EAAKI,cAAeJ,EAAKG,eAnB1B,EAwBlB+4B,GAAwB,SAAC,GAAD,IAC5Bb,EAD4B,EAC5BA,UACAr4B,EAF4B,EAE5BA,KACAu4B,EAH4B,EAG5BA,kBACAD,EAJ4B,EAI5BA,WACAG,EAL4B,EAK5BA,aACAC,EAN4B,EAM5BA,aACAC,EAP4B,EAO5BA,uBACAC,EAR4B,EAQ5BA,uBACAJ,EAT4B,EAS5BA,YACAK,EAV4B,EAU5BA,cACAC,EAX4B,EAW5BA,cACAC,EAZ4B,EAY5BA,wBACAC,EAb4B,EAa5BA,wBAb4B,OAe5B,uBACEjV,MAAO,CACLoV,OAAQ,GACR3K,QAAS,OACT4K,eAAgB,UAJpB,UAOyB,IAAtBb,GACC,eAAC,GAAD,CACEv4B,KAAMA,EACNq4B,UAAWA,EACXG,YAAaA,EACbM,cAAeA,EACfD,cAAeA,EACfP,WAAYA,EACZI,aAAcA,EACdD,aAAcA,EACdO,wBAAyBA,EACzBJ,uBAAwBA,EACxBG,wBAAyBA,EACzBJ,uBAAwBA,EACxBJ,kBAAmBA,IAGA,IAAtBA,GACC,eAAC,GAAD,CACEv4B,KAAMA,EACNq4B,UAAWA,EACXG,YAAaA,EACbM,cAAeA,EACfD,cAAeA,EACfP,WAAYA,EACZI,aAAcA,EACdD,aAAcA,EACdO,wBAAyBA,EACzBJ,uBAAwBA,EACxBG,wBAAyBA,EACzBJ,uBAAwBA,EACxBJ,kBAAmBA,MArDG,EA2D9B,SAASc,GAAT,GAII,IAAD,IAHD5V,OAA6CE,GAG5C,EAHSD,YAGT,EAH2B4G,gBAG3B,EAH4C3G,WAI7C,GADC,EAHuDriB,GAItBob,mBAAS,OAA3C,oBAAO4c,EAAP,KAAkBC,EAAlB,KACA,EAA8B7c,mBAAS,MAAvC,oBAAO8c,EAAP,KAAgBC,EAAhB,KAQA,OACE,sBAAKhf,UAAU,cAAf,SACE,eAAC,KAAD,CACEif,mBAAoBR,GACpBze,UAAU,eACVkf,SAAUL,EACV1Y,SAbe,SAACgZ,GACpB,mBAAqBA,EAArB,GAAOnC,EAAP,KAAcoC,EAAd,KACAN,EAAa9B,GACbgC,EAAWI,GACXlW,EAAU,CAAC8T,EAAOoC,GACnB,EASKP,UAAWA,EACXE,QAASA,EACTM,cAAY,EACZC,YAAa,EACbC,aAAW,EACXC,OAAO,QACPC,WAAY,aACZC,qBAAqB,KAI5B,CCpKD,ICpCYC,GDoCNC,GAAuB,SAAC,GAIM,IAHlCh0B,EAGiC,EAHjCA,eACAU,EAEiC,EAFjCA,sBACAC,EACiC,EADjCA,mBAEM+sB,EAAyD,CAC7D,CACExR,OAAQ,WACR0L,SAAU,OACVvH,OAAQ8Q,GACNzwB,EAAsBhF,KAAKC,KAAI,SAACmpB,GAAD,OAAYA,EAAOjpB,IAAnB,KAEjC2mB,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAemB,EAAQhxB,WAEhC,8BAAKgxB,EAAQhxB,YANb,GAWR,CACEolB,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OACE,eAAC,IAAD,CACE7P,GAAIkP,GACFU,EAAQ7rB,oBACR6rB,EAAQnsB,KACRmE,EAAerC,WAJnB,SAOGmqB,EAAQhxB,OAGd,GAEH,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,GAEV,CACEnE,OAAQ,OACR0L,SAAU,OACVvH,OAAQ2S,GACRxQ,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,SACR0L,SAAU,SACVvH,OAAQ8Q,GACNxwB,EAAmBjF,KAAKC,KAAI,SAACmpB,GAAD,OAAYA,EAAO/tB,MAAnB,KAE9ByrB,OAAQ,YAEV,CACEtG,OAAQ,kBACR0L,SAAU,eACVvH,OAAQ8Q,GACNnxB,EAAeF,oBAAoBpE,KAAKC,KAAI,SAAC+D,GAAD,OAAaA,EAAQ7C,MAArB,KAE9C2lB,OAAQ,aAINoL,EAA2D,CAC/D,CACE1R,OAAQ,WACR0L,SAAU,OACVvH,OAAQ8Q,GACNzwB,EAAsBhF,KAAKC,KAAI,SAACmpB,GAAD,OAAYA,EAAOjpB,IAAnB,KAEjC2mB,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAemB,EAAQhxB,WAEhC,8BAAKgxB,EAAQhxB,YANb,GAWR,CACEolB,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OACE,eAAC,IAAD,CACE7P,GAAIkP,GACFU,EAAQ7rB,oBACR6rB,EAAQnsB,KACRmE,EAAerC,WAJnB,SAOGmqB,EAAQhxB,OAGd,GAEH,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,IAINR,EAAW,SACfplB,EACAC,EACAC,EACAC,GAEA,OAAOL,EACLyF,EAAe/E,GACfR,EACAC,EACAC,EACAC,EAEH,EAEGgiB,EACF,iCACE,sBAAKxI,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,SAMzB,OAAO,eAAC,GAAD,CAAS1c,MAAO,GAAIqZ,QAASY,GACrC,EA0DcqX,GAxDO,WAAO,IAAD,EAC1B,EAA8B5d,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACM+N,EAAyBjV,GAAe/W,IACxCyzB,EAA4B1c,GAAexW,IAC3C0rB,EAAWZ,KAEXnuB,EAAcgvB,cAAdhvB,UACN,IAAKA,EACH,OAAO,eAAC,GAAD,IAQT,GALK8gB,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,IACGk0B,EAA0BxzB,wBAC1BwzB,EAA0BvzB,mBAG3B,OADA+rB,EAAS9rB,GAA2BZ,EAAe/E,KAC5C,eAAC,GAAD,IAGT,IAAM4xB,EACJ,eAAC,GAAD,CACE7sB,eAAgBA,EAChBU,sBAAuBwzB,EAA0BxzB,sBACjDC,mBAAoBuzB,EAA0BvzB,qBAIlD,OACE,iCACE,eAAC,GAAD,CAAaX,eAAgBA,IAC7B,uBAAKoU,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EE/Nc6c,GAnBK,SAAC,GAA0C,IAAxC7c,EAAuC,EAAvCA,eACfkxB,EAAW,UAAMlxB,EAAehB,aAArB,cAAuCgB,EAAerC,WACvE,OACE,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,eAAC+E,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,WAD3C,SAGGuzB,IAEH,eAAClU,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,oCAKT,ECSKiX,GAAgC,SAACn0B,GACrC,OAAO,SAAC8nB,GACN,IAAMsM,EAAUtM,EAAQ7E,IAAI0K,SACxBryB,EAAM,GAcV,OxH6GwC,SAAC84B,GAC3C,MAAgC,yBAAzBA,EAAQr3B,YAChB,CwH5HOs3B,CAA6BD,IxH8HP,SAACA,GAC7B,MAAgC,UAAzBA,EAAQr3B,YAChB,CwH9Hcu3B,CAAeF,GxHgIoB,SAChDA,GAEA,MAAgC,kCAAzBA,EAAQr3B,YAChB,CwHjIKw3B,CAAmCH,IxHmIb,SAACA,GAC3B,MAAgC,6CAAzBA,EAAQr3B,YAChB,CwHpIKy3B,CAAaJ,GAEb94B,EAAG,yEAAqE84B,EAAQv3B,QxHoIjD,SAACu3B,GACpC,MAAgC,mBAAzBA,EAAQr3B,YAChB,CwHrIc03B,CAAsBL,KAC/B94B,EAAG,uEAAmE84B,EAAQv3B,SAP9EvB,EAAG,2EAAuE84B,EAAQv3B,QAFlFvB,EAAG,yEAAqE84B,EAAQv3B,QAYtE,KAARvB,EACK,sCAIP,qBAAG2c,KAAM3c,EAAK2a,OAAO,SAASyH,MAAO,CAAEgX,OAAQ,WAA/C,UACE,uBAAMhX,MAAO,CAAEiX,YAAa,OAA5B,iCACA,eAAC,GAAD,MAGL,CACF,EAEKC,GAAsB,SAAC,GAA0C,IAAxC50B,EAAuC,EAAvCA,eACvB0tB,EAA6D,CACjE,CACExR,OAAQ,kBACR0L,SAAU,SACVvH,QAAQ,GAEV,CACEnE,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,iBACR0L,SAAU,iBACVvH,QAAQ,GAEV,CACEnE,OAAQ,qBACR0L,SAAU,oBACVvH,QAAQ,GAEV,CACEnE,OAAQ,gBACR0L,SAAU,kBACVvH,QAAQ,GAEV,CACEnE,OAAQ,wBACR0L,SAAU,cACVvH,QAAQ,GAEV,CACEnE,OAAQ,GACR0L,SAAU,oBACVvH,QAAQ,EACRwH,KAAMsM,OAIJvG,EAA+D,CACnE,CACE1R,OAAQ,kBACR0L,SAAU,SACVvH,QAAQ,GAEV,CACEnE,OAAQ,iBACR0L,SAAU,iBACVvH,QAAQ,GAEV,CACEnE,OAAQ,gBACR0L,SAAU,kBACVvH,QAAQ,GAEV,CACEnE,OAAQ,GACR0L,SAAU,oBACVvH,QAAQ,EACRwH,KAAMsM,OAINvX,EACF,iCACE,sBAAKxI,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM0J,EAAeF,oBAAoBpE,SAG7C,sBAAK0Y,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM0J,EAAeF,oBAAoBpE,YAMjD,OAAO,eAAC,GAAD,CAASiH,MAAO,GAAIqZ,QAASY,GACrC,EA6CciY,GA3CY,WAAO,IAAD,EAC/B,EAA8Bxe,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACM+N,EAAyBjV,GAAe/W,IACxCisB,EAAWZ,KAEXnuB,EAAcgvB,cAAdhvB,UACN,IAAKA,EACH,OAAO,eAAC,GAAD,IAQT,GALK8gB,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEE6sB,EACJ,eAAC,GAAD,CAAqB7sB,eAAgBA,IAGvC,OACE,iCACE,eAAC,GAAD,CAAaA,eAAgBA,IAC7B,uBAAKoU,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,mBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EChKc6c,GAnBK,SAAC,GAAD,IAAG7c,EAAH,EAAGA,eAAgB4D,EAAnB,EAAmBA,eAAnB,OAClB,eAACmX,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBtZ,EAAepH,kBAb5B,ECCds4B,GAAuB,SAC3BxuB,EACAtG,GAEA,MAAM,oBAAN,OAA2BA,EAAerC,UAA1C,sCAAiF2I,EAAYJ,6BAC9F,EAEK6uB,GAA2B,SAAC/0B,GAehC,OAd0B,SAAC8nB,GAAD,OACxB,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,oCAExB,8BACE,eAAC,IAAD,CAAMvO,GAAI0c,GAAqBhN,EAAQ7E,IAAI0K,SAAU3tB,GAArD,SACG8nB,EAAQhxB,cARO,CAe3B,EAEKk+B,GAAmB,SAAC,GAGI,IACAzH,EAH5BzpB,EAE2B,EAF3BA,iBACA9D,EAC2B,EAD3BA,eAqBM6f,GAnBsB0N,EAmBQzpB,EAlBjB,SACfrJ,EACAC,EACAC,EACAC,GAEA,O5GTmD,SACvDkJ,EACArJ,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,yDAA8D0K,GAA9D,OAAiFjJ,EAOzF,C4GVYo6B,CACL1H,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAA0D,CAC9D,CACExR,OAAQ,OACR0L,SAAU,YACVvH,QAAQ,EACRwH,KAAMkN,GAAyB/0B,IAEjC,CACEkc,OAAQ,OACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,sBACR0L,SAAU,qBACVvH,QAAQ,GAEV,CACEnE,OAAQ,eACR0L,SAAU,wBACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,sBACE1T,UAAU,YACV2Y,wBAAyB,CAAEC,OAAQlF,EAAQhxB,QAHzC,IASJ82B,EAA4D,CAChE,CACE1R,OAAQ,OACR0L,SAAU,YACVvH,QAAQ,EACRwH,KAAMkN,GAAyB/0B,IAEjC,CACEkc,OAAQ,OACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,sBACR0L,SAAU,qBACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EC7HK6V,GAAiC,SACrCl1B,EACA0E,GAEA,MAAM,oBAAN,OAA2B1E,EAAerC,UAA1C,+CAA0F+G,EAAsBN,MACjH,EAEK+wB,GAA6B,SAAC,GAGI,IACfrO,EAHvB9mB,EAEqC,EAFrCA,eACA8D,EACqC,EADrCA,iBAoBMgb,GAlBiBgI,EAkBUhjB,EAjBd,SACfrJ,EACAC,EACAC,EACAC,GAEA,OjHN6D,SACjEkJ,EACArJ,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,gDAAqD0K,GAArD,OAAwEjJ,EAOhF,CiHbYu6B,CACLtO,EACArsB,EACAC,EACAC,EAGH,GAMG+yB,EAAoE,CACxE,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,uBAExB,8BACE,eAAC,IAAD,CACEvO,GAAI8c,GACFl1B,EACA8nB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,qBACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,GAEV,CACEnE,OAAQ,yBACR0L,SAAU,uBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,IAIJ82B,EAAsE,CAC1E,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,uBAExB,8BACE,eAAC,IAAD,CACEvO,GAAI8c,GACFl1B,EACA8nB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,cAbb,GAoBR,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBD,EAClBM,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBD,EAClBM,kBAAkB,EAClBC,iBAAiB,QAO1B,EClIKgW,GAAiB,SAAC,GAGI,IACE9H,EAH5BU,EAEyB,EAFzBA,kBACAqH,EACyB,EADzBA,oBAyCMzV,GAvCsB0N,EAuCQU,EAtCjB,SACfxzB,EACAC,EACAC,EACAC,GAEA,OAAQ06B,GACN,IAAK,KACH,OxHgGsD,SAC9DhzB,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,uCAA4CkJ,GAA5C,OAAwEzH,EAOhF,CwHnHgB06B,CACLhI,EACA9yB,EACAC,EACAC,GAGJ,IAAK,iBACH,OxH6G4C,SACpDqR,EACAvR,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,uCAA4C4S,GAA5C,OAA8DnR,EAOtE,CwHhIgB26B,CACLjI,EACA9yB,EACAC,EACAC,GAIJ,QACE,OxH0D6C,SACrDmJ,EACArJ,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,uCAA4C0K,GAA5C,OAA+DjJ,EAOvE,CwH7EgB46B,CACLlI,EACA9yB,EACAC,EACAC,GAIP,GAOG+yB,EAAwD,CAC5D,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,kBAExB,8BACE,eAAC,IAAD,CAAMvO,IA9DQnW,EA8De6lB,EAAQ7E,IAAI0K,SA7D/C,oBAAN,OAA2B1rB,EAAU9C,eAArC,iCAA4E8C,EAAUb,cA6D1E,SACG0mB,EAAQhxB,eA/DE,IAACmL,CAuDhB,GAeR,CACEia,OAAQ,aACR0L,SAAU,aACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,aACR0L,SAAU,aACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,cACR0L,SAAU,UACVvH,QAAQ,IAINuN,EAA0D,CAC9D,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,kBAExB,8BACE,eAAC,IAAD,CAAMvO,GAAG,GAAT,SAAa0P,EAAQhxB,cAPvB,GAaR,CACEolB,OAAQ,cACR0L,SAAU,UACVvH,QAAQ,IA0BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,G,SNxJW0U,K,qBAAAA,E,QAAAA,E,qBAAAA,Q,KOuBZ,ICvBY2B,GDuBNC,GAAyB,SAAC,GAAD,IAC7B31B,EAD6B,EAC7BA,eACA4D,EAF6B,EAE7BA,eAF6B,OAI7B,eAAC,GAAD,CACE5D,eAAgBA,EAChB8D,iBAAkBF,EAAeP,kBANN,EAUzBuyB,GAAe,SAAC,GAAD,IACnB51B,EADmB,EACnBA,eACA4D,EAFmB,EAEnBA,eAFmB,OAInB,eAAC,GAAD,CACEE,iBAAkBF,EAAeP,iBACjCrD,eAAgBA,GANC,EAUf61B,GAAa,SAAC,GAAD,EACjB71B,eADiB,IAEjB4D,EAFiB,EAEjBA,eAFiB,OAIjB,eAAC,GAAD,CACE0xB,oBAAqBvB,GAA8B+B,GACnD7H,kBAAmBrqB,EAAeP,kBANnB,EAUb+rB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACA3nB,EAHc,EAGdA,eACA5D,EAJc,EAIdA,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,OAAnB,wCAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,eAAnB,4BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kBAAnB,+BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,cAAnB,8BAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmBrqB,EAAeP,qBAEnD,eAACmoB,GAAA,EAAIK,KAAL,CAAUD,SAAS,OAAnB,SACE,eAAC,GAAD,CACE5rB,eAAgBA,EAChB4D,eAAgBA,MAGpB,eAAC4nB,GAAA,EAAIK,KAAL,CAAUD,SAAS,eAAnB,SACE,eAAC,GAAD,CACE5rB,eAAgBA,EAChB4D,eAAgBA,MAGpB,eAAC4nB,GAAA,EAAIK,KAAL,CAAUD,SAAS,cAAnB,SACE,eAAC,GAAD,CACE5rB,eAAgBA,EAChB4D,eAAgBA,MAGpB,eAAC4nB,GAAA,EAAIK,KAAL,CAAUD,SAAS,kBAAnB,SACE,eAAC,GAAD,CACEgD,gBAAiBhrB,EAAeP,iBAChCiqB,kBAAkB,kBAClBttB,eAAgBA,aAnDZ,EA4EDqvB,GAjBkB,SAAC,GAGL,IAF3BrvB,EAE0B,EAF1BA,eACA4D,EAC0B,EAD1BA,eAEIgZ,EACF,eAAC,GAAD,CACE2O,UAAU,YACVvrB,eAAgBA,EAChB4D,eAAgBA,IAIpB,OACE,eAAC,GAAD,CAASjB,MAAO,6BAA8BqZ,QAASY,GAE1D,EE1EcmZ,GA5Cc,SAAC,GAEI,IADhCnyB,EAC+B,EAD/BA,eAEA,OACE,gBAACqY,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,oDAAsBxpB,EAAepH,sBAK7C,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO8M,EAAepH,cAG1B,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAO8M,EAAe7M,WAExD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO8M,EAAe5B,yBAOnC,ECEcg0B,GA3Ce,SAAC,GAEI,IADjCpyB,EACgC,EADhCA,eAEIgZ,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO8M,EAAeN,eAExB,eAAC,GAAD,CAAUgZ,MAAO,cAAexlB,MAAO8M,EAAeL,aACtD,eAAC,GAAD,CAAU+Y,MAAO,QAASxlB,MAAO8M,EAAejB,QAChD,eAAC,GAAD,CAAU2Z,MAAO,WAAYxlB,MAAO8M,EAAeF,cAErD,gBAACsX,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,gBAAiBxlB,MAAO8M,EAAeJ,UACxD,eAAC,GAAD,CACE8Y,MAAO,mBACPxlB,MAAO8M,EAAeH,aAExB,eAAC,GAAD,CACE6Y,MAAO,oBACPxlB,MAAO8M,EAAeD,yBAI5B,eAACoX,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,sCACPxlB,MAAO8M,EAAed,YACtByZ,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,0BAA2BqZ,QAASY,GAC5D,ECpCKqZ,GAA6B,SAAC,GAGK,IAFvC7yB,EAEsC,EAFtCA,+BACApD,EACsC,EADtCA,eAEI4c,EACF,gBAAC7B,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,gBAAC2G,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPN,QACE,eAAC,IAAD,CACE5D,GAAIkP,GACFlkB,EAA+Bb,0BAC/B,2BACAvC,EAAerC,WAJnB,SAOGyF,EAA+B5G,gBAKxC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,qBACPxlB,MAAOsM,EAA+BJ,eAG1C,eAACgY,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAOsM,EAA+BrM,WAG1C,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOsM,EAA+B1G,iBAK9C,eAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,QACPxlB,MAAOsM,EAA+BT,aAM9C,OACE,eAAC,GAAD,CACEA,MAAO,2CACPqZ,QAASY,GAGd,ECsEcsZ,GAlHQ,WAAO,IAAD,EAC3B,EAA8B7f,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAA8DrI,mBAAS,IAAvE,oBAAO8f,EAAP,KAAgCC,EAAhC,KACM3J,EAAyBjV,GAAe/W,IACxC41B,EAAyB7e,GAAexT,IAExC0oB,EAAWZ,KAEjB,EAAsCa,cAAhChvB,EAAN,EAAMA,UAAWmG,EAAjB,EAAiBA,iBACjB,IAAKnG,IAAcmG,EACjB,OAAO,eAAC,GAAD,IAQT,GALK2a,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIm2B,IAA4BryB,EAG9B,OAFAsyB,EAA2BtyB,GAC3B4oB,EAAS7oB,GAAwBC,IAC1B,eAAC,GAAD,IAGT,IAAMF,EAAiByyB,EAAuBzyB,eAE9C,GAA2C,SAAvCyyB,EAAuBj2B,YACzB,OAAO,eAAC,GAAD,IAGT,IAAKwD,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAenN,SAASmH,GAC3B,OAAuC,MAAnCgG,EAAenN,SAASM,OACnB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAsBxQ,eAAgBA,QAG1C,eAACmX,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAuBxQ,eAAgBA,QAG1CA,EAAeR,gCACd,eAAC2X,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEhR,+BACEQ,EAAeR,+BAEjBpD,eAAgBA,QAKxB,eAAC+a,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChB4D,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACE5D,eAAgBA,EAChB4D,eAAgBA,IAElB,uBAAKwQ,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EClGc6c,GAlCK,SAAC,GAAD,IAClB7c,EADkB,EAClBA,eACA0E,EAFkB,EAElBA,sBAFkB,OAIlB,eAACqW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBvT,EAAsB/G,WADlD,UAGGqC,EAAehB,aAHlB,MAGmC0F,EAAsB/G,aAEzD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBvT,EAAsB/G,UAA5C,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAM4O,GACJniB,EAAsB/G,UACtB+G,EAAsBP,qBAH1B,SAMGO,EAAsBD,4BAEzB,eAACuY,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGxY,EAAsBlI,kBA3Bb,ECKd4yB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACA7mB,EAHc,EAGdA,sBAHc,OAKd,sBAAK0P,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,2BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmBvpB,EAAsBN,gBAdlD,EAoCDirB,GAfkB,SAAC,GAEC,IADjC3qB,EACgC,EADhCA,sBAEIkY,EACF,eAAC,GAAD,CACE2O,UAAU,YACV7mB,sBAAuBA,IAI3B,OACE,eAAC,GAAD,CAAS/B,MAAO,6BAA8BqZ,QAASY,GAE1D,ECSc0Z,GAjDqB,SAAC,GAEI,IADvC5xB,EACsC,EADtCA,sBAEA,OACE,gBAACuX,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,4DAC4B1oB,EAAsBlI,sBAM1D,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO4N,EAAsBlI,cAGjC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO4N,EAAsB3N,WAGjC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO4N,EAAsB1C,yBAO1C,ECwBcu0B,GApEsB,SAAC,GAEI,IADxC7xB,EACuC,EADvCA,sBAEM8xB,EAA8B3P,GAClCniB,EAAsB/G,UACtB+G,EAAsBP,qBAEpByY,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,wBACPxlB,MAAO4N,EAAsBL,gBAE/B,eAAC,GAAD,CAAUiY,MAAO,UAAWxlB,MAAO4N,EAAsBhI,aAE3D,gBAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAO4N,EAAsBJ,UAE/B,eAAC,GAAD,CACEgY,MAAO,0BACPxlB,MACE,eAAC,IAAD,CAAMshB,GAAIoe,EAAV,SACG9xB,EAAsBD,oCAMjC,eAACsW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,oBACPxlB,MAAO4N,EAAsBF,SAC7B+X,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,yBACPxlB,MAAO4N,EAAsBH,2BAInC,eAACwW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,yBACPxlB,MAAO4N,EAAsBjO,SAC7B8lB,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CAAS7Z,MAAO,kCAAmCqZ,QAASY,GAE/D,ECgDc6Z,GAjGe,WAAO,IAAD,EAClC,EAA8BpgB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAwCrI,mBAAS,IAAjD,oBAAOqgB,EAAP,KAAqBC,EAArB,KAEMlK,EAAyBjV,GAAe/W,IACxCm2B,EAAgCpf,GACpC1S,IAGI4nB,EAAWZ,KAEjB,EAA6Ca,cAAvChvB,EAAN,EAAMA,UAAWuG,EAAjB,EAAiBA,wBACjB,IAAKvG,IAAcuG,EACjB,OAAO,eAAC,GAAD,IAQT,GALKua,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEE0E,EACJkyB,EAA8BlyB,sBAEhC,GAAIR,IAA4BwyB,EAG9B,OAFAC,EAAgBzyB,GAChBwoB,EAAS/nB,GAA+BT,IACjC,eAAC,GAAD,IAGT,IAAKQ,EACH,OAAO,eAAC,GAAD,IAGT,IAAMmoB,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE1P,sBAAuBA,QAI7B,eAACqW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE1P,sBAAuBA,QAI7B,eAACqW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE1P,sBAAuBA,WAOjC,OACE,iCACE,eAAC,GAAD,CACE1E,eAAgBA,EAChB0E,sBAAuBA,IAEzB,uBAAK0P,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EClFc6c,GA/BK,SAAC,GAAD,MAClB7c,EADkB,EAClBA,eACAyF,EAFkB,EAElBA,yBAFkB,OAIlB,eAACsV,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBxS,EAAyB9H,WADrD,UAGGqC,EAAehB,aAHlB,MAGmCyG,EAAyB9H,aAE5D,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBxS,EAAyB9H,UAA/C,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBxS,EAAyB9H,UAA/C,iCAAiF8H,EAAyBR,mBADhH,mBAGGQ,EAAyBxD,iBAH5B,aAGG,EAAoCzF,YAEvC,eAACwgB,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGzX,EAAyBjJ,kBAxBhB,G,SVXRk5B,O,iDAAAA,I,4DAAAA,Q,KWeZ,IAAMmB,GAAuB,SAC3BzI,EACAzmB,GAEA,MAAM,oBAAN,OAA2BymB,EAA3B,oCAAoEzmB,EAAYF,cACjF,EAEKqvB,GAAmB,SAAC,GAKI,IAJ5BC,EAI2B,EAJ3BA,iBACA3I,EAG2B,EAH3BA,cACAppB,EAE2B,EAF3BA,OACAipB,EAC2B,EAD3BA,kBAgCIV,EAAY,GACZvoB,IACFuoB,EAAYvoB,GAGVipB,IACFV,EAAYU,GAGd,IAAMpO,EAvCqB,SAAC0N,GA2B1B,OA1BiB,SACf9yB,EACAC,EACAC,EACAC,GAEA,OAAQm8B,GACN,KAAKrB,GAAqBsB,sBACxB,OtH+BmC,SAC3ChyB,EACAvK,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,6CAAkD4L,GAAlD,OAA2DnK,EAOnE,CsHlDgBo8B,CACL1J,EACA9yB,EACAC,EACAC,GAGJ,KAAK+6B,GAAqBwB,2BACxB,OtH4CwC,SAChDjJ,EACAxzB,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,uDAA4D60B,GAA5D,OAAgFpzB,EAOxF,CsH/DgBs8B,CACL5J,EACA9yB,EACAC,EACAC,GAIP,CAGF,CAWgBy8B,CAAmB7J,GAE9BG,EAA0D,CAC9D,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,oBAExB,8BACE,eAAC,IAAD,CACEvO,GAAIye,GAAqBzI,EAAetG,EAAQ7E,IAAI0K,UADtD,SAGG7F,EAAQhxB,cAVb,GAiBR,CACEolB,OAAQ,gBACR0L,SAAU,aACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,GAEV,CACEnE,OAAQ,oBACR0L,SAAU,WACVvH,QAAQ,IAINuN,EAA4D,CAChE,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCAAOpB,GAAe,oBAExB,8BACE,eAAC,IAAD,CACEvO,GAAIye,GAAqBzI,EAAetG,EAAQ7E,IAAI0K,UADtD,SAGG7F,EAAQhxB,cAVb,GAiBR,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EClJK+P,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAvrB,EAHc,EAGdA,eACAyF,EAJc,EAIdA,yBAJc,OAMd,sBAAK2O,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,0BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEmL,iBAAkBrB,GAAqBsB,sBACvC5I,cAAepuB,EAAerC,UAC9BqH,OAAQS,EAAyBP,iBAlB7B,EA2CDmqB,GAjBkB,SAAC,GAGI,IAFpCrvB,EAEmC,EAFnCA,eACAyF,EACmC,EADnCA,yBAEImX,EACF,eAAC,GAAD,CACE2O,UAAU,WACVvrB,eAAgBA,EAChByF,yBAA0BA,IAI9B,OACE,eAAC,GAAD,CAAS9C,MAAO,6BAA8BqZ,QAASY,GAE1D,ECFcya,GAjDwB,SAAC,GAEI,IAD1C5xB,EACyC,EADzCA,yBAEA,OACE,gBAACwW,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,kEACgC3nB,EAAyBjJ,sBAMjE,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO2O,EAAyBjJ,cAGpC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO2O,EAAyB1O,WAGpC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO2O,EAAyBzD,yBAO7C,ECuBcs1B,GArEyB,SAAC,GAEC,IADxC7xB,EACuC,EADvCA,yBAGImX,GADwB,2BAAuBnX,EAAyB9H,UAAhD,iCAAkF8H,EAAyBR,mBAErI,iCACE,gBAAC8V,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAO2O,EAAyBpB,gBAElC,eAAC,GAAD,CACEiY,MAAO,UACPxlB,MAAO2O,EAAyB/I,UAElC,eAAC,GAAD,CAAU4f,MAAO,SAAUxlB,MAAO2O,EAAyBN,SAC3D,eAAC,GAAD,CACEmX,MAAO,WACPxlB,MAAO2O,EAAyBH,cAGpC,gBAAC0V,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAO2O,EAAyBnB,UAElC,eAAC,GAAD,CAAUgY,MAAO,OAAQxlB,MAAO2O,EAAyB5J,OACzD,eAAC,GAAD,CACEygB,MAAO,YACPxlB,MAAO2O,EAAyBL,YAElC,eAAC,GAAD,CACEkX,MAAO,cACPxlB,MAAO2O,EAAyBF,oBAItC,eAACwV,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,+BACPxlB,MAAO2O,EAAyBD,YAChC+W,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,0BACPxlB,MAAO2O,EAAyB3C,YAChCyZ,eAAgB,mBAChBC,eAAgB,6BAO1B,OACE,eAAC,GAAD,CACE7Z,MAAO,mCACPqZ,QAASY,GAGd,EC4Dc2a,GA5GK,WAAO,IAAD,EACxB,EAA8BlhB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAGIrI,mBAAS,IAHb,oBACEmhB,EADF,KAEEC,EAFF,KAIMhL,EAAyBjV,GAAe/W,IACxCi3B,EAAmClgB,GACvC5R,IAGI8mB,EAAWZ,KAEjB,EAAgDa,cAA1ChvB,EAAN,EAAMA,UAAWg6B,EAAjB,EAAiBA,2BACjB,IAAKh6B,IAAcg6B,EACjB,OAAO,eAAC,GAAD,IAQT,GALKlZ,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIw3B,IAAsCG,EAGxC,OAFAF,EAAqCE,GACrCjL,EAAShnB,GAAkCiyB,IACpC,eAAC,GAAD,IAGT,IAAMlyB,EACJiyB,EAAiCjyB,yBAEnC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAyBhP,SAASmH,GACrC,OAAiD,MAA7C6H,EAAyBhP,SAASM,OAC7B,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE3O,yBAA0BA,QAIhC,eAACsV,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE3O,yBAA0BA,QAIhC,eAACsV,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChByF,yBAA0BA,WAOpC,OACE,iCACE,eAAC,GAAD,CACEzF,eAAgBA,EAChByF,yBAA0BA,IAE5B,uBAAK2O,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EClGc6c,GA3BK,SAAC,GAAD,MAAG7c,EAAH,EAAGA,eAAgBsG,EAAnB,EAAmBA,YAAnB,OAClB,eAACyU,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsB3R,EAAY3I,WAAvD,UACGqC,EAAehB,aADlB,MACmCsH,EAAY3I,aAE/C,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsB3R,EAAY3I,UAAlC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAM4O,GACJvgB,EAAY3I,UACZ2I,EAAYN,sBAHhB,mBAMGM,EAAY1C,sBANf,aAMG,EAA4BpH,YAE/B,eAACwgB,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyB5W,EAAY9J,kBArBzB,ECKd4yB,GAAU,SAAC,GAAD,IAAGhb,EAAH,EAAGA,UAAWmX,EAAd,EAAcA,UAAWjlB,EAAzB,EAAyBA,YAAzB,OACd,sBAAK8N,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,2BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBAAmB3nB,EAAYJ,uCAX3B,EA6BDmpB,GAVkB,SAAC,GAAuC,IAArC/oB,EAAoC,EAApCA,YAC9BsW,EACF,eAAC,GAAD,CAAS2O,UAAU,YAAYjlB,YAAaA,IAG9C,OACE,eAAC,GAAD,CAAS3D,MAAO,6BAA8BqZ,QAASY,GAE1D,ECScgb,GA1CW,SAAC,GAA6C,IAA3CtxB,EAA0C,EAA1CA,YAC3B,OACE,gBAAC2V,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BAAKzG,GAAe,kCACpB,8BACE,sEACoCrgB,EAAY9J,sBAMxD,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOwP,EAAY9J,cAGvB,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOwP,EAAYvP,WAErD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOwP,EAAYD,iBAOhC,ECUcwxB,GA/CY,SAAC,GAA8C,IAAD,EAA3CvxB,EAA2C,EAA3CA,YACtBwxB,EAAuBjR,GAC3BvgB,EAAY3I,UACZ2I,EAAYN,sBAEV4W,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAOwP,EAAYjC,gBAErB,eAAC,GAAD,CAAUiY,MAAO,UAAWxlB,MAAOwP,EAAY5J,aAEjD,eAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,0BACPxlB,MACE,eAAC,IAAD,CAAMshB,GAAI0f,EAAV,mBACGxxB,EAAY1C,sBADf,aACG,EAA4BpH,mBAMvC,eAACue,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,0BACPxlB,MAAOwP,EAAYH,sBACnBoW,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CACE7Z,MAAO,uCACPqZ,QAASY,GAGd,ECgEcmb,GA5FkB,WAAO,IAAD,EACrC,EAA8B1hB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAA4DrI,mBAAS,IAArE,oBAAO2hB,EAAP,KAA+BC,EAA/B,KACMxL,EAAyBjV,GAAe/W,IACxCy3B,EAAsB1gB,GAAe/Q,IAErCimB,EAAWZ,KAEjB,EAAmCa,cAA7BhvB,EAAN,EAAMA,UAAWoI,EAAjB,EAAiBA,cACjB,IAAKpI,IAAcoI,EACjB,OAAO,eAAC,GAAD,IAQT,GALK0Y,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIg4B,IAA2BjyB,EAG7B,OAFAkyB,EAA0BlyB,GAC1B2mB,EAASnmB,GAAqBR,IACvB,eAAC,GAAD,IAGT,IAAMO,EAAc4xB,EAAoB5xB,YAExC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAY7P,SAASmH,GACxB,OAAoC,MAAhC0I,EAAY7P,SAASM,OAChB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAmB9N,YAAaA,QAGpC,eAACyU,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAoB9N,YAAaA,QAGrC,eAACyU,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAA0B9N,YAAaA,WAM/C,OACE,iCACE,eAAC,GAAD,CAAatG,eAAgBA,EAAgBsG,YAAaA,IAC1D,uBAAK8N,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECtBc6c,GAhFK,SAAC,GAAD,InEoBlBlf,EACAg6B,EmErBqB33B,EAAH,EAAGA,eAAgB2H,EAAnB,EAAmBA,YAAnB,OAClB,eAACoT,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKCgK,EAAY1F,WACX,eAAC+a,GAAA,EAAWC,KAAZ,CACEhF,KAAMgP,GACJjnB,EAAerC,UACfgK,EAAY1F,UAAUb,aAH1B,SAMGuG,EAAY1F,UAAUzF,YAG1BmL,EAAYvE,gCACX,eAAC4Z,GAAA,EAAWC,KAAZ,CACEhF,KAAMiP,GACJlnB,EAAerC,UACfgK,EAAYvE,+BACTb,2BAJP,SAOGoF,EAAYvE,+BAA+B5G,YAG/CmL,EAAY/D,gBACX,eAACoZ,GAAA,EAAWC,KAAZ,CACEhF,KAAM4O,GACJ7mB,EAAerC,UACfgK,EAAY/D,eAAeP,kBAH/B,SAMGsE,EAAY/D,eAAepH,YAG/BmL,EAAYJ,0BACX,eAACyV,GAAA,EAAWC,KAAZ,CACEhF,KAAMoP,GACJrnB,EAAerC,UACfgK,EAAYJ,yBAAyBrB,8BAHzC,SAMG,iCAGJyB,EAAYlC,0BACX,eAACuX,GAAA,EAAWC,KAAZ,CACEhF,MnEpCVta,EmEqCYqC,EAAerC,UnEpC3Bg6B,EmEqCYhwB,EAAYlC,yBAAyBP,OnEnC3C,GAAN,OAAU0hB,GAAyBjpB,GAAnC,kDAAuFg6B,ImEgC/E,SAMGhwB,EAAYlC,yBAAyBjJ,YAGzCmL,EAAYL,4BACX,eAAC0V,GAAA,EAAWC,KAAZ,CACEhF,KAAMkP,GACJnnB,EAAerC,UACfgK,EAAYL,2BAA2BpC,QAH3C,SAMGyC,EAAYL,2BAA2B9K,YAG5C,eAACwgB,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBvV,EAAYnL,kBA1EzB,ECFd4yB,GAAU,SAAC,GAAD,IAAGhb,EAAH,EAAGA,UAAWmX,EAAd,EAAcA,UAAW5jB,EAAzB,EAAyBA,YAAzB,OACd,sBAAKyM,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,2BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmBtmB,EAAYF,wBAVxC,EA2BD4nB,GAVkB,SAAC,GAAuC,IAArC1nB,EAAoC,EAApCA,YAC9BiV,EACF,eAAC,GAAD,CAAS2O,UAAU,YAAY5jB,YAAaA,IAG9C,OACE,eAAC,GAAD,CAAShF,MAAO,6BAA8BqZ,QAASY,GAE1D,ECccub,GA3CW,SAAC,GAGI,IAF7BxwB,EAE4B,EAF5BA,YACA3H,EAC4B,EAD5BA,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BAAKzG,GAAe,kBACpB,8BACE,iDAAiBhf,EAAYnL,sBAKrC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO6Q,EAAYnL,cAGvB,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAO6Q,EAAY5Q,WAErD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOkJ,EAAeN,mBAOnC,ECDc04B,GAzCY,SAAC,GAA8C,IAA5CzwB,EAA2C,EAA3CA,YACxBiV,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,8BACPxlB,MAAO6Q,EAAY3E,aAErB,eAAC,GAAD,CAAUsZ,MAAO,UAAWxlB,MAAO6Q,EAAYjL,aAEjD,eAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CAAUkI,MAAO,cAAexlB,MAAO6Q,EAAYpE,kBAGvD,eAACwX,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,wBACPxlB,MAAO6Q,EAAYD,QACnB6U,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,oBACPxlB,MAAO6Q,EAAYlR,SACnB8lB,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,kBAAmBqZ,QAASY,GACpD,ECmEcyb,GAxFK,WAAO,IAAD,EACxB,EAA8BhiB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAoDrI,mBAAS,IAA7D,oBAAOiiB,EAAP,KAA2BC,EAA3B,KAEM9L,EAAyBjV,GAAe/W,IACxC+3B,EAAsBhhB,GAAe1P,IAErC4kB,EAAWZ,KAEjB,EAAmCa,cAA7BhvB,EAAN,EAAMA,UAAWuJ,EAAjB,EAAiBA,cACjB,IAAKvJ,IAAcuJ,EACjB,OAAO,eAAC,GAAD,IAQT,GALKuX,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIkH,IAAkBoxB,EAGpB,OAFAC,EAAsBrxB,GACtBwlB,EAAS9kB,GAAqBV,IACvB,eAAC,GAAD,IAGT,IAAMS,EAAc6wB,EAAoB7wB,YAExC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAMklB,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChB2H,YAAaA,QAInB,eAACoT,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAoBzM,YAAaA,QAGrC,eAACoT,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAA0BzM,YAAaA,WAM/C,OACE,iCACE,eAAC,GAAD,CAAa3H,eAAgBA,EAAgB2H,YAAaA,IAC1D,uBAAKyM,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECpGc6c,GAZK,WAClB,OACE,eAAC9B,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,eAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,SACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,mCAKT,ECTK0S,GAAqB,WACzB,OACE,iCACE,eAAC5P,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,4EAGJ,eAAC2G,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,8BAAK,aAKd,EAOc8H,GALA,WACb,IAAMsO,EAAgB,eAAC,GAAD,IACtB,OAAO,eAAC,GAAD,CAAqBA,cAAeA,GAC5C,EC2BciO,GA/CE,WACf,IAAM3b,EACJ,iCACE,kGACA,4MAKA,sBAAIY,MAAO,CAAE+S,cAAe,UAA5B,UACE,iDACA,kKAIA,0DACA,mJAIA,sDAEF,yXAOA,6BACE,oBACE/S,MAAO,CAAEgT,WAAY,QACrBzY,KAAK,sFAFP,uCAUN,OACE,eAAC8C,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SAAyB0I,KAG9B,ECzBc4b,GAjBW,SAAC,GAAD,IAAG1c,EAAH,EAAGA,QAAH,OACxB,sBAAK5H,UAAW,OAAhB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,YAAYswB,UAAW,SAAzC,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,SAAS3T,KAAM,IAAlC,2BAKJ,eAACuT,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,SAAnB,SAA6B5P,UAXX,E,sBCiCX2c,GA/BI,SAAC,GAA2C,IAAzCC,EAAwC,EAAxCA,gBACpB,EAAsCviB,mBAAS,IAA/C,oBAAOwiB,EAAP,KAAoBC,EAApB,KACMC,EAAgB,SAACC,GACrBF,EAAeE,GACfJ,EAAgBI,EACjB,EAED,OACE,+BACE,eAACje,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,gBAAC6kB,GAAA,EAAD,CAAY7kB,UAAU,0BAA0BuG,KAAK,KAArD,UACE,eAAC8B,GAAA,EAAKsF,QAAN,CACEvE,YAAa,SACb,aAAW,SACXjD,SAAU,SAACxE,GAAD,OAAOgjB,EAAchjB,EAAEE,OAAOnf,MAA9B,EACVA,MAAO+hC,IAET,eAACre,GAAA,EAAD,CAAQH,QAAQ,GAAhB,SACE,eAAC,KAAD,CACEjG,UAAU,UACV+F,QAAS,kBAAM4e,EAAcF,EAApB,cAQxB,ECiIcK,GA1IE,WACf,MAAsC7iB,mBAAS,IAA/C,oBAAOwiB,EAAP,KAAoBC,EAApB,KAMMpL,EAA8D,CAClE,CACExR,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,iBACR0L,SAAU,iBACVvH,QAAQ,EACRmC,OAAQ,iBACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CAAM1P,IA1Ba/G,EA0BeyW,EAAQhxB,MAzBhD,oBAAN,OAA2Bua,IAyBf,SACGyW,EAAQhxB,cA3BO,IAACua,CAsBrB,GAYR,CACE6K,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,IAIRvB,EAAa,SACfrkB,EACAC,EACAC,EACAC,GAEA,OC7D2C,SAC7CH,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,GAYV,OAVAA,GAAM,uBAAoBO,mBACxBT,GADI,iBAEIF,EAFJ,qBAEuBC,GAEtB,UAAMtB,EAAN,iCAAsCyB,EAO9C,CD0CUs+B,CACL1+B,EACAC,EACAC,EAGH,EAEGwkB,EAAyB,SAACia,GAW5B,MAAO,CACL19B,KAXY09B,EAAe19B,KAAKC,KAAI,SAAC09B,GACrC,MAAO,CACLr8B,aAAcq8B,EAAOziC,KACrB0iC,eAAgBD,EAAO98B,cACvByC,aAAcq6B,EAAO3tB,iBACrB6tB,KAAMF,EAAOE,KACbh7B,OAAQ86B,EAAO96B,OAElB,IAICjG,OAAQ8gC,EAAe9gC,OACvB2D,KAAMm9B,EAAen9B,KACrB4T,MAAOupB,EAAevpB,MAEzB,EAEK2pB,EACJ,iCACE,sBAAKplB,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBD,EAClBM,kBAAkB,EAClBC,iBAAiB,EACjBF,uBAAwBA,EACxBxkB,WAAYk+B,MAGhB,sBAAKzkB,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBD,EAClBM,kBAAkB,EAClBC,iBAAiB,EACjBF,uBAAwBA,EACxBxkB,WAAYk+B,SAMdY,EACJ,iCACE,eAAC,GAAD,CAAYb,gBA1GQ,SAACI,GACvBF,EAAeE,EAChB,IAyGIQ,KAIC3M,EACJ,+BACE,gBAAC9R,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,4BAAf,SACE,eAAC,GAAD,CAASzR,MAAM,UAAUqZ,QAAS,eAAC,GAAD,QAEpC,eAAChB,GAAA,EAAD,CAAK5G,UAAU,4BAAf,SACE,eAAC,GAAD,CAASzR,MAAM,cAAcqZ,QAASyd,WAM9C,OACE,iCACE,eAAC,GAAD,IACA,uBAAKrlB,UAAU,OAAf,UACE,eAAC,GAAD,IACA,eAAC,GAAD,CAAmB4H,QAAS6Q,SAInC,EEnIchQ,GAxBK,SAAC,GAAD,IAClB7c,EADkB,EAClBA,eACA2G,EAFkB,EAElBA,wBAFkB,OAIlB,eAACoU,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGvW,EAAwBnK,kBAjBf,ECqDLk9B,GAnDuB,SAAC,GAGI,IAFzC/yB,EAEwC,EAFxCA,wBAEwC,EADxC3G,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,4DAC4B,IACzBzmB,EAAwBnK,sBAMnC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO6P,EAAwBnK,cAGnC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO6P,EAAwB5P,WAGnC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO6P,EAAwB3E,yBAO5C,ECUc23B,GA5DwB,SAAC,GAEK,IAD3ChzB,EAC0C,EAD1CA,wBAEIiW,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,qBACPxlB,MAAO6P,EAAwB3D,aAEjC,eAAC,GAAD,CACEsZ,MAAO,qBACPxlB,MAAO6P,EAAwBjE,gBAEjC,eAAC,GAAD,CACE4Z,MAAO,0BACPxlB,MAAO6P,EAAwB/D,SAEjC,eAAC,GAAD,CACE0Z,MAAO,sBACPxlB,MAAO6P,EAAwBhE,WAGnC,gBAACqY,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,cACPxlB,MAAO6P,EAAwB5D,YAEjC,eAAC,GAAD,CACEuZ,MAAO,YACPxlB,MAAO6P,EAAwB9D,YAEjC,eAAC,GAAD,CACEyZ,MAAO,gBACPxlB,MAAO6P,EAAwBjK,gBAIrC,eAACqe,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAO6P,EAAwB7D,YAC/ByZ,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CACE7Z,MAAO,mCACPqZ,QAASY,GAGd,ECxDKgd,GAAiB,SAAC,GAIG,EAHzBtM,kBAG0B,IACEC,EAH5BC,EAEyB,EAFzBA,gBACAxtB,EACyB,EADzBA,eAyBM6f,GAvBsB0N,EAuBQC,EAtBjB,SACf/yB,EACAC,EACAC,EACAC,GAKI,O1I6BsD,SAC9D0H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,uCAA4CkJ,GAA5C,OAAwEzH,EAOhF,C0IhDgBg/B,CACLtM,EACA9yB,EACAC,EACAC,EAIP,GAOG+yB,EAAwD,CAC5D,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCACE,eAAC,GAAD,QAGJ,8BACE,eAAC,IAAD,CACE3P,GAAI4O,GACFhnB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAAS9jB,aAHzB,SAMGie,EAAQhxB,cAfb,GAsBR,CACEolB,OAAQ,gBACR0L,SAAU,eACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,EACRmC,OAAQ,aAINoL,EAA0D,CAC9D,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCACE,eAAC,GAAD,QAGJ,8BACE,eAAC,IAAD,CACE3P,GAAI4O,GACFhnB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAAS9jB,aAHzB,SAMGie,EAAQhxB,cAfb,GAsBR,CACEolB,OAAQ,gBACR0L,SAAU,eACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,EACRmC,OAAQ,aA2BZ,OAtBE,iCACE,sBAAKpO,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECnJKya,GAAiD,SAAC,GAGI,IAQ9BvM,EAV5BjrB,EAEyD,EAFzDA,0BACAtC,EACyD,EADzDA,eAEM+5B,EAA+B,SACnC3L,EACA1hB,GAEA,MAAM,oBAAN,OAA2B0hB,EAA3B,6CAA6E1hB,EAAoBxH,OAClG,EAqBK2a,GAnBsB0N,EAmBQjrB,EAlBjB,SACf7H,EACAC,EACAC,EACAC,GAEA,OnJAkE,SACtEqzB,EACAxzB,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,4DAAiE60B,GAAjE,OAAqFpzB,EAO7F,CmJnBYm/B,CACLzM,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAEA,CACJ,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAI2hB,EACF/5B,EAAerC,UACfmqB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,aAVb,GAiBR,CACEolB,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,GAEV,CACEnE,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,GAEV,CACEnE,OAAQ,qBACR0L,SAAU,gBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,IAINuN,EAEA,CACJ,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,YACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAI2hB,EACF/5B,EAAerC,UACfmqB,EAAQ7E,IAAI0K,UAHhB,SAMG7F,EAAQhxB,aAVb,GAiBR,CACEolB,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EC3IK4a,GAAqC,SAAC,GAGI,IAClB1M,EAH5BjrB,EAE6C,EAF7CA,0BAsBMud,GApBuC,EAD7C7f,eAE4ButB,EAmBQjrB,EAlBjB,SACf7H,EACAC,EACAC,EACAC,GAEA,OCFmD,SACvD0H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,mCAAwCkJ,GAAxC,OAAoEzH,EAO5E,CDdYq/B,CACL3M,EACA9yB,EACAC,EAIH,GAsFH,OAtBE,iCACE,sBAAK0Z,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QA3BF,CACJ,CACEzC,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,GAEV,CACEnE,OAAQ,aACR0L,SAAU,aACVvH,QAAQ,GAEV,CACEnE,OAAQ,WACR0L,SAAU,WACVvH,QAAQ,GAEV,CACEnE,OAAQ,aACR0L,SAAU,YACVvH,QAAQ,IASJ/pB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAnEF,CACJ,CACEzC,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,GAEV,CACEnE,OAAQ,aACR0L,SAAU,aACVvH,QAAQ,GAEV,CACEnE,OAAQ,WACR0L,SAAU,WACVvH,QAAQ,GAEV,CACEnE,OAAQ,aACR0L,SAAU,YACVvH,QAAQ,GAEV,CACEnE,OAAQ,cACR0L,SAAU,cACVvH,QAAQ,EACRmC,OAAQ,aA2CJlsB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EEzGK8a,GAA0C,SAAC,GAGI,IACvB5M,EAH5BjrB,EAEkD,EAFlDA,0BAsBMud,GApB4C,EADlD7f,eAE4ButB,EAmBQjrB,EAlBjB,SACf7H,EACAC,EACAC,EACAC,GAEA,OCLwD,SAC5D0H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,wCAA6CkJ,GAA7C,OAAyEzH,EAOjF,CDXYu/B,CACL7M,EACA9yB,EACAC,EAIH,GAwDH,OAtBE,iCACE,sBAAK0Z,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAZF,CACJ,CACEzC,OAAQ,eACR0L,SAAU,QACVvH,QAAQ,IASJ/pB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QArCF,CACJ,CACEzC,OAAQ,eACR0L,SAAU,QACVvH,QAAQ,GAEV,CACEnE,OAAQ,cACR0L,SAAU,cACVvH,QAAQ,EACRmC,OAAQ,aA4BJlsB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EE3ED,IAAMgb,GAAsC,SAAC,GAGI,IACnB9M,EAH5BjrB,EAE8C,EAF9CA,0BAsBMud,GApBwC,EAD9C7f,eAE4ButB,EAmBQjrB,EAlBjB,SACf7H,EACAC,EACAC,EACAC,GAEA,OCHoD,SACxD0H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAQzC,MANO,UAAMtB,EAAN,oCAAyCkJ,GAAzC,OAAqEzH,EAO7E,CDbYy/B,CACL/M,EACA9yB,EACAC,EAIH,GAyEH,OAtBE,iCACE,sBAAK0Z,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAlBF,CACJ,CACEzC,OAAQ,OACR0L,SAAU,cACVvH,QAAQ,GAEV,CACEnE,OAAQ,cACR0L,SAAU,cACVvH,QAAQ,EACRmC,OAAQ,aASJlsB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAtDF,CACJ,CACEzC,OAAQ,OACR0L,SAAU,cACVvH,QAAQ,GAEV,CACEnE,OAAQ,WACR0L,SAAU,kBACVvH,QAAQ,GAEV,CACEnE,OAAQ,eACR0L,SAAU,qBACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,cACR0L,SAAU,cACVvH,QAAQ,EACRmC,OAAQ,aAkCJlsB,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EExFKkb,GAAgB,SAAC,GAIG,EAHxBjN,kBAGyB,IACGC,EAH5BC,EAEwB,EAFxBA,gBACAxtB,EACwB,EADxBA,eAyBM6f,GAvBsB0N,EAuBQC,EAtBjB,SACf/yB,EACAC,EACAC,EACAC,GAKI,OpJoCqD,SAC7D0H,EACA7H,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAWzC,OATIC,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAExC,UAAMvB,EAAN,4CAAiDkJ,GAAjD,OAA6EzH,EAOrF,CoJvDgB2/B,CACLjN,EACA9yB,EACAC,EACAC,EAIP,GAOG+yB,EAAuD,CAC3D,CACExR,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCACE,eAAC,GAAD,QAGJ,8BACE,eAAC,IAAD,CACE3P,GAAI2O,GACF/mB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAASvlB,YAHzB,SAMG0f,EAAQhxB,cAfb,GAsBR,CACEolB,OAAQ,aACR0L,SAAU,mBACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,WACR0L,SAAU,mBACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,EACRmC,OAAQ,aAINoL,EAAyD,CAC7D,CACE1R,OAAQ,WACR0L,SAAU,YACVvH,QAAQ,EACRmC,OAAQ,WACRqF,KAAM,SAACC,GAAD,OACJ,iCACE,gCACE,qBAAIpK,MAAO,CAAEqK,WAAY,OAAzB,SACE,gCACE,eAAC,GAAD,QAGJ,8BACE,eAAC,IAAD,CACE3P,GAAI2O,GACF/mB,EAAerC,UACfmqB,EAAQ7E,IAAI0K,SAASvlB,YAHzB,SAMG0f,EAAQhxB,cAfb,GAsBR,CACEolB,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,EACRmC,OAAQ,YAEV,CACEtG,OAAQ,UACR0L,SAAU,UACVvH,QAAQ,EACRmC,OAAQ,aA2BZ,OAtBE,iCACE,sBAAKpO,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECvIK+P,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACA5kB,EAHc,EAGdA,wBACA3G,EAJc,EAIdA,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,uBAAnB,sCAIF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,SAAnB,6BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,UAAnB,uBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,wBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kBAAnB,+BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,aAAnB,0BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,KAAnB,gCAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,cAAnB,8BAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,uBAAnB,SACE,eAAC,GAAD,CACEtpB,0BACEqE,EAAwBpE,0BAE1BvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,SAAnB,SACE,eAAC,GAAD,CACEtpB,0BACEqE,EAAwBpE,0BAE1BvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,UAAnB,SACE,eAAC,GAAD,CACEtpB,0BACEqE,EAAwBpE,0BAE1BvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEtpB,0BACEqE,EAAwBpE,0BAE1BvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBACEtnB,EAAwBpE,8BAI9B,eAACipB,GAAA,EAAIK,KAAL,CAAUD,SAAS,kBAAnB,SACE,eAAC,GAAD,CACE0B,kBAAkB,2BAClBsB,gBAAiBjoB,EAAwBpE,0BACzCvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,KAAnB,SACE,eAAC,GAAD,CACE0B,kBAAkB,KAClBE,gBAAiB7mB,EAAwBpE,0BACzCvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,cAAnB,SACE,eAAC,GAAD,CACE0J,oBAAqBvB,GAA8B0G,GACnDxM,kBACEtnB,EAAwBpE,8BAI9B,eAACipB,GAAA,EAAIK,KAAL,CAAUD,SAAS,aAAnB,SACE,eAAC,GAAD,CACE0B,kBAAmB,KACnBE,gBAAiB7mB,EAAwBpE,0BACzCvC,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACE0B,kBAAmB,KACnBE,gBAAiB7mB,EAAwBpE,0BACzCvC,eAAgBA,aAnHZ,EA2IDqvB,GAhBkB,SAAC,GAGG,IAFnC1oB,EAEkC,EAFlCA,wBACA3G,EACkC,EADlCA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,uBACV5kB,wBAAyBA,EACzB3G,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,EC1Bc8d,GA9GiB,WAAO,IAAD,EACpC,EAA8BrkB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAGIrI,mBAAS,IAHb,oBACEskB,EADF,KAEEC,EAFF,KAIMnO,EAAyBjV,GAAe/W,IACxCo6B,EAAkCrjB,GACtCvP,IAGIykB,EAAWZ,KAEjB,EAA+Ca,cAAzChvB,EAAN,EAAMA,UAAW2E,EAAjB,EAAiBA,0BACjB,IAAK3E,IAAc2E,EACjB,OAAO,eAAC,GAAD,IAGT,IAAKmc,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI26B,IAAqCr4B,EAGvC,OAFAs4B,EAAoCt4B,GACpCoqB,EAAS3kB,GAAiCzF,IACnC,eAAC,GAAD,IAGT,IAAMqE,EACJk0B,EAAgCl0B,wBAElC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAwBlQ,SAASmH,GACpC,OAAgD,MAA5C+I,EAAwBlQ,SAASM,OAC5B,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEzN,wBAAyBA,EACzB3G,eAAgBA,QAItB,eAAC+a,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEzN,wBAAyBA,QAI/B,eAACoU,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEzN,wBAAyBA,EACzB3G,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChB2G,wBAAyBA,IAE3B,uBAAKyN,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC7Gc6c,GAnBK,SAAC,GAAD,IAAG7c,EAAH,EAAGA,eAAgBsK,EAAnB,EAAmBA,gBAAnB,OAClB,eAACyQ,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyB5S,EAAgB9N,kBAb7B,ECqKLs+B,GApKS,SAAC,GAA+C,IAA7CxwB,EAA4C,EAA5CA,gBACrBsS,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,2BACPxlB,MAAOwT,EAAgB3B,eAEzB,eAAC,GAAD,CACE2T,MAAO,gBACPxlB,MAAOwT,EAAgB1B,kBAG3B,gBAACoS,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,+BACPxlB,MAAOwT,EAAgBzB,mBAEzB,eAAC,GAAD,CACEyT,MAAO,gCACPxlB,MAAOwT,EAAgBxB,mBAI7B,gBAACiS,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,cAAexlB,MAAOwT,EAAgB/G,aACvD,eAAC,GAAD,CACE+Y,MAAO,WACPxlB,MAAOwT,EAAgBjC,mBAEzB,eAAC,GAAD,CAAUiU,MAAO,SAAUxlB,MAAOwT,EAAgBhC,YAEpD,eAAC0S,GAAA,EAAD,CAAK5G,UAAU,uBAEjB,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAOwT,EAAgB9B,0BAEzB,eAAC,GAAD,CACE8T,MAAO,eACPxlB,MAAOwT,EAAgB7B,iBAG3B,gBAACuS,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,mBACPxlB,MAAOwT,EAAgBvB,kBAEzB,eAAC,GAAD,CACEuT,MAAO,kBACPxlB,MAAOwT,EAAgB5B,qBAI7B,eAACqS,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,sCACPxlB,MAAOwT,EAAgBxH,YACvByZ,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,qDACPxlB,MAAOwT,EAAgBnB,yBACvBoT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,0DACPxlB,MAAOwT,EAAgBpB,oBACvBqT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAOwT,EAAgBlB,oBACvBmT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,uCACPxlB,MAAOwT,EAAgBjB,mBACvBkT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,YACPxlB,MAAOwT,EAAgBzH,UACvB0Z,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kCACPxlB,MAAOwT,EAAgB/B,oBACvBgU,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,2BACPxlB,MAAOwT,EAAgBtB,eACvBuT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,sBACPxlB,MAAOwT,EAAgBrB,kBACvBsT,eAAgB,mBAChBC,eAAgB,yBAItB,eAACzB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,oBACPxlB,MAAOwT,EAAgBhB,iBACvBiT,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,mBAAoBqZ,QAASY,GACrD,ECpHcme,GA7CQ,SAAC,GAGI,IAF1BzwB,EAEyB,EAFzBA,gBAEyB,EADzBtK,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,6CAAe9iB,EAAgB9N,sBAKvC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOwT,EAAgB9N,cAG3B,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOwT,EAAgBvT,WAEzD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOwT,EAAgBtI,yBAOpC,EC7CKg5B,GAA2C,SAAC,GAGQ,IAC5BzN,EAH5BplB,EAEuD,EAFvDA,WAsBM0X,GApBiD,EADvD7f,eAE4ButB,EAmBQplB,EAlBjB,SACf1N,EACAC,EACAC,EACAC,GAEA,OCJ6D,SACjEuN,EACA1N,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GACrCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,gEAAqE+O,GAArE,OAAkFrN,GAAlF,OAAiGD,EAOzG,CDhBYogC,CACL1N,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAEA,CACJ,CACExR,OAAQ,cACR0L,SAAU,aACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,cACR0L,SAAU,aACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,IAINuN,EAEA,CACJ,CACE1R,OAAQ,cACR0L,SAAU,aACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,cACR0L,SAAU,aACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EE3FK6b,GAAuC,SAAC,GAGY,IAC5B3N,EAH5BplB,EAEuD,EAFvDA,WAsBM0X,GApBiD,EADvD7f,eAE4ButB,EAmBQplB,EAlBjB,SACf1N,EACAC,EACAC,EACAC,GAEA,OCHqD,SACzDuN,EACA1N,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GACrCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,gEAAqE+O,GAArE,OAAkFrN,GAAlF,OAAiGD,EAOzG,CDjBYsgC,CACL5N,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAEA,CACJ,CACExR,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,YACR0L,SAAU,YACVvH,QAAQ,GAEV,CACEnE,OAAQ,cACR0L,SAAU,aACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,QACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,MACVvH,QAAQ,IAINuN,EAEA,CACJ,CACE1R,OAAQ,OACR0L,SAAU,OACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,YACR0L,SAAU,YACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,QACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,MACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EE1GK+b,GAAgB,SAACtT,GAAD,OACpB,sBACEpK,MAAO,CACLyK,QAAS,QACTkT,WAAY,SACZC,SAAU,SACVC,aAAc,YAEhBxO,wBAAyB,CAAEC,OAAQlF,EAAQhxB,QARzB,EAYhB0kC,GAA6B,SAAC,GAGI,IACVjO,EAH5BplB,EAEqC,EAFrCA,WACAnI,EACqC,EADrCA,eAqBM6f,GAnBsB0N,EAmBQplB,EAlBjB,SACf1N,EACAC,EACAC,EACAC,GAEA,OCd2C,SAC/CuN,EACA1N,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GACrCI,EAAe,GAWnB,OAVIH,GAAcA,EAAWrC,OAAS,IACpCwC,GAAY,uBAAoBM,mBAAmBT,KAG9C,UAAMvB,EAAN,2DAAgE+O,GAAhE,OAA6ErN,GAA7E,OAA4FD,EAOpG,CDNY4gC,CACLlO,EACA9yB,EACAC,EACAC,EAGH,GAOG+yB,EAEA,CACJ,CACExR,OAAQ,qBACR0L,SAAU,gBACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,eAAC,IAAD,CACE1P,IpGvCRza,EoGwCUqC,EAAerC,UpGvCzB0M,EoGwCUyd,EAAQ7E,IAAI0K,SAASpjB,wBpGtCzB,GAAN,OAAUqc,GAAyBjpB,GAAnC,+CAAoF0M,IoGmC9E,SAMG5Q,EAAWquB,EAAQhxB,SpG7CU,IACtC6G,EACA0M,CoGoCU,GAWR,CACE6R,OAAQ,wBACR0L,SAAU,UACVvH,QAAQ,EACRwH,KAAMuT,KAIJxN,EAEA,CACJ,CACE1R,OAAQ,qBACR0L,SAAU,gBACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,wBACR0L,SAAU,UACVvH,QAAQ,EACRwH,KAAMuT,KA2BV,OAtBE,iCACE,sBAAKhnB,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,EE3FK+P,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAjhB,EAHc,EAGdA,gBACAtK,EAJc,EAIdA,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,6BAAnB,0CAIF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kCAAnB,iDAIF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kBAAnB,+BAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kBAAnB,kCAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmB3jB,EAAgBlC,eAEpD,eAACojB,GAAA,EAAIK,KAAL,CAAUD,SAAS,kBAAnB,SACE,eAAC,GAAD,CACE0B,kBAAkB,WAClBsB,gBAAiBtkB,EAAgBlC,WACjCpI,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,kCAAnB,SACE,eAAC,GAAD,CACEzjB,WAAYmC,EAAgBlC,WAC5BpI,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,kBAAnB,SACE,eAAC,GAAD,CACEzjB,WAAYmC,EAAgBlC,WAC5BpI,eAAgBA,MAGpB,eAACwrB,GAAA,EAAIK,KAAL,CAAUD,SAAS,6BAAnB,SACE,eAAC,GAAD,CACEzjB,WAAYmC,EAAgBlC,WAC5BpI,eAAgBA,aAvDZ,EA+EDqvB,GAhBkB,SAAC,GAGH,IAF7B/kB,EAE4B,EAF5BA,gBACAtK,EAC4B,EAD5BA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,6BACVjhB,gBAAiBA,EACjBtK,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,EC6Cc8e,GAlHE,WAAO,IAAD,EACrB,EAA8BrlB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAkDrI,mBAAS,IAA3D,oBAAOslB,EAAP,KAA0BC,EAA1B,KACMnP,EAAyBjV,GAAe/W,IACxCo7B,EAAmBrkB,GAAe9N,IAElCgjB,EAAWZ,KAEjB,EAAgCa,cAA1BhvB,EAAN,EAAMA,UAAWwK,EAAjB,EAAiBA,WACjB,IAAKxK,IAAcwK,EACjB,OAAO,eAAC,GAAD,IAGT,IAAKsW,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI27B,IAAsBxzB,EAGxB,OAFAyzB,EAAqBzzB,GACrBukB,EAASljB,GAAkBrB,IACpB,eAAC,GAAD,IAGT,IAAMmC,EAAkBuxB,EAAiBtyB,SAEzC,IAAKe,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAgB7T,SAASmH,GAC5B,OAAwC,MAApC0M,EAAgB7T,SAASM,OACpB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChBsK,gBAAiBA,QAIvB,eAACyQ,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAiB9J,gBAAiBA,QAGrCA,EAAgBlH,gCACf,eAAC2X,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEhR,+BACEkH,EAAgBlH,+BAElBpD,eAAgBA,QAKxB,eAAC+a,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE9J,gBAAiBA,EACjBtK,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChBsK,gBAAiBA,IAEnB,uBAAK8J,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EClHc6c,GAnBK,SAAC,GAAD,IAAG7c,EAAH,EAAGA,eAAgBiM,EAAnB,EAAmBA,iBAAnB,OAClB,eAAC8O,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBjR,EAAiBzP,kBAb9B,E,SCEds/B,GAAsB,kBAC1B,gBAAC1hB,GAAA,EAAD,CAAOC,QAAS,YAAa0hB,aAAa,EAA1C,UACE,sBAAK3nB,UAAU,aAAf,SACE,eAAC,KAAD,CAAiBwJ,KAAMoe,KAAQC,YAAU,MAE3C,sBAAK7nB,UAAU,gBAAf,4FALwB,EA8Cb8nB,GAlCU,SAAC,GAAiD,IAA/CjwB,EAA8C,EAA9CA,iBACtB2Q,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,uBACPxlB,MAAOmV,EAAiB3I,eAE1B,eAAC,GAAD,CACEgZ,MAAO,gBACPxlB,MAAOmV,EAAiBnC,eAE1B,eAAC,GAAD,CAAUwS,MAAO,iBAAkBxlB,MAAOmV,EAAiBvP,aAE7D,gBAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,cAAexlB,MAAOmV,EAAiB1I,aACxD,eAAC,GAAD,CACE+Y,MAAO,WACPxlB,MAAOmV,EAAiBlC,4BAI9B,eAACgR,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAASsJ,MAAO,CAAE0P,UAAW,QAA5C,SACE,eAAC,GAAD,WAMR,OAAO,eAAC,GAAD,CAASzqB,MAAO,oBAAqBqZ,QAASY,GACtD,ECCcuf,GA7CS,SAAC,GAGI,IAF3BlwB,EAE0B,EAF1BA,iBAE0B,EAD1BjM,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,8CAAgBnhB,EAAiBzP,sBAKzC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOmV,EAAiBzP,cAG5B,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOmV,EAAiBlV,WAE1D,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOmV,EAAiBjK,yBAOrC,ECnCKotB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAtf,EAHc,EAGdA,iBACAjM,EAJc,EAIdA,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,kBAAnB,iCAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,kBAAnB,SACE,eAAC,GAAD,CACE0B,kBAAkB,YAClBsB,gBAAiB3iB,EAAiBpC,YAClC7J,eAAgBA,YAlBZ,EA0CDqvB,GAhBkB,SAAC,GAGH,IAF7BpjB,EAE4B,EAF5BA,iBACAjM,EAC4B,EAD5BA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,kBACVtf,iBAAkBA,EAClBjM,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,ECqFcwf,GAlHG,WAAO,IAAD,EACtB,EAA8B/lB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAoDrI,mBAAS,IAA7D,oBAAOgmB,EAAP,KAA2BC,EAA3B,KACM7P,EAAyBjV,GAAe/W,IACxC87B,EAAoB/kB,GAAerN,IAEnCuiB,EAAWZ,KAEjB,EAAiCa,cAA3BhvB,EAAN,EAAMA,UAAWiM,EAAjB,EAAiBA,YACjB,IAAKjM,IAAciM,EACjB,OAAO,eAAC,GAAD,IAGT,IAAK6U,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIq8B,IAAuBzyB,EAGzB,OAFA0yB,EAAsB1yB,GACtB8iB,EAASziB,GAAmBL,IACrB,eAAC,GAAD,IAGT,IAAMqC,EAAmBswB,EAAkBvyB,UAE3C,IAAKiC,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAiBxV,SAASmH,GAC7B,OAAyC,MAArCqO,EAAiBxV,SAASM,OACrB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChBiM,iBAAkBA,QAIxB,eAAC8O,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAkBnI,iBAAkBA,QAGvCA,EAAiB7I,gCAChB,eAAC2X,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEhR,+BACE6I,EAAiB7I,+BAEnBpD,eAAgBA,QAKxB,eAAC+a,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEnI,iBAAkBA,EAClBjM,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChBiM,iBAAkBA,IAEpB,uBAAKmI,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECxGc6c,GA7BK,SAAC,GAAD,MAClB7c,EADkB,EAClBA,eACAw8B,EAFkB,EAElBA,6BAFkB,OAIlB,eAACzhB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKC6+B,EAA6BlyB,iBAC5B,eAAC0S,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,gCAAsE6+B,EAA6Bp0B,YADzG,mBAGGo0B,EAA6BlyB,uBAHhC,aAGG,EAA8C9N,YAGnD,eAACwgB,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,2CAvBY,ECsDLuf,GAnDsB,SAAC,GAEI,IAAD,IADvCD,EACuC,EADvCA,6BAEME,EAAiBF,EAA6Br5B,eAChD4jB,GAAkB,UAChByV,EAA6Br5B,sBADb,aAChB,EAA6C7F,sBAC7Ck/B,EAA6Bp0B,YAE/B,cACAwU,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,wBACPxlB,MAAO0lC,EAA6Bn4B,gBAErCm4B,EAA6BlyB,iBAC5B,eAAC,GAAD,CACEgS,MAAO,mBACPxlB,MACE,eAAC,IAAD,CAAMshB,GAAIskB,EAAV,mBACGF,EAA6BlyB,uBADhC,aACG,EAA8C9N,iBAMzD,eAACwe,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAO0lC,EAA6Bl4B,eAI1C,eAACyW,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,iCACPxlB,MAAO0lC,EAA6BhyB,QACpC+R,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,0BAA2BqZ,QAASY,GAC5D,ECFc+f,GAhDqB,SAAC,GAGI,IAAD,EAFtCH,EAEsC,EAFtCA,6BAEsC,EADtCx8B,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,mEAKR,sBAAKhZ,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO0lC,EAA6BhgC,cAGxC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO0lC,EAA6BzlC,WAGxC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAK,UAAE0lC,EAA6Br5B,sBAA/B,aAAE,EAA6CtG,kBAOjE,ECvCKuyB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAiR,EAHc,EAGdA,6BAHc,EAIdx8B,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,2BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBACEuO,EAA6BjyB,kCAjB3B,EA0CD8kB,GAhBkB,SAAC,GAGH,IAF7BmN,EAE4B,EAF5BA,6BACAx8B,EAC4B,EAD5BA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,YACViR,6BAA8BA,EAC9Bx8B,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,EC+EcggB,GA5Ge,WAAO,IAAD,EAClC,EAA8BvmB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EACErI,mBAAS,IADX,oBAAOwmB,EAAP,KAAuCC,EAAvC,KAEMrQ,EAAyBjV,GAAe/W,IACxCs8B,EAAgCvlB,GACpC5M,IAGI8hB,EAAWZ,KAEjB,EAA6Ca,cAAvChvB,EAAN,EAAMA,UAAW0M,EAAjB,EAAiBA,wBACjB,IAAK1M,IAAc0M,EACjB,OAAO,eAAC,GAAD,IAGT,IAAKoU,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI68B,IAAmCxyB,EAGrC,OAFAyyB,EAAkCzyB,GAClCqiB,EAAShiB,GAA+BL,IACjC,eAAC,GAAD,IAGT,IAAMmyB,EACJO,EAA8BtyB,qBAEhC,IAAK+xB,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAA6B/lC,SAASmH,GACzC,OAAqD,MAAjD4+B,EAA6B/lC,SAASM,OACjC,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChBw8B,6BAA8BA,QAIpC,eAACzhB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEooB,6BAA8BA,QAIpC,eAACzhB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEooB,6BAA8BA,EAC9Bx8B,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChBw8B,6BAA8BA,IAEhC,uBAAKpoB,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC3Gc6c,GAnBK,SAAC,GAAD,IAAG7c,EAAH,EAAGA,eAAgBg9B,EAAnB,EAAmBA,eAAnB,OAClB,eAACjiB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyB8f,EAAexgC,kBAb5B,EC+CLygC,GA7CO,SAAC,GAGI,IAFzBD,EAEwB,EAFxBA,eAEwB,EADxBh9B,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,4CAAc4P,EAAexgC,sBAKrC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAOkmC,EAAexgC,cAG1B,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOkmC,EAAejmC,WAExD,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOkmC,EAAeh7B,yBAOnC,EC2Bck7B,GAzDQ,SAAC,GAA6C,IAA3CF,EAA0C,EAA1CA,eACpBpgB,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,QAASxlB,MAAOkmC,EAAetgC,UAChD,eAAC,GAAD,CACE4f,MAAO,eACPxlB,MAAOkmC,EAAetxB,mBAExB,eAAC,GAAD,CAAU4Q,MAAO,YAAaxlB,MAAOkmC,EAAe3xB,eAEtD,gBAAC2P,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CAAUkI,MAAO,eAAgBxlB,MAAOkmC,EAAe/xB,cACvD,eAAC,GAAD,CAAUqR,MAAO,eAAgBxlB,MAAOkmC,EAAe9xB,oBAG3D,eAAC6P,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAASsJ,MAAO,CAAE0P,UAAW,QAA5C,SACE,eAAC,GAAD,CACE9Q,MAAO,WACPxlB,MAAOkmC,EAAe5xB,SACtBmR,eAAgB,mBAChBC,eAAgB,yBAItB,gBAACzB,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAOkmC,EAAe1xB,iBAG1B,eAAC0P,GAAA,EAAD,CAAK5G,UAAU,kBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,uBACPxlB,MAAOkmC,EAAezxB,sBAI5B,eAACwP,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAASsJ,MAAO,CAAE0P,UAAW,QAA5C,SACE,eAAC,GAAD,CACE9Q,MAAO,0CACPxlB,MAAOkmC,EAAexxB,YACtB+Q,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,kBAAmBqZ,QAASY,GACpD,ECyDcugB,GA/HM,SAAC,GAGK,IACG5P,EAH5BU,EAEwB,EAFxBA,kBAsBMpO,GApBkB,EADxByV,oBAE4B/H,EAmBQU,EAlBjB,SACfxzB,EACAC,EACAC,EACAC,GAEA,OrM+DsC,SAC1CmQ,EACAtQ,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAOzC,MANO,UAAMtB,EAAN,+CAAoD2R,GAApD,OAAgElQ,EAOxE,CqM9EYuiC,CACL7P,EACA9yB,EACAC,EAIH,GAOGgzB,EAAyD,CAC7D,CACExR,OAAQ,cACR0L,SAAU,SACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAIwO,GACFkB,EAAQ7E,IAAI0K,SAASrwB,uBAFzB,SAKGwqB,EAAQhxB,aATb,GAgBR,CACEolB,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,iBACR0L,SAAU,iBACVvH,QAAQ,GAEV,CACEnE,OAAQ,qBACR0L,SAAU,oBACVvH,QAAQ,IAINuN,EAA2D,CAC/D,CACE1R,OAAQ,cACR0L,SAAU,SACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OACJ,iCACE,8BACE,8BACE,eAAC,IAAD,CACE1P,GAAIwO,GACFkB,EAAQ7E,IAAI0K,SAASrwB,uBAFzB,SAKGwqB,EAAQhxB,aATb,GAgBR,CACEolB,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,GAEV,CACEnE,OAAQ,eACR0L,SAAU,eACVvH,QAAQ,IA2BZ,OAtBE,iCACE,sBAAKjM,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,QAO1B,ECtHK+P,GAAU,SAAC,GAAD,IAAGhb,EAAH,EAAGA,UAAWmX,EAAd,EAAcA,UAAW5f,EAAzB,EAAyBA,QAAzB,OACd,sBAAKyI,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,wBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,4BAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEqC,kBAAmBtiB,EAAQF,kBAC3B6pB,oBAAqB,cAGzB,eAAC9J,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CAAeqC,kBAAmBtiB,EAAQF,6BAnBpC,EAoCD4jB,GAVkB,SAAC,GAEI,IADpC1jB,EACmC,EADnCA,QAEIiR,EAAe,eAAC,GAAD,CAAS2O,UAAU,WAAW5f,QAASA,IAE1D,OACE,eAAC,GAAD,CAAShJ,MAAO,6BAA8BqZ,QAASY,GAE1D,EC2EcygB,GAnGC,WAAO,IAAD,EACpB,EAA8BhnB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAAgDrI,mBAAS,IAAzD,oBAAOinB,EAAP,KAAyBC,EAAzB,KACM9Q,EAAyBjV,GAAe/W,IACxC+8B,EAAkBhmB,GAAe1L,IAEjC4gB,EAAWZ,KAEjB,EAA+Ba,cAAzBhvB,EAAN,EAAMA,UAAWoN,EAAjB,EAAiBA,UACjB,IAAKpN,IAAcoN,EACjB,OAAO,eAAC,GAAD,IAGT,IAAK0T,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIs9B,IAAqBvyB,EAGvB,OAFAwyB,EAAoBxyB,GACpB2hB,EAAS9gB,GAAiBb,IACnB,eAAC,GAAD,IAGT,IAAMiyB,EAAiBQ,EAAgB7xB,QAEvC,IAAKqxB,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAevmC,SAASmH,GAC3B,OAAuC,MAAnCo/B,EAAevmC,SAASM,OACnB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChBg9B,eAAgBA,QAItB,eAACjiB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAgB4oB,eAAgBA,QAGpC,eAACjiB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAA0BzI,QAASqxB,WAM3C,OACE,iCACE,eAAC,GAAD,CACEh9B,eAAgBA,EAChBg9B,eAAgBA,IAElB,uBAAK5oB,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC1Fc6c,GAxBK,SAAC,GAAD,IAClB7c,EADkB,EAClBA,eACAy9B,EAFkB,EAElBA,qBAFkB,OAIlB,eAAC1iB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGugB,EAAqBjhC,kBAjBZ,ECWd4yB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAkS,EAHc,EAGdA,qBAHc,EAIdz9B,eAJc,OAMd,sBAAKoU,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,cAAnB,8BAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBAAmBwP,EAAqBvxB,oBAG5C,eAACsf,GAAA,EAAIK,KAAL,CAAUD,SAAS,cAAnB,SACE,eAAC,GAAD,CACEqC,kBAAmBwP,EAAqBvxB,gBACxCopB,oBAAqBvB,GAA8B2J,cAzB/C,EAiDDrO,GAhBkB,SAAC,GAGH,IAF7BoO,EAE4B,EAF5BA,qBACAz9B,EAC4B,EAD5BA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,YACVkS,qBAAsBA,EACtBz9B,eAAgBA,IAGpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,ECRc+gB,GAhDa,SAAC,GAGD,IAF1BF,EAEyB,EAFzBA,qBAEyB,EADzBz9B,eAEA,OACE,gBAACic,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,mDAAqBqQ,EAAqBjhC,sBAKlD,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO2mC,EAAqBjhC,cAGhC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO2mC,EAAqB1mC,WAGhC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO2mC,EAAqBt6B,eAAetG,kBAOxD,ECrCc+gC,GAdO,SAAC,GAA0B,IAAxBthB,EAAuB,EAAvBA,MAIvB,OACE,gBAACvB,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CAAK5G,UALc,iBAKnB,SACE,eAACqI,GAAA,EAAKC,MAAN,CAAYgB,MAAO,CAAEC,MAAO,QAA5B,SAAuCrB,MAEzC,eAACtB,GAAA,EAAD,CAAK5G,UAPc,iBAOnB,SAAiC,UAGtC,EC0GcypB,GA3Gc,SAAC,GAEI,IADhCJ,EAC+B,EAD/BA,qBAEI7gB,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,+BACPxlB,MAAO2mC,EAAqBrxB,sBAE9B,eAAC,GAAD,CACEkQ,MAAO,qBACPxlB,MAAO2mC,EAAqBp5B,gBAE9B,eAAC,GAAD,CACEiY,MAAO,sBACPxlB,MAAO2mC,EAAqB/gC,aAGhC,gBAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,8BACPxlB,MAAO2mC,EAAqBpxB,qBAE9B,eAAC,GAAD,CACEiQ,MAAO,2BACPxlB,MAAO2mC,EAAqBtxB,kBAIlC,gBAAC4O,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACGqpB,EAAqBnzB,iBACpB,eAAC,GAAD,CACEgS,MAAO,mBACPxlB,MACE,eAAC,IAAD,CACEshB,GAAI2O,GACF0W,EAAqBt6B,eAAe7F,sBACpCmgC,EAAqBnzB,gBAAgBlC,YAHzC,SAMGq1B,EAAqBnzB,gBAAgB9N,eAK5CihC,EAAqBnzB,iBACrB,eAAC,GAAD,CAAegS,MAAO,qBAEvBmhB,EAAqBx3B,uBACpB,eAAC,GAAD,CACEqW,MAAO,0BACPxlB,MACE,eAAC,IAAD,CACEshB,GAAIyO,GACF4W,EAAqBt6B,eAAe7F,sBACpCmgC,EAAqBx3B,sBAAsB5C,kBAH/C,SAMGo6B,EAAqBx3B,sBAAsBzJ,eAKlDihC,EAAqBx3B,uBACrB,eAAC,GAAD,CAAeqW,MAAO,+BAG1B,gBAACtB,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACGqpB,EAAqBxxB,kBACpB,eAAC,GAAD,CACEqQ,MAAO,oBACPxlB,MACE,eAAC,IAAD,CACEshB,GAAI4O,GACFyW,EAAqBt6B,eAAe7F,sBACpCmgC,EAAqBxxB,iBAAiBpC,aAH1C,SAMG4zB,EAAqBxxB,iBAAiBzP,eAK7CihC,EAAqBxxB,kBACrB,eAAC,GAAD,CAAeqQ,MAAO,4BAI5B,eAACvB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,cACPxlB,MAAO2mC,EAAqB36B,YAC5ByZ,eAAgB,mBAChBC,eAAgB,4BAO1B,OAAO,eAAC,GAAD,CAAS7Z,MAAO,yBAA0BqZ,QAASY,GAC3D,ECsBckhB,GAlHO,WAAO,IAAD,EAC1B,EAA8BznB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAA4DrI,mBAAS,IAArE,oBAAO0nB,EAAP,KAA+BC,EAA/B,KACMvR,EAAyBjV,GAAe/W,IACxCw9B,EAAwBzmB,GAAe/K,IAEvCigB,EAAWZ,KAEjB,EAAqCa,cAA/BhvB,EAAN,EAAMA,UAAWqO,EAAjB,EAAiBA,gBACjB,IAAKrO,IAAcqO,EACjB,OAAO,eAAC,GAAD,IAGT,IAAKyS,EAGH,OAFAC,GAAW,GACXgO,EAASpsB,EAAwB3C,IAC1B,eAAC,GAAD,IAGT,IAAK2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI+9B,IAA2B/xB,EAG7B,OAFAgyB,EAA0BhyB,GAC1B0gB,EAASngB,GAAuBP,IACzB,eAAC,GAAD,IAGT,IAAMyxB,EAAuBQ,EAAsB3xB,cAEnD,IAAKmxB,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAqBhnC,SAASmH,GACjC,OAA6C,MAAzC6/B,EAAqBhnC,SAASM,OACzB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChBy9B,qBAAsBA,QAI5B,eAAC1iB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAsBqpB,qBAAsBA,QAG/CA,EAAqBr6B,gCACpB,eAAC2X,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEhR,+BACEq6B,EAAqBr6B,+BAEvBpD,eAAgBA,QAKxB,eAAC+a,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEqpB,qBAAsBA,EACtBz9B,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChBy9B,qBAAsBA,IAExB,uBAAKrpB,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECxGc6c,GA7BK,SAAC,GAAD,MAClB7c,EADkB,EAClBA,eACA0M,EAFkB,EAElBA,oBAFkB,OAIlB,eAACqO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,qCAA2E+O,EAAoBzH,mBADrG,mBAGGyH,EAAoB9F,sCAHvB,aAGG,EAAoDpK,YAEvD,eAACwgB,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGxQ,EAAoBlQ,kBAtBX,ECUd4yB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAvrB,EAHc,EAGdA,eACA0M,EAJc,EAIdA,oBAJc,OAMd,sBAAK0H,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,0BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEmL,iBAAkBrB,GAAqBsB,sBACvC5I,cAAepuB,EAAerC,UAC9BqH,OAAQ0H,EAAoBxH,iBAlBxB,EA2CDmqB,GAjBkB,SAAC,GAGD,IAF/BrvB,EAE8B,EAF9BA,eACA0M,EAC8B,EAD9BA,oBAEIkQ,EACF,eAAC,GAAD,CACE2O,UAAU,WACVvrB,eAAgBA,EAChB0M,oBAAqBA,IAIzB,OACE,eAAC,GAAD,CAAS/J,MAAO,6BAA8BqZ,QAASY,GAE1D,ECDcshB,GA/CmB,SAAC,GAA0C,IAAxCxxB,EAAuC,EAAvCA,oBACnC,OACE,gBAACuP,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,8DAC4B1gB,EAAoBlQ,sBAMxD,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO4V,EAAoBlQ,cAG/B,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO4V,EAAoB3V,WAG/B,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAO4V,EAAoB1K,yBAOxC,ECLcm8B,GA1CoB,SAAC,GAEM,IADxCzxB,EACuC,EADvCA,oBAEIkQ,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAO4V,EAAoBrI,gBAE7B,eAAC,GAAD,CAAUiY,MAAO,UAAWxlB,MAAO4V,EAAoBhQ,UACvD,eAAC,GAAD,CAAU4f,MAAO,SAAUxlB,MAAO4V,EAAoBvH,SACtD,eAAC,GAAD,CAAUmX,MAAO,WAAYxlB,MAAO4V,EAAoBpH,cAE1D,gBAAC0V,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAO4V,EAAoBpI,UAE7B,eAAC,GAAD,CAAUgY,MAAO,OAAQxlB,MAAO4V,EAAoB7Q,OACpD,eAAC,GAAD,CAAUygB,MAAO,YAAaxlB,MAAO4V,EAAoBtH,kBAG7D,eAAC2V,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gDACPxlB,MAAO4V,EAAoB5J,YAC3ByZ,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CAAS7Z,MAAO,+BAAgCqZ,QAASY,GAE5D,ECyEcwhB,GA/Fa,WAAO,IAAD,EAChC,EAA8B/nB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EACErI,mBAAS,IADX,oBAAOgoB,EAAP,KAAqCC,EAArC,KAEM7R,EAAyBjV,GAAe/W,IACxC89B,EAA8B/mB,GAAe3K,IAE7C6f,EAAWZ,KAEjB,EAA2Ca,cAArChvB,EAAN,EAAMA,UAAWypB,EAAjB,EAAiBA,sBACjB,IAAKzpB,IAAcypB,EACjB,OAAO,eAAC,GAAD,IAQT,GALK3I,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIq+B,IAAiCjX,EAGnC,OAFAkX,EAAgClX,GAChCsF,EAAS/f,GAA6Bya,IAC/B,eAAC,GAAD,IAGT,IAAM1a,EAAsB6xB,EAA4B7xB,oBAExD,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAMmgB,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE1H,oBAAqBA,QAI3B,eAACqO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE1H,oBAAqBA,QAI3B,eAACqO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChB0M,oBAAqBA,WAO/B,OACE,iCACE,eAAC,GAAD,CACE1M,eAAgBA,EAChB0M,oBAAqBA,IAEvB,uBAAK0H,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC1Fc6c,GAtBK,SAAC,GAAD,IAClB7c,EADkB,EAClBA,eACA8M,EAFkB,EAElBA,kBAFkB,OAIlB,eAACiO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SAAyBpQ,EAAkBtQ,kBAhB/B,ECWd4yB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UACAvrB,EAHc,EAGdA,eACA8M,EAJc,EAIdA,kBAJc,OAMd,sBAAKsH,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,gBAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,UACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,yBAEF,eAACF,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,WAAnB,2BAGJ,gBAACJ,GAAA,EAAInQ,QAAL,WACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBAAmBnhB,EAAkB5G,iCAGzC,eAACslB,GAAA,EAAIK,KAAL,CAAUD,SAAS,WAAnB,SACE,eAAC,GAAD,CACEmL,iBAAkBrB,GAAqBwB,2BACvC9I,cAAepuB,EAAerC,UAC9BswB,kBAAmBnhB,EAAkB5G,wCA1BjC,EAmDDmpB,GAjBkB,SAAC,GAGH,IAF7BviB,EAE4B,EAF5BA,kBACA9M,EAC4B,EAD5BA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,YACVze,kBAAmBA,EACnB9M,eAAgBA,IAIpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,ECnBc4hB,GAzCiB,SAAC,GAEI,IAAD,EADlC1xB,EACkC,EADlCA,kBAEA,OACE,gBAACmP,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,wEAKR,sBAAKhZ,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,gBAAiBxlB,MAAO,UAEhD,eAACkkB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CAAekI,MAAO,SAAUxlB,MAAOgW,EAAkB/V,WAE3D,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAK,UAAEgW,EAAkB3J,sBAApB,aAAE,EAAkCtG,kBAOtD,ECOc4hC,GA7CkB,SAAC,GAEI,IADpC3xB,EACmC,EADnCA,kBAEI8P,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,4BACPxlB,MAAOgW,EAAkBzI,gBAE3B,eAAC,GAAD,CAAUiY,MAAO,UAAWxlB,MAAOgW,EAAkBpQ,aAEvD,gBAACse,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,6BACPxlB,MAAOgW,EAAkBxI,UAE3B,eAAC,GAAD,CACEgY,MAAO,sBACPxlB,MAAOgW,EAAkB1G,2BAI/B,eAAC2U,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,0BACPxlB,MAAOgW,EAAkB3G,sBACzBoW,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CACE7Z,MAAO,uCACPqZ,QAASY,GAGd,EC2Ec8hB,GAnGW,WAAO,IAAD,EAC9B,EAA8BroB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EACErI,mBAAS,IADX,oBAAOsoB,EAAP,KAAmCC,EAAnC,KAEMnS,EAAyBjV,GAAe/W,IACxCo+B,EAA4BrnB,GAAevK,IAE3Cyf,EAAWZ,KAEjB,EAAyCa,cAAnChvB,EAAN,EAAMA,UAAWmJ,EAAjB,EAAiBA,oBACjB,IAAKnJ,IAAcmJ,EACjB,OAAO,eAAC,GAAD,IAQT,GALK2X,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAI2+B,IAA+B73B,EAGjC,OAFA83B,EAA8B93B,GAC9B4lB,EAAS3f,GAA2BjG,IAC7B,eAAC,GAAD,IAGT,IAAMgG,EAAoB+xB,EAA0B/xB,kBAEpD,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAkBrW,SAASmH,GAC9B,OAA0C,MAAtCkP,EAAkBrW,SAASM,OACtB,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAAyBtH,kBAAmBA,QAGhD,eAACiO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CAA0BtH,kBAAmBA,QAGjD,eAACiO,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEtH,kBAAmBA,EACnB9M,eAAgBA,WAO1B,OACE,iCACE,eAAC,GAAD,CACEA,eAAgBA,EAChB8M,kBAAmBA,IAErB,uBAAKsH,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,EC7Fc6c,GAxBK,SAAC,GAAD,IAClB7c,EADkB,EAClBA,eACAyN,EAFkB,EAElBA,yBAFkB,OAIlB,eAACsN,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,IAAtB,8BACA,gBAAC+E,GAAA,EAAWC,KAAZ,CAAiBhF,KAAI,2BAAsBjY,EAAerC,WAA1D,UACGqC,EAAehB,aADlB,MACmCgB,EAAerC,aAElD,eAACqf,GAAA,EAAWC,KAAZ,CACEhF,KAAI,2BAAsBjY,EAAerC,UAArC,eADN,wBAKA,eAACqf,GAAA,EAAWC,KAAZ,CAAiBC,QAAM,EAAvB,SACGzP,EAAyBjR,kBAjBhB,ECSd4yB,GAAU,SAAC,GAAD,IACdhb,EADc,EACdA,UACAmX,EAFc,EAEdA,UAEA9d,GAJc,EAGdzN,eAHc,EAIdyN,0BAJc,OAMd,sBAAK2G,UAAW,OAASA,EAAzB,SACE,gBAACoX,GAAA,EAAI1Q,UAAL,CAAe7f,GAAG,oBAAoBwwB,iBAAkBF,EAAxD,UACE,eAACG,GAAA,EAAD,CAAKrR,QAAQ,OAAb,SACE,eAACqR,GAAA,EAAIzO,KAAL,UACE,eAACyO,GAAA,EAAIC,KAAL,CAAUC,SAAS,YAAnB,2BAGJ,eAACJ,GAAA,EAAInQ,QAAL,UACE,eAACmQ,GAAA,EAAIK,KAAL,CAAUD,SAAS,YAAnB,SACE,eAAC,GAAD,CACEqC,kBACExgB,EAAyBL,qCAjBvB,EA2CDiiB,GAjBkB,SAAC,GAGI,IAFpC5hB,EAEmC,EAFnCA,yBACAzN,EACmC,EADnCA,eAEI4c,EACF,eAAC,GAAD,CACE2O,UAAU,YACV9d,yBAA0BA,EAC1BzN,eAAgBA,IAIpB,OACE,eAAC,GAAD,CAAS2C,MAAO,6BAA8BqZ,QAASY,GAE1D,ECAckiB,GAlDwB,SAAC,GAEI,IAAD,EADzCrxB,EACyC,EADzCA,yBAEA,OACE,gBAACwO,GAAA,EAAD,CAAM7H,UAAU,kBAAhB,UACE,eAAC6H,GAAA,EAAKC,OAAN,IACA,eAACD,GAAA,EAAKG,KAAN,CAAWhI,UAAU,OAArB,SACE,gBAAC2G,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,wBAAOA,UAAU,YAAYsJ,MAAO,CAAE0P,UAAW,UAAjD,SACE,iCACE,gCACE,8BACE,eAAC,GAAD,MAEF,8BACE,8DAC8B,IAC3B3f,EAAyBjR,sBAMpC,sBAAK4X,UAAU,YAAYsJ,MAAO,CAAEuM,OAAQ,aAE9C,eAACjP,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,gBACPxlB,MAAO2W,EAAyBjR,cAGpC,eAACwe,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,SACPxlB,MAAO2W,EAAyB1W,WAGpC,eAACikB,GAAA,EAAD,CAAK5G,UAAU,iBAAf,SACE,eAAC,GAAD,CACEkI,MAAO,kBACPxlB,MAAK,UAAE2W,EAAyBtK,sBAA3B,aAAE,EAAyCtG,kBAO7D,ECEckiC,GAjDyB,SAAC,GAEI,IAD3CtxB,EAC0C,EAD1CA,yBAEImP,EACF,iCACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,+BACPxlB,MAAO2W,EAAyBF,+BAElC,eAAC,GAAD,CAAU+O,MAAO,QAASxlB,MAAO2W,EAAyB/Q,UAC1D,eAAC,GAAD,CACE4f,MAAO,gBACPxlB,MAAO2W,EAAyBJ,kBAGpC,gBAAC2N,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,mCACPxlB,MAAO2W,EAAyBH,qCAElC,eAAC,GAAD,CACEgP,MAAO,sBACPxlB,MAAO2W,EAAyBrH,2BAItC,eAAC2U,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,eAAC,GAAD,CACEkI,MAAO,mBACPxlB,MAAO2W,EAAyBD,iBAChC+O,eAAgB,mBAChBC,eAAgB,4BAO1B,OACE,eAAC,GAAD,CACE7Z,MAAO,uCACPqZ,QAASY,GAGd,ECgFcoiB,GA5GkB,WAAO,IAAD,EACrC,EAA8B3oB,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACA,EAGIrI,mBAAS,IAHb,oBACE4oB,EADF,KAEEC,EAFF,KAIMzS,EAAyBjV,GAAe/W,IACxC0+B,EAAmC3nB,GACvC5J,IAGI8e,EAAWZ,KAEjB,EAAgDa,cAA1ChvB,EAAN,EAAMA,UAAWwP,EAAjB,EAAiBA,2BACjB,IAAKxP,IAAcwP,EACjB,OAAO,eAAC,GAAD,IAQT,GALKsR,IACHC,GAAW,GACXgO,EAASpsB,EAAwB3C,MAG9B2uB,GAAsBG,EAAuBpsB,wBAChD,OAAOksB,GACLE,EAAuBpsB,wBAI3B,IAAML,EAAc,UAAGysB,EAAuBpsB,8BAA1B,aAAG,EACnBL,eAEJ,GAAIi/B,IAAsC9xB,EAGxC,OAFA+xB,EAAqC/xB,GACrCuf,EAAShf,GAAkCP,IACpC,eAAC,GAAD,IAGT,IAAMM,EACJ0xB,EAAiC1xB,yBAEnC,IAAKA,EACH,OAAO,eAAC,GAAD,IAGT,IAAKA,EAAyBhX,SAASmH,GACrC,OAAiD,MAA7C6P,EAAyBhX,SAASM,OAC7B,eAAC,GAAD,IAEA,eAAC,GAAD,IAIX,IAAM81B,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE3G,yBAA0BA,QAIhC,eAACsN,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACE3G,yBAA0BA,QAIhC,eAACsN,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,mBAAf,SACE,eAAC,GAAD,CAAkBzW,UAAWA,QAGjC,eAACod,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,6BAAf,SACE,eAAC,GAAD,CACEpU,eAAgBA,EAChByN,yBAA0BA,WAOpC,OACE,iCACE,eAAC,GAAD,CACEzN,eAAgBA,EAChByN,yBAA0BA,IAE5B,uBAAK2G,UAAU,OAAf,UACE,eAAC,GAAD,CAAsBpU,eAAgBA,IACtC,eAAC,GAAD,CACEurB,UAAU,qBACVvP,QAAS6Q,EACT7sB,eAAgBA,SAKzB,ECzHc6c,GAZK,WAClB,OACE,eAAC9B,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,eAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,SACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,gBAAtB,8BAKT,EC8BcmnB,GAnCoB,SAAC,GAEK,IADvC5U,EACsC,EADtCA,cAEA,OACE,uBAAKpW,UAAU,YAAf,UACE,eAAC2G,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,SAAf,SACE,uBAAKsJ,MAAO,CAAE2K,aAAc,QAA5B,UACE,eAAC,GAAD,CACE3K,MAAO,CAAEuM,OAAQ,OAAQxG,MAAO,QAChCrP,UAAU,iCAEZ,eAAC,GAAD,CACEsJ,MAAO,CAAEuM,OAAQ,OAAQxG,MAAO,QAChCrP,UAAU,8BAKlB,gBAAC2G,GAAA,EAAD,WACE,eAACC,GAAA,EAAD,CACE5G,UAAU,4BACVsJ,MAAO,CAAE+M,YAAa,UAFxB,SAIGD,IAEH,eAACxP,GAAA,EAAD,CACE5G,UAAU,4BACVsJ,MAAO,CAAEsF,UAAW,QAAS0H,aAAc,eAKpD,ECrCKC,GAAqB,WACzB,OACE,iCACE,eAAC5P,GAAA,EAAD,CAAK3G,UAAU,OAAf,SACE,eAAC4G,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,2DAGJ,eAAC2G,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,YAAf,SACE,8BAAK,aAKd,EAOc8H,GALA,WACb,IAAMsO,EAAgB,eAAC,GAAD,IACtB,OAAO,eAAC,GAAD,CAA4BA,cAAeA,GACnD,ECfc6U,GAJkB,SAAC,GAAD,IAAGrjB,EAAH,EAAGA,QAAH,OAC/B,+BAAMA,GADyB,ECyB3BsjB,GAAgB,SAACjuB,GACrB,MAAM,iBAAN,OAAwBA,EACzB,EAuQckuB,GArQS,WACtB,MAAsClpB,mBAAS,IAA/C,oBAMMmpB,GANN,UAM2B,CACzB,CAAE1oC,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,OAAQwlB,MAAO,QACxB,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,OAAQwlB,MAAO,QACxB,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,OAAQwlB,MAAO,QACxB,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,QAASwlB,MAAO,SACzB,CAAExlB,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,UAAWwlB,MAAO,aAKvB1M,EAAqB,CACzB,CAAE9Y,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,yBAA0BwlB,MAAO,0BAC1C,CAAExlB,MAAO,SAAUwlB,MAAO,UAC1B,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,UAAWwlB,MAAO,WAC3B,CAAExlB,MAAO,aAAcwlB,MAAO,cAC9B,CAAExlB,MAAO,WAAYwlB,MAAO,YAC5B,CAAExlB,MAAO,cAAewlB,MAAO,eAC/B,CAAExlB,MAAO,YAAawlB,MAAO,cAGzBoR,EAA8D,CAClE,CACExR,OAAQ,kBACR0L,SAAU,iBACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OACE,eAAC,IAAD,CAAM7P,GAAIknB,GAActX,EAAQ3X,gBAAhC,SACGyX,EAAQhxB,OAGd,EACD2oC,SAAU,SAEZ,CACEvjB,OAAQ,eACR0L,SAAU,mBACVvH,QAAQ,GAEV,CACEnE,OAAQ,OACR0L,SAAU,sBACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,OAAQ8Q,GACNqO,EAAmB7jC,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAEzB0rB,OAAQ,YAEV,CACEtG,OAAQ,sBACR0L,SAAU,qBACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,qBACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,gBACVvH,OAAQ8Q,GACNvhB,EAAmBjU,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAEzB0rB,OAAQ,YAEV,CACEtG,OAAQ,uBACR0L,SAAU,wBACVvH,QAAQ,EACRof,SAAU,UAIR7R,EAAgE,CACpE,CACE1R,OAAQ,kBACR0L,SAAU,iBACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OACE,eAAC,IAAD,CAAM7P,GAAIknB,GAActX,EAAQ3X,gBAAhC,SACGyX,EAAQhxB,OAGd,EACD2oC,SAAU,SAEZ,CACEvjB,OAAQ,eACR0L,SAAU,mBACVvH,QAAQ,GAEV,CACEnE,OAAQ,OACR0L,SAAU,sBACVvH,QAAQ,GAEV,CACEnE,OAAQ,SACR0L,SAAU,SACVvH,OAAQ8Q,GACNqO,EAAmB7jC,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAEzB0rB,OAAQ,YAEV,CACEtG,OAAQ,sBACR0L,SAAU,qBACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,qBACVvH,QAAQ,GAEV,CACEnE,OAAQ,uBACR0L,SAAU,gBACVvH,OAAQ8Q,GACNvhB,EAAmBjU,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAEzB0rB,OAAQ,YAEV,CACEtG,OAAQ,uBACR0L,SAAU,wBACVvH,QAAQ,EACRof,SAAU,UAwBR5f,EAnBa,SACfplB,EACAC,EACAC,EACAC,EACAmW,GAEA,OtL1GyC,SAC7CtW,EACAC,EACAC,EACAC,EACAmW,GAEA,IAAIlW,EAAM,gBAAYJ,EAAZ,qBAA+BC,GAEzC,GAAIE,EACF,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAQtC,OAAQD,IAAK,CACvC,IAAI0C,EAAIH,EAAQvC,GACZ2C,EAAWD,EAAEE,GAEF,OAAXF,EAAEjE,QAAgB+D,GAAM,WAAQG,EAAR,YAAoBD,EAAEjE,OACnD,CAOH,GAJI6D,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAG3CoW,EAAS,CACX,IAAIC,EAAe,GAGfA,EADG,0BADP,OAAQD,QAAR,IAAQA,OAAR,EAAQA,EAASE,aAEE,qBAKA,iBAGnBpW,GAAM,oBAAiBO,mBAAmB4V,IAApC,OACJD,EAAQG,iBAAmB,GAAK,SAEnC,CAQD,MANO,UAAM9X,EAAN,mCAAwCyB,EAOhD,CsL4DY8kC,CACLllC,EACAC,EACAC,EACAC,EACAmW,EAEH,EAOGA,EAAU,CACdG,kBAAkB,EAClBD,YAAa,kBACbsR,sBAAuB,CAAC,kBAAmB,yBAGvCiX,EACJ,iCACE,sBAAKplB,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,EACjBtO,QAASA,EACT8N,oBAAqB/N,OAGzB,sBAAKsD,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,EACjBtO,QAASA,EACT8N,oBAAqB/N,OAGzB,sBAAK4M,MAAO,CAAEyK,QAAS,OAAQ4K,eAAgB,YAA/C,SACE,oBACE9a,KtLMD,UAAM7e,EAAN,oCAFG,0BsLHF6c,OAAO,SACPyE,IAAI,8BACJtG,UAAU,kBACVuJ,MAAM,UALR,SAOE,6EAMFkP,EACJ,+BACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,OAAf,SACE,eAAC,GAAD,CAASzR,MAAM,sBAAsBqZ,QAASwd,UAMtD,OACE,iCACE,eAAC,GAAD,IACA,uBAAKplB,UAAU,OAAf,UACE,eAAC,GAAD,IACA,eAAC,GAAD,CAA0B4H,QAAS6Q,SAI1C,ECjRchQ,GAbK,SAAC,GAAgC,IAA9BxW,EAA6B,EAA7BA,MACrB,OACE,eAAC0U,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK+B,GAAG,KAAR,SACE,gBAACC,GAAA,EAAD,CAAY5I,UAAU,OAAtB,UACE,eAAC4I,GAAA,EAAWC,KAAZ,CAAiBhF,KAAK,gBAAtB,0BACA,eAAC+E,GAAA,EAAWC,KAAZ,UAAkB5W,UAK3B,ECjBGu5B,GAAqB,wBAErBC,GAAsB,2BAkCtBA,GAAsB,sBAKH,UAPnBD,GAAqB,sBAOF,0BACK,UAAMC,GAAN,aADrB,IAGMC,GAAmB,SAACzuB,GAC/B,MAAM,GAAN,OAAUuuB,GAAV,2CAA+DvuB,EAChE,ECzBK0uB,GAAkB,SAAC,GAAqD,IAAnDC,EAAkD,EAAlDA,mBACnBC,EAAsD,IAA1CD,EAAmBtvB,mBACrC,OACE,sBACE0D,UAAU,MACVsJ,MAAO,CAAEwiB,WAAYD,EAAY,UAAY,UAF/C,SAIE,oBACEhoB,KAAM6nB,GAAiBE,EAAmB3vB,gBAC1C4F,OAAO,SACPyE,IAAKslB,EAAmB3vB,eACxB+D,UAAU,kBAJZ,SAME,2DAIP,EAEK+rB,GAAmB,SAAC,GAAqD,IDQ7C9uB,ECRN2uB,EAAkD,EAAlDA,mBACpBC,EAAsD,IAA1CD,EAAmBtvB,mBACrC,OACE,sBACE0D,UAAU,MACVsJ,MAAO,CAAEwiB,WAAYD,EAAY,UAAY,UAF/C,SAIE,oBACEhoB,MDA0B5G,ECAF2uB,EAAmB3vB,eDC3C,GAAN,OAAUuvB,GAAV,4CAAgEvuB,ICA1D4E,OAAO,SACPyE,IAAKslB,EAAmB3vB,eACxB+D,UAAU,kBAJZ,SAME,6DAIP,EAyDcgsB,GAvDW,SAAC,GAAqD,IDPlD/uB,ECOD2uB,EAAkD,EAAlDA,mBACvBpjB,EACF,+BACE,gBAAC7B,GAAA,EAAD,WACE,gBAACC,GAAA,EAAD,CAAK5G,UAAU,kBAAf,UACE,eAAC,GAAD,CACEkI,MAAO,sBACPxlB,MACE,qBAAGmhB,MDfa5G,ECeO2uB,EAAmB3vB,eDdhD,GAAN,OAAUwvB,GAAV,qBAA0CxuB,EAA1C,SCcY,UACG2uB,EAAmB3vB,eACpB,eAAC,KAAD,CACEqN,MAAO,CAAEC,MAvDL,WAwDJvJ,UAAU,kCACVwJ,KAAMyiB,aAKd,eAAC,GAAD,CACE/jB,MAAO,eACPxlB,MAAOkpC,EAAmBt0B,mBAE5B,eAAC,GAAD,CACE4Q,MAAO,eACPxlB,MAAOkpC,EAAmB1vB,sBAE5B,eAAC,GAAD,CACEgM,MAAO,sBACPxlB,MAAOkpC,EAAmBzvB,qBAE5B,eAAC,GAAD,CAAU+L,MAAO,SAAUxlB,MAAOkpC,EAAmBzhC,YAEvD,gBAACyc,GAAA,EAAD,WACE,eAAC,GAAD,CACEsB,MAAO,gBACPxlB,MAAO2C,EAAWumC,EAAmBpvB,2BAGvC,eAAC,GAAD,CAAU0L,MAAO,SAAUxlB,MAAOkpC,EAAmBvvB,gBAErD,eAAC,GAAD,CACE6L,MAAO,cACPxlB,MAAO2C,EAAWumC,EAAmBnvB,qBAGvC,eAAC,GAAD,CAAkBmvB,mBAAoBA,IACtC,eAAC,GAAD,CAAiBA,mBAAoBA,YAM7C,OAAO,eAAC,GAAD,CAASr9B,MAAO,sBAAuBqZ,QAASY,GACxD,ECpGK0jB,GAAwB,CAC5B,CAAExpC,MAAO,YAAawlB,MAAO,aAC7B,CAAExlB,MAAO,MAAOwlB,MAAO,OACvB,CAAExlB,MAAO,aAAcwlB,MAAO,gBAoB1B0R,GAAgB,SAAC,GAAuC,IAoBtDnO,EAnBqB,SAACnQ,GAgB1B,OAfiB,SACfjV,EACAC,EACAC,EACAC,GAEA,O1L+L8C,SAClD2lC,EACA9lC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAM,sBAAkB0lC,EAAlB,iBAAwC9lC,EAAxC,qBAA2DC,GAErE,GAAIE,EACF,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAQtC,OAAQD,IAAK,CACvC,IAAI0C,EAAIH,EAAQvC,GACZ2C,EAAWD,EAAEE,GACjBJ,GAAM,WAAQG,EAAR,YAAoBD,EAAEjE,MAC7B,CAaH,OAVI6D,EAAWrC,OAAS,IACtBuC,GAAM,uBAAoBO,mBAAmBT,KAGxC,UAAMvB,EAAN,4CAAiDyB,EAOzD,C0L3NY2lC,CACL9wB,EACAjV,EACAC,EACAC,EACAC,EAEH,CAGF,CAEgBw8B,CApB0C,EAApC1nB,WAsBjBge,EAA0D,CAC9D,CACExR,OAAQ,OACR0L,SAAU,eACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,aACR0L,SAAU,YACVvH,OAAQ8Q,GACNmP,GAAsB3kC,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAE5B0rB,OAAQ,YAEV,CACEtG,OAAQ,gBACR0L,SAAU,WACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OAAO,oBAAGhQ,KAAM+P,EAAQ1sB,IAAjB,SAAuBwsB,EAAQhxB,OACvC,EACD2oC,SAAU,UAIR7R,EAA4D,CAChE,CACE1R,OAAQ,OACR0L,SAAU,eACVvH,QAAQ,EACRwH,KAAM,SAACC,GAAD,OAAkBruB,EAAWquB,EAAQhxB,MAArC,GAER,CACEolB,OAAQ,aACR0L,SAAU,YACVvH,OAAQ8Q,GACNmP,GAAsB3kC,KAAI,SAAC+jC,GAAD,OAAOA,EAAE5oC,KAAT,KAE5B0rB,OAAQ,YAEV,CACEtG,OAAQ,gBACR0L,SAAU,WACVvH,QAAQ,EACRwH,KAAM,SAACC,GACL,IAAME,EAAUF,EAAQxxB,KAAKwxB,EAAQ7E,IAAIgF,OACzC,OAAO,eAAC,IAAD,CAAM7P,GAAI4P,EAAQ1sB,IAAlB,SAAwBwsB,EAAQhxB,OACxC,EACD2oC,SAAU,UAIV7iB,EACF,uBAAKxI,UAAU,OAAf,UACE,sBAAKA,UAAU,YAAf,SACE,eAAC,GAAD,CACEuK,QAASiP,EACTt3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,MAGrB,sBAAKjL,UAAU,oBAAf,SACE,eAAC,GAAD,CACEuK,QAAS+O,EACTp3B,KAAM,GACNyoB,iBAAkBc,EAClBT,kBAAkB,EAClBC,iBAAiB,SAMzB,OAAO,eAAC,GAAD,CAAS1c,MAAO,YAAaqZ,QAASY,GAC9C,EChHc6jB,GArBG,WAChB,IAAM3jB,EACJ,iCACE,6BACE,8CAEF,sEACA,yCACS,oBAAG7E,KAAK,2BAAR,8BADT,OAGA,6DAIJ,OACE,eAAC8C,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,OAAf,SAAuB0I,KAG5B,ECqFc4jB,GAlDY,WAAO,IAAD,EAhCLvvB,EAiC1B,EAA8BkF,oBAAS,GAAvC,oBAAOoI,EAAP,KAAgBC,EAAhB,KACMiiB,EAAsBnpB,GAAejG,IACrCmb,EAAWZ,KAEXza,EAAUsb,cAAVtb,MACN,IAAKA,EACH,OAAO,eAAC,GAAD,IAQT,GALKoN,IACHC,GAAW,GACXgO,EAAStb,GAAqBC,OA5CNF,EA+CFwvB,EAAoBxvB,sBA1CQ,MAAhDA,EAAoB1a,SAASoH,iBAI5BsT,EAAoBf,YAuCvB,OAhCyB,SAACe,GAC5B,OAAKA,EAI+C,MAAhDA,EAAoB1a,SAASoH,eACxB,eAAC,GAAD,IAGJsT,EAAoBf,YAIlB,eAAC,GAAD,IAHE,eAAC,GAAD,IARA,eAAC,GAAD,GAYV,CAkBUwwB,CAAqBD,EAAoBxvB,qBAGlD,IAAM0vB,EAAU,UAAGF,EAAoBxvB,2BAAvB,aAAG,EACff,YAEEyc,EACJ,iCACE,eAAC9R,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,OAAf,SACE,eAAC,GAAD,CAAmB4rB,mBAAoBa,QAG3C,eAAC9lB,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,OAAf,SACE,eAAC,GAAD,CAAe1E,UAAWmxB,EAAWr+B,gBAGzC,eAACuY,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,CAAK5G,UAAU,OAAf,SACE,eAAC,GAAD,WAMR,OACE,iCACE,eAAC,GAAD,CAAa/N,MAAOw6B,EAAWxwB,iBAC/B,sBAAK+D,UAAU,OAAf,SAAuByY,MAG5B,ECuDciU,GA7HA,CACb,CACEC,KAAM,IACNC,QAAS,eAAC,GAAD,IACT3sB,SAAU,CACR,CACE0sB,KAAM,GACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,UACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,MACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,MACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,eACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,sBACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,6BACNC,QAAS,eAACC,GAAD,IACT5sB,SAAU,CACR,CACE0sB,KAAM,GACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,aACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,WACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,oCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,sCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,8DACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,oEACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,0DACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,2CACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,qDACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,kEACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,yCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,sDACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,kCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,8DACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,oCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,gCACNC,QAAS,eAAC,GAAD,KAEX,CACED,KAAM,6CACNC,QAAS,eAAC,GAAD,OAIf,CACED,KAAM,0BACNC,QAAS,eAAC,GAAD,OAIf,CACED,KAAM,IACNC,QAAS,eAAC,GAAD,IACT3sB,SAAU,CACR,CACE0sB,KAAM,IACNC,QAAS,eAAC,GAAD,QCnIFE,GAhBI,WACjB,IAAQ7pB,EAAUiB,KAAVjB,MAER,EAA8BhB,mBAAS1B,IAAvC,oBAAOwsB,EAAP,KAAgBC,EAAhB,KAUA,OARA1rB,qBAAU,WAEN0rB,EADE/pB,IAAU3C,GACDU,GAEAT,GAEd,GAAE,CAAC0C,IAEG8pB,CACR,E,SCHcE,GAZS,WACtB,IAAMF,EAAUD,KAQhB,OANAxrB,qBAAU,WACR4rB,YAASC,OAAOC,iBAAmBL,EAAQ,YAC3CG,YAASC,OAAOE,kBACd,+DACH,GAAE,CAACN,IAEG,IACR,EAWD7qB,OAAOorB,MAAMC,SAASC,UAAU9Y,UAAU+Y,KAAO,WAC/C,IAEIC,EAAMC,EAAOC,EAAKC,EAAQC,EAAOC,EAAOC,EAFtCC,EAAMnZ,KAAKoZ,OAAOD,IAClBE,EAAKrZ,KAAKsZ,MAEZC,EAAcF,EAAGE,YAyBrB,GAtBKF,EAAGG,YAWNZ,EAAOS,EAAGI,KACVZ,EAAQQ,EAAGK,EACXZ,EAAMO,EAAGM,EAAIN,EAAGtY,OAAS,EACzBgY,EAASM,EAAGM,EAAIN,EAAGtY,OAAS,EAC5BiY,EAAQH,EAAQD,EAAO,GAAK,EAC5BK,EAAQ,EACRC,EAAgBG,EAAGH,eAAiB,SAfpCN,EAAOS,EAAGK,EAAIL,EAAG9e,MAAQ,EACzBse,EAAQQ,EAAGK,EAAIL,EAAG9e,MAAQ,EAC1Bue,EAAMO,EAAGM,EAETX,EAAQ,EACRC,GAFAF,EAASM,EAAGI,MAEKX,EAAM,GAAK,EAC5BI,EAAgBG,EAAGH,eAAiB,UAclCK,EAAa,CAEf,IAAMK,EAAU7iB,KAAK8iB,IAAI9iB,KAAK+iB,IAAIlB,EAAOC,GAAQ9hB,KAAK+iB,IAAIhB,EAAMC,IAE1DgB,GADNR,EAAcA,EAAcK,EAAUA,EAAUL,GACf,EAE3BS,EACJpB,GAA0B,SAAlBM,EAA2Ba,EAAaf,EAAQ,GACpDiB,EACJpB,GAA2B,UAAlBK,GAA6Ba,EAAaf,EAAQ,GACvDkB,EAAYpB,GAAyB,QAAlBI,EAA0Ba,EAAad,EAAQ,GAClEkB,EACJpB,GAA4B,WAAlBG,GAA8Ba,EAAad,EAAQ,GAE3De,IAAeC,IACjBnB,EAAMoB,EACNnB,EAASoB,GAGPD,IAAcC,IAChBvB,EAAOoB,EACPnB,EAAQoB,EAEX,CAEDd,EAAIiB,YACJjB,EAAIkB,UAAYhB,EAAGiB,gBACnBnB,EAAIoB,YAAclB,EAAGmB,YACrBrB,EAAIsB,UAAYlB,EAKhB,IAAMmB,EAAU,CACd,CAAC9B,EAAMG,GACP,CAACH,EAAME,GACP,CAACD,EAAOC,GACR,CAACD,EAAOE,IAKN4B,EADY,CAAC,SAAU,OAAQ,MAAO,SAChBnrC,QAAQ0pC,EAAe,GAKjD,SAAS0B,EAAS7b,GAChB,OAAO2b,GAASC,EAAc5b,GAAS,EACxC,EANoB,IAAjB4b,IACFA,EAAc,GAQhB,IAAIE,EAASD,EAAS,GACtBzB,EAAI2B,OAAOD,EAAO,GAAIA,EAAO,IAE7B,IAAK,IAAI1rC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B0rC,EAASD,EAASzrC,GAElB,IAAMorB,EAAQmgB,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACnC3Z,EAAS2Z,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACpChB,EAAIgB,EAAQ,GAAG,GACff,EAAIe,EAAQ,GAAG,GAEjBK,EAvFa,GA0FbA,EAASha,EAAS,IACpBga,EAASha,EAAS,GAEhBga,EAASxgB,EAAQ,IACnBwgB,EAASxgB,EAAQ,GAInB,IADA,IAAIygB,EAAc,EAEZC,EAAW,EAAGC,EAAalb,KAAKoZ,OAAOhsC,KAAK+tC,SAAS/rC,OACzD6rC,EAAWC,EACXD,IAEKjb,KAAKoZ,OAAOgC,eAAeH,GAAUI,SACxCL,EAAcC,GAIJjb,KAAKsb,gBAAkBN,GAGnC7B,EAAI2B,OAAOpB,EAAIqB,EAAQpB,GACvBR,EAAIoC,OAAO7B,EAAInf,EAAQwgB,EAAQpB,GAC/BR,EAAIqC,iBAAiB9B,EAAInf,EAAOof,EAAGD,EAAInf,EAAOof,EAAIoB,GAClD5B,EAAIoC,OAAO7B,EAAInf,EAAOof,EAAI5Y,GAC1BoY,EAAIoC,OAAO7B,EAAGC,EAAI5Y,GAClBoY,EAAIoC,OAAO7B,EAAGC,EAAIoB,GAClB5B,EAAIqC,iBAAiB9B,EAAGC,EAAGD,EAAIqB,EAAQpB,KAEvCR,EAAI2B,OAAOpB,EAAGC,GACdR,EAAIoC,OAAO7B,EAAInf,EAAOof,GACtBR,EAAIoC,OAAO7B,EAAInf,EAAOof,EAAI5Y,GAC1BoY,EAAIoC,OAAO7B,EAAGC,EAAI5Y,GAClBoY,EAAIoC,OAAO7B,EAAGC,GAEjB,CAEDR,EAAIsC,OACAlC,GACFJ,EAAIuC,QAEP,E,cChKKC,G,QAAgBC,EAAMC,SAE5BF,GAAcG,aAAavuC,SAAS4c,KAClC,SAAC5c,GAAD,OAAcA,CAAd,IACA,SAACyJ,GAAD,OACE/J,QAAQ8uC,OACL/kC,EAAMzJ,UAAYyJ,EAAMzJ,SAASH,MAAS,uBAF/C,IAMauuC,U,oBCRTK,GAAe,SAACC,GACpB,IAAKA,EACH,OAAO,EAET,IAAMC,EAAUC,aAA2BF,GACrCG,EAAc1rC,KAAK2rC,MAAQ,IAEjC,OAAOH,EAAQI,IAAMF,CACtB,EAcKG,GAAa,SAACN,GACdA,GACF5uB,aAAaS,QAAQ,cAAemuB,GACpCL,GAAMxD,SAASlf,QAAQsjB,OAAOC,cAA9B,iBAAwDR,KAKxD5uB,aAAaqvB,WAAW,sBACjBd,GAAMxD,SAASlf,QAAQsjB,OAAOC,cAExC,EC9BKE,GAAa,aACbC,GAAU,UACVC,GAAW,WACXC,GAAU,UAgBVnvC,GAA0B,CAC9BovC,iBAAiB,EACjBC,eAAe,EACfC,KAAM,MAGFC,GAAa,SACjBlvC,EACAG,GAEA,OAAQA,EAAOwE,MACb,KAAKgqC,GACH,MAAO,CACLI,gBAAiB5uC,EAAOC,QAAQ2uC,gBAChCC,eAAe,EACfC,KAAM9uC,EAAOC,QAAQ6uC,MAEzB,KAAKL,GACH,OAAO,6BACF5uC,GADL,IAEE+uC,iBAAiB,EACjBE,KAAM9uC,EAAOC,QAAQ6uC,OAEzB,KAAKJ,GACH,OAAO,6BACF7uC,GADL,IAEE+uC,iBAAiB,EACjBE,KAAM,OAGV,KAAKH,GACH,OAAO,6BACF9uC,GADL,IAEE+uC,iBAAiB,EACjBE,KAAM9uC,EAAOC,QAAQ6uC,OAGzB,QACE,OAAOjvC,EAEZ,EAEKmvC,GAAcvuB,wBAAqC,MAEzD,SAASwuB,GAAT,GAA8D,IAAtCjyB,EAAqC,EAArCA,SACtB,EAA0BkyB,qBAAWH,GAAYvvC,IAAjD,oBAAOK,EAAP,KAAcw1B,EAAd,KAEAhX,qBAAU,WACR,IAAM8wB,EAAU,iDAAG,gHAETrB,EAAc7uB,OAAOC,aAAaC,QAAQ,kBAE7B0uB,GAAaC,GAJjB,wBAKbM,GAAWN,GALE,SAOUL,GAAM7qB,IAAI,wBAPpB,OAOPxjB,EAPO,OAQL0vC,EAAS1vC,EAASH,KAAlB6vC,KAERzZ,EAAS,CACP7wB,KAAMgqC,GACNvuC,QAAS,CACP2uC,iBAAiB,EACjBE,UAdS,wBAkBbzZ,EAAS,CACP7wB,KAAMgqC,GACNvuC,QAAS,CACP2uC,iBAAiB,EACjBE,KAAM,QAtBG,0DA2BfxvB,QAAQzW,MAAR,MACAwsB,EAAS,CACP7wB,KAAMgqC,GACNvuC,QAAS,CACP2uC,iBAAiB,EACjBE,KAAM,QAhCK,0DAAH,qDAsChBK,GACD,GAAE,IAEH,IAAMC,EAAM,iDAAG,WAAOC,EAAeC,GAAtB,uGACU7B,GAAM8B,KAAK,oBAAqB,CACrDF,QACAC,aAHW,OACPlwC,EADO,SAKiBA,EAASH,KAA/B6uC,EALK,EAKLA,YAAagB,EALR,EAKQA,KAErBV,GAAWN,GACXzY,EAAS,CACP7wB,KAAMiqC,GACNxuC,QAAS,CACP6uC,UAXS,2CAAH,wDAgBNU,EAAO,iDAAG,wFACdpB,GAAW,MACX/Y,EAAS,CAAE7wB,KAAMkqC,KAFH,2CAAH,qDAKPe,EAAM,iDAAG,WACbJ,EACAC,EACAI,EACAC,GAJa,uGAMUlC,GAAM8B,KAAK,oBAAqB,CACrDF,QACAC,WACAI,YACAC,aAVW,OAMPvwC,EANO,SAYiBA,EAASH,KAA/B6uC,EAZK,EAYLA,YAAagB,EAZR,EAYQA,KAErB7vB,OAAOC,aAAaS,QAAQ,cAAemuB,GAC3CzY,EAAS,CACP7wB,KAAMmqC,GACN1uC,QAAS,CACP6uC,UAlBS,2CAAH,4DAyBZ,OACE,eAACE,GAAYhuB,SAAb,CACEvhB,MAAK,6BACAI,GADA,IAEH+vC,OAAQ,MACRR,SACAI,UACAC,SACAI,cAVgB,SAACR,GAAD,OAAmB/vB,QAAQC,IAAI8vB,EAA/B,IAGpB,SAUGryB,GAGN,CC/JD,IAoBe8yB,GApBH,WACV,IAAMnrB,EAAUorB,YAAUtG,IAE1B,OACE,gBAAC,IAAD,WACE,eAAC,IAAD,CAAQuG,cAAc,mBAAmBC,aAAa,gBACtD,eAAC,IAAD,CAAU91B,MAAOA,GAAjB,SACE,eAACuG,GAAD,UACE,eAACiB,GAAD,UACE,gBAACI,GAAD,WACE,eAAC,GAAD,IACA,eAACktB,GAAD,UAAetqB,eAO5B,E,4BCSc,I,gBADf,I,wHC1Ce,ICAA,ICAA,ICAA,I,qGCqBLurB,KAMAA,KA4BAC,KA4CAC,KA2BAC,KAQAljB,KAmDAmjB,KAgBAC,KAuBAC,KAQAD,KAoBAC,KA2BAC,KAiBAC,KAKAC,KAeAC,KAKAC,K,gECjTAC,KAKAC,KAQAC,KAKAZ,KAuBAa,KAKAD,KAKAA,KAKAA,KAKAE,KAKAF,KAKAA,KAKAA,KAQAG,KAKAX,KCrFKY,I,oECpBA,I,4BCAA,I,MC6JAC,I,sBC7JA,ICAA,ICAA,ICAA,ICAA,IC+FAC,I,qBClFJ,IAAI/uC,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,GAAI,G,yJC/DfgvC,I,u/EC0cTjhB,ICxhBK,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KCxJDkhB,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAhR,MAIAiR,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAxuB,MAIAyuB,MAIAC,MAIAC,MAIAC,MAIAvtB,MAIAwtB,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIA9vB,MAIA+vB,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIA5zB,MAIA6zB,MAIA3zB,MAIA4zB,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAzpB,MAIA0pB,MAIAl1B,MAIAm1B,MAIAC,MAIA9zB,MAIA+zB,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAt1B,MAIAu1B,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAz8B,MAIA08B,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAl/B,MAIAm/B,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIA/qC,MAIAgrC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAI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","file":"static/js/main.0bfe8b0f.chunk.js","sourcesContent":["import { ReportHandler } from \"web-vitals\";\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n  if (onPerfEntry && onPerfEntry instanceof Function) {\r\n    import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n      getCLS(onPerfEntry);\r\n      getFID(onPerfEntry);\r\n      getFCP(onPerfEntry);\r\n      getLCP(onPerfEntry);\r\n      getTTFB(onPerfEntry);\r\n    });\r\n  }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { RootState, AppThunk } from \"../store\";\r\n\r\nexport interface CounterState {\r\n  value: number;\r\n  status: \"idle\" | \"loading\" | \"failed\";\r\n}\r\n\r\nconst initialState: CounterState = {\r\n  value: 0,\r\n  status: \"idle\",\r\n};\r\n\r\n// A mock function to mimic making an async request for data\r\nexport function fetchCount(amount = 1) {\r\n  return new Promise<{ data: number }>((resolve) =>\r\n    setTimeout(() => resolve({ data: amount }), 500)\r\n  );\r\n}\r\n\r\n// The function below is called a thunk and allows us to perform async logic. It\r\n// can be dispatched like a regular action: `dispatch(incrementAsync(10))`. This\r\n// will call the thunk with the `dispatch` function as the first argument. Async\r\n// code can then be executed and other actions can be dispatched. Thunks are\r\n// typically used to make async requests.\r\nexport const incrementAsync = createAsyncThunk(\r\n  \"counter/fetchCount\",\r\n  async (amount: number) => {\r\n    const response = await fetchCount(amount);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response.data;\r\n  }\r\n);\r\n\r\nexport const counterSlice = createSlice({\r\n  name: \"counter\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {\r\n    increment: (state) => {\r\n      // Redux Toolkit allows us to write \"mutating\" logic in reducers. It\r\n      // doesn't actually mutate the state because it uses the Immer library,\r\n      // which detects changes to a \"draft state\" and produces a brand new\r\n      // immutable state based off those changes\r\n      state.value += 1;\r\n    },\r\n    decrement: (state) => {\r\n      state.value -= 1;\r\n    },\r\n    // Use the PayloadAction type to declare the contents of `action.payload`\r\n    incrementByAmount: (state, action: PayloadAction<number>) => {\r\n      state.value += action.payload;\r\n    },\r\n  },\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(incrementAsync.pending, (state) => {\r\n        state.status = \"loading\";\r\n      })\r\n      .addCase(incrementAsync.fulfilled, (state, action) => {\r\n        state.status = \"idle\";\r\n        state.value += action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const { increment, decrement, incrementByAmount } = counterSlice.actions;\r\n\r\n// The function below is called a selector and allows us to select a value from\r\n// the state. Selectors can also be defined inline where they're used instead of\r\n// in the slice file. For example: `useSelector((state: RootState) => state.counter.value)`\r\nexport const selectCount = (state: RootState) => state.counter.value;\r\n\r\n// We can also write thunks by hand, which may contain both sync and async logic.\r\n// Here's an example of conditionally dispatching actions based on current state.\r\nexport const incrementIfOdd =\r\n  (amount: number): AppThunk =>\r\n  (dispatch, getState) => {\r\n    const currentValue = selectCount(getState());\r\n    if (currentValue % 2 === 1) {\r\n      dispatch(incrementByAmount(amount));\r\n    }\r\n  };\r\n\r\nexport default counterSlice.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport { getCookie } from \"../../cookies/cookies\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LegalState {\r\n  acceptedTermsOfService: boolean;\r\n  confirm: boolean;\r\n}\r\n\r\nexport const LegalCookieName = \"acceptedTermsOfService\";\r\n\r\n// Retrieve if acceptance of terms of service was stored as a cookie\r\nexport function getAcceptedTermsOfServiceCookie() {\r\n  return getCookie(LegalCookieName) === \"true\";\r\n}\r\n\r\nconst initialState: LegalState = {\r\n  acceptedTermsOfService: getAcceptedTermsOfServiceCookie(),\r\n  confirm: false,\r\n};\r\n\r\nexport const legalSlice = createSlice({\r\n  name: \"legal\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {\r\n    acceptTermsOfService: (state) => {\r\n      // Redux Toolkit allows us to write \"mutating\" logic in reducers. It\r\n      // doesn't actually mutate the state because it uses the Immer library,\r\n      // which detects changes to a \"draft state\" and produces a brand new\r\n      // immutable state based off those changes\r\n      state.acceptedTermsOfService = true;\r\n    },\r\n    toggleAcceptance: (state) => {\r\n      state.confirm = !state.confirm;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { acceptTermsOfService, toggleAcceptance } = legalSlice.actions;\r\n\r\n// The function below is called a selector and allows us to select a value from\r\n// the state. Selectors can also be defined inline where they're used instead of\r\n// in the slice file. For example: `useSelector((state: RootState) => state.counter.value)`\r\nexport const selectAcceptedTermsOfService = (state: RootState) =>\r\n  state.legal.acceptedTermsOfService;\r\n\r\nexport const selectConfirm = (state: RootState) => state.legal.confirm;\r\n\r\nexport default legalSlice.reducer;\r\n","export function setCookie(cookieName: string, cvalue: string, exdays: number) {\r\n  const d = new Date();\r\n  d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\r\n  let expires = \"expires=\" + d.toUTCString();\r\n  document.cookie = cookieName + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n}\r\n\r\nexport function getCookie(cookieName: string) {\r\n  let name = cookieName + \"=\";\r\n  let decodedCookie = decodeURIComponent(document.cookie);\r\n  let ca = decodedCookie.split(\";\");\r\n  for (let i = 0; i < ca.length; i++) {\r\n    let c = ca[i];\r\n    while (c.charAt(0) == \" \") {\r\n      c = c.substring(1);\r\n    }\r\n    if (c.indexOf(name) == 0) {\r\n      return c.substring(name.length, c.length);\r\n    }\r\n  }\r\n  return \"\";\r\n}\r\n\r\nexport function areCookiesEnabled() {\r\n  return navigator.cookieEnabled;\r\n}\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\nlet IdPropertyName = \"id\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n  case \"localhost\":\r\n    API_DOMAIN = \"http://localhost:3001\"; //using https://github.com/typicode/json-server#alternative-port\r\n    break;\r\n\r\n  case \"inttest\":\r\n    API_DOMAIN = \"https://data-int.epa.ie/leap/api/v1\";\r\n    break;\r\n\r\n  case \"bustest\":\r\n    API_DOMAIN = \"https://data-tst.epa.ie/leap/api/v1\";\r\n    //API_DOMAIN = \"http://leapapi-tst.edenireland.ie:8188/api/v1\";\r\n    break;\r\n\r\n  case \"staging\":\r\n    API_DOMAIN = \"https://data-stg.epa.ie/leap/api/v1\";\r\n    break;\r\n\r\n  case \"production\":\r\n    API_DOMAIN = \"https://data.epa.ie/leap/api/v1\";\r\n    break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","function padTo2Digits(num: number) {\r\n  return num.toString().padStart(2, \"0\");\r\n}\r\n\r\nexport function formatDate(dateString: string): string {\r\n  if (!dateString) return \"-\";\r\n\r\n  var date = new Date(dateString);\r\n\r\n  return [\r\n    padTo2Digits(date.getDate()),\r\n    padTo2Digits(date.getMonth() + 1),\r\n    date.getFullYear(),\r\n  ].join(\"/\");\r\n}\r\n\r\nexport function formatDateTime(dateString: string): string {\r\n  if (!dateString) return \"-\";\r\n\r\n  var date = new Date(dateString);\r\n\r\n  const datePart = [\r\n    padTo2Digits(date.getDate()),\r\n    padTo2Digits(date.getMonth() + 1),\r\n    date.getFullYear(),\r\n  ].join(\"/\");\r\n\r\n  const timePart = [\r\n    padTo2Digits(date.getHours()),\r\n    padTo2Digits(date.getMinutes()),\r\n  ].join(\":\");\r\n\r\n  return `${datePart} ${timePart}`;\r\n}\r\n\r\nexport function formatDateForFiltering(dateString: string): string {\r\n  if (!dateString) return \"\";\r\n\r\n  var date = new Date(dateString);\r\n\r\n  return [\r\n    padTo2Digits(date.getDate()),\r\n    padTo2Digits(date.getMonth() + 1),\r\n    date.getFullYear(),\r\n  ].join(\"-\");\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\nexport interface ICompliance {\r\n  compliancerecord_id: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  date: string;\r\n  licence_id: string;\r\n  profile_id: string;\r\n  related_compliance_recordid: string;\r\n  licenceregno: string;\r\n  profilenumber: string;\r\n}\r\n\r\nexport interface IComplianceList extends PageResult {\r\n  list: ICompliance[];\r\n}\r\n\r\nexport interface IComplianceRecordType {\r\n  type: string;\r\n}\r\n\r\nexport interface IComplianceRecordTypesList extends PageResult {\r\n  list: IComplianceRecordType[];\r\n}\r\n\r\nexport interface IComplianceStatus {\r\n  status: string;\r\n}\r\n\r\nexport interface IComplianceStatusesList extends PageResult {\r\n  list: IComplianceStatus[];\r\n}\r\n\r\nexport const GetComplianceListFetchUrl = (\r\n  profileId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}&order_by=date[desc]`;\r\n\r\n  var filterParams = \"\";\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      if (filterId === \"licenceregno\") {\r\n        filterId = \"activelicence\";\r\n        filterParams += `&${filterId}=${f.value}`;\r\n      } else if (filterId === \"date\") {\r\n        const date_from = formatDateForFiltering(f.value[0]);\r\n        if (f.value[1]) {\r\n          const date_to = formatDateForFiltering(f.value[1]);\r\n          filterParams += `&date_from=${date_from}&date_to=${date_to}`;\r\n        } else {\r\n          const date_to = formatDateForFiltering(f.value[1]);\r\n          filterParams += `&date_from=${date_from}&date_to=${date_to}`;\r\n        }\r\n      } else {\r\n        filterParams += `&${filterId}=${f.value}`;\r\n      }\r\n    }\r\n  }\r\n\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/ComplianceList/compliancelist?licence_profile_id=${profileId}${filterParams}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/compliancelist`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport function FormatComplianceList(rows: Array<any>) {\r\n  return rows.map((item) => {\r\n    return <ICompliance>{\r\n      compliancerecord_id: item.compliancerecord_id,\r\n      date: formatDate(item.date),\r\n      licence_id: item.licence_id,\r\n      licenceregno: item.licenceregno,\r\n      profile_id: item.profile_id,\r\n      profilenumber: item.profilenumber,\r\n      reference: item.reference,\r\n      related_compliance_recordid: item.related_compliance_recordid,\r\n      status: item.status,\r\n      subject: item.subject,\r\n      type: item.type,\r\n    };\r\n  });\r\n}\r\n\r\nexport async function GetComplianceRecordTypesAsync(\r\n  profileId: string\r\n): Promise<IComplianceRecordTypesList> {\r\n  let url = `${API_URL}/ComplianceList/compliancerecordtypesbyprofile?licence_profile_id=${profileId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/compliance-record-types`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplianceRecordTypesList>await response.json();\r\n  body.list = body.list.map((item) => {\r\n    return <IComplianceRecordType>{\r\n      type: item.type,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport async function GetComplianceRecordStatusesAsync(): Promise<IComplianceStatusesList> {\r\n  let url = `${API_URL}/ComplianceList/compliancerecordstatus`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/compliance-record-status`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplianceStatusesList>await response.json();\r\n  body.list = body.list.map((item) => {\r\n    return <IComplianceStatus>{\r\n      status: item.status,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport async function GetComplianceListByProfileIdAsync(\r\n  profileId: string,\r\n  pageRequest: PageRequest\r\n): Promise<IComplianceList> {\r\n  const url = GetComplianceListFetchUrl(\r\n    profileId,\r\n    pageRequest.page,\r\n    pageRequest.per_page,\r\n    \"\",\r\n    null\r\n  );\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplianceList>await response.json();\r\n  body.list = body.list.map((item) => {\r\n    return <ICompliance>{\r\n      compliancerecord_id: item.compliancerecord_id,\r\n      date: formatDate(item.date),\r\n      licence_id: item.licence_id,\r\n      licenceregno: item.licenceregno,\r\n      profile_id: item.profile_id,\r\n      profilenumber: item.profilenumber,\r\n      reference: item.reference,\r\n      related_compliance_recordid: item.related_compliance_recordid,\r\n      status: item.status,\r\n      subject: item.subject,\r\n      type: item.type,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport const GetComplianceListDummy = (profileId: string): IComplianceList => {\r\n  return {\r\n    count: 1,\r\n    length: 50,\r\n    page: 1,\r\n    list: [],\r\n  };\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { GetDummyResponse, IDetailsResponse } from \"./IDetailsResponse\";\r\n\r\nexport interface ISiteDetails extends IDetailsResponse {\r\n  address1: string;\r\n  address2: string;\r\n  address3: string;\r\n  city: string;\r\n  county: string;\r\n  eircode: string;\r\n  nacecode: string;\r\n  nutscode: string;\r\n  urbanareape: string;\r\n  plantcapacitype: string;\r\n  treatmenttype: string;\r\n  uvtreatment: string;\r\n  licenceprofileid: string;\r\n}\r\n\r\nexport async function GetSiteDetailsByProfileIdAsync(\r\n  profileId: string\r\n): Promise<ISiteDetails> {\r\n  var url = `${API_URL}/Site/byprofileid?licence_profile_id=${profileId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/site`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ISiteDetails>await response.json();\r\n\r\n  return body;\r\n}\r\n\r\nexport const GetSiteByProfileId = (profileId: string): ISiteDetails => {\r\n  return GetSiteDetailsDummy(profileId);\r\n};\r\n\r\nexport const GetSiteDetailsDummy = (profileId: string): ISiteDetails => {\r\n  return {\r\n    response: GetDummyResponse(),\r\n    address1: \"A building\",\r\n    address2: \"A street\",\r\n    address3: \"-\",\r\n    city: \"Sligo (city)\",\r\n    county: \"Sligo\",\r\n    eircode: \"F99Z999\",\r\n    nacecode: \"3821\",\r\n    nutscode: \"IE051\",\r\n    urbanareape: \"Urban Area PE\",\r\n    plantcapacitype: \"capacity\",\r\n    treatmenttype: \"treatment type\",\r\n    uvtreatment: \"uv treatment\",\r\n    licenceprofileid: profileId,\r\n  };\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\n\r\nexport interface ILicenceVersion {\r\n  licence_id: string;\r\n  reg_no: string;\r\n  licenceprofile_id: string;\r\n  licence_type: string;\r\n  licence_name: string;\r\n  date_of_licence: string;\r\n  ceased_date: string;\r\n  licence_status: string;\r\n  licence_substatus: string;\r\n  licence_application_status: string;\r\n  licenceprofile_number: string;\r\n  urban_areape: string;\r\n}\r\n\r\nexport interface ILicenceVersionsList {\r\n  list: ILicenceVersion[];\r\n  count: number;\r\n  length: number;\r\n  page: number;\r\n}\r\n\r\nexport async function GetAllLicenceVersionsAsync(\r\n  profileId: string\r\n): Promise<ILicenceVersionsList> {\r\n  var url = `${API_URL}/Licence/listbyprofileid?licence_profile_id=${profileId}&order_by=regno%5Bdesc%5D`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licence-versions`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ILicenceVersionsList>await response.json();\r\n  body.list = body.list.map((item) => {\r\n    return <ILicenceVersion>{\r\n      licence_id: item.licence_id,\r\n      reg_no: item.reg_no,\r\n      licenceprofile_id: item.licenceprofile_id,\r\n      licence_type: item.licence_type,\r\n      licence_name: item.licence_name,\r\n      date_of_licence: formatDate(item.date_of_licence),\r\n      ceased_date: formatDate(item.ceased_date),\r\n      licence_status: item.licence_status,\r\n      licence_substatus: item.licence_substatus,\r\n      licence_application_status: item.licence_application_status,\r\n      licenceprofile_number: item.licenceprofile_number,\r\n      urban_areape: item.urban_areape,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport async function GetLicenceVersionAsync(\r\n  licenceId: string\r\n): Promise<ILicenceVersion> {\r\n  var url = `${API_URL}/Licence/byid?licence_id=${licenceId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licence-version-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ILicenceVersion>await response.json();\r\n\r\n  return {\r\n    licence_id: licenceId,\r\n    reg_no: body.reg_no,\r\n    licenceprofile_id: body.licenceprofile_id,\r\n    licence_type: body.licence_type,\r\n    licence_name: body.licence_name,\r\n    date_of_licence: formatDate(body.date_of_licence),\r\n    ceased_date: formatDate(body.ceased_date),\r\n    licence_status: body.licence_status,\r\n    licence_substatus: body.licence_substatus,\r\n    licence_application_status: body.licence_application_status,\r\n    licenceprofile_number: body.licenceprofile_number,\r\n    urban_areape: body.urban_areape,\r\n  };\r\n}\r\n\r\nexport const GetLicencesByMeetingFetchUrl = (\r\n  meetingId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n  let url = `${API_URL}/Licence/listbymeetingid?meeting_id=${meetingId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licences-by-meeting`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetLicenceVersionsDummy = (\r\n  profileId: string\r\n): ILicenceVersionsList => {\r\n  return {\r\n    count: 1,\r\n    length: 50,\r\n    page: 1,\r\n    list: [\r\n      {\r\n        licence_id: \"15019058-e564-e811-a2d5-0050568a66b2\",\r\n        reg_no: \"W0297-01\",\r\n        licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n        licence_type: \"Waste\",\r\n        licence_name: \"Harp Refrigerants Limited\",\r\n        date_of_licence: \"2018-07-24T00:00:00\",\r\n        ceased_date: \"2021-07-24T00:00:00\",\r\n        licence_status: \"Ceased (Never Commenced)\",\r\n        licence_substatus: \"\",\r\n        licence_application_status: \"Licensed\",\r\n        licenceprofile_number: \"W0297\",\r\n        urban_areape: \"\",\r\n      },\r\n      {\r\n        licence_id: \"15019058-e568-e811-a2d5-0050568a66b2\",\r\n        reg_no: \"W0297-02\",\r\n        licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n        licence_type: \"Waste\",\r\n        licence_name: \"Harp Refrigerants Limited\",\r\n        date_of_licence: \"2018-07-24T00:00:00\",\r\n        ceased_date: \"2021-07-24T00:00:00\",\r\n        licence_status: \"Licensed\",\r\n        licence_substatus: \"\",\r\n        licence_application_status: \"Licensed\",\r\n        licenceprofile_number: \"W0297\",\r\n        urban_areape: \"\",\r\n      },\r\n    ],\r\n  };\r\n};\r\n\r\nexport const GetActiveLicenceVersionDummy = (\r\n  profileId: string\r\n): ILicenceVersion => {\r\n  return {\r\n    licence_id: \"15019058-e564-e811-a2d5-0050568a66b2\",\r\n    reg_no: \"W0297-01\",\r\n    licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n    licence_type: \"Waste\",\r\n    licence_name: \"Harp Refrigerants Limited\",\r\n    date_of_licence: \"2018-07-24T00:00:00\",\r\n    ceased_date: \"2021-07-24T00:00:00\",\r\n    licence_status: \"Ceased (Never Commenced)\",\r\n    licence_substatus: \"\",\r\n    licence_application_status: \"Licensed\",\r\n    licenceprofile_number: \"W0297\",\r\n    urban_areape: \"Urban Area PE\",\r\n  };\r\n};\r\n\r\nexport const IsIndustrialEmissionsLicense = (licence: ILicenceVersion) => {\r\n  return licence.licence_type === \"Industrial Emissions\";\r\n};\r\n\r\nexport const IsWasteLicense = (licence: ILicenceVersion) => {\r\n  return licence.licence_type === \"Waste\";\r\n};\r\n\r\nexport const IsWasteWaterDischargeAuthorisation = (\r\n  licence: ILicenceVersion\r\n) => {\r\n  return licence.licence_type === \"Waste Water Discharge Licence\";\r\n};\r\n\r\nexport const IsCoALicense = (licence: ILicenceVersion) => {\r\n  return licence.licence_type === \"Waste Water Certificate of Authorisation\";\r\n};\r\n\r\nexport const IsDumpingAtSeaLicense = (licence: ILicenceVersion) => {\r\n  return licence.licence_type === \"Dumping at Sea\";\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { FetchResponse } from \"./FetchResponse\";\r\n\r\nimport {\r\n  GetComplianceListByProfileIdAsync,\r\n  GetComplianceListDummy,\r\n  IComplianceList,\r\n} from \"./ICompliance\";\r\n\r\nimport {\r\n  GetSiteDetailsByProfileIdAsync,\r\n  GetSiteDetailsDummy,\r\n  ISiteDetails,\r\n} from \"./ISiteDetails\";\r\nimport {\r\n  GetActiveLicenceVersionDummy,\r\n  GetAllLicenceVersionsAsync,\r\n  GetLicenceVersionAsync,\r\n  GetLicenceVersionsDummy,\r\n  ILicenceVersion,\r\n  ILicenceVersionsList,\r\n} from \"./LicenceVersion\";\r\n\r\nexport interface ILicenceProfile {\r\n  id: string;\r\n  profileNo: string;\r\n  profileName: string;\r\n  version: string;\r\n  dateIssued: string;\r\n  type: string;\r\n  status: string;\r\n  subStatus: string;\r\n  sector: string;\r\n  majorActivity: string;\r\n  iedActivity: string;\r\n  organisation: string;\r\n  firstIssued: string;\r\n  county: string;\r\n  prioritySite: string;\r\n\r\n  siteDetails: ISiteDetails;\r\n  complianceList: IComplianceList;\r\n  licenceVersionsList: ILicenceVersionsList;\r\n  activeLicenceVersion: ILicenceVersion;\r\n}\r\n\r\ninterface ILicenceProfileApiResponse {\r\n  licence_profile_id: string;\r\n  name: string;\r\n  profile_number: string;\r\n  active_licence_id: string;\r\n  active_licence_type: string;\r\n  active_licence_regno: string;\r\n  active_licence_startdate: string;\r\n  active_licence_status: string;\r\n  active_licence_substatus: string;\r\n  active_licence_sector: string;\r\n  first_issue_date: string;\r\n  county: string;\r\n  town: string;\r\n  organisation_id: string;\r\n  organisation_name: string;\r\n  uww_priority_site: string;\r\n  major_class_of_activity: string;\r\n  ied_activity: string;\r\n  site_id: string;\r\n}\r\n\r\nexport interface ILicenceProfileResponse {\r\n  response: FetchResponse;\r\n  licenceProfile?: ILicenceProfile;\r\n}\r\n\r\nexport async function GetLicenceProfileAsync(\r\n  profileNo: string\r\n): Promise<ILicenceProfileResponse> {\r\n  var url = `${API_URL}/LicenceProfile/byprofileno?licence_profile_no=${profileNo}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    if (profileNo === \"XXXX\") {\r\n      url = `${API_URL}/notfound`;\r\n    } else {\r\n      url = `${API_URL}/licenceprofile`;\r\n    }\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  if (!response.ok) {\r\n    return {\r\n      response: {\r\n        ok: false,\r\n        httpStatusCode: response.status,\r\n        httpErr: response.statusText,\r\n      },\r\n    };\r\n  }\r\n\r\n  var body = <ILicenceProfileApiResponse>await response.json();\r\n\r\n  var profileId = body.licence_profile_id;\r\n\r\n  var siteDetails = await GetSiteDetailsByProfileIdAsync(profileId);\r\n  var complianceList = await GetComplianceListByProfileIdAsync(profileId, {\r\n    page: 1,\r\n    per_page: 5,\r\n  });\r\n\r\n  var versions = await GetAllLicenceVersionsAsync(profileId);\r\n  var activeVersion = await GetLicenceVersionAsync(body.active_licence_id);\r\n\r\n  const profile = <ILicenceProfile>{\r\n    county: body.county,\r\n    dateIssued: formatDate(body.active_licence_startdate),\r\n    firstIssued: formatDate(body.first_issue_date),\r\n    id: body.licence_profile_id,\r\n    iedActivity: body.ied_activity,\r\n    majorActivity: body.major_class_of_activity,\r\n    organisation: body.organisation_name,\r\n    profileName: body.name,\r\n    profileNo: body.profile_number,\r\n    sector: body.active_licence_sector,\r\n    status: body.active_licence_status,\r\n    subStatus: body.active_licence_substatus,\r\n    type: body.active_licence_type,\r\n    version: body.active_licence_regno,\r\n    prioritySite: body.uww_priority_site,\r\n    siteDetails: siteDetails,\r\n    complianceList: complianceList,\r\n    licenceVersionsList: versions,\r\n    activeLicenceVersion: activeVersion,\r\n  };\r\n\r\n  return <ILicenceProfileResponse>{\r\n    response: {},\r\n    licenceProfile: profile,\r\n  };\r\n}\r\n\r\nexport const ParseGetLicenceProfileResponse = (response: any) => {\r\n  return response as ILicenceProfile;\r\n};\r\n\r\nexport function GetLicenceProfile(profileNo: string): ILicenceProfile {\r\n  return GetLicenceProfileDummy(profileNo);\r\n}\r\n\r\nexport const GetLicenceProfileDummy = (profileNo: string): ILicenceProfile => {\r\n  return {\r\n    id: \"{guid}\",\r\n    profileNo: profileNo,\r\n    profileName: \"XYZ Company\",\r\n    version: \"P9999-04\",\r\n    dateIssued: \"12 Mar 2019\",\r\n    type: \"IEL\",\r\n    status: \"Licensed\",\r\n    subStatus: \"Licensed Activity Commenced\",\r\n    sector: \"Surface Coating Sector\",\r\n    majorActivity: \"12.2.1 - Surface Coatings\",\r\n    iedActivity: \"6.7 - Other Activities\",\r\n    organisation: \"XYZ Company\",\r\n    firstIssued: \"01 Jan 2015\",\r\n    county: \"Sligo\",\r\n    prioritySite: \"Priority Site\",\r\n    siteDetails: GetSiteDetailsDummy(\"\"),\r\n    complianceList: GetComplianceListDummy(\"\"),\r\n    licenceVersionsList: GetLicenceVersionsDummy(\"\"),\r\n    activeLicenceVersion: GetActiveLicenceVersionDummy(\"\"),\r\n  };\r\n};\r\n\r\nexport const isRadiologicalProtection = (licenceProfile: ILicenceProfile) => {\r\n  return licenceProfile.type === \"Radiological Protection\";\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetLicenceProfileAsync,\r\n  ILicenceProfileResponse,\r\n} from \"../../api/LicenceProfile\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LicenceProfileState {\r\n  fetchStatus: string;\r\n  error: any;\r\n  licenceProfileResponse?: ILicenceProfileResponse;\r\n}\r\n\r\nconst initialState: LicenceProfileState = {\r\n  error: undefined,\r\n  fetchStatus: \"Loading...\",\r\n  licenceProfileResponse: undefined,\r\n};\r\n\r\nexport const loadLicenceProfileAsync = createAsyncThunk(\r\n  \"licenceProfile/load\",\r\n  async (profileNo: string) => {\r\n    const response = await GetLicenceProfileAsync(profileNo);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const licenceProfileSlice = createSlice({\r\n  name: \"licenceProfile\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadLicenceProfileAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadLicenceProfileAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.licenceProfileResponse = action.payload;\r\n      })\r\n      .addCase(loadLicenceProfileAsync.rejected, (state, action) => {\r\n        state.fetchStatus = \"rejected\";\r\n        state.error = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectLicenceProfileResponse = (state: RootState) =>\r\n  state.licenceProfileResponse;\r\n\r\nexport default licenceProfileSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetComplianceRecordStatusesAsync,\r\n  GetComplianceRecordTypesAsync,\r\n  IComplianceRecordTypesList,\r\n  IComplianceStatusesList,\r\n} from \"../../api/ICompliance\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplianceState {\r\n  fetchStatus: string;\r\n  complianceRecordTypes?: IComplianceRecordTypesList;\r\n  complianceStatuses?: IComplianceStatusesList;\r\n}\r\n\r\nconst initialState: ComplianceState = {\r\n  fetchStatus: \"Loading...\",\r\n  complianceRecordTypes: undefined,\r\n  complianceStatuses: undefined,\r\n};\r\n\r\nexport const loadComplianceOptionsAsync = createAsyncThunk(\r\n  \"compliance/loadOptions\",\r\n  async (profileId: string) => {\r\n    const recordTypes = await GetComplianceRecordTypesAsync(profileId);\r\n    const recordStatuses = await GetComplianceRecordStatusesAsync();\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return {\r\n      recordTypes: recordTypes,\r\n      recordStatuses: recordStatuses,\r\n    };\r\n  }\r\n);\r\n\r\nexport const complianceOptionsSlice = createSlice({\r\n  name: \"complianceOptions\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadComplianceOptionsAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadComplianceOptionsAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.complianceRecordTypes = action.payload.recordTypes;\r\n        state.complianceStatuses = action.payload.recordStatuses;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectComplianceOptions = (state: RootState) =>\r\n  state.complianceOptions;\r\n\r\nexport default complianceOptionsSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\n//https://data-int.epa.ie/leap/api/v1/SiteVisit/byid?sv_id=804D4B88-ED4E-E811-A2DD-0050568A2D1A\r\n\r\n/*\r\n\"sitevisitid\": \"804d4b88-ed4e-e811-a2dd-0050568a2d1a\",\r\n    \"type\": \"Site Visit\",\r\n    \"subject\": \"Air Visit - Sampling Infrastructure\",\r\n    \"reference\": \"SV15542\",\r\n    \"status\": \"Closed\",\r\n    \"licence_id\": \"24c8e87d-7c61-e211-9eb5-0050568a69e2\",\r\n    \"licenceprofile_id\": null,\r\n    \"licenseesubmission_id\": \"4e8aadee-e69b-e811-a308-0050568a2d1a\",\r\n    \"visit_date\": \"2018-04-11T00:00:00\",\r\n    \"report_issued_date\": \"2018-07-25T00:00:00\",\r\n    \"compliance\": \"Yes\",\r\n    \"summary\": null,\r\n    \"instigated_by\": \"Enforcement Plan Visit\",\r\n    \"sampletaken\": \"No\",\r\n    \"odourassessment\": null,\r\n    \"adourassessmentcompliant\": \"n/a\",\r\n    \"licence_regno\": \"P0815-02\",\r\n    \"profile_number\": \"P0815\"\r\n*/\r\n\r\n//Site Visit Details\r\nexport interface ISiteVisitDetails extends IDetailsResponse {\r\n  sitevisitid: string;\r\n  type: string;\r\n  subject: string;\r\n  reference: string;\r\n  status: string;\r\n  licence_id: string;\r\n  licenceprofile_id: string;\r\n  licenseesubmission_id: string;\r\n  visit_date: string;\r\n  report_issued_date: string;\r\n  compliance: string;\r\n  summary: string;\r\n  instigated_by: string;\r\n  announced: string;\r\n  visittype: string;\r\n  sampletaken: string;\r\n  odourassessment: string;\r\n  adourassessmentcompliant: string;\r\n  licence_regno: string;\r\n  profile_number: string;\r\n}\r\n\r\n//Site Visit Row\r\nexport interface ISiteVisit {\r\n  sitevisitid: string;\r\n  type: string;\r\n  subject: string;\r\n  reference: string;\r\n  status: string;\r\n  licence_id: string;\r\n  licenceprofile_id: string;\r\n  licenseesubmission_id: string;\r\n  visit_date: string;\r\n  visit_type: string;\r\n  licence_regno: string;\r\n  profile_number: string;\r\n}\r\n\r\nexport async function GetSiteVisitDetailsAsync(\r\n  siteVisitId: string\r\n): Promise<ISiteVisitDetails> {\r\n  var url = `${API_URL}/SiteVisit/byid?sv_id=${siteVisitId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/sitevisit-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ISiteVisitDetails>await response.json();\r\n\r\n  return <ISiteVisitDetails>{\r\n    response: response,\r\n    sitevisitid: body.sitevisitid,\r\n    type: body.type,\r\n    subject: body.subject,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    licence_id: body.licence_id,\r\n    licenceprofile_id: body.licenceprofile_id,\r\n    licenseesubmission_id: body.licenseesubmission_id,\r\n    visit_date: formatDate(body.visit_date),\r\n    report_issued_date: formatDate(body.report_issued_date),\r\n    compliance: body.compliance,\r\n    summary: body.summary,\r\n    announced: body.announced,\r\n    visittype: body.visittype,\r\n    instigated_by: body.instigated_by,\r\n    sampletaken: body.sampletaken,\r\n    odourassessment: body.odourassessment,\r\n    adourassessmentcompliant: body.adourassessmentcompliant,\r\n    licence_regno: body.licence_regno,\r\n    profile_number: body.profile_number,\r\n  };\r\n}\r\n\r\nexport const GetSiteVisitsFromLicenseeReturnFetchUrl = (\r\n  licenseeReturnId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/SiteVisit/listbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/sitevisit-licenseereturns`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetSiteVisitsFromComplianceInvestigationFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/SiteVisit/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/sitevisits-ci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetSiteVisitsFromNonComplianceFetchUrl = (\r\n  nonComplianceId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/SiteVisit/listbyncid?nc_id=${nonComplianceId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/sitevisit-noncompliance`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetSiteVisitDetailsAsync,\r\n  ISiteVisitDetails,\r\n} from \"../../api/ISiteVisit\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface SiteVisitState {\r\n  fetchStatus: string;\r\n  siteVisit?: ISiteVisitDetails;\r\n}\r\n\r\nconst initialState: SiteVisitState = {\r\n  fetchStatus: \"Loading...\",\r\n  siteVisit: undefined,\r\n};\r\n\r\nexport const loadSiteVisitAsync = createAsyncThunk(\r\n  \"siteVisit/load\",\r\n  async (siteVisitId: string) => {\r\n    const response = await GetSiteVisitDetailsAsync(siteVisitId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const siteVisitSlice = createSlice({\r\n  name: \"siteVisit\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadSiteVisitAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadSiteVisitAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.siteVisit = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectSiteVisit = (state: RootState) => state.siteVisit;\r\n\r\nexport default siteVisitSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\nexport interface IComplianceInvestigation {\r\n  complianceinvestigationid: string;\r\n  issue: string;\r\n  reference: string;\r\n  status: string;\r\n  title: string;\r\n  dateraised: string;\r\n  svid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigationList extends PageResult {\r\n  list: IComplianceInvestigation[];\r\n}\r\n\r\nexport interface IComplianceInvestigationDetails extends IDetailsResponse {\r\n  complianceinvestigationid: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  responselevel: string;\r\n  title: string;\r\n  origin: string;\r\n  receptors: string;\r\n  description: string;\r\n  closedate: string;\r\n  dateraised: string;\r\n  licence_regno: string;\r\n}\r\n\r\n/*\r\n    \"complianceinvestigationid\": \"8e457ace-b626-e811-a2c7-0050568a2d1a\",\r\n    \"reference\": \"CI001626\",\r\n    \"subject\": \"Water Quality\",\r\n    \"status\": \"Closed\",\r\n    \"licenceid\": \"7e8aad0c-f8fd-434e-9cac-24a99738e069\",\r\n    \"licenceprofileid\": \"2c551f0e-eb4b-457c-9d4e-54d689f192f4\",\r\n    \"responselevel\": \"Low\",\r\n    \"title\": \"P0690-03, Unauthorised emissions to sewer\",\r\n    \"origin\": \"Instances of Non compliance\",\r\n    \"receptors\": \"Water\",\r\n    \"description\": \"A meeting was held with C&F Automotive on Thursday 8th March 2018 regarding recurring exceedances of ELV limits for sewer water and trigger levels for storm water. Actions agreed at the meeting are required to be carried out by the licensee.\",\r\n    \"closedate\": \"2021-10-12T00:00:00\",\r\n    \"dateraised\": \"2018-03-21T00:00:00\"\r\n*/\r\n\r\nexport const GetComplianceInvestigationsBySiteVisitFetchUrl = (\r\n  siteVisitId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Ci/listbysvid?sv_id=${siteVisitId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cis-by-sitevisitid`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport function FormatComplianceList(rows: Array<any>) {\r\n  return rows.map((item) => {\r\n    return <IComplianceInvestigation>{\r\n      complianceinvestigationid: item.complianceinvestigationid,\r\n      dateraised: formatDate(item.dateraised),\r\n      issue: item.issue,\r\n      reference: item.reference,\r\n      status: item.status,\r\n      title: item.title,\r\n      svid: item.svid,\r\n    };\r\n  });\r\n}\r\n\r\nexport async function GetComplianceInvestigationDetailsAsync(\r\n  complianceInvestigationId: string\r\n): Promise<IComplianceInvestigationDetails> {\r\n  var url = `${API_URL}/Ci/byid?ci_id=${complianceInvestigationId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplianceInvestigationDetails>await response.json();\r\n\r\n  return <IComplianceInvestigationDetails>{\r\n    response: response,\r\n    complianceinvestigationid: body.complianceinvestigationid,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    responselevel: body.responselevel,\r\n    title: body.title,\r\n    origin: body.origin,\r\n    receptors: body.receptors,\r\n    description: body.description,\r\n    closedate: formatDate(body.closedate),\r\n    dateraised: formatDate(body.dateraised),\r\n    licence_regno: body.licence_regno,\r\n  };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\n\r\n/*\r\n    \"licence_id\": \"24c8e87d-7c61-e211-9eb5-0050568a69e2\",\r\n    \"reg_no\": \"P0815-02\",\r\n    \"licenceprofile_id\": \"373122fb-8a6d-4f9c-bef1-142252f47d33\",\r\n    \"licence_type\": \"Industrial Emissions\",\r\n    \"licence_name\": \"Lacpatrick Dairies Limited\",\r\n    \"date_of_licence\": \"2013-03-25T00:00:00\",\r\n    \"ceased_date\": null,\r\n    \"licence_status\": \"Licensed\",\r\n    \"licence_substatus\": \"Licensable Activity Commenced\",\r\n    \"licence_application_status\": \"Replaced\",\r\n    \"licenceprofile_number\": \"P0815\",\r\n    \"urban_areape\": null\r\n*/\r\n\r\nexport interface ILicenceDetails {\r\n  licence_id: string;\r\n  reg_no: string;\r\n  licenceprofile_id: string;\r\n  licence_type: string;\r\n  date_of_licence: string;\r\n  ceased_date: string;\r\n  licence_status: string;\r\n  licence_substatus: string;\r\n  licence_application_status: string;\r\n  licenceprofile_number: string;\r\n  urban_areape: string;\r\n}\r\n\r\nexport async function GetLicenseDetailsAsync(\r\n  licenceId: string\r\n): Promise<ILicenceDetails> {\r\n  var url = `${API_URL}/Licence/byid?licence_id=${licenceId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licence-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ILicenceDetails>await response.json();\r\n\r\n  return <ILicenceDetails>{\r\n    licence_id: body.licence_id,\r\n    reg_no: body.reg_no,\r\n    licenceprofile_id: body.licenceprofile_id,\r\n    licence_type: body.licence_type,\r\n    date_of_licence: formatDate(body.date_of_licence),\r\n    ceased_date: formatDate(body.ceased_date),\r\n    licence_status: body.licence_status,\r\n    licence_substatus: body.licence_substatus,\r\n    licence_application_status: body.licence_application_status,\r\n    licenceprofile_number: body.licenceprofile_number,\r\n    urban_areape: body.urban_areape,\r\n  };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\nimport { PageResult } from \"./Pagination\";\r\n\r\n/*\r\n \"licenseereturnid\": \"4e8aadee-e69b-e811-a308-0050568a2d1a\",\r\n        \"reference\": \"LR036244\",\r\n        \"subject\": \"Site Updates/Notifications Licensee Public Response\",\r\n        \"datereceived\": \"2018-08-09T00:00:00\",\r\n        \"doctype\": \"Site Updates/Notifications\",\r\n        \"docsubtype\": \"Licensee Public Response\",\r\n        \"decision\": \"Assessed\"\r\n*/\r\nexport interface ILicenseeReturn {\r\n  licenseereturnid: string;\r\n  reference: string;\r\n  subject: string;\r\n  datereceived: string;\r\n  doctype: string;\r\n  docsubtype: string;\r\n  decision: string;\r\n}\r\n\r\nexport interface ILicenseeReturnDetails extends IDetailsResponse {\r\n  licenseereturnid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licence_regno: string;\r\n  licenceprofileid: string;\r\n  datereceived: string;\r\n  closeddate: string;\r\n  title: string;\r\n  doctype: string;\r\n  docsubtype: string;\r\n  decision: string;\r\n  description: string;\r\n  documentcategory: string;\r\n  complianceinvestigationid: string;\r\n  complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport interface ILicenseeReturnList extends PageResult {\r\n  list: ILicenseeReturn[];\r\n}\r\n\r\nexport const GetLicenseeReturnFromSiteVisitFetchUrl = (\r\n  siteVisitId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/LicenseeReturns/listbysvid?sv_id=${siteVisitId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licenseereturns-sitevisit`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetLicenseeReturnFromComplianceInvestigationFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/LicenseeReturns/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licenseereturns-ci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetLicenseeReturnDetailsAsync(\r\n  siteVisitId: string\r\n): Promise<ILicenseeReturnDetails> {\r\n  var url = `${API_URL}/LicenseeReturns/byid?lr_id=${siteVisitId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licenseereturn-details-notfound`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ILicenseeReturnDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  if (body.complianceinvestigationid) {\r\n    body.complianceInvestigationDetails =\r\n      await GetComplianceInvestigationDetailsAsync(\r\n        body.complianceinvestigationid\r\n      );\r\n  }\r\n\r\n  return <ILicenseeReturnDetails>{\r\n    response: response,\r\n    licenseereturnid: body.licenseereturnid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    licenceid: body.licenceid,\r\n    licence_regno: licenceDetails.reg_no,\r\n    licenceprofileid: body.licenceprofileid,\r\n    datereceived: formatDate(body.datereceived),\r\n    closeddate: formatDate(body.closeddate),\r\n    title: body.title,\r\n    doctype: body.doctype,\r\n    docsubtype: body.docsubtype,\r\n    decision: body.decision,\r\n    description: body.description,\r\n    documentcategory: body.documentcategory,\r\n    complianceinvestigationid: body.complianceinvestigationid,\r\n    complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetLicenseeReturnDetailsAsync,\r\n  ILicenseeReturnDetails,\r\n} from \"../../api/ILicenseeReturns\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LicenseeReturnState {\r\n  fetchStatus: string;\r\n  licenseeReturn?: ILicenseeReturnDetails;\r\n}\r\n\r\nconst initialState: LicenseeReturnState = {\r\n  fetchStatus: \"Loading...\",\r\n  licenseeReturn: undefined,\r\n};\r\n\r\nexport const loadLicenseeReturnAsync = createAsyncThunk(\r\n  \"licenseeReturn/load\",\r\n  async (licenseeReturnId: string) => {\r\n    const response = await GetLicenseeReturnDetailsAsync(licenseeReturnId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const licenseeReturnSlice = createSlice({\r\n  name: \"licenseeReturn\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadLicenseeReturnAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadLicenseeReturnAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.licenseeReturn = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectLicenseeReturn = (state: RootState) => state.licenseeReturn;\r\n\r\nexport default licenseeReturnSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseeReturnDetailsAsync } from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IRequestForInformation {\r\n  rfiid: string;\r\n  type: string;\r\n  licenceid: string;\r\n  reference: string;\r\n  status: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  subject: string;\r\n  responsereceiveddate: string;\r\n  question: string;\r\n  response: string;\r\n  licenseesubmisionid: string; // LR Id\r\n  profileNo: string;\r\n  licence_regno: string;\r\n  licensee_return_reference: string; //LR's ref no.\r\n}\r\n\r\nexport const GetRequestsForInformationFromLicenseeReturnFetchUrl = (\r\n  licenseeReturnId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/LicenseeReturns/rfilistbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/rfis-by-licensee-return`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetRequestForInformationDetailsAsync(\r\n  requestForInformationId: string\r\n): Promise<IRequestForInformation> {\r\n  var url = `${API_URL}/LicenseeReturns/rfibyid?rfi_id=${requestForInformationId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/rfi-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IRequestForInformation>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n  const licenseeReturn = await GetLicenseeReturnDetailsAsync(\r\n    body.licenseesubmisionid\r\n  );\r\n\r\n  return <IRequestForInformation>{\r\n    rfiid: body.rfiid,\r\n    type: body.type,\r\n    licenceid: body.licenceid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    subject: body.subject,\r\n    responsereceiveddate: formatDate(body.responsereceiveddate),\r\n    question: body.question,\r\n    response: body.response,\r\n    licenseesubmisionid: body.licenseesubmisionid,\r\n    profileNo: licenceDetails.licenceprofile_number,\r\n    licence_regno: licenceDetails.reg_no, // LR,\r\n    licensee_return_reference: licenseeReturn.reference,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetRequestForInformationDetailsAsync,\r\n  IRequestForInformation,\r\n} from \"../../api/RequestForInformation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface RequestForInformationState {\r\n  fetchStatus: string;\r\n  requestForInformation?: IRequestForInformation;\r\n}\r\n\r\nconst initialState: RequestForInformationState = {\r\n  fetchStatus: \"Loading...\",\r\n  requestForInformation: undefined,\r\n};\r\n\r\nexport const loadRequestForInformationAsync = createAsyncThunk(\r\n  \"requestForInformation/load\",\r\n  async (reuestForInformationId: string) => {\r\n    const response = await GetRequestForInformationDetailsAsync(\r\n      reuestForInformationId\r\n    );\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const requestForInformationSlice = createSlice({\r\n  name: \"requestForInformation\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadRequestForInformationAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadRequestForInformationAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.requestForInformation = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectRequestForInformation = (state: RootState) =>\r\n  state.requestForInformation;\r\n\r\nexport default requestForInformationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { GetSiteVisitDetailsAsync, ISiteVisitDetails } from \"./ISiteVisit\";\r\nimport { ITaskDetails } from \"./ITask\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IFindingAndRecommendation {\r\n  taskid: string;\r\n  datesubmitted: string;\r\n  type: string;\r\n  category: string;\r\n  status: string;\r\n  observation: string;\r\n  reference: string;\r\n}\r\n\r\nexport interface IFindingAndRecommendationDetails extends ITaskDetails {\r\n  siteVisit?: ISiteVisitDetails;\r\n}\r\n\r\n//https://data-int.epa.ie/leap/api/v1/Task/listbyregardingobjectid?regardingobject_id=71DC08F0-BABA-E511-987F-0050568A69E2&page=1&per_page=50\r\n\r\nexport const GetFindingsAndRecommendationsFetchUrl = (\r\n  regardingObjectId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/Task/listbyregardingobjectid?regardingobject_id=${regardingObjectId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/sitevisit-findings`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetFindingAndRecommendationDetailsAsync(\r\n  taskId: string\r\n): Promise<IFindingAndRecommendationDetails> {\r\n  var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/finding-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IFindingAndRecommendationDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n  const siteVisit = await GetSiteVisitDetailsAsync(body.regardingobjectid);\r\n\r\n  return <IFindingAndRecommendationDetails>{\r\n    response: response,\r\n    taskid: body.taskid,\r\n    type: body.type,\r\n    licenceid: body.licenceid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    subject: body.subject,\r\n    sender: body.sender,\r\n    recipient: body.recipient,\r\n    details: body.details,\r\n    category: body.category,\r\n    subcategory: body.subcategory,\r\n    observation: body.observation,\r\n    description: body.description,\r\n    profileNo: licenceDetails.licenceprofile_number,\r\n    licence_regno: licenceDetails.reg_no,\r\n    siteVisit: siteVisit,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetFindingAndRecommendationDetailsAsync,\r\n  IFindingAndRecommendationDetails,\r\n} from \"../../api/IFindingAndRecommendation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface FindingAndRecommendationState {\r\n  fetchStatus: string;\r\n  findingAndRecommendation?: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst initialState: FindingAndRecommendationState = {\r\n  fetchStatus: \"Loading...\",\r\n  findingAndRecommendation: undefined,\r\n};\r\n\r\nexport const loadFindingAndRecommendationAsync = createAsyncThunk(\r\n  \"findingAndRecommendation/load\",\r\n  async (taskId: string) => {\r\n    const response = await GetFindingAndRecommendationDetailsAsync(taskId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const findingAndRecommendationSlice = createSlice({\r\n  name: \"findingAndRecommendation\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadFindingAndRecommendationAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadFindingAndRecommendationAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.findingAndRecommendation = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectFindingAndRecommendation = (state: RootState) =>\r\n  state.findingAndRecommendationReducer;\r\n\r\nexport default findingAndRecommendationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport {\r\n  GetLicenseeReturnDetailsAsync,\r\n  ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IInstruction {\r\n  epainitiatedcorrespondenceid: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  licensingnotification: string;\r\n  correspondencetype: string;\r\n  regno: string;\r\n  licenseesubmissionid: string;\r\n}\r\n\r\nexport interface IInstructionDetails extends IDetailsResponse {\r\n  epainitiatedcorrespondenceid: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  licensingnotification: string;\r\n  correspondencetype: string;\r\n  regno: string;\r\n  licenseesubmissionid: string;\r\n  licenseeReturn?: ILicenseeReturnDetails;\r\n  profileNo: string;\r\n}\r\n\r\nexport const GetInstructionsFromLicenseeReturnFetchUrl = (\r\n  licenseeReturnId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/LicenseeReturns/lrintructionlistbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/instructions-by-licensee-return`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetInstructionDetailsAsync(\r\n  instructionId: string\r\n): Promise<IInstructionDetails> {\r\n  var url = `${API_URL}/LicenseeReturns/lrintructionbyid?lrintruction_id=${instructionId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/instruction-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IInstructionDetails>await response.json();\r\n\r\n  const licenseeReturnDetails = await GetLicenseeReturnDetailsAsync(\r\n    body.licenseesubmissionid\r\n  );\r\n  const licenceDetails = await GetLicenseDetailsAsync(\r\n    licenseeReturnDetails.licenceid\r\n  );\r\n\r\n  return <IInstructionDetails>{\r\n    response: response,\r\n    epainitiatedcorrespondenceid: body.epainitiatedcorrespondenceid,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    licensingnotification: body.licensingnotification,\r\n    correspondencetype: body.correspondencetype,\r\n    regno: body.regno,\r\n    licenseesubmissionid: body.licenseesubmissionid,\r\n    licenseeReturn: licenseeReturnDetails,\r\n    profileNo: licenceDetails.licenceprofile_number,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetInstructionDetailsAsync,\r\n  IInstructionDetails,\r\n} from \"../../api/Instruction\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface InstructionState {\r\n  fetchStatus: string;\r\n  instruction?: IInstructionDetails;\r\n}\r\n\r\nconst initialState: InstructionState = {\r\n  fetchStatus: \"Loading...\",\r\n  instruction: undefined,\r\n};\r\n\r\nexport const loadInstructionAsync = createAsyncThunk(\r\n  \"instruction/load\",\r\n  async (instructionId: string) => {\r\n    const response = await GetInstructionDetailsAsync(instructionId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const instructionSlice = createSlice({\r\n  name: \"instruction\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadInstructionAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadInstructionAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.instruction = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectInstruction = (state: RootState) => state.instruction;\r\n\r\nexport default instructionSlice.reducer;\r\n","import { API_URL } from \"../Config\";\r\nimport { formatDate } from \"../DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"../IComplianceInvestigation\";\r\nimport { ITaskDetails } from \"../ITask\";\r\nimport { GetLicenseDetailsAsync } from \"../LicenceDetails\";\r\n\r\nexport interface IComplianceInvestigationActionOrInstruction {\r\n  taskid: string;\r\n  datesubmitted: string;\r\n  type: string;\r\n  category: string;\r\n  subcategory: string;\r\n  status: string;\r\n  observation: string;\r\n  reference: string;\r\n  subject: string;\r\n  description: string;\r\n  regardingobjectid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigationActionOrInstructionDetails\r\n  extends ITaskDetails {\r\n  complianceInvestidationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport const GetComplianceInvestigationActionsAndInstructionsFetchUrl = (\r\n  regardingObjectId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/Task/listbyregardingobjectid?regardingobject_id=${regardingObjectId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-actions-instructions`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetComplianceInvestigationActionOrInstructionDetailsAsync(\r\n  taskId: string\r\n): Promise<IComplianceInvestigationActionOrInstructionDetails> {\r\n  var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-action-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplianceInvestigationActionOrInstructionDetails>(\r\n    await response.json()\r\n  );\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n  const complianceInvestigation = await GetComplianceInvestigationDetailsAsync(\r\n    body.regardingobjectid\r\n  );\r\n\r\n  return <IComplianceInvestigationActionOrInstructionDetails>{\r\n    taskid: body.taskid,\r\n    type: body.type,\r\n    licenceid: body.licenceid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    subject: body.subject,\r\n    sender: body.sender,\r\n    recipient: body.recipient,\r\n    details: body.details,\r\n    category: body.category,\r\n    subcategory: body.subcategory,\r\n    observation: body.observation,\r\n    description: body.description,\r\n    profileNo: licenceDetails.licenceprofile_number,\r\n    licence_regno: licenceDetails.reg_no,\r\n    regardingobjectid: body.regardingobjectid,\r\n    complianceInvestidationDetails: complianceInvestigation,\r\n  };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IEpaCorrespondenceDetails extends IDetailsResponse {\r\n  epainitiatedcorrespondenceid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  licensingnotification: string;\r\n  correspondencetype: string;\r\n  licenseesubmissionid?: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetEpaCorrespondenceDetailsAsync(\r\n  epaCorrespondenceId: string\r\n): Promise<IEpaCorrespondenceDetails> {\r\n  var url = `${API_URL}/MeetingCorrespondence/epainiciatedcorrespondencebyid?epainitiatedcorrespondence_id=${epaCorrespondenceId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/epa-correspondence-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IEpaCorrespondenceDetails>await response.json();\r\n\r\n  body.licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  return <IEpaCorrespondenceDetails>{\r\n    response: response,\r\n    epainitiatedcorrespondenceid: body.epainitiatedcorrespondenceid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    licensingnotification: body.licensingnotification,\r\n    correspondencetype: body.correspondencetype,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    licenceDetails: body.licenceDetails,\r\n  };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface ITaskDetails extends IDetailsResponse {\r\n  taskid: string;\r\n  type: string;\r\n  licenceid: string;\r\n  reference: string;\r\n  status: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  subject: string;\r\n  sender: string;\r\n  recipient: string;\r\n  details: string;\r\n  category: string;\r\n  subcategory: string;\r\n  observation: string;\r\n  description: string;\r\n  regardingobjectid: string;\r\n  licence_regno?: string;\r\n  profileNo?: string;\r\n}\r\n\r\nexport const isFindingOrRecommentation = (type: string) => {\r\n  return type === \"SV Finding\" || type === \"SV Recommendation\";\r\n};\r\n\r\nexport const isActionOrInstruction = (type: string) => {\r\n  return type === \"Action\" || type === \"Instruction\";\r\n};\r\n\r\nexport async function GetTaskDetailsAsync(\r\n  taskId: string\r\n): Promise<ITaskDetails> {\r\n  var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/finding-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <ITaskDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  return <ITaskDetails>{\r\n    response: response,\r\n    taskid: body.taskid,\r\n    type: body.type,\r\n    licenceid: body.licenceid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    subject: body.subject,\r\n    sender: body.sender,\r\n    recipient: body.recipient,\r\n    details: body.details,\r\n    category: body.category,\r\n    subcategory: body.subcategory,\r\n    observation: body.observation,\r\n    description: body.description,\r\n    profileNo: licenceDetails.licenceprofile_number,\r\n    licence_regno: licenceDetails.reg_no,\r\n  };\r\n}\r\n","import {\r\n  GetComplianceInvestigationActionOrInstructionDetailsAsync,\r\n  IComplianceInvestigationActionOrInstructionDetails,\r\n} from \"./ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport {\r\n  GetEpaCorrespondenceDetailsAsync,\r\n  IEpaCorrespondenceDetails,\r\n} from \"./IEpaCorrespondence\";\r\nimport {\r\n  GetFindingAndRecommendationDetailsAsync,\r\n  IFindingAndRecommendationDetails,\r\n} from \"./IFindingAndRecommendation\";\r\nimport {\r\n  GetLicenseeReturnDetailsAsync,\r\n  ILicenseeReturn,\r\n  ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetSiteVisitDetailsAsync, ISiteVisitDetails } from \"./ISiteVisit\";\r\nimport { GetTaskDetailsAsync, isFindingOrRecommentation } from \"./ITask\";\r\nimport {\r\n  GetThirdPartyCorrespondenceDetailsAsync,\r\n  IThirdPartyCorrespondenceDetails,\r\n} from \"./IThirdPartyCorrespondence\";\r\n\r\n//https://data-int.epa.ie/leap/api/v1/EdenMessage/listbytaskid?task_id=D984E9E7-8AC0-EC11-A341-0050568A2D1A&page=1&per_page=50\r\n\r\nexport interface IEdenMessage {\r\n  edenmessageid: string;\r\n  type: string;\r\n  licenceid: string;\r\n  reference: string;\r\n  status: string;\r\n  dateraised: string;\r\n  closeddate: string;\r\n  subject: string;\r\n  message: string;\r\n  response: string;\r\n  regardingobjectid: string;\r\n  taskid: string;\r\n}\r\n\r\nexport interface IEdenMessageDetails {\r\n  edenmessageid: string;\r\n  type: string;\r\n  licenceid: string;\r\n  reference: string;\r\n  status: string;\r\n  dateraised: string;\r\n  closeddate: string;\r\n  subject: string;\r\n  message: string;\r\n  response: string;\r\n  regardingobjectid: string;\r\n  taskid: string;\r\n  siteVisit?: ISiteVisitDetails;\r\n  findingAndRecommendation?: IFindingAndRecommendationDetails;\r\n  licenseeReturn?: ILicenseeReturnDetails;\r\n  actionOrInstructionDetails?: IComplianceInvestigationActionOrInstructionDetails;\r\n  complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n  epaCorrespondenceDetails?: IEpaCorrespondenceDetails;\r\n}\r\n\r\nexport const GetEdenMessagesByTaskFetchUrl = (\r\n  taskId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/EdenMessage/listbytaskid?task_id=${taskId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/edenmessages-bytaskid`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetEdenMessagesByRegardingFetchUrl = (\r\n  regardingObjectId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/EdenMessage/listbyregardingid?regarding_id=${regardingObjectId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/edenmessages-byregardingid`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetEdenMessageDetailsAsync(\r\n  edenMessageId: string\r\n): Promise<IEdenMessageDetails> {\r\n  var url = `${API_URL}/EdenMessage/byid?eden_message_id=${edenMessageId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/edenmessage-details`;\r\n  }\r\n\r\n  const response = await fetch(url);\r\n  const body = <IEdenMessageDetails>await response.json();\r\n\r\n  let isSiteVisit = false;\r\n  let isComplianceInvestigation = false;\r\n\r\n  if (body.taskid) {\r\n    const taskDetails = await GetTaskDetailsAsync(body.taskid);\r\n    if (isFindingOrRecommentation(taskDetails.type)) {\r\n      isSiteVisit = true;\r\n      body.findingAndRecommendation =\r\n        await GetFindingAndRecommendationDetailsAsync(body.taskid);\r\n    } else {\r\n      isComplianceInvestigation = true;\r\n      body.actionOrInstructionDetails =\r\n        await GetComplianceInvestigationActionOrInstructionDetailsAsync(\r\n          body.taskid\r\n        );\r\n    }\r\n  }\r\n\r\n  if (body.regardingobjectid) {\r\n    if (isSiteVisit) {\r\n      body.siteVisit = await GetSiteVisitDetailsAsync(body.regardingobjectid);\r\n    } else if (isComplianceInvestigation) {\r\n      body.complianceInvestigationDetails =\r\n        await GetComplianceInvestigationDetailsAsync(body.regardingobjectid);\r\n    } else {\r\n      body.epaCorrespondenceDetails = await GetEpaCorrespondenceDetailsAsync(\r\n        body.regardingobjectid\r\n      );\r\n\r\n      const lr = await GetLicenseeReturnDetailsAsync(body.regardingobjectid);\r\n\r\n      if (lr.response.ok) {\r\n        body.licenseeReturn = lr;\r\n      }\r\n    }\r\n  }\r\n\r\n  return <IEdenMessageDetails>{\r\n    edenmessageid: body.edenmessageid,\r\n    type: body.type,\r\n    licenceid: body.licenceid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    dateraised: formatDate(body.dateraised),\r\n    closeddate: formatDate(body.closeddate),\r\n    message: body.message,\r\n    subject: body.subject,\r\n    response: body.response,\r\n    regardingobjectid: body.regardingobjectid,\r\n    taskid: body.taskid,\r\n    siteVisit: body.siteVisit,\r\n    findingAndRecommendation: body.findingAndRecommendation,\r\n    complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n    licenseeReturn: body.licenseeReturn,\r\n    actionOrInstructionDetails: body.actionOrInstructionDetails,\r\n    epaCorrespondenceDetails: body.epaCorrespondenceDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetEdenMessageDetailsAsync,\r\n  IEdenMessageDetails,\r\n} from \"../../api/IEdenMessage\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface EdenMessageState {\r\n  fetchStatus: string;\r\n  edenMessage?: IEdenMessageDetails;\r\n}\r\n\r\nconst initialState: EdenMessageState = {\r\n  fetchStatus: \"Loading...\",\r\n  edenMessage: undefined,\r\n};\r\n\r\nexport const loadEdenMessageAsync = createAsyncThunk(\r\n  \"edenMessage/load\",\r\n  async (edenMessageId: string) => {\r\n    const response = await GetEdenMessageDetailsAsync(edenMessageId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const edenMessageSlice = createSlice({\r\n  name: \"edenMessage\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadEdenMessageAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadEdenMessageAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.edenMessage = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectEdenMessage = (state: RootState) => state.edenMessage;\r\n\r\nexport default edenMessageSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"../../api/IComplianceInvestigation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplianceInvestigationState {\r\n  fetchStatus: string;\r\n  complianceInvestigation?: IComplianceInvestigationDetails;\r\n}\r\n\r\nconst initialState: ComplianceInvestigationState = {\r\n  fetchStatus: \"Loading...\",\r\n  complianceInvestigation: undefined,\r\n};\r\n\r\nexport const loadComplianceInvestigationAsync = createAsyncThunk(\r\n  \"complianceInvestigation/load\",\r\n  async (complianceInvestigationId: string) => {\r\n    const response = await GetComplianceInvestigationDetailsAsync(\r\n      complianceInvestigationId\r\n    );\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const complianceInvestigationSlice = createSlice({\r\n  name: \"complianceInvestigation\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadComplianceInvestigationAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadComplianceInvestigationAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.complianceInvestigation = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectComplianceInvestigation = (state: RootState) =>\r\n  state.complianceInvestigation;\r\n\r\nexport default complianceInvestigationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateTime } from \"./DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\n/*\r\n      {\r\n        \"incidentid\": \"79723798-92dc-e611-a4f6-0050568a69e2\",\r\n        \"reference\": \"INCI011462\",\r\n        \"subject\": \"Trigger Level Reached\",\r\n        \"status\": \"Closed\",\r\n        \"incidentcategory\": \"1. Minor\",\r\n        \"approximatestart\": \"2017-01-14T08:00:00\"\r\n      },\r\n*/\r\n\r\nexport interface IIncident {\r\n  incidentid: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  incidentcategory: string;\r\n  approximatestart: string;\r\n}\r\n\r\nexport interface IIncidentDetails extends IDetailsResponse {\r\n  incidentid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  complianceinvestigationid: string;\r\n  incidentcategory: string;\r\n  nature: string;\r\n  vulnerablereceptors: string;\r\n  receptors: string;\r\n  likelihoodofreoccurence: string;\r\n  likelycause: string;\r\n  newrecurring: string;\r\n  datenotified: string;\r\n  closeddate: string;\r\n  approximatestart: string;\r\n  firstnoticed: string;\r\n  finishtime: string;\r\n  notifiedparties: string;\r\n  dischargepoint: string;\r\n  emissionpointname: string;\r\n  uncontrolledrelease: string;\r\n  description: string;\r\n  otherrelevantinformation: string;\r\n  impactonenvironment: string;\r\n  activityinprogress: string;\r\n  dischargedetails: string;\r\n  licence_regno: string;\r\n  complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport const GetIncidentsFromComplianceInvestigationFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/Incident/incidentlistbyci?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incidents-ci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetIncidentDetailsAsync(\r\n  incidentId: string\r\n): Promise<IIncidentDetails> {\r\n  var url = `${API_URL}/Incident/byid?incident_id=${incidentId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incident-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IIncidentDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  if (body.complianceinvestigationid) {\r\n    body.complianceInvestigationDetails =\r\n      await GetComplianceInvestigationDetailsAsync(\r\n        body.complianceinvestigationid\r\n      );\r\n  }\r\n\r\n  return <IIncidentDetails>{\r\n    response: response,\r\n    incidentid: body.incidentid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    complianceinvestigationid: body.complianceinvestigationid,\r\n    incidentcategory: body.incidentcategory,\r\n    nature: body.nature,\r\n    vulnerablereceptors: body.vulnerablereceptors,\r\n    receptors: body.receptors,\r\n    likelihoodofreoccurence: body.likelihoodofreoccurence,\r\n    likelycause: body.likelycause,\r\n    newrecurring: body.newrecurring,\r\n    datenotified: formatDate(body.datenotified),\r\n    firstnoticed: formatDate(body.firstnoticed),\r\n    closeddate: formatDate(body.closeddate),\r\n    approximatestart: formatDateTime(body.approximatestart),\r\n    finishtime: formatDateTime(body.finishtime),\r\n    notifiedparties: body.notifiedparties,\r\n    dischargepoint: body.dischargepoint,\r\n    emissionpointname: body.emissionpointname,\r\n    uncontrolledrelease: body.uncontrolledrelease,\r\n    description: body.description,\r\n    otherrelevantinformation: body.otherrelevantinformation,\r\n    impactonenvironment: body.impactonenvironment,\r\n    activityinprogress: body.activityinprogress,\r\n    dischargedetails: body.dischargedetails,\r\n    complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n    licence_regno: licenceDetails.reg_no,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"../../api/IIncident\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface IncidentState {\r\n  fetchStatus: string;\r\n  incident?: IIncidentDetails;\r\n}\r\n\r\nconst initialState: IncidentState = {\r\n  fetchStatus: \"Loading...\",\r\n  incident: undefined,\r\n};\r\n\r\nexport const loadIncidentAsync = createAsyncThunk(\r\n  \"incident/load\",\r\n  async (incidentId: string) => {\r\n    const response = await GetIncidentDetailsAsync(incidentId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const incidentSlice = createSlice({\r\n  name: \"incident\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadIncidentAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadIncidentAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.incident = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectIncident = (state: RootState) => state.incident;\r\n\r\nexport default incidentSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IComplaint {\r\n  complaintid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  datereceived: string;\r\n  closeddate: string;\r\n  complianceinvestigationid: string;\r\n  dateoccurred: string;\r\n  durationofoccurance: string;\r\n}\r\n\r\nexport interface IComplaintDetails extends IDetailsResponse {\r\n  complaintid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  datereceived: string;\r\n  closeddate: string;\r\n  complianceinvestigationid: string;\r\n  dateoccurred: string;\r\n  durationofoccurance: string;\r\n  licence_regno: string;\r\n  complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\n/*\r\n    \"complaintid\": \"4dc8ca34-a149-ea11-a324-0050568a2d1a\",\r\n    \"type\": \"Complaint\",\r\n    \"reference\": \"COM009932\",\r\n    \"subject\": \"P0510-01, 06/02/20, Noise\",\r\n    \"status\": \"Closed\",\r\n    \"licenceid\": \"2ec7e87d-7c61-e211-9eb5-0050568a69e2\",\r\n    \"licenceprofileid\": \"17481eff-ef09-4b71-b89d-f99ff3094e0f\",\r\n    \"datereceived\": \"2020-02-06T00:00:00\",\r\n    \"closeddate\": \"2020-03-27T00:00:00\",\r\n    \"complianceinvestigationid\": null,\r\n    \"dateoccurred\": \"2020-02-06T00:00:00\",\r\n    \"durationofoccurance\": \"Ongoing\"\r\n*/\r\n\r\nexport const GetComplaintsFromComplianceInvestigationFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/Complaint/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/complaints-ci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetComplaintDetailsAsync(\r\n  complaintId: string\r\n): Promise<IComplaintDetails> {\r\n  var url = `${API_URL}/Complaint/byid?complaint_id=${complaintId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/complaint-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IComplaintDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  if (body.complianceinvestigationid) {\r\n    body.complianceInvestigationDetails =\r\n      await GetComplianceInvestigationDetailsAsync(\r\n        body.complianceinvestigationid\r\n      );\r\n  }\r\n\r\n  return <IComplaintDetails>{\r\n    response: response,\r\n    complaintid: body.complaintid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    datereceived: formatDate(body.datereceived),\r\n    closeddate: formatDate(body.closeddate),\r\n    dateoccurred: formatDate(body.dateoccurred),\r\n    durationofoccurance: body.durationofoccurance,\r\n    complianceinvestigationid: body.complianceinvestigationid,\r\n    complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n    licence_regno: licenceDetails.reg_no,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetComplaintDetailsAsync,\r\n  IComplaintDetails,\r\n} from \"../../api/IComplaint\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplaintState {\r\n  fetchStatus: string;\r\n  complaint?: IComplaintDetails;\r\n}\r\n\r\nconst initialState: ComplaintState = {\r\n  fetchStatus: \"Loading...\",\r\n  complaint: undefined,\r\n};\r\n\r\nexport const loadComplaintAsync = createAsyncThunk(\r\n  \"complaint/load\",\r\n  async (complaintId: string) => {\r\n    const response = await GetComplaintDetailsAsync(complaintId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const complaintSlice = createSlice({\r\n  name: \"complaint\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadComplaintAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadComplaintAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.complaint = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectComplaint = (state: RootState) => state.complaint;\r\n\r\nexport default complaintSlice.reducer;\r\n","import { API_URL } from \"../Config\";\r\nimport { formatDate } from \"../DateUtils\";\r\nimport { IDetailsResponse } from \"../IDetailsResponse\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"../IIncident\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"../LicenceDetails\";\r\n\r\nexport interface IIncidentUpdateRequestDetails extends IDetailsResponse {\r\n  incidentupdaterequestid: string;\r\n  reference: string;\r\n  status: string;\r\n  request: string;\r\n  licenceid: string;\r\n  incidentid: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n  incidentDetails?: IIncidentDetails;\r\n  licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetIncidentUpdateRequestDetailsAsync(\r\n  incidentUpdateRequestId: string\r\n): Promise<IIncidentUpdateRequestDetails> {\r\n  var url = `${API_URL}/Incident/incidentupdaterequestbyid?incident_update_request_id=${incidentUpdateRequestId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incident-update-request-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IIncidentUpdateRequestDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  if (body.incidentid) {\r\n    body.incidentDetails = await GetIncidentDetailsAsync(body.incidentid);\r\n  }\r\n\r\n  return <IIncidentUpdateRequestDetails>{\r\n    response: response,\r\n    incidentupdaterequestid: body.incidentupdaterequestid,\r\n    reference: body.reference,\r\n    status: body.status,\r\n    request: body.request,\r\n    licenceid: body.licenceid,\r\n    incidentid: body.incidentid,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    duedate: formatDate(body.duedate),\r\n    incidentDetails: body.incidentDetails,\r\n    licenceDetails: licenceDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetIncidentUpdateRequestDetailsAsync,\r\n  IIncidentUpdateRequestDetails,\r\n} from \"../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface IncidentUpdateRequestState {\r\n  fetchStatus: string;\r\n  incidentUpdatRequest?: IIncidentUpdateRequestDetails;\r\n}\r\n\r\nconst initialState: IncidentUpdateRequestState = {\r\n  fetchStatus: \"Loading...\",\r\n  incidentUpdatRequest: undefined,\r\n};\r\n\r\nexport const loadIncidentUpdateRequestAsync = createAsyncThunk(\r\n  \"incidentUpdateRequest/load\",\r\n  async (incidentUpdateRequestId: string) => {\r\n    const response = await GetIncidentUpdateRequestDetailsAsync(\r\n      incidentUpdateRequestId\r\n    );\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const incidentUpdateRequestSlice = createSlice({\r\n  name: \"incidentUpdateRequest\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadIncidentUpdateRequestAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadIncidentUpdateRequestAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.incidentUpdatRequest = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectIncidentUpdateRequest = (state: RootState) =>\r\n  state.incidentUpdateRequest;\r\n\r\nexport default incidentUpdateRequestSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IMeetingDetails extends IDetailsResponse {\r\n  meetingid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  meetingdate: string;\r\n  meetingtime: string;\r\n  organisationid: string;\r\n  location: string;\r\n  regarding: string;\r\n  attendeesepa: string;\r\n  attendeesnoepa: string;\r\n  actionitems: string;\r\n  licenceid: string;\r\n  originalmeetingid: string;\r\n  organisationname: string;\r\n  licence_regno: string;\r\n  licenceDetails: ILicenceDetails;\r\n}\r\n\r\nexport async function GetMeetingDetailsAsync(\r\n  meetingId: string\r\n): Promise<IMeetingDetails> {\r\n  var url = `${API_URL}/MeetingCorrespondence/meetingbyid?meeting_id=${meetingId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/meeting-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IMeetingDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  return <IMeetingDetails>{\r\n    response: response,\r\n    meetingid: body.meetingid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    meetingdate: formatDate(body.meetingdate),\r\n    meetingtime: body.meetingtime,\r\n    organisationid: body.organisationid,\r\n    location: body.location,\r\n    regarding: body.regarding,\r\n    attendeesepa: body.attendeesepa,\r\n    attendeesnoepa: body.attendeesnoepa,\r\n    actionitems: body.actionitems,\r\n    originalmeetingid: body.originalmeetingid,\r\n    organisationname: body.organisationname,\r\n    licence_regno: licenceDetails.reg_no,\r\n    licenceDetails: licenceDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport { GetMeetingDetailsAsync, IMeetingDetails } from \"../../api/IMeeting\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface MeetingState {\r\n  fetchStatus: string;\r\n  meeting?: IMeetingDetails;\r\n}\r\n\r\nconst initialState: MeetingState = {\r\n  fetchStatus: \"Loading...\",\r\n  meeting: undefined,\r\n};\r\n\r\nexport const loadMeetingAsync = createAsyncThunk(\r\n  \"meeting/load\",\r\n  async (meetingId: string) => {\r\n    const response = await GetMeetingDetailsAsync(meetingId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const meetingSlice = createSlice({\r\n  name: \"meeting\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadMeetingAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadMeetingAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.meeting = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectMeeting = (state: RootState) => state.meeting;\r\n\r\nexport default meetingSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { GetComplaintDetailsAsync, IComplaintDetails } from \"./IComplaint\";\r\nimport {\r\n  GetComplianceInvestigationDetailsAsync,\r\n  IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"./IIncident\";\r\nimport {\r\n  GetLicenseeReturnDetailsAsync,\r\n  ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\nimport { PageResult } from \"./Pagination\";\r\n\r\nexport interface INonCompliance {\r\n  noncomplianceid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  datesubmitted: string;\r\n  condition: string;\r\n  complianceinvestigationid: string;\r\n  licenseesubmissionid: string;\r\n  incidentid: string;\r\n  complaintid: string;\r\n  description: string;\r\n  dateofnoncompliance: string;\r\n  dateofnotification: string;\r\n}\r\n\r\nexport interface InonCompliancesList extends PageResult {\r\n  list: INonCompliance[];\r\n}\r\n\r\nexport interface INonComplianceDetails extends IDetailsResponse {\r\n  noncomplianceid: string;\r\n  type: string;\r\n  reference: string;\r\n  subject: string;\r\n  status: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  datesubmitted: string;\r\n  condition: string;\r\n  complianceinvestigationid: string;\r\n  licenseesubmissionid: string;\r\n  incidentid: string;\r\n  complaintid: string;\r\n  description: string;\r\n  dateofnoncompliance: string;\r\n  dateofnotification: string;\r\n  complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n  licenseeReturnDetails?: ILicenseeReturnDetails;\r\n  licenceDetails: ILicenceDetails;\r\n  incidentDetails?: IIncidentDetails;\r\n  complaintDetails?: IComplaintDetails;\r\n}\r\n\r\nexport const GetNonCompliancesByComplianceInvestigationFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/NonCompliance/listbyciid?ci_id=${complianceInvestigationId}${params}${filterParams}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliances-list-byci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetNonCompliancesByLicenseeReturnFetchUrl = (\r\n  licenseeReturnId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/NonCompliance/listbylrid?lr_id=${licenseeReturnId}${params}${filterParams}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliances-list-byci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetNonCompliancesByIncidentFetchUrl = (\r\n  incidentId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/NonCompliance/listbyincidentid?incident_id=${incidentId}${params}${filterParams}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliances-list-byci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetNonCompliancesByComplaintFetchUrl = (\r\n  complaintId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/NonCompliance/listbycomplaintid?complaint_id=${complaintId}${params}${filterParams}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliances-list-byci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetNonCompliancesBySiteVisitFetchUrl = (\r\n  siteVisitId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/NonCompliance/listbysvid?sv_id=${siteVisitId}${params}${filterParams}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliances-list-svci`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport async function GetNonComplianceDetailsAsync(\r\n  nonComplianceId: string\r\n): Promise<INonComplianceDetails> {\r\n  var url = `${API_URL}/NonCompliance/byid?nc_id=${nonComplianceId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/noncompliance-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <INonComplianceDetails>await response.json();\r\n\r\n  const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  if (body.complianceinvestigationid) {\r\n    body.complianceInvestigationDetails =\r\n      await GetComplianceInvestigationDetailsAsync(\r\n        body.complianceinvestigationid\r\n      );\r\n  }\r\n\r\n  if (body.licenseesubmissionid) {\r\n    body.licenseeReturnDetails = await GetLicenseeReturnDetailsAsync(\r\n      body.licenseesubmissionid\r\n    );\r\n  }\r\n\r\n  if (body.incidentid) {\r\n    body.incidentDetails = await GetIncidentDetailsAsync(body.incidentid);\r\n  }\r\n\r\n  if (body.complaintid) {\r\n    body.complaintDetails = await GetComplaintDetailsAsync(body.complaintid);\r\n  }\r\n\r\n  return <INonComplianceDetails>{\r\n    response: response,\r\n    noncomplianceid: body.noncomplianceid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    datesubmitted: formatDate(body.datesubmitted),\r\n    condition: body.condition,\r\n    complianceinvestigationid: body.complianceinvestigationid,\r\n    licenseesubmissionid: body.licenseesubmissionid,\r\n    incidentid: body.incidentid,\r\n    complaintid: body.complaintid,\r\n    description: body.description,\r\n    dateofnoncompliance: formatDate(body.dateofnoncompliance),\r\n    dateofnotification: formatDate(body.dateofnotification),\r\n    complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n    licenseeReturnDetails: body.licenseeReturnDetails,\r\n    licenceDetails: licenceDetails,\r\n    incidentDetails: body.incidentDetails,\r\n    complaintDetails: body.complaintDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetNonComplianceDetailsAsync,\r\n  INonComplianceDetails,\r\n} from \"../../api/INonCompliance\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface NonComplianceState {\r\n  fetchStatus: string;\r\n  nonCompliance?: INonComplianceDetails;\r\n}\r\n\r\nconst initialState: NonComplianceState = {\r\n  fetchStatus: \"Loading...\",\r\n  nonCompliance: undefined,\r\n};\r\n\r\nexport const loadNonComplianceAsync = createAsyncThunk(\r\n  \"nonCompliance/load\",\r\n  async (nonComplianceId: string) => {\r\n    const response = await GetNonComplianceDetailsAsync(nonComplianceId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const nonComplianceSlice = createSlice({\r\n  name: \"nonCompliance\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadNonComplianceAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadNonComplianceAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.nonCompliance = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectNonCompliance = (state: RootState) => state.nonCompliance;\r\n\r\nexport default nonComplianceSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetComplianceInvestigationActionOrInstructionDetailsAsync,\r\n  IComplianceInvestigationActionOrInstructionDetails,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ActionOrInstructionState {\r\n  fetchStatus: string;\r\n  actionOrInstruction?: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst initialState: ActionOrInstructionState = {\r\n  fetchStatus: \"Loading...\",\r\n  actionOrInstruction: undefined,\r\n};\r\n\r\nexport const loadActionOrInstructionAsync = createAsyncThunk(\r\n  \"actionOrInstruction/load\",\r\n  async (taskId: string) => {\r\n    const response =\r\n      await GetComplianceInvestigationActionOrInstructionDetailsAsync(taskId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const actionOrInstructionSlice = createSlice({\r\n  name: \"actionOrInstruction\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadActionOrInstructionAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadActionOrInstructionAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.actionOrInstruction = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectActionOrInstruction = (state: RootState) =>\r\n  state.actionOrInstruction;\r\n\r\nexport default actionOrInstructionSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetEpaCorrespondenceDetailsAsync,\r\n  IEpaCorrespondenceDetails,\r\n} from \"../../api/IEpaCorrespondence\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface EpaCorrespondenceState {\r\n  fetchStatus: string;\r\n  epaCorrespondence?: IEpaCorrespondenceDetails;\r\n}\r\n\r\nconst initialState: EpaCorrespondenceState = {\r\n  fetchStatus: \"Loading...\",\r\n  epaCorrespondence: undefined,\r\n};\r\n\r\nexport const loadEpaCorrespondenceAsync = createAsyncThunk(\r\n  \"epaCorrespondence/load\",\r\n  async (epaCorrespondenceId: string) => {\r\n    const response = await GetEpaCorrespondenceDetailsAsync(\r\n      epaCorrespondenceId\r\n    );\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const epaCorrespondenceSlice = createSlice({\r\n  name: \"epaCorrespondence\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadEpaCorrespondenceAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadEpaCorrespondenceAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.epaCorrespondence = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectEpaCorrespondence = (state: RootState) =>\r\n  state.epaCorrespondence;\r\n\r\nexport default epaCorrespondenceSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IThirdPartyCorrespondenceDetails extends IDetailsResponse {\r\n  thirdpartycorrespondenceid: string;\r\n  type: string;\r\n  reference: string;\r\n  receivedfrom: string;\r\n  subject: string;\r\n  status: string;\r\n  dateoriginalcorrespondencereceived: string;\r\n  dateoforiginalcorrespondence: string;\r\n  inspectorsupdate: string;\r\n  correspondencetype: string;\r\n  licenceid: string;\r\n  licenceprofileid: string;\r\n  licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetThirdPartyCorrespondenceDetailsAsync(\r\n  thirdPartyCorrespondenceId: string\r\n): Promise<IThirdPartyCorrespondenceDetails> {\r\n  var url = `${API_URL}/MeetingCorrespondence/thirdpartycorrespondencebyid?thirdpartycorrespondence_id=${thirdPartyCorrespondenceId}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/3rdparty-correspondence`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n  var body = <IThirdPartyCorrespondenceDetails>await response.json();\r\n\r\n  body.licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n  return <IThirdPartyCorrespondenceDetails>{\r\n    response: response,\r\n    thirdpartycorrespondenceid: body.thirdpartycorrespondenceid,\r\n    type: body.type,\r\n    reference: body.reference,\r\n    receivedfrom: body.receivedfrom,\r\n    subject: body.subject,\r\n    status: body.status,\r\n    dateoriginalcorrespondencereceived: formatDate(\r\n      body.dateoriginalcorrespondencereceived\r\n    ),\r\n    dateoforiginalcorrespondence: formatDate(body.dateoforiginalcorrespondence),\r\n    inspectorsupdate: body.inspectorsupdate,\r\n    correspondencetype: body.correspondencetype,\r\n    licenceid: body.licenceid,\r\n    licenceprofileid: body.licenceprofileid,\r\n    licenceDetails: body.licenceDetails,\r\n  };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetThirdPartyCorrespondenceDetailsAsync,\r\n  IThirdPartyCorrespondenceDetails,\r\n} from \"../../api/IThirdPartyCorrespondence\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ThirdPartyCorrespondenceState {\r\n  fetchStatus: string;\r\n  thirdPartyCorrespondence?: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst initialState: ThirdPartyCorrespondenceState = {\r\n  fetchStatus: \"Loading...\",\r\n  thirdPartyCorrespondence: undefined,\r\n};\r\n\r\nexport const loadThirdPartyCorrespondenceAsync = createAsyncThunk(\r\n  \"thirdPartyCorrespondence/load\",\r\n  async (thirdPartyCorrespondenceId: string) => {\r\n    const response = await GetThirdPartyCorrespondenceDetailsAsync(\r\n      thirdPartyCorrespondenceId\r\n    );\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const thirdPartyCorrespondenceSlice = createSlice({\r\n  name: \"thirdPartyCorrespondence\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadThirdPartyCorrespondenceAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadThirdPartyCorrespondenceAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.thirdPartyCorrespondence = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectThirdPartyCorrespondence = (state: RootState) =>\r\n  state.thirdPartyCorrespondence;\r\n\r\nexport default thirdPartyCorrespondenceSlice.reducer;\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n  case \"localhost\":\r\n    API_DOMAIN = \"http://localhost:3001\"; //using https://github.com/typicode/json-server#alternative-port\r\n    break;\r\n\r\n  case \"inttest\":\r\n    API_DOMAIN = \"https://data-int.epa.ie/byproduct/api/v1\";\r\n    break;\r\n\r\n  case \"bustest\":\r\n    API_DOMAIN = \"https://data-tst.epa.ie/byproduct/api/v1\";\r\n    break;\r\n\r\n  case \"staging\":\r\n    API_DOMAIN = \"https://data-stg.epa.ie/byproduct/api/v1\";\r\n    break;\r\n\r\n  case \"production\":\r\n    API_DOMAIN = \"https://data.epa.ie/byproduct/api/v1\";\r\n    break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","import { EpaGridOrderByFetchParams } from \"../../leap-components/Grid/EpaGridProps\";\r\nimport { API_URL } from \"./Config\";\r\nimport { FetchResponse } from \".././FetchResponse\";\r\n\r\nexport interface INotifier {\r\n  notifier_id: string;\r\n  notifier_name: string;\r\n  date_received: string;\r\n  date_closed: string;\r\n  notified_material: string;\r\n  reg_no: string;\r\n  status: string;\r\n  open_for_submissions: boolean;\r\n  notified_material_description: string;\r\n  quantity: number;\r\n  greenfield_or_brownfield: string;\r\n  material_production_process: string;\r\n  activities_taken: string;\r\n  specific_use: string;\r\n  source_county: string;\r\n  source_name_and_address: string;\r\n  source_eircode: string;\r\n  source_eastings: string;\r\n  source_northings: string;\r\n  source_local_authority: string;\r\n  use_county: string;\r\n  use_name_and_address: string;\r\n  use_eir_code: string;\r\n  use_eastings: string;\r\n  use_northings: string;\r\n  use_local_authority: string;\r\n  planning_status: string;\r\n  planning_refno: string;\r\n  planning_grant_ref_date: string;\r\n  planning_expiry_date: string;\r\n  planning_quantity_authorised: number;\r\n  environmental_authorisation: string;\r\n  environmental_authorisation_details: string;\r\n  type: string;\r\n  decision_ref_no: string;\r\n  hyperlink: string;\r\n  waste_authorisation_type: string;\r\n  epa_waste_authorisation: string;\r\n  local_authority_id: string;\r\n  waste_authorisation_regno: string;\r\n  waste_authorisation_expiry_date: string;\r\n  licence_type: string;\r\n}\r\n\r\nexport interface INotifierDetails {\r\n  notifier_id: string;\r\n  notifier_name: string;\r\n  date_received: string;\r\n  reg_no: string;\r\n  status: string;\r\n  open_for_submissions: boolean;\r\n  source_local_authority: string;\r\n  use_local_authority: string;\r\n}\r\n\r\nexport interface INotifierResponse {\r\n  response: FetchResponse;\r\n  notifier?: INotifierDetails;\r\n}\r\n\r\nexport async function GetNotifierByIdFetchUrl(\r\n  notifier_id: string\r\n): Promise<INotifierResponse> {\r\n  var url = `${API_URL}/Notifiers/byid?notifier_id=${notifier_id}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/notifier`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n\r\n  if (!response.ok) {\r\n    return {\r\n      response: {\r\n        ok: false,\r\n        httpStatusCode: response.status,\r\n        httpErr: response.statusText,\r\n      },\r\n    };\r\n  }\r\n\r\n  var body = <INotifierDetails>await response.json();\r\n\r\n  const notifier = <INotifierDetails>{\r\n    notifier_id: body.notifier_id,\r\n    notifier_name: body.notifier_name,\r\n    date_received: body.date_received,\r\n    reg_no: body.reg_no,\r\n    status: body.status,\r\n    source_local_authority: body.source_local_authority,\r\n    use_local_authority: body.use_local_authority,\r\n    open_for_submissions: body.open_for_submissions,\r\n  };\r\n\r\n  return <INotifierResponse>{\r\n    response: {},\r\n    notifier: notifier,\r\n  };\r\n}\r\n\r\nexport const GetNotifiersFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  filters: any\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Notifiers${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/notifiers`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredNotifiersFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n\r\n      if (f.value != \"All\") params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Date Closed\":\r\n        orderByParam = \"date_closed\";\r\n        break;\r\n\r\n      case \"Date Received\":\r\n        orderByParam = \"date_received\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"notification_number\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n      orderBy.orderByAscending ? \"true\" : \"false\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Notifiers/filteredregistrationslist${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/notifiers`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredNotifiersCsv = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Date Closed\":\r\n        orderByParam = \"date_closed\";\r\n        break;\r\n\r\n      case \"Date Received\":\r\n        orderByParam = \"date_received\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"notification_number\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n      orderBy.orderByAscending ? \"true\" : \"false\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Notifiers/filteredresitrationscsv${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/notifiers`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredEowsFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n\r\n      if (f.value != \"All\") params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Registration Date\":\r\n        orderByParam = \"date_received\";\r\n        break;\r\n\r\n      case \"Operator\":\r\n        orderByParam = \"notifier_name\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"notification_number\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n      orderBy.orderByAscending ? \"true\" : \"false\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Notifiers/filteredeowlist${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/eows`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredEowsCsv = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Registration Date\":\r\n        orderByParam = \"date_received\";\r\n        break;\r\n\r\n      case \"Operator\":\r\n        orderByParam = \"notifier_name\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"notification_number\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n      orderBy.orderByAscending ? \"true\" : \"false\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Notifiers/filteredeowcsv${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/eows`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFetchUrl = (\r\n  notifierId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `?notifier_id=${notifierId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Documents/bynotifier${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/documents`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetNotifierByIdFetchUrl,\r\n  INotifierResponse,\r\n} from \"../../../../api/CircularEconomy/INotifiers\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface NotifierState {\r\n  fetchStatus: string;\r\n  error: any;\r\n  NotifierResponse?: INotifierResponse;\r\n}\r\n\r\nconst initialState: NotifierState = {\r\n  error: undefined,\r\n  fetchStatus: \"Loading...\",\r\n  NotifierResponse: undefined,\r\n};\r\n\r\nexport const loadNotifierAsync = createAsyncThunk(\r\n  \"notifier/load\",\r\n  async (notifierId: string) => {\r\n    const response = await GetNotifierByIdFetchUrl(notifierId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const notifierSlice = createSlice({\r\n  name: \"notifier\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadNotifierAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadNotifierAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.NotifierResponse = action.payload;\r\n      })\r\n      .addCase(loadNotifierAsync.rejected, (state, action) => {\r\n        state.fetchStatus = \"rejected\";\r\n        state.error = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectNotifierResponse = (state: RootState) =>\r\n  state.notifierResponse;\r\n\r\nexport default notifierSlice.reducer;\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\nlet IdPropertyName = \"id\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n  case \"localhost\":\r\n    API_DOMAIN = \"http://localhost:3001\";\r\n    break;\r\n\r\n  case \"inttest\":\r\n    API_DOMAIN = \"https://data-int.epa.ie/leap/api/v1\";\r\n    break;\r\n\r\n  case \"bustest\":\r\n    API_DOMAIN = \"https://data-tst.epa.ie/leap/api/v1\";\r\n    break;\r\n\r\n  case \"staging\":\r\n    API_DOMAIN = \"https://data-stg.epa.ie/leap/api/v1\";\r\n    break;\r\n\r\n  case \"production\":\r\n    API_DOMAIN = \"https://data.epa.ie/leap/api/v1\";\r\n    break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","import { EpaGridOrderByFetchParams } from \"../../../leap-components/Grid/EpaGridProps\";\r\nimport { API_URL } from \"./Config\";\r\nimport { FetchResponse } from \"../../FetchResponse\";\r\nimport { PageResult } from \"../../Pagination\";\r\n\r\nexport interface ICertificateOfRegistration {\r\n  licence_id: string;\r\n  reg_no: string;\r\n  licence_type: string;\r\n  licence_name: string;\r\n  valid_application_date: string;\r\n  site_name: string;\r\n  site_computed: string;\r\n  local_authority_org_name: string;\r\n  date_of_licence: string;\r\n  licence_status: string;\r\n  licence_application_status: string;\r\n  main_class_of_activity: string;\r\n  waste_category: string;\r\n  expiry_date: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationDetails {\r\n  licence_id: string;\r\n  reg_no: string;\r\n  licence_type: string;\r\n  licence_name: string;\r\n  valid_application_date: string;\r\n  site_name: string;\r\n  site_computed: string;\r\n  local_authority_org_name: string;\r\n  date_of_licence: string;\r\n  licence_status: string;\r\n  licence_application_status: string;\r\n  main_class_of_activity: string;\r\n  waste_category: string;\r\n  expiry_date: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationDetailsResponse {\r\n  response: FetchResponse;\r\n  certificateOfRegistration?: ICertificateOfRegistrationDetails;\r\n}\r\n\r\nexport async function GetCertificateOfRegistrationByIdFetchUrl(\r\n  licence_id: string\r\n): Promise<ICertificateOfRegistrationDetailsResponse> {\r\n  var url = `${API_URL}/Licence/corbyid?licence_id=${licence_id}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n\r\n  if (!response.ok) {\r\n    return {\r\n      response: {\r\n        ok: false,\r\n        httpStatusCode: response.status,\r\n        httpErr: response.statusText,\r\n      },\r\n    };\r\n  }\r\n\r\n  var body = <ICertificateOfRegistrationDetails>await response.json();\r\n\r\n  const certificateOfRegistration = <ICertificateOfRegistrationDetails>{\r\n    licence_id: body.licence_id,\r\n    reg_no: body.reg_no,\r\n    licence_type: body.licence_type,\r\n    licence_name: body.licence_name,\r\n    valid_application_date: body.valid_application_date,\r\n    site_name: body.site_name,\r\n    site_computed: body.site_computed,\r\n    local_authority_org_name: body.local_authority_org_name,\r\n    date_of_licence: body.date_of_licence,\r\n    licence_status: body.licence_status,\r\n    licence_application_status: body.licence_application_status,\r\n    main_class_of_activity: body.main_class_of_activity,\r\n    waste_category: body.waste_category,\r\n    expiry_date: body.expiry_date,\r\n  };\r\n\r\n  return <ICertificateOfRegistrationDetailsResponse>{\r\n    response: {},\r\n    certificateOfRegistration: certificateOfRegistration,\r\n  };\r\n}\r\n\r\nconst convertColumnNameToFilterParam = (filterName: string) => {\r\n  switch (filterName) {\r\n    case \"licence_status\":\r\n      return \"status\";\r\n    case \"local_authority_org_name\":\r\n      return \"local_authority\";\r\n    case \"waste_category\":\r\n      return \"waste_category\";\r\n    case \"main_class_of_activity\":\r\n      return \"class_of_activity\";\r\n    default:\r\n      return filterName;\r\n  }\r\n};\r\n\r\nexport const GetCertificatesOfRegistrationFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n\r\n      if (f.value != \"All\")\r\n        params += `&${convertColumnNameToFilterParam(filterId)}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Date Received\":\r\n        orderByParam = \"date\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"regno\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n      orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Licence/corlicenceslist${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/certificates-of-registration`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetCertificatesOfRegistrationCsv = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n\r\n      if (f.value != \"All\")\r\n        params += `&${convertColumnNameToFilterParam(filterId)}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Date Received\":\r\n        orderByParam = \"date\";\r\n        break;\r\n\r\n      case \"Reg Number\":\r\n      default:\r\n        orderByParam = \"regno\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n      orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Licence/corlicenceslistcsv${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/certificates-of-registration`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFetchUrl = (\r\n  licenceId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `?licence_id=${licenceId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Document/listbylicenceid${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-documents`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport interface ICertificateOfRegistrationStatusFilterValue {\r\n  status: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationStatusesList extends PageResult {\r\n  list: ICertificateOfRegistrationStatusFilterValue[];\r\n}\r\n\r\nexport async function GetStatusFilterValues(): Promise<ICertificateOfRegistrationStatusesList> {\r\n  let url = `${API_URL}/Licence/corlicencestatusfilter`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-licences-status-filter`;\r\n  }\r\n\r\n  let response = await fetch(url);\r\n  let body = <ICertificateOfRegistrationStatusesList>await response.json();\r\n  body.list = body.list.map((item) => {\r\n    return <ICertificateOfRegistrationStatusFilterValue>{\r\n      status: item.status,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationLocalAuthorityValue {\r\n  local_authority: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationLocalAuthoritiesList\r\n  extends PageResult {\r\n  list: ICertificateOfRegistrationLocalAuthorityValue[];\r\n}\r\n\r\nexport async function GetLocalAuthorityFilterValues(): Promise<ICertificateOfRegistrationLocalAuthoritiesList> {\r\n  let url = `${API_URL}/Licence/corlicencelocalauthoritiesfilter`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-licences-local-authorities-filter`;\r\n  }\r\n\r\n  let response = await fetch(url);\r\n  let body = <ICertificateOfRegistrationLocalAuthoritiesList>(\r\n    await response.json()\r\n  );\r\n  body.list = body.list.map((item) => {\r\n    return <ICertificateOfRegistrationLocalAuthorityValue>{\r\n      local_authority: item.local_authority,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationWasteCategoryValue {\r\n  waste_category: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationWasteCategoriesList\r\n  extends PageResult {\r\n  list: ICertificateOfRegistrationWasteCategoryValue[];\r\n}\r\n\r\nexport async function GetWasteCategoryFilterValues(): Promise<ICertificateOfRegistrationWasteCategoriesList> {\r\n  let url = `${API_URL}/Licence/corlicencewastecategoriesfilter`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-licences-waste-categories-filter`;\r\n  }\r\n\r\n  let response = await fetch(url);\r\n  let body = <ICertificateOfRegistrationWasteCategoriesList>(\r\n    await response.json()\r\n  );\r\n  body.list = body.list.map((item) => {\r\n    return <ICertificateOfRegistrationWasteCategoryValue>{\r\n      waste_category: item.waste_category,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationClassOfActivityValue {\r\n  class_of_activity: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationClassesOfActivityList\r\n  extends PageResult {\r\n  list: ICertificateOfRegistrationClassOfActivityValue[];\r\n}\r\n\r\nexport async function GetClassOfActivityFilterValues(): Promise<ICertificateOfRegistrationClassesOfActivityList> {\r\n  let url = `${API_URL}/Licence/corlicenceclassessofactivitiesfilter`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/cor-licences-classes-of-activity-filter`;\r\n  }\r\n\r\n  let response = await fetch(url);\r\n  let body = <ICertificateOfRegistrationClassesOfActivityList>(\r\n    await response.json()\r\n  );\r\n  body.list = body.list.map((item) => {\r\n    return <ICertificateOfRegistrationClassOfActivityValue>{\r\n      class_of_activity: item.class_of_activity,\r\n    };\r\n  });\r\n  return body;\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetCertificateOfRegistrationByIdFetchUrl,\r\n  ICertificateOfRegistrationDetailsResponse,\r\n} from \"../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface CertificateOfRegistrationState {\r\n  fetchStatus: string;\r\n  error: any;\r\n  certificateOfRegistrationResponse?: ICertificateOfRegistrationDetailsResponse;\r\n}\r\n\r\nconst initialState: CertificateOfRegistrationState = {\r\n  error: undefined,\r\n  fetchStatus: \"Loading...\",\r\n  certificateOfRegistrationResponse: undefined,\r\n};\r\n\r\nexport const loadCertificateOfRegistrationAsync = createAsyncThunk(\r\n  \"certificateOfRegistration/load\",\r\n  async (licenseId: string) => {\r\n    const response = await GetCertificateOfRegistrationByIdFetchUrl(licenseId);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const certificateOfRegistrationSlice = createSlice({\r\n  name: \"certificateOfRegistration\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadCertificateOfRegistrationAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(\r\n        loadCertificateOfRegistrationAsync.fulfilled,\r\n        (state, action) => {\r\n          state.fetchStatus = \"idle\";\r\n          state.certificateOfRegistrationResponse = action.payload;\r\n        }\r\n      )\r\n      .addCase(loadCertificateOfRegistrationAsync.rejected, (state, action) => {\r\n        state.fetchStatus = \"rejected\";\r\n        state.error = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectCertificateOfRegistrationResponse = (state: RootState) =>\r\n  state.certificateOfRegistrationResponse;\r\n\r\nexport default certificateOfRegistrationSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetClassOfActivityFilterValues,\r\n  GetLocalAuthorityFilterValues,\r\n  GetStatusFilterValues,\r\n  GetWasteCategoryFilterValues,\r\n  ICertificateOfRegistrationClassesOfActivityList,\r\n  ICertificateOfRegistrationLocalAuthoritiesList,\r\n  ICertificateOfRegistrationStatusesList,\r\n  ICertificateOfRegistrationWasteCategoriesList,\r\n} from \"../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface CertificateOfRegistrationListState {\r\n  fetchStatus: string;\r\n  error: any;\r\n  statusFilterValues: ICertificateOfRegistrationStatusesList;\r\n  localAuthorityFilterValues: ICertificateOfRegistrationLocalAuthoritiesList;\r\n  wasteCategoryFilterValues: ICertificateOfRegistrationWasteCategoriesList;\r\n  classOfActivityFilterValues: ICertificateOfRegistrationClassesOfActivityList;\r\n}\r\n\r\nconst initialState: CertificateOfRegistrationListState = {\r\n  error: undefined,\r\n  fetchStatus: \"Loading...\",\r\n  statusFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n  localAuthorityFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n  wasteCategoryFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n  classOfActivityFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n};\r\n\r\nexport const loadCertificateOfRegistrationFilterValuesAsync = createAsyncThunk(\r\n  \"certificateOfRegistrationFilterValues/load\",\r\n  async () => {\r\n    let statusFilterValues = await GetStatusFilterValues();\r\n    let localAuthorityFilterValues = await GetLocalAuthorityFilterValues();\r\n    let wasteCategoryFilterValues = await GetWasteCategoryFilterValues();\r\n    let classOfActivityFilterValues = await GetClassOfActivityFilterValues();\r\n\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return {\r\n      statusFilterValues: statusFilterValues,\r\n      localAuthorityFilterValues: localAuthorityFilterValues,\r\n      wasteCategoryFilterValues: wasteCategoryFilterValues,\r\n      classOfActivityFilterValues: classOfActivityFilterValues,\r\n    };\r\n  }\r\n);\r\n\r\nexport const certificateOfRegistrationFilterValuesSlice = createSlice({\r\n  name: \"certificateOfRegistrationFilterValues\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(\r\n        loadCertificateOfRegistrationFilterValuesAsync.pending,\r\n        (state) => {\r\n          state.fetchStatus = \"loading\";\r\n        }\r\n      )\r\n      .addCase(\r\n        loadCertificateOfRegistrationFilterValuesAsync.fulfilled,\r\n        (state, action) => {\r\n          state.fetchStatus = \"idle\";\r\n          state.statusFilterValues = action.payload.statusFilterValues;\r\n          state.localAuthorityFilterValues =\r\n            action.payload.localAuthorityFilterValues;\r\n          state.wasteCategoryFilterValues =\r\n            action.payload.wasteCategoryFilterValues;\r\n          state.classOfActivityFilterValues =\r\n            action.payload.classOfActivityFilterValues;\r\n        }\r\n      )\r\n      .addCase(\r\n        loadCertificateOfRegistrationFilterValuesAsync.rejected,\r\n        (state, action) => {\r\n          state.fetchStatus = \"rejected\";\r\n          state.error = action.payload;\r\n        }\r\n      );\r\n  },\r\n});\r\n\r\nexport const selectCertificateOfRegistrationFilterValuesResponse = (\r\n  state: RootState\r\n) => state.certificateOfRegistrationListResponse;\r\n\r\nexport default certificateOfRegistrationFilterValuesSlice.reducer;\r\n","import { EpaGridOrderByFetchParams } from \"../../leap-components/Grid/EpaGridProps\";\r\nimport { API_URL } from \"./../Config\";\r\nimport { FetchResponse } from \"../FetchResponse\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IAbstraction {\r\n  licenceid: string;\r\n  registernumber: string;\r\n  sitecomputedaddress: string;\r\n  organisationname: string;\r\n  abstractionpurpose: string;\r\n  otherabstractionpurpose: string;\r\n  otherlegislation: string;\r\n  restrictionsexist: boolean;\r\n  restrictionsdetails: string;\r\n  impoundmenttype: string;\r\n  maximumdailyvolume: number;\r\n  licencestatus: string;\r\n  licencesubstatus: string;\r\n  county: string;\r\n  openforsubmissions: number;\r\n  openforsubmissionstext: string;\r\n  abstractionname: string;\r\n  licenceprofileid: string;\r\n  numberofabspoints: number;\r\n  applicationreceiveddate: string;\r\n  licenceissueddate: string;\r\n}\r\n\r\nexport interface IAbstractionDetails {\r\n  licenceid: string;\r\n  registernumber: string;\r\n  sitecomputedaddress: string;\r\n  organisationname: string;\r\n  licencestatus: string;\r\n  county: string;\r\n  openforsubmissions: number;\r\n  openforsubmissionstext: string;\r\n  abstractionpurpose: string;\r\n  maximumdailyvolume: number;\r\n  applicationreceiveddate: string;\r\n  licenceissueddate: string;\r\n}\r\n\r\nexport interface IAbstractionResponse {\r\n  response: FetchResponse;\r\n  abstraction?: IAbstractionDetails;\r\n}\r\n\r\nexport async function GetAbstractionByRegnoFetchUrl(\r\n  reg_no: string\r\n): Promise<IAbstractionResponse> {\r\n  var url = `${API_URL}/Licence/absbyregno?reg_no=${reg_no}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/abs-licence-details`;\r\n  }\r\n\r\n  var response = await fetch(url);\r\n\r\n  if (!response.ok) {\r\n    return {\r\n      response: {\r\n        ok: false,\r\n        httpStatusCode: response.status,\r\n        httpErr: response.statusText,\r\n      },\r\n    };\r\n  }\r\n\r\n  var body = <IAbstractionDetails>await response.json();\r\n\r\n  const abstraction = <IAbstractionDetails>{\r\n    licenceid: body.licenceid,\r\n    registernumber: body.registernumber,\r\n    sitecomputedaddress: body.sitecomputedaddress,\r\n    organisationname: body.organisationname,\r\n    abstractionpurpose: body.abstractionpurpose,\r\n    maximumdailyvolume: body.maximumdailyvolume,\r\n    licencestatus: body.licencestatus,\r\n    county: body.county,\r\n    openforsubmissions: body.openforsubmissions,\r\n    openforsubmissionstext: body.openforsubmissionstext,\r\n    applicationreceiveddate: body.applicationreceiveddate,\r\n    licenceissueddate: body.licenceissueddate,\r\n  };\r\n\r\n  return <IAbstractionResponse>{\r\n    response: {},\r\n    abstraction: abstraction,\r\n  };\r\n}\r\n\r\nexport const GetAbstractionsFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  filters: any\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Licence/abslicenceslist${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/abs-licences`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredAbstractionsFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n\r\n      if (f.value != \"All\") params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Open For Submissions\":\r\n        orderByParam = \"openforsubmissions\";\r\n        break;\r\n\r\n      case \"Register Number\":\r\n      default:\r\n        orderByParam = \"registernumber\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n      orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Licence/abslicenceslist${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/abs-licences`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredAbstractionsCsv = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any,\r\n  orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n  let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  if (orderBy) {\r\n    let orderByParam = \"\";\r\n    switch (orderBy?.orderByName) {\r\n      case \"Open For Submissions\":\r\n        orderByParam = \"openforsubmissions\";\r\n        break;\r\n\r\n      case \"Register Number\":\r\n      default:\r\n        orderByParam = \"registernumber\";\r\n    }\r\n\r\n    params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n      orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n    }`;\r\n  }\r\n\r\n  let url = `${API_URL}/Licence/abslicenceslistcsv${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/abs-licences`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFetchUrl = (\r\n  AbstractionId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `?licence_id=${AbstractionId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Document/listbylicenceid${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/documents`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFilteredFetchUrl = (\r\n  AbstractionId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `?licence_id=${AbstractionId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (filters) {\r\n    for (var i = 0; i < filters.length; i++) {\r\n      var f = filters[i];\r\n      let filterId = f.id;\r\n      params += `&${filterId}=${f.value}`;\r\n    }\r\n  }\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Document/listbylicenceidfiltered${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/documents`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport const GetAbstractionPointsCsvUrl = () => {\r\n  let params = `?page=1&per_page=10000`;\r\n\r\n  let url = `${API_URL}/Licence/abspointslistcsv${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/abs-licences`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n  GetAbstractionByRegnoFetchUrl,\r\n  IAbstractionResponse,\r\n} from \"../../../../api/Abstractions/IAbstractions\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface AbstractionState {\r\n  fetchStatus: string;\r\n  error: any;\r\n  abstractionResponse?: IAbstractionResponse;\r\n}\r\n\r\nconst initialState: AbstractionState = {\r\n  error: undefined,\r\n  fetchStatus: \"Loading...\",\r\n  abstractionResponse: undefined,\r\n};\r\n\r\nexport const loadAbstractionAsync = createAsyncThunk(\r\n  \"abstraction/load\",\r\n  async (regNo: string) => {\r\n    const response = await GetAbstractionByRegnoFetchUrl(regNo);\r\n    // The value we return becomes the `fulfilled` action payload\r\n    return response;\r\n  }\r\n);\r\n\r\nexport const abstractionSlice = createSlice({\r\n  name: \"abstraction\",\r\n  initialState,\r\n  // The `reducers` field lets us define reducers and generate associated actions\r\n  reducers: {},\r\n  // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n  // including actions generated by createAsyncThunk or in other slices.\r\n  extraReducers: (builder) => {\r\n    builder\r\n      .addCase(loadAbstractionAsync.pending, (state) => {\r\n        state.fetchStatus = \"loading\";\r\n      })\r\n      .addCase(loadAbstractionAsync.fulfilled, (state, action) => {\r\n        state.fetchStatus = \"idle\";\r\n        state.abstractionResponse = action.payload;\r\n      })\r\n      .addCase(loadAbstractionAsync.rejected, (state, action) => {\r\n        state.fetchStatus = \"rejected\";\r\n        state.error = action.payload;\r\n      });\r\n  },\r\n});\r\n\r\nexport const selectAbstractionResponse = (state: RootState) =>\r\n  state.abstractionResponse;\r\n\r\nexport default abstractionSlice.reducer;\r\n","import { configureStore, ThunkAction, Action } from \"@reduxjs/toolkit\";\r\nimport counterReducer from \"./slices/counter\";\r\nimport legalReducer from \"./slices/legal\";\r\nimport licenceProfileReducer from \"./slices/licenceProfile\";\r\nimport complianceOptionsReducer from \"./slices/compliance\";\r\nimport siteVisitReducer from \"./slices/siteVisit\";\r\nimport licenseeReturnReducer from \"./slices/licenseeReturn\";\r\nimport requestForInformationReducer from \"./slices/requestForInformation\";\r\nimport findingAndRecommendationReducer from \"./slices/findingAndRecommendation\";\r\nimport instructionReducer from \"./slices/instruction\";\r\nimport edenMessageReducer from \"./slices/edenMessage\";\r\nimport complianceInvestigationReducer from \"./slices/complianceInvestigation\";\r\nimport incidentReducer from \"./slices/incident\";\r\nimport complaintReducer from \"./slices/complaint\";\r\nimport incidentUpdateRequestReducer from \"./slices/incidentUpdateRequest\";\r\nimport meetingReducer from \"./slices/meeting\";\r\nimport nonComplianceReducer from \"./slices/nonCompliance\";\r\nimport actionOrInstructionReducer from \"./slices/actionOrInstruction\";\r\nimport epaCorrespondenceReducer from \"./slices/epaCorrespondence\";\r\nimport thirdPartyCorrespondenceReducer from \"./slices/thirdPartyCorrespondence\";\r\nimport notifierReducer from \"../apps/circulareconomy/redux/slices/notifier\";\r\nimport certificationOfRegistrationReducer from \"../apps/circulareconomy/redux/slices/certificateOfRegistration\";\r\nimport certificateOfRegistrationListReducer from \"../apps/circulareconomy/redux/slices/certificateOfRegistrationList\";\r\nimport abstractionReducer from \"../apps/abstraction/redux/slices/abstraction\";\r\n\r\nexport const store = configureStore({\r\n  reducer: {\r\n    counter: counterReducer,\r\n    legal: legalReducer,\r\n    licenceProfileResponse: licenceProfileReducer,\r\n    complianceOptions: complianceOptionsReducer,\r\n    siteVisit: siteVisitReducer,\r\n    licenseeReturn: licenseeReturnReducer,\r\n    requestForInformation: requestForInformationReducer,\r\n    findingAndRecommendationReducer: findingAndRecommendationReducer,\r\n    instruction: instructionReducer,\r\n    edenMessage: edenMessageReducer,\r\n    complianceInvestigation: complianceInvestigationReducer,\r\n    incident: incidentReducer,\r\n    complaint: complaintReducer,\r\n    incidentUpdateRequest: incidentUpdateRequestReducer,\r\n    meeting: meetingReducer,\r\n    nonCompliance: nonComplianceReducer,\r\n    actionOrInstruction: actionOrInstructionReducer,\r\n    epaCorrespondence: epaCorrespondenceReducer,\r\n    thirdPartyCorrespondence: thirdPartyCorrespondenceReducer,\r\n    notifierResponse: notifierReducer,\r\n    certificateOfRegistrationResponse: certificationOfRegistrationReducer,\r\n    certificateOfRegistrationListResponse: certificateOfRegistrationListReducer,\r\n    abstractionResponse: abstractionReducer,\r\n  },\r\n});\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport type RootState = ReturnType<typeof store.getState>;\r\nexport type AppThunk<ReturnType = void> = ThunkAction<\r\n  ReturnType,\r\n  RootState,\r\n  unknown,\r\n  Action<string>\r\n>;\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nconst resources = {\r\n  en: {\r\n    translation: {\r\n      Search: \"Search projects…\",\r\n      \"Welcome back\": \"Welcome back\",\r\n    },\r\n  },\r\n  fr: {\r\n    translation: {\r\n      Search: \"Rechercher…\",\r\n      \"Welcome back\": \"Bon retour\",\r\n    },\r\n  },\r\n  de: {\r\n    translation: {\r\n      Search: \"Suchen…\",\r\n      \"Welcome back\": \"Willkommen zurück\",\r\n    },\r\n  },\r\n  nl: {\r\n    translation: {\r\n      Search: \"Zoeken…\",\r\n      \"Welcome back\": \"Welkom terug\",\r\n    },\r\n  },\r\n};\r\n\r\ni18n.use(initReactI18next).init({\r\n  resources,\r\n  lng: \"en\",\r\n  fallbackLng: \"en\",\r\n  interpolation: {\r\n    escapeValue: false,\r\n  },\r\n});\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface AuthGuardType {\r\n  className?: string;\r\n  children: React.ReactNode;\r\n}\r\n\r\nconst Main = ({ className, children }: AuthGuardType) => (\r\n  <div className={classNames(\"main\", className)}>{children}</div>\r\n);\r\n\r\nexport default Main;\r\n","export const SIDEBAR_POSITION = {\r\n  LEFT: \"left\",\r\n  RIGHT: \"right\",\r\n};\r\n\r\nexport const SIDEBAR_BEHAVIOR = {\r\n  STICKY: \"sticky\",\r\n  FIXED: \"fixed\",\r\n  COMPACT: \"compact\",\r\n};\r\n\r\nexport const LAYOUT = {\r\n  FLUID: \"fluid\",\r\n  BOXED: \"boxed\",\r\n};\r\n\r\nexport const THEME = {\r\n  DEFAULT: \"default\",\r\n  COLORED: \"colored\",\r\n  DARK: \"dark\",\r\n  LIGHT: \"light\",\r\n};\r\n\r\nexport const THEME_PALETTE_LIGHT = {\r\n  primary: \"#3B82EC\",\r\n  \"primary-dark\": \"#1659c7\",\r\n  \"primary-light\": \"#84aef2\",\r\n  secondary: \"#495057\",\r\n  success: \"#4BBF73\",\r\n  info: \"#1F9BCF\",\r\n  warning: \"#f0ad4e\",\r\n  danger: \"#d9534f\",\r\n  white: \"#fff\",\r\n  \"gray-100\": \"#f4f7f9\",\r\n  \"gray-200\": \"#e2e8ee\",\r\n  \"gray-300\": \"#dee6ed\",\r\n  \"gray-400\": \"#ced4da\",\r\n  \"gray-500\": \"#adb5bd\",\r\n  \"gray-600\": \"#6c757d\",\r\n  \"gray-700\": \"#495057\",\r\n  \"gray-800\": \"#020202\",\r\n  \"gray-900\": \"#212529\",\r\n  black: \"#000\",\r\n};\r\n\r\nexport const THEME_PALETTE_DARK = {\r\n  ...THEME_PALETTE_LIGHT,\r\n  \"primary-dark\": \"#84aef2\",\r\n  \"primary-light\": \"#1659c7\",\r\n  white: \"#293042\",\r\n  \"gray-100\": \"#3e4555\",\r\n  \"gray-200\": \"#545968\",\r\n  \"gray-300\": \"#696e7b\",\r\n  \"gray-400\": \"#7f838e\",\r\n  \"gray-500\": \"#9498a1\",\r\n  \"gray-600\": \"#a9acb3\",\r\n  \"gray-700\": \"#bfc1c6\",\r\n  \"gray-800\": \"#d4d6d9\",\r\n  \"gray-900\": \"#eaeaec\",\r\n  black: \"#fff\",\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\n\r\nfunction useOuterClick(callback: (e: React.MouseEvent<HTMLElement>) => void) {\r\n  // Initialize mutable ref, which stores callback\r\n  const callbackRef = useRef<typeof callback>();\r\n  // returned to client, who marks \"border\" element\r\n  const innerRef = useRef<any>();\r\n\r\n  // Update callback on each render, so second useEffect has access to current value\r\n  useEffect(() => {\r\n    callbackRef.current = callback;\r\n  });\r\n\r\n  useEffect(() => {\r\n    document.addEventListener(\"click\", handleClick);\r\n    return () => document.removeEventListener(\"click\", handleClick);\r\n    function handleClick(e: any) {\r\n      if (\r\n        innerRef.current &&\r\n        callbackRef.current &&\r\n        !innerRef.current.contains(e.target)\r\n      )\r\n        callbackRef.current(e);\r\n    }\r\n  }, []);\r\n\r\n  return innerRef;\r\n}\r\n\r\nexport default useOuterClick;\r\n","import { useState } from \"react\";\r\n\r\nfunction useLocalStorage(key: any, initialValue: any) {\r\n  // State to store our value\r\n  // Pass initial state function to useState so logic is only executed once\r\n  const [storedValue, setStoredValue] = useState(() => {\r\n    try {\r\n      // Get from local storage by key\r\n      const item = window.localStorage.getItem(key);\r\n      // Parse stored json or if none return initialValue\r\n      return item ? JSON.parse(item) : initialValue;\r\n    } catch (error) {\r\n      // If error also return initialValue\r\n      console.log(error);\r\n      return initialValue;\r\n    }\r\n  });\r\n\r\n  // Return a wrapped version of useState's setter function that\r\n  // persists the new value to localStorage.\r\n  const setValue = (value: any) => {\r\n    try {\r\n      // Allow value to be a function so we have same API as useState\r\n      const valueToStore =\r\n        value instanceof Function ? value(storedValue) : value;\r\n      // Save state\r\n      setStoredValue(valueToStore);\r\n      // Save to local storage\r\n      window.localStorage.setItem(key, JSON.stringify(valueToStore));\r\n    } catch (error) {\r\n      // A more advanced implementation would handle the error case\r\n      console.log(error);\r\n    }\r\n  };\r\n\r\n  return [storedValue, setValue];\r\n}\r\n\r\nexport default useLocalStorage;\r\n","import { useEffect } from \"react\";\r\nimport useLocalStorage from \"./useLocalStorage\";\r\n\r\nfunction useSettingsState(key: any, initialValue: string) {\r\n  const [value, setValue] = useLocalStorage(key, initialValue);\r\n\r\n  useEffect(() => {\r\n    // Set data attribute on body element\r\n    document.body.dataset[key] = value;\r\n\r\n    // Replace style sheet if dark theme gets toggled\r\n    if (key === \"theme\") {\r\n      const theme = value === \"dark\" ? \"dark\" : \"light\";\r\n      const stylesheet = document.querySelector(\".js-stylesheet\");\r\n      stylesheet!.setAttribute(\"href\", `/css/${theme}.css`);\r\n    }\r\n  }, [value, key]);\r\n\r\n  return [value, setValue];\r\n}\r\n\r\nexport default useSettingsState;\r\n","import { TypedUseSelectorHook, useSelector } from \"react-redux\";\r\nimport type { RootState } from \"../redux/store\";\r\n\r\n// Use throughout your app instead of plain `useSelector`\r\nconst useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\r\n\r\nexport default useAppSelector;\r\n","import React from \"react\";\r\nimport { Navigate, useNavigate } from \"react-router-dom\";\r\nimport { THEME } from \"../../constants\";\r\nimport useSettingsState from \"../../hooks/useSettingsState\";\r\n\r\nimport useAppSelector from \"../../hooks/useAppSelector\";\r\n\r\nimport { selectAcceptedTermsOfService } from \"../../redux/slices/legal\";\r\n\r\nconst initialState = {\r\n  theme: THEME.DEFAULT,\r\n  setTheme: (layout: string) => {},\r\n};\r\n\r\nconst ThemeContext = React.createContext(initialState);\r\n\r\ninterface ThemeProviderType {\r\n  children: React.ReactNode;\r\n}\r\n\r\nfunction ThemeProvider({ children }: ThemeProviderType) {\r\n  const [theme, setTheme] = useSettingsState(\"theme\", THEME.DEFAULT);\r\n\r\n  const acceptedTermsOfService = useAppSelector(selectAcceptedTermsOfService);\r\n\r\n  const currentUrl = window.location.href;\r\n  if (currentUrl.toLowerCase().indexOf(\"/confirm\") <= 0) {\r\n    if (!acceptedTermsOfService) {\r\n      var newUrl = \"/confirm?returnUrl=\" + encodeURIComponent(currentUrl);\r\n      return <Navigate to={newUrl} />;\r\n    }\r\n  }\r\n\r\n  return (\r\n    <ThemeContext.Provider\r\n      value={{\r\n        theme,\r\n        setTheme,\r\n      }}\r\n    >\r\n      {children}\r\n    </ThemeContext.Provider>\r\n  );\r\n}\r\n\r\nexport { ThemeProvider, ThemeContext };\r\n","import { useContext } from \"react\";\r\nimport { ThemeContext } from \"../apps/leap/ThemeContext\";\r\n\r\nconst useTheme = () => useContext(ThemeContext);\r\n\r\nexport default useTheme;\r\n","import React, { useState } from \"react\";\r\n\r\nimport { SIDEBAR_POSITION, SIDEBAR_BEHAVIOR } from \"../constants\";\r\nimport useSettingsState from \"../hooks/useSettingsState\";\r\n\r\nconst initialState = {\r\n  isOpen: true,\r\n  setIsOpen: (open: boolean) => {},\r\n  setPosition: (position: string) => {},\r\n  setBehavior: (behavior: string) => {},\r\n  position: SIDEBAR_POSITION.LEFT,\r\n  behavior: SIDEBAR_BEHAVIOR.STICKY,\r\n};\r\n\r\nconst SidebarContext = React.createContext(initialState);\r\n\r\ninterface SidebarProviderType {\r\n  children: React.ReactNode;\r\n}\r\n\r\nfunction SidebarProvider({ children }: SidebarProviderType) {\r\n  const [isOpen, setIsOpen] = useState(true);\r\n  const [position, setPosition] = useSettingsState(\r\n    \"sidebarPosition\",\r\n    SIDEBAR_POSITION.LEFT\r\n  );\r\n  const [behavior, setBehavior] = useSettingsState(\r\n    \"sidebarBehavior\",\r\n    SIDEBAR_BEHAVIOR.STICKY\r\n  );\r\n\r\n  return (\r\n    <SidebarContext.Provider\r\n      value={{\r\n        isOpen,\r\n        setIsOpen,\r\n        position,\r\n        setPosition,\r\n        behavior,\r\n        setBehavior,\r\n      }}\r\n    >\r\n      {children}\r\n    </SidebarContext.Provider>\r\n  );\r\n}\r\n\r\nexport { SidebarProvider, SidebarContext };\r\n","import { useContext } from \"react\";\r\nimport { SidebarContext } from \"../contexts/SidebarContext\";\r\n\r\nconst useSidebar = () => useContext(SidebarContext);\r\n\r\nexport default useSidebar;\r\n","import React from \"react\";\r\n\r\nimport { LAYOUT } from \"../constants\";\r\nimport useSettingsState from \"../hooks/useSettingsState\";\r\n\r\nconst initialState = {\r\n  layout: LAYOUT.FLUID,\r\n  setLayout: (layout: string) => {},\r\n};\r\n\r\nconst LayoutContext = React.createContext(initialState);\r\n\r\ninterface LayoutProviderType {\r\n  children: React.ReactNode;\r\n}\r\n\r\nfunction LayoutProvider({ children }: LayoutProviderType) {\r\n  const [layout, setLayout] = useSettingsState(\"layout\", LAYOUT.FLUID);\r\n\r\n  return (\r\n    <LayoutContext.Provider\r\n      value={{\r\n        layout,\r\n        setLayout,\r\n      }}\r\n    >\r\n      {children}\r\n    </LayoutContext.Provider>\r\n  );\r\n}\r\n\r\nexport { LayoutProvider, LayoutContext };\r\n","import { useContext } from \"react\";\r\nimport { LayoutContext } from \"../contexts/LayoutContext\";\r\n\r\nconst useLayout = () => useContext(LayoutContext);\r\n\r\nexport default useLayout;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport { Alert, Button } from \"react-bootstrap\";\r\n\r\nimport { Sliders, BookOpen } from \"react-feather\";\r\n\r\nimport {\r\n  SIDEBAR_POSITION,\r\n  SIDEBAR_BEHAVIOR,\r\n  LAYOUT,\r\n  THEME,\r\n} from \"../constants\";\r\nimport useOuterClick from \"../hooks/useOuterClick\";\r\nimport useTheme from \"../hooks/useTheme\";\r\nimport useSidebar from \"../hooks/useSidebar\";\r\nimport useLayout from \"../hooks/useLayout\";\r\n\r\nconst themeOptions = [\r\n  {\r\n    name: \"Default\",\r\n    value: THEME.DEFAULT,\r\n  },\r\n  {\r\n    name: \"Colored\",\r\n    value: THEME.COLORED,\r\n  },\r\n  {\r\n    name: \"Dark\",\r\n    value: THEME.DARK,\r\n  },\r\n  {\r\n    name: \"Light\",\r\n    value: THEME.LIGHT,\r\n  },\r\n];\r\n\r\nconst sidebarPositionOptions = [\r\n  {\r\n    name: \"Left\",\r\n    value: SIDEBAR_POSITION.LEFT,\r\n  },\r\n  {\r\n    name: \"Right\",\r\n    value: SIDEBAR_POSITION.RIGHT,\r\n  },\r\n];\r\n\r\nconst sidebarBehaviorOptions = [\r\n  {\r\n    name: \"Sticky\",\r\n    value: SIDEBAR_BEHAVIOR.STICKY,\r\n  },\r\n  {\r\n    name: \"Fixed\",\r\n    value: SIDEBAR_BEHAVIOR.FIXED,\r\n  },\r\n  {\r\n    name: \"Compact\",\r\n    value: SIDEBAR_BEHAVIOR.COMPACT,\r\n  },\r\n];\r\n\r\nconst layoutOptions = [\r\n  {\r\n    name: \"Fluid\",\r\n    value: LAYOUT.FLUID,\r\n  },\r\n  {\r\n    name: \"Boxed\",\r\n    value: LAYOUT.BOXED,\r\n  },\r\n];\r\n\r\nfunction useQuery() {\r\n  return new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst Settings = () => {\r\n  const query = useQuery();\r\n  const [isOpen, setIsOpen] = useState(false);\r\n\r\n  const { theme, setTheme } = useTheme();\r\n  const { position, setPosition, behavior, setBehavior } = useSidebar();\r\n  const { layout, setLayout } = useLayout();\r\n\r\n  const innerRef = useOuterClick(() => {\r\n    setIsOpen(false);\r\n  });\r\n\r\n  const setSettingByQueryParam = (name: string, set: any) => {\r\n    const value = query.get(name);\r\n    if (value) {\r\n      set(value);\r\n    }\r\n  };\r\n\r\n  // Read from query parameter (e.g. ?theme=dark)\r\n  // only for demo purposes\r\n  useEffect(() => {\r\n    setSettingByQueryParam(\"theme\", setTheme);\r\n    setSettingByQueryParam(\"sidebarPosition\", setPosition);\r\n    setSettingByQueryParam(\"sidebarBehavior\", setBehavior);\r\n    setSettingByQueryParam(\"layout\", setLayout);\r\n\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, []);\r\n\r\n  return (\r\n    <div\r\n      ref={innerRef}\r\n      className={`settings js-settings ${isOpen ? \"open\" : \"\"}`}\r\n    >\r\n      <div className=\"settings-toggle\">\r\n        <div\r\n          className=\"settings-toggle-option settings-toggle-option-text js-settings-toggle\"\r\n          title=\"Theme Builder\"\r\n          onClick={() => setIsOpen(true)}\r\n        >\r\n          <Sliders className=\"feather align-middle\" /> Builder\r\n        </div>\r\n        <a\r\n          className=\"settings-toggle-option\"\r\n          title=\"Documentation\"\r\n          href=\"/docs\"\r\n          target=\"_blank\"\r\n        >\r\n          <BookOpen className=\"feather align-middle\" />\r\n        </a>\r\n      </div>\r\n      <div className=\"settings-panel\">\r\n        <div className=\"settings-content\">\r\n          <div className=\"settings-title d-flex align-items-center\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn-close float-right js-settings-toggle\"\r\n              aria-label=\"Close\"\r\n              onClick={() => setIsOpen(false)}\r\n            ></button>\r\n            <h4 className=\"mb-0 ms-2 d-inline-block\">Theme Builder</h4>\r\n          </div>\r\n          <div className=\"settings-body\">\r\n            <Alert variant=\"primary\">\r\n              <div className=\"alert-message\">\r\n                <strong>Hey there!</strong> Set your own customized style below.\r\n                Choose the ones that best fits your needs.\r\n              </div>\r\n            </Alert>\r\n\r\n            <div className=\"mb-3\">\r\n              <span className=\"d-block font-size-lg fw-bold\">Color scheme</span>\r\n              <span className=\"d-block text-muted mb-2\">\r\n                The perfect color mode for your app.\r\n              </span>\r\n              <div className=\"row g-0 text-center mx-n1 mb-2\">\r\n                {themeOptions.map(({ name, value }) => (\r\n                  <div className=\"col-6\" key={value}>\r\n                    <label className=\"mx-1 d-block mb-1\">\r\n                      <input\r\n                        className=\"settings-scheme-label\"\r\n                        type=\"radio\"\r\n                        name=\"theme\"\r\n                        value={value}\r\n                        checked={theme === value}\r\n                        onChange={() => setTheme(value)}\r\n                      />\r\n                      <div className=\"settings-scheme\">\r\n                        <div\r\n                          className={`settings-scheme-theme settings-scheme-theme-${value}`}\r\n                        ></div>\r\n                      </div>\r\n                    </label>\r\n                    {name}\r\n                  </div>\r\n                ))}\r\n              </div>\r\n            </div>\r\n            <hr />\r\n            <div className=\"mb-3\">\r\n              <span className=\"d-block font-size-lg fw-bold\">\r\n                Sidebar position\r\n              </span>\r\n              <span className=\"d-block text-muted mb-2\">\r\n                Toggle the position of the sidebar.\r\n              </span>\r\n              <div>\r\n                {sidebarPositionOptions.map(({ name, value }) => (\r\n                  <label className=\"me-1\" key={value}>\r\n                    <input\r\n                      className=\"settings-button-label\"\r\n                      type=\"radio\"\r\n                      name=\"sidebarPosition\"\r\n                      value={value}\r\n                      checked={position === value}\r\n                      onChange={() => setPosition(value)}\r\n                    />\r\n                    <div className=\"settings-button\">{name}</div>\r\n                  </label>\r\n                ))}\r\n              </div>\r\n            </div>\r\n            <hr />\r\n            <div className=\"mb-3\">\r\n              <span className=\"d-block font-size-lg fw-bold\">\r\n                Sidebar behavior\r\n              </span>\r\n              <span className=\"d-block text-muted mb-2\">\r\n                Change the behavior of the sidebar.\r\n              </span>\r\n              <div>\r\n                {sidebarBehaviorOptions.map(({ name, value }) => (\r\n                  <label className=\"me-1\" key={value}>\r\n                    <input\r\n                      className=\"settings-button-label\"\r\n                      type=\"radio\"\r\n                      name=\"sidebarBehavior\"\r\n                      value={value}\r\n                      checked={behavior === value}\r\n                      onChange={() => setBehavior(value)}\r\n                    />\r\n                    <div className=\"settings-button\">{name}</div>\r\n                  </label>\r\n                ))}\r\n              </div>\r\n            </div>\r\n            <hr />\r\n            <div className=\"mb-3\">\r\n              <span className=\"d-block font-size-lg fw-bold\">Layout</span>\r\n              <span className=\"d-block text-muted mb-2\">\r\n                Toggle container layout system.\r\n              </span>\r\n              <div>\r\n                {layoutOptions.map(({ name, value }) => (\r\n                  <label className=\"me-1\" key={value}>\r\n                    <input\r\n                      className=\"settings-button-label\"\r\n                      type=\"radio\"\r\n                      name=\"layout\"\r\n                      value={value}\r\n                      checked={layout === value}\r\n                      onChange={() => setLayout(value)}\r\n                    />\r\n                    <div className=\"settings-button\">{name}</div>\r\n                  </label>\r\n                ))}\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"settings-footer\">\r\n            <div className=\"d-grid\">\r\n              <Button\r\n                as=\"a\"\r\n                rel=\"noreferrer\"\r\n                href=\"https://themes.getbootstrap.com/product/appstack-react-admin-dashboard-template/\"\r\n                target=\"_blank\"\r\n                variant=\"primary\"\r\n                size=\"lg\"\r\n              >\r\n                Purchase\r\n              </Button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Settings;\r\n","import React from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\n\r\nimport { Col, Container, Row } from \"react-bootstrap\";\r\n\r\nimport Main from \"../components/Main\";\r\nimport Settings from \"../components/Settings\";\r\n\r\nconst Auth: React.FC = ({ children }) => (\r\n  <React.Fragment>\r\n    <Main className=\"d-flex w-100 justify-content-center\">\r\n      <Container className=\"d-flex flex-column\">\r\n        <Row className=\"h-100\">\r\n          <Col sm=\"10\" md=\"8\" lg=\"6\" className=\"mx-auto d-table h-100\">\r\n            <div className=\"d-table-cell align-middle\">\r\n              {children}\r\n              <Outlet />\r\n            </div>\r\n          </Col>\r\n        </Row>\r\n      </Container>\r\n    </Main>\r\n    <Settings />\r\n  </React.Fragment>\r\n);\r\n\r\nexport default Auth;\r\n","import React from \"react\";\r\n\r\nconst Wrapper: React.FC = ({ children }) => (\r\n  <div className=\"wrapper\">{children}</div>\r\n);\r\n\r\nexport default Wrapper;\r\n","import React from \"react\";\r\n\r\nconst Content: React.FC = ({ children }) => (\r\n  <div className=\"content\">{children}</div>\r\n);\r\n\r\nexport default Content;\r\n","import React, { Fragment, ReactNode, useLayoutEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nfunction ScrollToTop({ children }: { children: ReactNode }) {\r\n  const location = useLocation();\r\n  useLayoutEffect(() => {\r\n    document.getElementsByTagName(\"body\")[0].scrollTop = 0;\r\n  }, [location.pathname]);\r\n  return <Fragment>{children}</Fragment>;\r\n}\r\n\r\nexport { ScrollToTop };\r\n","import React from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport Wrapper from \"../components/Wrapper\";\r\nimport Main from \"../components/Main\";\r\nimport Content from \"../components/Content\";\r\nimport { ScrollToTop } from \"../ScrollToTop\";\r\n\r\nconst LeapDashboard: React.FC = ({ children }) => (\r\n  <ScrollToTop>\r\n    <React.Fragment>\r\n      <Wrapper>\r\n        <Main>\r\n          <Content>\r\n            {children}\r\n            <Outlet />\r\n          </Content>\r\n        </Main>\r\n      </Wrapper>\r\n    </React.Fragment>\r\n  </ScrollToTop>\r\n);\r\n\r\nexport default LeapDashboard;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { Container } from \"react-bootstrap\";\r\n\r\nimport { Outlet } from \"react-router-dom\";\r\n\r\nconst LicenceProfileDashboard: React.FC = ({ children }) => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Licence Profile\" />\r\n    <Container fluid className=\"p-0\">\r\n      {children}\r\n      <Outlet />\r\n    </Container>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default LicenceProfileDashboard;\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nconst Page404 = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"404 Error\" />\r\n    <div className=\"text-center\">\r\n      <h1 className=\"display-1 fw-bold\">404</h1>\r\n      <p className=\"h1\">Page not found.</p>\r\n      <p className=\"h2 fw-normal mt-3 mb-4\">\r\n        The page you are looking for might have been removed.\r\n      </p>\r\n      <Link to=\"/\">\r\n        <Button variant=\"primary\" size=\"lg\">\r\n          Return to Home Page\r\n        </Button>\r\n      </Link>\r\n    </div>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default Page404;\r\n","import React from \"react\";\r\nimport { Card } from \"react-bootstrap\";\r\n\r\ninterface IEpaCard {\r\n  title?: string;\r\n  content?: JSX.Element;\r\n}\r\n\r\nconst EpaCard = ({ title, content }: IEpaCard) => (\r\n  <Card className=\"flex-fill w-100\">\r\n    <Card.Header>\r\n      <Card.Title>\r\n        <h4>{title}</h4>\r\n      </Card.Title>\r\n    </Card.Header>\r\n    <Card.Body className=\"pt-0\">{content}</Card.Body>\r\n  </Card>\r\n);\r\n\r\nexport default EpaCard;\r\n","import { Col, Form, Row } from \"react-bootstrap\";\r\n\r\ninterface IEpaField {\r\n  label: string;\r\n  value: string | JSX.Element;\r\n  labelClassName?: string;\r\n  valueClassName?: string;\r\n}\r\n\r\nconst EpaField = ({\r\n  label,\r\n  value,\r\n  labelClassName,\r\n  valueClassName,\r\n}: IEpaField) => {\r\n  if (!labelClassName) labelClassName = \"col-4 col-md-4\";\r\n\r\n  if (!valueClassName) valueClassName = \"col-8 col-md-8\";\r\n\r\n  return (\r\n    <Row>\r\n      <Col className={labelClassName}>\r\n        <Form.Label>{label}</Form.Label>\r\n      </Col>\r\n      <Col className={valueClassName}>{value}</Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default EpaField;\r\n","import { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\nimport EpaField from \"../../leap-components/EpaField\";\r\n\r\ninterface IActiveLicenceDetailsProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst ActiveLicenceDetails = ({\r\n  licenceProfile,\r\n}: IActiveLicenceDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <EpaField label={\"Version\"} value={licenceProfile.version} />\r\n      <EpaField label={\"Issued\"} value={licenceProfile.dateIssued} />\r\n      <EpaField label={\"Type\"} value={licenceProfile.type} />\r\n      <EpaField label={\"Status\"} value={licenceProfile.status} />\r\n      <EpaField label={\"Sub-status\"} value={licenceProfile.subStatus} />\r\n      <EpaField label={\"Sector\"} value={licenceProfile.sector} />\r\n      <EpaField label={\"Major Activity\"} value={licenceProfile.majorActivity} />\r\n      <EpaField label={\"IED Activity\"} value={licenceProfile.iedActivity} />\r\n    </div>\r\n  );\r\n\r\n  return <EpaCard title={\"Active Licence Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default ActiveLicenceDetails;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\n\r\ninterface IBreadCrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile }: IBreadCrumbProps) => {\r\n  const text = `${licenceProfile.organisation} - ${licenceProfile.profileNo}`;\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n          <Breadcrumb.Item active>{text}</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import { useState } from \"react\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\n\r\n//https://gist.github.com/srsandy/033aeb3d3f5b0cba3553fe65b6c0de09#file-globalfilter-js-L10\r\n\r\nconst ColumnFilter = ({ column }: any) => {\r\n  const { filterValue, setFilter } = column;\r\n  const [value, setValue] = useState(filterValue);\r\n  const onChange = useAsyncDebounce((value) => {\r\n    setFilter(value || undefined);\r\n  }, 300);\r\n  return (\r\n    <span>\r\n      <input\r\n        className=\"border-0 h-6 w-full text-black\"\r\n        placeholder=\"Search\"\r\n        value={value || \"\"}\r\n        onChange={(e) => {\r\n          setValue(e.target.value);\r\n          onChange(e.target.value);\r\n        }}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n\r\nexport default ColumnFilter;\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\n\r\nconst Spinner = () => (\r\n  <span style={{ color: foreGroundColor }}>\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-spin\" icon={faSpinner} />\r\n  </span>\r\n);\r\n\r\nexport { Spinner };\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport {\r\n  usePagination,\r\n  useTable,\r\n  useFilters,\r\n  useGlobalFilter,\r\n  TableOptions,\r\n} from \"react-table\";\r\nimport { Button, Col, Form, Pagination, Row, Table } from \"react-bootstrap\";\r\nimport ColumnFilter from \"./ColumnFilter\";\r\nimport { Spinner } from \"../../icons/Spinner\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n  faSort,\r\n  faSortDown,\r\n  faSortUp,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { EpaGridOrderBy, EpaGridOrderByFetchParams } from \"../EpaGridProps\";\r\n\r\n//https://react-table-v7.tanstack.com/docs/examples/data-driven-classes-and-styles\r\n\r\n// Server side pagination: https://react-table-v7.tanstack.com/docs/faq#how-can-i-debounce-rapid-table-state-changes\r\nexport interface FetchGridProps extends TableOptions<Record<string, any>> {\r\n  enableQuickFind?: boolean;\r\n  enablePagination?: boolean;\r\n  exportToCsvFunction?: (\r\n    pageNo: number,\r\n    recordsPerPage: number,\r\n    searchText: string,\r\n    filters: any\r\n  ) => string;\r\n  fetchUrlFunction: (\r\n    pageNo: number,\r\n    recordsPerPage: number,\r\n    searchText: string,\r\n    filters: any,\r\n    orderBy?: EpaGridOrderByFetchParams\r\n  ) => string;\r\n  //format an array response into other formatting\r\n  formatFunction?: (rows: Array<any>) => Array<any>;\r\n  //format any response format to convert into an already formatted response with an OpenApi equivalent format\r\n  formatResponseFunction?: (response: any) => any;\r\n  searchText?: string;\r\n  orderBy?: EpaGridOrderBy;\r\n}\r\n\r\nconst FetchGrid = (props: FetchGridProps) => {\r\n  const PAGE_NO = 0;\r\n\r\n  const [quickFindSearch, setQuickFindSearch] = useState(\"\");\r\n  const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n  const [totalCount, setTotalCount] = useState(0);\r\n  const [tableData, setTableData] = useState([]);\r\n  const [totalPage, setTotalPages] = useState(1);\r\n  const [loading, setLoading] = useState(true);\r\n  const { columns, data } = props;\r\n  const exportToCsvFn = props.exportToCsvFunction;\r\n  const fetchUrlFn = props.fetchUrlFunction;\r\n  const formatFn = props.formatFunction;\r\n  const formatAnyResponseFn = props.formatResponseFunction;\r\n  const enablePagination = props.enablePagination === true;\r\n  const enableQuickFind = props.enableQuickFind === true;\r\n  const propsSearchText = props.searchText;\r\n  const [orderByColumnName, setOrderByColumnName] = useState(\"\");\r\n  const [orderByAscending, setOrderByAscending] = useState(false);\r\n  const orderBy = props.orderBy;\r\n\r\n  const fetchRowData = useCallback(\r\n    async (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any,\r\n      fetchUrlFn: any,\r\n      orderByName: string,\r\n      orderByAsc: boolean\r\n    ) => {\r\n      try {\r\n        const fetchUrl = fetchUrlFn(\r\n          pageNo,\r\n          recordsPerPage,\r\n          propsSearchText ? propsSearchText : searchText,\r\n          filters,\r\n          orderBy\r\n            ? { orderByName: orderByName, orderByAscending: orderByAsc }\r\n            : null\r\n        );\r\n        const res = await fetch(fetchUrl);\r\n        const json = await res.json();\r\n\r\n        const reponseData = formatAnyResponseFn\r\n          ? formatAnyResponseFn(json)\r\n          : json;\r\n\r\n        const responseTableData = formatFn\r\n          ? formatFn(reponseData)\r\n          : reponseData?.list || [];\r\n\r\n        setTableData(responseTableData);\r\n        setTotalCount(reponseData?.count || 0);\r\n        setTotalPages(\r\n          (recordsPerPage > 0 &&\r\n            Math.floor(reponseData?.count / recordsPerPage) + 1) ||\r\n            1\r\n        );\r\n        setLoading(false);\r\n      } catch (err) {}\r\n    },\r\n    []\r\n  );\r\n\r\n  const defaultColumn = React.useMemo(\r\n    () => ({\r\n      // Let's set up our default Filter UI\r\n      Filter: ColumnFilter,\r\n    }),\r\n    []\r\n  );\r\n\r\n  const toggleSortBy = (columnName: string) => {\r\n    if (columnName === orderByColumnName) {\r\n      setOrderByAscending(!orderByAscending);\r\n    } else {\r\n      setOrderByColumnName(columnName);\r\n      setOrderByAscending(true);\r\n    }\r\n  };\r\n\r\n  const {\r\n    getTableProps,\r\n    getTableBodyProps,\r\n    headerGroups,\r\n    rows,\r\n    prepareRow,\r\n    page,\r\n    canPreviousPage,\r\n    canNextPage,\r\n    pageOptions,\r\n    pageCount,\r\n    gotoPage,\r\n    nextPage,\r\n    previousPage,\r\n    setPageSize,\r\n    setGlobalFilter,\r\n    // Get the state from the instance\r\n    state: { pageIndex, pageSize, globalFilter, filters },\r\n  } = useTable(\r\n    {\r\n      columns,\r\n      data: tableData,\r\n      defaultColumn,\r\n      manualPagination: true,\r\n      manualGlobalFilter: true,\r\n      manualFilters: true,\r\n      manualSortBy: true,\r\n      initialState: {\r\n        pageIndex: PAGE_NO,\r\n        pageSize: recordsPerPage,\r\n      },\r\n      pageCount: totalPage,\r\n    },\r\n    useFilters,\r\n    useGlobalFilter,\r\n    usePagination\r\n  );\r\n\r\n  useEffect(() => {\r\n    setLoading(true);\r\n    fetchRowData(\r\n      pageIndex + 1,\r\n      recordsPerPage,\r\n      propsSearchText ? propsSearchText : quickFindSearch,\r\n      filters,\r\n      fetchUrlFn,\r\n      orderByColumnName,\r\n      orderByAscending\r\n    );\r\n  }, [\r\n    pageIndex,\r\n    recordsPerPage,\r\n    quickFindSearch,\r\n    filters,\r\n    fetchUrlFn,\r\n    propsSearchText,\r\n    orderByColumnName,\r\n    orderByAscending,\r\n  ]);\r\n\r\n  useEffect(() => {\r\n    setRecordsPerPage(pageSize);\r\n    gotoPage(0);\r\n  }, [pageSize, gotoPage]);\r\n\r\n  return (\r\n    <div>\r\n      {enableQuickFind && (\r\n        <Row>\r\n          <Col sm=\"12\" md=\"6\">\r\n            <Form.Control\r\n              type=\"text\"\r\n              name=\"quickFind\"\r\n              placeholder=\"Search...\"\r\n              value={quickFindSearch || \"\"}\r\n              onChange={(e) => {\r\n                setQuickFindSearch(e.target.value);\r\n              }}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      <Table striped {...getTableProps()}>\r\n        <thead>\r\n          {headerGroups.map((headerGroup) => (\r\n            <tr {...headerGroup.getHeaderGroupProps()}>\r\n              {headerGroup.headers.map((column) => (\r\n                <th {...column.getHeaderProps()}>\r\n                  {column.render(\"Header\")}\r\n                  {/* Add a sort direction indicator */}\r\n                  {orderBy &&\r\n                    orderBy.enabledOrderByColumns &&\r\n                    orderBy.enabledOrderByColumns?.filter(\r\n                      (colName) => colName === column.Header\r\n                    ).length > 0 && (\r\n                      <span\r\n                        onClick={(e) => toggleSortBy(column.Header as string)}\r\n                      >\r\n                        {column.Header === orderByColumnName ? ( //isSorted\r\n                          orderByAscending ? (\r\n                            <FontAwesomeIcon icon={faSortUp} className=\"ms-2\" />\r\n                          ) : (\r\n                            <FontAwesomeIcon\r\n                              icon={faSortDown}\r\n                              className=\"ms-2\"\r\n                            />\r\n                          )\r\n                        ) : (\r\n                          <FontAwesomeIcon icon={faSort} className=\"ms-2\" />\r\n                        )}\r\n                      </span>\r\n                    )}\r\n                  <div>{column.canFilter ? column.render(\"Filter\") : null}</div>\r\n                </th>\r\n              ))}\r\n            </tr>\r\n          ))}\r\n        </thead>\r\n        <tbody {...getTableBodyProps()}>\r\n          {loading && (\r\n            <tr>\r\n              <td colSpan={columns.length} style={{ textAlign: \"center\" }}>\r\n                <Spinner />\r\n              </td>\r\n            </tr>\r\n          )}\r\n          {!loading &&\r\n            rows.map((row, i) => {\r\n              prepareRow(row);\r\n              return (\r\n                <tr {...row.getRowProps()}>\r\n                  {row.cells.map((cell) => {\r\n                    return (\r\n                      <td {...cell.getCellProps()}>{cell.render(\"Cell\")}</td>\r\n                    );\r\n                  })}\r\n                </tr>\r\n              );\r\n            })}\r\n        </tbody>\r\n      </Table>\r\n      {enablePagination && (\r\n        <Row>\r\n          <Col md=\"6\">\r\n            <span className=\"mx-2\">\r\n              {\"Page \"}\r\n              <strong>\r\n                {pageIndex + 1} of {pageOptions.length}\r\n              </strong>\r\n            </span>\r\n            <span className=\"ms-3 me-2\">Show:</span>\r\n            <Form.Select\r\n              className=\"d-inline-block w-auto\"\r\n              value={pageSize}\r\n              onChange={(e: any) => {\r\n                setPageSize(Number(e.target.value));\r\n              }}\r\n            >\r\n              {[5, 10, 20, 30, 40, 50].map((pageSize) => (\r\n                <option key={pageSize} value={pageSize}>\r\n                  {pageSize}\r\n                </option>\r\n              ))}\r\n            </Form.Select>\r\n\r\n            <span className=\"ms-3 me-2\">Go to page:</span>\r\n            <Form.Control\r\n              className=\"d-inline-block\"\r\n              type=\"number\"\r\n              defaultValue={pageIndex + 1}\r\n              onChange={(e) => {\r\n                const page = e.target.value ? Number(e.target.value) - 1 : 0;\r\n                gotoPage(page);\r\n              }}\r\n              style={{ width: \"75px\" }}\r\n            />\r\n            <span className=\"ms-3 me-2\">\r\n              {\"Total number of records: \"}\r\n              {totalCount}\r\n            </span>\r\n          </Col>\r\n          <Col md=\"6\">\r\n            <Pagination className=\"float-end\">\r\n              <Pagination.First\r\n                onClick={() => gotoPage(0)}\r\n                disabled={!canPreviousPage}\r\n              />\r\n              <Pagination.Prev\r\n                onClick={() => previousPage()}\r\n                disabled={!canPreviousPage}\r\n              />\r\n              <Pagination.Next\r\n                onClick={() => nextPage()}\r\n                disabled={!canNextPage}\r\n              />\r\n              <Pagination.Last\r\n                onClick={() => gotoPage(pageCount - 1)}\r\n                disabled={!canNextPage}\r\n              />\r\n            </Pagination>\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      {exportToCsvFn && (\r\n        <Row>\r\n          <Col sm=\"12\" md=\"6\">\r\n            <Button\r\n              className=\"primary\"\r\n              name=\"exportToCsv\"\r\n              onClick={(e) => {\r\n                window.open(\r\n                  exportToCsvFn(\r\n                    pageIndex + 1,\r\n                    recordsPerPage,\r\n                    propsSearchText ? propsSearchText : quickFindSearch,\r\n                    filters\r\n                  ),\r\n                  \"_blank\"\r\n                );\r\n              }}\r\n            >\r\n              Export to CSV\r\n            </Button>\r\n          </Col>\r\n        </Row>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport { FetchGrid };\r\n","import { Form } from \"react-bootstrap\";\r\n\r\nfunction DefaultColumnFilter({\r\n  column: { filterValue, preFilteredRows, setFilter },\r\n}: {\r\n  column: any;\r\n}) {\r\n  const count = preFilteredRows.length;\r\n\r\n  return (\r\n    <Form.Control\r\n      value={filterValue || \"\"}\r\n      onChange={(e) => {\r\n        setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\r\n      }}\r\n      placeholder={`Search ${count} records...`}\r\n      className=\"mt-2\"\r\n    />\r\n  );\r\n}\r\n\r\nexport { DefaultColumnFilter };\r\n","import React from \"react\";\r\nimport {\r\n  useTable,\r\n  useFilters,\r\n  useGlobalFilter,\r\n  TableOptions,\r\n} from \"react-table\";\r\n\r\n//https://react-table-v7.tanstack.com/docs/examples/data-driven-classes-and-styles\r\n\r\n// Server side pagination: https://react-table-v7.tanstack.com/docs/faq#how-can-i-debounce-rapid-table-state-changes\r\n\r\nimport { Table, Form } from \"react-bootstrap\";\r\nimport { DefaultColumnFilter } from \"./DefaultColumnFilter\";\r\n\r\nconst NoFetchGrid = (props: TableOptions<Record<string, any>>) => {\r\n  const { columns, data } = props;\r\n\r\n  const filterTypes = React.useMemo(\r\n    () => ({\r\n      // Or, override the default text filter to use\r\n      // \"startWith\"\r\n      text: (rows: any, id: any, filterValue: any) => {\r\n        return rows.filter((row: any) => {\r\n          const rowValue = row.values[id];\r\n          return rowValue !== undefined\r\n            ? String(rowValue)\r\n                .toLowerCase()\r\n                .startsWith(String(filterValue).toLowerCase())\r\n            : true;\r\n        });\r\n      },\r\n    }),\r\n    []\r\n  );\r\n\r\n  const defaultColumn = React.useMemo(\r\n    () => ({\r\n      // Let's set up our default Filter UI\r\n      Filter: DefaultColumnFilter,\r\n    }),\r\n    []\r\n  );\r\n\r\n  const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n    useTable(\r\n      {\r\n        columns,\r\n        data,\r\n        defaultColumn, // Be sure to pass the defaultColumn option\r\n        filterTypes,\r\n      },\r\n      useFilters, // useFilters!\r\n      useGlobalFilter // useGlobalFilter!\r\n    );\r\n\r\n  return (\r\n    <Table striped {...getTableProps()}>\r\n      <thead>\r\n        {headerGroups.map((headerGroup) => (\r\n          <tr {...headerGroup.getHeaderGroupProps()}>\r\n            {headerGroup.headers.map((column) => (\r\n              <th {...column.getHeaderProps()}>\r\n                {column.render(\"Header\")}\r\n                <div>{column.canFilter ? column.render(\"Filter\") : null}</div>\r\n              </th>\r\n            ))}\r\n          </tr>\r\n        ))}\r\n      </thead>\r\n      <tbody {...getTableBodyProps()}>\r\n        {rows.map((row, i) => {\r\n          prepareRow(row);\r\n          return (\r\n            <tr {...row.getRowProps()}>\r\n              {row.cells.map((cell) => {\r\n                return <td {...cell.getCellProps()}>{cell.render(\"Cell\")}</td>;\r\n              })}\r\n            </tr>\r\n          );\r\n        })}\r\n      </tbody>\r\n    </Table>\r\n  );\r\n};\r\n\r\nexport { NoFetchGrid };\r\n","import { EpaGridProps } from \"./EpaGridProps\";\r\nimport { FetchGrid } from \"./FetchGrid\";\r\nimport { NoFetchGrid } from \"./NoFetchGrid\";\r\n\r\nconst Grid = (props: EpaGridProps) => {\r\n  const {\r\n    fetchUrlFunction,\r\n    formatFunction,\r\n    formatResponseFunction,\r\n    enablePagination,\r\n    enableQuickFind,\r\n    columns,\r\n    data,\r\n    searchText,\r\n    orderBy,\r\n    exportToCsvFunction,\r\n  } = props;\r\n\r\n  if (!fetchUrlFunction) {\r\n    return <NoFetchGrid columns={columns} data={data} />;\r\n  } else {\r\n    return (\r\n      <FetchGrid\r\n        columns={columns}\r\n        data={data}\r\n        fetchUrlFunction={fetchUrlFunction}\r\n        formatFunction={formatFunction}\r\n        formatResponseFunction={formatResponseFunction}\r\n        enablePagination={enablePagination}\r\n        enableQuickFind={enableQuickFind}\r\n        searchText={searchText}\r\n        orderBy={orderBy}\r\n        exportToCsvFunction={exportToCsvFunction}\r\n      />\r\n    );\r\n  }\r\n};\r\n\r\nexport { Grid };\r\n","// This is a custom filter UI for selecting values where values are populated based on the distinct values on the grid\r\n\r\nimport React from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\n\r\n// a unique option from a list\r\nfunction SelectColumnFilter({\r\n  column: { filterValue, setFilter, preFilteredRows, id },\r\n}: {\r\n  column: any;\r\n}) {\r\n  // Calculate the options for filtering\r\n  // using the preFilteredRows\r\n  const options = React.useMemo(() => {\r\n    const options = new Set();\r\n    preFilteredRows.forEach((row: any) => {\r\n      options.add(row.values[id]);\r\n    });\r\n    return [...options.values()];\r\n  }, [id, preFilteredRows]);\r\n\r\n  // Render a multi-select box\r\n  return (\r\n    <Form.Select\r\n      className=\"mt-2\"\r\n      value={filterValue}\r\n      onChange={(e: any) => {\r\n        setFilter(e.target.value || undefined);\r\n      }}\r\n    >\r\n      <option value=\"\">All</option>\r\n      {options.map((option: any, i: any) => (\r\n        <option key={i} value={option}>\r\n          {option}\r\n        </option>\r\n      ))}\r\n    </Form.Select>\r\n  );\r\n}\r\n\r\nexport { SelectColumnFilter };\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n  faCircle,\r\n  faQuestionCircle,\r\n  faExclamationTriangle,\r\n  faCommentDots,\r\n  faSearch,\r\n  faWindowClose,\r\n  faIndustry,\r\n  faHandshake,\r\n  faEnvelope,\r\n  faEnvelopeOpenText,\r\n  faFileExport,\r\n  faExternalLinkAlt,\r\n  faClipboardCheck,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\nvar backGroundColor = \"#dae3ec\";\r\n\r\nconst IncidentIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faExclamationTriangle}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst IncidentUpdateRequestIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faQuestionCircle}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst ComplianceInvestigationIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-stack-1x\" icon={faSearch} />\r\n  </span>\r\n);\r\n\r\nconst ComplaintIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faCommentDots}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst MeetingIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-stack-1x\" icon={faHandshake} />\r\n  </span>\r\n);\r\n\r\nconst NonComplianceIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faWindowClose}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst SiteVisitIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-stack-1x\" icon={faIndustry} />\r\n  </span>\r\n);\r\n\r\nconst EPAInitiatedCorrespondenceIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-stack-1x\" icon={faEnvelope} />\r\n  </span>\r\n);\r\n\r\nconst ThirdPartyCorrespondenceIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faEnvelopeOpenText}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst LicenseeReturnIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon className=\"fas fa-solid fa-stack-1x\" icon={faFileExport} />\r\n  </span>\r\n);\r\n\r\nconst ActionOrInstructionIcon = () => (\r\n  <span style={{ color: foreGroundColor }} className=\"fa-stack\">\r\n    <FontAwesomeIcon\r\n      style={{ color: backGroundColor }}\r\n      className=\"fas fa-stack-2x icon-background\"\r\n      icon={faCircle}\r\n    />\r\n    <FontAwesomeIcon\r\n      className=\"fas fa-solid fa-stack-1x\"\r\n      icon={faClipboardCheck}\r\n    />\r\n  </span>\r\n);\r\n\r\nconst ExternalLinkIcon = () => (\r\n  <FontAwesomeIcon className=\"fas fa-solid\" icon={faExternalLinkAlt} />\r\n);\r\n\r\nconst getIconForType = (type: string) => {\r\n  switch (type) {\r\n    case \"Incident\":\r\n      return <IncidentIcon />;\r\n    case \"Complaint\":\r\n      return <ComplaintIcon />;\r\n    case \"Compliance Investigation\":\r\n      return <ComplianceInvestigationIcon />;\r\n    case \"Non Compliance\":\r\n      return <NonComplianceIcon />;\r\n    case \"Site Visit\":\r\n      return <SiteVisitIcon />;\r\n    case \"Meeting\":\r\n      return <MeetingIcon />;\r\n    case \"3rd Party Correspondence\":\r\n      return <ThirdPartyCorrespondenceIcon />;\r\n    case \"EPA Initiated Correspondence\":\r\n      return <EPAInitiatedCorrespondenceIcon />;\r\n    default:\r\n      return <LicenseeReturnIcon />;\r\n  }\r\n};\r\n\r\nexport {\r\n  IncidentIcon,\r\n  ComplianceInvestigationIcon,\r\n  ComplaintIcon,\r\n  NonComplianceIcon,\r\n  SiteVisitIcon,\r\n  LicenseeReturnIcon,\r\n  getIconForType,\r\n  ExternalLinkIcon,\r\n  IncidentUpdateRequestIcon,\r\n  ActionOrInstructionIcon,\r\n  EPAInitiatedCorrespondenceIcon,\r\n  ThirdPartyCorrespondenceIcon,\r\n};\r\n","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeapLogo(_ref, svgRef) {\n  var title = _ref.title,\n      titleId = _ref.titleId,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"For_SVG_-_no_tagline\",\n    \"data-name\": \"For SVG - no tagline\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    width: 1281,\n    height: 394,\n    viewBox: \"0 0 1281 394\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n    id: \"Rectangle_7\",\n    \"data-name\": \"Rectangle 7\",\n    width: 1281,\n    height: 394,\n    xlinkHref: \"data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAABQEAAAGKCAYAAAC8QodkAAAgAElEQVR4nOzdd5xU1f3G8c8ZsGAXCypYsUfRiF1RowFvBCsiCbbETiwXG8ESSzRRMajXHiPGXmPBem1g771Lk0WQtvS+u8z5/XEHxfxAYGdmv3PvPO/Xa15LWWYeYGd25plzztd57xEREalGud9dn8pvgj4OnXUGERERERFJl5x1ABERERERERERESkvlYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxza0DiFSz3PXn+WKvI3/GFa4UWUREREREREQku7QSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMq65dQARERERSR8XROsArYH1Fvi4RuHSsvBxBaAFsFrhx8ss5mqnAbMLl6nATGASUAtMLFxGA2OAUcAoH4fTS/n3EskSF0TLAmuT3EdbkdxP1yn82qqFyyoL/HhVwBUuq/zCVU8H8iT31enADJL77zRgMjAOmACMLXz8ARjh43BaSf+CIlI2LohWAtoCG5M8bqxL8jjSqvDztUg6pZUKH1fk/3dMUwsf55A8Tkxc4DK+8HEE8B3wnY/DsWX7CwmgErAqOedOZ+2Wo/y4iY9bZxEREZHKVXgBsBXwK2BbYBOSFwRtSUq9UluFXy4e/h8XRLXAcGAoMAz4AvgSGOzjsL7kCUUqjAui5YGtgU0Ll7Yk99VNSco/V4abXbnwcVWSMmCJuCCa/4J/BMl99iuS++w3Pg5nlTaiiCwJF0TNSR5DdgTaAduQfN9f4vv2L1h1gY+tSB6ffinLbJJC8Gvgk8LlUx+H35cgiwDOe2+dQYzkOu/Vl7br78vQkYP8kJED/ZCa56wzVZvc9ecVfQfMn3FFOZ7YiVSF3O+uT+U3QR+Hut9LyRUKv52B9iQvBHYiefc/rRpIXkR8AHwIvAd85uNwrmkqkSK4IFof2IHkhfq2hY+bkf5jnjxJMfgh8D7J/fVDrfQVKT0XRCsCHYA9gb1JHlPK8cZeKU0ieWx4BXgDeM/HYZ1popRSCVjlXOtW3V33oCcbrbc3dfUNfDf6XT+kZhCDawb6EaMHWefLOpWA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\"\n  })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeapLogo);\nexport default __webpack_public_path__ + \"static/media/leap-logo.ca1b6aff.svg\";\nexport { ForwardRef as ReactComponent };","const GetLicenceProfilePageUrl = (profileNo: string): string => {\r\n  return `/licence-profile/${profileNo}`;\r\n};\r\n\r\nconst GetLicenseeReturnPageUrl = (\r\n  profileNo: string,\r\n  returnId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/return/${returnId}`;\r\n};\r\n\r\nconst GetIncidentPageUrl = (profileNo: string, incidentId: string): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/incident/${incidentId}`;\r\n};\r\n\r\nconst GetIncidentUpdateRequestPageUrl = (\r\n  profileNo: string,\r\n  incidentUpdateRequestId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/incident-update-request/${incidentUpdateRequestId}`;\r\n};\r\n\r\nconst GetComplaintDetailsPageUrl = (\r\n  profileNo: string,\r\n  complaintId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/complaint/${complaintId}`;\r\n};\r\n\r\nconst GetSiteVisitDetailsPageUrl = (\r\n  profileNo: string,\r\n  siteVisitId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/sitevisit/${siteVisitId}`;\r\n};\r\n\r\nconst GetSiteVisitFindingAndRecommendationsDetailsPageUrl = (\r\n  profileNo: string,\r\n  findingAndRecommendationId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/finding-and-recommendation/${findingAndRecommendationId}`;\r\n};\r\n\r\nconst GetComplianceInvestigationDetailsPageUrl = (\r\n  profileNo: string,\r\n  complianceInvestigationId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/investigation/${complianceInvestigationId}`;\r\n};\r\n\r\nconst GetActionOrInstructionDetailsPageUrl = (\r\n  profileNo: string,\r\n  actionOrInstructionId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/action-or-instruction/${actionOrInstructionId}`;\r\n}; \r\n\r\nconst GetEpaCorrespondenceDetailsPageUrl = (\r\n  profileNo: string,\r\n  epaCorrespondenceId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/epa-correspondence/${epaCorrespondenceId}`;\r\n}; \r\n\r\nconst GetThirdPartyCorrespondenceDetailsPageUrl = (\r\n  profileNo: string,\r\n  epaCorrespondenceId: string\r\n): string => {\r\n  return `${GetLicenceProfilePageUrl(profileNo)}/compliance/3rd-party-correspondence/${epaCorrespondenceId}`;\r\n}; \r\n\r\nconst GetComplianceRecordDetailsUrl = (\r\n  complianceRecordId: string,\r\n  complianceRecordType: string,\r\n  profileNo: string\r\n): string => {\r\n  switch (complianceRecordType) {\r\n    case \"Site Visit\":\r\n      return GetSiteVisitDetailsPageUrl(profileNo, complianceRecordId);\r\n    case \"Compliance Investigation\":\r\n      return GetComplianceInvestigationDetailsPageUrl(profileNo, complianceRecordId);\r\n    case \"Incident\":\r\n      return `${GetLicenceProfilePageUrl(profileNo)}/compliance/incident/${complianceRecordId}`;\r\n    case \"Incident Update Request\":\r\n      return `${GetLicenceProfilePageUrl(profileNo)}/compliance/incident-update-request/${complianceRecordId}`;\r\n    case \"Complaint\":\r\n      return `${GetLicenceProfilePageUrl(profileNo)}/compliance/complaint/${complianceRecordId}`;\r\n    case \"Meeting\":\r\n      return `${GetLicenceProfilePageUrl(profileNo)}/compliance/meeting/${complianceRecordId}`;\r\n    case \"Non Compliance\":\r\n        return `${GetLicenceProfilePageUrl(profileNo)}/compliance/non-compliance/${complianceRecordId}`;\r\n    case \"EPA Initiated Correspondence\":\r\n      return GetEpaCorrespondenceDetailsPageUrl(profileNo, complianceRecordId);\r\n    case \"Third Party Correspondence\":\r\n      return GetThirdPartyCorrespondenceDetailsPageUrl(profileNo, complianceRecordId);\r\n    default:\r\n      return GetLicenseeReturnPageUrl(profileNo, complianceRecordId);\r\n  }\r\n};\r\n\r\nexport {\r\n  GetLicenseeReturnPageUrl,\r\n  GetComplianceRecordDetailsUrl,\r\n  GetIncidentPageUrl,\r\n  GetIncidentUpdateRequestPageUrl,\r\n  GetLicenceProfilePageUrl,\r\n  GetComplaintDetailsPageUrl,\r\n  GetSiteVisitDetailsPageUrl,\r\n  GetSiteVisitFindingAndRecommendationsDetailsPageUrl,\r\n  GetComplianceInvestigationDetailsPageUrl,\r\n  GetActionOrInstructionDetailsPageUrl,\r\n  GetEpaCorrespondenceDetailsPageUrl,\r\n  GetThirdPartyCorrespondenceDetailsPageUrl,\r\n};\r\n\r\n","import { Column } from \"react-table\";\r\nimport { Grid } from \"../Grid\";\r\nimport { SelectColumnFilter } from \"../Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { ICompliance, IComplianceList } from \"../../api/ICompliance\";\r\nimport { IComplianceGridProps } from \"./IComplianceGridProps\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { GetComplianceRecordDetailsUrl } from \"../../leap-pages/routeFactory\";\r\n\r\nconst ComplianceGrid = ({\r\n  licenceProfile,\r\n  complianceList,\r\n  columns,\r\n}: IComplianceGridProps) => {\r\n  const tableColumns: Column<Record<string, ICompliance>>[] = [\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tbody>\r\n            <tr>\r\n              <td style={{ paddingTop: \"6px\" }}>\r\n                <span>{getIconForType(rowInfo.value)}</span>\r\n              </td>\r\n              <td>{rowInfo.value}</td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Reference No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return (\r\n          <Link\r\n            to={GetComplianceRecordDetailsUrl(\r\n              rowData.compliancerecord_id,\r\n              rowData.type,\r\n              licenceProfile.profileNo\r\n            )}\r\n          >\r\n            {rowInfo.value}\r\n          </Link>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: SelectColumnFilter,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"date\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  if (!columns) columns = tableColumns;\r\n  return <Grid columns={tableColumns} data={complianceList.list} />;\r\n};\r\n\r\nexport default ComplianceGrid;\r\n","import EpaCard from \"../../leap-components/EpaCard\";\r\nimport ComplianceGrid from \"../../leap-components/Compliance/ComplianceGrid\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { ICompliance } from \"../../api/ICompliance\";\r\nimport { getIconForType } from \"../../leap-components/icons/LeapIcons\";\r\nimport { IComplianceProps } from \"../../leap-components/Compliance/IComplianceProps\";\r\n\r\ninterface IViewAllComplianceProps {\r\n  profileNo: string;\r\n}\r\n\r\nconst ViewAllCompliance = ({ profileNo }: IViewAllComplianceProps) => (\r\n  <span\r\n    className=\"flex-fill w-100\"\r\n    style={{ display: \"flex\", flexDirection: \"column\" }}\r\n  >\r\n    <Link\r\n      style={{ marginBottom: \"10px\" }}\r\n      to={`/licence-profile/${profileNo}/compliance`}\r\n    >\r\n      View all Compliance Records\r\n    </Link>\r\n  </span>\r\n);\r\n\r\nconst Compliance = ({ licenceProfile }: IComplianceProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <ComplianceGrid\r\n        licenceProfile={licenceProfile}\r\n        complianceList={licenceProfile.complianceList}\r\n      />\r\n      <ViewAllCompliance profileNo={licenceProfile.profileNo} />\r\n    </div>\r\n  );\r\n\r\n  return <EpaCard title={\"Latest Compliance Records\"} content={bodyElements} />;\r\n};\r\n\r\nexport default Compliance;\r\n","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeapLogoTagline(_ref, svgRef) {\n  var title = _ref.title,\n      titleId = _ref.titleId,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"For_SVG\",\n    \"data-name\": \"For SVG\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    width: 384,\n    height: 118,\n    viewBox: \"0 0 384 118\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      transform: \"scale(0.3)\"\n    }\n  }, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n    id: \"Rectangle_7\",\n    \"data-name\": \"Rectangle 7\",\n    width: 1281,\n    height: 394,\n    xlinkHref: \"data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAABQEAAAGKCAYAAAC8QodkAAAgAElEQVR4nOzdd5xU1f3G8c8ZsGAXCypYsUfRiF1RowFvBCsiCbbETiwXG8ESSzRRMajXHiPGXmPBem1g771Lk0WQtvS+u8z5/XEHxfxAYGdmv3PvPO/Xa15LWWYeYGd25plzztd57xEREalGud9dn8pvgj4OnXUGERERERFJl5x1ABERERERERERESkvlYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxza0DiFSz3PXn+WKvI3/GFa4UWUREREREREQku7QSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMq65dQARERERSR8XROsArYH1Fvi4RuHSsvBxBaAFsFrhx8ss5mqnAbMLl6nATGASUAtMLFxGA2OAUcAoH4fTS/n3EskSF0TLAmuT3EdbkdxP1yn82qqFyyoL/HhVwBUuq/zCVU8H8iT31enADJL77zRgMjAOmACMLXz8ARjh43BaSf+CIlI2LohWAtoCG5M8bqxL8jjSqvDztUg6pZUKH1fk/3dMUwsf55A8Tkxc4DK+8HEE8B3wnY/DsWX7CwmgErAqOedOZ+2Wo/y4iY9bZxEREZHKVXgBsBXwK2BbYBOSFwRtSUq9UluFXy4e/h8XRLXAcGAoMAz4AvgSGOzjsL7kCUUqjAui5YGtgU0Ll7Yk99VNSco/V4abXbnwcVWSMmCJuCCa/4J/BMl99iuS++w3Pg5nlTaiiCwJF0TNSR5DdgTaAduQfN9f4vv2L1h1gY+tSB6ffinLbJJC8Gvgk8LlUx+H35cgiwDOe2+dQYzkOu/Vl7br78vQkYP8kJED/ZCa56wzVZvc9ecVfQfMn3FFOZ7YiVSF3O+uT+U3QR+Hut9LyRUKv52B9iQvBHYiefc/rRpIXkR8AHwIvAd85uNwrmkqkSK4IFof2IHkhfq2hY+bkf5jnjxJMfgh8D7J/fVDrfQVKT0XRCsCHYA9gb1JHlPK8cZeKU0ieWx4BXgDeM/HYZ1popRSCVjlXOtW3V33oCcbrbc3dfUNfDf6XT+kZhCDawb6EaMHWefLOpWA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nHUK9iFG0UcM3IB9OH0Z9uHebzzHU3hKAoqISG35SAKOiSGMj8LWEzoFe7PwCGDWgFZ/G/A74PfudR1wVR2LJEs2E8YzgQcDDwce6l7HYYc7Dmo/Hc9eYCPwG+y+/Gv37y807EeKyITxIdgb67/FzjL8SGzt2NkDDuUu7Hn/BmxPsquAn5epF1nZuEkaHuBeRwBzgLnYz34LtgfTrcAtwJ/r0NteScBiM2E8Hftw8ERs+7TZFvAx4/Dd2Gt9s/frVcAGPdzrnJKAIiJSW0VIAo7mego+AJt4Ocb9/yjsDcPhwCHce+Mw2nZsofat2Jp9m7GJvluxs/U2//0D8Ns0ibb3751I1bkZMo/GJgTvjx3mPjzqNQ+Ywb376xSyk4f7sfsv2CFud7rX1hH/3wz8GXuDfIv7/22agEaqwE0yciz2vH809pw/f8RrHvY4MsAQMH3UIu7Cnvd3Yo+h27HHTPM6cDv2GnAD8Ls0if7S33ckMjElAcvJ9XRttlHv515HYs9Vh2HPVzOxCe45tO79vBN77roL2IY9XzXPXbdge7/eCNyYJtGf+/Nu6kdJQBERqa0iJgG7YcLYpEmkC7qUivZbkd6YMJ6kJLiUmZKA9aLrfjFM8h2AiIiI9EYNKikj7bcivVECUETKRNf9YlASUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRipsyiJUYYwaxGhGRWguCYBGwGFgKLBr1443A6kajsWrggYmIiIiIiIh3A0kCiohI/wRB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\"\n  }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeapLogoTagline);\nexport default __webpack_public_path__ + \"static/media/leap-logo-tagline.f465f561.svg\";\nexport { ForwardRef as ReactComponent };","import { Col, Row } from \"react-bootstrap\";\r\nimport { ReactComponent as LeapLogoVector } from \"../../assets/img/leap/leap-logo.svg\";\r\nimport { ReactComponent as LeapLogoVectorTagLine } from \"../../assets/img/leap/leap-logo-tagline.svg\";\r\n\r\ninterface ILeapHeaderComponentProps {\r\n  headerContent: JSX.Element;\r\n}\r\n\r\nconst LeapHeaderComponent = ({ headerContent }: ILeapHeaderComponentProps) => {\r\n  return (\r\n    <div className=\"ms-3 me-3\">\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <div style={{ marginBottom: \"1rem\" }}>\r\n            <LeapLogoVector\r\n              style={{ height: \"50px\", width: \"auto\" }}\r\n              className=\"d-none d-md-none d-sm-inline\"\r\n            />\r\n            <LeapLogoVector\r\n              style={{ height: \"40px\", width: \"auto\" }}\r\n              className=\"d-inline d-sm-none\"\r\n            />\r\n          </div>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col\r\n          className=\"col-12 col-sm-12 col-md-6\"\r\n          style={{ paddingLeft: \"1.3rem\" }}\r\n        >\r\n          {headerContent}\r\n        </Col>\r\n        <Col\r\n          className=\"col-12 col-sm-12 col-md-6\"\r\n          style={{ textAlign: \"right\", paddingRight: \"1rem\" }}\r\n        >\r\n          <LeapLogoVectorTagLine\r\n            style={{ height: \"70px\", width: \"auto\" }}\r\n            className=\"d-none d-md-inline\"\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LeapHeaderComponent;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport LeapHeaderComponent from \"../../leap-components/LeapHeaderComponent\";\r\n\r\ninterface IHeaderProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst HeaderSubComponent = ({ licenceProfile }: IHeaderProps) => {\r\n  return (\r\n    <div>\r\n      <Row className=\"mb-1\">\r\n        <Col className=\"col-md-12\">\r\n          <h1>\r\n            {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n          </h1>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-md-12\">\r\n          <h5>{licenceProfile.type}</h5>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst LicenceProfileHeader = ({ licenceProfile }: IHeaderProps) => {\r\n  const headerContent = <HeaderSubComponent licenceProfile={licenceProfile} />;\r\n  return <LeapHeaderComponent headerContent={headerContent} />;\r\n};\r\n\r\nexport default LicenceProfileHeader;\r\n","import { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\nimport EpaField from \"../../leap-components/EpaField\";\r\n\r\ninterface ILicenceDetailsProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst LicenceDetails = ({ licenceProfile }: ILicenceDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <EpaField label={\"Organisation\"} value={licenceProfile.organisation} />\r\n      <EpaField label={\"Licence Name\"} value={licenceProfile.profileName} />\r\n      <EpaField label={\"Licence Number\"} value={licenceProfile.profileNo} />\r\n      <EpaField label={\"County\"} value={licenceProfile.county} />\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Licence Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default LicenceDetails;\r\n","import { ISiteDetails } from \"../../api/ISiteDetails\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\nimport EpaField from \"../../leap-components/EpaField\";\r\n\r\ninterface ILicenceProfileSiteDetailsProps {\r\n  siteDetails: ISiteDetails;\r\n}\r\n\r\nconst LicenceProfileSiteDetails = ({\r\n  siteDetails,\r\n}: ILicenceProfileSiteDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <EpaField label={\"Address 1\"} value={siteDetails.address1} />\r\n      <EpaField label={\"Address 2\"} value={siteDetails.address2} />\r\n      <EpaField label={\"Address 3\"} value={siteDetails.address3} />\r\n      <EpaField label={\"Town/City\"} value={siteDetails.city} />\r\n      <EpaField label={\"County\"} value={siteDetails.county} />\r\n      <EpaField label={\"Eircode\"} value={siteDetails.eircode} />\r\n      <EpaField label={\"NACE Code\"} value={siteDetails.nacecode} />\r\n      <EpaField label={\"NUTS Code\"} value={siteDetails.nutscode} />\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Site Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default LicenceProfileSiteDetails;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\n\r\ninterface TabsWithTextLabelType {\r\n  className?: string;\r\n  activeKey: string;\r\n  content: JSX.Element;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst LicenceProfileSubTabs = ({\r\n  className,\r\n  activeKey,\r\n  content,\r\n  licenceProfile,\r\n}: TabsWithTextLabelType) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link\r\n            eventKey=\"licence-dashboard\"\r\n            href={\"/licence-profile/\" + licenceProfile.profileNo}\r\n          >\r\n            Licence Dashboard\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link\r\n            eventKey=\"licence-versions\"\r\n            href={`/licence-profile/${licenceProfile.profileNo}/versions`}\r\n          >\r\n            Licence Versions\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link\r\n            eventKey=\"compliance-records\"\r\n            href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n          >\r\n            Compliance Records\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"licence-dashboard\">{content}</Tab.Pane>\r\n        <Tab.Pane eventKey=\"licence-versions\">{content}</Tab.Pane>\r\n        <Tab.Pane eventKey=\"compliance-records\">{content}</Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nexport default LicenceProfileSubTabs;\r\n","import { useDispatch } from \"react-redux\";\r\nimport type { AppDispatch } from \"../redux/store\";\r\n\r\n// Use throughout your app instead of plain `useDispatch`\r\nconst useAppDispatch = () => useDispatch<AppDispatch>();\r\n\r\nexport default useAppDispatch;\r\n","import { ISiteDetails } from \"../../api/ISiteDetails\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\nimport EpaField from \"../../leap-components/EpaField\";\r\n\r\ninterface ILicenceProfileSiteDetailsProps {\r\n  siteDetails: ISiteDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst UrbanWasteWaterSiteDetails = ({\r\n  siteDetails,\r\n  licenceProfile,\r\n}: ILicenceProfileSiteDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <EpaField label={\"Urban Area\"} value={siteDetails.city} />\r\n      <EpaField label={\"County\"} value={siteDetails.county} />\r\n      <EpaField label={\"Eircode\"} value={siteDetails.eircode} />\r\n      <EpaField\r\n        label={\"Urban Area PE\"}\r\n        value={licenceProfile.activeLicenceVersion.urban_areape}\r\n      />\r\n      <EpaField label={\"Plant Design PE\"} value={siteDetails.plantcapacitype} />\r\n      <EpaField label={\"Treatment Type\"} value={siteDetails.treatmenttype} />\r\n      <EpaField label={\"UV Treatment\"} value={siteDetails.uvtreatment} />\r\n      <EpaField label={\"Priority Site\"} value={licenceProfile.prioritySite} />\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Site Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default UrbanWasteWaterSiteDetails;\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nconst Page500 = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"500 Error\" />\r\n    <div className=\"text-center\">\r\n      <h1 className=\"display-1 fw-bold\">500</h1>\r\n      <p className=\"h1\">Internal server error.</p>\r\n      <p className=\"h2 fw-normal mt-3 mb-4\">\r\n        The server encountered something unexpected that didn't allow it to\r\n        complete the request.\r\n      </p>\r\n      <Link to=\"/\">\r\n        <Button variant=\"primary\" size=\"lg\">\r\n          Return Home Page\r\n        </Button>\r\n      </Link>\r\n    </div>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default Page500;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nconst Loading = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Loading...\" />\r\n    <div className=\"text-center\">\r\n      <h1 className=\"display-1 fw-bold\">Loading...</h1>\r\n      <p className=\"h1\">Please wait...</p>\r\n    </div>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default Loading;\r\n","import { ILicenceProfileResponse } from \"../../api/LicenceProfile\";\r\nimport Page404 from \"../../pages/auth/Page404\";\r\nimport Page500 from \"../../pages/auth/Page500\";\r\nimport Loading from \"../Loading\";\r\n\r\nconst IsLicenceProfileReady = (\r\n  licenceProfileResponse?: ILicenceProfileResponse\r\n) => {\r\n  if (!licenceProfileResponse) {\r\n    return false;\r\n  }\r\n\r\n  if (licenceProfileResponse.response.httpStatusCode === 404) {\r\n    return false;\r\n  }\r\n\r\n  if (!licenceProfileResponse.licenceProfile) {\r\n    return false;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nconst GetLicenceProfileNotReadyComponent = (\r\n  licenceProfileResponse?: ILicenceProfileResponse\r\n) => {\r\n  if (!licenceProfileResponse) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (licenceProfileResponse.response.httpStatusCode === 404) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!licenceProfileResponse.licenceProfile) {\r\n    return <Page500 />;\r\n  }\r\n\r\n  return <Loading />;\r\n};\r\n\r\nexport { IsLicenceProfileReady, GetLicenceProfileNotReadyComponent };\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport ActiveLicenceDetails from \"./ActiveLicenceDetails\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport Compliance from \"./Compliance\";\r\nimport LicenceProfileHeader from \"./LicenceProfileHeader\";\r\nimport LicenceDetails from \"./LicenceDetails\";\r\nimport LicenceProfileSiteDetails from \"./LicenceProfileSiteDetails\";\r\nimport LicenceProfileSubTabs from \"./LicenceProfileSubTabs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../pages/auth/Page404\";\r\n\r\nimport useAppSelector from \"../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../hooks/useAppDispatch\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../redux/slices/licenceProfile\";\r\nimport UrbanWasteWaterSiteDetails from \"./UrbanWasteWaterSiteDetails\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\n\r\nconst LicenceDashboard = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo } = useParams();\r\n  if (!profileNo) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  const isUWW =\r\n    licenceProfile.type === \"WWDA\" ||\r\n    licenceProfile.type === \"CoA\" ||\r\n    licenceProfile.type === \"Waste Water Discharge Licence\" ||\r\n    licenceProfile.type === \"Waste Water Certificate of Authorisation\";\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-4\">\r\n          <LicenceDetails licenceProfile={licenceProfile} />\r\n        </Col>\r\n        <Col className=\"col-12 col-sm-12 col-md-4\">\r\n          <ActiveLicenceDetails licenceProfile={licenceProfile} />\r\n        </Col>\r\n        <Col className=\"col-12 col-sm-12 col-md-4\">\r\n          {isUWW && (\r\n            <UrbanWasteWaterSiteDetails\r\n              siteDetails={licenceProfile.siteDetails}\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          )}\r\n          {!isUWW && (\r\n            <LicenceProfileSiteDetails\r\n              siteDetails={licenceProfile.siteDetails}\r\n            />\r\n          )}\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <Compliance licenceProfile={licenceProfile} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"licence-dashboard\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LicenceDashboard;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ISiteVisitDetails } from \"../../../api/ISiteVisit\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  siteVisit: ISiteVisitDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, siteVisit }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{siteVisit.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Form, Row } from \"react-bootstrap\";\r\n\r\ninterface IEpaField {\r\n  label: string;\r\n  value: string;\r\n  labelClassName?: string;\r\n  valueClassName?: string;\r\n}\r\n\r\nconst EpaFieldHtml = ({\r\n  label,\r\n  value,\r\n  labelClassName,\r\n  valueClassName,\r\n}: IEpaField) => {\r\n  if (!labelClassName) labelClassName = \"col-4 col-md-4\";\r\n\r\n  if (!valueClassName) valueClassName = \"col-8 col-md-8\";\r\n\r\n  return (\r\n    <Row className=\"mb-3\">\r\n      <Col className={labelClassName}>\r\n        <Form.Label>{label}</Form.Label>\r\n      </Col>\r\n      <Col className={valueClassName}>\r\n        <div dangerouslySetInnerHTML={{ __html: value }}></div>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default EpaFieldHtml;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { ISiteVisitDetails } from \"../../../api/ISiteVisit\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface SiteVisitDetailsProps {\r\n  siteVisit: ISiteVisitDetails;\r\n}\r\n\r\nconst SiteVisitDetails = ({ siteVisit }: SiteVisitDetailsProps) => {\r\n  var summaryText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque aliquet, diam sit amet blandit cursus, ex lectus ultrices sapien, dapibus viverra mauris odio id risus. Aliquam erat volutpat. Nam mattis blandit mi euismod tristique. In eget diam risus. Quisque lacinia accumsan est non sagittis. Fusce lacinia sed justo eu dapibus. Cras ac libero augue. Integer lectus tellus, ultricies eget placerat non, semper sed nisi. In hac habitasse platea dictumst.\r\n\r\nPellentesque pellentesque, mauris ac laoreet laoreet, nisi mauris scelerisque eros, vitae ullamcorper diam diam ut odio. Nulla convallis id elit sed ullamcorper. Proin eget libero tellus. Ut finibus placerat mollis. Duis eros augue, pulvinar luctus semper sed, rhoncus eu nisi. Curabitur rhoncus ornare dolor, pharetra pharetra metus fermentum non. Integer eleifend, diam eget mollis varius, augue ipsum lobortis est, eu mollis purus mauris vel libero. Mauris pellentesque enim sed nunc suscipit, eu mollis purus dignissim. Proin eget erat vestibulum, finibus tellus eu, lobortis purus. Pellentesque scelerisque odio eu laoreet suscipit.\r\n  `;\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Site Visit Date\"} value={siteVisit.visit_date} />\r\n          <EpaField label={\"Site Visit Title\"} value={siteVisit.subject} />\r\n          <EpaField\r\n            label={\"Visit Announced by EPA?\"}\r\n            value={siteVisit.announced}\r\n          />\r\n          <EpaField label={\"Sample Taken?\"} value={siteVisit.sampletaken} />\r\n          <EpaField\r\n            label={\"Site Visit Compliant?\"}\r\n            value={siteVisit.compliance}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Report Issued Date\"}\r\n            value={siteVisit.report_issued_date}\r\n          />\r\n          <EpaField label={\"Visit Type\"} value={siteVisit.instigated_by} />\r\n          <EpaField\r\n            label={\"Odour Assessment Carried Out?\"}\r\n            value={siteVisit.odourassessment}\r\n          />\r\n          <EpaField\r\n            label={\"Odour Assessment Compliant?\"}\r\n            value={siteVisit.adourassessmentcompliant}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Summary\"}\r\n            value={siteVisit.summary}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Site Visit Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default SiteVisitDetails;\r\n","import { Col, Form, Row } from \"react-bootstrap\";\r\n\r\ninterface IEpaField {\r\n  label?: string;\r\n  value?: string;\r\n  content?: JSX.Element;\r\n}\r\n\r\nconst EpaField2Rows = ({ label, value, content }: IEpaField) => (\r\n  <div style={{ marginBottom: \"10px\" }}>\r\n    <Row>\r\n      <Col className=\"col-md-12\">\r\n        <Form.Label style={{ marginBottom: \"0.2rem\" }}>{label}</Form.Label>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col className=\"col-md-12\">{content ? content : value}</Col>\r\n    </Row>\r\n  </div>\r\n);\r\n\r\nexport default EpaField2Rows;\r\n","import { Card, Col, Row, Form } from \"react-bootstrap\";\r\nimport { ISiteVisitDetails } from \"../../../api/ISiteVisit\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { SiteVisitIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface SiteVisitHeaderProps {\r\n  siteVisit: ISiteVisitDetails;\r\n}\r\n\r\nconst SiteVisitHeader = ({ siteVisit }: SiteVisitHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <SiteVisitIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Site Visit: {siteVisit.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={siteVisit.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={siteVisit.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={siteVisit.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default SiteVisitHeader;\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetComplianceInvestigationsBySiteVisitFetchUrl,\r\n  IComplianceInvestigation,\r\n} from \"../../api/IComplianceInvestigation\";\r\nimport { GetComplianceRecordDetailsUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { ComplianceInvestigationsGridProps } from \"./ComplianceInvestigationsGridProps\";\r\n\r\nconst complianceInvestigation = \"Compliance Investigation\";\r\n\r\nconst ComplianceInvestigationsGrid = ({\r\n  relatedRecordType,\r\n  relatedrecordId,\r\n  licenceProfile,\r\n}: ComplianceInvestigationsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (relatedRecordType) {\r\n        case \"Site Visit\":\r\n        default:\r\n          return GetComplianceInvestigationsBySiteVisitFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedrecordId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IComplianceInvestigation>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(complianceInvestigation)}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetComplianceRecordDetailsUrl(\r\n                  rowInfo.row.original.complianceinvestigationid,\r\n                  complianceInvestigation,\r\n                  licenceProfile.profileNo\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"dateraised\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Investigation Title\",\r\n      accessor: \"title\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Issue / Theme\",\r\n      accessor: \"issue\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IComplianceInvestigation>>[] =\r\n    [\r\n      {\r\n        Header: \"Ref. No.\",\r\n        accessor: \"reference\",\r\n        Filter: false,\r\n        filter: \"includes\",\r\n        Cell: (rowInfo: any) => (\r\n          <table>\r\n            <tr>\r\n              <td style={{ paddingTop: \"6px\" }}>\r\n                <span>{getIconForType(complianceInvestigation)}</span>\r\n              </td>\r\n              <td>\r\n                <Link\r\n                  to={GetComplianceRecordDetailsUrl(\r\n                    rowInfo.row.original.complianceinvestigationid,\r\n                    complianceInvestigation,\r\n                    licenceProfile.profileNo\r\n                  )}\r\n                >\r\n                  {rowInfo.value}\r\n                </Link>\r\n              </td>\r\n            </tr>\r\n          </table>\r\n        ),\r\n      },\r\n      {\r\n        Header: \"Investigation Title\",\r\n        accessor: \"title\",\r\n        Filter: false,\r\n      },\r\n    ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationsGrid };\r\n","import { Column } from \"react-table\";\r\nimport { Grid } from \"../Grid\";\r\nimport { DocumentsGridProps } from \"./DocumentsGridProps\";\r\nimport { GetRelatedDocumentsFetchUrl } from \"../../api/Documents\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\n\r\ninterface IDocumentRecord {\r\n  name: string;\r\n  date: string;\r\n}\r\n\r\nconst tableColumnsBig: Column<Record<string, IDocumentRecord>>[] = [\r\n  {\r\n    Header: \"Document Name\",\r\n    accessor: \"filename\",\r\n    Filter: false,\r\n    Cell: (rowInfo: any) => (\r\n      <a href={rowInfo.row.original.url} target=\"_blank\">\r\n        {rowInfo.value}\r\n      </a>\r\n    ),\r\n  },\r\n  {\r\n    Header: \"Document Size\",\r\n    accessor: \"filesize\",\r\n    Filter: false,\r\n    Cell: (rowInfo: any) => (\r\n      <span>\r\n        {parseInt(rowInfo.row.original.filesize, 10) > 0\r\n          ? Math.trunc(parseInt(rowInfo.row.original.filesize, 10) / 1024)\r\n          : 0}\r\n        {\" kb\"}\r\n      </span>\r\n    ),\r\n  },\r\n];\r\n\r\nconst tableColumnsSmall: Column<Record<string, IDocumentRecord>>[] = [\r\n  {\r\n    Header: \"Document Name\",\r\n    accessor: \"filename\",\r\n    Filter: false,\r\n    Cell: (rowInfo: any) => (\r\n      <a href={rowInfo.row.original.url} target=\"_blank\">\r\n        {rowInfo.value}\r\n      </a>\r\n    ),\r\n  },\r\n];\r\n\r\nconst DocumentsGrid = ({ regardingObjectId }: DocumentsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetRelatedDocumentsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(regardingObjectId);\r\n\r\n  return (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport { DocumentsGrid };\r\n","import { API_URL } from \"./Config\";\r\nimport { PageResult } from \"./Pagination\";\r\n\r\nexport const GetRelatedDocumentsFetchUrl = (\r\n  regardingObjectId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  if (searchText.length > 0) {\r\n    params += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n  let url = `${API_URL}/Document/listbyregardingobjectid?regardingobject_id=${regardingObjectId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/documents`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetFindingsAndRecommendationsFetchUrl,\r\n  IFindingAndRecommendation,\r\n} from \"../../api/IFindingAndRecommendation\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { FindingsAndRecommendationsProps } from \"./FIndingsAndRecommendationsProps\";\r\n\r\nconst GetUrlForFindingAndRecommendation = (\r\n  profileNumber: string,\r\n  findingAndRecommendation: IFindingAndRecommendation\r\n) => {\r\n  return `/licence-profile/${profileNumber}/compliance/finding-and-recommendation/${findingAndRecommendation.taskid}`;\r\n};\r\n\r\nconst formatObservation = (rowInfo: any) => {\r\n  return <p dangerouslySetInnerHTML={{ __html: rowInfo.value }}></p>;\r\n};\r\n\r\nconst FindingsAndRecommendationsGrid = ({\r\n  profileNumber,\r\n  regardingObjectId,\r\n}: FindingsAndRecommendationsProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetFindingsAndRecommendationsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(regardingObjectId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IFindingAndRecommendation>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Finding and Recommendation\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForFindingAndRecommendation(\r\n                  profileNumber,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Type\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"category\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Observation\",\r\n      accessor: \"observation\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatObservation(rowInfo),\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IFindingAndRecommendation>>[] =\r\n    [\r\n      {\r\n        Header: \"Ref. No.\",\r\n        accessor: \"reference\",\r\n        Filter: false,\r\n        filter: \"reference\",\r\n        Cell: (rowInfo: any) => (\r\n          <table>\r\n            <tr>\r\n              <td style={{ paddingTop: \"6px\" }}>\r\n                <span>{getIconForType(\"Finding and Recommendation\")}</span>\r\n              </td>\r\n              <td>\r\n                <Link\r\n                  to={GetUrlForFindingAndRecommendation(\r\n                    profileNumber,\r\n                    rowInfo.row.original\r\n                  )}\r\n                >\r\n                  {rowInfo.value}\r\n                </Link>\r\n              </td>\r\n            </tr>\r\n          </table>\r\n        ),\r\n      },\r\n      {\r\n        Header: \"Date\",\r\n        accessor: \"datesubmitted\",\r\n        Filter: false,\r\n        filter: \"includes\",\r\n        Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n      },\r\n      {\r\n        Header: \"Type\",\r\n        accessor: \"type\",\r\n        Filter: false,\r\n      },\r\n      {\r\n        Header: \"Category\",\r\n        accessor: \"category\",\r\n        Filter: false,\r\n      },\r\n      {\r\n        Header: \"Status\",\r\n        accessor: \"status\",\r\n        Filter: false,\r\n      },\r\n    ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { FindingsAndRecommendationsGrid };\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetLicenseeReturnFromComplianceInvestigationFetchUrl,\r\n  GetLicenseeReturnFromSiteVisitFetchUrl,\r\n  ILicenseeReturn,\r\n} from \"../../api/ILicenseeReturns\";\r\nimport { GetLicenseeReturnPageUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { LicenseeReturnGridProps } from \"./LicenseeReturnGridProps\";\r\n\r\nconst LicenseeReturnsGrid = ({\r\n  relatedRecordType,\r\n  relatedrecordId,\r\n  licenceProfile,\r\n}: LicenseeReturnGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (relatedRecordType) {\r\n        case \"CI\":\r\n          return GetLicenseeReturnFromComplianceInvestigationFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Site Visit\":\r\n        default:\r\n          return GetLicenseeReturnFromSiteVisitFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedrecordId);\r\n\r\n  const tableColumnsBig: Column<Record<string, ILicenseeReturn>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Licensee Return\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetLicenseeReturnPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.licenseereturnid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"datereceived\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Title\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Document Type\",\r\n      accessor: \"doctype\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Document SubType\",\r\n      accessor: \"docsubtype\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Decision\",\r\n      accessor: \"decision\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ILicenseeReturn>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Licensee Return\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetLicenseeReturnPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.licenseereturnid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Title\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { LicenseeReturnsGrid };\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetNonCompliancesByComplaintFetchUrl,\r\n  GetNonCompliancesByComplianceInvestigationFetchUrl,\r\n  GetNonCompliancesByIncidentFetchUrl,\r\n  GetNonCompliancesByLicenseeReturnFetchUrl,\r\n  GetNonCompliancesBySiteVisitFetchUrl,\r\n  INonCompliance,\r\n} from \"../../api/INonCompliance\";\r\nimport { Grid } from \"../Grid\";\r\nimport { NonCompliancesGridProps } from \"./NonCompliancesGridProps\";\r\n\r\nconst NonCompliancesGrid = ({\r\n  relatedRecordType,\r\n  relatedRecordId,\r\n  licenceProfile,\r\n}: NonCompliancesGridProps) => {\r\n  const GetUrlForNonCompliance = (\r\n    profileNumber: string,\r\n    nonCompliance: INonCompliance\r\n  ) => {\r\n    return `/licence-profile/${profileNumber}/compliance/non-compliance/${nonCompliance.noncomplianceid}`;\r\n  };\r\n\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (relatedRecordType) {\r\n        case \"Licensee Return\":\r\n          return GetNonCompliancesByLicenseeReturnFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Complaint\":\r\n          return GetNonCompliancesByComplaintFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Incident\":\r\n          return GetNonCompliancesByIncidentFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Site Visit\":\r\n          return GetNonCompliancesBySiteVisitFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Compliance Investigation\":\r\n        default:\r\n          return GetNonCompliancesByComplianceInvestigationFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedRecordId);\r\n\r\n  const tableColumnsBig: Column<Record<string, INonCompliance>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForNonCompliance(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date Non Compliance Occurred\",\r\n      accessor: \"dateofnoncompliance\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Date Issued by EPA\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Non Compliance Type\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, INonCompliance>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForNonCompliance(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Non Compliance Type\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { NonCompliancesGrid };\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { ISiteVisitDetails } from \"../../../api/ISiteVisit\";\r\nimport {\r\n  ILicenceProfile,\r\n  isRadiologicalProtection,\r\n} from \"../../../api/LicenceProfile\";\r\nimport { ComplianceInvestigationsGrid } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationsGrid\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { FindingsAndRecommendationsGrid } from \"../../../leap-components/FindingsAndRecommendations/FindingsAndRecommendationsGrid\";\r\nimport { LicenseeReturnsGrid } from \"../../../leap-components/LicenseeReturns/LicenseeReturnsGrid\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\nimport { SiteVisitProps } from \"./SiteVisitProps\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  siteVisit: ISiteVisitDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface LicenseeReturnsProps {\r\n  siteVisit: ISiteVisitDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst LicenseeReturns = ({\r\n  siteVisit,\r\n  licenceProfile,\r\n}: LicenseeReturnsProps) => (\r\n  <LicenseeReturnsGrid\r\n    relatedRecordType=\"Site Visit\"\r\n    relatedrecordId={siteVisit.sitevisitid}\r\n    licenceProfile={licenceProfile}\r\n  />\r\n);\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  siteVisit,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Nav.Item>\r\n            <Nav.Link eventKey=\"ncs\">Non Compliances</Nav.Link>\r\n          </Nav.Item>\r\n        )}\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Nav.Item>\r\n            <Nav.Link eventKey=\"returns\">Licensee Returns</Nav.Link>\r\n          </Nav.Item>\r\n        )}\r\n        {isRadiologicalProtection(licenceProfile) && (\r\n          <Nav.Item>\r\n            <Nav.Link eventKey=\"findings\">\r\n              Findings and Recommendations\r\n            </Nav.Link>\r\n          </Nav.Item>\r\n        )}\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Nav.Item>\r\n            <Nav.Link eventKey=\"cis\">Compliance Investigations</Nav.Link>\r\n          </Nav.Item>\r\n        )}\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={siteVisit.sitevisitid} />\r\n        </Tab.Pane>\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Tab.Pane eventKey=\"returns\">\r\n            <LicenseeReturns\r\n              siteVisit={siteVisit}\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Tab.Pane>\r\n        )}\r\n        {isRadiologicalProtection(licenceProfile) && (\r\n          <Tab.Pane eventKey=\"findings\">\r\n            <FindingsAndRecommendationsGrid\r\n              profileNumber={siteVisit.profile_number}\r\n              regardingObjectId={siteVisit.sitevisitid}\r\n            />\r\n          </Tab.Pane>\r\n        )}\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Tab.Pane eventKey=\"cis\">\r\n            <ComplianceInvestigationsGrid\r\n              relatedrecordId={siteVisit.sitevisitid}\r\n              relatedRecordType={\"Site Visit\"}\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Tab.Pane>\r\n        )}\r\n        {!isRadiologicalProtection(licenceProfile) && (\r\n          <Tab.Pane eventKey=\"ncs\">\r\n            <NonCompliancesGrid\r\n              relatedRecordType=\"Site Visit\"\r\n              relatedRecordId={siteVisit.sitevisitid}\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Tab.Pane>\r\n        )}\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  siteVisit,\r\n  licenceProfile,\r\n}: SiteVisitProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      siteVisit={siteVisit}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Link, useNavigate } from \"react-router-dom\";\r\n\r\ninterface BackToComplianceProps {\r\n  profileNo: string;\r\n}\r\nconst BackToCompliance = ({ profileNo }: BackToComplianceProps) => {\r\n  const navigate = useNavigate();\r\n\r\n  return (\r\n    <span className=\"flex-fill w-100\" style={{ display: \"flex\" }}>\r\n      <a style={{ marginBottom: \"10px\" }} onClick={() => navigate(-1)}>\r\n        &lt; Back to Previous Record\r\n      </a>\r\n    </span>\r\n  );\r\n};\r\n\r\nexport default BackToCompliance;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport SiteVisitDetails from \"./SiteVisitDetails\";\r\nimport SiteVisitHeader from \"./SiteVisitHeader\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport {\r\n  loadSiteVisitAsync,\r\n  selectSiteVisit,\r\n} from \"../../../redux/slices/siteVisit\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst SiteVisit = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingSiteVisitId, setLoadingSiteVisitId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const siteVisitSelector = useAppSelector(selectSiteVisit);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, siteVisitId } = useParams();\r\n  if (!profileNo || !siteVisitId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingSiteVisitId !== siteVisitId) {\r\n    setLoadingSiteVisitId(siteVisitId);\r\n    dispatch(loadSiteVisitAsync(siteVisitId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const siteVisit = siteVisitSelector.siteVisit;\r\n\r\n  if (!siteVisit) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!siteVisit.response.ok) {\r\n    if (siteVisit.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <SiteVisitHeader siteVisit={siteVisit} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <SiteVisitDetails siteVisit={siteVisit} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            siteVisit={siteVisit}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} siteVisit={siteVisit} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default SiteVisit;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst BreadCrumbs = () => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item active>LEAP Online Home</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LeapHeaderComponent from \"../../leap-components/LeapHeaderComponent\";\r\n\r\nconst HeaderSubComponent = () => {\r\n  return (\r\n    <div>\r\n      <Row className=\"mb-1\">\r\n        <Col className=\"col-md-12\">\r\n          <h1>Licence and Enforcement Access Portal</h1>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst Header = () => {\r\n  return <LeapHeaderComponent headerContent={<HeaderSubComponent />} />;\r\n};\r\n\r\nexport default Header;\r\n","import { Button, Col, Row } from \"react-bootstrap\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\n\r\nimport useAppSelector from \"../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../hooks/useAppDispatch\";\r\n\r\nimport {\r\n  acceptTermsOfService,\r\n  LegalCookieName,\r\n  selectConfirm,\r\n  toggleAcceptance,\r\n} from \"../../redux/slices/legal\";\r\nimport { setCookie } from \"../../cookies/cookies\";\r\n\r\nconst ConfirmCard = () => {\r\n  const confirm = useAppSelector(selectConfirm);\r\n  const dispatch = useAppDispatch();\r\n  const navigate = useNavigate();\r\n\r\n  const queryString = window.location.search;\r\n  const urlParams = new URLSearchParams(queryString);\r\n  const returnUrl = urlParams.get(\"returnUrl\");\r\n\r\n  const Continue = () => {\r\n    setCookie(LegalCookieName, \"true\", 1);\r\n    dispatch(acceptTermsOfService());\r\n    window.location.href = returnUrl ? returnUrl : \"\"; //try navigate with absolute path\r\n  };\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <p>\r\n            LEAP provides you with access to the formal compliance &amp;\r\n            enforcement correspondence that is exchanged between the EPA and our\r\n            regulated operators in these activity areas:\r\n          </p>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-2\">\r\n        <Col className=\"col-12 col-md-6\">\r\n          <ul style={{ listStyleType: \"square\" }}>\r\n            <li>Dumping at Sea</li>\r\n            <li>\r\n              Major Industry: Industrial Emissions (IE), Integrated Pollution\r\n              Prevention &amp; Control (IPPC), Integrated Pollution Control\r\n              (IPC)\r\n            </li>\r\n            <li>Radiological Protection</li>\r\n          </ul>\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <ul style={{ listStyleType: \"square\" }}>\r\n            <li>\r\n              Urban Waste Water Discharge: Waste Water Discharge Authorisations\r\n              (WWDA) and Certificates of Authorisation (CoA)\r\n            </li>\r\n            <li>Waste Management</li>\r\n          </ul>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-2\">\r\n        <Col className=\"col-12\">\r\n          <p>\r\n            LEAP allows you to view details of licences and permits issued by\r\n            the EPA, and holds records describing the regulation of licensed and\r\n            permitted sites. These include EPA Site Inspection and Monitoring\r\n            Reports, Licensee Returns, Incidents, Non-Compliances and\r\n            Complaints, plus information about Compliance Investigations at\r\n            non-compliant sites.\r\n          </p>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-2\">\r\n        <Col className=\"col-12\">\r\n          <a\r\n            style={{ fontWeight: \"bold\" }}\r\n            href=\"https://www.epa.ie/our-services/compliance--enforcement/whats-happening/leap-online\"\r\n          >\r\n            Find more about LEAP\r\n          </a>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-2\">\r\n        <Col>\r\n          <p style={{ fontWeight: \"bold\" }}>\r\n            In order to proceed, please confirm that you have read and agree to\r\n            the{\" \"}\r\n            <a\r\n              style={{ fontWeight: \"bold\" }}\r\n              href=\"https://www.epa.ie/publications/compliance--enforcement/licensees/performance/terms-and-conditions-for-using-leap.php\"\r\n            >\r\n              Terms and Conditions\r\n            </a>{\" \"}\r\n            for using the LEAP Portal.\r\n          </p>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-3\">\r\n        <Col className=\"col-12\">\r\n          <input\r\n            type=\"checkbox\"\r\n            checked={confirm}\r\n            onChange={() => dispatch(toggleAcceptance())}\r\n          />\r\n          <span style={{ paddingLeft: \"0.5rem\" }}>I Confirm</span>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-3\">\r\n        <Col className=\"col-12\">\r\n          <Button disabled={!confirm} onClick={() => Continue()}>\r\n            Continue\r\n          </Button>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"Welcome to LEAP, the EPA's Licence and Enforcement Access Portal\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default ConfirmCard;\r\n","import { faExclamation } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Card, Col, Row } from \"react-bootstrap\";\r\n\r\nconst CookiesDisabledCard = () => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <p>\r\n            <FontAwesomeIcon icon={faExclamation} size={\"2x\"} color={\"#333\"} />{\" \"}\r\n            <span style={{ paddingLeft: \"20px\" }}>\r\n              The browser has all cookies disabled. In order to operate, LEAP\r\n              requires that Strictly Necessary Cookies are enabled. Please\r\n              enable cookies in the browser to use LEAP.\r\n            </span>\r\n          </p>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header>\r\n        <Card.Title>\r\n          <h5></h5>\r\n        </Card.Title>\r\n      </Card.Header>\r\n      <Card.Body className=\"pt-0\">{bodyElements}</Card.Body>\r\n      <Card.Footer></Card.Footer>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default CookiesDisabledCard;\r\n","import { Col, Row, Tab } from \"react-bootstrap\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport Header from \"./Header\";\r\nimport ConfirmCard from \"./ConfirmTextCard\";\r\nimport { areCookiesEnabled } from \"../../cookies/cookies\";\r\nimport CookiesDisabledCard from \"./CookiesDisabledCard\";\r\n\r\nconst Confirm = () => {\r\n  const hasCookiesEnabled = areCookiesEnabled();\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs />\r\n      <div className=\"ps-0\">\r\n        <div className=\"pb-4\">\r\n          <Header />\r\n        </div>\r\n        <Row>\r\n          <Col className=\"col-12\">\r\n            <div className={\"tab\"}>\r\n              <Tab.Container id=\"confirmContent\" defaultActiveKey={\"default\"}>\r\n                <Tab.Content>\r\n                  <Tab.Pane eventKey=\"default\">\r\n                    {hasCookiesEnabled && <ConfirmCard />}\r\n                    {!hasCookiesEnabled && <CookiesDisabledCard />}\r\n                  </Tab.Pane>\r\n                </Tab.Content>\r\n              </Tab.Container>\r\n            </div>\r\n          </Col>\r\n        </Row>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Confirm;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface IBreadCrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile }: IBreadCrumbProps) => {\r\n  const profileText = `${licenceProfile.organisation} - ${licenceProfile.profileNo}`;\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n          <Breadcrumb.Item\r\n            href={`/licence-profile/${licenceProfile.profileNo}`}\r\n          >\r\n            {profileText}\r\n          </Breadcrumb.Item>\r\n          <Breadcrumb.Item active>Compliance</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","// This is a custom filter UI for selecting values where values come from a static (fixed) list that is set upfront\r\n\r\nimport React, { useState } from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\n\r\nfunction CreateStaticSelectColumnFilter(values: Array<any>) {\r\n  let StaticSelectColumnFilter = function StaticSelectColumnFilter({\r\n    column: { filterValue, setFilter },\r\n  }: {\r\n    column: any;\r\n  }) {\r\n    const [value, setValue] = useState(filterValue);\r\n    const onChange = useAsyncDebounce((value) => {\r\n      setFilter(value || undefined);\r\n    }, 300);\r\n\r\n    // Render a multi-select box\r\n    return (\r\n      <Form.Select\r\n        className=\"mt-2\"\r\n        value={filterValue}\r\n        onChange={(e: any) => {\r\n          setValue(e.target.value);\r\n          onChange(e.target.value);\r\n        }}\r\n      >\r\n        <option value=\"\">All</option>\r\n        {values.map((option: any, i: any) => (\r\n          <option key={i} value={option}>\r\n            {option}\r\n          </option>\r\n        ))}\r\n      </Form.Select>\r\n    );\r\n  };\r\n\r\n  return StaticSelectColumnFilter;\r\n}\r\n\r\nexport { CreateStaticSelectColumnFilter };\r\n","// This is a custom UI for our 'between' or number range\r\n// filter. It uses two number boxes and filters rows to\r\n\r\nimport React, { useState } from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\n// using https://github.com/Hacker0x01/react-datepicker\r\n// https://reactdatepicker.com/\r\n\r\n//https://reactdatepicker.com/#example-custom-day\r\n\r\nconst range = (start: number, stop: number, step: number) =>\r\n  Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step);\r\n\r\nconst years = range(1990, new Date().getFullYear(), 1);\r\nconst months = [\r\n  \"January\",\r\n  \"February\",\r\n  \"March\",\r\n  \"April\",\r\n  \"May\",\r\n  \"June\",\r\n  \"July\",\r\n  \"August\",\r\n  \"September\",\r\n  \"October\",\r\n  \"November\",\r\n  \"December\",\r\n];\r\n\r\nconst getNextYearValue = (currentYear: number, currentMonth: number) =>\r\n  currentMonth === 11 ? currentYear + 1 : currentYear;\r\n\r\nconst getNextMonthValue = (currentMonth: number) =>\r\n  currentMonth === 11 ? 0 : currentMonth + 1;\r\n\r\nconst CurrentMonthHeader = ({\r\n  monthDate,\r\n  date,\r\n  customHeaderCount,\r\n  changeYear,\r\n  decreaseYear,\r\n  increaseYear,\r\n  prevYearButtonDisabled,\r\n  nextYearButtonDisabled,\r\n  changeMonth,\r\n  decreaseMonth,\r\n  increaseMonth,\r\n  prevMonthButtonDisabled,\r\n  nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n  <div>\r\n    <button onClick={decreaseMonth} disabled={prevMonthButtonDisabled}>\r\n      {\"<\"}\r\n    </button>\r\n    <select\r\n      value={months[date.getMonth()]}\r\n      onChange={({ target: { value } }) => changeMonth(months.indexOf(value))}\r\n    >\r\n      {months.map((option) => (\r\n        <option key={option} value={option}>\r\n          {option}\r\n        </option>\r\n      ))}\r\n    </select>\r\n    <select\r\n      value={date.getFullYear()}\r\n      onChange={({ target: { value } }) => changeYear(parseInt(value, 10))}\r\n    >\r\n      {years.map((option) => (\r\n        <option key={option} value={option}>\r\n          {option}\r\n        </option>\r\n      ))}\r\n    </select>\r\n    <button onClick={increaseMonth} disabled={nextMonthButtonDisabled}>\r\n      {\">\"}\r\n    </button>\r\n  </div>\r\n);\r\n\r\nconst NextMonthHeader = ({\r\n  monthDate,\r\n  date,\r\n  customHeaderCount,\r\n  changeYear,\r\n  decreaseYear,\r\n  increaseYear,\r\n  prevYearButtonDisabled,\r\n  nextYearButtonDisabled,\r\n  changeMonth,\r\n  decreaseMonth,\r\n  increaseMonth,\r\n  prevMonthButtonDisabled,\r\n  nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n  <div>\r\n    <label>\r\n      {months[getNextMonthValue(date.getMonth())] +\r\n        \" \" +\r\n        getNextYearValue(date.getFullYear(), date.getMonth())}\r\n    </label>\r\n  </div>\r\n);\r\n\r\nconst CustomDateRangeHeader = ({\r\n  monthDate,\r\n  date,\r\n  customHeaderCount,\r\n  changeYear,\r\n  decreaseYear,\r\n  increaseYear,\r\n  prevYearButtonDisabled,\r\n  nextYearButtonDisabled,\r\n  changeMonth,\r\n  decreaseMonth,\r\n  increaseMonth,\r\n  prevMonthButtonDisabled,\r\n  nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n  <div\r\n    style={{\r\n      margin: 10,\r\n      display: \"flex\",\r\n      justifyContent: \"center\",\r\n    }}\r\n  >\r\n    {customHeaderCount === 0 && (\r\n      <CurrentMonthHeader\r\n        date={date}\r\n        monthDate={monthDate}\r\n        changeMonth={changeMonth}\r\n        increaseMonth={increaseMonth}\r\n        decreaseMonth={decreaseMonth}\r\n        changeYear={changeYear}\r\n        increaseYear={increaseYear}\r\n        decreaseYear={decreaseYear}\r\n        nextMonthButtonDisabled={nextMonthButtonDisabled}\r\n        nextYearButtonDisabled={nextYearButtonDisabled}\r\n        prevMonthButtonDisabled={prevMonthButtonDisabled}\r\n        prevYearButtonDisabled={prevYearButtonDisabled}\r\n        customHeaderCount={customHeaderCount}\r\n      />\r\n    )}\r\n    {customHeaderCount === 1 && (\r\n      <NextMonthHeader\r\n        date={date}\r\n        monthDate={monthDate}\r\n        changeMonth={changeMonth}\r\n        increaseMonth={increaseMonth}\r\n        decreaseMonth={decreaseMonth}\r\n        changeYear={changeYear}\r\n        increaseYear={increaseYear}\r\n        decreaseYear={decreaseYear}\r\n        nextMonthButtonDisabled={nextMonthButtonDisabled}\r\n        nextYearButtonDisabled={nextYearButtonDisabled}\r\n        prevMonthButtonDisabled={prevMonthButtonDisabled}\r\n        prevYearButtonDisabled={prevYearButtonDisabled}\r\n        customHeaderCount={customHeaderCount}\r\n      />\r\n    )}\r\n  </div>\r\n);\r\n\r\nfunction DateRangeColumnFilter({\r\n  column: { filterValue = [], preFilteredRows, setFilter, id },\r\n}: {\r\n  column: any;\r\n}) {\r\n  const [startDate, setStartDate] = useState(null);\r\n  const [endDate, setEndDate] = useState(null);\r\n  const onDateChange = (dates: any) => {\r\n    const [start, end] = dates;\r\n    setStartDate(start);\r\n    setEndDate(end);\r\n    setFilter([start, end]);\r\n  };\r\n\r\n  return (\r\n    <div className=\"d-flex mt-2\">\r\n      <DatePicker\r\n        renderCustomHeader={CustomDateRangeHeader}\r\n        className=\"form-control\"\r\n        selected={startDate}\r\n        onChange={onDateChange}\r\n        startDate={startDate}\r\n        endDate={endDate}\r\n        selectsRange\r\n        monthsShown={1}\r\n        isClearable\r\n        locale=\"en-GB\"\r\n        dateFormat={\"dd/MM/yyyy\"}\r\n        shouldCloseOnSelect={false}\r\n      />\r\n    </div>\r\n  );\r\n}\r\n\r\nexport { DateRangeColumnFilter };\r\n","import LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport { ICompliancePropsWithFilters } from \"../../../leap-components/Compliance/IComplianceProps\";\r\nimport { Column } from \"react-table\";\r\nimport {\r\n  GetComplianceListFetchUrl,\r\n  ICompliance,\r\n} from \"../../../api/ICompliance\";\r\nimport { getIconForType } from \"../../../leap-components/icons/LeapIcons\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { Grid } from \"../../../leap-components/Grid\";\r\nimport { formatDate } from \"../../../api/DateUtils\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\nimport {\r\n  loadComplianceOptionsAsync,\r\n  selectComplianceOptions,\r\n} from \"../../../redux/slices/compliance\";\r\nimport { DateRangeColumnFilter } from \"../../../leap-components/Grid/FetchGrid/DateRangeColumnFilter\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { GetComplianceRecordDetailsUrl } from \"../../routeFactory\";\r\n\r\nconst ComplianceServerSide = ({\r\n  licenceProfile,\r\n  complianceRecordTypes,\r\n  complianceStatuses,\r\n}: ICompliancePropsWithFilters) => {\r\n  const tableColumnsBig: Column<Record<string, ICompliance>>[] = [\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"type\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        complianceRecordTypes.list.map((option) => option.type)\r\n      ),\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(rowInfo.value)}</span>\r\n            </td>\r\n            <td>{rowInfo.value}</td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return (\r\n          <Link\r\n            to={GetComplianceRecordDetailsUrl(\r\n              rowData.compliancerecord_id,\r\n              rowData.type,\r\n              licenceProfile.profileNo\r\n            )}\r\n          >\r\n            {rowInfo.value}\r\n          </Link>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"date\",\r\n      Filter: DateRangeColumnFilter,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        complianceStatuses.list.map((option) => option.status)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Licence Version\",\r\n      accessor: \"licenceregno\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        licenceProfile.licenceVersionsList.list.map((version) => version.reg_no)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ICompliance>>[] = [\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"type\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        complianceRecordTypes.list.map((option) => option.type)\r\n      ),\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(rowInfo.value)}</span>\r\n            </td>\r\n            <td>{rowInfo.value}</td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return (\r\n          <Link\r\n            to={GetComplianceRecordDetailsUrl(\r\n              rowData.compliancerecord_id,\r\n              rowData.type,\r\n              licenceProfile.profileNo\r\n            )}\r\n          >\r\n            {rowInfo.value}\r\n          </Link>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const fetchUrl = (\r\n    pageNo: number,\r\n    recordsPerPage: number,\r\n    searchText: string,\r\n    filters: any\r\n  ) => {\r\n    return GetComplianceListFetchUrl(\r\n      licenceProfile.id,\r\n      pageNo,\r\n      recordsPerPage,\r\n      searchText,\r\n      filters\r\n    );\r\n  };\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return <EpaCard title={\"\"} content={bodyElements} />;\r\n};\r\n\r\nconst ComplianceTab = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const complianceOptionsSelector = useAppSelector(selectComplianceOptions);\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo } = useParams();\r\n  if (!profileNo) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (\r\n    !complianceOptionsSelector.complianceRecordTypes ||\r\n    !complianceOptionsSelector.complianceStatuses\r\n  ) {\r\n    dispatch(loadComplianceOptionsAsync(licenceProfile.id));\r\n    return <Loading />;\r\n  }\r\n\r\n  const contentElement = (\r\n    <ComplianceServerSide\r\n      licenceProfile={licenceProfile}\r\n      complianceRecordTypes={complianceOptionsSelector.complianceRecordTypes}\r\n      complianceStatuses={complianceOptionsSelector.complianceStatuses}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ComplianceTab;\r\n","export enum SiteVisitRegardingObjectTypes {\r\n  LR = \"Licensee Return\",\r\n  CI = \"CI\",\r\n  NC = \"Non Compliance\",\r\n}\r\n\r\nexport interface SiteVisitsGridProps {\r\n  regardingObjectId: string;\r\n  regardingObjectType: SiteVisitRegardingObjectTypes;\r\n}\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface IBreadCrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile }: IBreadCrumbProps) => {\r\n  const profileText = `${licenceProfile.organisation} - ${licenceProfile.profileNo}`;\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n          <Breadcrumb.Item\r\n            href={`/licence-profile/${licenceProfile.profileNo}`}\r\n          >\r\n            {profileText}\r\n          </Breadcrumb.Item>\r\n          <Breadcrumb.Item active>Licence Versions</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport { IComplianceProps } from \"../../../leap-components/Compliance/IComplianceProps\";\r\nimport { Column } from \"react-table\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { Grid } from \"../../../leap-components/Grid\";\r\nimport {\r\n  ILicenceVersion,\r\n  IsCoALicense,\r\n  IsDumpingAtSeaLicense,\r\n  IsWasteWaterDischargeAuthorisation,\r\n} from \"../../../api/LicenceVersion\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  IsIndustrialEmissionsLicense,\r\n  IsWasteLicense,\r\n} from \"../../../api/LicenceVersion\";\r\nimport { ExternalLinkIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\nconst LicensingDocumentsCellFactory = (licenceProfile: ILicenceProfile) => {\r\n  return (rowInfo: any) => {\r\n    const licence = rowInfo.row.original as ILicenceVersion;\r\n    let url = \"\";\r\n    if (IsIndustrialEmissionsLicense(licence)) {\r\n      url = `https://epawebapp.epa.ie/terminalfour/ippc/ippc-view.jsp?regno=${licence.reg_no}`;\r\n    } else if (IsWasteLicense(licence)) {\r\n      url = `https://epawebapp.epa.ie/terminalfour/waste/waste-view.jsp?regno=${licence.reg_no}`;\r\n    } else if (\r\n      IsWasteWaterDischargeAuthorisation(licence) ||\r\n      IsCoALicense(licence)\r\n    ) {\r\n      url = `https://epawebapp.epa.ie/terminalfour/wwda/wwda-view.jsp?regno=${licence.reg_no}`;\r\n    } else if (IsDumpingAtSeaLicense(licence)) {\r\n      url = `https://epawebapp.epa.ie/terminalfour/DaS/DaS-view.jsp?regno=${licence.reg_no}`;\r\n    }\r\n\r\n    if (url === \"\") {\r\n      return <span>-</span>;\r\n    }\r\n\r\n    return (\r\n      <a href={url} target=\"_blank\" style={{ cursor: \"pointer\" }}>\r\n        <span style={{ marginRight: \"5px\" }}>Licensing Documents</span>\r\n        <ExternalLinkIcon />\r\n      </a>\r\n    );\r\n  };\r\n};\r\n\r\nconst LicenceVersionsGrid = ({ licenceProfile }: IComplianceProps) => {\r\n  const tableColumnsBig: Column<Record<string, ILicenceVersion>>[] = [\r\n    {\r\n      Header: \"Licence Version\",\r\n      accessor: \"reg_no\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Type\",\r\n      accessor: \"licence_type\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Status\",\r\n      accessor: \"licence_status\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Sub-Status\",\r\n      accessor: \"licence_substatus\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licensed Date\",\r\n      accessor: \"date_of_licence\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Replaced Date\",\r\n      accessor: \"ceased_date\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"\",\r\n      accessor: \"licenceprofile_id\",\r\n      Filter: false,\r\n      Cell: LicensingDocumentsCellFactory(licenceProfile),\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ILicenceVersion>>[] = [\r\n    {\r\n      Header: \"Licence Version\",\r\n      accessor: \"reg_no\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Status\",\r\n      accessor: \"licence_status\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licensed Date\",\r\n      accessor: \"date_of_licence\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"\",\r\n      accessor: \"licenceprofile_id\",\r\n      Filter: false,\r\n      Cell: LicensingDocumentsCellFactory(licenceProfile),\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={licenceProfile.licenceVersionsList.list}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={licenceProfile.licenceVersionsList.list}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return <EpaCard title={\"\"} content={bodyElements} />;\r\n};\r\n\r\nconst LicenceVersionsTab = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo } = useParams();\r\n  if (!profileNo) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  const contentElement = (\r\n    <LicenceVersionsGrid licenceProfile={licenceProfile} />\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"licence-versions\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LicenceVersionsTab;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ILicenseeReturnDetails } from \"../../../api/ILicenseeReturns\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, licenseeReturn }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{licenseeReturn.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport { IInstruction } from \"../../api/Instruction\";\r\nimport { GetInstructionsFromLicenseeReturnFetchUrl } from \"../../api/Instruction\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { InstructionsGridProps } from \"./InstructionsGridProps\";\r\n\r\nconst GetUrlForInstruction = (\r\n  instruction: IInstruction,\r\n  licenceProfile: ILicenceProfile\r\n) => {\r\n  return `/licence-profile/${licenceProfile.profileNo}/compliance/lr-instruction/${instruction.epainitiatedcorrespondenceid}`;\r\n};\r\n\r\nconst RefNoCellFunctionFactory = (licenceProfile: ILicenceProfile) => {\r\n  const RefNoCellFunction = (rowInfo: any): JSX.Element => (\r\n    <table>\r\n      <tr>\r\n        <td style={{ paddingTop: \"6px\" }}>\r\n          <span>{getIconForType(\"EPA Initiated Correspondence\")}</span>\r\n        </td>\r\n        <td>\r\n          <Link to={GetUrlForInstruction(rowInfo.row.original, licenceProfile)}>\r\n            {rowInfo.value}\r\n          </Link>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n  );\r\n  return RefNoCellFunction;\r\n};\r\n\r\nconst InstructionsGrid = ({\r\n  licenseeReturnId,\r\n  licenceProfile,\r\n}: InstructionsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetInstructionsFromLicenseeReturnFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(licenseeReturnId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IInstruction>>[] = [\r\n    {\r\n      Header: \"Ref.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      Cell: RefNoCellFunctionFactory(licenceProfile),\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Correspondence Type\",\r\n      accessor: \"correspondencetype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Notification\",\r\n      accessor: \"licensingnotification\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => (\r\n        <div\r\n          className=\"long-text\"\r\n          dangerouslySetInnerHTML={{ __html: rowInfo.value }}\r\n        ></div>\r\n      ),\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IInstruction>>[] = [\r\n    {\r\n      Header: \"Ref.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      Cell: RefNoCellFunctionFactory(licenceProfile),\r\n    },\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Correspondence Type\",\r\n      accessor: \"correspondencetype\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { InstructionsGrid };\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport {\r\n  GetRequestsForInformationFromLicenseeReturnFetchUrl,\r\n  IRequestForInformation,\r\n} from \"../../api/RequestForInformation\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { RequestsForInformationGridProps } from \"./RequestsForInformationGridProps\";\r\n\r\nconst GetUrlForRequestForInformation = (\r\n  licenceProfile: ILicenceProfile,\r\n  requestForInformation: IRequestForInformation\r\n) => {\r\n  return `/licence-profile/${licenceProfile.profileNo}/compliance/request-for-information/${requestForInformation.rfiid}`;\r\n};\r\n\r\nconst RequestsForInformationGrid = ({\r\n  licenceProfile,\r\n  licenseeReturnId,\r\n}: RequestsForInformationGridProps) => {\r\n  const getFetchUrlFn = (returnId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetRequestsForInformationFromLicenseeReturnFetchUrl(\r\n        returnId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrlFn = getFetchUrlFn(licenseeReturnId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IRequestForInformation>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Licensee Return\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForRequestForInformation(\r\n                  licenceProfile,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date Issued by EPA\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licensee Response Date\",\r\n      accessor: \"responsereceiveddate\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IRequestForInformation>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Licensee Return\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForRequestForInformation(\r\n                  licenceProfile,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrlFn}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrlFn}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { RequestsForInformationGrid };\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetSiteVisitsFromComplianceInvestigationFetchUrl,\r\n  GetSiteVisitsFromLicenseeReturnFetchUrl,\r\n  GetSiteVisitsFromNonComplianceFetchUrl,\r\n  ISiteVisit,\r\n} from \"../../api/ISiteVisit\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { SiteVisitsGridProps } from \"./SiteVisitsGridProps\";\r\n\r\nconst GetUrlForSiteVisit = (siteVisit: ISiteVisit) => {\r\n  return `/licence-profile/${siteVisit.profile_number}/compliance/sitevisit/${siteVisit.sitevisitid}`;\r\n};\r\n\r\nconst SiteVisitsGrid = ({\r\n  regardingObjectId,\r\n  regardingObjectType,\r\n}: SiteVisitsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (regardingObjectType) {\r\n        case \"CI\":\r\n          return GetSiteVisitsFromComplianceInvestigationFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Non Compliance\":\r\n          return GetSiteVisitsFromNonComplianceFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case \"Licensee Return\":\r\n        default:\r\n          return GetSiteVisitsFromLicenseeReturnFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(regardingObjectId);\r\n\r\n  const tableColumnsBig: Column<Record<string, ISiteVisit>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Site Visit\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link to={GetUrlForSiteVisit(rowInfo.row.original)}>\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Visit Date\",\r\n      accessor: \"visit_date\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Visit Type\",\r\n      accessor: \"visit_type\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Visit Title\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ISiteVisit>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"Site Visit\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link to=\"\">{rowInfo.value}</Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Visit Title\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { SiteVisitsGrid };\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { ILicenseeReturnDetails } from \"../../../api/ILicenseeReturns\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { InstructionsGrid } from \"../../../leap-components/Instructions/InstructionsGrid\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\nimport { RequestsForInformationGrid } from \"../../../leap-components/RequestsForInformation/RequestsForInformationGrid\";\r\nimport { SiteVisitsGrid } from \"../../../leap-components/SiteVisits/SiteVisitsGrid\";\r\nimport { SiteVisitRegardingObjectTypes } from \"../../../leap-components/SiteVisits/SiteVisitsGridProps\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  licenceProfile: ILicenceProfile;\r\n  licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\ninterface LicenseeReturnsProps {\r\n  licenceProfile: ILicenceProfile;\r\n  licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\nconst RequestsForInformation = ({\r\n  licenceProfile,\r\n  licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n  <RequestsForInformationGrid\r\n    licenceProfile={licenceProfile}\r\n    licenseeReturnId={licenseeReturn.licenseereturnid}\r\n  />\r\n);\r\n\r\nconst Instructions = ({\r\n  licenceProfile,\r\n  licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n  <InstructionsGrid\r\n    licenseeReturnId={licenseeReturn.licenseereturnid}\r\n    licenceProfile={licenceProfile}\r\n  />\r\n);\r\n\r\nconst SiteVisits = ({\r\n  licenceProfile,\r\n  licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n  <SiteVisitsGrid\r\n    regardingObjectType={SiteVisitRegardingObjectTypes.LR}\r\n    regardingObjectId={licenseeReturn.licenseereturnid}\r\n  />\r\n);\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  licenseeReturn,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"rfis\">Requests for Information</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"instructions\">Instructions</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"non-compliances\">Non Compliances</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"site-visits\">Site Visits</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={licenseeReturn.licenseereturnid} />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"rfis\">\r\n          <RequestsForInformation\r\n            licenceProfile={licenceProfile}\r\n            licenseeReturn={licenseeReturn}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"instructions\">\r\n          <Instructions\r\n            licenceProfile={licenceProfile}\r\n            licenseeReturn={licenseeReturn}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"site-visits\">\r\n          <SiteVisits\r\n            licenceProfile={licenceProfile}\r\n            licenseeReturn={licenseeReturn}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"non-compliances\">\r\n          <NonCompliancesGrid\r\n            relatedRecordId={licenseeReturn.licenseereturnid}\r\n            relatedRecordType=\"Licensee Return\"\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  licenceProfile,\r\n  licenseeReturn,\r\n}: LicenseeReturnsProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      licenceProfile={licenceProfile}\r\n      licenseeReturn={licenseeReturn}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","export enum EdenMessagesGridType {\r\n  TaskBasedEdenMessages = 0,\r\n  RegardingBasedEdenMessages = 1,\r\n}\r\n\r\nexport interface EdenMessagesGridProps {\r\n  edenMessagesType: EdenMessagesGridType;\r\n  profileNumber: string;\r\n  taskId?: string;\r\n  regardingObjectId?: string;\r\n}\r\n","import { Card, Col, Row, Form } from \"react-bootstrap\";\r\nimport { ILicenseeReturnDetails } from \"../../../api/ILicenseeReturns\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { LicenseeReturnIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface LicenseeReturnHeaderProps {\r\n  licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\nconst LicenseeReturnHeader = ({\r\n  licenseeReturn,\r\n}: LicenseeReturnHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <LicenseeReturnIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Licensee Return: {licenseeReturn.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={licenseeReturn.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={licenseeReturn.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={licenseeReturn.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default LicenseeReturnHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { ILicenseeReturnDetails } from \"../../../api/ILicenseeReturns\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface LicenseeReturnDetailsProps {\r\n  licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\nconst LicenseeReturnDetails = ({\r\n  licenseeReturn,\r\n}: LicenseeReturnDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Received Date\"}\r\n            value={licenseeReturn.datereceived}\r\n          />\r\n          <EpaField label={\"Closed Date\"} value={licenseeReturn.closeddate} />\r\n          <EpaField label={\"Title\"} value={licenseeReturn.title} />\r\n          <EpaField label={\"Decision\"} value={licenseeReturn.decision} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Document Type\"} value={licenseeReturn.doctype} />\r\n          <EpaField\r\n            label={\"Document SubType\"}\r\n            value={licenseeReturn.docsubtype}\r\n          />\r\n          <EpaField\r\n            label={\"Document Category\"}\r\n            value={licenseeReturn.documentcategory}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Description (submitted by licensee)\"}\r\n            value={licenseeReturn.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Licensee Return Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default LicenseeReturnDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IComplianceInvestigationDetails } from \"../../api/IComplianceInvestigation\";\r\nimport { ILicenceProfile } from \"../../api/LicenceProfile\";\r\nimport { GetComplianceRecordDetailsUrl } from \"../../leap-pages/routeFactory\";\r\nimport EpaCard from \"../EpaCard\";\r\nimport EpaField2Rows from \"../EpaField2Rows\";\r\n\r\nconst complianceInvestigation = \"Compliance Investigation\";\r\n\r\ninterface IComplianceInvestigationBoxProps {\r\n  complianceInvestigationDetails: IComplianceInvestigationDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst ComplianceInvestigationBox = ({\r\n  complianceInvestigationDetails,\r\n  licenceProfile,\r\n}: IComplianceInvestigationBoxProps) => {\r\n  var bodyElements = (\r\n    <Row>\r\n      <Col className=\"col-12 col-md-6\">\r\n        <Row>\r\n          <Col className=\"col-6 col-md-3\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              content={\r\n                <Link\r\n                  to={GetComplianceRecordDetailsUrl(\r\n                    complianceInvestigationDetails.complianceinvestigationid,\r\n                    \"Compliance Investigation\",\r\n                    licenceProfile.profileNo\r\n                  )}\r\n                >\r\n                  {complianceInvestigationDetails.reference}\r\n                </Link>\r\n              }\r\n            />\r\n          </Col>\r\n          <Col className=\"col-6 col-md-3\">\r\n            <EpaField2Rows\r\n              label={\"Date Raised by EPA\"}\r\n              value={complianceInvestigationDetails.dateraised}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-6 col-md-3\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={complianceInvestigationDetails.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-6 col-md-3\">\r\n            <EpaField2Rows\r\n              label={\"Issue / Theme\"}\r\n              value={complianceInvestigationDetails.subject}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Col>\r\n      <Col className=\"col-12 col-md-6\">\r\n        <EpaField2Rows\r\n          label={\"Title\"}\r\n          value={complianceInvestigationDetails.title}\r\n        />\r\n      </Col>\r\n    </Row>\r\n  );\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"Associated with Compliance Investigation\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport { ComplianceInvestigationBox };\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport LicenseeReturnHeader from \"./LicenseeReturnHeader\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport {\r\n  loadLicenseeReturnAsync,\r\n  selectLicenseeReturn,\r\n} from \"../../../redux/slices/licenseeReturn\";\r\nimport LicenseeReturnDetails from \"./LicenseeReturnDetails\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { ComplianceInvestigationBox } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationBox\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst LicenseeReturn = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingLicenseeReturnId, setLoadingLicenseeReturnId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const licenseeReturnSelector = useAppSelector(selectLicenseeReturn);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, licenseeReturnId } = useParams();\r\n  if (!profileNo || !licenseeReturnId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingLicenseeReturnId !== licenseeReturnId) {\r\n    setLoadingLicenseeReturnId(licenseeReturnId);\r\n    dispatch(loadLicenseeReturnAsync(licenseeReturnId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const licenseeReturn = licenseeReturnSelector.licenseeReturn;\r\n\r\n  if (licenseeReturnSelector.fetchStatus !== \"idle\") {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!licenseeReturn) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!licenseeReturn.response.ok) {\r\n    if (licenseeReturn.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <LicenseeReturnHeader licenseeReturn={licenseeReturn} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <LicenseeReturnDetails licenseeReturn={licenseeReturn} />\r\n        </Col>\r\n      </Row>\r\n      {licenseeReturn.complianceInvestigationDetails && (\r\n        <Row>\r\n          <Col className=\"col-12 col-sm-12 col-md-12\">\r\n            <ComplianceInvestigationBox\r\n              complianceInvestigationDetails={\r\n                licenseeReturn.complianceInvestigationDetails\r\n              }\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            licenceProfile={licenceProfile}\r\n            licenseeReturn={licenseeReturn}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        licenseeReturn={licenseeReturn}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LicenseeReturn;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { IRequestForInformation } from \"../../../api/RequestForInformation\";\r\nimport { GetLicenseeReturnPageUrl } from \"../../routeFactory\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  requestForInformation: IRequestForInformation;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  requestForInformation,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${requestForInformation.profileNo}`}\r\n        >\r\n          {licenceProfile.organisation} - {requestForInformation.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${requestForInformation.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={GetLicenseeReturnPageUrl(\r\n            requestForInformation.profileNo,\r\n            requestForInformation.licenseesubmisionid\r\n          )}\r\n        >\r\n          {requestForInformation.licensee_return_reference}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {requestForInformation.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IRequestForInformation } from \"../../../api/RequestForInformation\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  requestForInformation: IRequestForInformation;\r\n}\r\n\r\ninterface RequestForInformationProps {\r\n  requestForInformation: IRequestForInformation;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  requestForInformation,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={requestForInformation.rfiid} />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  requestForInformation,\r\n}: RequestForInformationProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      requestForInformation={requestForInformation}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row, Form } from \"react-bootstrap\";\r\nimport { IRequestForInformation } from \"../../../api/RequestForInformation\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { LicenseeReturnIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface RequestForInformationHeaderProps {\r\n  requestForInformation: IRequestForInformation;\r\n}\r\n\r\nconst RequestForInformationHeader = ({\r\n  requestForInformation,\r\n}: RequestForInformationHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <LicenseeReturnIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>\r\n                      Request for Information: {requestForInformation.reference}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={requestForInformation.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={requestForInformation.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={requestForInformation.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default RequestForInformationHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IRequestForInformation } from \"../../../api/RequestForInformation\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\nimport { GetLicenseeReturnPageUrl } from \"../../routeFactory\";\r\n\r\ninterface RequestForInformationDetailsProps {\r\n  requestForInformation: IRequestForInformation;\r\n}\r\n\r\nconst RequestForInformationDetails = ({\r\n  requestForInformation,\r\n}: RequestForInformationDetailsProps) => {\r\n  const linkToLicenseeReturnDetails = GetLicenseeReturnPageUrl(\r\n    requestForInformation.profileNo,\r\n    requestForInformation.licenseesubmisionid\r\n  );\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Issue by the EPA\"}\r\n            value={requestForInformation.datesubmitted}\r\n          />\r\n          <EpaField label={\"Subject\"} value={requestForInformation.subject} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Licensee Response Due Date\"}\r\n            value={requestForInformation.duedate}\r\n          />\r\n          <EpaField\r\n            label={\"Related Licensee Return\"}\r\n            value={\r\n              <Link to={linkToLicenseeReturnDetails}>\r\n                {requestForInformation.licensee_return_reference}\r\n              </Link>\r\n            }\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Question from EPA\"}\r\n            value={requestForInformation.question}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Response Received Date\"}\r\n            value={requestForInformation.responsereceiveddate}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Response from licensee\"}\r\n            value={requestForInformation.response}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard title={\"Request for Information Details\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RequestForInformationDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  loadRequestForInformationAsync,\r\n  selectRequestForInformation,\r\n} from \"../../../redux/slices/requestForInformation\";\r\nimport RequestForInformationHeader from \"./RequestForInformationHeader\";\r\nimport RequestForInformationDetails from \"./RequestForInformationDetails\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst RequestForInformation = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingRfiId, setLoadingRfiId] = useState(\"\");\r\n\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const requestForInformationSelector = useAppSelector(\r\n    selectRequestForInformation\r\n  );\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, requestForInformationId } = useParams();\r\n  if (!profileNo || !requestForInformationId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  const requestForInformation =\r\n    requestForInformationSelector.requestForInformation;\r\n\r\n  if (requestForInformationId !== loadingRfiId) {\r\n    setLoadingRfiId(requestForInformationId);\r\n    dispatch(loadRequestForInformationAsync(requestForInformationId));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!requestForInformation) {\r\n    return <Loading />;\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RequestForInformationHeader\r\n            requestForInformation={requestForInformation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RequestForInformationDetails\r\n            requestForInformation={requestForInformation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            requestForInformation={requestForInformation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        requestForInformation={requestForInformation}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default RequestForInformation;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IFindingAndRecommendationDetails } from \"../../../api/IFindingAndRecommendation\";\r\nimport { ISiteVisit } from \"../../../api/ISiteVisit\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { IRequestForInformation } from \"../../../api/RequestForInformation\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  findingAndRecommendation: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  findingAndRecommendation,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${findingAndRecommendation.profileNo}`}\r\n        >\r\n          {licenceProfile.organisation} - {findingAndRecommendation.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${findingAndRecommendation.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${findingAndRecommendation.profileNo}/compliance/sitevisit/${findingAndRecommendation.regardingobjectid}`}\r\n        >\r\n          {findingAndRecommendation.siteVisit?.reference}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {findingAndRecommendation.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetEdenMessagesByRegardingFetchUrl,\r\n  GetEdenMessagesByTaskFetchUrl,\r\n  IEdenMessage,\r\n} from \"../../api/IEdenMessage\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport {\r\n  EdenMessagesGridProps,\r\n  EdenMessagesGridType,\r\n} from \"./EdenMessagesGridProps\";\r\n\r\nconst GetUrlForEdenMessage = (\r\n  profileNumber: string,\r\n  edenMessage: IEdenMessage\r\n) => {\r\n  return `/licence-profile/${profileNumber}/compliance/eden-message/${edenMessage.edenmessageid}`;\r\n};\r\n\r\nconst EdenMessagesGrid = ({\r\n  edenMessagesType,\r\n  profileNumber,\r\n  taskId,\r\n  regardingObjectId,\r\n}: EdenMessagesGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (edenMessagesType) {\r\n        case EdenMessagesGridType.TaskBasedEdenMessages:\r\n          return GetEdenMessagesByTaskFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n        case EdenMessagesGridType.RegardingBasedEdenMessages:\r\n          return GetEdenMessagesByRegardingFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  var relatedId = \"\";\r\n  if (taskId) {\r\n    relatedId = taskId;\r\n  }\r\n\r\n  if (regardingObjectId) {\r\n    relatedId = regardingObjectId;\r\n  }\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IEdenMessage>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"EDEN Message\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForEdenMessage(profileNumber, rowInfo.row.original)}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Date Received\",\r\n      accessor: \"dateraised\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Response from EPA\",\r\n      accessor: \"response\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IEdenMessage>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>{getIconForType(\"EDEN Message\")}</span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForEdenMessage(profileNumber, rowInfo.row.original)}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { EdenMessagesGrid };\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IFindingAndRecommendationDetails } from \"../../../api/IFindingAndRecommendation\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { EdenMessagesGrid } from \"../../../leap-components/EdenMessages/EdenMessagesGrid\";\r\nimport { EdenMessagesGridType } from \"../../../leap-components/EdenMessages/EdenMessagesGridProps\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  licenceProfile: ILicenceProfile;\r\n  findingAndRecommendation: IFindingAndRecommendationDetails;\r\n}\r\n\r\ninterface FindingAndRecommendationProps {\r\n  licenceProfile: ILicenceProfile;\r\n  findingAndRecommendation: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  licenceProfile,\r\n  findingAndRecommendation,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"messages\">Messages</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"messages\">\r\n          <EdenMessagesGrid\r\n            edenMessagesType={EdenMessagesGridType.TaskBasedEdenMessages}\r\n            profileNumber={licenceProfile.profileNo}\r\n            taskId={findingAndRecommendation.taskid}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  licenceProfile,\r\n  findingAndRecommendation,\r\n}: FindingAndRecommendationProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"messages\"\r\n      licenceProfile={licenceProfile}\r\n      findingAndRecommendation={findingAndRecommendation}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row, Form } from \"react-bootstrap\";\r\nimport { IFindingAndRecommendationDetails } from \"../../../api/IFindingAndRecommendation\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { LicenseeReturnIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface FindingAndRecommendationHeaderProps {\r\n  findingAndRecommendation: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst FindingAndRecommendationHeader = ({\r\n  findingAndRecommendation,\r\n}: FindingAndRecommendationHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <LicenseeReturnIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>\r\n                      {`Finding / Recommendation: ${findingAndRecommendation.reference}`}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={findingAndRecommendation.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={findingAndRecommendation.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={findingAndRecommendation.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default FindingAndRecommendationHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IFindingAndRecommendationDetails } from \"../../../api/IFindingAndRecommendation\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface RequestForInformationDetailsProps {\r\n  findingAndRecommendation: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst FindingAndRecommendationDetails = ({\r\n  findingAndRecommendation,\r\n}: RequestForInformationDetailsProps) => {\r\n  const linkToSiteVisitDetails = `/licence-profile/${findingAndRecommendation.profileNo}/compliance/sitevisit/${findingAndRecommendation.regardingobjectid}`;\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Submitted by the EPA\"}\r\n            value={findingAndRecommendation.datesubmitted}\r\n          />\r\n          <EpaField\r\n            label={\"Subject\"}\r\n            value={findingAndRecommendation.subject}\r\n          />\r\n          <EpaField label={\"Sender\"} value={findingAndRecommendation.sender} />\r\n          <EpaField\r\n            label={\"Category\"}\r\n            value={findingAndRecommendation.category}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Licensee Response Due Date\"}\r\n            value={findingAndRecommendation.duedate}\r\n          />\r\n          <EpaField label={\"Type\"} value={findingAndRecommendation.type} />\r\n          <EpaField\r\n            label={\"Recipient\"}\r\n            value={findingAndRecommendation.recipient}\r\n          />\r\n          <EpaField\r\n            label={\"Subcategory\"}\r\n            value={findingAndRecommendation.subcategory}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Observation (EPA Originated)\"}\r\n            value={findingAndRecommendation.observation}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Action (EPA Originated)\"}\r\n            value={findingAndRecommendation.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"Finding / Recommendation Details\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default FindingAndRecommendationDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport FindingAndRecommendationHeader from \"./FindingAndRecommendationHeader\";\r\nimport FindingAndRecommendationDetails from \"./FindingAndRecommendationDetails\";\r\nimport {\r\n  loadFindingAndRecommendationAsync,\r\n  selectFindingAndRecommendation,\r\n} from \"../../../redux/slices/findingAndRecommendation\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst Instruction = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [\r\n    loadingFindingAndRecommendationId,\r\n    setLoadingFindingAndRecommendationId,\r\n  ] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const findingAndRecommendationSelector = useAppSelector(\r\n    selectFindingAndRecommendation\r\n  );\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, findingAndRecommendationId } = useParams();\r\n  if (!profileNo || !findingAndRecommendationId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingFindingAndRecommendationId !== findingAndRecommendationId) {\r\n    setLoadingFindingAndRecommendationId(findingAndRecommendationId);\r\n    dispatch(loadFindingAndRecommendationAsync(findingAndRecommendationId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const findingAndRecommendation =\r\n    findingAndRecommendationSelector.findingAndRecommendation;\r\n\r\n  if (!findingAndRecommendation) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!findingAndRecommendation.response.ok) {\r\n    if (findingAndRecommendation.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <FindingAndRecommendationHeader\r\n            findingAndRecommendation={findingAndRecommendation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <FindingAndRecommendationDetails\r\n            findingAndRecommendation={findingAndRecommendation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            licenceProfile={licenceProfile}\r\n            findingAndRecommendation={findingAndRecommendation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        findingAndRecommendation={findingAndRecommendation}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Instruction;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IInstructionDetails } from \"../../../api/Instruction\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { GetLicenseeReturnPageUrl } from \"../../routeFactory\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  instruction: IInstructionDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, instruction }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${instruction.profileNo}`}>\r\n          {licenceProfile.organisation} - {instruction.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${instruction.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={GetLicenseeReturnPageUrl(\r\n            instruction.profileNo,\r\n            instruction.licenseesubmissionid\r\n          )}\r\n        >\r\n          {instruction.licenseeReturn?.reference}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{instruction.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IInstructionDetails } from \"../../../api/Instruction\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  instruction: IInstructionDetails;\r\n}\r\n\r\ninterface InstructionProps {\r\n  instruction: IInstructionDetails;\r\n}\r\n\r\nconst SubTabs = ({ className, activeKey, instruction }: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={instruction.epainitiatedcorrespondenceid}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({ instruction }: InstructionProps) => {\r\n  var bodyElements = (\r\n    <SubTabs activeKey=\"documents\" instruction={instruction} />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IInstructionDetails } from \"../../../api/Instruction\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { getIconForType } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface InstructionHeaderProps {\r\n  instruction: IInstructionDetails;\r\n}\r\n\r\nconst InstructionHeader = ({ instruction }: InstructionHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>{getIconForType(\"EPA Initiated Correspondence\")}</td>\r\n                  <td>\r\n                    <h2>\r\n                      {`Licensee Return Instructions: ${instruction.reference}`}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={instruction.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={instruction.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={instruction.regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default InstructionHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IInstructionDetails } from \"../../../api/Instruction\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\nimport { GetLicenseeReturnPageUrl } from \"../../routeFactory\";\r\n\r\ninterface InstructionDetailsProps {\r\n  instruction: IInstructionDetails;\r\n}\r\n\r\nconst InstructionDetails = ({ instruction }: InstructionDetailsProps) => {\r\n  const linkToLicenseeReturn = GetLicenseeReturnPageUrl(\r\n    instruction.profileNo,\r\n    instruction.licenseesubmissionid\r\n  );\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Submitted by the EPA\"}\r\n            value={instruction.datesubmitted}\r\n          />\r\n          <EpaField label={\"Subject\"} value={instruction.subject} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Related Licensee Return\"}\r\n            value={\r\n              <Link to={linkToLicenseeReturn}>\r\n                {instruction.licenseeReturn?.reference}\r\n              </Link>\r\n            }\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Correspondence from EPA\"}\r\n            value={instruction.licensingnotification}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"Licensee Return Instructions Details\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default InstructionDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  loadInstructionAsync,\r\n  selectInstruction,\r\n} from \"../../../redux/slices/instruction\";\r\nimport InstructionHeader from \"./InstructionHeader\";\r\nimport InstructionDetails from \"./InstructionDetails\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst FindingAndRecommendation = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingInstructionById, setLoadingInstructionById] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const instructionSelector = useAppSelector(selectInstruction);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, instructionId } = useParams();\r\n  if (!profileNo || !instructionId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingInstructionById !== instructionId) {\r\n    setLoadingInstructionById(instructionId);\r\n    dispatch(loadInstructionAsync(instructionId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const instruction = instructionSelector.instruction;\r\n\r\n  if (!instruction) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!instruction.response.ok) {\r\n    if (instruction.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <InstructionHeader instruction={instruction} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <InstructionDetails instruction={instruction} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords instruction={instruction} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} instruction={instruction} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default FindingAndRecommendation;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IEdenMessageDetails } from \"../../../api/IEdenMessage\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  GetActionOrInstructionDetailsPageUrl,\r\n  GetComplianceInvestigationDetailsPageUrl,\r\n  GetEpaCorrespondenceDetailsPageUrl,\r\n  GetLicenseeReturnPageUrl,\r\n  GetSiteVisitDetailsPageUrl,\r\n  GetSiteVisitFindingAndRecommendationsDetailsPageUrl,\r\n} from \"../../routeFactory\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  edenMessage: IEdenMessageDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, edenMessage }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        {edenMessage.siteVisit && (\r\n          <Breadcrumb.Item\r\n            href={GetSiteVisitDetailsPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.siteVisit.sitevisitid\r\n            )}\r\n          >\r\n            {edenMessage.siteVisit.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        {edenMessage.complianceInvestigationDetails && (\r\n          <Breadcrumb.Item\r\n            href={GetComplianceInvestigationDetailsPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.complianceInvestigationDetails\r\n                .complianceinvestigationid\r\n            )}\r\n          >\r\n            {edenMessage.complianceInvestigationDetails.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        {edenMessage.licenseeReturn && (\r\n          <Breadcrumb.Item\r\n            href={GetLicenseeReturnPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.licenseeReturn.licenseereturnid\r\n            )}\r\n          >\r\n            {edenMessage.licenseeReturn.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        {edenMessage.epaCorrespondenceDetails && (\r\n          <Breadcrumb.Item\r\n            href={GetEpaCorrespondenceDetailsPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.epaCorrespondenceDetails.epainitiatedcorrespondenceid\r\n            )}\r\n          >\r\n            {\"EPA Initiated Correspondence\"}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        {edenMessage.findingAndRecommendation && (\r\n          <Breadcrumb.Item\r\n            href={GetSiteVisitFindingAndRecommendationsDetailsPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.findingAndRecommendation.taskid\r\n            )}\r\n          >\r\n            {edenMessage.findingAndRecommendation.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        {edenMessage.actionOrInstructionDetails && (\r\n          <Breadcrumb.Item\r\n            href={GetActionOrInstructionDetailsPageUrl(\r\n              licenceProfile.profileNo,\r\n              edenMessage.actionOrInstructionDetails.taskid\r\n            )}\r\n          >\r\n            {edenMessage.actionOrInstructionDetails.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        <Breadcrumb.Item active>{edenMessage.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IEdenMessageDetails } from \"../../../api/IEdenMessage\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  edenMessage: IEdenMessageDetails;\r\n}\r\n\r\ninterface EdenMessageProps {\r\n  edenMessage: IEdenMessageDetails;\r\n}\r\n\r\nconst SubTabs = ({ className, activeKey, edenMessage }: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={edenMessage.edenmessageid} />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({ edenMessage }: EdenMessageProps) => {\r\n  var bodyElements = (\r\n    <SubTabs activeKey=\"documents\" edenMessage={edenMessage} />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IEdenMessageDetails } from \"../../../api/IEdenMessage\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { getIconForType } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface EdenMessageHeaderProps {\r\n  licenceProfile: ILicenceProfile;\r\n  edenMessage: IEdenMessageDetails;\r\n}\r\n\r\nconst EdenMessageHeader = ({\r\n  edenMessage,\r\n  licenceProfile,\r\n}: EdenMessageHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>{getIconForType(\"EDEN Message\")}</td>\r\n                  <td>\r\n                    <h2>{`Message: ${edenMessage.reference}`}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={edenMessage.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={edenMessage.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={licenceProfile.version}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default EdenMessageHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IEdenMessageDetails } from \"../../../api/IEdenMessage\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface EdenMessageDetailsProps {\r\n  edenMessage: IEdenMessageDetails;\r\n}\r\n\r\nconst EdenMessageDetails = ({ edenMessage }: EdenMessageDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Received from Licensee\"}\r\n            value={edenMessage.dateraised}\r\n          />\r\n          <EpaField label={\"Subject\"} value={edenMessage.subject} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Date Closed\"} value={edenMessage.closeddate} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Message from Licensee\"}\r\n            value={edenMessage.message}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Response from EPA\"}\r\n            value={edenMessage.response}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Message Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default EdenMessageDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EdenMessageHeader from \"./EdenMessageHeader\";\r\nimport EdenMessageDetails from \"./EdenMessageDetails\";\r\nimport {\r\n  loadEdenMessageAsync,\r\n  selectEdenMessage,\r\n} from \"../../../redux/slices/edenMessage\";\r\n\r\nconst EdenMessage = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingMessageById, setLoadingMessageById] = useState(\"\");\r\n\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const edenMessageSelector = useAppSelector(selectEdenMessage);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, edenMessageId } = useParams();\r\n  if (!profileNo || !edenMessageId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (edenMessageId !== loadingMessageById) {\r\n    setLoadingMessageById(edenMessageId);\r\n    dispatch(loadEdenMessageAsync(edenMessageId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const edenMessage = edenMessageSelector.edenMessage;\r\n\r\n  if (!edenMessage) {\r\n    return <Loading />;\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <EdenMessageHeader\r\n            licenceProfile={licenceProfile}\r\n            edenMessage={edenMessage}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <EdenMessageDetails edenMessage={edenMessage} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords edenMessage={edenMessage} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs licenceProfile={licenceProfile} edenMessage={edenMessage} />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default EdenMessage;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst BreadCrumbs = () => {\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LeapHeaderComponent from \"../../leap-components/LeapHeaderComponent\";\r\n\r\nconst HeaderSubComponent = () => {\r\n  return (\r\n    <div>\r\n      <Row className=\"mb-1\">\r\n        <Col className=\"col-md-12\">\r\n          <h1>Licence and Enforcement Access Portal</h1>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-md-12\">\r\n          <h5>{\"  \"}</h5>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst Header = () => {\r\n  const headerContent = <HeaderSubComponent />;\r\n  return <LeapHeaderComponent headerContent={headerContent} />;\r\n};\r\n\r\nexport default Header;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\n\r\nconst HomeText = () => {\r\n  const text = (\r\n    <div>\r\n      <p>Welcome to LEAP, the EPA's Licence and Enforcement Access Portal</p>\r\n      <p>\r\n        LEAP provides you with access to the formal compliance &amp; enforcement\r\n        correspondence that is exchanged between the EPA and our regulated\r\n        operators in these activity areas:\r\n      </p>\r\n      <ul style={{ listStyleType: \"square\" }}>\r\n        <li>Dumping at Sea</li>\r\n        <li>\r\n          Major Industry: Industrial Emissions (IE), Integrated Pollution\r\n          Prevention &amp; Control (IPPC), Integrated Pollution Control (IPC)\r\n        </li>\r\n        <li>Radiological Protection</li>\r\n        <li>\r\n          Urban Waste Water Discharge: Waste Water Discharge Authorisations\r\n          (WWDA) and Certificates of Authorisation (CoA)\r\n        </li>\r\n        <li>Waste Management</li>\r\n      </ul>\r\n      <p>\r\n        LEAP allows you to view details of licences and permits issued by the\r\n        EPA, and holds records describing the regulation of licensed and\r\n        permitted sites. These include EPA Site Inspection and Monitoring\r\n        Reports, Licensee Returns, Incidents, Non-Compliances and Complaints,\r\n        plus information about Compliance Investigations at non-compliant sites.\r\n      </p>\r\n      <p>\r\n        <a\r\n          style={{ fontWeight: \"bold\" }}\r\n          href=\"https://www.epa.ie/our-services/compliance--enforcement/whats-happening/leap-online\"\r\n        >\r\n          Find more about LEAP\r\n        </a>\r\n      </p>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <Row>\r\n      <Col className=\"col-12\">{text}</Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default HomeText;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\n\r\ninterface ILeapHomeContainerProps {\r\n  content: JSX.Element;\r\n}\r\n\r\nconst LeapHomeContainer = ({ content }: ILeapHomeContainerProps) => (\r\n  <div className={\"tab \"}>\r\n    <Tab.Container id=\"dummy-tab\" activeKey={\"search\"}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"search\" href={\"/\"}>\r\n            LEAP Home\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"search\">{content}</Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nexport default LeapHomeContainer;\r\n","import { useState } from \"react\";\r\nimport { Button, Col, Form, InputGroup, Row } from \"react-bootstrap\";\r\nimport { Search } from \"react-feather\";\r\n\r\ninterface ILeapSearchProps {\r\n  searchChangedFn: (newSearch: string) => void;\r\n}\r\n\r\nconst LeapSearch = ({ searchChangedFn }: ILeapSearchProps) => {\r\n  const [searchValue, setSearchValue] = useState(\"\");\r\n  const searchChanged = (newSearch: string) => {\r\n    setSearchValue(newSearch);\r\n    searchChangedFn(newSearch);\r\n  };\r\n\r\n  return (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <InputGroup className=\"mb-3 input-group-navbar\" size=\"lg\">\r\n            <Form.Control\r\n              placeholder={\"Search\"}\r\n              aria-label=\"Search\"\r\n              onChange={(e) => searchChanged(e.target.value)}\r\n              value={searchValue}\r\n            />\r\n            <Button variant=\"\">\r\n              <Search\r\n                className=\"feather\"\r\n                onClick={() => searchChanged(searchValue)}\r\n              />\r\n            </Button>\r\n          </InputGroup>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LeapSearch;\r\n","import { useEffect, useState } from \"react\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport {\r\n  GetLicenceProfileSearchFetchUrl,\r\n  ILicenceSearchList,\r\n} from \"../../api/ILicenceProfileSearch\";\r\nimport EpaCard from \"../../leap-components/EpaCard\";\r\nimport { Grid } from \"../../leap-components/Grid\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport Header from \"./Header\";\r\nimport HomeText from \"./HomeText\";\r\nimport LeapHomeContainer from \"./LeapHomeContent\";\r\nimport LeapSearch from \"./Search\";\r\n\r\ninterface ISearchResultRow {\r\n  licence_name: string;\r\n  licence_number: string;\r\n  organisation: string;\r\n  town: string;\r\n  county: string;\r\n}\r\n\r\nconst GetUrlForLicenceProfile = (regNo: string) => {\r\n  return `/licence-profile/${regNo}`;\r\n};\r\n\r\nconst LeapHome = () => {\r\n  const [searchValue, setSearchValue] = useState(\"\");\r\n\r\n  const searchChangedFn = (newSearch: string) => {\r\n    setSearchValue(newSearch);\r\n  };\r\n\r\n  const tableColumnsBig: Column<Record<string, ISearchResultRow>>[] = [\r\n    {\r\n      Header: \"Licence Name\",\r\n      accessor: \"licence_name\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Number\",\r\n      accessor: \"licence_number\",\r\n      Filter: false,\r\n      filter: \"licence_number\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link to={GetUrlForLicenceProfile(rowInfo.value)}>\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Organisation\",\r\n      accessor: \"organisation\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Town\",\r\n      accessor: \"town\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"County\",\r\n      accessor: \"county\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  let fetchUrlFn = (\r\n    pageNo: number,\r\n    recordsPerPage: number,\r\n    searchText: string,\r\n    filters: any\r\n  ) => {\r\n    return GetLicenceProfileSearchFetchUrl(\r\n      pageNo,\r\n      recordsPerPage,\r\n      searchText,\r\n      filters\r\n    );\r\n  };\r\n\r\n  let formatResponseFunction = (searchResponse: ILicenceSearchList) => {\r\n    const array = searchResponse.list.map((result) => {\r\n      return {\r\n        licence_name: result.name,\r\n        licence_number: result.profilenumber,\r\n        organisation: result.organisationname,\r\n        town: result.town,\r\n        county: result.county,\r\n      } as ISearchResultRow;\r\n    });\r\n\r\n    return {\r\n      list: array,\r\n      length: searchResponse.length,\r\n      page: searchResponse.page,\r\n      count: searchResponse.count,\r\n    };\r\n  };\r\n\r\n  const results = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrlFn}\r\n          enablePagination={true}\r\n          enableQuickFind={false}\r\n          formatResponseFunction={formatResponseFunction}\r\n          searchText={searchValue}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrlFn}\r\n          enablePagination={true}\r\n          enableQuickFind={false}\r\n          formatResponseFunction={formatResponseFunction}\r\n          searchText={searchValue}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  const searchContent = (\r\n    <div>\r\n      <LeapSearch searchChangedFn={searchChangedFn} />\r\n      {results}\r\n    </div>\r\n  );\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-3\">\r\n          <EpaCard title=\"Welcome\" content={<HomeText />} />\r\n        </Col>\r\n        <Col className=\"col-12 col-sm-12 col-md-9\">\r\n          <EpaCard title=\"Search LEAP\" content={searchContent} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs />\r\n      <div className=\"ps-0\">\r\n        <Header />\r\n        <LeapHomeContainer content={contentElement} />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default LeapHome;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\nexport interface ILicenceSearchRow {\r\n  licenceprofileid: string;\r\n  name: string;\r\n  profilenumber: string;\r\n  activelicencetype: string;\r\n  activelicenceregno: string;\r\n  county: string;\r\n  town: string;\r\n  organisationname: string;\r\n  url: string;\r\n}\r\n\r\nexport interface ILicenceSearchList extends PageResult {\r\n  list: ILicenceSearchRow[];\r\n}\r\n\r\nexport const GetLicenceProfileSearchFetchUrl = (\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  let params = ``;\r\n\r\n  params += `?search_term=${encodeURIComponent(\r\n    searchText\r\n  )}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/LicenceProfile/search${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/licence-profile-search`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\n/*\r\nexport function FormatComplianceList(rows: Array<any>) {\r\n  return rows.map((item) => {\r\n    return <ICompliance>{\r\n      compliancerecord_id: item.compliancerecord_id,\r\n      date: formatDate(item.date),\r\n      licence_id: item.licence_id,\r\n      licenceregno: item.licenceregno,\r\n      profile_id: item.profile_id,\r\n      profilenumber: item.profilenumber,\r\n      reference: item.reference,\r\n      related_compliance_recordid: item.related_compliance_recordid,\r\n      status: item.status,\r\n      subject: item.subject,\r\n      type: item.type,\r\n    };\r\n  });\r\n}\r\n\r\n*/\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationDetails } from \"../../../api/IComplianceInvestigation\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  complianceInvestigation: IComplianceInvestigationDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  complianceInvestigation,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {complianceInvestigation.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationDetails } from \"../../../api/IComplianceInvestigation\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { ComplianceInvestigationIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface ComplianceInvestigationHeaderProps {\r\n  complianceInvestigation: IComplianceInvestigationDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst ComplianceInvestigationHeader = ({\r\n  complianceInvestigation,\r\n  licenceProfile,\r\n}: ComplianceInvestigationHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <ComplianceInvestigationIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>\r\n                      Compliance Investigation:{\" \"}\r\n                      {complianceInvestigation.reference}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={complianceInvestigation.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={complianceInvestigation.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={complianceInvestigation.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default ComplianceInvestigationHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationDetails } from \"../../../api/IComplianceInvestigation\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface IComplianceInvestigationDetailsProps {\r\n  complianceInvestigation: IComplianceInvestigationDetails;\r\n}\r\n\r\nconst ComplianceInvestigationDetails = ({\r\n  complianceInvestigation,\r\n}: IComplianceInvestigationDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Raised by EPA\"}\r\n            value={complianceInvestigation.dateraised}\r\n          />\r\n          <EpaField\r\n            label={\"EPA Response Level\"}\r\n            value={complianceInvestigation.responselevel}\r\n          />\r\n          <EpaField\r\n            label={\"Origin of Investigation\"}\r\n            value={complianceInvestigation.origin}\r\n          />\r\n          <EpaField\r\n            label={\"Investigation Title\"}\r\n            value={complianceInvestigation.title}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Closed\"}\r\n            value={complianceInvestigation.closedate}\r\n          />\r\n          <EpaField\r\n            label={\"Receptors\"}\r\n            value={complianceInvestigation.receptors}\r\n          />\r\n          <EpaField\r\n            label={\"Issue / Theme\"}\r\n            value={complianceInvestigation.subject}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Investigation Description\"}\r\n            value={complianceInvestigation.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"Compliance Investigation Details\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default ComplianceInvestigationDetails;\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetComplaintsFromComplianceInvestigationFetchUrl,\r\n  IComplaint,\r\n} from \"../../api/IComplaint\";\r\nimport { GetComplaintDetailsPageUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplaintIcon } from \"../icons/LeapIcons\";\r\nimport { ComplaintsGridProps } from \"./ComplaintsGridProps\";\r\n\r\nconst ComplaintsGrid = ({\r\n  relatedRecordType,\r\n  relatedrecordId,\r\n  licenceProfile,\r\n}: ComplaintsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (relatedRecordType) {\r\n        case \"CI\":\r\n        default:\r\n          return GetComplaintsFromComplianceInvestigationFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedrecordId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IComplaint>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>\r\n                <ComplaintIcon />\r\n              </span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetComplaintDetailsPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.complaintid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Occurred Date\",\r\n      accessor: \"dateoccurred\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Type\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IComplaint>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>\r\n                <ComplaintIcon />\r\n              </span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetComplaintDetailsPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.complaintid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Occurred Date\",\r\n      accessor: \"dateoccurred\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplaintsGrid };\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport {\r\n  GetComplianceInvestigationActionsAndInstructionsFetchUrl,\r\n  IComplianceInvestigationActionOrInstruction,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplianceInvestigationActionsInstructionsGridProps } from \"./ComplianceInvestigationActionsInstructionsGridProps\";\r\n\r\nconst ComplianceInvestigationActionsInstructionsGrid = ({\r\n  complianceInvestigationId,\r\n  licenceProfile,\r\n}: ComplianceInvestigationActionsInstructionsGridProps) => {\r\n  const GetUrlForActionOrInstruction = (\r\n    profileNumber: string,\r\n    actionOrInstruction: IComplianceInvestigationActionOrInstruction\r\n  ) => {\r\n    return `/licence-profile/${profileNumber}/compliance/action-or-instruction/${actionOrInstruction.taskid}`;\r\n  };\r\n\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetComplianceInvestigationActionsAndInstructionsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(complianceInvestigationId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IComplianceInvestigationActionOrInstruction>\r\n  >[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForActionOrInstruction(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Type\",\r\n      accessor: \"type\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Date Issued by EPA\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IComplianceInvestigationActionOrInstruction>\r\n  >[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"reference\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetUrlForActionOrInstruction(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationActionsInstructionsGrid };\r\n","import { Column } from \"react-table\";\r\nimport {\r\n  GetComplianceInvestigationEffectsFetchUrl,\r\n  IComplianceInvestigationEffect,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationEffect\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplianceInvestigationEffectsGridProps } from \"./ComplianceInvestigationEffectsGridProps\";\r\n\r\nconst ComplianceInvestigationEffectsGrid = ({\r\n  complianceInvestigationId,\r\n  licenceProfile,\r\n}: ComplianceInvestigationEffectsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetComplianceInvestigationEffectsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(complianceInvestigationId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IComplianceInvestigationEffect>\r\n  >[] = [\r\n    {\r\n      Header: \"Effect\",\r\n      accessor: \"effect\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Likelihood\",\r\n      accessor: \"likelihood\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Severity\",\r\n      accessor: \"severity\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Risk Score\",\r\n      accessor: \"riskscore\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Description\",\r\n      accessor: \"description\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IComplianceInvestigationEffect>\r\n  >[] = [\r\n    {\r\n      Header: \"Effect\",\r\n      accessor: \"effect\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Likelihood\",\r\n      accessor: \"likelihood\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Severity\",\r\n      accessor: \"severity\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Risk Score\",\r\n      accessor: \"riskscore\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationEffectsGrid };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IComplianceInvestigationEffect {\r\n  cieffectid: string;\r\n  effect: string;\r\n  likelihood: string;\r\n  severity: string;\r\n  riskscore: string;\r\n  description: string;\r\n  complianceinvestigationid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigatioEffectList extends PageResult {\r\n  list: IComplianceInvestigationEffect[];\r\n}\r\n\r\nexport const GetComplianceInvestigationEffectsFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Ci/listcieffects?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-effects`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Column } from \"react-table\";\r\nimport {\r\n  GetComplianceInvestigationLikelyCausesFetchUrl,\r\n  IComplianceInvestigationLikelyCause,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationLikelyCause\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplianceInvestigationLikelyCausesGridProps } from \"./ComplianceInvestigationLikelyCausesGridProps\";\r\n\r\nconst ComplianceInvestigationLikelyCausesGrid = ({\r\n  complianceInvestigationId,\r\n  licenceProfile,\r\n}: ComplianceInvestigationLikelyCausesGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetComplianceInvestigationLikelyCausesFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(complianceInvestigationId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IComplianceInvestigationLikelyCause>\r\n  >[] = [\r\n    {\r\n      Header: \"Likely Cause\",\r\n      accessor: \"cause\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Description\",\r\n      accessor: \"description\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IComplianceInvestigationLikelyCause>\r\n  >[] = [\r\n    {\r\n      Header: \"Likely Cause\",\r\n      accessor: \"cause\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationLikelyCausesGrid };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IComplianceInvestigationLikelyCause {\r\n  cilikelycauseid: string;\r\n  cause: string;\r\n  description: string;\r\n  complianceinvestigationid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigatioLikelyCauseList extends PageResult {\r\n  list: IComplianceInvestigationLikelyCause[];\r\n}\r\n\r\nexport const GetComplianceInvestigationLikelyCausesFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Ci/listcilikelycauses?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-likely-causes`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Column } from \"react-table\";\r\nimport {\r\n  GetComplianceInvestigationOutcomesFetchUrl,\r\n  IComplianceInvestigationOutcome,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationOutcome\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplianceInvestigationOutcomesGridProps } from \"./ComplianceInvestigationOutcomesGridProps\";\r\n\r\nconst ComplianceInvestigationOutcomesGrid = ({\r\n  complianceInvestigationId,\r\n  licenceProfile,\r\n}: ComplianceInvestigationOutcomesGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetComplianceInvestigationOutcomesFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(complianceInvestigationId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IComplianceInvestigationOutcome>\r\n  >[] = [\r\n    {\r\n      Header: \"Type\",\r\n      accessor: \"outcometype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"outcomecategory\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Sub Category\",\r\n      accessor: \"outcomesubcategory\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Description\",\r\n      accessor: \"description\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IComplianceInvestigationOutcome>\r\n  >[] = [\r\n    {\r\n      Header: \"Type\",\r\n      accessor: \"outcometype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Description\",\r\n      accessor: \"description\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationOutcomesGrid };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IComplianceInvestigationOutcome {\r\n  cioutcomeid: string;\r\n  outcometype: string;\r\n  outcomecategory: string;\r\n  outcomesubcategory: string;\r\n  description: string;\r\n  complianceinvestigationid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigationOutcomeList extends PageResult {\r\n  list: IComplianceInvestigationOutcome[];\r\n}\r\n\r\nexport const GetComplianceInvestigationOutcomesFetchUrl = (\r\n  complianceInvestigationId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n  let url = `${API_URL}/Ci/listcioutcomes?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/ci-outcomes`;\r\n  }\r\n\r\n  return url;\r\n};\r\n\r\nexport function FormatComplianceList(rows: Array<any>) {\r\n  return rows.map((item) => {\r\n    return <IComplianceInvestigationOutcome>{\r\n      cioutcomeid: item.cioutcomeid,\r\n      outcometype: item.outcometype,\r\n      outcomecategory: item.outcomecategory,\r\n      outcomesubcategory: item.outcomesubcategory,\r\n      description: item.description,\r\n      complianceinvestigationid: item.complianceinvestigationid,\r\n    };\r\n  });\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetIncidentsFromComplianceInvestigationFetchUrl,\r\n  IIncident,\r\n} from \"../../api/IIncident\";\r\nimport { GetIncidentPageUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Grid } from \"../Grid\";\r\nimport { IncidentIcon } from \"../icons/LeapIcons\";\r\nimport { IncidentsGridProps } from \"./IncidentsGridProps\";\r\n\r\nconst IncidentsGrid = ({\r\n  relatedRecordType,\r\n  relatedrecordId,\r\n  licenceProfile,\r\n}: IncidentsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      switch (relatedRecordType) {\r\n        case \"CI\":\r\n        default:\r\n          return GetIncidentsFromComplianceInvestigationFetchUrl(\r\n            relatedId,\r\n            pageNo,\r\n            recordsPerPage,\r\n            searchText,\r\n            filters\r\n          );\r\n      }\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(relatedrecordId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IIncident>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>\r\n                <IncidentIcon />\r\n              </span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetIncidentPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.incidentid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Start Date\",\r\n      accessor: \"approximatestart\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Category\",\r\n      accessor: \"incidentcategory\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IIncident>>[] = [\r\n    {\r\n      Header: \"Ref. No.\",\r\n      accessor: \"reference\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td style={{ paddingTop: \"6px\" }}>\r\n              <span>\r\n                <IncidentIcon />\r\n              </span>\r\n            </td>\r\n            <td>\r\n              <Link\r\n                to={GetIncidentPageUrl(\r\n                  licenceProfile.profileNo,\r\n                  rowInfo.row.original.incidentid\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Status\",\r\n      accessor: \"status\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Subject\",\r\n      accessor: \"subject\",\r\n      Filter: false,\r\n      filter: \"includes\",\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { IncidentsGrid };\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationDetails } from \"../../../api/IComplianceInvestigation\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { ComplaintsGrid } from \"../../../leap-components/Complaint/ComplaintsGrid\";\r\nimport { ComplianceInvestigationActionsInstructionsGrid } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationActionsInstructionsGrid\";\r\nimport { ComplianceInvestigationEffectsGrid } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationEffectsGrid\";\r\nimport { ComplianceInvestigationLikelyCausesGrid } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationLikelyCausesGrid\";\r\nimport { ComplianceInvestigationOutcomesGrid } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationOutcomesGrid\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { IncidentsGrid } from \"../../../leap-components/Incidents/IncidentsGrid\";\r\nimport { LicenseeReturnsGrid } from \"../../../leap-components/LicenseeReturns/LicenseeReturnsGrid\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\nimport { SiteVisitsGrid } from \"../../../leap-components/SiteVisits/SiteVisitsGrid\";\r\nimport { SiteVisitRegardingObjectTypes } from \"../../../leap-components/SiteVisits/SiteVisitsGridProps\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  complianceInvestigation: IComplianceInvestigationDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface ComplianceInvestigationProps {\r\n  complianceInvestigation: IComplianceInvestigationDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  complianceInvestigation,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"actions-instructions\">\r\n            Actions / Instructions\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"causes\">Likely Causes</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"effects\">Effects</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"outcomes\">Outcomes</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"non-compliances\">Non Compliances</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"complaints\">Complaints</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"incidents\">Incidents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"lr\">Licensee Returns</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"site-visits\">Site Visits</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"actions-instructions\">\r\n          <ComplianceInvestigationActionsInstructionsGrid\r\n            complianceInvestigationId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"causes\">\r\n          <ComplianceInvestigationLikelyCausesGrid\r\n            complianceInvestigationId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"effects\">\r\n          <ComplianceInvestigationEffectsGrid\r\n            complianceInvestigationId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"outcomes\">\r\n          <ComplianceInvestigationOutcomesGrid\r\n            complianceInvestigationId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"non-compliances\">\r\n          <NonCompliancesGrid\r\n            relatedRecordType=\"Compliance Investigation\"\r\n            relatedRecordId={complianceInvestigation.complianceinvestigationid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"lr\">\r\n          <LicenseeReturnsGrid\r\n            relatedRecordType=\"CI\"\r\n            relatedrecordId={complianceInvestigation.complianceinvestigationid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"site-visits\">\r\n          <SiteVisitsGrid\r\n            regardingObjectType={SiteVisitRegardingObjectTypes.CI}\r\n            regardingObjectId={\r\n              complianceInvestigation.complianceinvestigationid\r\n            }\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"complaints\">\r\n          <ComplaintsGrid\r\n            relatedRecordType={\"CI\"}\r\n            relatedrecordId={complianceInvestigation.complianceinvestigationid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"incidents\">\r\n          <IncidentsGrid\r\n            relatedRecordType={\"CI\"}\r\n            relatedrecordId={complianceInvestigation.complianceinvestigationid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  complianceInvestigation,\r\n  licenceProfile,\r\n}: ComplianceInvestigationProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"actions-instructions\"\r\n      complianceInvestigation={complianceInvestigation}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport ComplianceInvestigationHeader from \"./ComplianceInvestigationHeader\";\r\nimport ComplianceInvestigationDetails from \"./ComplianceInvestigationDetails\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  loadComplianceInvestigationAsync,\r\n  selectComplianceInvestigation,\r\n} from \"../../../redux/slices/complianceInvestigation\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst ComplianceInvestigation = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [\r\n    loadingComplianceInvestigationId,\r\n    setloadingComplianceInvestigationId,\r\n  ] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const complianceInvestigationSelector = useAppSelector(\r\n    selectComplianceInvestigation\r\n  );\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, complianceInvestigationId } = useParams();\r\n  if (!profileNo || !complianceInvestigationId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingComplianceInvestigationId !== complianceInvestigationId) {\r\n    setloadingComplianceInvestigationId(complianceInvestigationId);\r\n    dispatch(loadComplianceInvestigationAsync(complianceInvestigationId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const complianceInvestigation =\r\n    complianceInvestigationSelector.complianceInvestigation;\r\n\r\n  if (!complianceInvestigation) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!complianceInvestigation.response.ok) {\r\n    if (complianceInvestigation.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ComplianceInvestigationHeader\r\n            complianceInvestigation={complianceInvestigation}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ComplianceInvestigationDetails\r\n            complianceInvestigation={complianceInvestigation}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            complianceInvestigation={complianceInvestigation}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        complianceInvestigation={complianceInvestigation}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ComplianceInvestigation;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IIncidentDetails } from \"../../../api/IIncident\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  incidentDetails: IIncidentDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, incidentDetails }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{incidentDetails.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IIncidentDetails } from \"../../../api/IIncident\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface IncidentDetailsProps {\r\n  incidentDetails: IIncidentDetails;\r\n}\r\n\r\nconst IncidentDetails = ({ incidentDetails }: IncidentDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"EPA Notified by Licensee\"}\r\n            value={incidentDetails.datenotified}\r\n          />\r\n          <EpaField\r\n            label={\"First Noticed\"}\r\n            value={incidentDetails.firstnoticed}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Incident Start Date and Time\"}\r\n            value={incidentDetails.approximatestart}\r\n          />\r\n          <EpaField\r\n            label={\"Incident Finish Date and Time\"}\r\n            value={incidentDetails.finishtime}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Date Closed\"} value={incidentDetails.closeddate} />\r\n          <EpaField\r\n            label={\"Category\"}\r\n            value={incidentDetails.incidentcategory}\r\n          />\r\n          <EpaField label={\"Nature\"} value={incidentDetails.nature} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\"></Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Likelihood of Reoccurrence\"}\r\n            value={incidentDetails.likelihoodofreoccurence}\r\n          />\r\n          <EpaField\r\n            label={\"Likely Cause\"}\r\n            value={incidentDetails.likelycause}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Notified parties\"}\r\n            value={incidentDetails.notifiedparties}\r\n          />\r\n          <EpaField\r\n            label={\"New / Recurring\"}\r\n            value={incidentDetails.newrecurring}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Description (submitted by licensee)\"}\r\n            value={incidentDetails.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Other Relevant Information (submitted by licensee)\"}\r\n            value={incidentDetails.otherrelevantinformation}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Details of Uncontrolled Release (submitted by licensee)\"}\r\n            value={incidentDetails.uncontrolledrelease}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Impact on the Environment\"}\r\n            value={incidentDetails.impactonenvironment}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Activity at the time of the incident\"}\r\n            value={incidentDetails.activityinprogress}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Receptors\"}\r\n            value={incidentDetails.receptors}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Details of Vulnerable Receptors\"}\r\n            value={incidentDetails.vulnerablereceptors}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Licensed Discharge Point\"}\r\n            value={incidentDetails.dischargepoint}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Emission Point Name\"}\r\n            value={incidentDetails.emissionpointname}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Discharge Details\"}\r\n            value={incidentDetails.dischargedetails}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Incident Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default IncidentDetails;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IIncidentDetails } from \"../../../api/IIncident\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { IncidentIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface IncidentHeaderProps {\r\n  incidentDetails: IIncidentDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst IncidentHeader = ({\r\n  incidentDetails,\r\n  licenceProfile,\r\n}: IncidentHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <IncidentIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Incident: {incidentDetails.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={incidentDetails.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={incidentDetails.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={incidentDetails.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default IncidentHeader;\r\n","import { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetIncidentCorrectiveAndPreventativeActionsFetchUrl,\r\n  IIncidentCorrectiveAndPreventativeAction,\r\n} from \"../../api/Incident/IIncidentCorrectiveAndPreventativeAction\";\r\nimport { Grid } from \"../Grid\";\r\nimport { IncidentCorrectiveAndPreventativeActionsGridProps } from \"./IncidentCorrectiveAndPreventativeActionsGridProps\";\r\n\r\nconst IncidentCorrectiveAndPreventativeActions = ({\r\n  incidentId,\r\n  licenceProfile,\r\n}: IncidentCorrectiveAndPreventativeActionsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetIncidentCorrectiveAndPreventativeActionsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(incidentId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IIncidentCorrectiveAndPreventativeAction>\r\n  >[] = [\r\n    {\r\n      Header: \"Action Date\",\r\n      accessor: \"actiondate\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Action Type\",\r\n      accessor: \"actiontype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Action\",\r\n      accessor: \"action\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IIncidentCorrectiveAndPreventativeAction>\r\n  >[] = [\r\n    {\r\n      Header: \"Action Date\",\r\n      accessor: \"actiondate\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Action Type\",\r\n      accessor: \"actiontype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Action\",\r\n      accessor: \"action\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { IncidentCorrectiveAndPreventativeActions };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IIncidentCorrectiveAndPreventativeAction {\r\n  incidentcorrectivepreventativemeasureid: string;\r\n  actiontype: string;\r\n  action: string;\r\n  incidentid: string;\r\n  actiondate: string;\r\n}\r\n\r\nexport interface IIncidentCorrectiveAndPreventativeActionsList\r\n  extends PageResult {\r\n  list: IIncidentCorrectiveAndPreventativeAction[];\r\n}\r\n\r\nexport const GetIncidentCorrectiveAndPreventativeActionsFetchUrl = (\r\n  incidentId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Incident/incidentcorrectivemeasureslist?incident_id=${incidentId}${filterParams}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incident-corrective-and-preventative-actions`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n  GetIncidentEmissionParameterResultsFetchUrl,\r\n  IIncidentEmissionParameterResult,\r\n} from \"../../api/Incident/IIncidentEmissionParameterResult\";\r\nimport { Grid } from \"../Grid\";\r\nimport { IncidentCorrectiveAndPreventativeActionsGridProps } from \"./IncidentCorrectiveAndPreventativeActionsGridProps\";\r\n\r\nconst IncidentEmissionParameterResultsGrid = ({\r\n  incidentId,\r\n  licenceProfile,\r\n}: IncidentCorrectiveAndPreventativeActionsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetIncidentEmissionParameterResultsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(incidentId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IIncidentEmissionParameterResult>\r\n  >[] = [\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"date\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Parameter\",\r\n      accessor: \"parameter\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Sample Type\",\r\n      accessor: \"sampletype\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Result\",\r\n      accessor: \"value\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Emission Limit Value\",\r\n      accessor: \"elv\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IIncidentEmissionParameterResult>\r\n  >[] = [\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"date\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Parameter\",\r\n      accessor: \"parameter\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Result\",\r\n      accessor: \"value\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Emission Limit Value\",\r\n      accessor: \"elv\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { IncidentEmissionParameterResultsGrid };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IIncidentEmissionParameterResult {\r\n  incidentemissionsparameterresultid: string;\r\n  parameter: string;\r\n  value: number;\r\n  sampletype: string;\r\n  elv: string;\r\n  incidentid: string;\r\n  date: string;\r\n}\r\n\r\nexport interface IIncidentEmissionParameterResultsList extends PageResult {\r\n  list: IIncidentEmissionParameterResult[];\r\n}\r\n\r\nexport const GetIncidentEmissionParameterResultsFetchUrl = (\r\n  incidentId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Incident/incidentemissionparameterslist?incident_id=${incidentId}${filterParams}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incident-emission-parameter-results`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport { IIncidentCorrectiveAndPreventativeAction } from \"../../api/Incident/IIncidentCorrectiveAndPreventativeAction\";\r\nimport { GetIncidentUpdateRequestsFetchUrl } from \"../../api/Incident/IIncidentUpdateRequest\";\r\nimport { GetIncidentUpdateRequestPageUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Grid } from \"../Grid\";\r\nimport { IncidentUpdateRequestsGridProps } from \"./IncidentUpdateRequestsGridProps\";\r\n\r\nconst renderRequest = (rowInfo: any) => (\r\n  <div\r\n    style={{\r\n      display: \"block\",\r\n      whiteSpace: \"nowrap\",\r\n      overflow: \"hidden\",\r\n      textOverflow: \"ellipsis\",\r\n    }}\r\n    dangerouslySetInnerHTML={{ __html: rowInfo.value }}\r\n  ></div>\r\n);\r\n\r\nconst IncidentUpdateRequestsGrid = ({\r\n  incidentId,\r\n  licenceProfile,\r\n}: IncidentUpdateRequestsGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetIncidentUpdateRequestsFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(incidentId);\r\n\r\n  const tableColumnsBig: Column<\r\n    Record<string, IIncidentCorrectiveAndPreventativeAction>\r\n  >[] = [\r\n    {\r\n      Header: \"Date Issued by EPA\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => (\r\n        <Link\r\n          to={GetIncidentUpdateRequestPageUrl(\r\n            licenceProfile.profileNo,\r\n            rowInfo.row.original.incidentupdaterequestid\r\n          )}\r\n        >\r\n          {formatDate(rowInfo.value)}\r\n        </Link>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Instruction / Request\",\r\n      accessor: \"request\",\r\n      Filter: false,\r\n      Cell: renderRequest,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<\r\n    Record<string, IIncidentCorrectiveAndPreventativeAction>\r\n  >[] = [\r\n    {\r\n      Header: \"Date Issued by EPA\",\r\n      accessor: \"datesubmitted\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Instruction / Request\",\r\n      accessor: \"request\",\r\n      Filter: false,\r\n      Cell: renderRequest,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport { IncidentUpdateRequestsGrid };\r\n","import { API_URL } from \"../Config\";\r\nimport { PageResult } from \"../Pagination\";\r\n\r\nexport interface IIncidentUpdateRequest {\r\n  incidentupdaterequestid: string;\r\n  reference: string;\r\n  status: string;\r\n  request: string;\r\n  licenceid: string;\r\n  incidentid: string;\r\n  datesubmitted: string;\r\n  duedate: string;\r\n}\r\n\r\nexport interface IIncidentUpdateRequestsList extends PageResult {\r\n  list: IIncidentUpdateRequest[];\r\n}\r\n\r\nexport const GetIncidentUpdateRequestsFetchUrl = (\r\n  incidentId: string,\r\n  pageNo: number,\r\n  recordsPerPage: number,\r\n  searchText: string,\r\n  filters: any\r\n) => {\r\n  var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n  var filterParams = \"\";\r\n  if (searchText && searchText.length > 0) {\r\n    filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n  }\r\n\r\n  let url = `${API_URL}/Incident/incidentupdaterequestlist?incident_id=${incidentId}${filterParams}${params}`;\r\n\r\n  if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n    url = `${API_URL}/incident-update-requests`;\r\n  }\r\n\r\n  return url;\r\n};\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IIncidentDetails } from \"../../../api/IIncident\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { IncidentCorrectiveAndPreventativeActions } from \"../../../leap-components/Incidents/IncidentCorrectiveAndPreventativeActionsGrid\";\r\nimport { IncidentEmissionParameterResultsGrid } from \"../../../leap-components/Incidents/IncidentEmissionParameterResultsGrid\";\r\nimport { IncidentUpdateRequestsGrid } from \"../../../leap-components/Incidents/IncidentUpdateRequestsGrid\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  incidentDetails: IIncidentDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface RelatecComplianceProps {\r\n  incidentDetails: IIncidentDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  incidentDetails,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"emission-parameter-results\">\r\n            Emission Parameter Results\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"corrective-preventative-actions\">\r\n            Corrective / Preventative Actions\r\n          </Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"update-requests\">Update Requests</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"non-compliances\">Non Compliances</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={incidentDetails.incidentid} />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"non-compliances\">\r\n          <NonCompliancesGrid\r\n            relatedRecordType=\"Incident\"\r\n            relatedRecordId={incidentDetails.incidentid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"corrective-preventative-actions\">\r\n          <IncidentCorrectiveAndPreventativeActions\r\n            incidentId={incidentDetails.incidentid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"update-requests\">\r\n          <IncidentUpdateRequestsGrid\r\n            incidentId={incidentDetails.incidentid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"emission-parameter-results\">\r\n          <IncidentEmissionParameterResultsGrid\r\n            incidentId={incidentDetails.incidentid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  incidentDetails,\r\n  licenceProfile,\r\n}: RelatecComplianceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"emission-parameter-results\"\r\n      incidentDetails={incidentDetails}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport IncidentDetails from \"./IncidentDetails\";\r\nimport IncidentHeader from \"./IncidentHeader\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  loadIncidentAsync,\r\n  selectIncident,\r\n} from \"../../../redux/slices/incident\";\r\nimport { ComplianceInvestigationBox } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationBox\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst Incident = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingIncidentId, setLoadingIncidentId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const incidentSelector = useAppSelector(selectIncident);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, incidentId } = useParams();\r\n  if (!profileNo || !incidentId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingIncidentId !== incidentId) {\r\n    setLoadingIncidentId(incidentId);\r\n    dispatch(loadIncidentAsync(incidentId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const incidentDetails = incidentSelector.incident;\r\n\r\n  if (!incidentDetails) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!incidentDetails.response.ok) {\r\n    if (incidentDetails.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <IncidentHeader\r\n            licenceProfile={licenceProfile}\r\n            incidentDetails={incidentDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <IncidentDetails incidentDetails={incidentDetails} />\r\n        </Col>\r\n      </Row>\r\n      {incidentDetails.complianceInvestigationDetails && (\r\n        <Row>\r\n          <Col className=\"col-12 col-sm-12 col-md-12\">\r\n            <ComplianceInvestigationBox\r\n              complianceInvestigationDetails={\r\n                incidentDetails.complianceInvestigationDetails\r\n              }\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            incidentDetails={incidentDetails}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        incidentDetails={incidentDetails}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Incident;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IComplaintDetails } from \"../../../api/IComplaint\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  complaintDetails: IComplaintDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, complaintDetails }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{complaintDetails.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { faBell } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Alert, Col, Row } from \"react-bootstrap\";\r\nimport { IComplaintDetails } from \"../../../api/IComplaint\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\n\r\ninterface ComplaintDetailsProps {\r\n  complaintDetails: IComplaintDetails;\r\n}\r\n\r\nconst DataProtectionAlert = () => (\r\n  <Alert variant={\"secondary\"} dismissible={false}>\r\n    <div className=\"alert-icon\">\r\n      <FontAwesomeIcon icon={faBell} fixedWidth />\r\n    </div>\r\n    <div className=\"alert-message\">\r\n      Certain information has been withheld from this complaint record due to\r\n      GDPR\r\n    </div>\r\n  </Alert>\r\n);\r\n\r\nconst ComplaintDetails = ({ complaintDetails }: ComplaintDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Received by EPA\"}\r\n            value={complaintDetails.datereceived}\r\n          />\r\n          <EpaField\r\n            label={\"Date Occurred\"}\r\n            value={complaintDetails.dateoccurred}\r\n          />\r\n          <EpaField label={\"Complaint Type\"} value={complaintDetails.subject} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Date Closed\"} value={complaintDetails.closeddate} />\r\n          <EpaField\r\n            label={\"Duration\"}\r\n            value={complaintDetails.durationofoccurance}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\" style={{ marginTop: \"20px\" }}>\r\n          <DataProtectionAlert />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Complaint Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default ComplaintDetails;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IComplaintDetails } from \"../../../api/IComplaint\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { ComplaintIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface ComplaintHeaderProps {\r\n  complaintDetails: IComplaintDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst ComplaintHeader = ({\r\n  complaintDetails,\r\n  licenceProfile,\r\n}: ComplaintHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <ComplaintIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Complaint: {complaintDetails.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={complaintDetails.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={complaintDetails.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={complaintDetails.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default ComplaintHeader;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IComplaintDetails } from \"../../../api/IComplaint\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  complaintDetails: IComplaintDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface RelatecComplianceProps {\r\n  complaintDetails: IComplaintDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  complaintDetails,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"non-compliances\">Non Compliances</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"non-compliances\">\r\n          <NonCompliancesGrid\r\n            relatedRecordType=\"Complaint\"\r\n            relatedRecordId={complaintDetails.complaintid}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  complaintDetails,\r\n  licenceProfile,\r\n}: RelatecComplianceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"non-compliances\"\r\n      complaintDetails={complaintDetails}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport ComplaintDetails from \"./ComplaintDetails\";\r\nimport ComplaintHeader from \"./ComplaintHeader\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { ComplianceInvestigationBox } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationBox\";\r\nimport {\r\n  loadComplaintAsync,\r\n  selectComplaint,\r\n} from \"../../../redux/slices/complaint\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst Complaint = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingComplaintId, setLoadingComplaintId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const complaintSelector = useAppSelector(selectComplaint);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, complaintId } = useParams();\r\n  if (!profileNo || !complaintId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingComplaintId !== complaintId) {\r\n    setLoadingComplaintId(complaintId);\r\n    dispatch(loadComplaintAsync(complaintId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const complaintDetails = complaintSelector.complaint;\r\n\r\n  if (!complaintDetails) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!complaintDetails.response.ok) {\r\n    if (complaintDetails.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ComplaintHeader\r\n            licenceProfile={licenceProfile}\r\n            complaintDetails={complaintDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ComplaintDetails complaintDetails={complaintDetails} />\r\n        </Col>\r\n      </Row>\r\n      {complaintDetails.complianceInvestigationDetails && (\r\n        <Row>\r\n          <Col className=\"col-12 col-sm-12 col-md-12\">\r\n            <ComplianceInvestigationBox\r\n              complianceInvestigationDetails={\r\n                complaintDetails.complianceInvestigationDetails\r\n              }\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            complaintDetails={complaintDetails}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        complaintDetails={complaintDetails}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Complaint;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IIncidentUpdateRequestDetails } from \"../../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  incidentUpdateRequestDetails: IIncidentUpdateRequestDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  incidentUpdateRequestDetails,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        {incidentUpdateRequestDetails.incidentDetails && (\r\n          <Breadcrumb.Item\r\n            href={`/licence-profile/${licenceProfile.profileNo}/compliance/incident/${incidentUpdateRequestDetails.incidentid}`}\r\n          >\r\n            {incidentUpdateRequestDetails.incidentDetails?.reference}\r\n          </Breadcrumb.Item>\r\n        )}\r\n        <Breadcrumb.Item active>Incident Update Request</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IIncidentUpdateRequestDetails } from \"../../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\nimport { GetIncidentPageUrl } from \"../../routeFactory\";\r\n\r\ninterface IncidentUpdateRequestDetailsProps {\r\n  incidentUpdateRequestDetails: IIncidentUpdateRequestDetails;\r\n}\r\n\r\nconst IncidentUpdateRequestDetails = ({\r\n  incidentUpdateRequestDetails,\r\n}: IncidentUpdateRequestDetailsProps) => {\r\n  const linkToIncident = incidentUpdateRequestDetails.licenceDetails\r\n    ? GetIncidentPageUrl(\r\n        incidentUpdateRequestDetails.licenceDetails?.licenceprofile_number,\r\n        incidentUpdateRequestDetails.incidentid\r\n      )\r\n    : \"about:blank\";\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Submitted by EPA\"}\r\n            value={incidentUpdateRequestDetails.datesubmitted}\r\n          />\r\n          {incidentUpdateRequestDetails.incidentDetails && (\r\n            <EpaField\r\n              label={\"Related Incident\"}\r\n              value={\r\n                <Link to={linkToIncident}>\r\n                  {incidentUpdateRequestDetails.incidentDetails?.reference}\r\n                </Link>\r\n              }\r\n            />\r\n          )}\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Licensee Response Due Date\"}\r\n            value={incidentUpdateRequestDetails.duedate}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Instruction / Request from EPA\"}\r\n            value={incidentUpdateRequestDetails.request}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Incident Update Request\"} content={bodyElements} />;\r\n};\r\n\r\nexport default IncidentUpdateRequestDetails;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IIncidentUpdateRequestDetails } from \"../../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { IncidentUpdateRequestIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface IncidentUpdateRequestHeaderProps {\r\n  incidentUpdateRequestDetails: IIncidentUpdateRequestDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst IncidentUpdateRequestHeader = ({\r\n  incidentUpdateRequestDetails,\r\n  licenceProfile,\r\n}: IncidentUpdateRequestHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <IncidentUpdateRequestIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Incident Update Request</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={incidentUpdateRequestDetails.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={incidentUpdateRequestDetails.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={incidentUpdateRequestDetails.licenceDetails?.reg_no}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default IncidentUpdateRequestHeader;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IIncidentUpdateRequestDetails } from \"../../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  incidentUpdateRequestDetails: IIncidentUpdateRequestDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface RelatedComplianceProps {\r\n  incidentUpdateRequestDetails: IIncidentUpdateRequestDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  incidentUpdateRequestDetails,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={\r\n              incidentUpdateRequestDetails.incidentupdaterequestid\r\n            }\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  incidentUpdateRequestDetails,\r\n  licenceProfile,\r\n}: RelatedComplianceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      incidentUpdateRequestDetails={incidentUpdateRequestDetails}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport IncidentUpdateRequestDetails from \"./IncidentUpdateRequestDetails\";\r\nimport IncidentUpdateRequestHeader from \"./IncidentUpdateRequestHeader\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport {\r\n  loadIncidentUpdateRequestAsync,\r\n  selectIncidentUpdateRequest,\r\n} from \"../../../redux/slices/incidentUpdateRequest\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst IncidentUpdateRequest = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingIncidentUpdateRequestId, setLoadingIncidentUpdateRequestId] =\r\n    useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const incidentUpdateRequestSelector = useAppSelector(\r\n    selectIncidentUpdateRequest\r\n  );\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, incidentUpdateRequestId } = useParams();\r\n  if (!profileNo || !incidentUpdateRequestId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingIncidentUpdateRequestId !== incidentUpdateRequestId) {\r\n    setLoadingIncidentUpdateRequestId(incidentUpdateRequestId);\r\n    dispatch(loadIncidentUpdateRequestAsync(incidentUpdateRequestId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const incidentUpdateRequestDetails =\r\n    incidentUpdateRequestSelector.incidentUpdatRequest;\r\n\r\n  if (!incidentUpdateRequestDetails) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!incidentUpdateRequestDetails.response.ok) {\r\n    if (incidentUpdateRequestDetails.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <IncidentUpdateRequestHeader\r\n            licenceProfile={licenceProfile}\r\n            incidentUpdateRequestDetails={incidentUpdateRequestDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <IncidentUpdateRequestDetails\r\n            incidentUpdateRequestDetails={incidentUpdateRequestDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            incidentUpdateRequestDetails={incidentUpdateRequestDetails}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        incidentUpdateRequestDetails={incidentUpdateRequestDetails}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default IncidentUpdateRequest;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IMeetingDetails } from \"../../../api/IMeeting\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  meetingDetails: IMeetingDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({ licenceProfile, meetingDetails }: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{meetingDetails.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IMeetingDetails } from \"../../../api/IMeeting\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { ComplaintIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface MeetingHeaderProps {\r\n  meetingDetails: IMeetingDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst MeetingHeader = ({\r\n  meetingDetails,\r\n  licenceProfile,\r\n}: MeetingHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <ComplaintIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Meeting: {meetingDetails.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={meetingDetails.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={meetingDetails.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={meetingDetails.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default MeetingHeader;\r\n","import { faBell } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Alert, Col, Row } from \"react-bootstrap\";\r\nimport { IMeetingDetails } from \"../../../api/IMeeting\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface MeetingDetailsProps {\r\n  meetingDetails: IMeetingDetails;\r\n}\r\n\r\nconst DataProtectionAlert = () => (\r\n  <Alert variant={\"secondary\"} dismissible={false}>\r\n    <div className=\"alert-icon\">\r\n      <FontAwesomeIcon icon={faBell} fixedWidth />\r\n    </div>\r\n    <div className=\"alert-message\">\r\n      Certain information has been withheld from this complaint record due to\r\n      GDPR\r\n    </div>\r\n  </Alert>\r\n);\r\n\r\nconst MeetingDetails = ({ meetingDetails }: MeetingDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Title\"} value={meetingDetails.subject} />\r\n          <EpaField\r\n            label={\"Organisation\"}\r\n            value={meetingDetails.organisationname}\r\n          />\r\n          <EpaField label={\"Regarding\"} value={meetingDetails.regarding} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField label={\"Meeting Date\"} value={meetingDetails.meetingdate} />\r\n          <EpaField label={\"Meeting Time\"} value={meetingDetails.meetingtime} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\" style={{ marginTop: \"20px\" }}>\r\n          <EpaFieldHtml\r\n            label={\"Location\"}\r\n            value={meetingDetails.location}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Attendees - EPA\"}\r\n            value={meetingDetails.attendeesepa}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Attendees - Licensee\"}\r\n            value={meetingDetails.attendeesnoepa}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\" style={{ marginTop: \"20px\" }}>\r\n          <EpaFieldHtml\r\n            label={\"Issues and Action Items - raised by EPA\"}\r\n            value={meetingDetails.actionitems}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Meeting Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default MeetingDetails;\r\n","import { Column } from \"react-table\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ICompliance } from \"../../api/ICompliance\";\r\nimport { ILicencesGridProps } from \"./LicencesGridProps\";\r\nimport { GetLicencesByMeetingFetchUrl } from \"../../api/LicenceVersion\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport { GetLicenceProfilePageUrl } from \"../../leap-pages/routeFactory\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst LicencesGrid = ({\r\n  regardingObjectId,\r\n  regardingObjectType,\r\n}: ILicencesGridProps) => {\r\n  const getFetchUrlFactory = (relatedId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetLicencesByMeetingFetchUrl(\r\n        relatedId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(regardingObjectId);\r\n\r\n  const tableColumnsBig: Column<Record<string, ICompliance>>[] = [\r\n    {\r\n      Header: \"Licence No.\",\r\n      accessor: \"reg_no\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetLicenceProfilePageUrl(\r\n                  rowInfo.row.original.licenceprofile_number\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Licence Name\",\r\n      accessor: \"licence_name\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Type\",\r\n      accessor: \"licence_type\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Status\",\r\n      accessor: \"licence_status\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Sub Status\",\r\n      accessor: \"licence_substatus\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ICompliance>>[] = [\r\n    {\r\n      Header: \"Licence No.\",\r\n      accessor: \"reg_no\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => (\r\n        <table>\r\n          <tr>\r\n            <td>\r\n              <Link\r\n                to={GetLicenceProfilePageUrl(\r\n                  rowInfo.row.original.licenceprofile_number\r\n                )}\r\n              >\r\n                {rowInfo.value}\r\n              </Link>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n      ),\r\n    },\r\n    {\r\n      Header: \"Licence Name\",\r\n      accessor: \"licence_name\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Licence Type\",\r\n      accessor: \"licence_type\",\r\n      Filter: false,\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={false}\r\n          enableQuickFind={false}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={false}\r\n          enableQuickFind={false}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return bodyElements;\r\n};\r\n\r\nexport default LicencesGrid;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IMeetingDetails } from \"../../../api/IMeeting\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport LicencesGrid from \"../../../leap-components/Licences/LicencesGrid\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  meeting: IMeetingDetails;\r\n}\r\n\r\ninterface MeetingRelatedComplianceProps {\r\n  meeting: IMeetingDetails;\r\n}\r\n\r\nconst SubTabs = ({ className, activeKey, meeting }: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"licences\">Licences</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"licences\">\r\n          <LicencesGrid\r\n            regardingObjectId={meeting.originalmeetingid}\r\n            regardingObjectType={\"Meeting\"}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid regardingObjectId={meeting.originalmeetingid} />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  meeting,\r\n}: MeetingRelatedComplianceProps) => {\r\n  var bodyElements = <SubTabs activeKey=\"licences\" meeting={meeting} />;\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport MeetingHeader from \"./MeetingHeader\";\r\nimport MeetingDetails from \"./MeetingDetails\";\r\nimport { loadMeetingAsync, selectMeeting } from \"../../../redux/slices/meeting\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst Meeting = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingMeetingId, setLoadingMeetingId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const meetingSelector = useAppSelector(selectMeeting);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, meetingId } = useParams();\r\n  if (!profileNo || !meetingId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingMeetingId !== meetingId) {\r\n    setLoadingMeetingId(meetingId);\r\n    dispatch(loadMeetingAsync(meetingId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const meetingDetails = meetingSelector.meeting;\r\n\r\n  if (!meetingDetails) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!meetingDetails.response.ok) {\r\n    if (meetingDetails.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <MeetingHeader\r\n            licenceProfile={licenceProfile}\r\n            meetingDetails={meetingDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <MeetingDetails meetingDetails={meetingDetails} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords meeting={meetingDetails} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        meetingDetails={meetingDetails}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Meeting;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { INonComplianceDetails } from \"../../../api/INonCompliance\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  nonComplianceDetails: INonComplianceDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  nonComplianceDetails,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {nonComplianceDetails.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { INonComplianceDetails } from \"../../../api/INonCompliance\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { SiteVisitsGrid } from \"../../../leap-components/SiteVisits/SiteVisitsGrid\";\r\nimport { SiteVisitRegardingObjectTypes } from \"../../../leap-components/SiteVisits/SiteVisitsGridProps\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  nonComplianceDetails: INonComplianceDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface RelatecComplianceProps {\r\n  nonComplianceDetails: INonComplianceDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  nonComplianceDetails,\r\n  licenceProfile,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"site-visits\">Site Visits</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={nonComplianceDetails.noncomplianceid}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"site-visits\">\r\n          <SiteVisitsGrid\r\n            regardingObjectId={nonComplianceDetails.noncomplianceid}\r\n            regardingObjectType={SiteVisitRegardingObjectTypes.NC}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  nonComplianceDetails,\r\n  licenceProfile,\r\n}: RelatecComplianceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      nonComplianceDetails={nonComplianceDetails}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { INonComplianceDetails } from \"../../../api/INonCompliance\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { NonComplianceIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface IncidentHeaderProps {\r\n  nonComplianceDetails: INonComplianceDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst NonComplianceHeader = ({\r\n  nonComplianceDetails,\r\n  licenceProfile,\r\n}: IncidentHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <NonComplianceIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>Non Compliance: {nonComplianceDetails.reference}</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={nonComplianceDetails.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={nonComplianceDetails.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={nonComplianceDetails.licenceDetails.reg_no}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default NonComplianceHeader;\r\n","import { Col, Form, Row } from \"react-bootstrap\";\r\n\r\ninterface IEpaField {\r\n  label: string;\r\n}\r\n\r\nconst EpaFieldEmpty = ({ label }: IEpaField) => {\r\n  const labelClassName = \"col-4 col-md-4\";\r\n  const valueClassName = \"col-8 col-md-8\";\r\n\r\n  return (\r\n    <Row>\r\n      <Col className={labelClassName}>\r\n        <Form.Label style={{ color: \"#999\" }}>{label}</Form.Label>\r\n      </Col>\r\n      <Col className={valueClassName}>{\" - \"}</Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default EpaFieldEmpty;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { INonComplianceDetails } from \"../../../api/INonCompliance\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldEmpty from \"../../../leap-components/EpaFieldEmpty\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\nimport {\r\n  GetComplaintDetailsPageUrl,\r\n  GetIncidentPageUrl,\r\n  GetLicenseeReturnPageUrl,\r\n} from \"../../routeFactory\";\r\n\r\ninterface NonComplianceDetailsProps {\r\n  nonComplianceDetails: INonComplianceDetails;\r\n}\r\n\r\nconst NonComplianceDetails = ({\r\n  nonComplianceDetails,\r\n}: NonComplianceDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Non-Compliance Occurred\"}\r\n            value={nonComplianceDetails.dateofnoncompliance}\r\n          />\r\n          <EpaField\r\n            label={\"Date Issued by EPA\"}\r\n            value={nonComplianceDetails.datesubmitted}\r\n          />\r\n          <EpaField\r\n            label={\"Non Compliance Type\"}\r\n            value={nonComplianceDetails.subject}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date of Notification to EPA\"}\r\n            value={nonComplianceDetails.dateofnotification}\r\n          />\r\n          <EpaField\r\n            label={\"Licence Condition Number\"}\r\n            value={nonComplianceDetails.condition}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          {nonComplianceDetails.incidentDetails && (\r\n            <EpaField\r\n              label={\"Related Incident\"}\r\n              value={\r\n                <Link\r\n                  to={GetIncidentPageUrl(\r\n                    nonComplianceDetails.licenceDetails.licenceprofile_number,\r\n                    nonComplianceDetails.incidentDetails.incidentid\r\n                  )}\r\n                >\r\n                  {nonComplianceDetails.incidentDetails.reference}\r\n                </Link>\r\n              }\r\n            />\r\n          )}\r\n          {!nonComplianceDetails.incidentDetails && (\r\n            <EpaFieldEmpty label={\"Related Incident\"} />\r\n          )}\r\n          {nonComplianceDetails.licenseeReturnDetails && (\r\n            <EpaField\r\n              label={\"Related Licensee Return\"}\r\n              value={\r\n                <Link\r\n                  to={GetLicenseeReturnPageUrl(\r\n                    nonComplianceDetails.licenceDetails.licenceprofile_number,\r\n                    nonComplianceDetails.licenseeReturnDetails.licenseereturnid\r\n                  )}\r\n                >\r\n                  {nonComplianceDetails.licenseeReturnDetails.reference}\r\n                </Link>\r\n              }\r\n            />\r\n          )}\r\n          {!nonComplianceDetails.licenseeReturnDetails && (\r\n            <EpaFieldEmpty label={\"Related Licensee Return\"} />\r\n          )}\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          {nonComplianceDetails.complaintDetails && (\r\n            <EpaField\r\n              label={\"Related Complaint\"}\r\n              value={\r\n                <Link\r\n                  to={GetComplaintDetailsPageUrl(\r\n                    nonComplianceDetails.licenceDetails.licenceprofile_number,\r\n                    nonComplianceDetails.complaintDetails.complaintid\r\n                  )}\r\n                >\r\n                  {nonComplianceDetails.complaintDetails.reference}\r\n                </Link>\r\n              }\r\n            />\r\n          )}\r\n          {!nonComplianceDetails.complaintDetails && (\r\n            <EpaFieldEmpty label={\"Related Complaint\"} />\r\n          )}\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Description\"}\r\n            value={nonComplianceDetails.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Non Compliance Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default NonComplianceDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { ComplianceInvestigationBox } from \"../../../leap-components/ComplianceInvestigations/ComplianceInvestigationBox\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport {\r\n  loadNonComplianceAsync,\r\n  selectNonCompliance,\r\n} from \"../../../redux/slices/nonCompliance\";\r\nimport NonComplianceHeader from \"./NonComplianceHeader\";\r\nimport NonComplianceDetails from \"./NonComplianceDetails\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst NonCompliance = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingNonComplianceId, setLoadingNonComplianceId] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const nonComplianceSelector = useAppSelector(selectNonCompliance);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, nonComplianceId } = useParams();\r\n  if (!profileNo || !nonComplianceId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingNonComplianceId !== nonComplianceId) {\r\n    setLoadingNonComplianceId(nonComplianceId);\r\n    dispatch(loadNonComplianceAsync(nonComplianceId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const nonComplianceDetails = nonComplianceSelector.nonCompliance;\r\n\r\n  if (!nonComplianceDetails) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!nonComplianceDetails.response.ok) {\r\n    if (nonComplianceDetails.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <NonComplianceHeader\r\n            licenceProfile={licenceProfile}\r\n            nonComplianceDetails={nonComplianceDetails}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <NonComplianceDetails nonComplianceDetails={nonComplianceDetails} />\r\n        </Col>\r\n      </Row>\r\n      {nonComplianceDetails.complianceInvestigationDetails && (\r\n        <Row>\r\n          <Col className=\"col-12 col-sm-12 col-md-12\">\r\n            <ComplianceInvestigationBox\r\n              complianceInvestigationDetails={\r\n                nonComplianceDetails.complianceInvestigationDetails\r\n              }\r\n              licenceProfile={licenceProfile}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      )}\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            nonComplianceDetails={nonComplianceDetails}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        nonComplianceDetails={nonComplianceDetails}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default NonCompliance;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationActionOrInstructionDetails } from \"../../../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { ILicenceProfile } from \"../../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  actionOrInstruction: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  actionOrInstruction,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance/investigation/${actionOrInstruction.regardingobjectid}`}\r\n        >\r\n          {actionOrInstruction.complianceInvestidationDetails?.reference}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {actionOrInstruction.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationActionOrInstructionDetails } from \"../../../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { ILicenceProfile } from \"../../../../api/LicenceProfile\";\r\nimport { EdenMessagesGrid } from \"../../../../leap-components/EdenMessages/EdenMessagesGrid\";\r\nimport { EdenMessagesGridType } from \"../../../../leap-components/EdenMessages/EdenMessagesGridProps\";\r\nimport EpaCard from \"../../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  licenceProfile: ILicenceProfile;\r\n  actionOrInstruction: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\ninterface ActionOrInstructionProps {\r\n  licenceProfile: ILicenceProfile;\r\n  actionOrInstruction: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  licenceProfile,\r\n  actionOrInstruction,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"messages\">Messages</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"messages\">\r\n          <EdenMessagesGrid\r\n            edenMessagesType={EdenMessagesGridType.TaskBasedEdenMessages}\r\n            profileNumber={licenceProfile.profileNo}\r\n            taskId={actionOrInstruction.taskid}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  licenceProfile,\r\n  actionOrInstruction,\r\n}: ActionOrInstructionProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"messages\"\r\n      licenceProfile={licenceProfile}\r\n      actionOrInstruction={actionOrInstruction}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationActionOrInstructionDetails } from \"../../../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport EpaField2Rows from \"../../../../leap-components/EpaField2Rows\";\r\nimport {\r\n  ActionOrInstructionIcon,\r\n  LicenseeReturnIcon,\r\n} from \"../../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface HeaderProps {\r\n  actionOrInstruction: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst ActionOrInstructionHeader = ({ actionOrInstruction }: HeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <ActionOrInstructionIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>\r\n                      {`Action / Instruction: ${actionOrInstruction.reference}`}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={actionOrInstruction.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={actionOrInstruction.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={actionOrInstruction.licence_regno}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default ActionOrInstructionHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IComplianceInvestigationActionOrInstructionDetails } from \"../../../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport EpaCard from \"../../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface RequestForInformationDetailsProps {\r\n  actionOrInstruction: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst ActionOrInstructionDetails = ({\r\n  actionOrInstruction,\r\n}: RequestForInformationDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Submitted by the EPA\"}\r\n            value={actionOrInstruction.datesubmitted}\r\n          />\r\n          <EpaField label={\"Subject\"} value={actionOrInstruction.subject} />\r\n          <EpaField label={\"Sender\"} value={actionOrInstruction.sender} />\r\n          <EpaField label={\"Category\"} value={actionOrInstruction.category} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Licensee Response Due Date\"}\r\n            value={actionOrInstruction.duedate}\r\n          />\r\n          <EpaField label={\"Type\"} value={actionOrInstruction.type} />\r\n          <EpaField label={\"Recipient\"} value={actionOrInstruction.recipient} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Action / Instruction Details (EPA Originated)\"}\r\n            value={actionOrInstruction.description}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard title={\"Action / Instruction Details\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default ActionOrInstructionDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../../api/LicenceProfile\";\r\nimport ActionOrInstructionHeader from \"./ActionOrInstructionHeader\";\r\nimport ActionOrInstructionDetails from \"./ActionOrInstructionDetails\";\r\nimport {\r\n  loadActionOrInstructionAsync,\r\n  selectActionOrInstruction,\r\n} from \"../../../../redux/slices/actionOrInstruction\";\r\n\r\nconst ActionOrInstruction = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingActionOrInstructionId, setLoadingActionOrInstructionId] =\r\n    useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const actionOrInstructionSelector = useAppSelector(selectActionOrInstruction);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, actionOrInstructionId } = useParams();\r\n  if (!profileNo || !actionOrInstructionId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingActionOrInstructionId !== actionOrInstructionId) {\r\n    setLoadingActionOrInstructionId(actionOrInstructionId);\r\n    dispatch(loadActionOrInstructionAsync(actionOrInstructionId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const actionOrInstruction = actionOrInstructionSelector.actionOrInstruction;\r\n\r\n  if (!actionOrInstruction) {\r\n    return <Loading />;\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ActionOrInstructionHeader\r\n            actionOrInstruction={actionOrInstruction}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ActionOrInstructionDetails\r\n            actionOrInstruction={actionOrInstruction}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            licenceProfile={licenceProfile}\r\n            actionOrInstruction={actionOrInstruction}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        actionOrInstruction={actionOrInstruction}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ActionOrInstruction;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IEpaCorrespondenceDetails } from \"../../../api/IEpaCorrespondence\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  epaCorrespondence: IEpaCorrespondenceDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  epaCorrespondence,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>{epaCorrespondence.reference}</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IEpaCorrespondenceDetails } from \"../../../api/IEpaCorrespondence\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport { EdenMessagesGrid } from \"../../../leap-components/EdenMessages/EdenMessagesGrid\";\r\nimport { EdenMessagesGridType } from \"../../../leap-components/EdenMessages/EdenMessagesGridProps\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  epaCorrespondence: IEpaCorrespondenceDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\ninterface EpaCorrespondenceProps {\r\n  epaCorrespondence: IEpaCorrespondenceDetails;\r\n  licenceProfile: ILicenceProfile;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  licenceProfile,\r\n  epaCorrespondence,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"messages\">Messages</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={epaCorrespondence.epainitiatedcorrespondenceid}\r\n          />\r\n        </Tab.Pane>\r\n        <Tab.Pane eventKey=\"messages\">\r\n          <EdenMessagesGrid\r\n            edenMessagesType={EdenMessagesGridType.RegardingBasedEdenMessages}\r\n            profileNumber={licenceProfile.profileNo}\r\n            regardingObjectId={epaCorrespondence.epainitiatedcorrespondenceid}\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  epaCorrespondence,\r\n  licenceProfile,\r\n}: EpaCorrespondenceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      epaCorrespondence={epaCorrespondence}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IEpaCorrespondenceDetails } from \"../../../api/IEpaCorrespondence\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { EPAInitiatedCorrespondenceIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface EpaCorrespondenceHeaderProps {\r\n  epaCorrespondence: IEpaCorrespondenceDetails;\r\n}\r\n\r\nconst EpaCorrespondenceHeader = ({\r\n  epaCorrespondence,\r\n}: EpaCorrespondenceHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <EPAInitiatedCorrespondenceIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>EPA Initiated Correspondence</h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Reference No.\"} value={\"n/a\"} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows label={\"Status\"} value={epaCorrespondence.status} />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={epaCorrespondence.licenceDetails?.reg_no}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default EpaCorrespondenceHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IEpaCorrespondenceDetails } from \"../../../api/IEpaCorrespondence\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface EpaCorrespondenceDetailsProps {\r\n  epaCorrespondence: IEpaCorrespondenceDetails;\r\n}\r\n\r\nconst EpaCorrespondenceDetails = ({\r\n  epaCorrespondence,\r\n}: EpaCorrespondenceDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Date Submitted by the EPA\"}\r\n            value={epaCorrespondence.datesubmitted}\r\n          />\r\n          <EpaField label={\"Subject\"} value={epaCorrespondence.subject} />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Licensee Response Due Date\"}\r\n            value={epaCorrespondence.duedate}\r\n          />\r\n          <EpaField\r\n            label={\"Correspondence Type\"}\r\n            value={epaCorrespondence.correspondencetype}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Correspondence from EPA\"}\r\n            value={epaCorrespondence.licensingnotification}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"EPA Initiated Correspondence Details\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default EpaCorrespondenceDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport EpaCorrespondenceHeader from \"./EpaCorrespondenceHeader\";\r\nimport EpaCorrespondenceDetails from \"./EpaCorrespondenceDetails\";\r\nimport {\r\n  loadEpaCorrespondenceAsync,\r\n  selectEpaCorrespondence,\r\n} from \"../../../redux/slices/epaCorrespondence\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst EpaCorrespondence = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [loadingEpaCorrespondenceId, setLoadingEpaCorrespondenceId] =\r\n    useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const epaCorrespondenceSelector = useAppSelector(selectEpaCorrespondence);\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, epaCorrespondenceId } = useParams();\r\n  if (!profileNo || !epaCorrespondenceId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingEpaCorrespondenceId !== epaCorrespondenceId) {\r\n    setLoadingEpaCorrespondenceId(epaCorrespondenceId);\r\n    dispatch(loadEpaCorrespondenceAsync(epaCorrespondenceId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const epaCorrespondence = epaCorrespondenceSelector.epaCorrespondence;\r\n\r\n  if (!epaCorrespondence) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!epaCorrespondence.response.ok) {\r\n    if (epaCorrespondence.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <EpaCorrespondenceHeader epaCorrespondence={epaCorrespondence} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <EpaCorrespondenceDetails epaCorrespondence={epaCorrespondence} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            epaCorrespondence={epaCorrespondence}\r\n            licenceProfile={licenceProfile}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        epaCorrespondence={epaCorrespondence}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default EpaCorrespondence;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\nimport { IThirdPartyCorrespondenceDetails } from \"../../../api/IThirdPartyCorrespondence\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\n\r\ninterface BreadcrumbProps {\r\n  licenceProfile: ILicenceProfile;\r\n  thirdPartyCorrespondence: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst BreadCrumbs = ({\r\n  licenceProfile,\r\n  thirdPartyCorrespondence,\r\n}: BreadcrumbProps) => (\r\n  <Row>\r\n    <Col xs=\"12\">\r\n      <Breadcrumb className=\"leap\">\r\n        <Breadcrumb.Item href=\"/\">LEAP Online Home</Breadcrumb.Item>\r\n        <Breadcrumb.Item href={`/licence-profile/${licenceProfile.profileNo}`}>\r\n          {licenceProfile.organisation} - {licenceProfile.profileNo}\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item\r\n          href={`/licence-profile/${licenceProfile.profileNo}/compliance`}\r\n        >\r\n          Compliance\r\n        </Breadcrumb.Item>\r\n        <Breadcrumb.Item active>\r\n          {thirdPartyCorrespondence.reference}\r\n        </Breadcrumb.Item>\r\n      </Breadcrumb>\r\n    </Col>\r\n  </Row>\r\n);\r\n\r\nexport default BreadCrumbs;\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { IThirdPartyCorrespondenceDetails } from \"../../../api/IThirdPartyCorrespondence\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\n\r\ninterface SubTabsProps {\r\n  className?: string;\r\n  activeKey: string;\r\n  licenceProfile: ILicenceProfile;\r\n  thirdPartyCorrespondence: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\ninterface ThirdPartyCorrespondenceProps {\r\n  licenceProfile: ILicenceProfile;\r\n  thirdPartyCorrespondence: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst SubTabs = ({\r\n  className,\r\n  activeKey,\r\n  licenceProfile,\r\n  thirdPartyCorrespondence,\r\n}: SubTabsProps) => (\r\n  <div className={\"tab \" + className}>\r\n    <Tab.Container id=\"left-tabs-example\" defaultActiveKey={activeKey}>\r\n      <Nav variant=\"tabs\">\r\n        <Nav.Item>\r\n          <Nav.Link eventKey=\"documents\">Documents</Nav.Link>\r\n        </Nav.Item>\r\n      </Nav>\r\n      <Tab.Content>\r\n        <Tab.Pane eventKey=\"documents\">\r\n          <DocumentsGrid\r\n            regardingObjectId={\r\n              thirdPartyCorrespondence.thirdpartycorrespondenceid\r\n            }\r\n          />\r\n        </Tab.Pane>\r\n      </Tab.Content>\r\n    </Tab.Container>\r\n  </div>\r\n);\r\n\r\nconst RelatedComplianceRecords = ({\r\n  thirdPartyCorrespondence,\r\n  licenceProfile,\r\n}: ThirdPartyCorrespondenceProps) => {\r\n  var bodyElements = (\r\n    <SubTabs\r\n      activeKey=\"documents\"\r\n      thirdPartyCorrespondence={thirdPartyCorrespondence}\r\n      licenceProfile={licenceProfile}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <EpaCard title={\"Related Compliance Records\"} content={bodyElements} />\r\n  );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","import { Card, Col, Row } from \"react-bootstrap\";\r\nimport { IThirdPartyCorrespondenceDetails } from \"../../../api/IThirdPartyCorrespondence\";\r\nimport EpaField2Rows from \"../../../leap-components/EpaField2Rows\";\r\nimport { ThirdPartyCorrespondenceIcon } from \"../../../leap-components/icons/LeapIcons\";\r\n\r\ninterface ThirdPartyCorrespondenceHeaderProps {\r\n  thirdPartyCorrespondence: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst ThirdPartyCorrespondenceHeader = ({\r\n  thirdPartyCorrespondence,\r\n}: ThirdPartyCorrespondenceHeaderProps) => {\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header></Card.Header>\r\n      <Card.Body className=\"pt-0\">\r\n        <Row>\r\n          <Col className=\"col-12 col-md-6\">\r\n            <table className=\"no-border\" style={{ marginTop: \"0.6rem\" }}>\r\n              <tbody>\r\n                <tr>\r\n                  <td>\r\n                    <ThirdPartyCorrespondenceIcon />\r\n                  </td>\r\n                  <td>\r\n                    <h2>\r\n                      Third Party Correspondence:{\" \"}\r\n                      {thirdPartyCorrespondence.reference}\r\n                    </h2>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n            <div className=\"d-md-none\" style={{ height: \"20px\" }}></div>\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Reference No.\"}\r\n              value={thirdPartyCorrespondence.reference}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Status\"}\r\n              value={thirdPartyCorrespondence.status}\r\n            />\r\n          </Col>\r\n          <Col className=\"col-4 col-md-2\">\r\n            <EpaField2Rows\r\n              label={\"Licence Version\"}\r\n              value={thirdPartyCorrespondence.licenceDetails?.reg_no}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default ThirdPartyCorrespondenceHeader;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { IThirdPartyCorrespondenceDetails } from \"../../../api/IThirdPartyCorrespondence\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../leap-components/EpaField\";\r\nimport EpaFieldHtml from \"../../../leap-components/EpaFieldHtml\";\r\n\r\ninterface ThirdPartyCorrespondenceDetailsProps {\r\n  thirdPartyCorrespondence: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst ThirdPartyCorrespondenceDetails = ({\r\n  thirdPartyCorrespondence,\r\n}: ThirdPartyCorrespondenceDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Original Correspondence Date\"}\r\n            value={thirdPartyCorrespondence.dateoforiginalcorrespondence}\r\n          />\r\n          <EpaField label={\"Title\"} value={thirdPartyCorrespondence.subject} />\r\n          <EpaField\r\n            label={\"Received From\"}\r\n            value={thirdPartyCorrespondence.receivedfrom}\r\n          />\r\n        </Col>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Original Correspondence Received\"}\r\n            value={thirdPartyCorrespondence.dateoriginalcorrespondencereceived}\r\n          />\r\n          <EpaField\r\n            label={\"Correspondence Type\"}\r\n            value={thirdPartyCorrespondence.correspondencetype}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <EpaFieldHtml\r\n            label={\"Inspector Update\"}\r\n            value={thirdPartyCorrespondence.inspectorsupdate}\r\n            labelClassName={\"col-12 col-md-12\"}\r\n            valueClassName={\"col-12 col-md-12\"}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return (\r\n    <EpaCard\r\n      title={\"EPA Initiated Correspondence Details\"}\r\n      content={bodyElements}\r\n    />\r\n  );\r\n};\r\n\r\nexport default ThirdPartyCorrespondenceDetails;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport RelatedComplianceRecords from \"./RelatedComplianceRecords\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n  loadLicenceProfileAsync,\r\n  selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport BackToCompliance from \"../ComplianceTab/BackToCompliance\";\r\nimport { useState } from \"react\";\r\nimport {\r\n  GetLicenceProfileNotReadyComponent,\r\n  IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport {\r\n  loadThirdPartyCorrespondenceAsync,\r\n  selectThirdPartyCorrespondence,\r\n} from \"../../../redux/slices/thirdPartyCorrespondence\";\r\nimport ThirdPartyCorrespondenceHeader from \"./ThirdPartyCorrespondenceHeader\";\r\nimport ThirdPartyCorrespondenceDetails from \"./ThirdPartyCorrespondenceDetails\";\r\nimport Page500 from \"../../../pages/auth/Page500\";\r\n\r\nconst ThirdPartyCorrespondence = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [\r\n    loadingThirdPartyCorrespondenceId,\r\n    setLoadingThirdPartyCorrespondenceId,\r\n  ] = useState(\"\");\r\n  const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n  const thirdPartyCorrespondenceSelector = useAppSelector(\r\n    selectThirdPartyCorrespondence\r\n  );\r\n\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { profileNo, thirdPartyCorrespondenceId } = useParams();\r\n  if (!profileNo || !thirdPartyCorrespondenceId) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadLicenceProfileAsync(profileNo));\r\n  }\r\n\r\n  if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n    return GetLicenceProfileNotReadyComponent(\r\n      licenceProfileSelector.licenceProfileResponse\r\n    );\r\n  }\r\n\r\n  const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n    ?.licenceProfile as ILicenceProfile;\r\n\r\n  if (loadingThirdPartyCorrespondenceId !== thirdPartyCorrespondenceId) {\r\n    setLoadingThirdPartyCorrespondenceId(thirdPartyCorrespondenceId);\r\n    dispatch(loadThirdPartyCorrespondenceAsync(thirdPartyCorrespondenceId));\r\n    return <Loading />;\r\n  }\r\n\r\n  const thirdPartyCorrespondence =\r\n    thirdPartyCorrespondenceSelector.thirdPartyCorrespondence;\r\n\r\n  if (!thirdPartyCorrespondence) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (!thirdPartyCorrespondence.response.ok) {\r\n    if (thirdPartyCorrespondence.response.status === 404) {\r\n      return <Page404 />;\r\n    } else {\r\n      return <Page500 />;\r\n    }\r\n  }\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ThirdPartyCorrespondenceHeader\r\n            thirdPartyCorrespondence={thirdPartyCorrespondence}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <ThirdPartyCorrespondenceDetails\r\n            thirdPartyCorrespondence={thirdPartyCorrespondence}\r\n          />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-12\">\r\n          <BackToCompliance profileNo={profileNo} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-12 col-sm-12 col-md-12\">\r\n          <RelatedComplianceRecords\r\n            licenceProfile={licenceProfile}\r\n            thirdPartyCorrespondence={thirdPartyCorrespondence}\r\n          />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs\r\n        licenceProfile={licenceProfile}\r\n        thirdPartyCorrespondence={thirdPartyCorrespondence}\r\n      />\r\n      <div className=\"ps-0\">\r\n        <LicenceProfileHeader licenceProfile={licenceProfile} />\r\n        <LicenceProfileSubTabs\r\n          activeKey=\"compliance-records\"\r\n          content={contentElement}\r\n          licenceProfile={licenceProfile}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ThirdPartyCorrespondence;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst BreadCrumbs = () => {\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/abstractions\">Abstraction</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { ReactComponent as LeapLogoVector } from \"../../../../../src/assets/img/leap/leap-logo.svg\";\r\n\r\ninterface IAbstractionHeaderComponentProps {\r\n  headerContent: JSX.Element;\r\n}\r\n\r\nconst AbstractionHeaderComponent = ({\r\n  headerContent,\r\n}: IAbstractionHeaderComponentProps) => {\r\n  return (\r\n    <div className=\"ms-3 me-3\">\r\n      <Row>\r\n        <Col className=\"col-12\">\r\n          <div style={{ marginBottom: \"1rem\" }}>\r\n            <LeapLogoVector\r\n              style={{ height: \"50px\", width: \"auto\" }}\r\n              className=\"d-none d-md-none d-sm-inline\"\r\n            />\r\n            <LeapLogoVector\r\n              style={{ height: \"40px\", width: \"auto\" }}\r\n              className=\"d-inline d-sm-none\"\r\n            />\r\n          </div>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col\r\n          className=\"col-12 col-sm-12 col-md-6\"\r\n          style={{ paddingLeft: \"1.3rem\" }}\r\n        >\r\n          {headerContent}\r\n        </Col>\r\n        <Col\r\n          className=\"col-12 col-sm-12 col-md-6\"\r\n          style={{ textAlign: \"right\", paddingRight: \"1rem\" }}\r\n        ></Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default AbstractionHeaderComponent;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport AbstractionHeaderComponent from \"../../components/AbstractionHeaderComponent\";\r\n\r\nconst HeaderSubComponent = () => {\r\n  return (\r\n    <div>\r\n      <Row className=\"mb-1\">\r\n        <Col className=\"col-md-12\">\r\n          <h1>Abstraction Register</h1>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"col-md-12\">\r\n          <h5>{\"  \"}</h5>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst Header = () => {\r\n  const headerContent = <HeaderSubComponent />;\r\n  return <AbstractionHeaderComponent headerContent={headerContent} />;\r\n};\r\n\r\nexport default Header;\r\n","interface ILeapHomeContainerProps {\r\n  content: JSX.Element;\r\n}\r\n\r\nconst AbstractionHomeContainer = ({ content }: ILeapHomeContainerProps) => (\r\n  <div>{content}</div>\r\n);\r\n\r\nexport default AbstractionHomeContainer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { formatDate } from \"../../../../api/DateUtils\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport EpaCard from \"../../../../leap-components/EpaCard\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport Header from \"./Header\";\r\nimport { Grid } from \"../../../../leap-components/Grid\";\r\nimport AbstractionHomeContainer from \"./AbstractionContainer\";\r\n\r\nimport {\r\n  GetAbstractionsFetchUrl,\r\n  GetFilteredAbstractionsFetchUrl,\r\n  GetFilteredAbstractionsCsv,\r\n  GetAbstractionPointsCsvUrl,\r\n} from \"../../../../api/Abstractions/IAbstractions\";\r\n\r\nimport { EpaGridOrderByFetchParams } from \"../../../../leap-components/Grid/EpaGridProps\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\n\r\ninterface ISearchResultRow {\r\n  registernumber: string;\r\n  organisationname: string;\r\n  sitecomputedaddress: string;\r\n  county: string;\r\n  abstractionpurpose: string;\r\n}\r\n\r\nconst GetDetailsUrl = (regNo: string) => {\r\n  return `/abstractions/${regNo}`;\r\n};\r\n\r\nconst AbstractionList = () => {\r\n  const [searchValue, setSearchValue] = useState(\"\");\r\n\r\n  const searchChangedFn = (newSearch: string) => {\r\n    setSearchValue(newSearch);\r\n  };\r\n\r\n  const countyFilterValues = [\r\n    { value: \"Antrim\", label: \"Antrim\" },\r\n    { value: \"Armagh\", label: \"Armagh\" },\r\n    { value: \"Carlow\", label: \"Carlow\" },\r\n    { value: \"Cavan\", label: \"Cavan\" },\r\n    { value: \"Clare\", label: \"Clare\" },\r\n    { value: \"Cork\", label: \"Cork\" },\r\n    { value: \"Derry\", label: \"Derry\" },\r\n    { value: \"Donegal\", label: \"Donegal\" },\r\n    { value: \"Down\", label: \"Down\" },\r\n    { value: \"Dublin\", label: \"Dublin\" },\r\n    { value: \"Fermanagh\", label: \"Fermanagh\" },\r\n    { value: \"Galway\", label: \"Galway\" },\r\n    { value: \"Kerry\", label: \"Kerry\" },\r\n    { value: \"Kildare\", label: \"Kildare\" },\r\n    { value: \"Kilkenny\", label: \"Kilkenny\" },\r\n    { value: \"Laois\", label: \"Laois\" },\r\n    { value: \"Leitrim\", label: \"Leitrim\" },\r\n    { value: \"Limerick\", label: \"Limerick\" },\r\n    { value: \"Longford\", label: \"Longford\" },\r\n    { value: \"Louth\", label: \"Louth\" },\r\n    { value: \"Mayo\", label: \"Mayo\" },\r\n    { value: \"Meath\", label: \"Meath\" },\r\n    { value: \"Monaghan\", label: \"Monaghan\" },\r\n    { value: \"Offaly\", label: \"Offaly\" },\r\n    { value: \"Roscommon\", label: \"Roscommon\" },\r\n    { value: \"Sligo\", label: \"Sligo\" },\r\n    { value: \"Tipperary\", label: \"Tipperary\" },\r\n    { value: \"Tyrone\", label: \"Tyrone\" },\r\n    { value: \"Waterford\", label: \"Waterford\" },\r\n    { value: \"Westmeath\", label: \"Westmeath\" },\r\n    { value: \"Wexford\", label: \"Wexford\" },\r\n    { value: \"Wicklow\", label: \"Wicklow\" },\r\n  ];\r\n\r\n  //Applied, Registered, Licensed, Replaced, Withdrawn, Refused, Surrendered, Ceased (not commenced).\r\n\r\n  const statusFilterValues = [\r\n    { value: \"Applied\", label: \"Applied\" },\r\n    { value: \"Ceased (not commenced)\", label: \"Ceased (not commenced)\" },\r\n    { value: \"Closed\", label: \"Closed\" },\r\n    { value: \"Licensed\", label: \"Licensed\" },\r\n    { value: \"Refused\", label: \"Refused\" },\r\n    { value: \"Registered\", label: \"Registered\" },\r\n    { value: \"Replaced\", label: \"Replaced\" },\r\n    { value: \"Surrendered\", label: \"Surrendered\" },\r\n    { value: \"Withdrawn\", label: \"Withdrawn\" },\r\n  ];\r\n\r\n  const tableColumnsBig: Column<Record<string, ISearchResultRow>>[] = [\r\n    {\r\n      Header: \"Register Number\",\r\n      accessor: \"registernumber\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return (\r\n          <Link to={GetDetailsUrl(rowData.registernumber)}>\r\n            {rowInfo.value}\r\n          </Link>\r\n        );\r\n      },\r\n      sortType: \"basic\",\r\n    },\r\n    {\r\n      Header: \"Organisation\",\r\n      accessor: \"organisationname\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Site\",\r\n      accessor: \"sitecomputedaddress\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"County\",\r\n      accessor: \"county\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        countyFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Abstraction Purpose\",\r\n      accessor: \"abstractionpurpose\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Maximum Daily Volume\",\r\n      accessor: \"maximumdailyvolume\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Authorisation Status\",\r\n      accessor: \"licencestatus\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        statusFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Open For Submissions\",\r\n      accessor: \"openforsubmissiontext\",\r\n      Filter: false,\r\n      sortType: \"basic\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, ISearchResultRow>>[] = [\r\n    {\r\n      Header: \"Register Number\",\r\n      accessor: \"registernumber\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return (\r\n          <Link to={GetDetailsUrl(rowData.registernumber)}>\r\n            {rowInfo.value}\r\n          </Link>\r\n        );\r\n      },\r\n      sortType: \"basic\",\r\n    },\r\n    {\r\n      Header: \"Organisation\",\r\n      accessor: \"organisationname\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Site\",\r\n      accessor: \"sitecomputedaddress\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"County\",\r\n      accessor: \"county\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        countyFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Abstraction Purpose\",\r\n      accessor: \"abstractionpurpose\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Maximum Daily Volume\",\r\n      accessor: \"maximumdailyvolume\",\r\n      Filter: false,\r\n    },\r\n    {\r\n      Header: \"Authorisation Status\",\r\n      accessor: \"licencestatus\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        statusFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Open For Submissions\",\r\n      accessor: \"openforsubmissiontext\",\r\n      Filter: false,\r\n      sortType: \"basic\",\r\n    },\r\n  ];\r\n\r\n  const getFetchUrlFactory = () => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any,\r\n      orderBy?: EpaGridOrderByFetchParams\r\n    ) => {\r\n      return GetFilteredAbstractionsFetchUrl(\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters,\r\n        orderBy\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory();\r\n\r\n  const orderBy = {\r\n    orderByAscending: false,\r\n    orderByName: \"Register Number\",\r\n    enabledOrderByColumns: [\"Register Number\", \"Open For Submissions\"],\r\n  };\r\n\r\n  const results = (\r\n    <div>\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n          orderBy={orderBy}\r\n          exportToCsvFunction={GetFilteredAbstractionsCsv}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={true}\r\n          orderBy={orderBy}\r\n          exportToCsvFunction={GetFilteredAbstractionsCsv}\r\n        />\r\n      </div>\r\n      <div style={{ display: \"flex\", justifyContent: \"flex-end\" }}>\r\n        <a\r\n          href={GetAbstractionPointsCsvUrl()}\r\n          target=\"_blank\"\r\n          rel=\"Download Abstraction Points\"\r\n          className=\"btn btn-primary\"\r\n          color=\"#FFFFFF\"\r\n        >\r\n          <button>Download Abstraction Points CSV</button>\r\n        </a>\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"ps-0\">\r\n          <EpaCard title=\"Search Abstractions\" content={results} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs />\r\n      <div className=\"ps-0\">\r\n        <Header />\r\n        <AbstractionHomeContainer content={contentElement} />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default AbstractionList;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\ninterface IBreadCrumProps {\r\n  regno: string;\r\n}\r\n\r\nconst BreadCrumbs = ({ regno }: IBreadCrumProps) => {\r\n  return (\r\n    <Row>\r\n      <Col xs=\"12\">\r\n        <Breadcrumb className=\"leap\">\r\n          <Breadcrumb.Item href=\"/abstractions\">Abstractions</Breadcrumb.Item>\r\n          <Breadcrumb.Item>{regno}</Breadcrumb.Item>\r\n        </Breadcrumb>\r\n      </Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","let SUBMISSIONS_DOMAIN = \"http://localhost:3001\";\r\nlet RSS_URL_DOMAIN = \"https://epawebapp.epa.ie\";\r\nlet LEAP_RSS_URL_DOMAIN = \"https://epawebapp.epa.ie\";\r\n//https://leap-int.edenireland.ie/docs/rss/w0299-01.xml\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n  case \"localhost\":\r\n    SUBMISSIONS_DOMAIN = \"http://localhost:3001\";\r\n    RSS_URL_DOMAIN = \"http://localhost:3001\";\r\n    LEAP_RSS_URL_DOMAIN = \"https://leap-int.edenireland.ie\";\r\n    break;\r\n\r\n  case \"inttest\":\r\n    SUBMISSIONS_DOMAIN = \"https://lema-int.epa.ie\";\r\n    RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n    LEAP_RSS_URL_DOMAIN = \"http://localhost:3001\";\r\n    LEAP_RSS_URL_DOMAIN = \"https://leap-int.edenireland.ie\";\r\n\r\n    break;\r\n\r\n  case \"bustest\":\r\n    SUBMISSIONS_DOMAIN = \"https://lema-tst.epa.ie\";\r\n    RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n    LEAP_RSS_URL_DOMAIN = \"https://leap-tst.edenireland.ie\";\r\n\r\n    break;\r\n\r\n  case \"staging\":\r\n    SUBMISSIONS_DOMAIN = \"https://lema-stg.epa.ie\";\r\n    RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n    LEAP_RSS_URL_DOMAIN = \"https://leap-stg.epa.ie\";\r\n\r\n    break;\r\n\r\n  case \"production\":\r\n    SUBMISSIONS_DOMAIN = \"https://lema.epa.ie\";\r\n    RSS_URL_DOMAIN = \"https://epawebapp.epa.ie\";\r\n    LEAP_RSS_URL_DOMAIN = \"https://leap.epa.ie\";\r\n\r\n    break;\r\n}\r\n\r\nexport const RSS_PREFIX = `${SUBMISSIONS_DOMAIN}/licences/lic_eDMS/rss`;\r\nexport const LEAP_RSS_PREFIX = `${LEAP_RSS_URL_DOMAIN}/docs/rss`;\r\n\r\nexport const GetSubmissionUrl = (regNo: string) => {\r\n  return `${SUBMISSIONS_DOMAIN}/Submissions/Submission.aspx?p1=${regNo}`;\r\n};\r\n\r\nexport const GetObservationUrl = (regNo: string) => {\r\n  return `${SUBMISSIONS_DOMAIN}/Submissions/Observation.aspx?p1=${regNo}`;\r\n};\r\n\r\nexport const GetLeapRssUrl = (regNo: string) => {\r\n  return `${LEAP_RSS_URL_DOMAIN}/docs/rss/${regNo}.xml`;\r\n};\r\n\r\nexport const GetRssUrl = (regNo: string) => {\r\n  return `${RSS_URL_DOMAIN}/licences/lic_eDMS/rss/${regNo}.xml`;\r\n};\r\n","import { Button, Col, Row } from \"react-bootstrap\";\r\nimport EpaCard from \"../../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../../leap-components/EpaField\";\r\nimport { faHourglassEnd, faRssSquare } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nimport { IAbstractionDetails } from \"../../../../api/Abstractions/IAbstractions\";\r\nimport { formatDate } from \"../../../../api/DateUtils\";\r\nimport {\r\n  GetSubmissionUrl,\r\n  GetLeapRssUrl,\r\n  GetObservationUrl,\r\n} from \"../../../../external-apps/Config\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\nvar backGroundColor = \"#FFA500\"; //Orange\r\n\r\ninterface AbstractionDetailsProps {\r\n  abstractionDetails: IAbstractionDetails;\r\n}\r\n\r\nconst MakeASubmission = ({ abstractionDetails }: AbstractionDetailsProps) => {\r\n  const isVisible = abstractionDetails.openforsubmissions === 1;\r\n  return (\r\n    <div\r\n      className=\"p-3\"\r\n      style={{ visibility: isVisible ? \"visible\" : \"hidden\" }}\r\n    >\r\n      <a\r\n        href={GetSubmissionUrl(abstractionDetails.registernumber)}\r\n        target=\"_blank\"\r\n        rel={abstractionDetails.registernumber}\r\n        className=\"btn btn-primary\"\r\n      >\r\n        <button>Make a Submission</button>\r\n      </a>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst MakeAObservation = ({ abstractionDetails }: AbstractionDetailsProps) => {\r\n  const isVisible = abstractionDetails.openforsubmissions === 2;\r\n  return (\r\n    <div\r\n      className=\"p-3\"\r\n      style={{ visibility: isVisible ? \"visible\" : \"hidden\" }}\r\n    >\r\n      <a\r\n        href={GetObservationUrl(abstractionDetails.registernumber)}\r\n        target=\"_blank\"\r\n        rel={abstractionDetails.registernumber}\r\n        className=\"btn btn-primary\"\r\n      >\r\n        <button>Make an Observation</button>\r\n      </a>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst AbstractionFields = ({ abstractionDetails }: AbstractionDetailsProps) => {\r\n  var bodyElements = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"col-12 col-md-6\">\r\n          <EpaField\r\n            label={\"Registration Number\"}\r\n            value={\r\n              <a href={GetLeapRssUrl(abstractionDetails.registernumber)}>\r\n                {abstractionDetails.registernumber}\r\n                <FontAwesomeIcon\r\n                  style={{ color: backGroundColor }}\r\n                  className=\"fas fa-stack-2x icon-background\"\r\n                  icon={faRssSquare}\r\n                />\r\n              </a>\r\n            }\r\n          />\r\n          <EpaField\r\n            label={\"Organisation\"}\r\n            value={abstractionDetails.organisationname}\r\n          />\r\n          <EpaField\r\n            label={\"Site Address\"}\r\n            value={abstractionDetails.sitecomputedaddress}\r\n          />\r\n          <EpaField\r\n            label={\"Abstraction Purpose\"}\r\n            value={abstractionDetails.abstractionpurpose}\r\n          />\r\n          <EpaField label={\"County\"} value={abstractionDetails.county} />\r\n        </Col>\r\n        <Col>\r\n          <EpaField\r\n            label={\"Date Received\"}\r\n            value={formatDate(abstractionDetails.applicationreceiveddate)}\r\n          />\r\n\r\n          <EpaField label={\"Status\"} value={abstractionDetails.licencestatus} />\r\n\r\n          <EpaField\r\n            label={\"Issued Date\"}\r\n            value={formatDate(abstractionDetails.licenceissueddate)}\r\n          />\r\n\r\n          <MakeAObservation abstractionDetails={abstractionDetails} />\r\n          <MakeASubmission abstractionDetails={abstractionDetails} />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  ) as JSX.Element;\r\n\r\n  return <EpaCard title={\"Abstraction Details\"} content={bodyElements} />;\r\n};\r\n\r\nexport default AbstractionFields;\r\n","import { formatDate } from \"../../../../api/DateUtils\";\r\nimport { Column } from \"react-table\";\r\nimport { Grid } from \"../../../../leap-components/Grid\";\r\nimport { SelectColumnFilter } from \"../../../../leap-components/Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport {\r\n  GetFilteredDocumentsFetchUrl,\r\n  GetFilteredDocumentsFilteredFetchUrl,\r\n} from \"../../../../api/Abstractions/IAbstractions\";\r\nimport EpaCard from \"../../../../leap-components/EpaCard\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\n\r\nconst CreatedByFilterValues = [\r\n  { value: \"Applicant\", label: \"Applicant\" },\r\n  { value: \"EPA\", label: \"EPA\" },\r\n  { value: \"ThirdParty\", label: \"Third Party\" },\r\n];\r\n\r\ninterface IDocumentRow {\r\n  documentid: string;\r\n  filename: string;\r\n  url: string;\r\n  extension: string;\r\n  filesize: string;\r\n  documentdate: string;\r\n  regardingobjectid: string;\r\n  licenceid: string;\r\n  created_by: string;\r\n  classification: string;\r\n}\r\n\r\ninterface DocumentsGridProps {\r\n  licenseId: string;\r\n}\r\n\r\nconst DocumentsGrid = ({ licenseId }: DocumentsGridProps) => {\r\n  const getFetchUrlFactory = (licenseId: string) => {\r\n    let fetchUrlFn = (\r\n      pageNo: number,\r\n      recordsPerPage: number,\r\n      searchText: string,\r\n      filters: any\r\n    ) => {\r\n      return GetFilteredDocumentsFilteredFetchUrl(\r\n        licenseId,\r\n        pageNo,\r\n        recordsPerPage,\r\n        searchText,\r\n        filters\r\n      );\r\n    };\r\n\r\n    return fetchUrlFn;\r\n  };\r\n\r\n  const fetchUrl = getFetchUrlFactory(licenseId);\r\n\r\n  const tableColumnsBig: Column<Record<string, IDocumentRow>>[] = [\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"documentdate\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Created By\",\r\n      accessor: \"createdby\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        CreatedByFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Document Name\",\r\n      accessor: \"filename\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return <a href={rowData.url}>{rowInfo.value}</a>;\r\n      },\r\n      sortType: \"basic\",\r\n    },\r\n  ];\r\n\r\n  const tableColumnsSmall: Column<Record<string, IDocumentRow>>[] = [\r\n    {\r\n      Header: \"Date\",\r\n      accessor: \"documentdate\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n    },\r\n    {\r\n      Header: \"Created By\",\r\n      accessor: \"createdby\",\r\n      Filter: CreateStaticSelectColumnFilter(\r\n        CreatedByFilterValues.map((n) => n.value)\r\n      ),\r\n      filter: \"includes\",\r\n    },\r\n    {\r\n      Header: \"Document Name\",\r\n      accessor: \"filename\",\r\n      Filter: false,\r\n      Cell: (rowInfo: any) => {\r\n        const rowData = rowInfo.data[rowInfo.row.index];\r\n        return <Link to={rowData.url}>{rowInfo.value}</Link>;\r\n      },\r\n      sortType: \"basic\",\r\n    },\r\n  ];\r\n\r\n  var bodyElements = (\r\n    <div className=\"ps-0\">\r\n      <div className=\"d-md-none\">\r\n        <Grid\r\n          columns={tableColumnsSmall}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={false}\r\n        />\r\n      </div>\r\n      <div className=\"d-none d-md-block\">\r\n        <Grid\r\n          columns={tableColumnsBig}\r\n          data={[]}\r\n          fetchUrlFunction={fetchUrl}\r\n          enablePagination={true}\r\n          enableQuickFind={false}\r\n        />\r\n      </div>\r\n    </div>\r\n  );\r\n\r\n  return <EpaCard title={\"Documents\"} content={bodyElements} />;\r\n};\r\n\r\nexport { DocumentsGrid };\r\n","import { Row, Col } from \"react-bootstrap\";\r\n\r\nconst ContactUs = () => {\r\n  const text = (\r\n    <div>\r\n      <p>\r\n        <b>Contact Us</b>\r\n      </p>\r\n      <p>For further queries, please contact </p>\r\n      <p>\r\n        Email: <a href=\"mailto: licensing@epa.ie\">licensing@epa.ie</a>.\r\n      </p>\r\n      <p>Telephone: 053 91 60600.</p>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <Row>\r\n      <Col className=\"ps-4\">{text}</Col>\r\n    </Row>\r\n  );\r\n};\r\n\r\nexport default ContactUs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport AbstractionFields from \"./AbstractionFields\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../../pages/auth/Page404\";\r\n\r\nimport useAppSelector from \"../../../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../../../hooks/useAppDispatch\";\r\nimport { useState } from \"react\";\r\n\r\nimport Page500 from \"../../../../pages/auth/Page500\";\r\n\r\nimport {\r\n  IAbstractionDetails,\r\n  IAbstractionResponse,\r\n} from \"../../../../api/Abstractions/IAbstractions\";\r\nimport { DocumentsGrid } from \"./DocumentsGrid\";\r\nimport {\r\n  loadAbstractionAsync,\r\n  selectAbstractionResponse,\r\n} from \"../../redux/slices/abstraction\";\r\nimport Loading from \"../../../../leap-components/Loading\";\r\nimport ContactUs from \"./ContactUs\";\r\n\r\nconst IsAbstractionReady = (abstractionResponse?: IAbstractionResponse) => {\r\n  if (!abstractionResponse) {\r\n    return false;\r\n  }\r\n\r\n  if (abstractionResponse.response.httpStatusCode === 404) {\r\n    return false;\r\n  }\r\n\r\n  if (!abstractionResponse.abstraction) {\r\n    return false;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nconst GetNotReadyComponent = (abstractionResponse?: IAbstractionResponse) => {\r\n  if (!abstractionResponse) {\r\n    return <Loading />;\r\n  }\r\n\r\n  if (abstractionResponse.response.httpStatusCode === 404) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!abstractionResponse.abstraction) {\r\n    return <Page500 />;\r\n  }\r\n\r\n  return <Loading />;\r\n};\r\n\r\nconst AbstractionDetails = () => {\r\n  const [loading, setLoading] = useState(false);\r\n  const abstractionSelector = useAppSelector(selectAbstractionResponse);\r\n  const dispatch = useAppDispatch();\r\n\r\n  let { regNo } = useParams();\r\n  if (!regNo) {\r\n    return <Page404 />;\r\n  }\r\n\r\n  if (!loading) {\r\n    setLoading(true);\r\n    dispatch(loadAbstractionAsync(regNo));\r\n  }\r\n\r\n  if (!IsAbstractionReady(abstractionSelector.abstractionResponse)) {\r\n    return GetNotReadyComponent(abstractionSelector.abstractionResponse);\r\n  }\r\n\r\n  const absDetails = abstractionSelector.abstractionResponse\r\n    ?.abstraction as IAbstractionDetails;\r\n\r\n  const contentElement = (\r\n    <div>\r\n      <Row>\r\n        <Col className=\"ps-0\">\r\n          <AbstractionFields abstractionDetails={absDetails} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"ps-0\">\r\n          <DocumentsGrid licenseId={absDetails.licenceid} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col className=\"ps-0\">\r\n          <ContactUs />\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n  );\r\n\r\n  return (\r\n    <div>\r\n      <BreadCrumbs regno={absDetails.registernumber} />\r\n      <div className=\"ps-0\">{contentElement}</div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default AbstractionDetails;\r\n","// Layouts\r\nimport AuthLayout from \"../../layouts/Auth\";\r\nimport LeapDashboardLayout from \"../../layouts/LeapDashboard\";\r\n\r\nimport LicenceProfile from \"../../leap-dashboards/LicenceProfile\";\r\n\r\n// Auth\r\nimport Page404 from \"../../pages/auth/Page404\";\r\n\r\n// Protected routes\r\nimport LicenceDashboard from \"../../leap-pages/LicenceProfile\";\r\nimport SiteVisit from \"../../leap-pages/LicenceProfile/SiteVisits\";\r\nimport Confirm from \"../../leap-pages/Confirm\";\r\nimport ComplianceTab from \"../../leap-pages/LicenceProfile/ComplianceTab\";\r\nimport LicenceVersionsTab from \"../../leap-pages/LicenceProfile/LicenceVersionsTab\";\r\nimport LicenseeReturn from \"../../leap-pages/LicenceProfile/LicenseeReturn\";\r\nimport RequestForInformation from \"../../leap-pages/LicenceProfile/RequestForInformation\";\r\nimport FindingAndRecommendation from \"../../leap-pages/LicenceProfile/FindingAndRecommendation\";\r\nimport Instruction from \"../../leap-pages/LicenceProfile/Instruction\";\r\nimport EdenMessage from \"../../leap-pages/LicenceProfile/EdenMessage\";\r\nimport LeapHome from \"../../leap-pages/LeapHome\";\r\nimport ComplianceInvestigation from \"../../leap-pages/LicenceProfile/ComplianceInvestigation\";\r\nimport Incident from \"../../leap-pages/LicenceProfile/Incident\";\r\nimport Complaint from \"../../leap-pages/LicenceProfile/Complaint\";\r\nimport IncidentUpdateRequest from \"../../leap-pages/LicenceProfile/IncidentUpdateRequest\";\r\nimport Meeting from \"../../leap-pages/LicenceProfile/Meeting\";\r\nimport NonCompliance from \"../../leap-pages/LicenceProfile/NonCompliance\";\r\nimport ActionOrInstruction from \"../../leap-pages/LicenceProfile/ComplianceInvestigation/ActionsOrInstructions\";\r\nimport EpaCorrespondence from \"../../leap-pages/LicenceProfile/EpaCorrespondence\";\r\nimport ThirdPartyCorrespondence from \"../../leap-pages/LicenceProfile/ThirdPartyCorrespondence\";\r\nimport Page500 from \"../../pages/auth/Page500\";\r\nimport AbstractionList from \"../abstraction/pages/List\";\r\nimport AbstractionDetails from \"../abstraction/pages/Details\";\r\n\r\nconst routes = [\r\n  {\r\n    path: \"/\",\r\n    element: <LeapDashboardLayout />,\r\n    children: [\r\n      {\r\n        path: \"\",\r\n        element: <LeapHome />,\r\n      },\r\n      {\r\n        path: \"confirm\",\r\n        element: <Confirm />,\r\n      },\r\n      {\r\n        path: \"404\",\r\n        element: <Page404 />,\r\n      },\r\n      {\r\n        path: \"500\",\r\n        element: <Page500 />,\r\n      },\r\n      {\r\n        path: \"abstractions\",\r\n        element: <AbstractionList />,\r\n      },\r\n      {\r\n        path: \"abstractions/:regNo\",\r\n        element: <AbstractionDetails />,\r\n      },\r\n      {\r\n        path: \"licence-profile/:profileNo\",\r\n        element: <LicenceProfile />,\r\n        children: [\r\n          {\r\n            path: \"\",\r\n            element: <LicenceDashboard />,\r\n          },\r\n          {\r\n            path: \"compliance\",\r\n            element: <ComplianceTab />,\r\n          },\r\n          {\r\n            path: \"versions\",\r\n            element: <LicenceVersionsTab />,\r\n          },\r\n          {\r\n            path: \"compliance/sitevisit/:siteVisitId\",\r\n            element: <SiteVisit />,\r\n          },\r\n          {\r\n            path: \"compliance/return/:licenseeReturnId\",\r\n            element: <LicenseeReturn />,\r\n          },\r\n          {\r\n            path: \"compliance/request-for-information/:requestForInformationId\",\r\n            element: <RequestForInformation />,\r\n          },\r\n          {\r\n            path: \"compliance/finding-and-recommendation/:findingAndRecommendationId\",\r\n            element: <FindingAndRecommendation />,\r\n          },\r\n          {\r\n            path: \"compliance/action-or-instruction/:actionOrInstructionId\",\r\n            element: <ActionOrInstruction />,\r\n          },\r\n          {\r\n            path: \"compliance/lr-instruction/:instructionId\",\r\n            element: <Instruction />,\r\n          },\r\n          {\r\n            path: \"compliance/epa-correspondence/:epaCorrespondenceId\",\r\n            element: <EpaCorrespondence />,\r\n          },\r\n          {\r\n            path: \"compliance/3rd-party-correspondence/:thirdPartyCorrespondenceId\",\r\n            element: <ThirdPartyCorrespondence />,\r\n          },\r\n          {\r\n            path: \"compliance/eden-message/:edenMessageId\",\r\n            element: <EdenMessage />,\r\n          },\r\n          {\r\n            path: \"compliance/investigation/:complianceInvestigationId\",\r\n            element: <ComplianceInvestigation />,\r\n          },\r\n          {\r\n            path: \"compliance/incident/:incidentId\",\r\n            element: <Incident />,\r\n          },\r\n          {\r\n            path: \"compliance/incident-update-request/:incidentUpdateRequestId\",\r\n            element: <IncidentUpdateRequest />,\r\n          },\r\n          {\r\n            path: \"compliance/complaint/:complaintId\",\r\n            element: <Complaint />,\r\n          },\r\n          {\r\n            path: \"compliance/meeting/:meetingId\",\r\n            element: <Meeting />,\r\n          },\r\n          {\r\n            path: \"compliance/non-compliance/:nonComplianceId\",\r\n            element: <NonCompliance />,\r\n          },\r\n        ],\r\n      },\r\n      {\r\n        path: \"site-visit/:siteVisitId\",\r\n        element: <SiteVisit />,\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    path: \"*\",\r\n    element: <AuthLayout />,\r\n    children: [\r\n      {\r\n        path: \"*\",\r\n        element: <Page404 />,\r\n      },\r\n    ],\r\n  },\r\n];\r\n\r\nexport default routes;\r\n","import { useState, useEffect } from \"react\";\r\n\r\nimport { THEME, THEME_PALETTE_LIGHT, THEME_PALETTE_DARK } from \"../constants\";\r\n\r\nimport useTheme from \"./useTheme\";\r\n\r\nconst usePalette = () => {\r\n  const { theme } = useTheme();\r\n\r\n  const [palette, setPalette] = useState(THEME_PALETTE_LIGHT);\r\n\r\n  useEffect(() => {\r\n    if (theme === THEME.DARK) {\r\n      setPalette(THEME_PALETTE_DARK);\r\n    } else {\r\n      setPalette(THEME_PALETTE_LIGHT);\r\n    }\r\n  }, [theme]);\r\n\r\n  return palette;\r\n};\r\n\r\nexport default usePalette;\r\n","import { useEffect } from \"react\";\r\n\r\nimport usePalette from \"../hooks/usePalette\";\r\nimport { defaults } from \"react-chartjs-2\";\r\n\r\nconst ChartJsDefaults = () => {\r\n  const palette = usePalette();\r\n\r\n  useEffect(() => {\r\n    defaults.global.defaultFontColor = palette[\"gray-600\"];\r\n    defaults.global.defaultFontFamily =\r\n      \"'Poppins', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\";\r\n  }, [palette]);\r\n\r\n  return null;\r\n};\r\n\r\nexport default ChartJsDefaults;\r\n\r\ndeclare global {\r\n  interface Window {\r\n    Chart: any;\r\n  }\r\n}\r\n\r\n// Rounded corners for barcharts\r\nwindow.Chart.elements.Rectangle.prototype.draw = function () {\r\n  const ctx = this._chart.ctx;\r\n  const vm = this._view;\r\n  let left, right, top, bottom, signX, signY, borderSkipped;\r\n  let borderWidth = vm.borderWidth;\r\n  let cornerRadius = 10;\r\n\r\n  if (!vm.horizontal) {\r\n    // bar\r\n    left = vm.x - vm.width / 2;\r\n    right = vm.x + vm.width / 2;\r\n    top = vm.y;\r\n    bottom = vm.base;\r\n    signX = 1;\r\n    signY = bottom > top ? 1 : -1;\r\n    borderSkipped = vm.borderSkipped || \"bottom\";\r\n  } else {\r\n    // horizontal bar\r\n    left = vm.base;\r\n    right = vm.x;\r\n    top = vm.y - vm.height / 2;\r\n    bottom = vm.y + vm.height / 2;\r\n    signX = right > left ? 1 : -1;\r\n    signY = 1;\r\n    borderSkipped = vm.borderSkipped || \"left\";\r\n  }\r\n\r\n  // Canvas doesn't allow us to stroke inside the width so we can\r\n  // adjust the sizes to fit if we're setting a stroke on the line\r\n  if (borderWidth) {\r\n    // borderWidth shold be less than bar width and bar height.\r\n    const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n    borderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n    const halfStroke = borderWidth / 2;\r\n    // Adjust borderWidth when bar top position is near vm.base(zero).\r\n    const borderLeft =\r\n      left + (borderSkipped !== \"left\" ? halfStroke * signX : 0);\r\n    const borderRight =\r\n      right + (borderSkipped !== \"right\" ? -halfStroke * signX : 0);\r\n    const borderTop = top + (borderSkipped !== \"top\" ? halfStroke * signY : 0);\r\n    const borderBottom =\r\n      bottom + (borderSkipped !== \"bottom\" ? -halfStroke * signY : 0);\r\n    // not become a vertical line?\r\n    if (borderLeft !== borderRight) {\r\n      top = borderTop;\r\n      bottom = borderBottom;\r\n    }\r\n    // not become a horizontal line?\r\n    if (borderTop !== borderBottom) {\r\n      left = borderLeft;\r\n      right = borderRight;\r\n    }\r\n  }\r\n\r\n  ctx.beginPath();\r\n  ctx.fillStyle = vm.backgroundColor;\r\n  ctx.strokeStyle = vm.borderColor;\r\n  ctx.lineWidth = borderWidth;\r\n\r\n  // Corner points, from bottom-left to bottom-right clockwise\r\n  // | 1 2 |\r\n  // | 0 3 |\r\n  const corners = [\r\n    [left, bottom],\r\n    [left, top],\r\n    [right, top],\r\n    [right, bottom],\r\n  ];\r\n\r\n  // Find first (starting) corner with fallback to 'bottom'\r\n  const borders = [\"bottom\", \"left\", \"top\", \"right\"];\r\n  let startCorner = borders.indexOf(borderSkipped, 0);\r\n  if (startCorner === -1) {\r\n    startCorner = 0;\r\n  }\r\n\r\n  function cornerAt(index: any) {\r\n    return corners[(startCorner + index) % 4];\r\n  }\r\n\r\n  // Draw rectangle from 'startCorner'\r\n  let corner = cornerAt(0);\r\n  ctx.moveTo(corner[0], corner[1]);\r\n\r\n  for (var i = 1; i < 4; i++) {\r\n    corner = cornerAt(i);\r\n\r\n    const width = corners[2][0] - corners[1][0];\r\n    const height = corners[0][1] - corners[1][1];\r\n    const x = corners[1][0];\r\n    const y = corners[1][1];\r\n\r\n    let radius = cornerRadius;\r\n\r\n    // Fix radius being too large\r\n    if (radius > height / 2) {\r\n      radius = height / 2;\r\n    }\r\n    if (radius > width / 2) {\r\n      radius = width / 2;\r\n    }\r\n\r\n    let lastVisible = 0;\r\n    for (\r\n      let findLast = 0, findLastTo = this._chart.data.datasets.length;\r\n      findLast < findLastTo;\r\n      findLast++\r\n    ) {\r\n      if (!this._chart.getDatasetMeta(findLast).hidden) {\r\n        lastVisible = findLast;\r\n      }\r\n    }\r\n\r\n    let rounded = this._datasetIndex === lastVisible;\r\n\r\n    if (rounded) {\r\n      ctx.moveTo(x + radius, y);\r\n      ctx.lineTo(x + width - radius, y);\r\n      ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n      ctx.lineTo(x + width, y + height);\r\n      ctx.lineTo(x, y + height);\r\n      ctx.lineTo(x, y + radius);\r\n      ctx.quadraticCurveTo(x, y, x + radius, y);\r\n    } else {\r\n      ctx.moveTo(x, y);\r\n      ctx.lineTo(x + width, y);\r\n      ctx.lineTo(x + width, y + height);\r\n      ctx.lineTo(x, y + height);\r\n      ctx.lineTo(x, y);\r\n    }\r\n  }\r\n\r\n  ctx.fill();\r\n  if (borderWidth) {\r\n    ctx.stroke();\r\n  }\r\n};\r\n","import axios from \"axios\";\r\n\r\nconst axiosInstance = axios.create();\r\n\r\naxiosInstance.interceptors.response.use(\r\n  (response) => response,\r\n  (error) =>\r\n    Promise.reject(\r\n      (error.response && error.response.data) || \"Something went wrong\"\r\n    )\r\n);\r\n\r\nexport default axiosInstance;\r\n","import jwtDecode from \"jwt-decode\";\r\nimport { verify, sign } from \"jsonwebtoken\";\r\nimport axios from \"./axios\";\r\n\r\nconst isValidToken = (accessToken: string) => {\r\n  if (!accessToken) {\r\n    return false;\r\n  }\r\n  const decoded = jwtDecode<{ exp: number }>(accessToken);\r\n  const currentTime = Date.now() / 1000;\r\n\r\n  return decoded.exp > currentTime;\r\n};\r\n\r\n//  const handleTokenExpired = (exp) => {\r\n//   let expiredTimer;\r\n\r\n//   window.clearTimeout(expiredTimer);\r\n//   const currentTime = Date.now();\r\n//   const timeLeft = exp * 1000 - currentTime;\r\n//   console.log(timeLeft);\r\n//   expiredTimer = window.setTimeout(() => {\r\n//     console.log('expired');\r\n//   }, timeLeft);\r\n// };\r\n\r\nconst setSession = (accessToken: string | null) => {\r\n  if (accessToken) {\r\n    localStorage.setItem(\"accessToken\", accessToken);\r\n    axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n    // This function below will handle when token is expired\r\n    // const { exp } = jwtDecode(accessToken);\r\n    // handleTokenExpired(exp);\r\n  } else {\r\n    localStorage.removeItem(\"accessToken\");\r\n    delete axios.defaults.headers.common.Authorization;\r\n  }\r\n};\r\n\r\nexport { verify, sign, isValidToken, setSession };\r\n","import { createContext, ReactNode, useEffect, useReducer } from \"react\";\r\n\r\nimport { JWTContextType, ActionMap, AuthState, AuthUser } from \"../types/auth\";\r\n\r\nimport axios from \"../utils/axios\";\r\nimport { isValidToken, setSession } from \"../utils/jwt\";\r\n\r\nconst INITIALIZE = \"INITIALIZE\";\r\nconst SIGN_IN = \"SIGN_IN\";\r\nconst SIGN_OUT = \"SIGN_OUT\";\r\nconst SIGN_UP = \"SIGN_UP\";\r\n\r\ntype AuthActionTypes = {\r\n  [INITIALIZE]: {\r\n    isAuthenticated: boolean;\r\n    user: AuthUser;\r\n  };\r\n  [SIGN_IN]: {\r\n    user: AuthUser;\r\n  };\r\n  [SIGN_OUT]: undefined;\r\n  [SIGN_UP]: {\r\n    user: AuthUser;\r\n  };\r\n};\r\n\r\nconst initialState: AuthState = {\r\n  isAuthenticated: false,\r\n  isInitialized: false,\r\n  user: null,\r\n};\r\n\r\nconst JWTReducer = (\r\n  state: AuthState,\r\n  action: ActionMap<AuthActionTypes>[keyof ActionMap<AuthActionTypes>]\r\n) => {\r\n  switch (action.type) {\r\n    case INITIALIZE:\r\n      return {\r\n        isAuthenticated: action.payload.isAuthenticated,\r\n        isInitialized: true,\r\n        user: action.payload.user,\r\n      };\r\n    case SIGN_IN:\r\n      return {\r\n        ...state,\r\n        isAuthenticated: true,\r\n        user: action.payload.user,\r\n      };\r\n    case SIGN_OUT:\r\n      return {\r\n        ...state,\r\n        isAuthenticated: false,\r\n        user: null,\r\n      };\r\n\r\n    case SIGN_UP:\r\n      return {\r\n        ...state,\r\n        isAuthenticated: true,\r\n        user: action.payload.user,\r\n      };\r\n\r\n    default:\r\n      return state;\r\n  }\r\n};\r\n\r\nconst AuthContext = createContext<JWTContextType | null>(null);\r\n\r\nfunction AuthProvider({ children }: { children: ReactNode }) {\r\n  const [state, dispatch] = useReducer(JWTReducer, initialState);\r\n\r\n  useEffect(() => {\r\n    const initialize = async () => {\r\n      try {\r\n        const accessToken = window.localStorage.getItem(\"accessToken\");\r\n\r\n        if (accessToken && isValidToken(accessToken)) {\r\n          setSession(accessToken);\r\n\r\n          const response = await axios.get(\"/api/auth/my-account\");\r\n          const { user } = response.data;\r\n\r\n          dispatch({\r\n            type: INITIALIZE,\r\n            payload: {\r\n              isAuthenticated: true,\r\n              user,\r\n            },\r\n          });\r\n        } else {\r\n          dispatch({\r\n            type: INITIALIZE,\r\n            payload: {\r\n              isAuthenticated: false,\r\n              user: null,\r\n            },\r\n          });\r\n        }\r\n      } catch (err) {\r\n        console.error(err);\r\n        dispatch({\r\n          type: INITIALIZE,\r\n          payload: {\r\n            isAuthenticated: false,\r\n            user: null,\r\n          },\r\n        });\r\n      }\r\n    };\r\n\r\n    initialize();\r\n  }, []);\r\n\r\n  const signIn = async (email: string, password: string) => {\r\n    const response = await axios.post(\"/api/auth/sign-in\", {\r\n      email,\r\n      password,\r\n    });\r\n    const { accessToken, user } = response.data;\r\n\r\n    setSession(accessToken);\r\n    dispatch({\r\n      type: SIGN_IN,\r\n      payload: {\r\n        user,\r\n      },\r\n    });\r\n  };\r\n\r\n  const signOut = async () => {\r\n    setSession(null);\r\n    dispatch({ type: SIGN_OUT });\r\n  };\r\n\r\n  const signUp = async (\r\n    email: string,\r\n    password: string,\r\n    firstName: string,\r\n    lastName: string\r\n  ) => {\r\n    const response = await axios.post(\"/api/auth/sign-up\", {\r\n      email,\r\n      password,\r\n      firstName,\r\n      lastName,\r\n    });\r\n    const { accessToken, user } = response.data;\r\n\r\n    window.localStorage.setItem(\"accessToken\", accessToken);\r\n    dispatch({\r\n      type: SIGN_UP,\r\n      payload: {\r\n        user,\r\n      },\r\n    });\r\n  };\r\n\r\n  const resetPassword = (email: string) => console.log(email);\r\n\r\n  return (\r\n    <AuthContext.Provider\r\n      value={{\r\n        ...state,\r\n        method: \"jwt\",\r\n        signIn,\r\n        signOut,\r\n        signUp,\r\n        resetPassword,\r\n      }}\r\n    >\r\n      {children}\r\n    </AuthContext.Provider>\r\n  );\r\n}\r\n\r\nexport { AuthContext, AuthProvider };\r\n","import React from \"react\";\r\nimport { useRoutes, useNavigate, Navigate } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { HelmetProvider, Helmet } from \"react-helmet-async\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nimport \"../../i18n\";\r\nimport routes from \"./routes\";\r\n\r\nimport { ThemeProvider } from \"./ThemeContext\";\r\nimport { SidebarProvider } from \"../../contexts/SidebarContext\";\r\nimport { LayoutProvider } from \"../../contexts/LayoutContext\";\r\nimport ChartJsDefaults from \"../../utils/ChartJsDefaults\";\r\n\r\nimport { AuthProvider } from \"../../contexts/JWTContext\";\r\n\r\nconst App = () => {\r\n  const content = useRoutes(routes);\r\n\r\n  return (\r\n    <HelmetProvider>\r\n      <Helmet titleTemplate=\"%s | LEAP Online\" defaultTitle=\"LEAP Online\" />\r\n      <Provider store={store}>\r\n        <ThemeProvider>\r\n          <SidebarProvider>\r\n            <LayoutProvider>\r\n              <ChartJsDefaults />\r\n              <AuthProvider>{content}</AuthProvider>\r\n            </LayoutProvider>\r\n          </SidebarProvider>\r\n        </ThemeProvider>\r\n      </Provider>\r\n    </HelmetProvider>\r\n  );\r\n};\r\n\r\nexport default App;\r\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogo(_ref, svgRef) {\n  var title = _ref.title,\n      titleId = _ref.titleId,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    x: \"0px\",\n    y: \"0px\",\n    width: \"20px\",\n    height: \"20px\",\n    viewBox: \"0 0 20 20\",\n    enableBackground: \"new 0 0 20 20\",\n    xmlSpace: \"preserve\",\n    fill: \"#2871e7\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#84aef2\",\n    d: \"M19.4,4.1l-9-4C10.1,0,9.9,0,9.6,0.1l-9,4C0.2,4.2,0,4.6,0,5s0.2,0.8,0.6,0.9l9,4C9.7,10,9.9,10,10,10s0.3,0,0.4-0.1l9-4     C19.8,5.8,20,5.4,20,5S19.8,4.2,19.4,4.1z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M10,15c-0.1,0-0.3,0-0.4-0.1l-9-4c-0.5-0.2-0.7-0.8-0.5-1.3c0.2-0.5,0.8-0.7,1.3-0.5l8.6,3.8l8.6-3.8c0.5-0.2,1.1,0,1.3,0.5     c0.2,0.5,0,1.1-0.5,1.3l-9,4C10.3,15,10.1,15,10,15z\"\n  })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M10,20c-0.1,0-0.3,0-0.4-0.1l-9-4c-0.5-0.2-0.7-0.8-0.5-1.3c0.2-0.5,0.8-0.7,1.3-0.5l8.6,3.8l8.6-3.8c0.5-0.2,1.1,0,1.3,0.5     c0.2,0.5,0,1.1-0.5,1.3l-9,4C10.3,20,10.1,20,10,20z\"\n  })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.001be075.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/avatar.42a86687.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-3.7ddfac87.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-4.93166a0c.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-5.b309bbe2.jpg\";","import { SidebarItemsType } from \"../../types/sidebar\";\r\n\r\nimport {\r\n  Bell,\r\n  BookOpen,\r\n  Calendar,\r\n  CheckSquare,\r\n  Grid,\r\n  Heart,\r\n  Layout,\r\n  List,\r\n  PieChart,\r\n  Sliders,\r\n  MapPin,\r\n  Users,\r\n  Share,\r\n} from \"react-feather\";\r\n\r\nconst pagesSection = [\r\n  {\r\n    href: \"/licence-profile\",\r\n    icon: Sliders,\r\n    title: \"Licence Profile\",\r\n    badge: \"NEW\",\r\n  },\r\n  {\r\n    href: \"/dashboard\",\r\n    icon: Sliders,\r\n    title: \"Dashboards\",\r\n    badge: \"5\",\r\n    children: [\r\n      {\r\n        href: \"/dashboard/default\",\r\n        title: \"Default\",\r\n      },\r\n      {\r\n        href: \"/dashboard/analytics\",\r\n        title: \"Analytics\",\r\n      },\r\n      {\r\n        href: \"/dashboard/saas\",\r\n        title: \"SaaS\",\r\n      },\r\n      {\r\n        href: \"/dashboard/social\",\r\n        title: \"Social\",\r\n      },\r\n      {\r\n        href: \"/dashboard/crypto\",\r\n        title: \"Crypto\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/pages\",\r\n    icon: Layout,\r\n    title: \"Pages\",\r\n    children: [\r\n      {\r\n        href: \"/pages/profile\",\r\n        title: \"Profile\",\r\n      },\r\n      {\r\n        href: \"/pages/settings\",\r\n        title: \"Settings\",\r\n      },\r\n      {\r\n        href: \"/pages/clients\",\r\n        title: \"Clients\",\r\n      },\r\n      {\r\n        href: \"/pages/projects\",\r\n        title: \"Projects\",\r\n      },\r\n      {\r\n        href: \"/pages/invoice\",\r\n        title: \"Invoice\",\r\n      },\r\n      {\r\n        href: \"/pages/pricing\",\r\n        title: \"Pricing\",\r\n      },\r\n      {\r\n        href: \"/pages/tasks\",\r\n        title: \"Tasks\",\r\n      },\r\n      {\r\n        href: \"/pages/chat\",\r\n        title: \"Chat\",\r\n        badge: \"New\",\r\n      },\r\n      {\r\n        href: \"/pages/blank\",\r\n        title: \"Blank Page\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/auth\",\r\n    icon: Users,\r\n    title: \"Auth\",\r\n    children: [\r\n      {\r\n        href: \"/auth/sign-in\",\r\n        title: \"Sign In\",\r\n      },\r\n      {\r\n        href: \"/auth/sign-up\",\r\n        title: \"Sign Up\",\r\n      },\r\n      {\r\n        href: \"/auth/reset-password\",\r\n        title: \"Reset Password\",\r\n      },\r\n      {\r\n        href: \"/auth/404\",\r\n        title: \"404 Page\",\r\n      },\r\n      {\r\n        href: \"/auth/500\",\r\n        title: \"500 Page\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/docs/introduction\",\r\n    icon: BookOpen,\r\n    title: \"Documentation\",\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst componentsSection = [\r\n  {\r\n    href: \"/ui\",\r\n    icon: Grid,\r\n    title: \"UI Elements\",\r\n    children: [\r\n      {\r\n        href: \"/ui/alerts\",\r\n        title: \"Alerts\",\r\n      },\r\n      {\r\n        href: \"/ui/buttons\",\r\n        title: \"Buttons\",\r\n      },\r\n      {\r\n        href: \"/ui/cards\",\r\n        title: \"Cards\",\r\n      },\r\n      {\r\n        href: \"/ui/carousel\",\r\n        title: \"Carousel\",\r\n      },\r\n      {\r\n        href: \"/ui/embed-video\",\r\n        title: \"Embed Video\",\r\n      },\r\n      {\r\n        href: \"/ui/general\",\r\n        title: \"General\",\r\n      },\r\n      {\r\n        href: \"/ui/grid\",\r\n        title: \"Grid\",\r\n      },\r\n      {\r\n        href: \"/ui/modals\",\r\n        title: \"Modals\",\r\n      },\r\n      {\r\n        href: \"/ui/offcanvas\",\r\n        title: \"Offcanvas\",\r\n      },\r\n      {\r\n        href: \"/ui/tabs\",\r\n        title: \"Tabs\",\r\n      },\r\n      {\r\n        href: \"/ui/typography\",\r\n        title: \"Typography\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/icons\",\r\n    icon: Heart,\r\n    title: \"Icons\",\r\n    badge: \"1500+\",\r\n    children: [\r\n      {\r\n        href: \"/icons/feather\",\r\n        title: \"Feather\",\r\n      },\r\n      {\r\n        href: \"/icons/font-awesome\",\r\n        title: \"Font Awesome\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/forms\",\r\n    icon: CheckSquare,\r\n    title: \"Forms\",\r\n    children: [\r\n      {\r\n        href: \"/forms/layouts\",\r\n        title: \"Layouts\",\r\n      },\r\n      {\r\n        href: \"/forms/basic-inputs\",\r\n        title: \"Basic Inputs\",\r\n      },\r\n      {\r\n        href: \"/forms/input-groups\",\r\n        title: \"Input Groups\",\r\n      },\r\n      {\r\n        href: \"/forms/floating-labels\",\r\n        title: \"Floating Labels\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/tables\",\r\n    icon: List,\r\n    title: \"Tables\",\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst pluginsSection = [\r\n  {\r\n    href: \"/form-plugins\",\r\n    icon: CheckSquare,\r\n    title: \"Form Plugins\",\r\n    children: [\r\n      {\r\n        href: \"/form-plugins/advanced-inputs\",\r\n        title: \"Advanced Inputs\",\r\n      },\r\n      {\r\n        href: \"/form-plugins/formik\",\r\n        title: \"Formik\",\r\n        badge: \"New\",\r\n      },\r\n      {\r\n        href: \"/form-plugins/editors\",\r\n        title: \"Editors\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/advanced-tables\",\r\n    icon: List,\r\n    title: \"Advanced Tables\",\r\n    children: [\r\n      {\r\n        href: \"/advanced-tables/pagination\",\r\n        title: \"Pagination\",\r\n      },\r\n      {\r\n        href: \"/advanced-tables/column-sorting\",\r\n        title: \"Column Sorting\",\r\n      },\r\n      {\r\n        href: \"/advanced-tables/column-filtering\",\r\n        title: \"Column Filtering\",\r\n      },\r\n      {\r\n        href: \"/advanced-tables/row-expanding\",\r\n        title: \"Row Expanding\",\r\n      },\r\n      {\r\n        href: \"/advanced-tables/row-selection\",\r\n        title: \"Row Selection\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/charts\",\r\n    icon: PieChart,\r\n    title: \"Charts\",\r\n    badge: \"New\",\r\n    children: [\r\n      {\r\n        href: \"/charts/chartjs\",\r\n        title: \"Chart.js\",\r\n      },\r\n      {\r\n        href: \"/charts/apexcharts\",\r\n        title: \"ApexCharts\",\r\n        badge: \"New\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/notifications\",\r\n    icon: Bell,\r\n    title: \"Notifications\",\r\n  },\r\n  {\r\n    href: \"/maps\",\r\n    icon: MapPin,\r\n    title: \"Maps\",\r\n    children: [\r\n      {\r\n        href: \"/maps/google-maps\",\r\n        title: \"Google Maps\",\r\n      },\r\n      {\r\n        href: \"/maps/vector-maps\",\r\n        title: \"Vector Maps\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/calendar\",\r\n    icon: Calendar,\r\n    title: \"Calendar\",\r\n  },\r\n  {\r\n    href: \"/404\",\r\n    icon: Share,\r\n    title: \"Multi Level\",\r\n    children: [\r\n      {\r\n        href: \"/404\",\r\n        title: \"Two Levels\",\r\n        children: [\r\n          {\r\n            href: \"/404\",\r\n            title: \"Item 1\",\r\n          },\r\n          {\r\n            href: \"/404\",\r\n            title: \"Item 2\",\r\n          },\r\n        ],\r\n      },\r\n      {\r\n        href: \"/404\",\r\n        title: \"Three Levels\",\r\n        children: [\r\n          {\r\n            href: \"/404\",\r\n            title: \"Item 1\",\r\n            children: [\r\n              {\r\n                href: \"/404\",\r\n                title: \"Item 1\",\r\n              },\r\n              {\r\n                href: \"/404\",\r\n                title: \"Item 2\",\r\n              },\r\n            ],\r\n          },\r\n          {\r\n            href: \"/404\",\r\n            title: \"Item 2\",\r\n          },\r\n        ],\r\n      },\r\n    ],\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst navItems = [\r\n  {\r\n    title: \"Pages\",\r\n    pages: pagesSection,\r\n  },\r\n  {\r\n    title: \"Tools & Components\",\r\n    pages: componentsSection,\r\n  },\r\n  {\r\n    title: \"Plugins & Addons\",\r\n    pages: pluginsSection,\r\n  },\r\n];\r\n\r\nexport default navItems;\r\n","import { SidebarItemsType } from \"../../types/sidebar\";\r\n\r\nimport {\r\n  ArrowRightCircle,\r\n  Code,\r\n  Globe,\r\n  Info,\r\n  List,\r\n  Mail,\r\n  Shield,\r\n  Users,\r\n} from \"react-feather\";\r\n\r\nconst gettingStartedSection = [\r\n  {\r\n    href: \"/docs/introduction\",\r\n    icon: Info,\r\n    title: \"Welcome\",\r\n  },\r\n  {\r\n    href: \"/docs/getting-started\",\r\n    icon: Code,\r\n    title: \"Getting Started\",\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst developmentSection = [\r\n  {\r\n    href: \"/docs/routing\",\r\n    icon: ArrowRightCircle,\r\n    title: \"Routing\",\r\n  },\r\n  {\r\n    href: \"/docs/auth\",\r\n    icon: Users,\r\n    title: \"Authentication\",\r\n    children: [\r\n      {\r\n        href: \"/docs/auth/auth0\",\r\n        title: \"Auth0\",\r\n      },\r\n      {\r\n        href: \"/docs/auth/cognito\",\r\n        title: \"Cognito\",\r\n      },\r\n      {\r\n        href: \"/docs/auth/firebase\",\r\n        title: \"Firebase\",\r\n      },\r\n      {\r\n        href: \"/docs/auth/jwt\",\r\n        title: \"JWT\",\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    href: \"/docs/guards\",\r\n    icon: Shield,\r\n    title: \"Guards\",\r\n  },\r\n  {\r\n    href: \"/docs/api-calls\",\r\n    icon: ArrowRightCircle,\r\n    title: \"API Calls\",\r\n  },\r\n  {\r\n    href: \"/docs/environment-variables\",\r\n    icon: ArrowRightCircle,\r\n    title: \"Environment Variables\",\r\n  },\r\n  {\r\n    href: \"/docs/redux\",\r\n    icon: ArrowRightCircle,\r\n    title: \"Redux\",\r\n  },\r\n  {\r\n    href: \"/docs/internationalization\",\r\n    icon: Globe,\r\n    title: \"Internationalization\",\r\n  },\r\n  {\r\n    href: \"/docs/eslint-and-prettier\",\r\n    icon: ArrowRightCircle,\r\n    title: \"ESLint & Prettier\",\r\n  },\r\n  {\r\n    href: \"/docs/deployment\",\r\n    icon: ArrowRightCircle,\r\n    title: \"Deployment\",\r\n  },\r\n  {\r\n    href: \"/docs/migrating-to-next-js\",\r\n    icon: ArrowRightCircle,\r\n    title: \"Migrating to Next.js\",\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst helpSection = [\r\n  {\r\n    href: \"/docs/support\",\r\n    icon: Mail,\r\n    title: \"Support\",\r\n  },\r\n  {\r\n    href: \"/docs/changelog\",\r\n    icon: List,\r\n    title: \"Changelog\",\r\n    badge: \"v2.2.0\",\r\n  },\r\n] as SidebarItemsType[];\r\n\r\nconst navItems = [\r\n  {\r\n    title: \"Getting Started\",\r\n    pages: gettingStartedSection,\r\n  },\r\n  {\r\n    title: \"Development\",\r\n    pages: developmentSection,\r\n  },\r\n  {\r\n    title: \"Help\",\r\n    pages: helpSection,\r\n  },\r\n];\r\n\r\nexport default navItems;\r\n","import * as React from \"react\";\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nimport useAuth from \"../../hooks/useAuth\";\r\n\r\ninterface AuthGuardType {\r\n  children: React.ReactNode;\r\n}\r\n\r\n// For routes that can only be accessed by authenticated users\r\nfunction AuthGuard({ children }: AuthGuardType) {\r\n  const { isAuthenticated, isInitialized } = useAuth();\r\n\r\n  if (isInitialized && !isAuthenticated) {\r\n    return <Navigate to=\"/auth/sign-in\" />;\r\n  }\r\n\r\n  return <React.Fragment>{children}</React.Fragment>;\r\n}\r\n\r\nexport default AuthGuard;\r\n","export default __webpack_public_path__ + \"static/media/customer-support.ed122f05.png\";","export default __webpack_public_path__ + \"static/media/searching.9ba2a95a.png\";","import React, { useEffect } from \"react\";\r\nimport { VectorMap } from \"react-jvectormap\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nimport usePalette from \"../../../hooks/usePalette\";\r\n\r\nfunction WorldMap() {\r\n  const palette = usePalette();\r\n\r\n  const options = {\r\n    map: \"world_mill\",\r\n    normalizeFunction: \"polynomial\",\r\n    hoverOpacity: 0.7,\r\n    hoverColor: false,\r\n    zoomOnScroll: false,\r\n    regionStyle: {\r\n      initial: {\r\n        fill: palette[\"gray-200\"],\r\n      },\r\n    },\r\n    containerStyle: {\r\n      width: \"100%\",\r\n      height: \"100%\",\r\n    },\r\n    markerStyle: {\r\n      initial: {\r\n        r: 9,\r\n        fill: palette.primary,\r\n        \"fill-opacity\": 0.9,\r\n        stroke: palette.white,\r\n        \"stroke-width\": 7,\r\n        \"stroke-opacity\": 0.4,\r\n      },\r\n      hover: {\r\n        fill: palette.primary,\r\n        \"fill-opacity\": 0.9,\r\n        stroke: palette.primary,\r\n        \"stroke-width\": 7,\r\n        \"stroke-opacity\": 0.4,\r\n      },\r\n    },\r\n    backgroundColor: \"transparent\",\r\n    markers: [\r\n      {\r\n        latLng: [31.230391, 121.473701],\r\n        name: \"Shanghai\",\r\n      },\r\n      {\r\n        latLng: [39.904202, 116.407394],\r\n        name: \"Beijing\",\r\n      },\r\n      {\r\n        latLng: [28.70406, 77.102493],\r\n        name: \"Delhi\",\r\n      },\r\n      {\r\n        latLng: [6.524379, 3.379206],\r\n        name: \"Lagos\",\r\n      },\r\n      {\r\n        latLng: [39.343357, 117.361649],\r\n        name: \"Tianjin\",\r\n      },\r\n      {\r\n        latLng: [24.860735, 67.001137],\r\n        name: \"Karachi\",\r\n      },\r\n      {\r\n        latLng: [41.00824, 28.978359],\r\n        name: \"Istanbul\",\r\n      },\r\n      {\r\n        latLng: [35.689487, 139.691711],\r\n        name: \"Tokyo\",\r\n      },\r\n      {\r\n        latLng: [23.12911, 113.264381],\r\n        name: \"Guangzhou\",\r\n      },\r\n      {\r\n        latLng: [19.075983, 72.877655],\r\n        name: \"Mumbai\",\r\n      },\r\n      {\r\n        latLng: [40.7127837, -74.0059413],\r\n        name: \"New York\",\r\n      },\r\n      {\r\n        latLng: [34.052235, -118.243683],\r\n        name: \"Los Angeles\",\r\n      },\r\n      {\r\n        latLng: [41.878113, -87.629799],\r\n        name: \"Chicago\",\r\n      },\r\n      {\r\n        latLng: [29.760427, -95.369804],\r\n        name: \"Houston\",\r\n      },\r\n      {\r\n        latLng: [33.448376, -112.074036],\r\n        name: \"Phoenix\",\r\n      },\r\n      {\r\n        latLng: [51.507351, -0.127758],\r\n        name: \"London\",\r\n      },\r\n      {\r\n        latLng: [48.856613, 2.352222],\r\n        name: \"Paris\",\r\n      },\r\n      {\r\n        latLng: [55.755825, 37.617298],\r\n        name: \"Moscow\",\r\n      },\r\n      {\r\n        latLng: [40.416775, -3.70379],\r\n        name: \"Madrid\",\r\n      },\r\n    ],\r\n  };\r\n\r\n  useEffect(() => {\r\n    setTimeout(() => {\r\n      window.dispatchEvent(new Event(\"resize\"));\r\n    }, 250);\r\n  }, [palette]);\r\n\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header>\r\n        <div className=\"card-actions float-end\">\r\n          <Dropdown align=\"end\">\r\n            <Dropdown.Toggle as=\"a\" bsPrefix=\"-\">\r\n              <MoreHorizontal />\r\n            </Dropdown.Toggle>\r\n            <Dropdown.Menu>\r\n              <Dropdown.Item>Action</Dropdown.Item>\r\n              <Dropdown.Item>Another Action</Dropdown.Item>\r\n              <Dropdown.Item>Something else here</Dropdown.Item>\r\n            </Dropdown.Menu>\r\n          </Dropdown>\r\n        </div>\r\n        <Card.Title className=\"mb-0\">Real-Time</Card.Title>\r\n      </Card.Header>\r\n      <Card.Body className=\"p-2\">\r\n        <div className=\"map-container\" style={{ height: 279 }}>\r\n          <VectorMap {...options} />\r\n        </div>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n}\r\n\r\nexport default WorldMap;\r\n","export default __webpack_public_path__ + \"static/media/social.20f68972.png\";","export default __webpack_public_path__ + \"static/media/avatar-2.6cc481d4.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-1.f6b3aeb0.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-2.695077e0.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-3.ad504e7b.jpg\";","import React from \"react\";\r\nimport { VectorMap } from \"react-jvectormap\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nimport usePalette from \"../../../hooks/usePalette\";\r\n\r\nfunction USAMap() {\r\n  const palette = usePalette();\r\n\r\n  const options = {\r\n    map: \"us_aea\",\r\n    normalizeFunction: \"polynomial\",\r\n    hoverOpacity: 0.7,\r\n    hoverColor: false,\r\n    zoomOnScroll: false,\r\n    regionStyle: {\r\n      initial: {\r\n        fill: palette[\"gray-200\"],\r\n      },\r\n    },\r\n    containerStyle: {\r\n      width: \"100%\",\r\n      height: \"100%\",\r\n    },\r\n    markerStyle: {\r\n      initial: {\r\n        r: 9,\r\n        fill: palette.primary,\r\n        \"fill-opacity\": 0.9,\r\n        stroke: palette.white,\r\n        \"stroke-width\": 7,\r\n        \"stroke-opacity\": 0.4,\r\n      },\r\n      hover: {\r\n        fill: palette.primary,\r\n        \"fill-opacity\": 0.9,\r\n        stroke: palette.primary,\r\n        \"stroke-width\": 7,\r\n        \"stroke-opacity\": 0.4,\r\n      },\r\n    },\r\n    backgroundColor: \"transparent\",\r\n    markers: [\r\n      {\r\n        latLng: [37.77, -122.41],\r\n        name: \"San Francisco: 375\",\r\n      },\r\n      {\r\n        latLng: [40.71, -74.0],\r\n        name: \"New York: 350\",\r\n      },\r\n      {\r\n        latLng: [39.09, -94.57],\r\n        name: \"Kansas City: 250\",\r\n      },\r\n      {\r\n        latLng: [36.16, -115.13],\r\n        name: \"Las Vegas: 275\",\r\n      },\r\n      {\r\n        latLng: [32.77, -96.79],\r\n        name: \"Dallas: 225\",\r\n      },\r\n    ],\r\n  };\r\n\r\n  return (\r\n    <Card className=\"flex-fill w-100\">\r\n      <Card.Header>\r\n        <div className=\"card-actions float-end\">\r\n          <Dropdown align=\"end\">\r\n            <Dropdown.Toggle as=\"a\" bsPrefix=\"-\">\r\n              <MoreHorizontal />\r\n            </Dropdown.Toggle>\r\n            <Dropdown.Menu>\r\n              <Dropdown.Item>Action</Dropdown.Item>\r\n              <Dropdown.Item>Another Action</Dropdown.Item>\r\n              <Dropdown.Item>Something else here</Dropdown.Item>\r\n            </Dropdown.Menu>\r\n          </Dropdown>\r\n        </div>\r\n        <Card.Title className=\"mb-0\">Sales by State</Card.Title>\r\n      </Card.Header>\r\n      <Card.Body className=\"p-2\">\r\n        <div className=\"map-container\" style={{ height: 294 }}>\r\n          <VectorMap {...options} />\r\n        </div>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n}\r\n\r\nexport default USAMap;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport ApexCharts from \"react-apexcharts\";\r\nimport { ApexOptions } from \"apexcharts\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nconst data = [\r\n  {\r\n    data: [\r\n      {\r\n        x: new Date(2016, 1, 1),\r\n        y: [51.98, 56.29, 51.59, 53.85],\r\n      },\r\n      {\r\n        x: new Date(2016, 2, 1),\r\n        y: [53.66, 54.99, 51.35, 52.95],\r\n      },\r\n      {\r\n        x: new Date(2016, 3, 1),\r\n        y: [52.96, 53.78, 51.54, 52.48],\r\n      },\r\n      {\r\n        x: new Date(2016, 4, 1),\r\n        y: [52.54, 52.79, 47.88, 49.24],\r\n      },\r\n      {\r\n        x: new Date(2016, 5, 1),\r\n        y: [49.1, 52.86, 47.7, 52.78],\r\n      },\r\n      {\r\n        x: new Date(2016, 6, 1),\r\n        y: [52.83, 53.48, 50.32, 52.29],\r\n      },\r\n      {\r\n        x: new Date(2016, 7, 1),\r\n        y: [52.2, 54.48, 51.64, 52.58],\r\n      },\r\n      {\r\n        x: new Date(2016, 8, 1),\r\n        y: [52.76, 57.35, 52.15, 57.03],\r\n      },\r\n      {\r\n        x: new Date(2016, 9, 1),\r\n        y: [57.04, 58.15, 48.88, 56.19],\r\n      },\r\n      {\r\n        x: new Date(2016, 10, 1),\r\n        y: [56.09, 58.85, 55.48, 58.79],\r\n      },\r\n      {\r\n        x: new Date(2016, 11, 1),\r\n        y: [58.78, 59.65, 58.23, 59.05],\r\n      },\r\n      {\r\n        x: new Date(2017, 0, 1),\r\n        y: [59.37, 61.11, 59.35, 60.34],\r\n      },\r\n      {\r\n        x: new Date(2017, 1, 1),\r\n        y: [60.4, 60.52, 56.71, 56.93],\r\n      },\r\n      {\r\n        x: new Date(2017, 2, 1),\r\n        y: [57.02, 59.71, 56.04, 56.82],\r\n      },\r\n      {\r\n        x: new Date(2017, 3, 1),\r\n        y: [56.97, 59.62, 54.77, 59.3],\r\n      },\r\n      {\r\n        x: new Date(2017, 4, 1),\r\n        y: [59.11, 62.29, 59.1, 59.85],\r\n      },\r\n      {\r\n        x: new Date(2017, 5, 1),\r\n        y: [59.97, 60.11, 55.66, 58.42],\r\n      },\r\n      {\r\n        x: new Date(2017, 6, 1),\r\n        y: [58.34, 60.93, 56.75, 57.42],\r\n      },\r\n      {\r\n        x: new Date(2017, 7, 1),\r\n        y: [57.76, 58.08, 53.18, 54.71],\r\n      },\r\n      {\r\n        x: new Date(2017, 8, 1),\r\n        y: [54.8, 61.42, 53.58, 57.35],\r\n      },\r\n      {\r\n        x: new Date(2017, 9, 1),\r\n        y: [57.56, 63.09, 57.0, 62.99],\r\n      },\r\n      {\r\n        x: new Date(2017, 10, 1),\r\n        y: [62.89, 63.42, 59.72, 61.76],\r\n      },\r\n      {\r\n        x: new Date(2017, 11, 1),\r\n        y: [61.71, 64.15, 61.29, 63.04],\r\n      },\r\n      {\r\n        x: new Date(2018, 0, 1),\r\n        y: [59.37, 61.11, 59.35, 60.34],\r\n      },\r\n      {\r\n        x: new Date(2018, 1, 1),\r\n        y: [60.4, 60.52, 56.71, 56.93],\r\n      },\r\n      {\r\n        x: new Date(2018, 2, 1),\r\n        y: [57.02, 59.71, 56.04, 56.82],\r\n      },\r\n      {\r\n        x: new Date(2018, 3, 1),\r\n        y: [56.97, 59.62, 54.77, 59.3],\r\n      },\r\n      {\r\n        x: new Date(2018, 4, 1),\r\n        y: [59.11, 62.29, 59.1, 59.85],\r\n      },\r\n      {\r\n        x: new Date(2018, 5, 1),\r\n        y: [59.97, 60.11, 55.66, 58.42],\r\n      },\r\n      {\r\n        x: new Date(2018, 6, 1),\r\n        y: [58.34, 60.93, 56.75, 57.42],\r\n      },\r\n      {\r\n        x: new Date(2018, 7, 1),\r\n        y: [57.76, 58.08, 51.18, 54.71],\r\n      },\r\n      {\r\n        x: new Date(2018, 8, 1),\r\n        y: [54.8, 61.42, 53.18, 57.35],\r\n      },\r\n      {\r\n        x: new Date(2018, 9, 1),\r\n        y: [57.56, 62.09, 57.0, 61.99],\r\n      },\r\n      {\r\n        x: new Date(2018, 10, 1),\r\n        y: [62.89, 63.42, 59.72, 61.76],\r\n      },\r\n      {\r\n        x: new Date(2018, 11, 1),\r\n        y: [61.71, 64.15, 61.29, 63.04],\r\n      },\r\n    ],\r\n  },\r\n];\r\n\r\nconst options: ApexOptions = {\r\n  stroke: {\r\n    width: 1,\r\n  },\r\n  xaxis: {\r\n    type: \"datetime\",\r\n  },\r\n  colors: [\"#0cc2aa\", \"#5fc27e\", \"#fcc100\", \"#f44455\", \"#5b7dff\"],\r\n};\r\n\r\nconst Chart = () => {\r\n  useEffect(() => {\r\n    // Trigger resize manually so chart doesn't fall off canvas\r\n    window.dispatchEvent(new Event(\"resize\"));\r\n  }, []);\r\n\r\n  return (\r\n    <Card className=\"flex-fill\">\r\n      <Card.Header>\r\n        <div className=\"card-actions float-end\">\r\n          <Dropdown>\r\n            <Dropdown.Menu>\r\n              <MoreHorizontal />\r\n            </Dropdown.Menu>\r\n            <Dropdown.Menu>\r\n              <Dropdown.Item>Action</Dropdown.Item>\r\n              <Dropdown.Item>Another Action</Dropdown.Item>\r\n              <Dropdown.Item>Something else here</Dropdown.Item>\r\n            </Dropdown.Menu>\r\n          </Dropdown>\r\n        </div>\r\n        <Card.Title className=\"mb-0\">LTC/BTC</Card.Title>\r\n      </Card.Header>\r\n      <Card.Body>\r\n        <div className=\"chart\">\r\n          <ApexCharts\r\n            options={options}\r\n            series={data}\r\n            type=\"candlestick\"\r\n            height=\"450\"\r\n          />\r\n        </div>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default Chart;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport { Alert, Button, Form } from \"react-bootstrap\";\r\n\r\nimport useAuth from \"../../hooks/useAuth\";\r\n\r\nfunction ResetPassword() {\r\n  const navigate = useNavigate();\r\n  const { resetPassword } = useAuth();\r\n\r\n  return (\r\n    <Formik\r\n      initialValues={{\r\n        email: \"\",\r\n        submit: false,\r\n      }}\r\n      validationSchema={Yup.object().shape({\r\n        email: Yup.string()\r\n          .email(\"Must be a valid email\")\r\n          .max(255)\r\n          .required(\"Email is required\"),\r\n      })}\r\n      onSubmit={async (values, { setErrors, setStatus, setSubmitting }) => {\r\n        try {\r\n          resetPassword(values.email);\r\n          navigate(\"/auth/sign-in\");\r\n        } catch (error: any) {\r\n          const message = error.message || \"Something went wrong\";\r\n\r\n          setStatus({ success: false });\r\n          setErrors({ submit: message });\r\n          setSubmitting(false);\r\n        }\r\n      }}\r\n    >\r\n      {({\r\n        errors,\r\n        handleBlur,\r\n        handleChange,\r\n        handleSubmit,\r\n        isSubmitting,\r\n        touched,\r\n        values,\r\n      }) => (\r\n        <Form onSubmit={handleSubmit}>\r\n          {errors.submit && (\r\n            <Alert className=\"my-3\" variant=\"danger\">\r\n              <div className=\"alert-message\">{errors.submit}</div>\r\n            </Alert>\r\n          )}\r\n          <Form.Group className=\"mb-3\">\r\n            <Form.Label>Email</Form.Label>\r\n            <Form.Control\r\n              size=\"lg\"\r\n              type=\"email\"\r\n              name=\"email\"\r\n              placeholder=\"Enter your email\"\r\n              value={values.email}\r\n              isInvalid={Boolean(touched.email && errors.email)}\r\n              onBlur={handleBlur}\r\n              onChange={handleChange}\r\n            />\r\n            {!!touched.email && (\r\n              <Form.Control.Feedback type=\"invalid\">\r\n                {errors.email}\r\n              </Form.Control.Feedback>\r\n            )}\r\n          </Form.Group>\r\n          <div className=\"text-center mt-3\">\r\n            <Button\r\n              type=\"submit\"\r\n              variant=\"primary\"\r\n              size=\"lg\"\r\n              disabled={isSubmitting}\r\n            >\r\n              Reset password\r\n            </Button>\r\n          </div>\r\n        </Form>\r\n      )}\r\n    </Formik>\r\n  );\r\n}\r\n\r\nexport default ResetPassword;\r\n","// ExpandableRows demo\r\nconst subRows = [\r\n  {\r\n    name: \"Shad Decker\",\r\n    position: \"Regional Director\",\r\n    office: \"Edinburgh\",\r\n    age: 51,\r\n    startDate: \"2008/11/13\",\r\n    salary: \"$183,000\",\r\n  },\r\n  {\r\n    name: \"Michael Bruce\",\r\n    position: \"Javascript Developer\",\r\n    office: \"Singapore\",\r\n    age: 29,\r\n    startDate: \"2011/06/27\",\r\n    salary: \"$183,000\",\r\n  },\r\n  {\r\n    name: \"Donna Snider\",\r\n    position: \"Customer Support\",\r\n    office: \"New York\",\r\n    age: 27,\r\n    startDate: \"2011/01/25\",\r\n    salary: \"$112,000\",\r\n  },\r\n];\r\n\r\nconst tableData = [\r\n  {\r\n    name: \"Tiger Nixon\",\r\n    position: \"System Architect\",\r\n    office: \"Edinburgh\",\r\n    age: 61,\r\n    startDate: \"2011/04/25\",\r\n    salary: \"$320,800\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Garrett Winters\",\r\n    position: \"Accountant\",\r\n    office: \"Tokyo\",\r\n    age: 63,\r\n    startDate: \"2011/07/25\",\r\n    salary: \"$170,750\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Ashton Cox\",\r\n    position: \"Junior Technical Author\",\r\n    office: \"San Francisco\",\r\n    age: 66,\r\n    startDate: \"2009/01/12\",\r\n    salary: \"$86,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Cedric Kelly\",\r\n    position: \"Senior Javascript Developer\",\r\n    office: \"Edinburgh\",\r\n    age: 22,\r\n    startDate: \"2012/03/29\",\r\n    salary: \"$433,060\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Airi Satou\",\r\n    position: \"Accountant\",\r\n    office: \"Tokyo\",\r\n    age: 33,\r\n    startDate: \"2008/11/28\",\r\n    salary: \"$162,700\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Brielle Williamson\",\r\n    position: \"Integration Specialist\",\r\n    office: \"New York\",\r\n    age: 61,\r\n    startDate: \"2012/12/02\",\r\n    salary: \"$372,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Herrod Chandler\",\r\n    position: \"Sales Assistant\",\r\n    office: \"San Francisco\",\r\n    age: 59,\r\n    startDate: \"2012/08/06\",\r\n    salary: \"$137,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Rhona Davidson\",\r\n    position: \"Integration Specialist\",\r\n    office: \"Tokyo\",\r\n    age: 55,\r\n    startDate: \"2010/10/14\",\r\n    salary: \"$327,900\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Colleen Hurst\",\r\n    position: \"Javascript Developer\",\r\n    office: \"San Francisco\",\r\n    age: 39,\r\n    startDate: \"2009/09/15\",\r\n    salary: \"$205,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Sonya Frost\",\r\n    position: \"Software Engineer\",\r\n    office: \"Edinburgh\",\r\n    age: 23,\r\n    startDate: \"2008/12/13\",\r\n    salary: \"$103,600\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jena Gaines\",\r\n    position: \"Office Manager\",\r\n    office: \"London\",\r\n    age: 30,\r\n    startDate: \"2008/12/19\",\r\n    salary: \"$90,560\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Quinn Flynn\",\r\n    position: \"Support Lead\",\r\n    office: \"Edinburgh\",\r\n    age: 22,\r\n    startDate: \"2013/03/03\",\r\n    salary: \"$342,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Charde Marshall\",\r\n    position: \"Regional Director\",\r\n    office: \"San Francisco\",\r\n    age: 36,\r\n    startDate: \"2008/10/16\",\r\n    salary: \"$470,600\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Haley Kennedy\",\r\n    position: \"Senior Marketing Designer\",\r\n    office: \"London\",\r\n    age: 43,\r\n    startDate: \"2012/12/18\",\r\n    salary: \"$313,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Tatyana Fitzpatrick\",\r\n    position: \"Regional Director\",\r\n    office: \"London\",\r\n    age: 19,\r\n    startDate: \"2010/03/17\",\r\n    salary: \"$385,750\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Michael Silva\",\r\n    position: \"Marketing Designer\",\r\n    office: \"London\",\r\n    age: 66,\r\n    startDate: \"2012/11/27\",\r\n    salary: \"$198,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Paul Byrd\",\r\n    position: \"Chief Financial Officer (CFO)\",\r\n    office: \"New York\",\r\n    age: 64,\r\n    startDate: \"2010/06/09\",\r\n    salary: \"$725,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Gloria Little\",\r\n    position: \"Systems Administrator\",\r\n    office: \"New York\",\r\n    age: 59,\r\n    startDate: \"2009/04/10\",\r\n    salary: \"$237,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Bradley Greer\",\r\n    position: \"Software Engineer\",\r\n    office: \"London\",\r\n    age: 41,\r\n    startDate: \"2012/10/13\",\r\n    salary: \"$132,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Dai Rios\",\r\n    position: \"Personnel Lead\",\r\n    office: \"Edinburgh\",\r\n    age: 35,\r\n    startDate: \"2012/09/26\",\r\n    salary: \"$217,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jenette Caldwell\",\r\n    position: \"Development Lead\",\r\n    office: \"New York\",\r\n    age: 30,\r\n    startDate: \"2011/09/03\",\r\n    salary: \"$345,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Yuri Berry\",\r\n    position: \"Chief Marketing Officer (CMO)\",\r\n    office: \"New York\",\r\n    age: 40,\r\n    startDate: \"2009/06/25\",\r\n    salary: \"$675,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Caesar Vance\",\r\n    position: \"Pre-Sales Support\",\r\n    office: \"New York\",\r\n    age: 21,\r\n    startDate: \"2011/12/12\",\r\n    salary: \"$106,450\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Doris Wilder\",\r\n    position: \"Sales Assistant\",\r\n    office: \"Sidney\",\r\n    age: 23,\r\n    startDate: \"2010/09/20\",\r\n    salary: \"$85,600\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Angelica Ramos\",\r\n    position: \"Chief Executive Officer (CEO)\",\r\n    office: \"London\",\r\n    age: 47,\r\n    startDate: \"2009/10/09\",\r\n    salary: \"$1,200,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Gavin Joyce\",\r\n    position: \"Developer\",\r\n    office: \"Edinburgh\",\r\n    age: 42,\r\n    startDate: \"2010/12/22\",\r\n    salary: \"$92,575\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jennifer Chang\",\r\n    position: \"Regional Director\",\r\n    office: \"Singapore\",\r\n    age: 28,\r\n    startDate: \"2010/11/14\",\r\n    salary: \"$357,650\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Brenden Wagner\",\r\n    position: \"Software Engineer\",\r\n    office: \"San Francisco\",\r\n    age: 28,\r\n    startDate: \"2011/06/07\",\r\n    salary: \"$206,850\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Fiona Green\",\r\n    position: \"Chief Operating Officer (COO)\",\r\n    office: \"San Francisco\",\r\n    age: 48,\r\n    startDate: \"2010/03/11\",\r\n    salary: \"$850,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Shou Itou\",\r\n    position: \"Regional Marketing\",\r\n    office: \"Tokyo\",\r\n    age: 20,\r\n    startDate: \"2011/08/14\",\r\n    salary: \"$163,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Michelle House\",\r\n    position: \"Integration Specialist\",\r\n    office: \"Sidney\",\r\n    age: 37,\r\n    startDate: \"2011/06/02\",\r\n    salary: \"$95,400\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Suki Burks\",\r\n    position: \"Developer\",\r\n    office: \"London\",\r\n    age: 53,\r\n    startDate: \"2009/10/22\",\r\n    salary: \"$114,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Prescott Bartlett\",\r\n    position: \"Technical Author\",\r\n    office: \"London\",\r\n    age: 27,\r\n    startDate: \"2011/05/07\",\r\n    salary: \"$145,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Gavin Cortez\",\r\n    position: \"Team Leader\",\r\n    office: \"San Francisco\",\r\n    age: 22,\r\n    startDate: \"2008/10/26\",\r\n    salary: \"$235,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Martena Mccray\",\r\n    position: \"Post-Sales support\",\r\n    office: \"Edinburgh\",\r\n    age: 46,\r\n    startDate: \"2011/03/09\",\r\n    salary: \"$324,050\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Unity Butler\",\r\n    position: \"Marketing Designer\",\r\n    office: \"San Francisco\",\r\n    age: 47,\r\n    startDate: \"2009/12/09\",\r\n    salary: \"$85,675\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Howard Hatfield\",\r\n    position: \"Office Manager\",\r\n    office: \"San Francisco\",\r\n    age: 51,\r\n    startDate: \"2008/12/16\",\r\n    salary: \"$164,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Hope Fuentes\",\r\n    position: \"Secretary\",\r\n    office: \"San Francisco\",\r\n    age: 41,\r\n    startDate: \"2010/02/12\",\r\n    salary: \"$109,850\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Vivian Harrell\",\r\n    position: \"Financial Controller\",\r\n    office: \"San Francisco\",\r\n    age: 62,\r\n    startDate: \"2009/02/14\",\r\n    salary: \"$452,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Timothy Mooney\",\r\n    position: \"Office Manager\",\r\n    office: \"London\",\r\n    age: 37,\r\n    startDate: \"2008/12/11\",\r\n    salary: \"$136,200\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jackson Bradshaw\",\r\n    position: \"Director\",\r\n    office: \"New York\",\r\n    age: 65,\r\n    startDate: \"2008/09/26\",\r\n    salary: \"$645,750\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Olivia Liang\",\r\n    position: \"Support Engineer\",\r\n    office: \"Singapore\",\r\n    age: 64,\r\n    startDate: \"2011/02/03\",\r\n    salary: \"$234,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Bruno Nash\",\r\n    position: \"Software Engineer\",\r\n    office: \"London\",\r\n    age: 38,\r\n    startDate: \"2011/05/03\",\r\n    salary: \"$163,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Sakura Yamamoto\",\r\n    position: \"Support Engineer\",\r\n    office: \"Tokyo\",\r\n    age: 37,\r\n    startDate: \"2009/08/19\",\r\n    salary: \"$139,575\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Thor Walton\",\r\n    position: \"Developer\",\r\n    office: \"New York\",\r\n    age: 61,\r\n    startDate: \"2013/08/11\",\r\n    salary: \"$98,540\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Finn Camacho\",\r\n    position: \"Support Engineer\",\r\n    office: \"San Francisco\",\r\n    age: 47,\r\n    startDate: \"2009/07/07\",\r\n    salary: \"$87,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Serge Baldwin\",\r\n    position: \"Data Coordinator\",\r\n    office: \"Singapore\",\r\n    age: 64,\r\n    startDate: \"2012/04/09\",\r\n    salary: \"$138,575\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Zenaida Frank\",\r\n    position: \"Software Engineer\",\r\n    office: \"New York\",\r\n    age: 63,\r\n    startDate: \"2010/01/04\",\r\n    salary: \"$125,250\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Zorita Serrano\",\r\n    position: \"Software Engineer\",\r\n    office: \"San Francisco\",\r\n    age: 56,\r\n    startDate: \"2012/06/01\",\r\n    salary: \"$115,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jennifer Acosta\",\r\n    position: \"Junior Javascript Developer\",\r\n    office: \"Edinburgh\",\r\n    age: 43,\r\n    startDate: \"2013/02/01\",\r\n    salary: \"$75,650\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Cara Stevens\",\r\n    position: \"Sales Assistant\",\r\n    office: \"New York\",\r\n    age: 46,\r\n    startDate: \"2011/12/06\",\r\n    salary: \"$145,600\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Hermione Butler\",\r\n    position: \"Regional Director\",\r\n    office: \"London\",\r\n    age: 47,\r\n    startDate: \"2011/03/21\",\r\n    salary: \"$356,250\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Lael Greer\",\r\n    position: \"Systems Administrator\",\r\n    office: \"London\",\r\n    age: 21,\r\n    startDate: \"2009/02/27\",\r\n    salary: \"$103,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Jonas Alexander\",\r\n    position: \"Developer\",\r\n    office: \"San Francisco\",\r\n    age: 30,\r\n    startDate: \"2010/07/14\",\r\n    salary: \"$86,500\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Shad Decker\",\r\n    position: \"Regional Director\",\r\n    office: \"Edinburgh\",\r\n    age: 51,\r\n    startDate: \"2008/11/13\",\r\n    salary: \"$183,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Michael Bruce\",\r\n    position: \"Javascript Developer\",\r\n    office: \"Singapore\",\r\n    age: 29,\r\n    startDate: \"2011/06/27\",\r\n    salary: \"$183,000\",\r\n    subRows: subRows,\r\n  },\r\n  {\r\n    name: \"Donna Snider\",\r\n    position: \"Customer Support\",\r\n    office: \"New York\",\r\n    age: 27,\r\n    startDate: \"2011/01/25\",\r\n    salary: \"$112,000\",\r\n    subRows: subRows,\r\n  },\r\n];\r\n\r\nconst tableColumns = [\r\n  {\r\n    Header: \"Name\",\r\n    accessor: \"name\",\r\n  },\r\n  {\r\n    Header: \"Position\",\r\n    accessor: \"position\",\r\n  },\r\n  {\r\n    Header: \"Office\",\r\n    accessor: \"office\",\r\n  },\r\n  {\r\n    Header: \"Age\",\r\n    accessor: \"age\",\r\n  },\r\n  {\r\n    Header: \"Start Date\",\r\n    accessor: \"startDate\",\r\n  },\r\n  {\r\n    Header: \"Salary\",\r\n    accessor: \"salary\",\r\n  },\r\n];\r\n\r\nexport { tableData, tableColumns };\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { Card, Col, Container, Row } from \"react-bootstrap\";\r\n\r\nimport * as Icon from \"react-feather\";\r\n\r\nconst icons = [\r\n  {\r\n    icon: <Icon.Activity />,\r\n    name: \"Activity\",\r\n  },\r\n  {\r\n    icon: <Icon.Airplay />,\r\n    name: \"Airplay\",\r\n  },\r\n  {\r\n    icon: <Icon.AlertCircle />,\r\n    name: \"AlertCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.AlertOctagon />,\r\n    name: \"AlertOctagon\",\r\n  },\r\n  {\r\n    icon: <Icon.AlertTriangle />,\r\n    name: \"AlertTriangle\",\r\n  },\r\n  {\r\n    icon: <Icon.AlignCenter />,\r\n    name: \"AlignCenter\",\r\n  },\r\n  {\r\n    icon: <Icon.AlignJustify />,\r\n    name: \"AlignJustify\",\r\n  },\r\n  {\r\n    icon: <Icon.AlignLeft />,\r\n    name: \"AlignLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.AlignRight />,\r\n    name: \"AlignRight\",\r\n  },\r\n  {\r\n    icon: <Icon.Anchor />,\r\n    name: \"Anchor\",\r\n  },\r\n  {\r\n    icon: <Icon.Aperture />,\r\n    name: \"Aperture\",\r\n  },\r\n  {\r\n    icon: <Icon.Archive />,\r\n    name: \"Archive\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowDownCircle />,\r\n    name: \"ArrowDownCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowDownLeft />,\r\n    name: \"ArrowDownLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowDownRight />,\r\n    name: \"ArrowDownRight\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowDown />,\r\n    name: \"ArrowDown\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowLeftCircle />,\r\n    name: \"ArrowLeftCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowLeft />,\r\n    name: \"ArrowLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowRightCircle />,\r\n    name: \"ArrowRightCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowRight />,\r\n    name: \"ArrowRight\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowUpCircle />,\r\n    name: \"ArrowUpCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowUpLeft />,\r\n    name: \"ArrowUpLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowUpRight />,\r\n    name: \"ArrowUpRight\",\r\n  },\r\n  {\r\n    icon: <Icon.ArrowUp />,\r\n    name: \"ArrowUp\",\r\n  },\r\n  {\r\n    icon: <Icon.AtSign />,\r\n    name: \"AtSign\",\r\n  },\r\n  {\r\n    icon: <Icon.Award />,\r\n    name: \"Award\",\r\n  },\r\n  {\r\n    icon: <Icon.BarChart2 />,\r\n    name: \"BarChart2\",\r\n  },\r\n  {\r\n    icon: <Icon.BarChart />,\r\n    name: \"BarChart\",\r\n  },\r\n  {\r\n    icon: <Icon.BatteryCharging />,\r\n    name: \"BatteryCharging\",\r\n  },\r\n  {\r\n    icon: <Icon.Battery />,\r\n    name: \"Battery\",\r\n  },\r\n  {\r\n    icon: <Icon.BellOff />,\r\n    name: \"BellOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Bell />,\r\n    name: \"Bell\",\r\n  },\r\n  {\r\n    icon: <Icon.Bluetooth />,\r\n    name: \"Bluetooth\",\r\n  },\r\n  {\r\n    icon: <Icon.Bold />,\r\n    name: \"Bold\",\r\n  },\r\n  {\r\n    icon: <Icon.BookOpen />,\r\n    name: \"BookOpen\",\r\n  },\r\n  {\r\n    icon: <Icon.Book />,\r\n    name: \"Book\",\r\n  },\r\n  {\r\n    icon: <Icon.Bookmark />,\r\n    name: \"Bookmark\",\r\n  },\r\n  {\r\n    icon: <Icon.Box />,\r\n    name: \"Box\",\r\n  },\r\n  {\r\n    icon: <Icon.Briefcase />,\r\n    name: \"Briefcase\",\r\n  },\r\n  {\r\n    icon: <Icon.Calendar />,\r\n    name: \"Calendar\",\r\n  },\r\n  {\r\n    icon: <Icon.CameraOff />,\r\n    name: \"CameraOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Camera />,\r\n    name: \"Camera\",\r\n  },\r\n  {\r\n    icon: <Icon.Cast />,\r\n    name: \"Cast\",\r\n  },\r\n  {\r\n    icon: <Icon.CheckCircle />,\r\n    name: \"CheckCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.CheckSquare />,\r\n    name: \"CheckSquare\",\r\n  },\r\n  {\r\n    icon: <Icon.Check />,\r\n    name: \"Check\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronDown />,\r\n    name: \"ChevronDown\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronLeft />,\r\n    name: \"ChevronLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronRight />,\r\n    name: \"ChevronRight\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronUp />,\r\n    name: \"ChevronUp\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronsDown />,\r\n    name: \"ChevronsDown\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronsLeft />,\r\n    name: \"ChevronsLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronsRight />,\r\n    name: \"ChevronsRight\",\r\n  },\r\n  {\r\n    icon: <Icon.ChevronsUp />,\r\n    name: \"ChevronsUp\",\r\n  },\r\n  {\r\n    icon: <Icon.Chrome />,\r\n    name: \"Chrome\",\r\n  },\r\n  {\r\n    icon: <Icon.Circle />,\r\n    name: \"Circle\",\r\n  },\r\n  {\r\n    icon: <Icon.Clipboard />,\r\n    name: \"Clipboard\",\r\n  },\r\n  {\r\n    icon: <Icon.Clock />,\r\n    name: \"Clock\",\r\n  },\r\n  {\r\n    icon: <Icon.CloudDrizzle />,\r\n    name: \"CloudDrizzle\",\r\n  },\r\n  {\r\n    icon: <Icon.CloudLightning />,\r\n    name: \"CloudLightning\",\r\n  },\r\n  {\r\n    icon: <Icon.CloudOff />,\r\n    name: \"CloudOff\",\r\n  },\r\n  {\r\n    icon: <Icon.CloudRain />,\r\n    name: \"CloudRain\",\r\n  },\r\n  {\r\n    icon: <Icon.CloudSnow />,\r\n    name: \"CloudSnow\",\r\n  },\r\n  {\r\n    icon: <Icon.Cloud />,\r\n    name: \"Cloud\",\r\n  },\r\n  {\r\n    icon: <Icon.Code />,\r\n    name: \"Code\",\r\n  },\r\n  {\r\n    icon: <Icon.Codepen />,\r\n    name: \"Codepen\",\r\n  },\r\n  {\r\n    icon: <Icon.Coffee />,\r\n    name: \"Coffee\",\r\n  },\r\n  {\r\n    icon: <Icon.Command />,\r\n    name: \"Command\",\r\n  },\r\n  {\r\n    icon: <Icon.Compass />,\r\n    name: \"Compass\",\r\n  },\r\n  {\r\n    icon: <Icon.Copy />,\r\n    name: \"Copy\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerDownLeft />,\r\n    name: \"CornerDownLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerDownRight />,\r\n    name: \"CornerDownRight\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerLeftDown />,\r\n    name: \"CornerLeftDown\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerLeftUp />,\r\n    name: \"CornerLeftUp\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerRightDown />,\r\n    name: \"CornerRightDown\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerRightUp />,\r\n    name: \"CornerRightUp\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerUpLeft />,\r\n    name: \"CornerUpLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.CornerUpRight />,\r\n    name: \"CornerUpRight\",\r\n  },\r\n  {\r\n    icon: <Icon.Cpu />,\r\n    name: \"Cpu\",\r\n  },\r\n  {\r\n    icon: <Icon.CreditCard />,\r\n    name: \"CreditCard\",\r\n  },\r\n  {\r\n    icon: <Icon.Crop />,\r\n    name: \"Crop\",\r\n  },\r\n  {\r\n    icon: <Icon.Crosshair />,\r\n    name: \"Crosshair\",\r\n  },\r\n  {\r\n    icon: <Icon.Database />,\r\n    name: \"Database\",\r\n  },\r\n  {\r\n    icon: <Icon.Delete />,\r\n    name: \"Delete\",\r\n  },\r\n  {\r\n    icon: <Icon.Disc />,\r\n    name: \"Disc\",\r\n  },\r\n  {\r\n    icon: <Icon.DollarSign />,\r\n    name: \"DollarSign\",\r\n  },\r\n  {\r\n    icon: <Icon.DownloadCloud />,\r\n    name: \"DownloadCloud\",\r\n  },\r\n  {\r\n    icon: <Icon.Download />,\r\n    name: \"Download\",\r\n  },\r\n  {\r\n    icon: <Icon.Droplet />,\r\n    name: \"Droplet\",\r\n  },\r\n  {\r\n    icon: <Icon.Edit2 />,\r\n    name: \"Edit2\",\r\n  },\r\n  {\r\n    icon: <Icon.Edit3 />,\r\n    name: \"Edit3\",\r\n  },\r\n  {\r\n    icon: <Icon.Edit />,\r\n    name: \"Edit\",\r\n  },\r\n  {\r\n    icon: <Icon.ExternalLink />,\r\n    name: \"ExternalLink\",\r\n  },\r\n  {\r\n    icon: <Icon.EyeOff />,\r\n    name: \"EyeOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Eye />,\r\n    name: \"Eye\",\r\n  },\r\n  {\r\n    icon: <Icon.Facebook />,\r\n    name: \"Facebook\",\r\n  },\r\n  {\r\n    icon: <Icon.FastForward />,\r\n    name: \"FastForward\",\r\n  },\r\n  {\r\n    icon: <Icon.Feather />,\r\n    name: \"Feather\",\r\n  },\r\n  {\r\n    icon: <Icon.FileMinus />,\r\n    name: \"FileMinus\",\r\n  },\r\n  {\r\n    icon: <Icon.FilePlus />,\r\n    name: \"FilePlus\",\r\n  },\r\n  {\r\n    icon: <Icon.FileText />,\r\n    name: \"FileText\",\r\n  },\r\n  {\r\n    icon: <Icon.File />,\r\n    name: \"File\",\r\n  },\r\n  {\r\n    icon: <Icon.Film />,\r\n    name: \"Film\",\r\n  },\r\n  {\r\n    icon: <Icon.Filter />,\r\n    name: \"Filter\",\r\n  },\r\n  {\r\n    icon: <Icon.Flag />,\r\n    name: \"Flag\",\r\n  },\r\n  {\r\n    icon: <Icon.FolderMinus />,\r\n    name: \"FolderMinus\",\r\n  },\r\n  {\r\n    icon: <Icon.FolderPlus />,\r\n    name: \"FolderPlus\",\r\n  },\r\n  {\r\n    icon: <Icon.Folder />,\r\n    name: \"Folder\",\r\n  },\r\n  {\r\n    icon: <Icon.Frown />,\r\n    name: \"Frown\",\r\n  },\r\n  {\r\n    icon: <Icon.Gift />,\r\n    name: \"Gift\",\r\n  },\r\n  {\r\n    icon: <Icon.GitBranch />,\r\n    name: \"GitBranch\",\r\n  },\r\n  {\r\n    icon: <Icon.GitCommit />,\r\n    name: \"GitCommit\",\r\n  },\r\n  {\r\n    icon: <Icon.GitMerge />,\r\n    name: \"GitMerge\",\r\n  },\r\n  {\r\n    icon: <Icon.GitPullRequest />,\r\n    name: \"GitPullRequest\",\r\n  },\r\n  {\r\n    icon: <Icon.GitHub />,\r\n    name: \"GitHub\",\r\n  },\r\n  {\r\n    icon: <Icon.Gitlab />,\r\n    name: \"Gitlab\",\r\n  },\r\n  {\r\n    icon: <Icon.Globe />,\r\n    name: \"Globe\",\r\n  },\r\n  {\r\n    icon: <Icon.Grid />,\r\n    name: \"Grid\",\r\n  },\r\n  {\r\n    icon: <Icon.HardDrive />,\r\n    name: \"HardDrive\",\r\n  },\r\n  {\r\n    icon: <Icon.Hash />,\r\n    name: \"Hash\",\r\n  },\r\n  {\r\n    icon: <Icon.Headphones />,\r\n    name: \"Headphones\",\r\n  },\r\n  {\r\n    icon: <Icon.Heart />,\r\n    name: \"Heart\",\r\n  },\r\n  {\r\n    icon: <Icon.HelpCircle />,\r\n    name: \"HelpCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.Home />,\r\n    name: \"Home\",\r\n  },\r\n  {\r\n    icon: <Icon.Image />,\r\n    name: \"Image\",\r\n  },\r\n  {\r\n    icon: <Icon.Inbox />,\r\n    name: \"Inbox\",\r\n  },\r\n  {\r\n    icon: <Icon.Info />,\r\n    name: \"Info\",\r\n  },\r\n  {\r\n    icon: <Icon.Instagram />,\r\n    name: \"Instagram\",\r\n  },\r\n  {\r\n    icon: <Icon.Italic />,\r\n    name: \"Italic\",\r\n  },\r\n  {\r\n    icon: <Icon.Key />,\r\n    name: \"Key\",\r\n  },\r\n  {\r\n    icon: <Icon.Layers />,\r\n    name: \"Layers\",\r\n  },\r\n  {\r\n    icon: <Icon.Layout />,\r\n    name: \"Layout\",\r\n  },\r\n  {\r\n    icon: <Icon.LifeBuoy />,\r\n    name: \"LifeBuoy\",\r\n  },\r\n  {\r\n    icon: <Icon.Link2 />,\r\n    name: \"Link2\",\r\n  },\r\n  {\r\n    icon: <Icon.Link />,\r\n    name: \"Link\",\r\n  },\r\n  {\r\n    icon: <Icon.Linkedin />,\r\n    name: \"Linkedin\",\r\n  },\r\n  {\r\n    icon: <Icon.List />,\r\n    name: \"List\",\r\n  },\r\n  {\r\n    icon: <Icon.Loader />,\r\n    name: \"Loader\",\r\n  },\r\n  {\r\n    icon: <Icon.Lock />,\r\n    name: \"Lock\",\r\n  },\r\n  {\r\n    icon: <Icon.LogIn />,\r\n    name: \"LogIn\",\r\n  },\r\n  {\r\n    icon: <Icon.LogOut />,\r\n    name: \"LogOut\",\r\n  },\r\n  {\r\n    icon: <Icon.Mail />,\r\n    name: \"Mail\",\r\n  },\r\n  {\r\n    icon: <Icon.MapPin />,\r\n    name: \"MapPin\",\r\n  },\r\n  {\r\n    icon: <Icon.Map />,\r\n    name: \"Map\",\r\n  },\r\n  {\r\n    icon: <Icon.Maximize2 />,\r\n    name: \"Maximize2\",\r\n  },\r\n  {\r\n    icon: <Icon.Maximize />,\r\n    name: \"Maximize\",\r\n  },\r\n  {\r\n    icon: <Icon.Meh />,\r\n    name: \"Meh\",\r\n  },\r\n  {\r\n    icon: <Icon.Menu />,\r\n    name: \"Menu\",\r\n  },\r\n  {\r\n    icon: <Icon.MessageCircle />,\r\n    name: \"MessageCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.MessageSquare />,\r\n    name: \"MessageSquare\",\r\n  },\r\n  {\r\n    icon: <Icon.MicOff />,\r\n    name: \"MicOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Mic />,\r\n    name: \"Mic\",\r\n  },\r\n  {\r\n    icon: <Icon.Minimize2 />,\r\n    name: \"Minimize2\",\r\n  },\r\n  {\r\n    icon: <Icon.Minimize />,\r\n    name: \"Minimize\",\r\n  },\r\n  {\r\n    icon: <Icon.MinusCircle />,\r\n    name: \"MinusCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.MinusSquare />,\r\n    name: \"MinusSquare\",\r\n  },\r\n  {\r\n    icon: <Icon.Minus />,\r\n    name: \"Minus\",\r\n  },\r\n  {\r\n    icon: <Icon.Monitor />,\r\n    name: \"Monitor\",\r\n  },\r\n  {\r\n    icon: <Icon.Moon />,\r\n    name: \"Moon\",\r\n  },\r\n  {\r\n    icon: <Icon.MoreHorizontal />,\r\n    name: \"MoreHorizontal\",\r\n  },\r\n  {\r\n    icon: <Icon.MoreVertical />,\r\n    name: \"MoreVertical\",\r\n  },\r\n  {\r\n    icon: <Icon.Move />,\r\n    name: \"Move\",\r\n  },\r\n  {\r\n    icon: <Icon.Music />,\r\n    name: \"Music\",\r\n  },\r\n  {\r\n    icon: <Icon.Navigation2 />,\r\n    name: \"Navigation2\",\r\n  },\r\n  {\r\n    icon: <Icon.Navigation />,\r\n    name: \"Navigation\",\r\n  },\r\n  {\r\n    icon: <Icon.Octagon />,\r\n    name: \"Octagon\",\r\n  },\r\n  {\r\n    icon: <Icon.Package />,\r\n    name: \"Package\",\r\n  },\r\n  {\r\n    icon: <Icon.Paperclip />,\r\n    name: \"Paperclip\",\r\n  },\r\n  {\r\n    icon: <Icon.PauseCircle />,\r\n    name: \"PauseCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.Pause />,\r\n    name: \"Pause\",\r\n  },\r\n  {\r\n    icon: <Icon.Percent />,\r\n    name: \"Percent\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneCall />,\r\n    name: \"PhoneCall\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneForwarded />,\r\n    name: \"PhoneForwarded\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneIncoming />,\r\n    name: \"PhoneIncoming\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneMissed />,\r\n    name: \"PhoneMissed\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneOff />,\r\n    name: \"PhoneOff\",\r\n  },\r\n  {\r\n    icon: <Icon.PhoneOutgoing />,\r\n    name: \"PhoneOutgoing\",\r\n  },\r\n  {\r\n    icon: <Icon.Phone />,\r\n    name: \"Phone\",\r\n  },\r\n  {\r\n    icon: <Icon.PieChart />,\r\n    name: \"PieChart\",\r\n  },\r\n  {\r\n    icon: <Icon.PlayCircle />,\r\n    name: \"PlayCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.Play />,\r\n    name: \"Play\",\r\n  },\r\n  {\r\n    icon: <Icon.PlusCircle />,\r\n    name: \"PlusCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.PlusSquare />,\r\n    name: \"PlusSquare\",\r\n  },\r\n  {\r\n    icon: <Icon.Plus />,\r\n    name: \"Plus\",\r\n  },\r\n  {\r\n    icon: <Icon.Pocket />,\r\n    name: \"Pocket\",\r\n  },\r\n  {\r\n    icon: <Icon.Power />,\r\n    name: \"Power\",\r\n  },\r\n  {\r\n    icon: <Icon.Printer />,\r\n    name: \"Printer\",\r\n  },\r\n  {\r\n    icon: <Icon.Radio />,\r\n    name: \"Radio\",\r\n  },\r\n  {\r\n    icon: <Icon.RefreshCcw />,\r\n    name: \"RefreshCcw\",\r\n  },\r\n  {\r\n    icon: <Icon.RefreshCw />,\r\n    name: \"RefreshCw\",\r\n  },\r\n  {\r\n    icon: <Icon.Repeat />,\r\n    name: \"Repeat\",\r\n  },\r\n  {\r\n    icon: <Icon.Rewind />,\r\n    name: \"Rewind\",\r\n  },\r\n  {\r\n    icon: <Icon.RotateCcw />,\r\n    name: \"RotateCcw\",\r\n  },\r\n  {\r\n    icon: <Icon.RotateCw />,\r\n    name: \"RotateCw\",\r\n  },\r\n  {\r\n    icon: <Icon.Rss />,\r\n    name: \"Rss\",\r\n  },\r\n  {\r\n    icon: <Icon.Save />,\r\n    name: \"Save\",\r\n  },\r\n  {\r\n    icon: <Icon.Scissors />,\r\n    name: \"Scissors\",\r\n  },\r\n  {\r\n    icon: <Icon.Search />,\r\n    name: \"Search\",\r\n  },\r\n  {\r\n    icon: <Icon.Send />,\r\n    name: \"Send\",\r\n  },\r\n  {\r\n    icon: <Icon.Server />,\r\n    name: \"Server\",\r\n  },\r\n  {\r\n    icon: <Icon.Settings />,\r\n    name: \"Settings\",\r\n  },\r\n  {\r\n    icon: <Icon.Share2 />,\r\n    name: \"Share2\",\r\n  },\r\n  {\r\n    icon: <Icon.Share />,\r\n    name: \"Share\",\r\n  },\r\n  {\r\n    icon: <Icon.ShieldOff />,\r\n    name: \"ShieldOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Shield />,\r\n    name: \"Shield\",\r\n  },\r\n  {\r\n    icon: <Icon.ShoppingBag />,\r\n    name: \"ShoppingBag\",\r\n  },\r\n  {\r\n    icon: <Icon.ShoppingCart />,\r\n    name: \"ShoppingCart\",\r\n  },\r\n  {\r\n    icon: <Icon.Shuffle />,\r\n    name: \"Shuffle\",\r\n  },\r\n  {\r\n    icon: <Icon.Sidebar />,\r\n    name: \"Sidebar\",\r\n  },\r\n  {\r\n    icon: <Icon.SkipBack />,\r\n    name: \"SkipBack\",\r\n  },\r\n  {\r\n    icon: <Icon.SkipForward />,\r\n    name: \"SkipForward\",\r\n  },\r\n  {\r\n    icon: <Icon.Slack />,\r\n    name: \"Slack\",\r\n  },\r\n  {\r\n    icon: <Icon.Slash />,\r\n    name: \"Slash\",\r\n  },\r\n  {\r\n    icon: <Icon.Sliders />,\r\n    name: \"Sliders\",\r\n  },\r\n  {\r\n    icon: <Icon.Smartphone />,\r\n    name: \"Smartphone\",\r\n  },\r\n  {\r\n    icon: <Icon.Smile />,\r\n    name: \"Smile\",\r\n  },\r\n  {\r\n    icon: <Icon.Speaker />,\r\n    name: \"Speaker\",\r\n  },\r\n  {\r\n    icon: <Icon.Square />,\r\n    name: \"Square\",\r\n  },\r\n  {\r\n    icon: <Icon.Star />,\r\n    name: \"Star\",\r\n  },\r\n  {\r\n    icon: <Icon.StopCircle />,\r\n    name: \"StopCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.Sun />,\r\n    name: \"Sun\",\r\n  },\r\n  {\r\n    icon: <Icon.Sunrise />,\r\n    name: \"Sunrise\",\r\n  },\r\n  {\r\n    icon: <Icon.Sunset />,\r\n    name: \"Sunset\",\r\n  },\r\n  {\r\n    icon: <Icon.Tablet />,\r\n    name: \"Tablet\",\r\n  },\r\n  {\r\n    icon: <Icon.Tag />,\r\n    name: \"Tag\",\r\n  },\r\n  {\r\n    icon: <Icon.Target />,\r\n    name: \"Target\",\r\n  },\r\n  {\r\n    icon: <Icon.Terminal />,\r\n    name: \"Terminal\",\r\n  },\r\n  {\r\n    icon: <Icon.Thermometer />,\r\n    name: \"Thermometer\",\r\n  },\r\n  {\r\n    icon: <Icon.ThumbsDown />,\r\n    name: \"ThumbsDown\",\r\n  },\r\n  {\r\n    icon: <Icon.ThumbsUp />,\r\n    name: \"ThumbsUp\",\r\n  },\r\n  {\r\n    icon: <Icon.ToggleLeft />,\r\n    name: \"ToggleLeft\",\r\n  },\r\n  {\r\n    icon: <Icon.ToggleRight />,\r\n    name: \"ToggleRight\",\r\n  },\r\n  {\r\n    icon: <Icon.Trash2 />,\r\n    name: \"Trash2\",\r\n  },\r\n  {\r\n    icon: <Icon.Trash />,\r\n    name: \"Trash\",\r\n  },\r\n  {\r\n    icon: <Icon.Trello />,\r\n    name: \"Trello\",\r\n  },\r\n  {\r\n    icon: <Icon.TrendingDown />,\r\n    name: \"TrendingDown\",\r\n  },\r\n  {\r\n    icon: <Icon.TrendingUp />,\r\n    name: \"TrendingUp\",\r\n  },\r\n  {\r\n    icon: <Icon.Triangle />,\r\n    name: \"Triangle\",\r\n  },\r\n  {\r\n    icon: <Icon.Truck />,\r\n    name: \"Truck\",\r\n  },\r\n  {\r\n    icon: <Icon.Tv />,\r\n    name: \"Tv\",\r\n  },\r\n  {\r\n    icon: <Icon.Twitter />,\r\n    name: \"Twitter\",\r\n  },\r\n  {\r\n    icon: <Icon.Type />,\r\n    name: \"Type\",\r\n  },\r\n  {\r\n    icon: <Icon.Umbrella />,\r\n    name: \"Umbrella\",\r\n  },\r\n  {\r\n    icon: <Icon.Underline />,\r\n    name: \"Underline\",\r\n  },\r\n  {\r\n    icon: <Icon.Unlock />,\r\n    name: \"Unlock\",\r\n  },\r\n  {\r\n    icon: <Icon.UploadCloud />,\r\n    name: \"UploadCloud\",\r\n  },\r\n  {\r\n    icon: <Icon.Upload />,\r\n    name: \"Upload\",\r\n  },\r\n  {\r\n    icon: <Icon.UserCheck />,\r\n    name: \"UserCheck\",\r\n  },\r\n  {\r\n    icon: <Icon.UserMinus />,\r\n    name: \"UserMinus\",\r\n  },\r\n  {\r\n    icon: <Icon.UserPlus />,\r\n    name: \"UserPlus\",\r\n  },\r\n  {\r\n    icon: <Icon.UserX />,\r\n    name: \"UserX\",\r\n  },\r\n  {\r\n    icon: <Icon.User />,\r\n    name: \"User\",\r\n  },\r\n  {\r\n    icon: <Icon.Users />,\r\n    name: \"Users\",\r\n  },\r\n  {\r\n    icon: <Icon.VideoOff />,\r\n    name: \"VideoOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Video />,\r\n    name: \"Video\",\r\n  },\r\n  {\r\n    icon: <Icon.Voicemail />,\r\n    name: \"Voicemail\",\r\n  },\r\n  {\r\n    icon: <Icon.Volume1 />,\r\n    name: \"Volume1\",\r\n  },\r\n  {\r\n    icon: <Icon.Volume2 />,\r\n    name: \"Volume2\",\r\n  },\r\n  {\r\n    icon: <Icon.VolumeX />,\r\n    name: \"VolumeX\",\r\n  },\r\n  {\r\n    icon: <Icon.Volume />,\r\n    name: \"Volume\",\r\n  },\r\n  {\r\n    icon: <Icon.Watch />,\r\n    name: \"Watch\",\r\n  },\r\n  {\r\n    icon: <Icon.WifiOff />,\r\n    name: \"WifiOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Wifi />,\r\n    name: \"Wifi\",\r\n  },\r\n  {\r\n    icon: <Icon.Wind />,\r\n    name: \"Wind\",\r\n  },\r\n  {\r\n    icon: <Icon.XCircle />,\r\n    name: \"XCircle\",\r\n  },\r\n  {\r\n    icon: <Icon.XSquare />,\r\n    name: \"XSquare\",\r\n  },\r\n  {\r\n    icon: <Icon.X />,\r\n    name: \"X\",\r\n  },\r\n  {\r\n    icon: <Icon.Youtube />,\r\n    name: \"Youtube\",\r\n  },\r\n  {\r\n    icon: <Icon.ZapOff />,\r\n    name: \"ZapOff\",\r\n  },\r\n  {\r\n    icon: <Icon.Zap />,\r\n    name: \"Zap\",\r\n  },\r\n  {\r\n    icon: <Icon.ZoomIn />,\r\n    name: \"ZoomIn\",\r\n  },\r\n  {\r\n    icon: <Icon.ZoomOut />,\r\n    name: \"ZoomOut\",\r\n  },\r\n];\r\n\r\ninterface FeatherIconType {\r\n  icon: {\r\n    icon: JSX.Element;\r\n    name: string;\r\n  };\r\n}\r\n\r\nconst FeatherIcon = ({ icon }: FeatherIconType) => (\r\n  <Col md=\"6\" lg=\"3\">\r\n    <div className=\"mb-2\">\r\n      {React.cloneElement(icon.icon, {\r\n        className: \"feather align-middle me-2\",\r\n      })}\r\n      <span className=\"align-middle\">{icon.name}</span>\r\n    </div>\r\n  </Col>\r\n);\r\n\r\nconst FeatherIcons = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Feather\" />\r\n    <Container fluid className=\"p-0\">\r\n      <h1 className=\"h3 mb-3\">Feather</h1>\r\n\r\n      <Card>\r\n        <Card.Header>\r\n          <Card.Title>Feather Icons</Card.Title>\r\n          <h6 className=\"card-subtitle text-muted\">\r\n            Simply beautiful open source icons\r\n          </h6>\r\n        </Card.Header>\r\n        <Card.Body>\r\n          <Row>\r\n            {icons.map((icon, iconKey) => (\r\n              <FeatherIcon icon={icon} key={iconKey} />\r\n            ))}\r\n          </Row>\r\n        </Card.Body>\r\n      </Card>\r\n    </Container>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default FeatherIcons;\r\n","import {\r\n  faAd,\r\n  faAddressBook,\r\n  faAddressCard,\r\n  faAdjust,\r\n  faAirFreshener,\r\n  faAlignCenter,\r\n  faAlignJustify,\r\n  faAlignLeft,\r\n  faAlignRight,\r\n  faAllergies,\r\n  faAmbulance,\r\n  faAmericanSignLanguageInterpreting,\r\n  faAnchor,\r\n  faAngleDoubleDown,\r\n  faAngleDoubleLeft,\r\n  faAngleDoubleRight,\r\n  faAngleDoubleUp,\r\n  faAngleDown,\r\n  faAngleLeft,\r\n  faAngleRight,\r\n  faAngleUp,\r\n  faAngry,\r\n  faAnkh,\r\n  faAppleAlt,\r\n  faArchive,\r\n  faArchway,\r\n  faArrowAltCircleDown,\r\n  faArrowAltCircleLeft,\r\n  faArrowAltCircleRight,\r\n  faArrowAltCircleUp,\r\n  faArrowCircleDown,\r\n  faArrowCircleLeft,\r\n  faArrowCircleRight,\r\n  faArrowCircleUp,\r\n  faArrowDown,\r\n  faArrowLeft,\r\n  faArrowRight,\r\n  faArrowUp,\r\n  faArrowsAlt,\r\n  faArrowsAltH,\r\n  faArrowsAltV,\r\n  faAssistiveListeningSystems,\r\n  faAsterisk,\r\n  faAt,\r\n  faAtlas,\r\n  faAtom,\r\n  faAudioDescription,\r\n  faAward,\r\n  faBaby,\r\n  faBabyCarriage,\r\n  faBackspace,\r\n  faBackward,\r\n  faBacon,\r\n  faBalanceScale,\r\n  faBan,\r\n  faBandAid,\r\n  faBarcode,\r\n  faBars,\r\n  faBaseballBall,\r\n  faBasketballBall,\r\n  faBath,\r\n  faBatteryEmpty,\r\n  faBatteryFull,\r\n  faBatteryHalf,\r\n  faBatteryQuarter,\r\n  faBatteryThreeQuarters,\r\n  faBed,\r\n  faBeer,\r\n  faBell,\r\n  faBellSlash,\r\n  faBezierCurve,\r\n  faBible,\r\n  faBicycle,\r\n  faBinoculars,\r\n  faBiohazard,\r\n  faBirthdayCake,\r\n  faBlender,\r\n  faBlenderPhone,\r\n  faBlind,\r\n  faBlog,\r\n  faBold,\r\n  faBolt,\r\n  faBomb,\r\n  faBone,\r\n  faBong,\r\n  faBook,\r\n  faBookDead,\r\n  faBookMedical,\r\n  faBookOpen,\r\n  faBookReader,\r\n  faBookmark,\r\n  faBowlingBall,\r\n  faBox,\r\n  faBoxOpen,\r\n  faBoxes,\r\n  faBraille,\r\n  faBrain,\r\n  faBreadSlice,\r\n  faBriefcase,\r\n  faBriefcaseMedical,\r\n  faBroadcastTower,\r\n  faBroom,\r\n  faBrush,\r\n  faBug,\r\n  faBuilding,\r\n  faBullhorn,\r\n  faBullseye,\r\n  faBurn,\r\n  faBus,\r\n  faBusAlt,\r\n  faBusinessTime,\r\n  faCalculator,\r\n  faCalendar,\r\n  faCalendarAlt,\r\n  faCalendarCheck,\r\n  faCalendarDay,\r\n  faCalendarMinus,\r\n  faCalendarPlus,\r\n  faCalendarTimes,\r\n  faCalendarWeek,\r\n  faCamera,\r\n  faCameraRetro,\r\n  faCampground,\r\n  faCandyCane,\r\n  faCannabis,\r\n  faCapsules,\r\n  faCar,\r\n  faCarAlt,\r\n  faCarBattery,\r\n  faCarCrash,\r\n  faCarSide,\r\n  faCaretDown,\r\n  faCaretLeft,\r\n  faCaretRight,\r\n  faCaretSquareDown,\r\n  faCaretSquareLeft,\r\n  faCaretSquareRight,\r\n  faCaretSquareUp,\r\n  faCaretUp,\r\n  faCarrot,\r\n  faCartArrowDown,\r\n  faCartPlus,\r\n  faCashRegister,\r\n  faCat,\r\n  faCertificate,\r\n  faChair,\r\n  faChalkboard,\r\n  faChalkboardTeacher,\r\n  faChargingStation,\r\n  faChartArea,\r\n  faChartBar,\r\n  faChartLine,\r\n  faChartPie,\r\n  faCheck,\r\n  faCheckCircle,\r\n  faCheckDouble,\r\n  faCheckSquare,\r\n  faCheese,\r\n  faChess,\r\n  faChessBishop,\r\n  faChessBoard,\r\n  faChessKing,\r\n  faChessKnight,\r\n  faChessPawn,\r\n  faChessQueen,\r\n  faChessRook,\r\n  faChevronCircleDown,\r\n  faChevronCircleLeft,\r\n  faChevronCircleRight,\r\n  faChevronCircleUp,\r\n  faChevronDown,\r\n  faChevronLeft,\r\n  faChevronRight,\r\n  faChevronUp,\r\n  faChild,\r\n  faChurch,\r\n  faCircle,\r\n  faCircleNotch,\r\n  faCity,\r\n  faClinicMedical,\r\n  faClipboard,\r\n  faClipboardCheck,\r\n  faClipboardList,\r\n  faClock,\r\n  faClone,\r\n  faClosedCaptioning,\r\n  faCloud,\r\n  faCloudDownloadAlt,\r\n  faCloudMeatball,\r\n  faCloudMoon,\r\n  faCloudMoonRain,\r\n  faCloudRain,\r\n  faCloudShowersHeavy,\r\n  faCloudSun,\r\n  faCloudSunRain,\r\n  faCloudUploadAlt,\r\n  faCocktail,\r\n  faCode,\r\n  faCodeBranch,\r\n  faCoffee,\r\n  faCog,\r\n  faCogs,\r\n  faCoins,\r\n  faColumns,\r\n  faComment,\r\n  faCommentAlt,\r\n  faCommentDollar,\r\n  faCommentDots,\r\n  faCommentMedical,\r\n  faCommentSlash,\r\n  faComments,\r\n  faCommentsDollar,\r\n  faCompactDisc,\r\n  faCompass,\r\n  faCompress,\r\n  faCompressArrowsAlt,\r\n  faConciergeBell,\r\n  faCookie,\r\n  faCookieBite,\r\n  faCopy,\r\n  faCopyright,\r\n  faCouch,\r\n  faCreditCard,\r\n  faCrop,\r\n  faCropAlt,\r\n  faCross,\r\n  faCrosshairs,\r\n  faCrow,\r\n  faCrown,\r\n  faCrutch,\r\n  faCube,\r\n  faCubes,\r\n  faCut,\r\n  faDatabase,\r\n  faDeaf,\r\n  faDemocrat,\r\n  faDesktop,\r\n  faDharmachakra,\r\n  faDiagnoses,\r\n  faDice,\r\n  faDiceD20,\r\n  faDiceD6,\r\n  faDiceFive,\r\n  faDiceFour,\r\n  faDiceOne,\r\n  faDiceSix,\r\n  faDiceThree,\r\n  faDiceTwo,\r\n  faDigitalTachograph,\r\n  faDirections,\r\n  faDivide,\r\n  faDizzy,\r\n  faDna,\r\n  faDog,\r\n  faDollarSign,\r\n  faDolly,\r\n  faDollyFlatbed,\r\n  faDonate,\r\n  faDoorClosed,\r\n  faDoorOpen,\r\n  faDotCircle,\r\n  faDove,\r\n  faDownload,\r\n  faDraftingCompass,\r\n  faDragon,\r\n  faDrawPolygon,\r\n  faDrum,\r\n  faDrumSteelpan,\r\n  faDrumstickBite,\r\n  faDumbbell,\r\n  faDumpster,\r\n  faDumpsterFire,\r\n  faDungeon,\r\n  faEdit,\r\n  faEgg,\r\n  faEject,\r\n  faEllipsisH,\r\n  faEllipsisV,\r\n  faEnvelope,\r\n  faEnvelopeOpen,\r\n  faEnvelopeOpenText,\r\n  faEnvelopeSquare,\r\n  faEquals,\r\n  faEraser,\r\n  faEthernet,\r\n  faEuroSign,\r\n  faExchangeAlt,\r\n  faExclamation,\r\n  faExclamationCircle,\r\n  faExclamationTriangle,\r\n  faExpand,\r\n  faExpandArrowsAlt,\r\n  faExternalLinkAlt,\r\n  faExternalLinkSquareAlt,\r\n  faEye,\r\n  faEyeDropper,\r\n  faEyeSlash,\r\n  faFastBackward,\r\n  faFastForward,\r\n  faFax,\r\n  faFeather,\r\n  faFeatherAlt,\r\n  faFemale,\r\n  faFighterJet,\r\n  faFile,\r\n  faFileAlt,\r\n  faFileArchive,\r\n  faFileAudio,\r\n  faFileCode,\r\n  faFileContract,\r\n  faFileCsv,\r\n  faFileDownload,\r\n  faFileExcel,\r\n  faFileExport,\r\n  faFileImage,\r\n  faFileImport,\r\n  faFileInvoice,\r\n  faFileInvoiceDollar,\r\n  faFileMedical,\r\n  faFileMedicalAlt,\r\n  faFilePdf,\r\n  faFilePowerpoint,\r\n  faFilePrescription,\r\n  faFileSignature,\r\n  faFileUpload,\r\n  faFileVideo,\r\n  faFileWord,\r\n  faFill,\r\n  faFillDrip,\r\n  faFilm,\r\n  faFilter,\r\n  faFingerprint,\r\n  faFire,\r\n  faFireAlt,\r\n  faFireExtinguisher,\r\n  faFirstAid,\r\n  faFish,\r\n  faFistRaised,\r\n  faFlag,\r\n  faFlagCheckered,\r\n  faFlagUsa,\r\n  faFlask,\r\n  faFlushed,\r\n  faFolder,\r\n  faFolderMinus,\r\n  faFolderOpen,\r\n  faFolderPlus,\r\n  faFont,\r\n  faFontAwesomeLogoFull,\r\n  faFootballBall,\r\n  faForward,\r\n  faFrog,\r\n  faFrown,\r\n  faFrownOpen,\r\n  faFunnelDollar,\r\n  faFutbol,\r\n  faGamepad,\r\n  faGasPump,\r\n  faGavel,\r\n  faGem,\r\n  faGenderless,\r\n  faGhost,\r\n  faGift,\r\n  faGifts,\r\n  faGlassCheers,\r\n  faGlassMartini,\r\n  faGlassMartiniAlt,\r\n  faGlassWhiskey,\r\n  faGlasses,\r\n  faGlobe,\r\n  faGlobeAfrica,\r\n  faGlobeAmericas,\r\n  faGlobeAsia,\r\n  faGlobeEurope,\r\n  faGolfBall,\r\n  faGopuram,\r\n  faGraduationCap,\r\n  faGreaterThan,\r\n  faGreaterThanEqual,\r\n  faGrimace,\r\n  faGrin,\r\n  faGrinAlt,\r\n  faGrinBeam,\r\n  faGrinBeamSweat,\r\n  faGrinHearts,\r\n  faGrinSquint,\r\n  faGrinSquintTears,\r\n  faGrinStars,\r\n  faGrinTears,\r\n  faGrinTongue,\r\n  faGrinTongueSquint,\r\n  faGrinTongueWink,\r\n  faGrinWink,\r\n  faGripHorizontal,\r\n  faGripLines,\r\n  faGripLinesVertical,\r\n  faGripVertical,\r\n  faGuitar,\r\n  faHSquare,\r\n  faHamburger,\r\n  faHammer,\r\n  faHamsa,\r\n  faHandHolding,\r\n  faHandHoldingHeart,\r\n  faHandHoldingUsd,\r\n  faHandLizard,\r\n  faHandMiddleFinger,\r\n  faHandPaper,\r\n  faHandPeace,\r\n  faHandPointDown,\r\n  faHandPointLeft,\r\n  faHandPointRight,\r\n  faHandPointUp,\r\n  faHandPointer,\r\n  faHandRock,\r\n  faHandScissors,\r\n  faHandSpock,\r\n  faHands,\r\n  faHandsHelping,\r\n  faHandshake,\r\n  faHanukiah,\r\n  faHardHat,\r\n  faHashtag,\r\n  faHatWizard,\r\n  faHdd,\r\n  faHeading,\r\n  faHeadphones,\r\n  faHeadphonesAlt,\r\n  faHeadset,\r\n  faHeart,\r\n  faHeartBroken,\r\n  faHeartbeat,\r\n  faHelicopter,\r\n  faHighlighter,\r\n  faHiking,\r\n  faHippo,\r\n  faHistory,\r\n  faHockeyPuck,\r\n  faHollyBerry,\r\n  faHome,\r\n  faHorse,\r\n  faHorseHead,\r\n  faHospital,\r\n  faHospitalAlt,\r\n  faHospitalSymbol,\r\n  faHotTub,\r\n  faHotdog,\r\n  faHotel,\r\n  faHourglass,\r\n  faHourglassEnd,\r\n  faHourglassHalf,\r\n  faHourglassStart,\r\n  faHouseDamage,\r\n  faHryvnia,\r\n  faICursor,\r\n  faIceCream,\r\n  faIcicles,\r\n  faIdBadge,\r\n  faIdCard,\r\n  faIdCardAlt,\r\n  faIgloo,\r\n  faImage,\r\n  faImages,\r\n  faInbox,\r\n  faIndent,\r\n  faIndustry,\r\n  faInfinity,\r\n  faInfo,\r\n  faInfoCircle,\r\n  faItalic,\r\n  faJedi,\r\n  faJoint,\r\n  faJournalWhills,\r\n  faKaaba,\r\n  faKey,\r\n  faKeyboard,\r\n  faKhanda,\r\n  faKiss,\r\n  faKissBeam,\r\n  faKissWinkHeart,\r\n  faKiwiBird,\r\n  faLandmark,\r\n  faLanguage,\r\n  faLaptop,\r\n  faLaptopCode,\r\n  faLaptopMedical,\r\n  faLaugh,\r\n  faLaughBeam,\r\n  faLaughSquint,\r\n  faLaughWink,\r\n  faLayerGroup,\r\n  faLeaf,\r\n  faLemon,\r\n  faLessThan,\r\n  faLessThanEqual,\r\n  faLevelDownAlt,\r\n  faLevelUpAlt,\r\n  faLifeRing,\r\n  faLightbulb,\r\n  faLink,\r\n  faLiraSign,\r\n  faList,\r\n  faListAlt,\r\n  faListOl,\r\n  faListUl,\r\n  faLocationArrow,\r\n  faLock,\r\n  faLockOpen,\r\n  faLongArrowAltDown,\r\n  faLongArrowAltLeft,\r\n  faLongArrowAltRight,\r\n  faLongArrowAltUp,\r\n  faLowVision,\r\n  faLuggageCart,\r\n  faMagic,\r\n  faMagnet,\r\n  faMailBulk,\r\n  faMale,\r\n  faMap,\r\n  faMapMarked,\r\n  faMapMarkedAlt,\r\n  faMapMarker,\r\n  faMapMarkerAlt,\r\n  faMapPin,\r\n  faMapSigns,\r\n  faMarker,\r\n  faMars,\r\n  faMarsDouble,\r\n  faMarsStroke,\r\n  faMarsStrokeH,\r\n  faMarsStrokeV,\r\n  faMask,\r\n  faMedal,\r\n  faMedkit,\r\n  faMeh,\r\n  faMehBlank,\r\n  faMehRollingEyes,\r\n  faMemory,\r\n  faMenorah,\r\n  faMercury,\r\n  faMeteor,\r\n  faMicrochip,\r\n  faMicrophone,\r\n  faMicrophoneAlt,\r\n  faMicrophoneAltSlash,\r\n  faMicrophoneSlash,\r\n  faMicroscope,\r\n  faMinus,\r\n  faMinusCircle,\r\n  faMinusSquare,\r\n  faMitten,\r\n  faMobile,\r\n  faMobileAlt,\r\n  faMoneyBill,\r\n  faMoneyBillAlt,\r\n  faMoneyBillWave,\r\n  faMoneyBillWaveAlt,\r\n  faMoneyCheck,\r\n  faMoneyCheckAlt,\r\n  faMonument,\r\n  faMoon,\r\n  faMortarPestle,\r\n  faMosque,\r\n  faMotorcycle,\r\n  faMountain,\r\n  faMousePointer,\r\n  faMugHot,\r\n  faMusic,\r\n  faNetworkWired,\r\n  faNeuter,\r\n  faNewspaper,\r\n  faNotEqual,\r\n  faNotesMedical,\r\n  faObjectGroup,\r\n  faObjectUngroup,\r\n  faOilCan,\r\n  faOm,\r\n  faOtter,\r\n  faOutdent,\r\n  faPager,\r\n  faPaintBrush,\r\n  faPaintRoller,\r\n  faPalette,\r\n  faPallet,\r\n  faPaperPlane,\r\n  faPaperclip,\r\n  faParachuteBox,\r\n  faParagraph,\r\n  faParking,\r\n  faPassport,\r\n  faPastafarianism,\r\n  faPaste,\r\n  faPause,\r\n  faPauseCircle,\r\n  faPaw,\r\n  faPeace,\r\n  faPen,\r\n  faPenAlt,\r\n  faPenFancy,\r\n  faPenNib,\r\n  faPenSquare,\r\n  faPencilAlt,\r\n  faPencilRuler,\r\n  faPeopleCarry,\r\n  faPepperHot,\r\n  faPercent,\r\n  faPercentage,\r\n  faPersonBooth,\r\n  faPhone,\r\n  faPhoneSlash,\r\n  faPhoneSquare,\r\n  faPhoneVolume,\r\n  faPiggyBank,\r\n  faPills,\r\n  faPizzaSlice,\r\n  faPlaceOfWorship,\r\n  faPlane,\r\n  faPlaneArrival,\r\n  faPlaneDeparture,\r\n  faPlay,\r\n  faPlayCircle,\r\n  faPlug,\r\n  faPlus,\r\n  faPlusCircle,\r\n  faPlusSquare,\r\n  faPodcast,\r\n  faPoll,\r\n  faPollH,\r\n  faPoo,\r\n  faPooStorm,\r\n  faPoop,\r\n  faPortrait,\r\n  faPoundSign,\r\n  faPowerOff,\r\n  faPray,\r\n  faPrayingHands,\r\n  faPrescription,\r\n  faPrescriptionBottle,\r\n  faPrescriptionBottleAlt,\r\n  faPrint,\r\n  faProcedures,\r\n  faProjectDiagram,\r\n  faPuzzlePiece,\r\n  faQrcode,\r\n  faQuestion,\r\n  faQuestionCircle,\r\n  faQuidditch,\r\n  faQuoteLeft,\r\n  faQuoteRight,\r\n  faQuran,\r\n  faRadiation,\r\n  faRadiationAlt,\r\n  faRainbow,\r\n  faRandom,\r\n  faReceipt,\r\n  faRecycle,\r\n  faRedo,\r\n  faRedoAlt,\r\n  faRegistered,\r\n  faReply,\r\n  faReplyAll,\r\n  faRepublican,\r\n  faRestroom,\r\n  faRetweet,\r\n  faRibbon,\r\n  faRing,\r\n  faRoad,\r\n  faRobot,\r\n  faRocket,\r\n  faRoute,\r\n  faRss,\r\n  faRssSquare,\r\n  faRubleSign,\r\n  faRuler,\r\n  faRulerCombined,\r\n  faRulerHorizontal,\r\n  faRulerVertical,\r\n  faRunning,\r\n  faRupeeSign,\r\n  faSadCry,\r\n  faSadTear,\r\n  faSatellite,\r\n  faSatelliteDish,\r\n  faSave,\r\n  faSchool,\r\n  faScrewdriver,\r\n  faScroll,\r\n  faSdCard,\r\n  faSearch,\r\n  faSearchDollar,\r\n  faSearchLocation,\r\n  faSearchMinus,\r\n  faSearchPlus,\r\n  faSeedling,\r\n  faServer,\r\n  faShapes,\r\n  faShare,\r\n  faShareAlt,\r\n  faShareAltSquare,\r\n  faShareSquare,\r\n  faShekelSign,\r\n  faShieldAlt,\r\n  faShip,\r\n  faShippingFast,\r\n  faShoePrints,\r\n  faShoppingBag,\r\n  faShoppingBasket,\r\n  faShoppingCart,\r\n  faShower,\r\n  faShuttleVan,\r\n  faSign,\r\n  faSignInAlt,\r\n  faSignLanguage,\r\n  faSignOutAlt,\r\n  faSignal,\r\n  faSignature,\r\n  faSimCard,\r\n  faSitemap,\r\n  faSkating,\r\n  faSkiing,\r\n  faSkiingNordic,\r\n  faSkull,\r\n  faSkullCrossbones,\r\n  faSlash,\r\n  faSleigh,\r\n  faSlidersH,\r\n  faSmile,\r\n  faSmileBeam,\r\n  faSmileWink,\r\n  faSmog,\r\n  faSmoking,\r\n  faSmokingBan,\r\n  faSms,\r\n  faSnowboarding,\r\n  faSnowflake,\r\n  faSnowman,\r\n  faSnowplow,\r\n  faSocks,\r\n  faSolarPanel,\r\n  faSort,\r\n  faSortAlphaDown,\r\n  faSortAlphaUp,\r\n  faSortAmountDown,\r\n  faSortAmountUp,\r\n  faSortDown,\r\n  faSortNumericDown,\r\n  faSortNumericUp,\r\n  faSortUp,\r\n  faSpa,\r\n  faSpaceShuttle,\r\n  faSpider,\r\n  faSpinner,\r\n  faSplotch,\r\n  faSprayCan,\r\n  faSquare,\r\n  faSquareFull,\r\n  faSquareRootAlt,\r\n  faStamp,\r\n  faStar,\r\n  faStarAndCrescent,\r\n  faStarHalf,\r\n  faStarHalfAlt,\r\n  faStarOfDavid,\r\n  faStarOfLife,\r\n  faStepBackward,\r\n  faStepForward,\r\n  faStethoscope,\r\n  faStickyNote,\r\n  faStop,\r\n  faStopCircle,\r\n  faStopwatch,\r\n  faStore,\r\n  faStoreAlt,\r\n  faStream,\r\n  faStreetView,\r\n  faStrikethrough,\r\n  faStroopwafel,\r\n  faSubscript,\r\n  faSubway,\r\n  faSuitcase,\r\n  faSuitcaseRolling,\r\n  faSun,\r\n  faSuperscript,\r\n  faSurprise,\r\n  faSwatchbook,\r\n  faSwimmer,\r\n  faSwimmingPool,\r\n  faSynagogue,\r\n  faSync,\r\n  faSyncAlt,\r\n  faSyringe,\r\n  faTable,\r\n  faTableTennis,\r\n  faTablet,\r\n  faTabletAlt,\r\n  faTablets,\r\n  faTachometerAlt,\r\n  faTag,\r\n  faTags,\r\n  faTape,\r\n  faTasks,\r\n  faTaxi,\r\n  faTeeth,\r\n  faTeethOpen,\r\n  faTemperatureHigh,\r\n  faTemperatureLow,\r\n  faTenge,\r\n  faTerminal,\r\n  faTextHeight,\r\n  faTextWidth,\r\n  faTh,\r\n  faThLarge,\r\n  faThList,\r\n  faTheaterMasks,\r\n  faThermometer,\r\n  faThermometerEmpty,\r\n  faThermometerFull,\r\n  faThermometerHalf,\r\n  faThermometerQuarter,\r\n  faThermometerThreeQuarters,\r\n  faThumbsDown,\r\n  faThumbsUp,\r\n  faThumbtack,\r\n  faTicketAlt,\r\n  faTimes,\r\n  faTimesCircle,\r\n  faTint,\r\n  faTintSlash,\r\n  faTired,\r\n  faToggleOff,\r\n  faToggleOn,\r\n  faToilet,\r\n  faToiletPaper,\r\n  faToolbox,\r\n  faTools,\r\n  faTooth,\r\n  faTorah,\r\n  faToriiGate,\r\n  faTractor,\r\n  faTrademark,\r\n  faTrafficLight,\r\n  faTrain,\r\n  faTram,\r\n  faTransgender,\r\n  faTransgenderAlt,\r\n  faTrash,\r\n  faTrashAlt,\r\n  faTrashRestore,\r\n  faTrashRestoreAlt,\r\n  faTree,\r\n  faTrophy,\r\n  faTruck,\r\n  faTruckLoading,\r\n  faTruckMonster,\r\n  faTruckMoving,\r\n  faTruckPickup,\r\n  faTshirt,\r\n  faTty,\r\n  faTv,\r\n  faUmbrella,\r\n  faUmbrellaBeach,\r\n  faUnderline,\r\n  faUndo,\r\n  faUndoAlt,\r\n  faUniversalAccess,\r\n  faUniversity,\r\n  faUnlink,\r\n  faUnlock,\r\n  faUnlockAlt,\r\n  faUpload,\r\n  faUser,\r\n  faUserAlt,\r\n  faUserAltSlash,\r\n  faUserAstronaut,\r\n  faUserCheck,\r\n  faUserCircle,\r\n  faUserClock,\r\n  faUserCog,\r\n  faUserEdit,\r\n  faUserFriends,\r\n  faUserGraduate,\r\n  faUserInjured,\r\n  faUserLock,\r\n  faUserMd,\r\n  faUserMinus,\r\n  faUserNinja,\r\n  faUserNurse,\r\n  faUserPlus,\r\n  faUserSecret,\r\n  faUserShield,\r\n  faUserSlash,\r\n  faUserTag,\r\n  faUserTie,\r\n  faUserTimes,\r\n  faUsers,\r\n  faUsersCog,\r\n  faUtensilSpoon,\r\n  faUtensils,\r\n  faVectorSquare,\r\n  faVenus,\r\n  faVenusDouble,\r\n  faVenusMars,\r\n  faVial,\r\n  faVials,\r\n  faVideo,\r\n  faVideoSlash,\r\n  faVihara,\r\n  faVolleyballBall,\r\n  faVolumeDown,\r\n  faVolumeMute,\r\n  faVolumeOff,\r\n  faVolumeUp,\r\n  faVoteYea,\r\n  faVrCardboard,\r\n  faWalking,\r\n  faWallet,\r\n  faWarehouse,\r\n  faWater,\r\n  faWeight,\r\n  faWeightHanging,\r\n  faWheelchair,\r\n  faWifi,\r\n  faWind,\r\n  faWindowClose,\r\n  faWindowMaximize,\r\n  faWindowMinimize,\r\n  faWindowRestore,\r\n  faWineBottle,\r\n  faWineGlass,\r\n  faWineGlassAlt,\r\n  faWonSign,\r\n  faWrench,\r\n  faXRay,\r\n  faYenSign,\r\n  faYinYang,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst icons = [\r\n  {\r\n    icon: faAd,\r\n    name: \"faAd\",\r\n  },\r\n  {\r\n    icon: faAddressBook,\r\n    name: \"faAddressBook\",\r\n  },\r\n  {\r\n    icon: faAddressCard,\r\n    name: \"faAddressCard\",\r\n  },\r\n  {\r\n    icon: faAdjust,\r\n    name: \"faAdjust\",\r\n  },\r\n  {\r\n    icon: faAirFreshener,\r\n    name: \"faAirFreshener\",\r\n  },\r\n  {\r\n    icon: faAlignCenter,\r\n    name: \"faAlignCenter\",\r\n  },\r\n  {\r\n    icon: faAlignJustify,\r\n    name: \"faAlignJustify\",\r\n  },\r\n  {\r\n    icon: faAlignLeft,\r\n    name: \"faAlignLeft\",\r\n  },\r\n  {\r\n    icon: faAlignRight,\r\n    name: \"faAlignRight\",\r\n  },\r\n  {\r\n    icon: faAllergies,\r\n    name: \"faAllergies\",\r\n  },\r\n  {\r\n    icon: faAmbulance,\r\n    name: \"faAmbulance\",\r\n  },\r\n  {\r\n    icon: faAmericanSignLanguageInterpreting,\r\n    name: \"faAmericanSignLanguageInterpreting\",\r\n  },\r\n  {\r\n    icon: faAnchor,\r\n    name: \"faAnchor\",\r\n  },\r\n  {\r\n    icon: faAngleDoubleDown,\r\n    name: \"faAngleDoubleDown\",\r\n  },\r\n  {\r\n    icon: faAngleDoubleLeft,\r\n    name: \"faAngleDoubleLeft\",\r\n  },\r\n  {\r\n    icon: faAngleDoubleRight,\r\n    name: \"faAngleDoubleRight\",\r\n  },\r\n  {\r\n    icon: faAngleDoubleUp,\r\n    name: \"faAngleDoubleUp\",\r\n  },\r\n  {\r\n    icon: faAngleDown,\r\n    name: \"faAngleDown\",\r\n  },\r\n  {\r\n    icon: faAngleLeft,\r\n    name: \"faAngleLeft\",\r\n  },\r\n  {\r\n    icon: faAngleRight,\r\n    name: \"faAngleRight\",\r\n  },\r\n  {\r\n    icon: faAngleUp,\r\n    name: \"faAngleUp\",\r\n  },\r\n  {\r\n    icon: faAngry,\r\n    name: \"faAngry\",\r\n  },\r\n  {\r\n    icon: faAnkh,\r\n    name: \"faAnkh\",\r\n  },\r\n  {\r\n    icon: faAppleAlt,\r\n    name: \"faAppleAlt\",\r\n  },\r\n  {\r\n    icon: faArchive,\r\n    name: \"faArchive\",\r\n  },\r\n  {\r\n    icon: faArchway,\r\n    name: \"faArchway\",\r\n  },\r\n  {\r\n    icon: faArrowAltCircleDown,\r\n    name: \"faArrowAltCircleDown\",\r\n  },\r\n  {\r\n    icon: faArrowAltCircleLeft,\r\n    name: \"faArrowAltCircleLeft\",\r\n  },\r\n  {\r\n    icon: faArrowAltCircleRight,\r\n    name: \"faArrowAltCircleRight\",\r\n  },\r\n  {\r\n    icon: faArrowAltCircleUp,\r\n    name: \"faArrowAltCircleUp\",\r\n  },\r\n  {\r\n    icon: faArrowCircleDown,\r\n    name: \"faArrowCircleDown\",\r\n  },\r\n  {\r\n    icon: faArrowCircleLeft,\r\n    name: \"faArrowCircleLeft\",\r\n  },\r\n  {\r\n    icon: faArrowCircleRight,\r\n    name: \"faArrowCircleRight\",\r\n  },\r\n  {\r\n    icon: faArrowCircleUp,\r\n    name: \"faArrowCircleUp\",\r\n  },\r\n  {\r\n    icon: faArrowDown,\r\n    name: \"faArrowDown\",\r\n  },\r\n  {\r\n    icon: faArrowLeft,\r\n    name: \"faArrowLeft\",\r\n  },\r\n  {\r\n    icon: faArrowRight,\r\n    name: \"faArrowRight\",\r\n  },\r\n  {\r\n    icon: faArrowUp,\r\n    name: \"faArrowUp\",\r\n  },\r\n  {\r\n    icon: faArrowsAlt,\r\n    name: \"faArrowsAlt\",\r\n  },\r\n  {\r\n    icon: faArrowsAltH,\r\n    name: \"faArrowsAltH\",\r\n  },\r\n  {\r\n    icon: faArrowsAltV,\r\n    name: \"faArrowsAltV\",\r\n  },\r\n  {\r\n    icon: faAssistiveListeningSystems,\r\n    name: \"faAssistiveListeningSystems\",\r\n  },\r\n  {\r\n    icon: faAsterisk,\r\n    name: \"faAsterisk\",\r\n  },\r\n  {\r\n    icon: faAt,\r\n    name: \"faAt\",\r\n  },\r\n  {\r\n    icon: faAtlas,\r\n    name: \"faAtlas\",\r\n  },\r\n  {\r\n    icon: faAtom,\r\n    name: \"faAtom\",\r\n  },\r\n  {\r\n    icon: faAudioDescription,\r\n    name: \"faAudioDescription\",\r\n  },\r\n  {\r\n    icon: faAward,\r\n    name: \"faAward\",\r\n  },\r\n  {\r\n    icon: faBaby,\r\n    name: \"faBaby\",\r\n  },\r\n  {\r\n    icon: faBabyCarriage,\r\n    name: \"faBabyCarriage\",\r\n  },\r\n  {\r\n    icon: faBackspace,\r\n    name: \"faBackspace\",\r\n  },\r\n  {\r\n    icon: faBackward,\r\n    name: \"faBackward\",\r\n  },\r\n  {\r\n    icon: faBacon,\r\n    name: \"faBacon\",\r\n  },\r\n  {\r\n    icon: faBalanceScale,\r\n    name: \"faBalanceScale\",\r\n  },\r\n  {\r\n    icon: faBan,\r\n    name: \"faBan\",\r\n  },\r\n  {\r\n    icon: faBandAid,\r\n    name: \"faBandAid\",\r\n  },\r\n  {\r\n    icon: faBarcode,\r\n    name: \"faBarcode\",\r\n  },\r\n  {\r\n    icon: faBars,\r\n    name: \"faBars\",\r\n  },\r\n  {\r\n    icon: faBaseballBall,\r\n    name: \"faBaseballBall\",\r\n  },\r\n  {\r\n    icon: faBasketballBall,\r\n    name: \"faBasketballBall\",\r\n  },\r\n  {\r\n    icon: faBath,\r\n    name: \"faBath\",\r\n  },\r\n  {\r\n    icon: faBatteryEmpty,\r\n    name: \"faBatteryEmpty\",\r\n  },\r\n  {\r\n    icon: faBatteryFull,\r\n    name: \"faBatteryFull\",\r\n  },\r\n  {\r\n    icon: faBatteryHalf,\r\n    name: \"faBatteryHalf\",\r\n  },\r\n  {\r\n    icon: faBatteryQuarter,\r\n    name: \"faBatteryQuarter\",\r\n  },\r\n  {\r\n    icon: faBatteryThreeQuarters,\r\n    name: \"faBatteryThreeQuarters\",\r\n  },\r\n  {\r\n    icon: faBed,\r\n    name: \"faBed\",\r\n  },\r\n  {\r\n    icon: faBeer,\r\n    name: \"faBeer\",\r\n  },\r\n  {\r\n    icon: faBell,\r\n    name: \"faBell\",\r\n  },\r\n  {\r\n    icon: faBellSlash,\r\n    name: \"faBellSlash\",\r\n  },\r\n  {\r\n    icon: faBezierCurve,\r\n    name: \"faBezierCurve\",\r\n  },\r\n  {\r\n    icon: faBible,\r\n    name: \"faBible\",\r\n  },\r\n  {\r\n    icon: faBicycle,\r\n    name: \"faBicycle\",\r\n  },\r\n  {\r\n    icon: faBinoculars,\r\n    name: \"faBinoculars\",\r\n  },\r\n  {\r\n    icon: faBiohazard,\r\n    name: \"faBiohazard\",\r\n  },\r\n  {\r\n    icon: faBirthdayCake,\r\n    name: \"faBirthdayCake\",\r\n  },\r\n  {\r\n    icon: faBlender,\r\n    name: \"faBlender\",\r\n  },\r\n  {\r\n    icon: faBlenderPhone,\r\n    name: \"faBlenderPhone\",\r\n  },\r\n  {\r\n    icon: faBlind,\r\n    name: \"faBlind\",\r\n  },\r\n  {\r\n    icon: faBlog,\r\n    name: \"faBlog\",\r\n  },\r\n  {\r\n    icon: faBold,\r\n    name: \"faBold\",\r\n  },\r\n  {\r\n    icon: faBolt,\r\n    name: \"faBolt\",\r\n  },\r\n  {\r\n    icon: faBomb,\r\n    name: \"faBomb\",\r\n  },\r\n  {\r\n    icon: faBone,\r\n    name: \"faBone\",\r\n  },\r\n  {\r\n    icon: faBong,\r\n    name: \"faBong\",\r\n  },\r\n  {\r\n    icon: faBook,\r\n    name: \"faBook\",\r\n  },\r\n  {\r\n    icon: faBookDead,\r\n    name: \"faBookDead\",\r\n  },\r\n  {\r\n    icon: faBookMedical,\r\n    name: \"faBookMedical\",\r\n  },\r\n  {\r\n    icon: faBookOpen,\r\n    name: \"faBookOpen\",\r\n  },\r\n  {\r\n    icon: faBookReader,\r\n    name: \"faBookReader\",\r\n  },\r\n  {\r\n    icon: faBookmark,\r\n    name: \"faBookmark\",\r\n  },\r\n  {\r\n    icon: faBowlingBall,\r\n    name: \"faBowlingBall\",\r\n  },\r\n  {\r\n    icon: faBox,\r\n    name: \"faBox\",\r\n  },\r\n  {\r\n    icon: faBoxOpen,\r\n    name: \"faBoxOpen\",\r\n  },\r\n  {\r\n    icon: faBoxes,\r\n    name: \"faBoxes\",\r\n  },\r\n  {\r\n    icon: faBraille,\r\n    name: \"faBraille\",\r\n  },\r\n  {\r\n    icon: faBrain,\r\n    name: \"faBrain\",\r\n  },\r\n  {\r\n    icon: faBreadSlice,\r\n    name: \"faBreadSlice\",\r\n  },\r\n  {\r\n    icon: faBriefcase,\r\n    name: \"faBriefcase\",\r\n  },\r\n  {\r\n    icon: faBriefcaseMedical,\r\n    name: \"faBriefcaseMedical\",\r\n  },\r\n  {\r\n    icon: faBroadcastTower,\r\n    name: \"faBroadcastTower\",\r\n  },\r\n  {\r\n    icon: faBroom,\r\n    name: \"faBroom\",\r\n  },\r\n  {\r\n    icon: faBrush,\r\n    name: \"faBrush\",\r\n  },\r\n  {\r\n    icon: faBug,\r\n    name: \"faBug\",\r\n  },\r\n  {\r\n    icon: faBuilding,\r\n    name: \"faBuilding\",\r\n  },\r\n  {\r\n    icon: faBullhorn,\r\n    name: \"faBullhorn\",\r\n  },\r\n  {\r\n    icon: faBullseye,\r\n    name: \"faBullseye\",\r\n  },\r\n  {\r\n    icon: faBurn,\r\n    name: \"faBurn\",\r\n  },\r\n  {\r\n    icon: faBus,\r\n    name: \"faBus\",\r\n  },\r\n  {\r\n    icon: faBusAlt,\r\n    name: \"faBusAlt\",\r\n  },\r\n  {\r\n    icon: faBusinessTime,\r\n    name: \"faBusinessTime\",\r\n  },\r\n  {\r\n    icon: faCalculator,\r\n    name: \"faCalculator\",\r\n  },\r\n  {\r\n    icon: faCalendar,\r\n    name: \"faCalendar\",\r\n  },\r\n  {\r\n    icon: faCalendarAlt,\r\n    name: \"faCalendarAlt\",\r\n  },\r\n  {\r\n    icon: faCalendarCheck,\r\n    name: \"faCalendarCheck\",\r\n  },\r\n  {\r\n    icon: faCalendarDay,\r\n    name: \"faCalendarDay\",\r\n  },\r\n  {\r\n    icon: faCalendarMinus,\r\n    name: \"faCalendarMinus\",\r\n  },\r\n  {\r\n    icon: faCalendarPlus,\r\n    name: \"faCalendarPlus\",\r\n  },\r\n  {\r\n    icon: faCalendarTimes,\r\n    name: \"faCalendarTimes\",\r\n  },\r\n  {\r\n    icon: faCalendarWeek,\r\n    name: \"faCalendarWeek\",\r\n  },\r\n  {\r\n    icon: faCamera,\r\n    name: \"faCamera\",\r\n  },\r\n  {\r\n    icon: faCameraRetro,\r\n    name: \"faCameraRetro\",\r\n  },\r\n  {\r\n    icon: faCampground,\r\n    name: \"faCampground\",\r\n  },\r\n  {\r\n    icon: faCandyCane,\r\n    name: \"faCandyCane\",\r\n  },\r\n  {\r\n    icon: faCannabis,\r\n    name: \"faCannabis\",\r\n  },\r\n  {\r\n    icon: faCapsules,\r\n    name: \"faCapsules\",\r\n  },\r\n  {\r\n    icon: faCar,\r\n    name: \"faCar\",\r\n  },\r\n  {\r\n    icon: faCarAlt,\r\n    name: \"faCarAlt\",\r\n  },\r\n  {\r\n    icon: faCarBattery,\r\n    name: \"faCarBattery\",\r\n  },\r\n  {\r\n    icon: faCarCrash,\r\n    name: \"faCarCrash\",\r\n  },\r\n  {\r\n    icon: faCarSide,\r\n    name: \"faCarSide\",\r\n  },\r\n  {\r\n    icon: faCaretDown,\r\n    name: \"faCaretDown\",\r\n  },\r\n  {\r\n    icon: faCaretLeft,\r\n    name: \"faCaretLeft\",\r\n  },\r\n  {\r\n    icon: faCaretRight,\r\n    name: \"faCaretRight\",\r\n  },\r\n  {\r\n    icon: faCaretSquareDown,\r\n    name: \"faCaretSquareDown\",\r\n  },\r\n  {\r\n    icon: faCaretSquareLeft,\r\n    name: \"faCaretSquareLeft\",\r\n  },\r\n  {\r\n    icon: faCaretSquareRight,\r\n    name: \"faCaretSquareRight\",\r\n  },\r\n  {\r\n    icon: faCaretSquareUp,\r\n    name: \"faCaretSquareUp\",\r\n  },\r\n  {\r\n    icon: faCaretUp,\r\n    name: \"faCaretUp\",\r\n  },\r\n  {\r\n    icon: faCarrot,\r\n    name: \"faCarrot\",\r\n  },\r\n  {\r\n    icon: faCartArrowDown,\r\n    name: \"faCartArrowDown\",\r\n  },\r\n  {\r\n    icon: faCartPlus,\r\n    name: \"faCartPlus\",\r\n  },\r\n  {\r\n    icon: faCashRegister,\r\n    name: \"faCashRegister\",\r\n  },\r\n  {\r\n    icon: faCat,\r\n    name: \"faCat\",\r\n  },\r\n  {\r\n    icon: faCertificate,\r\n    name: \"faCertificate\",\r\n  },\r\n  {\r\n    icon: faChair,\r\n    name: \"faChair\",\r\n  },\r\n  {\r\n    icon: faChalkboard,\r\n    name: \"faChalkboard\",\r\n  },\r\n  {\r\n    icon: faChalkboardTeacher,\r\n    name: \"faChalkboardTeacher\",\r\n  },\r\n  {\r\n    icon: faChargingStation,\r\n    name: \"faChargingStation\",\r\n  },\r\n  {\r\n    icon: faChartArea,\r\n    name: \"faChartArea\",\r\n  },\r\n  {\r\n    icon: faChartBar,\r\n    name: \"faChartBar\",\r\n  },\r\n  {\r\n    icon: faChartLine,\r\n    name: \"faChartLine\",\r\n  },\r\n  {\r\n    icon: faChartPie,\r\n    name: \"faChartPie\",\r\n  },\r\n  {\r\n    icon: faCheck,\r\n    name: \"faCheck\",\r\n  },\r\n  {\r\n    icon: faCheckCircle,\r\n    name: \"faCheckCircle\",\r\n  },\r\n  {\r\n    icon: faCheckDouble,\r\n    name: \"faCheckDouble\",\r\n  },\r\n  {\r\n    icon: faCheckSquare,\r\n    name: \"faCheckSquare\",\r\n  },\r\n  {\r\n    icon: faCheese,\r\n    name: \"faCheese\",\r\n  },\r\n  {\r\n    icon: faChess,\r\n    name: \"faChess\",\r\n  },\r\n  {\r\n    icon: faChessBishop,\r\n    name: \"faChessBishop\",\r\n  },\r\n  {\r\n    icon: faChessBoard,\r\n    name: \"faChessBoard\",\r\n  },\r\n  {\r\n    icon: faChessKing,\r\n    name: \"faChessKing\",\r\n  },\r\n  {\r\n    icon: faChessKnight,\r\n    name: \"faChessKnight\",\r\n  },\r\n  {\r\n    icon: faChessPawn,\r\n    name: \"faChessPawn\",\r\n  },\r\n  {\r\n    icon: faChessQueen,\r\n    name: \"faChessQueen\",\r\n  },\r\n  {\r\n    icon: faChessRook,\r\n    name: \"faChessRook\",\r\n  },\r\n  {\r\n    icon: faChevronCircleDown,\r\n    name: \"faChevronCircleDown\",\r\n  },\r\n  {\r\n    icon: faChevronCircleLeft,\r\n    name: \"faChevronCircleLeft\",\r\n  },\r\n  {\r\n    icon: faChevronCircleRight,\r\n    name: \"faChevronCircleRight\",\r\n  },\r\n  {\r\n    icon: faChevronCircleUp,\r\n    name: \"faChevronCircleUp\",\r\n  },\r\n  {\r\n    icon: faChevronDown,\r\n    name: \"faChevronDown\",\r\n  },\r\n  {\r\n    icon: faChevronLeft,\r\n    name: \"faChevronLeft\",\r\n  },\r\n  {\r\n    icon: faChevronRight,\r\n    name: \"faChevronRight\",\r\n  },\r\n  {\r\n    icon: faChevronUp,\r\n    name: \"faChevronUp\",\r\n  },\r\n  {\r\n    icon: faChild,\r\n    name: \"faChild\",\r\n  },\r\n  {\r\n    icon: faChurch,\r\n    name: \"faChurch\",\r\n  },\r\n  {\r\n    icon: faCircle,\r\n    name: \"faCircle\",\r\n  },\r\n  {\r\n    icon: faCircleNotch,\r\n    name: \"faCircleNotch\",\r\n  },\r\n  {\r\n    icon: faCity,\r\n    name: \"faCity\",\r\n  },\r\n  {\r\n    icon: faClinicMedical,\r\n    name: \"faClinicMedical\",\r\n  },\r\n  {\r\n    icon: faClipboard,\r\n    name: \"faClipboard\",\r\n  },\r\n  {\r\n    icon: faClipboardCheck,\r\n    name: \"faClipboardCheck\",\r\n  },\r\n  {\r\n    icon: faClipboardList,\r\n    name: \"faClipboardList\",\r\n  },\r\n  {\r\n    icon: faClock,\r\n    name: \"faClock\",\r\n  },\r\n  {\r\n    icon: faClone,\r\n    name: \"faClone\",\r\n  },\r\n  {\r\n    icon: faClosedCaptioning,\r\n    name: \"faClosedCaptioning\",\r\n  },\r\n  {\r\n    icon: faCloud,\r\n    name: \"faCloud\",\r\n  },\r\n  {\r\n    icon: faCloudDownloadAlt,\r\n    name: \"faCloudDownloadAlt\",\r\n  },\r\n  {\r\n    icon: faCloudMeatball,\r\n    name: \"faCloudMeatball\",\r\n  },\r\n  {\r\n    icon: faCloudMoon,\r\n    name: \"faCloudMoon\",\r\n  },\r\n  {\r\n    icon: faCloudMoonRain,\r\n    name: \"faCloudMoonRain\",\r\n  },\r\n  {\r\n    icon: faCloudRain,\r\n    name: \"faCloudRain\",\r\n  },\r\n  {\r\n    icon: faCloudShowersHeavy,\r\n    name: \"faCloudShowersHeavy\",\r\n  },\r\n  {\r\n    icon: faCloudSun,\r\n    name: \"faCloudSun\",\r\n  },\r\n  {\r\n    icon: faCloudSunRain,\r\n    name: \"faCloudSunRain\",\r\n  },\r\n  {\r\n    icon: faCloudUploadAlt,\r\n    name: \"faCloudUploadAlt\",\r\n  },\r\n  {\r\n    icon: faCocktail,\r\n    name: \"faCocktail\",\r\n  },\r\n  {\r\n    icon: faCode,\r\n    name: \"faCode\",\r\n  },\r\n  {\r\n    icon: faCodeBranch,\r\n    name: \"faCodeBranch\",\r\n  },\r\n  {\r\n    icon: faCoffee,\r\n    name: \"faCoffee\",\r\n  },\r\n  {\r\n    icon: faCog,\r\n    name: \"faCog\",\r\n  },\r\n  {\r\n    icon: faCogs,\r\n    name: \"faCogs\",\r\n  },\r\n  {\r\n    icon: faCoins,\r\n    name: \"faCoins\",\r\n  },\r\n  {\r\n    icon: faColumns,\r\n    name: \"faColumns\",\r\n  },\r\n  {\r\n    icon: faComment,\r\n    name: \"faComment\",\r\n  },\r\n  {\r\n    icon: faCommentAlt,\r\n    name: \"faCommentAlt\",\r\n  },\r\n  {\r\n    icon: faCommentDollar,\r\n    name: \"faCommentDollar\",\r\n  },\r\n  {\r\n    icon: faCommentDots,\r\n    name: \"faCommentDots\",\r\n  },\r\n  {\r\n    icon: faCommentMedical,\r\n    name: \"faCommentMedical\",\r\n  },\r\n  {\r\n    icon: faCommentSlash,\r\n    name: \"faCommentSlash\",\r\n  },\r\n  {\r\n    icon: faComments,\r\n    name: \"faComments\",\r\n  },\r\n  {\r\n    icon: faCommentsDollar,\r\n    name: \"faCommentsDollar\",\r\n  },\r\n  {\r\n    icon: faCompactDisc,\r\n    name: \"faCompactDisc\",\r\n  },\r\n  {\r\n    icon: faCompass,\r\n    name: \"faCompass\",\r\n  },\r\n  {\r\n    icon: faCompress,\r\n    name: \"faCompress\",\r\n  },\r\n  {\r\n    icon: faCompressArrowsAlt,\r\n    name: \"faCompressArrowsAlt\",\r\n  },\r\n  {\r\n    icon: faConciergeBell,\r\n    name: \"faConciergeBell\",\r\n  },\r\n  {\r\n    icon: faCookie,\r\n    name: \"faCookie\",\r\n  },\r\n  {\r\n    icon: faCookieBite,\r\n    name: \"faCookieBite\",\r\n  },\r\n  {\r\n    icon: faCopy,\r\n    name: \"faCopy\",\r\n  },\r\n  {\r\n    icon: faCopyright,\r\n    name: \"faCopyright\",\r\n  },\r\n  {\r\n    icon: faCouch,\r\n    name: \"faCouch\",\r\n  },\r\n  {\r\n    icon: faCreditCard,\r\n    name: \"faCreditCard\",\r\n  },\r\n  {\r\n    icon: faCrop,\r\n    name: \"faCrop\",\r\n  },\r\n  {\r\n    icon: faCropAlt,\r\n    name: \"faCropAlt\",\r\n  },\r\n  {\r\n    icon: faCross,\r\n    name: \"faCross\",\r\n  },\r\n  {\r\n    icon: faCrosshairs,\r\n    name: \"faCrosshairs\",\r\n  },\r\n  {\r\n    icon: faCrow,\r\n    name: \"faCrow\",\r\n  },\r\n  {\r\n    icon: faCrown,\r\n    name: \"faCrown\",\r\n  },\r\n  {\r\n    icon: faCrutch,\r\n    name: \"faCrutch\",\r\n  },\r\n  {\r\n    icon: faCube,\r\n    name: \"faCube\",\r\n  },\r\n  {\r\n    icon: faCubes,\r\n    name: \"faCubes\",\r\n  },\r\n  {\r\n    icon: faCut,\r\n    name: \"faCut\",\r\n  },\r\n  {\r\n    icon: faDatabase,\r\n    name: \"faDatabase\",\r\n  },\r\n  {\r\n    icon: faDeaf,\r\n    name: \"faDeaf\",\r\n  },\r\n  {\r\n    icon: faDemocrat,\r\n    name: \"faDemocrat\",\r\n  },\r\n  {\r\n    icon: faDesktop,\r\n    name: \"faDesktop\",\r\n  },\r\n  {\r\n    icon: faDharmachakra,\r\n    name: \"faDharmachakra\",\r\n  },\r\n  {\r\n    icon: faDiagnoses,\r\n    name: \"faDiagnoses\",\r\n  },\r\n  {\r\n    icon: faDice,\r\n    name: \"faDice\",\r\n  },\r\n  {\r\n    icon: faDiceD20,\r\n    name: \"faDiceD20\",\r\n  },\r\n  {\r\n    icon: faDiceD6,\r\n    name: \"faDiceD6\",\r\n  },\r\n  {\r\n    icon: faDiceFive,\r\n    name: \"faDiceFive\",\r\n  },\r\n  {\r\n    icon: faDiceFour,\r\n    name: \"faDiceFour\",\r\n  },\r\n  {\r\n    icon: faDiceOne,\r\n    name: \"faDiceOne\",\r\n  },\r\n  {\r\n    icon: faDiceSix,\r\n    name: \"faDiceSix\",\r\n  },\r\n  {\r\n    icon: faDiceThree,\r\n    name: \"faDiceThree\",\r\n  },\r\n  {\r\n    icon: faDiceTwo,\r\n    name: \"faDiceTwo\",\r\n  },\r\n  {\r\n    icon: faDigitalTachograph,\r\n    name: \"faDigitalTachograph\",\r\n  },\r\n  {\r\n    icon: faDirections,\r\n    name: \"faDirections\",\r\n  },\r\n  {\r\n    icon: faDivide,\r\n    name: \"faDivide\",\r\n  },\r\n  {\r\n    icon: faDizzy,\r\n    name: \"faDizzy\",\r\n  },\r\n  {\r\n    icon: faDna,\r\n    name: \"faDna\",\r\n  },\r\n  {\r\n    icon: faDog,\r\n    name: \"faDog\",\r\n  },\r\n  {\r\n    icon: faDollarSign,\r\n    name: \"faDollarSign\",\r\n  },\r\n  {\r\n    icon: faDolly,\r\n    name: \"faDolly\",\r\n  },\r\n  {\r\n    icon: faDollyFlatbed,\r\n    name: \"faDollyFlatbed\",\r\n  },\r\n  {\r\n    icon: faDonate,\r\n    name: \"faDonate\",\r\n  },\r\n  {\r\n    icon: faDoorClosed,\r\n    name: \"faDoorClosed\",\r\n  },\r\n  {\r\n    icon: faDoorOpen,\r\n    name: \"faDoorOpen\",\r\n  },\r\n  {\r\n    icon: faDotCircle,\r\n    name: \"faDotCircle\",\r\n  },\r\n  {\r\n    icon: faDove,\r\n    name: \"faDove\",\r\n  },\r\n  {\r\n    icon: faDownload,\r\n    name: \"faDownload\",\r\n  },\r\n  {\r\n    icon: faDraftingCompass,\r\n    name: \"faDraftingCompass\",\r\n  },\r\n  {\r\n    icon: faDragon,\r\n    name: \"faDragon\",\r\n  },\r\n  {\r\n    icon: faDrawPolygon,\r\n    name: \"faDrawPolygon\",\r\n  },\r\n  {\r\n    icon: faDrum,\r\n    name: \"faDrum\",\r\n  },\r\n  {\r\n    icon: faDrumSteelpan,\r\n    name: \"faDrumSteelpan\",\r\n  },\r\n  {\r\n    icon: faDrumstickBite,\r\n    name: \"faDrumstickBite\",\r\n  },\r\n  {\r\n    icon: faDumbbell,\r\n    name: \"faDumbbell\",\r\n  },\r\n  {\r\n    icon: faDumpster,\r\n    name: \"faDumpster\",\r\n  },\r\n  {\r\n    icon: faDumpsterFire,\r\n    name: \"faDumpsterFire\",\r\n  },\r\n  {\r\n    icon: faDungeon,\r\n    name: \"faDungeon\",\r\n  },\r\n  {\r\n    icon: faEdit,\r\n    name: \"faEdit\",\r\n  },\r\n  {\r\n    icon: faEgg,\r\n    name: \"faEgg\",\r\n  },\r\n  {\r\n    icon: faEject,\r\n    name: \"faEject\",\r\n  },\r\n  {\r\n    icon: faEllipsisH,\r\n    name: \"faEllipsisH\",\r\n  },\r\n  {\r\n    icon: faEllipsisV,\r\n    name: \"faEllipsisV\",\r\n  },\r\n  {\r\n    icon: faEnvelope,\r\n    name: \"faEnvelope\",\r\n  },\r\n  {\r\n    icon: faEnvelopeOpen,\r\n    name: \"faEnvelopeOpen\",\r\n  },\r\n  {\r\n    icon: faEnvelopeOpenText,\r\n    name: \"faEnvelopeOpenText\",\r\n  },\r\n  {\r\n    icon: faEnvelopeSquare,\r\n    name: \"faEnvelopeSquare\",\r\n  },\r\n  {\r\n    icon: faEquals,\r\n    name: \"faEquals\",\r\n  },\r\n  {\r\n    icon: faEraser,\r\n    name: \"faEraser\",\r\n  },\r\n  {\r\n    icon: faEthernet,\r\n    name: \"faEthernet\",\r\n  },\r\n  {\r\n    icon: faEuroSign,\r\n    name: \"faEuroSign\",\r\n  },\r\n  {\r\n    icon: faExchangeAlt,\r\n    name: \"faExchangeAlt\",\r\n  },\r\n  {\r\n    icon: faExclamation,\r\n    name: \"faExclamation\",\r\n  },\r\n  {\r\n    icon: faExclamationCircle,\r\n    name: \"faExclamationCircle\",\r\n  },\r\n  {\r\n    icon: faExclamationTriangle,\r\n    name: \"faExclamationTriangle\",\r\n  },\r\n  {\r\n    icon: faExpand,\r\n    name: \"faExpand\",\r\n  },\r\n  {\r\n    icon: faExpandArrowsAlt,\r\n    name: \"faExpandArrowsAlt\",\r\n  },\r\n  {\r\n    icon: faExternalLinkAlt,\r\n    name: \"faExternalLinkAlt\",\r\n  },\r\n  {\r\n    icon: faExternalLinkSquareAlt,\r\n    name: \"faExternalLinkSquareAlt\",\r\n  },\r\n  {\r\n    icon: faEye,\r\n    name: \"faEye\",\r\n  },\r\n  {\r\n    icon: faEyeDropper,\r\n    name: \"faEyeDropper\",\r\n  },\r\n  {\r\n    icon: faEyeSlash,\r\n    name: \"faEyeSlash\",\r\n  },\r\n  {\r\n    icon: faFastBackward,\r\n    name: \"faFastBackward\",\r\n  },\r\n  {\r\n    icon: faFastForward,\r\n    name: \"faFastForward\",\r\n  },\r\n  {\r\n    icon: faFax,\r\n    name: \"faFax\",\r\n  },\r\n  {\r\n    icon: faFeather,\r\n    name: \"faFeather\",\r\n  },\r\n  {\r\n    icon: faFeatherAlt,\r\n    name: \"faFeatherAlt\",\r\n  },\r\n  {\r\n    icon: faFemale,\r\n    name: \"faFemale\",\r\n  },\r\n  {\r\n    icon: faFighterJet,\r\n    name: \"faFighterJet\",\r\n  },\r\n  {\r\n    icon: faFile,\r\n    name: \"faFile\",\r\n  },\r\n  {\r\n    icon: faFileAlt,\r\n    name: \"faFileAlt\",\r\n  },\r\n  {\r\n    icon: faFileArchive,\r\n    name: \"faFileArchive\",\r\n  },\r\n  {\r\n    icon: faFileAudio,\r\n    name: \"faFileAudio\",\r\n  },\r\n  {\r\n    icon: faFileCode,\r\n    name: \"faFileCode\",\r\n  },\r\n  {\r\n    icon: faFileContract,\r\n    name: \"faFileContract\",\r\n  },\r\n  {\r\n    icon: faFileCsv,\r\n    name: \"faFileCsv\",\r\n  },\r\n  {\r\n    icon: faFileDownload,\r\n    name: \"faFileDownload\",\r\n  },\r\n  {\r\n    icon: faFileExcel,\r\n    name: \"faFileExcel\",\r\n  },\r\n  {\r\n    icon: faFileExport,\r\n    name: \"faFileExport\",\r\n  },\r\n  {\r\n    icon: faFileImage,\r\n    name: \"faFileImage\",\r\n  },\r\n  {\r\n    icon: faFileImport,\r\n    name: \"faFileImport\",\r\n  },\r\n  {\r\n    icon: faFileInvoice,\r\n    name: \"faFileInvoice\",\r\n  },\r\n  {\r\n    icon: faFileInvoiceDollar,\r\n    name: \"faFileInvoiceDollar\",\r\n  },\r\n  {\r\n    icon: faFileMedical,\r\n    name: \"faFileMedical\",\r\n  },\r\n  {\r\n    icon: faFileMedicalAlt,\r\n    name: \"faFileMedicalAlt\",\r\n  },\r\n  {\r\n    icon: faFilePdf,\r\n    name: \"faFilePdf\",\r\n  },\r\n  {\r\n    icon: faFilePowerpoint,\r\n    name: \"faFilePowerpoint\",\r\n  },\r\n  {\r\n    icon: faFilePrescription,\r\n    name: \"faFilePrescription\",\r\n  },\r\n  {\r\n    icon: faFileSignature,\r\n    name: \"faFileSignature\",\r\n  },\r\n  {\r\n    icon: faFileUpload,\r\n    name: \"faFileUpload\",\r\n  },\r\n  {\r\n    icon: faFileVideo,\r\n    name: \"faFileVideo\",\r\n  },\r\n  {\r\n    icon: faFileWord,\r\n    name: \"faFileWord\",\r\n  },\r\n  {\r\n    icon: faFill,\r\n    name: \"faFill\",\r\n  },\r\n  {\r\n    icon: faFillDrip,\r\n    name: \"faFillDrip\",\r\n  },\r\n  {\r\n    icon: faFilm,\r\n    name: \"faFilm\",\r\n  },\r\n  {\r\n    icon: faFilter,\r\n    name: \"faFilter\",\r\n  },\r\n  {\r\n    icon: faFingerprint,\r\n    name: \"faFingerprint\",\r\n  },\r\n  {\r\n    icon: faFire,\r\n    name: \"faFire\",\r\n  },\r\n  {\r\n    icon: faFireAlt,\r\n    name: \"faFireAlt\",\r\n  },\r\n  {\r\n    icon: faFireExtinguisher,\r\n    name: \"faFireExtinguisher\",\r\n  },\r\n  {\r\n    icon: faFirstAid,\r\n    name: \"faFirstAid\",\r\n  },\r\n  {\r\n    icon: faFish,\r\n    name: \"faFish\",\r\n  },\r\n  {\r\n    icon: faFistRaised,\r\n    name: \"faFistRaised\",\r\n  },\r\n  {\r\n    icon: faFlag,\r\n    name: \"faFlag\",\r\n  },\r\n  {\r\n    icon: faFlagCheckered,\r\n    name: \"faFlagCheckered\",\r\n  },\r\n  {\r\n    icon: faFlagUsa,\r\n    name: \"faFlagUsa\",\r\n  },\r\n  {\r\n    icon: faFlask,\r\n    name: \"faFlask\",\r\n  },\r\n  {\r\n    icon: faFlushed,\r\n    name: \"faFlushed\",\r\n  },\r\n  {\r\n    icon: faFolder,\r\n    name: \"faFolder\",\r\n  },\r\n  {\r\n    icon: faFolderMinus,\r\n    name: \"faFolderMinus\",\r\n  },\r\n  {\r\n    icon: faFolderOpen,\r\n    name: \"faFolderOpen\",\r\n  },\r\n  {\r\n    icon: faFolderPlus,\r\n    name: \"faFolderPlus\",\r\n  },\r\n  {\r\n    icon: faFont,\r\n    name: \"faFont\",\r\n  },\r\n  {\r\n    icon: faFontAwesomeLogoFull,\r\n    name: \"faFontAwesomeLogoFull\",\r\n  },\r\n  {\r\n    icon: faFootballBall,\r\n    name: \"faFootballBall\",\r\n  },\r\n  {\r\n    icon: faForward,\r\n    name: \"faForward\",\r\n  },\r\n  {\r\n    icon: faFrog,\r\n    name: \"faFrog\",\r\n  },\r\n  {\r\n    icon: faFrown,\r\n    name: \"faFrown\",\r\n  },\r\n  {\r\n    icon: faFrownOpen,\r\n    name: \"faFrownOpen\",\r\n  },\r\n  {\r\n    icon: faFunnelDollar,\r\n    name: \"faFunnelDollar\",\r\n  },\r\n  {\r\n    icon: faFutbol,\r\n    name: \"faFutbol\",\r\n  },\r\n  {\r\n    icon: faGamepad,\r\n    name: \"faGamepad\",\r\n  },\r\n  {\r\n    icon: faGasPump,\r\n    name: \"faGasPump\",\r\n  },\r\n  {\r\n    icon: faGavel,\r\n    name: \"faGavel\",\r\n  },\r\n  {\r\n    icon: faGem,\r\n    name: \"faGem\",\r\n  },\r\n  {\r\n    icon: faGenderless,\r\n    name: \"faGenderless\",\r\n  },\r\n  {\r\n    icon: faGhost,\r\n    name: \"faGhost\",\r\n  },\r\n  {\r\n    icon: faGift,\r\n    name: \"faGift\",\r\n  },\r\n  {\r\n    icon: faGifts,\r\n    name: \"faGifts\",\r\n  },\r\n  {\r\n    icon: faGlassCheers,\r\n    name: \"faGlassCheers\",\r\n  },\r\n  {\r\n    icon: faGlassMartini,\r\n    name: \"faGlassMartini\",\r\n  },\r\n  {\r\n    icon: faGlassMartiniAlt,\r\n    name: \"faGlassMartiniAlt\",\r\n  },\r\n  {\r\n    icon: faGlassWhiskey,\r\n    name: \"faGlassWhiskey\",\r\n  },\r\n  {\r\n    icon: faGlasses,\r\n    name: \"faGlasses\",\r\n  },\r\n  {\r\n    icon: faGlobe,\r\n    name: \"faGlobe\",\r\n  },\r\n  {\r\n    icon: faGlobeAfrica,\r\n    name: \"faGlobeAfrica\",\r\n  },\r\n  {\r\n    icon: faGlobeAmericas,\r\n    name: \"faGlobeAmericas\",\r\n  },\r\n  {\r\n    icon: faGlobeAsia,\r\n    name: \"faGlobeAsia\",\r\n  },\r\n  {\r\n    icon: faGlobeEurope,\r\n    name: \"faGlobeEurope\",\r\n  },\r\n  {\r\n    icon: faGolfBall,\r\n    name: \"faGolfBall\",\r\n  },\r\n  {\r\n    icon: faGopuram,\r\n    name: \"faGopuram\",\r\n  },\r\n  {\r\n    icon: faGraduationCap,\r\n    name: \"faGraduationCap\",\r\n  },\r\n  {\r\n    icon: faGreaterThan,\r\n    name: \"faGreaterThan\",\r\n  },\r\n  {\r\n    icon: faGreaterThanEqual,\r\n    name: \"faGreaterThanEqual\",\r\n  },\r\n  {\r\n    icon: faGrimace,\r\n    name: \"faGrimace\",\r\n  },\r\n  {\r\n    icon: faGrin,\r\n    name: \"faGrin\",\r\n  },\r\n  {\r\n    icon: faGrinAlt,\r\n    name: \"faGrinAlt\",\r\n  },\r\n  {\r\n    icon: faGrinBeam,\r\n    name: \"faGrinBeam\",\r\n  },\r\n  {\r\n    icon: faGrinBeamSweat,\r\n    name: \"faGrinBeamSweat\",\r\n  },\r\n  {\r\n    icon: faGrinHearts,\r\n    name: \"faGrinHearts\",\r\n  },\r\n  {\r\n    icon: faGrinSquint,\r\n    name: \"faGrinSquint\",\r\n  },\r\n  {\r\n    icon: faGrinSquintTears,\r\n    name: \"faGrinSquintTears\",\r\n  },\r\n  {\r\n    icon: faGrinStars,\r\n    name: \"faGrinStars\",\r\n  },\r\n  {\r\n    icon: faGrinTears,\r\n    name: \"faGrinTears\",\r\n  },\r\n  {\r\n    icon: faGrinTongue,\r\n    name: \"faGrinTongue\",\r\n  },\r\n  {\r\n    icon: faGrinTongueSquint,\r\n    name: \"faGrinTongueSquint\",\r\n  },\r\n  {\r\n    icon: faGrinTongueWink,\r\n    name: \"faGrinTongueWink\",\r\n  },\r\n  {\r\n    icon: faGrinWink,\r\n    name: \"faGrinWink\",\r\n  },\r\n  {\r\n    icon: faGripHorizontal,\r\n    name: \"faGripHorizontal\",\r\n  },\r\n  {\r\n    icon: faGripLines,\r\n    name: \"faGripLines\",\r\n  },\r\n  {\r\n    icon: faGripLinesVertical,\r\n    name: \"faGripLinesVertical\",\r\n  },\r\n  {\r\n    icon: faGripVertical,\r\n    name: \"faGripVertical\",\r\n  },\r\n  {\r\n    icon: faGuitar,\r\n    name: \"faGuitar\",\r\n  },\r\n  {\r\n    icon: faHSquare,\r\n    name: \"faHSquare\",\r\n  },\r\n  {\r\n    icon: faHamburger,\r\n    name: \"faHamburger\",\r\n  },\r\n  {\r\n    icon: faHammer,\r\n    name: \"faHammer\",\r\n  },\r\n  {\r\n    icon: faHamsa,\r\n    name: \"faHamsa\",\r\n  },\r\n  {\r\n    icon: faHandHolding,\r\n    name: \"faHandHolding\",\r\n  },\r\n  {\r\n    icon: faHandHoldingHeart,\r\n    name: \"faHandHoldingHeart\",\r\n  },\r\n  {\r\n    icon: faHandHoldingUsd,\r\n    name: \"faHandHoldingUsd\",\r\n  },\r\n  {\r\n    icon: faHandLizard,\r\n    name: \"faHandLizard\",\r\n  },\r\n  {\r\n    icon: faHandMiddleFinger,\r\n    name: \"faHandMiddleFinger\",\r\n  },\r\n  {\r\n    icon: faHandPaper,\r\n    name: \"faHandPaper\",\r\n  },\r\n  {\r\n    icon: faHandPeace,\r\n    name: \"faHandPeace\",\r\n  },\r\n  {\r\n    icon: faHandPointDown,\r\n    name: \"faHandPointDown\",\r\n  },\r\n  {\r\n    icon: faHandPointLeft,\r\n    name: \"faHandPointLeft\",\r\n  },\r\n  {\r\n    icon: faHandPointRight,\r\n    name: \"faHandPointRight\",\r\n  },\r\n  {\r\n    icon: faHandPointUp,\r\n    name: \"faHandPointUp\",\r\n  },\r\n  {\r\n    icon: faHandPointer,\r\n    name: \"faHandPointer\",\r\n  },\r\n  {\r\n    icon: faHandRock,\r\n    name: \"faHandRock\",\r\n  },\r\n  {\r\n    icon: faHandScissors,\r\n    name: \"faHandScissors\",\r\n  },\r\n  {\r\n    icon: faHandSpock,\r\n    name: \"faHandSpock\",\r\n  },\r\n  {\r\n    icon: faHands,\r\n    name: \"faHands\",\r\n  },\r\n  {\r\n    icon: faHandsHelping,\r\n    name: \"faHandsHelping\",\r\n  },\r\n  {\r\n    icon: faHandshake,\r\n    name: \"faHandshake\",\r\n  },\r\n  {\r\n    icon: faHanukiah,\r\n    name: \"faHanukiah\",\r\n  },\r\n  {\r\n    icon: faHardHat,\r\n    name: \"faHardHat\",\r\n  },\r\n  {\r\n    icon: faHashtag,\r\n    name: \"faHashtag\",\r\n  },\r\n  {\r\n    icon: faHatWizard,\r\n    name: \"faHatWizard\",\r\n  },\r\n  {\r\n    icon: faHdd,\r\n    name: \"faHdd\",\r\n  },\r\n  {\r\n    icon: faHeading,\r\n    name: \"faHeading\",\r\n  },\r\n  {\r\n    icon: faHeadphones,\r\n    name: \"faHeadphones\",\r\n  },\r\n  {\r\n    icon: faHeadphonesAlt,\r\n    name: \"faHeadphonesAlt\",\r\n  },\r\n  {\r\n    icon: faHeadset,\r\n    name: \"faHeadset\",\r\n  },\r\n  {\r\n    icon: faHeart,\r\n    name: \"faHeart\",\r\n  },\r\n  {\r\n    icon: faHeartBroken,\r\n    name: \"faHeartBroken\",\r\n  },\r\n  {\r\n    icon: faHeartbeat,\r\n    name: \"faHeartbeat\",\r\n  },\r\n  {\r\n    icon: faHelicopter,\r\n    name: \"faHelicopter\",\r\n  },\r\n  {\r\n    icon: faHighlighter,\r\n    name: \"faHighlighter\",\r\n  },\r\n  {\r\n    icon: faHiking,\r\n    name: \"faHiking\",\r\n  },\r\n  {\r\n    icon: faHippo,\r\n    name: \"faHippo\",\r\n  },\r\n  {\r\n    icon: faHistory,\r\n    name: \"faHistory\",\r\n  },\r\n  {\r\n    icon: faHockeyPuck,\r\n    name: \"faHockeyPuck\",\r\n  },\r\n  {\r\n    icon: faHollyBerry,\r\n    name: \"faHollyBerry\",\r\n  },\r\n  {\r\n    icon: faHome,\r\n    name: \"faHome\",\r\n  },\r\n  {\r\n    icon: faHorse,\r\n    name: \"faHorse\",\r\n  },\r\n  {\r\n    icon: faHorseHead,\r\n    name: \"faHorseHead\",\r\n  },\r\n  {\r\n    icon: faHospital,\r\n    name: \"faHospital\",\r\n  },\r\n  {\r\n    icon: faHospitalAlt,\r\n    name: \"faHospitalAlt\",\r\n  },\r\n  {\r\n    icon: faHospitalSymbol,\r\n    name: \"faHospitalSymbol\",\r\n  },\r\n  {\r\n    icon: faHotTub,\r\n    name: \"faHotTub\",\r\n  },\r\n  {\r\n    icon: faHotdog,\r\n    name: \"faHotdog\",\r\n  },\r\n  {\r\n    icon: faHotel,\r\n    name: \"faHotel\",\r\n  },\r\n  {\r\n    icon: faHourglass,\r\n    name: \"faHourglass\",\r\n  },\r\n  {\r\n    icon: faHourglassEnd,\r\n    name: \"faHourglassEnd\",\r\n  },\r\n  {\r\n    icon: faHourglassHalf,\r\n    name: \"faHourglassHalf\",\r\n  },\r\n  {\r\n    icon: faHourglassStart,\r\n    name: \"faHourglassStart\",\r\n  },\r\n  {\r\n    icon: faHouseDamage,\r\n    name: \"faHouseDamage\",\r\n  },\r\n  {\r\n    icon: faHryvnia,\r\n    name: \"faHryvnia\",\r\n  },\r\n  {\r\n    icon: faICursor,\r\n    name: \"faICursor\",\r\n  },\r\n  {\r\n    icon: faIceCream,\r\n    name: \"faIceCream\",\r\n  },\r\n  {\r\n    icon: faIcicles,\r\n    name: \"faIcicles\",\r\n  },\r\n  {\r\n    icon: faIdBadge,\r\n    name: \"faIdBadge\",\r\n  },\r\n  {\r\n    icon: faIdCard,\r\n    name: \"faIdCard\",\r\n  },\r\n  {\r\n    icon: faIdCardAlt,\r\n    name: \"faIdCardAlt\",\r\n  },\r\n  {\r\n    icon: faIgloo,\r\n    name: \"faIgloo\",\r\n  },\r\n  {\r\n    icon: faImage,\r\n    name: \"faImage\",\r\n  },\r\n  {\r\n    icon: faImages,\r\n    name: \"faImages\",\r\n  },\r\n  {\r\n    icon: faInbox,\r\n    name: \"faInbox\",\r\n  },\r\n  {\r\n    icon: faIndent,\r\n    name: \"faIndent\",\r\n  },\r\n  {\r\n    icon: faIndustry,\r\n    name: \"faIndustry\",\r\n  },\r\n  {\r\n    icon: faInfinity,\r\n    name: \"faInfinity\",\r\n  },\r\n  {\r\n    icon: faInfo,\r\n    name: \"faInfo\",\r\n  },\r\n  {\r\n    icon: faInfoCircle,\r\n    name: \"faInfoCircle\",\r\n  },\r\n  {\r\n    icon: faItalic,\r\n    name: \"faItalic\",\r\n  },\r\n  {\r\n    icon: faJedi,\r\n    name: \"faJedi\",\r\n  },\r\n  {\r\n    icon: faJoint,\r\n    name: \"faJoint\",\r\n  },\r\n  {\r\n    icon: faJournalWhills,\r\n    name: \"faJournalWhills\",\r\n  },\r\n  {\r\n    icon: faKaaba,\r\n    name: \"faKaaba\",\r\n  },\r\n  {\r\n    icon: faKey,\r\n    name: \"faKey\",\r\n  },\r\n  {\r\n    icon: faKeyboard,\r\n    name: \"faKeyboard\",\r\n  },\r\n  {\r\n    icon: faKhanda,\r\n    name: \"faKhanda\",\r\n  },\r\n  {\r\n    icon: faKiss,\r\n    name: \"faKiss\",\r\n  },\r\n  {\r\n    icon: faKissBeam,\r\n    name: \"faKissBeam\",\r\n  },\r\n  {\r\n    icon: faKissWinkHeart,\r\n    name: \"faKissWinkHeart\",\r\n  },\r\n  {\r\n    icon: faKiwiBird,\r\n    name: \"faKiwiBird\",\r\n  },\r\n  {\r\n    icon: faLandmark,\r\n    name: \"faLandmark\",\r\n  },\r\n  {\r\n    icon: faLanguage,\r\n    name: \"faLanguage\",\r\n  },\r\n  {\r\n    icon: faLaptop,\r\n    name: \"faLaptop\",\r\n  },\r\n  {\r\n    icon: faLaptopCode,\r\n    name: \"faLaptopCode\",\r\n  },\r\n  {\r\n    icon: faLaptopMedical,\r\n    name: \"faLaptopMedical\",\r\n  },\r\n  {\r\n    icon: faLaugh,\r\n    name: \"faLaugh\",\r\n  },\r\n  {\r\n    icon: faLaughBeam,\r\n    name: \"faLaughBeam\",\r\n  },\r\n  {\r\n    icon: faLaughSquint,\r\n    name: \"faLaughSquint\",\r\n  },\r\n  {\r\n    icon: faLaughWink,\r\n    name: \"faLaughWink\",\r\n  },\r\n  {\r\n    icon: faLayerGroup,\r\n    name: \"faLayerGroup\",\r\n  },\r\n  {\r\n    icon: faLeaf,\r\n    name: \"faLeaf\",\r\n  },\r\n  {\r\n    icon: faLemon,\r\n    name: \"faLemon\",\r\n  },\r\n  {\r\n    icon: faLessThan,\r\n    name: \"faLessThan\",\r\n  },\r\n  {\r\n    icon: faLessThanEqual,\r\n    name: \"faLessThanEqual\",\r\n  },\r\n  {\r\n    icon: faLevelDownAlt,\r\n    name: \"faLevelDownAlt\",\r\n  },\r\n  {\r\n    icon: faLevelUpAlt,\r\n    name: \"faLevelUpAlt\",\r\n  },\r\n  {\r\n    icon: faLifeRing,\r\n    name: \"faLifeRing\",\r\n  },\r\n  {\r\n    icon: faLightbulb,\r\n    name: \"faLightbulb\",\r\n  },\r\n  {\r\n    icon: faLink,\r\n    name: \"faLink\",\r\n  },\r\n  {\r\n    icon: faLiraSign,\r\n    name: \"faLiraSign\",\r\n  },\r\n  {\r\n    icon: faList,\r\n    name: \"faList\",\r\n  },\r\n  {\r\n    icon: faListAlt,\r\n    name: \"faListAlt\",\r\n  },\r\n  {\r\n    icon: faListOl,\r\n    name: \"faListOl\",\r\n  },\r\n  {\r\n    icon: faListUl,\r\n    name: \"faListUl\",\r\n  },\r\n  {\r\n    icon: faLocationArrow,\r\n    name: \"faLocationArrow\",\r\n  },\r\n  {\r\n    icon: faLock,\r\n    name: \"faLock\",\r\n  },\r\n  {\r\n    icon: faLockOpen,\r\n    name: \"faLockOpen\",\r\n  },\r\n  {\r\n    icon: faLongArrowAltDown,\r\n    name: \"faLongArrowAltDown\",\r\n  },\r\n  {\r\n    icon: faLongArrowAltLeft,\r\n    name: \"faLongArrowAltLeft\",\r\n  },\r\n  {\r\n    icon: faLongArrowAltRight,\r\n    name: \"faLongArrowAltRight\",\r\n  },\r\n  {\r\n    icon: faLongArrowAltUp,\r\n    name: \"faLongArrowAltUp\",\r\n  },\r\n  {\r\n    icon: faLowVision,\r\n    name: \"faLowVision\",\r\n  },\r\n  {\r\n    icon: faLuggageCart,\r\n    name: \"faLuggageCart\",\r\n  },\r\n  {\r\n    icon: faMagic,\r\n    name: \"faMagic\",\r\n  },\r\n  {\r\n    icon: faMagnet,\r\n    name: \"faMagnet\",\r\n  },\r\n  {\r\n    icon: faMailBulk,\r\n    name: \"faMailBulk\",\r\n  },\r\n  {\r\n    icon: faMale,\r\n    name: \"faMale\",\r\n  },\r\n  {\r\n    icon: faMap,\r\n    name: \"faMap\",\r\n  },\r\n  {\r\n    icon: faMapMarked,\r\n    name: \"faMapMarked\",\r\n  },\r\n  {\r\n    icon: faMapMarkedAlt,\r\n    name: \"faMapMarkedAlt\",\r\n  },\r\n  {\r\n    icon: faMapMarker,\r\n    name: \"faMapMarker\",\r\n  },\r\n  {\r\n    icon: faMapMarkerAlt,\r\n    name: \"faMapMarkerAlt\",\r\n  },\r\n  {\r\n    icon: faMapPin,\r\n    name: \"faMapPin\",\r\n  },\r\n  {\r\n    icon: faMapSigns,\r\n    name: \"faMapSigns\",\r\n  },\r\n  {\r\n    icon: faMarker,\r\n    name: \"faMarker\",\r\n  },\r\n  {\r\n    icon: faMars,\r\n    name: \"faMars\",\r\n  },\r\n  {\r\n    icon: faMarsDouble,\r\n    name: \"faMarsDouble\",\r\n  },\r\n  {\r\n    icon: faMarsStroke,\r\n    name: \"faMarsStroke\",\r\n  },\r\n  {\r\n    icon: faMarsStrokeH,\r\n    name: \"faMarsStrokeH\",\r\n  },\r\n  {\r\n    icon: faMarsStrokeV,\r\n    name: \"faMarsStrokeV\",\r\n  },\r\n  {\r\n    icon: faMask,\r\n    name: \"faMask\",\r\n  },\r\n  {\r\n    icon: faMedal,\r\n    name: \"faMedal\",\r\n  },\r\n  {\r\n    icon: faMedkit,\r\n    name: \"faMedkit\",\r\n  },\r\n  {\r\n    icon: faMeh,\r\n    name: \"faMeh\",\r\n  },\r\n  {\r\n    icon: faMehBlank,\r\n    name: \"faMehBlank\",\r\n  },\r\n  {\r\n    icon: faMehRollingEyes,\r\n    name: \"faMehRollingEyes\",\r\n  },\r\n  {\r\n    icon: faMemory,\r\n    name: \"faMemory\",\r\n  },\r\n  {\r\n    icon: faMenorah,\r\n    name: \"faMenorah\",\r\n  },\r\n  {\r\n    icon: faMercury,\r\n    name: \"faMercury\",\r\n  },\r\n  {\r\n    icon: faMeteor,\r\n    name: \"faMeteor\",\r\n  },\r\n  {\r\n    icon: faMicrochip,\r\n    name: \"faMicrochip\",\r\n  },\r\n  {\r\n    icon: faMicrophone,\r\n    name: \"faMicrophone\",\r\n  },\r\n  {\r\n    icon: faMicrophoneAlt,\r\n    name: \"faMicrophoneAlt\",\r\n  },\r\n  {\r\n    icon: faMicrophoneAltSlash,\r\n    name: \"faMicrophoneAltSlash\",\r\n  },\r\n  {\r\n    icon: faMicrophoneSlash,\r\n    name: \"faMicrophoneSlash\",\r\n  },\r\n  {\r\n    icon: faMicroscope,\r\n    name: \"faMicroscope\",\r\n  },\r\n  {\r\n    icon: faMinus,\r\n    name: \"faMinus\",\r\n  },\r\n  {\r\n    icon: faMinusCircle,\r\n    name: \"faMinusCircle\",\r\n  },\r\n  {\r\n    icon: faMinusSquare,\r\n    name: \"faMinusSquare\",\r\n  },\r\n  {\r\n    icon: faMitten,\r\n    name: \"faMitten\",\r\n  },\r\n  {\r\n    icon: faMobile,\r\n    name: \"faMobile\",\r\n  },\r\n  {\r\n    icon: faMobileAlt,\r\n    name: \"faMobileAlt\",\r\n  },\r\n  {\r\n    icon: faMoneyBill,\r\n    name: \"faMoneyBill\",\r\n  },\r\n  {\r\n    icon: faMoneyBillAlt,\r\n    name: \"faMoneyBillAlt\",\r\n  },\r\n  {\r\n    icon: faMoneyBillWave,\r\n    name: \"faMoneyBillWave\",\r\n  },\r\n  {\r\n    icon: faMoneyBillWaveAlt,\r\n    name: \"faMoneyBillWaveAlt\",\r\n  },\r\n  {\r\n    icon: faMoneyCheck,\r\n    name: \"faMoneyCheck\",\r\n  },\r\n  {\r\n    icon: faMoneyCheckAlt,\r\n    name: \"faMoneyCheckAlt\",\r\n  },\r\n  {\r\n    icon: faMonument,\r\n    name: \"faMonument\",\r\n  },\r\n  {\r\n    icon: faMoon,\r\n    name: \"faMoon\",\r\n  },\r\n  {\r\n    icon: faMortarPestle,\r\n    name: \"faMortarPestle\",\r\n  },\r\n  {\r\n    icon: faMosque,\r\n    name: \"faMosque\",\r\n  },\r\n  {\r\n    icon: faMotorcycle,\r\n    name: \"faMotorcycle\",\r\n  },\r\n  {\r\n    icon: faMountain,\r\n    name: \"faMountain\",\r\n  },\r\n  {\r\n    icon: faMousePointer,\r\n    name: \"faMousePointer\",\r\n  },\r\n  {\r\n    icon: faMugHot,\r\n    name: \"faMugHot\",\r\n  },\r\n  {\r\n    icon: faMusic,\r\n    name: \"faMusic\",\r\n  },\r\n  {\r\n    icon: faNetworkWired,\r\n    name: \"faNetworkWired\",\r\n  },\r\n  {\r\n    icon: faNeuter,\r\n    name: \"faNeuter\",\r\n  },\r\n  {\r\n    icon: faNewspaper,\r\n    name: \"faNewspaper\",\r\n  },\r\n  {\r\n    icon: faNotEqual,\r\n    name: \"faNotEqual\",\r\n  },\r\n  {\r\n    icon: faNotesMedical,\r\n    name: \"faNotesMedical\",\r\n  },\r\n  {\r\n    icon: faObjectGroup,\r\n    name: \"faObjectGroup\",\r\n  },\r\n  {\r\n    icon: faObjectUngroup,\r\n    name: \"faObjectUngroup\",\r\n  },\r\n  {\r\n    icon: faOilCan,\r\n    name: \"faOilCan\",\r\n  },\r\n  {\r\n    icon: faOm,\r\n    name: \"faOm\",\r\n  },\r\n  {\r\n    icon: faOtter,\r\n    name: \"faOtter\",\r\n  },\r\n  {\r\n    icon: faOutdent,\r\n    name: \"faOutdent\",\r\n  },\r\n  {\r\n    icon: faPager,\r\n    name: \"faPager\",\r\n  },\r\n  {\r\n    icon: faPaintBrush,\r\n    name: \"faPaintBrush\",\r\n  },\r\n  {\r\n    icon: faPaintRoller,\r\n    name: \"faPaintRoller\",\r\n  },\r\n  {\r\n    icon: faPalette,\r\n    name: \"faPalette\",\r\n  },\r\n  {\r\n    icon: faPallet,\r\n    name: \"faPallet\",\r\n  },\r\n  {\r\n    icon: faPaperPlane,\r\n    name: \"faPaperPlane\",\r\n  },\r\n  {\r\n    icon: faPaperclip,\r\n    name: \"faPaperclip\",\r\n  },\r\n  {\r\n    icon: faParachuteBox,\r\n    name: \"faParachuteBox\",\r\n  },\r\n  {\r\n    icon: faParagraph,\r\n    name: \"faParagraph\",\r\n  },\r\n  {\r\n    icon: faParking,\r\n    name: \"faParking\",\r\n  },\r\n  {\r\n    icon: faPassport,\r\n    name: \"faPassport\",\r\n  },\r\n  {\r\n    icon: faPastafarianism,\r\n    name: \"faPastafarianism\",\r\n  },\r\n  {\r\n    icon: faPaste,\r\n    name: \"faPaste\",\r\n  },\r\n  {\r\n    icon: faPause,\r\n    name: \"faPause\",\r\n  },\r\n  {\r\n    icon: faPauseCircle,\r\n    name: \"faPauseCircle\",\r\n  },\r\n  {\r\n    icon: faPaw,\r\n    name: \"faPaw\",\r\n  },\r\n  {\r\n    icon: faPeace,\r\n    name: \"faPeace\",\r\n  },\r\n  {\r\n    icon: faPen,\r\n    name: \"faPen\",\r\n  },\r\n  {\r\n    icon: faPenAlt,\r\n    name: \"faPenAlt\",\r\n  },\r\n  {\r\n    icon: faPenFancy,\r\n    name: \"faPenFancy\",\r\n  },\r\n  {\r\n    icon: faPenNib,\r\n    name: \"faPenNib\",\r\n  },\r\n  {\r\n    icon: faPenSquare,\r\n    name: \"faPenSquare\",\r\n  },\r\n  {\r\n    icon: faPencilAlt,\r\n    name: \"faPencilAlt\",\r\n  },\r\n  {\r\n    icon: faPencilRuler,\r\n    name: \"faPencilRuler\",\r\n  },\r\n  {\r\n    icon: faPeopleCarry,\r\n    name: \"faPeopleCarry\",\r\n  },\r\n  {\r\n    icon: faPepperHot,\r\n    name: \"faPepperHot\",\r\n  },\r\n  {\r\n    icon: faPercent,\r\n    name: \"faPercent\",\r\n  },\r\n  {\r\n    icon: faPercentage,\r\n    name: \"faPercentage\",\r\n  },\r\n  {\r\n    icon: faPersonBooth,\r\n    name: \"faPersonBooth\",\r\n  },\r\n  {\r\n    icon: faPhone,\r\n    name: \"faPhone\",\r\n  },\r\n  {\r\n    icon: faPhoneSlash,\r\n    name: \"faPhoneSlash\",\r\n  },\r\n  {\r\n    icon: faPhoneSquare,\r\n    name: \"faPhoneSquare\",\r\n  },\r\n  {\r\n    icon: faPhoneVolume,\r\n    name: \"faPhoneVolume\",\r\n  },\r\n  {\r\n    icon: faPiggyBank,\r\n    name: \"faPiggyBank\",\r\n  },\r\n  {\r\n    icon: faPills,\r\n    name: \"faPills\",\r\n  },\r\n  {\r\n    icon: faPizzaSlice,\r\n    name: \"faPizzaSlice\",\r\n  },\r\n  {\r\n    icon: faPlaceOfWorship,\r\n    name: \"faPlaceOfWorship\",\r\n  },\r\n  {\r\n    icon: faPlane,\r\n    name: \"faPlane\",\r\n  },\r\n  {\r\n    icon: faPlaneArrival,\r\n    name: \"faPlaneArrival\",\r\n  },\r\n  {\r\n    icon: faPlaneDeparture,\r\n    name: \"faPlaneDeparture\",\r\n  },\r\n  {\r\n    icon: faPlay,\r\n    name: \"faPlay\",\r\n  },\r\n  {\r\n    icon: faPlayCircle,\r\n    name: \"faPlayCircle\",\r\n  },\r\n  {\r\n    icon: faPlug,\r\n    name: \"faPlug\",\r\n  },\r\n  {\r\n    icon: faPlus,\r\n    name: \"faPlus\",\r\n  },\r\n  {\r\n    icon: faPlusCircle,\r\n    name: \"faPlusCircle\",\r\n  },\r\n  {\r\n    icon: faPlusSquare,\r\n    name: \"faPlusSquare\",\r\n  },\r\n  {\r\n    icon: faPodcast,\r\n    name: \"faPodcast\",\r\n  },\r\n  {\r\n    icon: faPoll,\r\n    name: \"faPoll\",\r\n  },\r\n  {\r\n    icon: faPollH,\r\n    name: \"faPollH\",\r\n  },\r\n  {\r\n    icon: faPoo,\r\n    name: \"faPoo\",\r\n  },\r\n  {\r\n    icon: faPooStorm,\r\n    name: \"faPooStorm\",\r\n  },\r\n  {\r\n    icon: faPoop,\r\n    name: \"faPoop\",\r\n  },\r\n  {\r\n    icon: faPortrait,\r\n    name: \"faPortrait\",\r\n  },\r\n  {\r\n    icon: faPoundSign,\r\n    name: \"faPoundSign\",\r\n  },\r\n  {\r\n    icon: faPowerOff,\r\n    name: \"faPowerOff\",\r\n  },\r\n  {\r\n    icon: faPray,\r\n    name: \"faPray\",\r\n  },\r\n  {\r\n    icon: faPrayingHands,\r\n    name: \"faPrayingHands\",\r\n  },\r\n  {\r\n    icon: faPrescription,\r\n    name: \"faPrescription\",\r\n  },\r\n  {\r\n    icon: faPrescriptionBottle,\r\n    name: \"faPrescriptionBottle\",\r\n  },\r\n  {\r\n    icon: faPrescriptionBottleAlt,\r\n    name: \"faPrescriptionBottleAlt\",\r\n  },\r\n  {\r\n    icon: faPrint,\r\n    name: \"faPrint\",\r\n  },\r\n  {\r\n    icon: faProcedures,\r\n    name: \"faProcedures\",\r\n  },\r\n  {\r\n    icon: faProjectDiagram,\r\n    name: \"faProjectDiagram\",\r\n  },\r\n  {\r\n    icon: faPuzzlePiece,\r\n    name: \"faPuzzlePiece\",\r\n  },\r\n  {\r\n    icon: faQrcode,\r\n    name: \"faQrcode\",\r\n  },\r\n  {\r\n    icon: faQuestion,\r\n    name: \"faQuestion\",\r\n  },\r\n  {\r\n    icon: faQuestionCircle,\r\n    name: \"faQuestionCircle\",\r\n  },\r\n  {\r\n    icon: faQuidditch,\r\n    name: \"faQuidditch\",\r\n  },\r\n  {\r\n    icon: faQuoteLeft,\r\n    name: \"faQuoteLeft\",\r\n  },\r\n  {\r\n    icon: faQuoteRight,\r\n    name: \"faQuoteRight\",\r\n  },\r\n  {\r\n    icon: faQuran,\r\n    name: \"faQuran\",\r\n  },\r\n  {\r\n    icon: faRadiation,\r\n    name: \"faRadiation\",\r\n  },\r\n  {\r\n    icon: faRadiationAlt,\r\n    name: \"faRadiationAlt\",\r\n  },\r\n  {\r\n    icon: faRainbow,\r\n    name: \"faRainbow\",\r\n  },\r\n  {\r\n    icon: faRandom,\r\n    name: \"faRandom\",\r\n  },\r\n  {\r\n    icon: faReceipt,\r\n    name: \"faReceipt\",\r\n  },\r\n  {\r\n    icon: faRecycle,\r\n    name: \"faRecycle\",\r\n  },\r\n  {\r\n    icon: faRedo,\r\n    name: \"faRedo\",\r\n  },\r\n  {\r\n    icon: faRedoAlt,\r\n    name: \"faRedoAlt\",\r\n  },\r\n  {\r\n    icon: faRegistered,\r\n    name: \"faRegistered\",\r\n  },\r\n  {\r\n    icon: faReply,\r\n    name: \"faReply\",\r\n  },\r\n  {\r\n    icon: faReplyAll,\r\n    name: \"faReplyAll\",\r\n  },\r\n  {\r\n    icon: faRepublican,\r\n    name: \"faRepublican\",\r\n  },\r\n  {\r\n    icon: faRestroom,\r\n    name: \"faRestroom\",\r\n  },\r\n  {\r\n    icon: faRetweet,\r\n    name: \"faRetweet\",\r\n  },\r\n  {\r\n    icon: faRibbon,\r\n    name: \"faRibbon\",\r\n  },\r\n  {\r\n    icon: faRing,\r\n    name: \"faRing\",\r\n  },\r\n  {\r\n    icon: faRoad,\r\n    name: \"faRoad\",\r\n  },\r\n  {\r\n    icon: faRobot,\r\n    name: \"faRobot\",\r\n  },\r\n  {\r\n    icon: faRocket,\r\n    name: \"faRocket\",\r\n  },\r\n  {\r\n    icon: faRoute,\r\n    name: \"faRoute\",\r\n  },\r\n  {\r\n    icon: faRss,\r\n    name: \"faRss\",\r\n  },\r\n  {\r\n    icon: faRssSquare,\r\n    name: \"faRssSquare\",\r\n  },\r\n  {\r\n    icon: faRubleSign,\r\n    name: \"faRubleSign\",\r\n  },\r\n  {\r\n    icon: faRuler,\r\n    name: \"faRuler\",\r\n  },\r\n  {\r\n    icon: faRulerCombined,\r\n    name: \"faRulerCombined\",\r\n  },\r\n  {\r\n    icon: faRulerHorizontal,\r\n    name: \"faRulerHorizontal\",\r\n  },\r\n  {\r\n    icon: faRulerVertical,\r\n    name: \"faRulerVertical\",\r\n  },\r\n  {\r\n    icon: faRunning,\r\n    name: \"faRunning\",\r\n  },\r\n  {\r\n    icon: faRupeeSign,\r\n    name: \"faRupeeSign\",\r\n  },\r\n  {\r\n    icon: faSadCry,\r\n    name: \"faSadCry\",\r\n  },\r\n  {\r\n    icon: faSadTear,\r\n    name: \"faSadTear\",\r\n  },\r\n  {\r\n    icon: faSatellite,\r\n    name: \"faSatellite\",\r\n  },\r\n  {\r\n    icon: faSatelliteDish,\r\n    name: \"faSatelliteDish\",\r\n  },\r\n  {\r\n    icon: faSave,\r\n    name: \"faSave\",\r\n  },\r\n  {\r\n    icon: faSchool,\r\n    name: \"faSchool\",\r\n  },\r\n  {\r\n    icon: faScrewdriver,\r\n    name: \"faScrewdriver\",\r\n  },\r\n  {\r\n    icon: faScroll,\r\n    name: \"faScroll\",\r\n  },\r\n  {\r\n    icon: faSdCard,\r\n    name: \"faSdCard\",\r\n  },\r\n  {\r\n    icon: faSearch,\r\n    name: \"faSearch\",\r\n  },\r\n  {\r\n    icon: faSearchDollar,\r\n    name: \"faSearchDollar\",\r\n  },\r\n  {\r\n    icon: faSearchLocation,\r\n    name: \"faSearchLocation\",\r\n  },\r\n  {\r\n    icon: faSearchMinus,\r\n    name: \"faSearchMinus\",\r\n  },\r\n  {\r\n    icon: faSearchPlus,\r\n    name: \"faSearchPlus\",\r\n  },\r\n  {\r\n    icon: faSeedling,\r\n    name: \"faSeedling\",\r\n  },\r\n  {\r\n    icon: faServer,\r\n    name: \"faServer\",\r\n  },\r\n  {\r\n    icon: faShapes,\r\n    name: \"faShapes\",\r\n  },\r\n  {\r\n    icon: faShare,\r\n    name: \"faShare\",\r\n  },\r\n  {\r\n    icon: faShareAlt,\r\n    name: \"faShareAlt\",\r\n  },\r\n  {\r\n    icon: faShareAltSquare,\r\n    name: \"faShareAltSquare\",\r\n  },\r\n  {\r\n    icon: faShareSquare,\r\n    name: \"faShareSquare\",\r\n  },\r\n  {\r\n    icon: faShekelSign,\r\n    name: \"faShekelSign\",\r\n  },\r\n  {\r\n    icon: faShieldAlt,\r\n    name: \"faShieldAlt\",\r\n  },\r\n  {\r\n    icon: faShip,\r\n    name: \"faShip\",\r\n  },\r\n  {\r\n    icon: faShippingFast,\r\n    name: \"faShippingFast\",\r\n  },\r\n  {\r\n    icon: faShoePrints,\r\n    name: \"faShoePrints\",\r\n  },\r\n  {\r\n    icon: faShoppingBag,\r\n    name: \"faShoppingBag\",\r\n  },\r\n  {\r\n    icon: faShoppingBasket,\r\n    name: \"faShoppingBasket\",\r\n  },\r\n  {\r\n    icon: faShoppingCart,\r\n    name: \"faShoppingCart\",\r\n  },\r\n  {\r\n    icon: faShower,\r\n    name: \"faShower\",\r\n  },\r\n  {\r\n    icon: faShuttleVan,\r\n    name: \"faShuttleVan\",\r\n  },\r\n  {\r\n    icon: faSign,\r\n    name: \"faSign\",\r\n  },\r\n  {\r\n    icon: faSignInAlt,\r\n    name: \"faSignInAlt\",\r\n  },\r\n  {\r\n    icon: faSignLanguage,\r\n    name: \"faSignLanguage\",\r\n  },\r\n  {\r\n    icon: faSignOutAlt,\r\n    name: \"faSignOutAlt\",\r\n  },\r\n  {\r\n    icon: faSignal,\r\n    name: \"faSignal\",\r\n  },\r\n  {\r\n    icon: faSignature,\r\n    name: \"faSignature\",\r\n  },\r\n  {\r\n    icon: faSimCard,\r\n    name: \"faSimCard\",\r\n  },\r\n  {\r\n    icon: faSitemap,\r\n    name: \"faSitemap\",\r\n  },\r\n  {\r\n    icon: faSkating,\r\n    name: \"faSkating\",\r\n  },\r\n  {\r\n    icon: faSkiing,\r\n    name: \"faSkiing\",\r\n  },\r\n  {\r\n    icon: faSkiingNordic,\r\n    name: \"faSkiingNordic\",\r\n  },\r\n  {\r\n    icon: faSkull,\r\n    name: \"faSkull\",\r\n  },\r\n  {\r\n    icon: faSkullCrossbones,\r\n    name: \"faSkullCrossbones\",\r\n  },\r\n  {\r\n    icon: faSlash,\r\n    name: \"faSlash\",\r\n  },\r\n  {\r\n    icon: faSleigh,\r\n    name: \"faSleigh\",\r\n  },\r\n  {\r\n    icon: faSlidersH,\r\n    name: \"faSlidersH\",\r\n  },\r\n  {\r\n    icon: faSmile,\r\n    name: \"faSmile\",\r\n  },\r\n  {\r\n    icon: faSmileBeam,\r\n    name: \"faSmileBeam\",\r\n  },\r\n  {\r\n    icon: faSmileWink,\r\n    name: \"faSmileWink\",\r\n  },\r\n  {\r\n    icon: faSmog,\r\n    name: \"faSmog\",\r\n  },\r\n  {\r\n    icon: faSmoking,\r\n    name: \"faSmoking\",\r\n  },\r\n  {\r\n    icon: faSmokingBan,\r\n    name: \"faSmokingBan\",\r\n  },\r\n  {\r\n    icon: faSms,\r\n    name: \"faSms\",\r\n  },\r\n  {\r\n    icon: faSnowboarding,\r\n    name: \"faSnowboarding\",\r\n  },\r\n  {\r\n    icon: faSnowflake,\r\n    name: \"faSnowflake\",\r\n  },\r\n  {\r\n    icon: faSnowman,\r\n    name: \"faSnowman\",\r\n  },\r\n  {\r\n    icon: faSnowplow,\r\n    name: \"faSnowplow\",\r\n  },\r\n  {\r\n    icon: faSocks,\r\n    name: \"faSocks\",\r\n  },\r\n  {\r\n    icon: faSolarPanel,\r\n    name: \"faSolarPanel\",\r\n  },\r\n  {\r\n    icon: faSort,\r\n    name: \"faSort\",\r\n  },\r\n  {\r\n    icon: faSortAlphaDown,\r\n    name: \"faSortAlphaDown\",\r\n  },\r\n  {\r\n    icon: faSortAlphaUp,\r\n    name: \"faSortAlphaUp\",\r\n  },\r\n  {\r\n    icon: faSortAmountDown,\r\n    name: \"faSortAmountDown\",\r\n  },\r\n  {\r\n    icon: faSortAmountUp,\r\n    name: \"faSortAmountUp\",\r\n  },\r\n  {\r\n    icon: faSortDown,\r\n    name: \"faSortDown\",\r\n  },\r\n  {\r\n    icon: faSortNumericDown,\r\n    name: \"faSortNumericDown\",\r\n  },\r\n  {\r\n    icon: faSortNumericUp,\r\n    name: \"faSortNumericUp\",\r\n  },\r\n  {\r\n    icon: faSortUp,\r\n    name: \"faSortUp\",\r\n  },\r\n  {\r\n    icon: faSpa,\r\n    name: \"faSpa\",\r\n  },\r\n  {\r\n    icon: faSpaceShuttle,\r\n    name: \"faSpaceShuttle\",\r\n  },\r\n  {\r\n    icon: faSpider,\r\n    name: \"faSpider\",\r\n  },\r\n  {\r\n    icon: faSpinner,\r\n    name: \"faSpinner\",\r\n  },\r\n  {\r\n    icon: faSplotch,\r\n    name: \"faSplotch\",\r\n  },\r\n  {\r\n    icon: faSprayCan,\r\n    name: \"faSprayCan\",\r\n  },\r\n  {\r\n    icon: faSquare,\r\n    name: \"faSquare\",\r\n  },\r\n  {\r\n    icon: faSquareFull,\r\n    name: \"faSquareFull\",\r\n  },\r\n  {\r\n    icon: faSquareRootAlt,\r\n    name: \"faSquareRootAlt\",\r\n  },\r\n  {\r\n    icon: faStamp,\r\n    name: \"faStamp\",\r\n  },\r\n  {\r\n    icon: faStar,\r\n    name: \"faStar\",\r\n  },\r\n  {\r\n    icon: faStarAndCrescent,\r\n    name: \"faStarAndCrescent\",\r\n  },\r\n  {\r\n    icon: faStarHalf,\r\n    name: \"faStarHalf\",\r\n  },\r\n  {\r\n    icon: faStarHalfAlt,\r\n    name: \"faStarHalfAlt\",\r\n  },\r\n  {\r\n    icon: faStarOfDavid,\r\n    name: \"faStarOfDavid\",\r\n  },\r\n  {\r\n    icon: faStarOfLife,\r\n    name: \"faStarOfLife\",\r\n  },\r\n  {\r\n    icon: faStepBackward,\r\n    name: \"faStepBackward\",\r\n  },\r\n  {\r\n    icon: faStepForward,\r\n    name: \"faStepForward\",\r\n  },\r\n  {\r\n    icon: faStethoscope,\r\n    name: \"faStethoscope\",\r\n  },\r\n  {\r\n    icon: faStickyNote,\r\n    name: \"faStickyNote\",\r\n  },\r\n  {\r\n    icon: faStop,\r\n    name: \"faStop\",\r\n  },\r\n  {\r\n    icon: faStopCircle,\r\n    name: \"faStopCircle\",\r\n  },\r\n  {\r\n    icon: faStopwatch,\r\n    name: \"faStopwatch\",\r\n  },\r\n  {\r\n    icon: faStore,\r\n    name: \"faStore\",\r\n  },\r\n  {\r\n    icon: faStoreAlt,\r\n    name: \"faStoreAlt\",\r\n  },\r\n  {\r\n    icon: faStream,\r\n    name: \"faStream\",\r\n  },\r\n  {\r\n    icon: faStreetView,\r\n    name: \"faStreetView\",\r\n  },\r\n  {\r\n    icon: faStrikethrough,\r\n    name: \"faStrikethrough\",\r\n  },\r\n  {\r\n    icon: faStroopwafel,\r\n    name: \"faStroopwafel\",\r\n  },\r\n  {\r\n    icon: faSubscript,\r\n    name: \"faSubscript\",\r\n  },\r\n  {\r\n    icon: faSubway,\r\n    name: \"faSubway\",\r\n  },\r\n  {\r\n    icon: faSuitcase,\r\n    name: \"faSuitcase\",\r\n  },\r\n  {\r\n    icon: faSuitcaseRolling,\r\n    name: \"faSuitcaseRolling\",\r\n  },\r\n  {\r\n    icon: faSun,\r\n    name: \"faSun\",\r\n  },\r\n  {\r\n    icon: faSuperscript,\r\n    name: \"faSuperscript\",\r\n  },\r\n  {\r\n    icon: faSurprise,\r\n    name: \"faSurprise\",\r\n  },\r\n  {\r\n    icon: faSwatchbook,\r\n    name: \"faSwatchbook\",\r\n  },\r\n  {\r\n    icon: faSwimmer,\r\n    name: \"faSwimmer\",\r\n  },\r\n  {\r\n    icon: faSwimmingPool,\r\n    name: \"faSwimmingPool\",\r\n  },\r\n  {\r\n    icon: faSynagogue,\r\n    name: \"faSynagogue\",\r\n  },\r\n  {\r\n    icon: faSync,\r\n    name: \"faSync\",\r\n  },\r\n  {\r\n    icon: faSyncAlt,\r\n    name: \"faSyncAlt\",\r\n  },\r\n  {\r\n    icon: faSyringe,\r\n    name: \"faSyringe\",\r\n  },\r\n  {\r\n    icon: faTable,\r\n    name: \"faTable\",\r\n  },\r\n  {\r\n    icon: faTableTennis,\r\n    name: \"faTableTennis\",\r\n  },\r\n  {\r\n    icon: faTablet,\r\n    name: \"faTablet\",\r\n  },\r\n  {\r\n    icon: faTabletAlt,\r\n    name: \"faTabletAlt\",\r\n  },\r\n  {\r\n    icon: faTablets,\r\n    name: \"faTablets\",\r\n  },\r\n  {\r\n    icon: faTachometerAlt,\r\n    name: \"faTachometerAlt\",\r\n  },\r\n  {\r\n    icon: faTag,\r\n    name: \"faTag\",\r\n  },\r\n  {\r\n    icon: faTags,\r\n    name: \"faTags\",\r\n  },\r\n  {\r\n    icon: faTape,\r\n    name: \"faTape\",\r\n  },\r\n  {\r\n    icon: faTasks,\r\n    name: \"faTasks\",\r\n  },\r\n  {\r\n    icon: faTaxi,\r\n    name: \"faTaxi\",\r\n  },\r\n  {\r\n    icon: faTeeth,\r\n    name: \"faTeeth\",\r\n  },\r\n  {\r\n    icon: faTeethOpen,\r\n    name: \"faTeethOpen\",\r\n  },\r\n  {\r\n    icon: faTemperatureHigh,\r\n    name: \"faTemperatureHigh\",\r\n  },\r\n  {\r\n    icon: faTemperatureLow,\r\n    name: \"faTemperatureLow\",\r\n  },\r\n  {\r\n    icon: faTenge,\r\n    name: \"faTenge\",\r\n  },\r\n  {\r\n    icon: faTerminal,\r\n    name: \"faTerminal\",\r\n  },\r\n  {\r\n    icon: faTextHeight,\r\n    name: \"faTextHeight\",\r\n  },\r\n  {\r\n    icon: faTextWidth,\r\n    name: \"faTextWidth\",\r\n  },\r\n  {\r\n    icon: faTh,\r\n    name: \"faTh\",\r\n  },\r\n  {\r\n    icon: faThLarge,\r\n    name: \"faThLarge\",\r\n  },\r\n  {\r\n    icon: faThList,\r\n    name: \"faThList\",\r\n  },\r\n  {\r\n    icon: faTheaterMasks,\r\n    name: \"faTheaterMasks\",\r\n  },\r\n  {\r\n    icon: faThermometer,\r\n    name: \"faThermometer\",\r\n  },\r\n  {\r\n    icon: faThermometerEmpty,\r\n    name: \"faThermometerEmpty\",\r\n  },\r\n  {\r\n    icon: faThermometerFull,\r\n    name: \"faThermometerFull\",\r\n  },\r\n  {\r\n    icon: faThermometerHalf,\r\n    name: \"faThermometerHalf\",\r\n  },\r\n  {\r\n    icon: faThermometerQuarter,\r\n    name: \"faThermometerQuarter\",\r\n  },\r\n  {\r\n    icon: faThermometerThreeQuarters,\r\n    name: \"faThermometerThreeQuarters\",\r\n  },\r\n  {\r\n    icon: faThumbsDown,\r\n    name: \"faThumbsDown\",\r\n  },\r\n  {\r\n    icon: faThumbsUp,\r\n    name: \"faThumbsUp\",\r\n  },\r\n  {\r\n    icon: faThumbtack,\r\n    name: \"faThumbtack\",\r\n  },\r\n  {\r\n    icon: faTicketAlt,\r\n    name: \"faTicketAlt\",\r\n  },\r\n  {\r\n    icon: faTimes,\r\n    name: \"faTimes\",\r\n  },\r\n  {\r\n    icon: faTimesCircle,\r\n    name: \"faTimesCircle\",\r\n  },\r\n  {\r\n    icon: faTint,\r\n    name: \"faTint\",\r\n  },\r\n  {\r\n    icon: faTintSlash,\r\n    name: \"faTintSlash\",\r\n  },\r\n  {\r\n    icon: faTired,\r\n    name: \"faTired\",\r\n  },\r\n  {\r\n    icon: faToggleOff,\r\n    name: \"faToggleOff\",\r\n  },\r\n  {\r\n    icon: faToggleOn,\r\n    name: \"faToggleOn\",\r\n  },\r\n  {\r\n    icon: faToilet,\r\n    name: \"faToilet\",\r\n  },\r\n  {\r\n    icon: faToiletPaper,\r\n    name: \"faToiletPaper\",\r\n  },\r\n  {\r\n    icon: faToolbox,\r\n    name: \"faToolbox\",\r\n  },\r\n  {\r\n    icon: faTools,\r\n    name: \"faTools\",\r\n  },\r\n  {\r\n    icon: faTooth,\r\n    name: \"faTooth\",\r\n  },\r\n  {\r\n    icon: faTorah,\r\n    name: \"faTorah\",\r\n  },\r\n  {\r\n    icon: faToriiGate,\r\n    name: \"faToriiGate\",\r\n  },\r\n  {\r\n    icon: faTractor,\r\n    name: \"faTractor\",\r\n  },\r\n  {\r\n    icon: faTrademark,\r\n    name: \"faTrademark\",\r\n  },\r\n  {\r\n    icon: faTrafficLight,\r\n    name: \"faTrafficLight\",\r\n  },\r\n  {\r\n    icon: faTrain,\r\n    name: \"faTrain\",\r\n  },\r\n  {\r\n    icon: faTram,\r\n    name: \"faTram\",\r\n  },\r\n  {\r\n    icon: faTransgender,\r\n    name: \"faTransgender\",\r\n  },\r\n  {\r\n    icon: faTransgenderAlt,\r\n    name: \"faTransgenderAlt\",\r\n  },\r\n  {\r\n    icon: faTrash,\r\n    name: \"faTrash\",\r\n  },\r\n  {\r\n    icon: faTrashAlt,\r\n    name: \"faTrashAlt\",\r\n  },\r\n  {\r\n    icon: faTrashRestore,\r\n    name: \"faTrashRestore\",\r\n  },\r\n  {\r\n    icon: faTrashRestoreAlt,\r\n    name: \"faTrashRestoreAlt\",\r\n  },\r\n  {\r\n    icon: faTree,\r\n    name: \"faTree\",\r\n  },\r\n  {\r\n    icon: faTrophy,\r\n    name: \"faTrophy\",\r\n  },\r\n  {\r\n    icon: faTruck,\r\n    name: \"faTruck\",\r\n  },\r\n  {\r\n    icon: faTruckLoading,\r\n    name: \"faTruckLoading\",\r\n  },\r\n  {\r\n    icon: faTruckMonster,\r\n    name: \"faTruckMonster\",\r\n  },\r\n  {\r\n    icon: faTruckMoving,\r\n    name: \"faTruckMoving\",\r\n  },\r\n  {\r\n    icon: faTruckPickup,\r\n    name: \"faTruckPickup\",\r\n  },\r\n  {\r\n    icon: faTshirt,\r\n    name: \"faTshirt\",\r\n  },\r\n  {\r\n    icon: faTty,\r\n    name: \"faTty\",\r\n  },\r\n  {\r\n    icon: faTv,\r\n    name: \"faTv\",\r\n  },\r\n  {\r\n    icon: faUmbrella,\r\n    name: \"faUmbrella\",\r\n  },\r\n  {\r\n    icon: faUmbrellaBeach,\r\n    name: \"faUmbrellaBeach\",\r\n  },\r\n  {\r\n    icon: faUnderline,\r\n    name: \"faUnderline\",\r\n  },\r\n  {\r\n    icon: faUndo,\r\n    name: \"faUndo\",\r\n  },\r\n  {\r\n    icon: faUndoAlt,\r\n    name: \"faUndoAlt\",\r\n  },\r\n  {\r\n    icon: faUniversalAccess,\r\n    name: \"faUniversalAccess\",\r\n  },\r\n  {\r\n    icon: faUniversity,\r\n    name: \"faUniversity\",\r\n  },\r\n  {\r\n    icon: faUnlink,\r\n    name: \"faUnlink\",\r\n  },\r\n  {\r\n    icon: faUnlock,\r\n    name: \"faUnlock\",\r\n  },\r\n  {\r\n    icon: faUnlockAlt,\r\n    name: \"faUnlockAlt\",\r\n  },\r\n  {\r\n    icon: faUpload,\r\n    name: \"faUpload\",\r\n  },\r\n  {\r\n    icon: faUser,\r\n    name: \"faUser\",\r\n  },\r\n  {\r\n    icon: faUserAlt,\r\n    name: \"faUserAlt\",\r\n  },\r\n  {\r\n    icon: faUserAltSlash,\r\n    name: \"faUserAltSlash\",\r\n  },\r\n  {\r\n    icon: faUserAstronaut,\r\n    name: \"faUserAstronaut\",\r\n  },\r\n  {\r\n    icon: faUserCheck,\r\n    name: \"faUserCheck\",\r\n  },\r\n  {\r\n    icon: faUserCircle,\r\n    name: \"faUserCircle\",\r\n  },\r\n  {\r\n    icon: faUserClock,\r\n    name: \"faUserClock\",\r\n  },\r\n  {\r\n    icon: faUserCog,\r\n    name: \"faUserCog\",\r\n  },\r\n  {\r\n    icon: faUserEdit,\r\n    name: \"faUserEdit\",\r\n  },\r\n  {\r\n    icon: faUserFriends,\r\n    name: \"faUserFriends\",\r\n  },\r\n  {\r\n    icon: faUserGraduate,\r\n    name: \"faUserGraduate\",\r\n  },\r\n  {\r\n    icon: faUserInjured,\r\n    name: \"faUserInjured\",\r\n  },\r\n  {\r\n    icon: faUserLock,\r\n    name: \"faUserLock\",\r\n  },\r\n  {\r\n    icon: faUserMd,\r\n    name: \"faUserMd\",\r\n  },\r\n  {\r\n    icon: faUserMinus,\r\n    name: \"faUserMinus\",\r\n  },\r\n  {\r\n    icon: faUserNinja,\r\n    name: \"faUserNinja\",\r\n  },\r\n  {\r\n    icon: faUserNurse,\r\n    name: \"faUserNurse\",\r\n  },\r\n  {\r\n    icon: faUserPlus,\r\n    name: \"faUserPlus\",\r\n  },\r\n  {\r\n    icon: faUserSecret,\r\n    name: \"faUserSecret\",\r\n  },\r\n  {\r\n    icon: faUserShield,\r\n    name: \"faUserShield\",\r\n  },\r\n  {\r\n    icon: faUserSlash,\r\n    name: \"faUserSlash\",\r\n  },\r\n  {\r\n    icon: faUserTag,\r\n    name: \"faUserTag\",\r\n  },\r\n  {\r\n    icon: faUserTie,\r\n    name: \"faUserTie\",\r\n  },\r\n  {\r\n    icon: faUserTimes,\r\n    name: \"faUserTimes\",\r\n  },\r\n  {\r\n    icon: faUsers,\r\n    name: \"faUsers\",\r\n  },\r\n  {\r\n    icon: faUsersCog,\r\n    name: \"faUsersCog\",\r\n  },\r\n  {\r\n    icon: faUtensilSpoon,\r\n    name: \"faUtensilSpoon\",\r\n  },\r\n  {\r\n    icon: faUtensils,\r\n    name: \"faUtensils\",\r\n  },\r\n  {\r\n    icon: faVectorSquare,\r\n    name: \"faVectorSquare\",\r\n  },\r\n  {\r\n    icon: faVenus,\r\n    name: \"faVenus\",\r\n  },\r\n  {\r\n    icon: faVenusDouble,\r\n    name: \"faVenusDouble\",\r\n  },\r\n  {\r\n    icon: faVenusMars,\r\n    name: \"faVenusMars\",\r\n  },\r\n  {\r\n    icon: faVial,\r\n    name: \"faVial\",\r\n  },\r\n  {\r\n    icon: faVials,\r\n    name: \"faVials\",\r\n  },\r\n  {\r\n    icon: faVideo,\r\n    name: \"faVideo\",\r\n  },\r\n  {\r\n    icon: faVideoSlash,\r\n    name: \"faVideoSlash\",\r\n  },\r\n  {\r\n    icon: faVihara,\r\n    name: \"faVihara\",\r\n  },\r\n  {\r\n    icon: faVolleyballBall,\r\n    name: \"faVolleyballBall\",\r\n  },\r\n  {\r\n    icon: faVolumeDown,\r\n    name: \"faVolumeDown\",\r\n  },\r\n  {\r\n    icon: faVolumeMute,\r\n    name: \"faVolumeMute\",\r\n  },\r\n  {\r\n    icon: faVolumeOff,\r\n    name: \"faVolumeOff\",\r\n  },\r\n  {\r\n    icon: faVolumeUp,\r\n    name: \"faVolumeUp\",\r\n  },\r\n  {\r\n    icon: faVoteYea,\r\n    name: \"faVoteYea\",\r\n  },\r\n  {\r\n    icon: faVrCardboard,\r\n    name: \"faVrCardboard\",\r\n  },\r\n  {\r\n    icon: faWalking,\r\n    name: \"faWalking\",\r\n  },\r\n  {\r\n    icon: faWallet,\r\n    name: \"faWallet\",\r\n  },\r\n  {\r\n    icon: faWarehouse,\r\n    name: \"faWarehouse\",\r\n  },\r\n  {\r\n    icon: faWater,\r\n    name: \"faWater\",\r\n  },\r\n  {\r\n    icon: faWeight,\r\n    name: \"faWeight\",\r\n  },\r\n  {\r\n    icon: faWeightHanging,\r\n    name: \"faWeightHanging\",\r\n  },\r\n  {\r\n    icon: faWheelchair,\r\n    name: \"faWheelchair\",\r\n  },\r\n  {\r\n    icon: faWifi,\r\n    name: \"faWifi\",\r\n  },\r\n  {\r\n    icon: faWind,\r\n    name: \"faWind\",\r\n  },\r\n  {\r\n    icon: faWindowClose,\r\n    name: \"faWindowClose\",\r\n  },\r\n  {\r\n    icon: faWindowMaximize,\r\n    name: \"faWindowMaximize\",\r\n  },\r\n  {\r\n    icon: faWindowMinimize,\r\n    name: \"faWindowMinimize\",\r\n  },\r\n  {\r\n    icon: faWindowRestore,\r\n    name: \"faWindowRestore\",\r\n  },\r\n  {\r\n    icon: faWineBottle,\r\n    name: \"faWineBottle\",\r\n  },\r\n  {\r\n    icon: faWineGlass,\r\n    name: \"faWineGlass\",\r\n  },\r\n  {\r\n    icon: faWineGlassAlt,\r\n    name: \"faWineGlassAlt\",\r\n  },\r\n  {\r\n    icon: faWonSign,\r\n    name: \"faWonSign\",\r\n  },\r\n  {\r\n    icon: faWrench,\r\n    name: \"faWrench\",\r\n  },\r\n  {\r\n    icon: faXRay,\r\n    name: \"faXRay\",\r\n  },\r\n  {\r\n    icon: faYenSign,\r\n    name: \"faYenSign\",\r\n  },\r\n  {\r\n    icon: faYinYang,\r\n    name: \"faYinYang\",\r\n  },\r\n];\r\n\r\nexport default icons;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport {\r\n  Button,\r\n  Card,\r\n  Container,\r\n  Col,\r\n  Row,\r\n  Form,\r\n  InputGroup,\r\n} from \"react-bootstrap\";\r\n\r\nconst schema = Yup.object().shape({\r\n  firstName: Yup.string().required(),\r\n  lastName: Yup.string().required(),\r\n  username: Yup.string().required(),\r\n  city: Yup.string().required(),\r\n  state: Yup.string().required(),\r\n  zip: Yup.string().required(),\r\n});\r\n\r\nconst FormikExample = () => (\r\n  <Card>\r\n    <Card.Header>\r\n      <Card.Title>Formik</Card.Title>\r\n      <h6 className=\"card-subtitle text-muted\">\r\n        Formik example with Yup validation\r\n      </h6>\r\n    </Card.Header>\r\n    <Card.Body>\r\n      <Formik\r\n        validationSchema={schema}\r\n        onSubmit={console.log}\r\n        initialValues={{\r\n          firstName: \"Mark\",\r\n          lastName: \"Otto\",\r\n          username: \"\",\r\n          city: \"\",\r\n          state: \"\",\r\n          zip: \"\",\r\n          terms: false,\r\n        }}\r\n      >\r\n        {({\r\n          handleSubmit,\r\n          handleChange,\r\n          handleBlur,\r\n          values,\r\n          touched,\r\n          isValid,\r\n          errors,\r\n        }) => (\r\n          <Form noValidate onSubmit={handleSubmit}>\r\n            <Row className=\"mb-3\">\r\n              <Form.Group as={Col} md=\"4\" controlId=\"validationFormik01\">\r\n                <Form.Label>First name</Form.Label>\r\n                <Form.Control\r\n                  type=\"text\"\r\n                  name=\"firstName\"\r\n                  value={values.firstName}\r\n                  onChange={handleChange}\r\n                  isValid={touched.firstName && !errors.firstName}\r\n                />\r\n                <Form.Control.Feedback>Looks good!</Form.Control.Feedback>\r\n              </Form.Group>\r\n              <Form.Group as={Col} md=\"4\" controlId=\"validationFormik02\">\r\n                <Form.Label>Last name</Form.Label>\r\n                <Form.Control\r\n                  type=\"text\"\r\n                  name=\"lastName\"\r\n                  value={values.lastName}\r\n                  onChange={handleChange}\r\n                  isValid={touched.lastName && !errors.lastName}\r\n                />\r\n\r\n                <Form.Control.Feedback>Looks good!</Form.Control.Feedback>\r\n              </Form.Group>\r\n              <Form.Group as={Col} md=\"4\" controlId=\"validationFormikUsername\">\r\n                <Form.Label>Username</Form.Label>\r\n                <InputGroup hasValidation>\r\n                  <InputGroup.Text id=\"inputGroupPrepend\">@</InputGroup.Text>\r\n                  <Form.Control\r\n                    type=\"text\"\r\n                    placeholder=\"Username\"\r\n                    aria-describedby=\"inputGroupPrepend\"\r\n                    name=\"username\"\r\n                    value={values.username}\r\n                    onChange={handleChange}\r\n                    isInvalid={!!errors.username}\r\n                  />\r\n                  <Form.Control.Feedback type=\"invalid\">\r\n                    {errors.username}\r\n                  </Form.Control.Feedback>\r\n                </InputGroup>\r\n              </Form.Group>\r\n            </Row>\r\n            <Row className=\"mb-3\">\r\n              <Form.Group as={Col} md=\"6\" controlId=\"validationFormik03\">\r\n                <Form.Label>City</Form.Label>\r\n                <Form.Control\r\n                  type=\"text\"\r\n                  placeholder=\"City\"\r\n                  name=\"city\"\r\n                  value={values.city}\r\n                  onChange={handleChange}\r\n                  isInvalid={!!errors.city}\r\n                />\r\n\r\n                <Form.Control.Feedback type=\"invalid\">\r\n                  {errors.city}\r\n                </Form.Control.Feedback>\r\n              </Form.Group>\r\n              <Form.Group as={Col} md=\"3\" controlId=\"validationFormik04\">\r\n                <Form.Label>State</Form.Label>\r\n                <Form.Control\r\n                  type=\"text\"\r\n                  placeholder=\"State\"\r\n                  name=\"state\"\r\n                  value={values.state}\r\n                  onChange={handleChange}\r\n                  isInvalid={!!errors.state}\r\n                />\r\n                <Form.Control.Feedback type=\"invalid\">\r\n                  {errors.state}\r\n                </Form.Control.Feedback>\r\n              </Form.Group>\r\n              <Form.Group as={Col} md=\"3\" controlId=\"validationFormik05\">\r\n                <Form.Label>Zip</Form.Label>\r\n                <Form.Control\r\n                  type=\"text\"\r\n                  placeholder=\"Zip\"\r\n                  name=\"zip\"\r\n                  value={values.zip}\r\n                  onChange={handleChange}\r\n                  isInvalid={!!errors.zip}\r\n                />\r\n\r\n                <Form.Control.Feedback type=\"invalid\">\r\n                  {errors.zip}\r\n                </Form.Control.Feedback>\r\n              </Form.Group>\r\n            </Row>\r\n            <Button type=\"submit\">Submit form</Button>\r\n          </Form>\r\n        )}\r\n      </Formik>\r\n    </Card.Body>\r\n  </Card>\r\n);\r\n\r\nconst FormikPage = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Formik\" />\r\n    <Container fluid className=\"p-0\">\r\n      <h1 className=\"h3 mb-3\">Formik</h1>\r\n\r\n      <FormikExample />\r\n    </Container>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default FormikPage;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { useTable, useExpanded, TableOptions } from \"react-table\";\r\n\r\nimport { Card, Container, Table } from \"react-bootstrap\";\r\nimport { PlusCircle, MinusCircle } from \"react-feather\";\r\n\r\nimport { tableData, tableColumns } from \"./data\";\r\n\r\nconst RowExpandingTable = (props: TableOptions<Record<string, unknown>>) => {\r\n  const { columns, data } = props;\r\n\r\n  const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n    useTable(\r\n      {\r\n        columns,\r\n        data,\r\n      },\r\n      useExpanded // Use the useExpanded plugin hook\r\n    );\r\n\r\n  return (\r\n    <Card>\r\n      <Card.Header>\r\n        <Card.Title>Row Expanding</Card.Title>\r\n        <h6 className=\"card-subtitle text-muted\">\r\n          Expandable rows by react-table\r\n        </h6>\r\n      </Card.Header>\r\n      <Card.Body>\r\n        <Table striped bordered {...getTableProps()}>\r\n          <thead>\r\n            {headerGroups.map((headerGroup) => (\r\n              <tr {...headerGroup.getHeaderGroupProps()}>\r\n                {headerGroup.headers.map((column) => (\r\n                  <th {...column.getHeaderProps()}>\r\n                    {column.render(\"Header\")}\r\n                  </th>\r\n                ))}\r\n              </tr>\r\n            ))}\r\n          </thead>\r\n          <tbody {...getTableBodyProps()}>\r\n            {rows.map((row, i) => {\r\n              prepareRow(row);\r\n              return (\r\n                <tr {...row.getRowProps()}>\r\n                  {row.cells.map((cell) => {\r\n                    return (\r\n                      <td {...cell.getCellProps()}>{cell.render(\"Cell\")}</td>\r\n                    );\r\n                  })}\r\n                </tr>\r\n              );\r\n            })}\r\n          </tbody>\r\n        </Table>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nconst tableColumnsExpandable = [\r\n  {\r\n    // Build our expander column\r\n    id: \"expander\", // Make sure it has an ID\r\n    Header: ({\r\n      getToggleAllRowsExpandedProps,\r\n      isAllRowsExpanded,\r\n    }: {\r\n      getToggleAllRowsExpandedProps: any;\r\n      isAllRowsExpanded: boolean;\r\n    }) => (\r\n      <span {...getToggleAllRowsExpandedProps()}>\r\n        {isAllRowsExpanded ? (\r\n          <MinusCircle className=\"feather\" />\r\n        ) : (\r\n          <PlusCircle className=\"feather\" />\r\n        )}\r\n      </span>\r\n    ),\r\n    Cell: ({ row }: { row: any }) =>\r\n      // Use the row.canExpand and row.getToggleRowExpandedProps prop getter\r\n      // to build the toggle for expanding a row\r\n      row.canExpand ? (\r\n        <span\r\n          {...row.getToggleRowExpandedProps({\r\n            style: {\r\n              // We can even use the row.depth property\r\n              // and paddingLeft to indicate the depth\r\n              // of the row\r\n              paddingLeft: `${row.depth * 2}rem`,\r\n            },\r\n          })}\r\n        >\r\n          {row.isExpanded ? (\r\n            <MinusCircle className=\"feather\" />\r\n          ) : (\r\n            <PlusCircle className=\"feather\" />\r\n          )}\r\n        </span>\r\n      ) : null,\r\n  },\r\n  ...tableColumns,\r\n];\r\n\r\nconst RowExpanding = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Row Expanding\" />\r\n    <Container fluid className=\"p-0\">\r\n      <h1 className=\"h3 mb-3\">Row Expanding</h1>\r\n\r\n      <RowExpandingTable\r\n        columns={tableColumnsExpandable}\r\n        data={tableData.slice(0, 10)}\r\n      />\r\n    </Container>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default RowExpanding;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport {\r\n  useTable,\r\n  useFilters,\r\n  useGlobalFilter,\r\n  TableOptions,\r\n} from \"react-table\";\r\n\r\nimport { Card, Container, Table, Form } from \"react-bootstrap\";\r\n\r\nimport { tableData } from \"./data\";\r\n\r\n// This is a custom UI for our 'between' or number range\r\n// filter. It uses two number boxes and filters rows to\r\n// ones that have values between the two\r\nfunction NumberRangeColumnFilter({\r\n  column: { filterValue = [], preFilteredRows, setFilter, id },\r\n}: {\r\n  column: any;\r\n}) {\r\n  const [min, max] = React.useMemo(() => {\r\n    let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\r\n    let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\r\n    preFilteredRows.forEach((row: any) => {\r\n      min = Math.min(row.values[id], min);\r\n      max = Math.max(row.values[id], max);\r\n    });\r\n    return [min, max];\r\n  }, [id, preFilteredRows]);\r\n\r\n  return (\r\n    <div className=\"d-flex mt-2\">\r\n      <Form.Control\r\n        value={filterValue[0] || \"\"}\r\n        type=\"number\"\r\n        onChange={(e) => {\r\n          const val = e.target.value;\r\n          setFilter((old = []) => [\r\n            val ? parseInt(val, 10) : undefined,\r\n            old[1],\r\n          ]);\r\n        }}\r\n        placeholder={`Min (${min})`}\r\n        style={{\r\n          width: \"110px\",\r\n        }}\r\n      />\r\n      <span className=\"mx-2 mt-1\">to</span>\r\n      <Form.Control\r\n        value={filterValue[1] || \"\"}\r\n        type=\"number\"\r\n        onChange={(e) => {\r\n          const val = e.target.value;\r\n          setFilter((old = []) => [\r\n            old[0],\r\n            val ? parseInt(val, 10) : undefined,\r\n          ]);\r\n        }}\r\n        placeholder={`Max (${max})`}\r\n        style={{\r\n          width: \"110px\",\r\n        }}\r\n      />\r\n    </div>\r\n  );\r\n}\r\n\r\n// This is a custom filter UI for selecting\r\n// a unique option from a list\r\nfunction SelectColumnFilter({\r\n  column: { filterValue, setFilter, preFilteredRows, id },\r\n}: {\r\n  column: any;\r\n}) {\r\n  // Calculate the options for filtering\r\n  // using the preFilteredRows\r\n  const options = React.useMemo(() => {\r\n    const options = new Set();\r\n    preFilteredRows.forEach((row: any) => {\r\n      options.add(row.values[id]);\r\n    });\r\n    return [...options.values()];\r\n  }, [id, preFilteredRows]);\r\n\r\n  // Render a multi-select box\r\n  return (\r\n    <Form.Select\r\n      value={filterValue}\r\n      onChange={(e: any) => {\r\n        setFilter(e.target.value || undefined);\r\n      }}\r\n    >\r\n      <option value=\"\">All</option>\r\n      {options.map((option: any, i: any) => (\r\n        <option key={i} value={option}>\r\n          {option}\r\n        </option>\r\n      ))}\r\n    </Form.Select>\r\n  );\r\n}\r\n\r\nfunction DefaultColumnFilter({\r\n  column: { filterValue, preFilteredRows, setFilter },\r\n}: {\r\n  column: any;\r\n}) {\r\n  const count = preFilteredRows.length;\r\n\r\n  return (\r\n    <Form.Control\r\n      value={filterValue || \"\"}\r\n      onChange={(e) => {\r\n        setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\r\n      }}\r\n      placeholder={`Search ${count} records...`}\r\n      className=\"mt-2\"\r\n    />\r\n  );\r\n}\r\n\r\nconst ColumnFilteringTable = (props: TableOptions<Record<string, unknown>>) => {\r\n  const { columns, data } = props;\r\n\r\n  const filterTypes = React.useMemo(\r\n    () => ({\r\n      // Or, override the default text filter to use\r\n      // \"startWith\"\r\n      text: (rows: any, id: any, filterValue: any) => {\r\n        return rows.filter((row: any) => {\r\n          const rowValue = row.values[id];\r\n          return rowValue !== undefined\r\n            ? String(rowValue)\r\n                .toLowerCase()\r\n                .startsWith(String(filterValue).toLowerCase())\r\n            : true;\r\n        });\r\n      },\r\n    }),\r\n    []\r\n  );\r\n\r\n  const defaultColumn = React.useMemo(\r\n    () => ({\r\n      // Let's set up our default Filter UI\r\n      Filter: DefaultColumnFilter,\r\n    }),\r\n    []\r\n  );\r\n\r\n  const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n    useTable(\r\n      {\r\n        columns,\r\n        data,\r\n        defaultColumn, // Be sure to pass the defaultColumn option\r\n        filterTypes,\r\n      },\r\n      useFilters, // useFilters!\r\n      useGlobalFilter // useGlobalFilter!\r\n    );\r\n\r\n  return (\r\n    <Card>\r\n      <Card.Header>\r\n        <Card.Title>Column Filtering</Card.Title>\r\n        <h6 className=\"card-subtitle text-muted\">\r\n          Column filtering by react-table\r\n        </h6>\r\n      </Card.Header>\r\n      <Card.Body>\r\n        <Table striped bordered {...getTableProps()}>\r\n          <thead>\r\n            {headerGroups.map((headerGroup) => (\r\n              <tr {...headerGroup.getHeaderGroupProps()}>\r\n                {headerGroup.headers.map((column) => (\r\n                  <th {...column.getHeaderProps()}>\r\n                    {column.render(\"Header\")}\r\n                    {/* Render the columns filter UI */}\r\n                    <div>\r\n                      {column.canFilter ? column.render(\"Filter\") : null}\r\n                    </div>\r\n                  </th>\r\n                ))}\r\n              </tr>\r\n            ))}\r\n          </thead>\r\n          <tbody {...getTableBodyProps()}>\r\n            {rows.map((row, i) => {\r\n              prepareRow(row);\r\n              return (\r\n                <tr {...row.getRowProps()}>\r\n                  {row.cells.map((cell) => {\r\n                    return (\r\n                      <td {...cell.getCellProps()}>{cell.render(\"Cell\")}</td>\r\n                    );\r\n                  })}\r\n                </tr>\r\n              );\r\n            })}\r\n          </tbody>\r\n        </Table>\r\n      </Card.Body>\r\n    </Card>\r\n  );\r\n};\r\n\r\nconst tableColumns = [\r\n  {\r\n    Header: \"Name\",\r\n    accessor: \"name\",\r\n  },\r\n  {\r\n    Header: \"Position\",\r\n    accessor: \"position\",\r\n    Filter: SelectColumnFilter,\r\n    filter: \"includes\",\r\n  },\r\n  {\r\n    Header: \"Office\",\r\n    accessor: \"office\",\r\n    Filter: SelectColumnFilter,\r\n    filter: \"includes\",\r\n  },\r\n  {\r\n    Header: \"Age\",\r\n    accessor: \"age\",\r\n    Filter: NumberRangeColumnFilter,\r\n    filter: \"between\",\r\n  },\r\n  {\r\n    Header: \"Start Date\",\r\n    accessor: \"startDate\",\r\n  },\r\n  {\r\n    Header: \"Salary\",\r\n    accessor: \"salary\",\r\n    Filter: false,\r\n  },\r\n];\r\n\r\nconst ColumnFiltering = () => (\r\n  <React.Fragment>\r\n    <Helmet title=\"Column Filtering\" />\r\n    <Container fluid className=\"p-0\">\r\n      <h1 className=\"h3 mb-3\">Column Filtering</h1>\r\n\r\n      <ColumnFilteringTable\r\n        columns={tableColumns}\r\n        data={tableData.slice(0, 15)}\r\n      />\r\n    </Container>\r\n  </React.Fragment>\r\n);\r\n\r\nexport default ColumnFiltering;\r\n","import React from \"react\";\r\nimport { Notyf } from \"notyf\";\r\n\r\nexport default React.createContext(\r\n  new Notyf({\r\n    duration: 5000,\r\n    position: {\r\n      x: \"right\",\r\n      y: \"top\",\r\n    },\r\n    types: [\r\n      {\r\n        type: \"default\",\r\n        backgroundColor: \"#3B7DDD\",\r\n        icon: {\r\n          className: \"notyf__icon--success\",\r\n          tagName: \"i\",\r\n        },\r\n      },\r\n      {\r\n        type: \"success\",\r\n        backgroundColor: \"#28a745\",\r\n        icon: {\r\n          className: \"notyf__icon--success\",\r\n          tagName: \"i\",\r\n        },\r\n      },\r\n      {\r\n        type: \"warning\",\r\n        backgroundColor: \"#ffc107\",\r\n        icon: {\r\n          className: \"notyf__icon--error\",\r\n          tagName: \"i\",\r\n        },\r\n      },\r\n      {\r\n        type: \"danger\",\r\n        backgroundColor: \"#dc3545\",\r\n        icon: {\r\n          className: \"notyf__icon--error\",\r\n          tagName: \"i\",\r\n        },\r\n      },\r\n    ],\r\n  })\r\n);\r\n","import React from \"react\";\r\nimport { useRoutes, useNavigate, Navigate } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { HelmetProvider, Helmet } from \"react-helmet-async\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nimport \"../../i18n\";\r\nimport routes from \"./routes\";\r\n\r\nimport { ThemeProvider } from \"./ThemeContext\";\r\nimport { SidebarProvider } from \"../../contexts/SidebarContext\";\r\nimport { LayoutProvider } from \"../../contexts/LayoutContext\";\r\nimport ChartJsDefaults from \"../../utils/ChartJsDefaults\";\r\n\r\nimport { AuthProvider } from \"../../contexts/JWTContext\";\r\n// import { AuthProvider } from \"./contexts/FirebaseAuthContext\";\r\n// import { AuthProvider } from \"./contexts/Auth0Context\";\r\n// import { AuthProvider } from \"./contexts/CognitoContext\";\r\n\r\nconst App = () => {\r\n  const content = useRoutes(routes);\r\n\r\n  return (\r\n    <HelmetProvider>\r\n      <Helmet titleTemplate=\"%s | LEAP Online\" defaultTitle=\"LEAP Online\" />\r\n      <Provider store={store}>\r\n        <ThemeProvider>\r\n          <SidebarProvider>\r\n            <LayoutProvider>\r\n              <ChartJsDefaults />\r\n              <AuthProvider>{content}</AuthProvider>\r\n            </LayoutProvider>\r\n          </SidebarProvider>\r\n        </ThemeProvider>\r\n      </Provider>\r\n    </HelmetProvider>\r\n  );\r\n};\r\n\r\nexport default App;\r\n","import AxiosMockAdapter from \"axios-mock-adapter\";\r\n\r\nimport axios from \"../utils/axios\";\r\n\r\nconst axiosMockAdapter = new AxiosMockAdapter(axios, {\r\n  delayResponse: 0,\r\n});\r\n\r\nexport default axiosMockAdapter;\r\n","import faker from \"faker\";\r\n\r\nimport mock from \"./adapter\";\r\n\r\nimport { User } from \"../types/user\";\r\nimport { verify, sign } from \"../utils/jwt\";\r\n\r\nconst JWT_SECRET = \"super-secret-key\";\r\nconst JWT_EXPIRES_IN = \"3 days\";\r\n\r\nconst users: User[] = [\r\n  {\r\n    id: \"a8553063-7bd5-45ed-adbe-db6f069a3802\",\r\n    displayName: \"Lucy Lavender\",\r\n    email: \"demo@bootlab.io\",\r\n    password: \"unsafepassword\",\r\n    avatar: \"/static/img/avatars/avatar-1.jpg\",\r\n  },\r\n];\r\n\r\nfunction fakeRequest(time: number) {\r\n  return new Promise((res) => setTimeout(res, time));\r\n}\r\n\r\nmock.onPost(\"/api/auth/sign-in\").reply(async (config) => {\r\n  try {\r\n    await fakeRequest(1000);\r\n\r\n    const { email, password } = JSON.parse(config.data);\r\n    const user = users.find((_user) => _user.email === email);\r\n\r\n    if (!user) {\r\n      return [\r\n        400,\r\n        { message: \"There is no user corresponding to the email address.\" },\r\n      ];\r\n    }\r\n\r\n    if (user.password !== password) {\r\n      return [400, { message: \"Incorrect password\" }];\r\n    }\r\n\r\n    const accessToken = sign({ userId: user.id }, JWT_SECRET, {\r\n      expiresIn: JWT_EXPIRES_IN,\r\n    });\r\n\r\n    return [200, { accessToken, user }];\r\n  } catch (error) {\r\n    console.error(error);\r\n    return [500, { message: \"Internal server error\" }];\r\n  }\r\n});\r\n\r\nmock.onPost(\"/api/auth/sign-up\").reply(async (config) => {\r\n  try {\r\n    await fakeRequest(1000);\r\n\r\n    const { email, password, firstName, lastName } = JSON.parse(config.data);\r\n    let user = users.find((_user) => _user.email === email);\r\n\r\n    if (user) {\r\n      return [\r\n        400,\r\n        {\r\n          message:\r\n            \"There already exists an account with the given email address.\",\r\n        },\r\n      ];\r\n    }\r\n\r\n    user = {\r\n      id: faker.datatype.uuid(),\r\n      displayName: `${firstName} ${lastName}`,\r\n      email,\r\n      password,\r\n      avatar: null,\r\n    };\r\n\r\n    const accessToken = sign({ userId: user.id }, JWT_SECRET, {\r\n      expiresIn: JWT_EXPIRES_IN,\r\n    });\r\n\r\n    return [200, { accessToken, user }];\r\n  } catch (error) {\r\n    console.error(error);\r\n    return [500, { message: \"Internal server error\" }];\r\n  }\r\n});\r\n\r\nmock.onGet(\"/api/auth/my-account\").reply((config) => {\r\n  try {\r\n    const { Authorization } = config.headers!;\r\n\r\n    if (!Authorization) {\r\n      return [401, { message: \"Authorization token missing\" }];\r\n    }\r\n\r\n    const accessToken = (Authorization as string).split(\" \")[1];\r\n    const data = verify(accessToken, JWT_SECRET);\r\n    const userId = typeof data === \"object\" ? data?.userId : \"\";\r\n    const user = users.find((_user) => _user.id === userId);\r\n\r\n    if (!user) {\r\n      return [401, { message: \"Invalid authorization token\" }];\r\n    }\r\n\r\n    return [200, { user }];\r\n  } catch (error) {\r\n    console.error(error);\r\n    return [500, { message: \"Internal server error\" }];\r\n  }\r\n});\r\n","const SlimEpaHeader = () => {\r\n  return (\r\n    <header className=\"header\" aria-label=\"Site header\">\r\n      <nav\r\n        className=\"navbar-expand-xl container-fluid container-t4-xl\"\r\n        aria-label=\"Header navigation\"\r\n      >\r\n        <div className=\"header__container\">\r\n          <a href=\"https://www.epa.ie/\" className=\"navbar-logo\">\r\n            <img\r\n              src=\"https://www.epa.ie/media/epa-2020/site-assets/images/logo/epawebnew.svg\"\r\n              alt=\"Environmental Protection Agency Logo\"\r\n            />\r\n          </a>\r\n        </div>\r\n      </nav>\r\n    </header>\r\n  );\r\n};\r\n\r\nexport { SlimEpaHeader };\r\n","const SlimEpaFooter = () => {\r\n  return (\r\n    <footer className=\"footer bg-botticelli\" aria-label=\"Site footer\">\r\n      <div className=\"footer__top\"></div>\r\n      <div className=\"footer__bottom\">\r\n        <div className=\"container-fluid container-t4-lg\">\r\n          <p>\r\n            Copyright{\" \"}\r\n            <a\r\n              className=\"t4Edit-page\"\r\n              href=\"https://epaie-cms01-production.terminalfour.net/terminalfour/page/directEdit#edit/22/en/18872\"\r\n            >\r\n              ©\r\n            </a>{\" \"}\r\n            EPA\r\n            <span className=\"copyright-year\"> 2022</span>\r\n            <script type=\"text/javascript\">\r\n              var year = new\r\n              Date();document.querySelector('.copyright-year').innerHTML =\r\n              year.getFullYear();\r\n            </script>\r\n          </p>\r\n        </div>\r\n      </div>\r\n    </footer>\r\n  );\r\n};\r\n\r\nexport { SlimEpaFooter };\r\n","import \"react-app-polyfill/stable\";\r\n\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\n\r\nimport reportWebVitals from \"./utils/reportWebVitals\";\r\nimport { default as LeapApp } from \"./apps/leap/App\";\r\nimport { default as CircularEconomyApp } from \"./apps/circulareconomy/App\";\r\nimport { default as ThemeApp } from \"./apps/theme/App\";\r\n\r\nimport \"./mocks\";\r\nimport { SlimEpaHeader } from \"./layouts/SlimEpaHeader\";\r\nimport { SlimEpaFooter } from \"./layouts/SlimEpaFooter\";\r\n\r\n// if using \"/docs\" in the pathname, don't use React Router, and serve the server response normally\r\nif (process.env.REACT_APP_NAME === \"leap\") {\r\n  if (window.location.pathname !== \"/docs\") {\r\n    ReactDOM.render(\r\n      <BrowserRouter>\r\n        <SlimEpaHeader />\r\n        <LeapApp />\r\n        <SlimEpaFooter />\r\n      </BrowserRouter>,\r\n      document.getElementById(\"root\")\r\n    );\r\n  }\r\n} else if (process.env.REACT_APP_NAME === \"circulareconomy\") {\r\n  if (window.location.pathname !== \"/docs\") {\r\n    ReactDOM.render(\r\n      <BrowserRouter>\r\n        <SlimEpaHeader />\r\n        <CircularEconomyApp />\r\n        <SlimEpaFooter />\r\n      </BrowserRouter>,\r\n      document.getElementById(\"root\")\r\n    );\r\n  }\r\n} else if (process.env.REACT_APP_NAME === \"theme\") {\r\n  if (window.location.pathname !== \"/docs\") {\r\n    ReactDOM.render(\r\n      <BrowserRouter>\r\n        <SlimEpaHeader />\r\n        <ThemeApp />\r\n        <SlimEpaFooter />\r\n      </BrowserRouter>,\r\n      document.getElementById(\"root\")\r\n    );\r\n  }\r\n}\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}