{"version":3,"sources":["redux/actions/notificationActions.ts","redux/actions/networkInsights/geographyPolygonActions.ts","redux/actions/marketInsights/laneDetailsYearActions.ts","redux/actions/marketInsights/seasonalityActions.ts","services/endpoints.ts","redux/actions/marketInsights/laneSearchActions.ts","services/apiService.ts","redux/actions/truckLoadRate/nationalActions.ts","redux/actions/truckLoadRate/stateRateActions.ts","assets/mockData/tcxAccount.js","redux/actions/truckLoadRate/admin/accountActions.ts","redux/actions/marketInsights/topLanesActions.ts","redux/actions/networkInsights/lanesKeyPerformanceIndicatorsActions.ts","redux/actions/networkInsights/topNetworkLanesActions.ts","redux/actions/truckLoadRate/admin/subscriptionActions.ts","routes/appRouteList.ts","helpers/dataHelpers.ts","components/loaders/spinner.tsx","components/buttons/homeButton.tsx","assets/images/trimble_white.png","redux/actions/marketInsights/rateCalculatorActions.ts","components/headers/trimbleLogo.tsx","components/headers/appHeaderMenuItem.tsx","components/headers/appHeaderMenu.tsx","components/headers/appHeader.tsx","components/loaders/combinedHeaderAndSpinner.tsx","services/authenticationManager.tsx","services/authenticator.tsx","services/authService.ts","services/httpService.ts","assets/theme/muiTrimbleTheme.ts","snackbars/notifier.tsx","components/errors/errorBoundary.tsx","redux/actions/index.ts","components/pages/authentication/login.tsx","components/pages/authentication/callback.tsx","redux/actions/userDetailsActions.ts","components/pages/authentication/authorize.tsx","components/pages/authentication/revoke.tsx","components/errors/notAuthorized.tsx","routes/authenticatedRoute.tsx","routes/privateRoutes.tsx","App.tsx","redux/reducers/userDetailsReducers.ts","redux/reducers/marketInsights/topLanesReducers.ts","redux/reducers/marketInsights/laneDetailsReducers.ts","redux/reducers/marketInsights/laneDetailsYearReducers.ts","redux/reducers/marketInsights/laneSearchReducers.ts","redux/reducers/marketInsights/seasonalityReducers.ts","redux/reducers/marketInsights/topInboundAndOutboundLanesReducers.ts","redux/reducers/notificationReducers.ts","redux/reducers/marketInsights/rateCalculatorReducers.ts","redux/reducers/truckLoadRate/nationalReducers.ts","redux/reducers/truckLoadRate/stateRateReducers.ts","redux/reducers/networkInsights/lanesKeyPerformanceIndicatorsReducers.ts","redux/reducers/networkInsights/topNetworkLanesReducers.ts","redux/reducers/networkInsights/geographyPolygonReducers.ts","redux/reducers/truckLoadRate/processRatesReducers.ts","redux/reducers/truckLoadRate/admin/manageUsersReducers.ts","redux/reducers/truckLoadRate/admin/accountReducers.ts","redux/reducers/truckLoadRate/billingHistoryReducers.ts","redux/reducers/truckLoadRate/admin/subscriptionStatusReducers.ts","redux/reducers/index.ts","redux/store.ts","index.tsx","redux/actions/truckLoadRate/processRatesActions.ts","redux/actions/truckLoadRate/admin/manageUsersActions.ts","redux/actions/marketInsights/laneDetailsActions.ts","helpers/enums.ts","redux/actions/marketInsights/topInboundAndOutboundLanesActions.ts","redux/actions/truckLoadRate/billingHistoryActions.ts"],"names":["ENQUEUE_SNACKBAR","REMOVE_SNACKBAR","enqueueSnackbar","notification","type","Object","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","key","Date","getTime","Math","random","removeSnackbar","GEOGRAPHY_POLYGON_REQUEST","GEOGRAPHY_POLYGON_SUCCESS","GEOGRAPHY_POLYGON_FAILURE","receiveGeographyPolygon","json","payload","fetchGeographyPolygon","inputBody","_ref","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","a","mark","_callee","dispatch","wrap","_context","prev","next","origin_area","destination_area","ApiService","post","Endpoints","geographyPolygons","sent","keys","length","message","variant","SnackbarMessageVariants","Info","t0","Error","stop","_x","apply","this","arguments","LANE_DETAILS_YEAR_REQUEST","LANE_DETAILS_YEAR_SUCCESS","LANE_DETAILS_YEAR_FAILURE","receiveLaneDetailsYear","requestLaneDetailsYearFailed","fetchLaneDetailsYear","searchQuery","months","undefined","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","requestBody","jsonData","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","laneDetails","Array","isArray","data","SEASONALITY_REQUEST","SEASONALITY_SUCCESS","SEASONALITY_FAILURE","receiveSeasonality","requestSeasonalityFailed","fetchSeasonality","query","sortedData","seasonality","sort","b","year","window","tcx_transportationinsights_configs","loginUrl","login_url","authorizeUrl","authorize_url","businessUrl","business_api_url","marketRateInsightsUrl","market_rates_insights_api_url","truckLoadRateUrl","truck_load_rate_api_url","networkUrl","network_api_url","paymentUrl","payment_url","baseApiUrl","base_api_url","tlrSubscriptionModify","tlr_subscription_modify","__webpack_exports__","authorityUrl","concat","issuer","authorizationUrl","tokenUrl","userinfoUrl","jwksUrl","LogoutUri","redirectUrl","endSessionUrl","marketInsightsAuthorizationStatus","locationSearch","rankingArea2area","rankingArea2areaInboundAndOutbound","truckLoadRateAuthorizationStatus","truckLoadRateAdminAuthorizationStatus","allSavedLanes","saveSearchedLane","deleteSavedLane","chartsNationalHaul","chartsStateRate","downloadRateProcessTemplate","verifyProcessRates","submitProcessRates","getProcessRateHistory","downloadProcessedRates","networkAuthorizationStatus","networkLanes","networkLanesKeyPerformanceIndicators","getTCXUsers","createTCXUsers","deleteTCXUser","updateTCXUsers","ttcUserInfo","ttcActivityEndPoint","getBillingHistory","downloadInvoice","tlrSubscriptionStatusEndPoint","SET_ORIGIN","SET_DESTINATION","SET_EQUIPMENT_TYPE","setOrigin","origin","setDestination","destination","setEquipmentType","equipmentType","handleLaneSearch","roles","isTruckLoadRate","fetchLaneDetails","url","postBody","_arguments","useBearerToken","isInterceptorEnabled","response","axios","method","abrupt","put","_arguments2","_callee2","_context2","get","_arguments3","_callee3","_context3","getBlob","_arguments4","_callee4","_context4","responseType","delete","_arguments5","_callee5","_context5","NATIONAL_HAUL_RATES_REQUEST","NATIONAL_HAUL_RATES_SUCCESS","NATIONAL_HAUL_RATES_FAILURE","receiveNationalHaulRates","fetchNationalHaulRates","STATE_RATE_HISTORY_REQUEST","STATE_RATE_HISTORY_SUCCESS","STATE_RATE_HISTORY_FAILURE","receiveStateRateHistory","fetchStateRateHistory","tcxAccount","address","city","state","favourite","id","mi_enabled","name","status","external_reference","tlr","RECEIVE_ACCOUNT","REQUEST_ACCOUNT_FAILED","REQUEST_ACCOUNT","fetchAccount","asyncToGenerator","regenerator_default","account","Promise","resolve","external_ref_parsed","JSON","parse","TOP_LANES_REQUEST","TOP_LANES_SUCCESS","TOP_LANES_FAILURE","receiveTopLanes","fetchTopLanes","topCount","LANES_KEY_PERFORMANCE_INDICATORS_REQUEST","LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS","LANES_KEY_PERFORMANCE_INDICATORS_FAILURE","receiveLanesKeyPerformanceIndicators","fetchLanesKeyPerformanceIndicators","TOP_NETWORK_LANES_REQUEST","TOP_NETWORK_LANES_SUCCESS","TOP_NETWORK_LANES_FAILURE","receiveTopNetworkLanes","fetchTopNetworkLanes","RECEIVE_SUBSCRIPTION_STATUS","REQUEST_SUBSCRIPTION_STATUS_FAILED","REQUEST_SUBSCRIPTION_STATUS","requestSubscriptionStatus","requestSubscriptionCancelationFailed","receiveSubscriptionStatus","fetchSubscriptionStatus","subscriptionStatus","subscriptionUpdateResponseMessage","cancelAutoPay","subscriptionStatusResponse","isBeforeBilling","billingDate","todaysDate","setHours","isBeforeBillingDate","format","parseISO","nextBillingDate","toString","toLocaleDateString","autoPayCanceled","toggleSubscription","_ref2","body","responseMessage","Success","_x2","MarketInsightsDashboard","lazy","all","__webpack_require__","e","then","bind","MarketInsightsLaneDetails","MarketInsightsDataCharts","MarketInsightsProfile","NetworkInsightsGeography","NetworkInsightsShippers","TruckLoadRateDataCharts","TruckLoadRateLaneDetails","TruckLoadRateRateManager","TruckLoadRateAdmin","TruckLoadRateProfile","marketInsightsRoutes","dashboard","dataCharts","profile","networkInsightsRoutes","geography","shippers","truckLoadRateRoutes","rateManager","admin","publicRoutes","root","authorize","revoke","notAuthorized","callback","privateRouteList","appTitle","component","path","menuTitle","menuIcon","mdiFinance","menuPath","allowedRoles","RoleTypes","MarketInsights","mdiChartLine","mdiAccountDetails","mdiGraph","subRoutes","mdiWeb","mdiDolly","mdiDumpTruck","TruckLoadRate","mdiTableCheck","mdiAccountGroup","allowedAppRoles","appRoles","entries","filter","entry","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__","isUserAuthorizedForRoute","allowedRolesForUser","allowedRolesForRoute","some","roleName","indexOf","getAuthorizedRouteList","allAuthorizedRoutes","authorizedAppRoles","forEach","route","push","_route$subRoutes","subRoute","allowedSubRoles","getAuthorizedMenuList","allAuthorizedMenuItems","_route$subRoutes2","allowedSubRoutes","filteredRoute","buildAddressObject","prefix","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__","street","zip","country","buildAreaLabel","areaDisplay","_areaDisplay$split","split","_areaDisplay$split2","_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","buildLaneOriginObject","lane","label","origin_area_display","origin_city","origin_state","origin_postal","buildLaneDestinationObject","destination_area_display","destination_city","destination_state","destination_postal","formatCurrency","amount","decimal","formattedCurrency","Intl","NumberFormat","style","currency","minimumFractionDigits","maximumFractionDigits","formatRevenueRowCurrency","formatNumber","inputNumber","maximumDecimals","minimumDecimals","formattedNumber","formatNumberPercentage","formattedNumberPercentage","formatPositiveNumberNoRounding","decimals","numWithRounding","parseFloat","toFixed","pow","getShortMonthFromDate","inputDate","getYearFromDate","getPercentageDifference","previousAmount","currentAmount","percentageDifferenceVolume","groupBy","objectArray","property","reduce","acc","obj","equipmentTypeOptions","value","EquipmentTypeValues","DryVan","FlatBed","Refrigerated","usaStateOptions","UsaStateCodes","AL","CanadianProvinceCodes","AB","AK","AZ","AR","BC","CA","CO","CT","DE","DC","FL","GA","UsaTerritoryCodes","GU","HI","ID","IL","IN","IA","KS","KY","LA","ME","MB","MD","MA","MI","MN","MS","MO","MT","NE","NV","NB","NH","NJ","NM","NY","NL","NC","ND","NT","NS","NU","OH","OK","ON","OR","PA","PE","QC","RI","SK","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY","YT","getGeographyTableHeaders","selectedReportType","isTableExpanded","tableHeaders","displayText","dataId","selectedTableHeaderList","Volume","NetworkInsightsReportType","AveragePrice","HaulLength","EmptyMiles","EmptyMilesPercent","MilesPerHour","RevenuePerHour","DwellTime","InTransitDelay","selectedReportTypeHeaderName","find","tableHeaderName","toLowerCase","renderRateResultTypeValue","renderSubscriptionTypeValue","stateAbbreviationToFullName","formatStateCity","input","parts","_parts","formattedState","trim","toUpperCase","formattedCity","replace","c","getFullStateName","abbreviation","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","_material_ui_core__WEBPACK_IMPORTED_MODULE_1__","_material_ui_core__WEBPACK_IMPORTED_MODULE_2__","_material_ui_core__WEBPACK_IMPORTED_MODULE_3__","_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_4__","_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_5__","withStyles","theme","createStyles","loadingWrapper","minHeight","height","textAlign","loadingText","fontSize","fontWeight","color","palette","text","primary","props","createElement","container","alignItems","alignContent","className","classes","item","xs","thickness","disableShrink","react_router_dom__WEBPACK_IMPORTED_MODULE_1__","button","padding","justifyContent","minWidth","title","tooltipTitle","Link","to","homeRoute","aria-label","children","module","exports","p","d","RESET_RATE_CALCULATOR_DATA","UPDATE_BASE_RATE_MILES","UPDATE_BASE_RATE_PER_MILE","UPDATE_BASE_RATE_ROW_TOTAL","UPDATE_FUEL_SURCHARGE_MILES","UPDATE_FUEL_SURCHARGE_RATE_PER_MILE","UPDATE_FUEL_SURCHARGE_ROW_TOTAL","UPDATE_EMPTY_MILES","UPDATE_EMPTY_MILES_RATE_PER_MILE","UPDATE_NUMBER_OF_STOPS","UPDATE_NUMBER_OF_STOPS_COST_PER_STOP","UPDATE_LOADING_FEE","UPDATE_UNLOADING_FEE","UPDATE_MARKUP_PERCENTAGE","UPDATE_FLAT_FEE","UPDATE_ADD_ON_TOTAL","UPDATE_NOTES","UPDATE_GRAND_TOTAL","UPDATE_ALL_IN_RATE_PER_MILE","resetRateCalculatorData","setBaseRateMiles","setBaseRatePerMile","setBaseRateRowTotal","setFuelSurchargeMiles","setFuelSurchargePerMile","setFuelSurchargeRowTotal","setEmptyMiles","setEmptyMilesRatePerMile","setNumberOfStops","setNumberOfStopsCostPerStop","setLoadingFee","setUnloadingFee","setMarkupPercentage","setFlatFee","setAddOnTotal","setNotes","setGrandTotal","setAllInRatePerMile","miles","rate","total","stops","percentage","notes","ratePerMile","defineProperty","companyLogo","maxHeight","breakpoints","only","maxWidth","react_default","src","trimbleLogo","alt","useStyles","makeStyles","listItem","&:hover","backgroundColor","appColors","appMenuHoverBackgroundColor","&$listItemDisabled","opacity","&$listItemSelected","common","white","appMenuSelectedBackgroundColor","appMenuSelectedBackgroundHoverColor","listItemDisabled","listItemSelected","listItemIcon","paddingLeft","menuTextPrimary","textTransform","nested","spacing","AppHeaderMenuItem","menuItem","isNested","isDisabled","updateIsMenuOpen","history","useHistory","location","useLocation","ListItem","selected","pathname","startsWith","onClick","disabled","ListItemIcon","Icon_default","size","ListItemText","drawerPaper","width","isMenuOpen","react","Drawer","paper","open","onClose","List","menuList","map","_item$subRoutes","appHeaderSubMenu","Collapse","in","appHeaderMenuItem","connect","userDetails","stateProps","dispatchProps","ownProps","objectSpread","appLogoWrapper","paddingRight","appTitleWrapper","display","flexGrow","paddingTop","appTitleDivider","_useState","useState","_useState2","slicedToArray","anchorEl","setAnchorEl","_useState3","_useState4","isAppNavMenuOpen","setAppNavMenuOpen","appMenuList","handleAccountMenuClose","AppBar","position","appHeader","Toolbar","IconButton","edge","mdiMenu","appHeaderMenu","homeButton","Hidden","marketInsights","Typography","Tooltip","mdiHelpCircle","renderFullHeader","AppLauncher_default","aria-controls","aria-haspopup","event","currentTarget","mdiAccountCircle","Menu","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","Boolean","MenuItem","truckLoadRate","truckLoadRateAdmin","AuthService","logout","CombinedHeaderAndSpinner","spinner","config","configuration","client_id","redirect_uri","response_type","scope","app_name","authority","loadUserInfo","post_logout_redirect_uri","revokeAccessTokenOnSignout","automaticSilentRenew","AuthenticationManager","createUserManager","Authenticator","authConfig","isBlank","getIdToken","_authConfig$settings$","_authConfig$settings$2","oidcUserKey","settings","oidcUser","sessionStorage","getItem","id_token","updateUserActivity","activity","code","activityType","idToken","headers","Authorization","create","endpoints","getAccessToken","getUserInfo","authenticator","accessToken","signinRedirect","fetchAccessToken","self","top","inIframe","Oidc","redux_oidc","userManager","successCallback","success","setItem","access_token","combinedHeaderAndSpinner","signOut","singoutUrl","createSignoutRequest","id_token_hint","removeItem","removeUser","href","console","error","updateUserLoggedIn","isAuthenticated","user","getUser","isUserPresent","userObj","_","reject","login","loginCallback","httpService","setupInterceptors","interceptors","request","use","newRequest","Accept","includes","trimbleColors","appHeaderColor","appPrimaryColor","appPrimaryIconColor","appSecondaryColor","primaryTextColor","subHeaderTextColor","appMenuBackgroundColor","inputPlaceholderColor","formRootLightColor","formLabelLightColor","inputNonFocusedLightColor","selectedTabColor","shadedTableBackgroundColor","trendingUpColor","trendingDownColor","trendingFlatColor","trimbleGreen","baseRateColor","accessorialChargesColor","fuelSurchargeColor","standardTransitColor","delayColor","unloadColor","loadColor","emptyDriveColor","rateHigh","rateAverage","rateLow","seasonalityTrendingUpColor","seasonalityTrendingDownColor","seasonalityTrendingFlatColor","seasonalityTrendingUpTextColor","seasonalityTrendingDownTextColor","seasonalityTrendingFlatTextColor","gradeAColor","gradeBColor","gradeCColor","gradeDColor","dataChartsBorderColor","dataChartsBackgroundColor","dataChartsNationalAvgRateColor","dataChartsNationalAvgLineHaulRateColor","dataChartsNationalFuelSurchargeColor","dataChartsStateInboundColor","dataChartsStateOutboundColor","dataChartsAllStatesInboundColor","dataChartsAllStatesOutboundColor","paginationColor","neutrals","grayHalf","grayLight","gray0","gray1","gray2","gray3","gray4","gray5","gray6","gray7","gray8","gray9","gray10","trimbleGray","grayDark1","grayDark2","grayDark3","grayBlack","otherColors","bewitchingBlue","errorRed","paleGreen","themeOptions","typography","fontFamily","main","secondary","overrides","MuiToolbar","MuiFormControl","MuiInput","underline","&:before","borderBottom","&:hover:not(.Mui-disabled):before","&$focused","MuiFilledInput","&:after","MuiInputLabel","MuiButton","contained","&$disabled","containedSecondary","MuiCircularProgress","colorPrimary","colorSecondary","MuiTabs","indicator","MuiTab","textColorPrimary","&$selected","MuiTableRow","hover","cursor","MuiTableCell","head","MuiFormControlLabel","marginRight","MuiListItem","MuiListItemIcon","MuiListItemText","mui104Theme","createMuiTheme","Notifier","displayed","storeDisplayed","_this","toConsumableArray","nextProps","_this2","notifications","_ret","newSnacks","currentSnacks","notExists","_loop","i","snack","v","prevProps","_this3","_this$props$notificat","options","Component","withSnackbar","notificationList","ErrorBoundary","classCallCheck","_super","call","hasError","Grid","justify","direction","getDerivedStateFromError","emptyReduxStore","withRouter","fetchAuthorizationStatus","element","_payload","_payload2","_payload3","RoleTypesTCX","NetworkInsights","mapDispatchToProps","fetchRolesAction","_ref3","getState","networkInsights","_x3","_x4","hasFetchedRoles","useEffect","document","margin","errorMesssage","paddingBottom","Button","AuthenticatedRoute","rest","objectWithoutProperties","setUser","recievedUserData","setRecievedUserData","authenticatedUser","finish","react_router","errorBoundary","from","PageNotFound","authorizedRoutes","useMemo","authenticatedRoute","exact","generateClassName","createGenerateClassName","productionPrefix","createBrowserHistory","App","StylesProvider","ThemeProvider","muiTrimbleTheme","notistack_esm","maxSnack","notifier","fallback","authentication_login","authentication_authorize","privateRoutes","App_PageNotFound","userDetailsReducer","_roles","action","fetchTopLanesReducer","topLanesData","isFetching","topLanes","fetchLanesReducer","currentLane","isFetchingSavedLanes","savedLanes","isUpdatingSavedLanes","LANE_DETAILS_REQUEST","LANE_DETAILS_SUCCESS","LANE_DETAILS_FAILURE","SAVED_LANES_REQUEST","SAVED_LANES_SUCCESS","SAVED_LANES_FAILURE","ADD_SAVED_LANE_REQUEST","ADD_SAVED_LANE_SUCCESS","ADD_SAVED_LANE_FAILURE","DELETE_SAVED_LANE_REQUEST","DELETE_SAVED_LANE_SUCCESS","updateSavedLanes","lane_name","DELETE_SAVED_LANE_FAILURE","fetchLanesYearReducer","laneDetailsYearly","yearlyLaneDetails","laneSearchInitialState","laneSearchReducer","laneSearch","fetchSeasonalityReducer","seasonalityData","fetchTopInboundAndOutboundLanesReducer","topInboundAndOutboundLanesData","isFetchingTopInboundLanes","isFetchingTopOutboundLanes","topInboundLanes","topOutboundLanes","TOP_INBOUND_LANES_REQUEST","TOP_OUTBOUND_LANES_REQUEST","TOP_INBOUND_LANES_SUCCESS","TOP_OUTBOUND_LANES_SUCCESS","TOP_INBOUND_LANES_FAILURE","TOP_OUTBOUND_LANES_FAILURE","notificationReducer","notificationsData","rateCalculatorInitialState","baseRateMiles","baseRatePerMile","baseRateRowTotal","fuelSurchargeMiles","fuelSurchargeRatePerMile","fuelSurchargeRowTotal","emptyMiles","emptyMilesRatePerMile","numberOfStops","numberOfStopsCostPerStop","loadingFee","unloadingFee","markupPercentage","flatFee","addOnTotal","grandTotal","allInRatePerMile","rateCalculatorReducer","rateCalculator","fetchNationalChartsReducer","dataChartsNationalCharts","isFetchingNationalHaulRates","nationalHaulRates","fetchStateRateChartsReducer","stateRateCharts","isFetchingStateRateCharts","stateRateChartData","fetchLanesKeyPerformanceIndicatorsReducer","lanesKeyPerformanceIndicatorsData","keyPerformanceIndicators","topNetworkLanesData","topNetworkLanes","dataGeographyPolygon","geographyPolygon","features","fetchProcessRatesReducers","processRates","isDownloadingProcessRatesTemplate","isProcessing","verifiedSummary","fileStatus","activeStep","isFetchingHistory","fileHistory","content","isDownloadingProcessedRates","isPending","PROCESS_RATES_TEMPLATE_REQUEST","PROCESS_RATES_TEMPLATE_SUCCESS","PROCESS_RATES_TEMPLATE_FAILURE","VERIFY_PROCESS_RATES_REQUEST","VERIFY_PROCESS_RATES_SUCCESS","VERIFY_PROCESS_RATES_FAILURE","SET_ACTIVE_STEP","SUBMIT_PROCESS_RATES_REQUEST","SUBMIT_PROCESS_RATES_SUCCESS","SUBMIT_PROCESS_RATES_FAILURE","PROCESS_RATES_HISTORY_REQUEST","PROCESS_RATES_HISTORY_SUCCESS","PROCESS_RATES_HISTORY_FAILURE","PROCESSED_RATES_REQUEST","PROCESSED_RATES_SUCCESS","PROCESSED_RATES_FAILURE","PROCESS_RATES_IS_PENDING","manageUserInitialState","validState","userData","allUsers","searchParam","page","isFetchingAllUsers","isEditable","isFormValid","isSavingUser","isDeletingUser","manageUserReducer","manageUserState","ADMIN_CLEAR_VALID_STATE","ADMIN_SET_USER_DATA","ADMIN_SET_IS_EDITABLE","ADMIN_SET_EMAIL_VALID_STATE","email","ADMIN_SET_FNAME_VALID_STATE","firstName","ADMIN_SET_LNAME_VALID_STATE","lastName","RECEIVE_ADMIN_GET_ALL_USERS","REQUEST_ADMIN_GET_ALL_USERS_FAILED","REQUEST_ADMIN_GET_ALL_USERS","RECEIVE_ADMIN_SAVE_USER","REQUEST_ADMIN_SAVE_USER_FAILED","REQUEST_ADMIN_SAVE_USER","ADMIN_SET_SEARCH_PARAMS","RECEIVE_ADMIN_DELETE_USER","REQUEST_ADMIN_DELETE_USER_FAILED","REQUEST_ADMIN_DELETE_USER","accountInitialState","isFetchingAccount","accountReducer","accountState","fetchBillingHistoryReducers","billingHistory","invoice","invoicesResponse","isDownloadingInvoice","BILLING_HISTORY_REQUEST","BILLING_HISTORY_SUCCESS","BILLING_HISTORY_FAILURE","INVOICE_REQUEST","INVOICE_SUCCESS","INVOICE_FAILURE","subscriptionStatusInitialState","isFetchingSubscriptionStatus","subscriptionStatusReducer","subscriptionStatusState","appReducer","combineReducers","rateCalculatorData","nationalData","stateRateData","fetchTopNetworkLanesReducer","networkGeographyData","manageUsers","manageUsersReducers","accountInfo","subscriptionDetails","rootReducer","storage","middleWare","thunk","persistConfig","persistedReducer","persistReducer","reducers","store","createStore","applyMiddleware","persistor","persistStore","createAppStore","ReactDOM","render","es","integration_react","loading","src_App","getElementById","setActiveStep","downloadProcessRatesTemplate","rawData","blob","Blob","saveAs","requestVerifyProcessRates","params","recieveVerifyProcessRates","formData","_err$response","_err$response$data","FormData","files","append","isSpread","isFuel","defaultEquipment","floor","errorCode","requestSubmitProcessRates","recieveSubmitProcessRates","resetFormCallback","_err$response2","_err$response2$data","requestProcessRatesHistory","pendingFiles","isAnyPendingFiles","paymentStatus","EnumPaymentStatus","Completed","Failed","processingStatus","EnumProcessStatus","fetchProcessRatesHistory","_ref4","_err$response3","_err$response3$data","encodeURI","currentPage","pageSize","sortField","sortDirection","fileName","_ref5","encodedFileName","encodeURIComponent","_x5","clearValidState","setUserData","setIsEditable","isEmptyString","validateEmail","emailRegex","RegExp","source","test","validateFirstName","validRegex","rangeRegex","validateLastName","validateForm","receiveAllUsers","users","setSearchParam","param","fetchAllUsers","_tcxSearchParam","tcxSearchParam","uri","_tcxSearchParam2","result","requestSaveUser","requestSaveUserFailed","receiveSaveUser","addUser","_getState$manageUsers","responseStatus","deleteUser","_x7","receiveLaneDetails","requestLaneDetailsFailed","current","origin_area_id","destination_area_id","receiveSavedLanes","fetchSavedLanes","receiveAddSavedLane","addSavedLane","savedLane","receiveDeleteSavedLane","laneName","TrendingType","Grade","ReportType","EnumFilenameSortBy","EnumSortDirection","DirectionType","AppConstants","receiveTopInboundLanes","receiveTopOutboundLanes","fetchTopInboundAndOutboundLanes","inboundOrOutbound","top_inbound_lanes","top_outbound_lanes","requestBillingHistory","receiveBillingHistory","fetchBillingHistory","accountId","paymentRefId"],"mappings":"oOAAaA,EAAmB,mBACnBC,EAAkB,kBAElBC,EAAkB,SAACC,GAC5B,MAAO,CACHC,KAAMJ,EACNG,aAAaE,OAAAC,EAAA,EAAAD,CAAA,CACTE,KAAK,IAAIC,MAAOC,UAAYC,KAAKC,UAC9BR,KAKFS,EAAiB,SAACL,GAC3B,MAAO,CACHH,KAAM,kBACNG,qOCTKM,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA4B,4BAQnCC,EAA0B,SAACC,GAC7B,MAAO,CACHb,KAAMU,EACNI,QAASD,IAUJE,EAAwB,SAACC,GAClC,sBAAAC,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAC2B,OAA1BX,EAAUY,aAAuD,OAA/BZ,EAAUa,iBAD7C,CAAAJ,EAAAE,KAAA,gBAECJ,EArBD,CACHvB,KAAMS,IAkBHgB,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAK0CG,IAAWC,KAAKC,IAAUC,kBAAmBjB,GAAW,GALlG,OAKWH,EALXY,EAAAS,KAOSjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAASX,EAAwBC,KAEjCU,EAASX,EAAwB,KACjCW,EAASzB,YAAgB,CACrBuC,QAAS,yBACTC,QAASC,IAAwBC,SAb9Cf,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAiBKF,EAvBL,CACHvB,KAAMW,IAuBEY,EAASzB,YAAgB,CACrBuC,QAAS,oDACTC,QAASC,IAAwBG,SApB1C,QAAAjB,EAAAE,KAAA,iBAwBCJ,EAASX,EAAwB,KAxBlC,yBAAAa,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,wOCzBSC,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA4B,4BAQnCC,EAAyB,SAACtC,GAC5B,MAAO,CACHb,KAAMiD,EACNnC,QAASD,IAIXuC,EAA+B,WACjC,MAAO,CACHpD,KAAMkD,IAIDG,EAAuB,SAACC,GAAoD,IAAlCC,EAAkCR,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAjB,GACpE,sBAAA9B,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmC,EAAA7C,EAAA8C,EAAA,OAAAxC,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMgD,IAqBAU,EAAc,CAACzD,OAAA2D,EAAA,EAAA3D,QAAA2D,EAAA,EAAA3D,CAAA,GACdqD,GADa,IAEhBC,YALD9B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAQoBG,IAAWC,KAAKC,IAAU6B,YAAaH,GAR3D,QAQO7C,EARPY,EAAAS,OASa4B,MAAMC,QAAQlD,EAAKmD,OAASnD,EAAKmD,KAAK,GAAG5B,OAAS,GACpDuB,EAAiC9C,EAAKmD,KAAK,GACjDzC,EAAS4B,EAAuBQ,MAEhCpC,EAAS6B,KACT7B,EAASzB,YAAgB,CACrBuC,QAAS,6DACTC,QAASC,IAAwBC,SAhB1Cf,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAoBCF,EAAS6B,KACT7B,EAASzB,YAAgB,CACrBuC,QAAS,kEACTC,QAASC,IAAwBG,SAvBtC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,wOCxBSkB,EAAsB,sBACtBC,EAAsB,sBACtBC,EAAsB,sBAQ7BC,EAAqB,SAACvD,GACxB,MAAO,CACHb,KAAMkE,EACNpD,QAASD,IAIXwD,EAA2B,WAC7B,MAAO,CACHrE,KAAMmE,IAIDG,EAAmB,SAACC,GAA8C,IAAlChB,EAAkCR,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAjB,GAC1D,sBAAA9B,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmC,EAAA7C,EAAA8C,EAAAa,EAAA,OAAArD,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMiE,IAqBAP,EAAc,CAACzD,OAAA2D,EAAA,EAAA3D,QAAA2D,EAAA,EAAA3D,CAAA,GACdsE,GADa,IAEhBhB,YALD9B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EASoBG,IAAWC,KAAKC,IAAUyC,YAAaf,GAT3D,OASO7C,EATPY,EAAAS,KAWOyB,EAAiC9C,EAAKmD,KACxCF,MAAMC,QAAQJ,IAAaA,EAASvB,OAAS,GAEvCoC,EAAmCb,EAASe,KAAK,SAACtD,EAAQuD,GAC5D,OAAOA,EAAEC,KAAOxD,EAAEwD,OAEtBrD,EAAS6C,EAAmBI,MAG5BjD,EAAS8C,KACT9C,EAASzB,YAAgB,CACrBuC,QAAS,yDACTC,QAASC,IAAwBC,SAvB1Cf,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,SA2BCF,EAAS8C,KACT9C,EAASzB,YAAgB,CACrBuC,QAAS,kDACTC,QAASC,IAAwBG,SA9BtC,yBAAAjB,EAAAkB,SAAArB,EAAA,kBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,2CCpBC8B,OAAeC,mCATLC,IAAXC,UACeC,IAAfC,cACkBC,IAAlBC,iBAC+BC,IAA/BC,8BACyBC,IAAzBC,wBACiBC,IAAjBC,gBACaC,IAAbC,YACcC,IAAdC,aACyBC,IAAzBC,wBAGWC,EAAA,GACXC,aAAY,WAAAC,OAAaN,GAAbM,OAA0BlB,EAA1B,OACZmB,OAAQnB,EACRoB,iBAAgB,WAAAF,OAAaN,GAAbM,OAA0BlB,EAA1B,cAChBqB,SAAQ,WAAAH,OAAaN,GAAbM,OAA0BlB,EAA1B,mCACRsB,YAAW,WAAAJ,OAAaN,GAAbM,OAA0BlB,EAA1B,8BACXuB,QAAO,WAAAL,OAAaN,GAAbM,OAA0BlB,EAA1B,+BACPwB,UAAS,WAAAN,OAAaN,GAAbM,OAA0BlB,EAA1B,0HAAAkB,OAA+JpB,GACxK2B,YAAW,WAAAP,OAAaN,GAAbM,OAA0BpB,EAA1B,cACX4B,cAAa,WAAAR,OAAaN,GAAbM,OAA0BpB,EAA1B,WACb6B,kCAAiC,WAAAT,OAAaN,GAAbM,OAA0Bd,EAA1B,2BACjCwB,eAAc,WAAAV,OAAaN,GAAbM,OAA0BhB,EAA1B,cACdtB,YAAW,WAAAsC,OAAaN,GAAbM,OAA0BhB,EAA1B,4BACXV,YAAW,WAAA0B,OAAaN,GAAbM,OAA0BhB,EAA1B,4BACX2B,iBAAgB,WAAAX,OAAaN,GAAbM,OAA0Bd,EAA1B,mCAChB0B,mCAAkC,WAAAZ,OAAaN,GAAbM,OAA0Bd,EAA1B,sDAClC2B,iCAAgC,WAAAb,OAAaN,GAAbM,OAA0BZ,EAA1B,eAChC0B,sCAAqC,WAAAd,OAAaN,GAAbM,OAA0BZ,EAA1B,qBACrC2B,cAAa,WAAAf,OAAaN,GAAbM,OAA0BZ,EAA1B,mBACb4B,iBAAgB,WAAAhB,OAAaN,GAAbM,OAA0BZ,EAA1B,sBAChB6B,gBAAe,WAAAjB,OAAaN,GAAbM,OAA0BZ,EAA1B,WACf8B,mBAAkB,WAAAlB,OAAaN,GAAbM,OAA0Bd,EAA1B,qCAClBiC,gBAAe,WAAAnB,OAAaN,GAAbM,OAA0Bd,EAA1B,kCACfkC,4BAA2B,WAAApB,OAAaN,GAAbM,OAA0BZ,EAA1B,8CAC3BiC,mBAAkB,WAAArB,OAAaN,GAAbM,OAA0BZ,EAA1B,mCAClBkC,mBAAkB,WAAAtB,OAAaN,GAAbM,OAA0BZ,EAA1B,wBAClBmC,sBAAqB,WAAAvB,OAAaN,GAAbM,OAA0BZ,EAA1B,uBACrBoC,uBAAsB,WAAAxB,OAAaN,GAAbM,OAA0BZ,EAA1B,qCACtBqC,2BAA0B,WAAAzB,OAAaN,GAAbM,OAA0BV,EAA1B,eAC1BoC,aAAY,WAAA1B,OAAaN,GAAbM,OAA0BV,EAA1B,UACZqC,qCAAoC,WAAA3B,OAAaN,GAAbM,OAA0BV,EAA1B,cACpCxD,kBAAiB,WAAAkE,OAAaN,GAAbM,OAA0BV,EAA1B,2BACjBsC,YAAW,WAAA5B,OAAaN,GAAbM,OAA0BZ,EAA1B,gBACXyC,eAAc,WAAA7B,OAAaN,GAAbM,OAA0BZ,EAA1B,uBACd0C,cAAa,WAAA9B,OAAaN,GAAbM,OAA0BZ,EAA1B,gBACb2C,eAAc,WAAA/B,OAAaN,GAAbM,OAA0BZ,EAA1B,gBACd4C,YAAW,WAAAhC,OAAaN,EAAb,oCACXuC,oBAAmB,WAAAjC,OAAaN,EAAb,0BACnBwC,kBAAiB,WAAAlC,OAAaN,GAAbM,OAA0BR,EAA1B,mBACjB2C,gBAAe,WAAAnC,OAAaN,GAAbM,OAA0BR,EAA1B,4BACfI,sBAAqB,GAAAI,OAAKJ,GAC1BwC,8BAA6B,WAAApC,OAAaN,GAAbM,OAA0BZ,EAA1B,uVChDpBiD,EAAa,aACbC,EAAkB,kBAClBC,EAAqB,qBAErBC,EAAY,SAACC,GACtB,MAAO,CACH5I,KAAMwI,EACN1H,QAAS8H,IAIJC,EAAiB,SAACC,GAC3B,MAAO,CACH9I,KAAMyI,EACN3H,QAASgI,IAIJC,EAAmB,SAACC,GAC7B,MAAO,CACHhJ,KAAM0I,EACN5H,QAASkI,IAIJC,EAAmB,SAAC3F,EAAkB4F,GAAgE,IAA/CC,EAA+CpG,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,IAAAA,UAAA,GAC/G,sBAAA9B,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,OAAAJ,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACHJ,EAAS6H,YAAiB9F,EAAa4F,IACvC3H,EAAS8B,YAAqBC,KACN,IAApB6F,GACA5H,EAAS+C,YAAiBhB,IAJ3B,wBAAA7B,EAAAkB,SAAArB,MAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,kFCzBEjB,EAAa,CAQTC,KARS,SAQJsH,EAAaC,GAAoG,IAAAC,EAAAxG,UAAA,OAAA9C,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAA,SAAAC,IAAA,IAAAkI,EAAAC,EAAAC,EAAA,OAAAvI,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAArF6H,EAAqFD,EAAAnH,OAAA,QAAAoB,IAAA+F,EAAA,IAAAA,EAAA,GAApDE,IAAoDF,EAAAnH,OAAA,QAAAoB,IAAA+F,EAAA,KAAAA,EAAA,GAAA9H,EAAAE,KAAA,EACjGgI,IAAM,CACzBN,MACAO,OAAQ,OACR5F,KAAMsF,EACNE,iBACAC,yBANoH,cAClHC,EADkHjI,EAAAS,KAAAT,EAAAoI,OAAA,SASjHH,EAAS1F,MATwG,wBAAAvC,EAAAkB,SAAArB,KAAArB,IAkBtH6J,IA1BS,SA0BLT,EAAaC,GAAoG,IAAAS,EAAAhH,UAAA,OAAA9C,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAA,SAAA2I,IAAA,IAAAR,EAAAC,EAAAC,EAAA,OAAAvI,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,cAArF6H,EAAqFO,EAAA3H,OAAA,QAAAoB,IAAAuG,EAAA,IAAAA,EAAA,GAApDN,IAAoDM,EAAA3H,OAAA,QAAAoB,IAAAuG,EAAA,KAAAA,EAAA,GAAAE,EAAAtI,KAAA,EAChGgI,IAAM,CACzBN,MACAO,OAAQ,MACR5F,KAAMsF,EACNE,iBACAC,yBANmH,cACjHC,EADiHO,EAAA/H,KAAA+H,EAAAJ,OAAA,SAShHH,EAAS1F,MATuG,wBAAAiG,EAAAtH,SAAAqH,KAAA/J,IAkBrHiK,IA5CS,SA4CLb,GAAkG,IAAAc,EAAApH,UAAA,OAAA9C,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAA,SAAA+I,IAAA,IAAAZ,EAAAC,EAAAC,EAAA,OAAAvI,EAAAC,EAAAI,KAAA,SAAA6I,GAAA,cAAAA,EAAA3I,KAAA2I,EAAA1I,MAAA,cAArF6H,EAAqFW,EAAA/H,OAAA,QAAAoB,IAAA2G,EAAA,IAAAA,EAAA,GAApDV,IAAoDU,EAAA/H,OAAA,QAAAoB,IAAA2G,EAAA,KAAAA,EAAA,GAAAE,EAAA1I,KAAA,EACjFgI,IAAM,CACzBN,MACAO,OAAQ,MACRJ,iBACAC,yBALoG,cAClGC,EADkGW,EAAAnI,KAAAmI,EAAAR,OAAA,SAQjGH,EAAS1F,MARwF,wBAAAqG,EAAA1H,SAAAyH,KAAAnK,IAWtGqK,QAvDS,SAuDDjB,GAAkG,IAAAkB,EAAAxH,UAAA,OAAA9C,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAA,SAAAmJ,IAAA,IAAAhB,EAAAC,EAAAC,EAAA,OAAAvI,EAAAC,EAAAI,KAAA,SAAAiJ,GAAA,cAAAA,EAAA/I,KAAA+I,EAAA9I,MAAA,cAArF6H,EAAqFe,EAAAnI,OAAA,QAAAoB,IAAA+G,EAAA,IAAAA,EAAA,GAApDd,IAAoDc,EAAAnI,OAAA,QAAAoB,IAAA+G,EAAA,KAAAA,EAAA,GAAAE,EAAA9I,KAAA,EACrFgI,IAAM,CACzBN,MACAO,OAAQ,MACRJ,iBACAC,uBACAiB,aAAc,SAN0F,cACtGhB,EADsGe,EAAAvI,KAAAuI,EAAAZ,OAAA,SASrGH,EAAS1F,MAT4F,wBAAAyG,EAAA9H,SAAA6H,KAAAvK,IAkB1G0K,OAzES,SAyEFtB,GAAkG,IAAAuB,EAAA7H,UAAA,OAAA9C,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAA,SAAAwJ,IAAA,IAAArB,EAAAC,EAAAC,EAAA,OAAAvI,EAAAC,EAAAI,KAAA,SAAAsJ,GAAA,cAAAA,EAAApJ,KAAAoJ,EAAAnJ,MAAA,cAArF6H,EAAqFoB,EAAAxI,OAAA,QAAAoB,IAAAoH,EAAA,IAAAA,EAAA,GAApDnB,IAAoDmB,EAAAxI,OAAA,QAAAoB,IAAAoH,EAAA,KAAAA,EAAA,GAAAE,EAAAnJ,KAAA,EACpFgI,IAAM,CACzBN,MACAO,OAAQ,SACRJ,iBACAC,yBALuG,cACrGC,EADqGoB,EAAA5I,KAAA4I,EAAAjB,OAAA,SAQpGH,EAAS1F,MAR2F,wBAAA8G,EAAAnI,SAAAkI,KAAA5K,KAYpG6B,mOCnFFiJ,EAA8B,8BAC9BC,EAA8B,8BAC9BC,EAA8B,8BAQrCC,EAA2B,SAACrK,GAC9B,MAAO,CACHb,KAAMgL,EACNlK,QAASD,IAUJsK,EAAyB,SAAC7H,GACnC,sBAAArC,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAM+K,IAkBHtJ,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAI4CG,IAAWC,KAAKC,IAAUqF,mBAAoB/D,GAAa,GAJvG,OAIOzC,EAJPY,EAAAS,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAAS2J,EAAyBrK,IAElCU,EAAS2J,EAAyB,KATvCzJ,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAYCF,EAlBD,CACHvB,KAAMiL,IAkBF1J,EAASzB,YAAgB,CACrBuC,QAAS,qDACTC,QAASC,IAAwBG,SAftC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,iOCxBSqI,EAA6B,6BAC7BC,EAA6B,6BAC7BC,EAA6B,6BAQpCC,EAA0B,SAAC1K,GAC7B,MAAO,CACHb,KAAMqL,EACNvK,QAASD,IAUJ2K,EAAwB,SAAClI,GAClC,sBAAArC,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMoL,IAkBH3J,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAIyCG,IAAWC,KAAKC,IAAUsF,gBAAiBhE,GAAa,GAJjG,OAIOzC,EAJPY,EAAAS,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAASgK,EAAwB1K,IAEjCU,EAASgK,EAAwB,KATtC9J,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAYCF,EAlBD,CACHvB,KAAMsL,IAkBF/J,EAASzB,YAAgB,CACrBuC,QAAS,uDACTC,QAASC,IAAwBG,SAftC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,yEChCW0I,EAAA,CACXC,QAAS,CACLC,KAAM,OACNC,MAAO,MAEXC,WAAW,EACXC,GAAI,GACJC,YAAY,EACZC,KAAM,WACNC,QAAQ,EACRC,mBAAoB,CAChBC,IAAK,mXCNN,IAAMC,EAAkB,kBAClBC,EAAyB,yBACzBC,EAAkB,kBAqBlBC,EAAe,WACxB,sBAAAtL,EAAAhB,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmL,EAAA,OAAAD,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMsM,IAkBH7K,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAMmC,IAAIgL,QAAQ,SAACC,GAC3CA,EAAQnB,KAPb,QAMOiB,EANPjL,EAAAS,MAUagK,oBAAsBQ,EAAQR,mBAAmBC,MACzDO,EAAQG,oBAAsB,CAC1BV,IAAKW,KAAKC,MAAML,EAAQR,mBAAmBC,OAInD5K,EAvBD,CACHvB,KAAMoM,EACNtL,QAqB4B4L,IAhBzBjL,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAkBCF,EA/BD,CACHvB,KAAMqM,IA+BF9K,EAASzB,YAAgB,CACrBuC,QAAS,4CACTC,QAASC,IAAwBG,SArBtC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,wOCvBSiK,EAAoB,oBACpBC,EAAoB,oBACpBC,EAAoB,oBAQ3BC,EAAkB,SAACtM,GACrB,MAAO,CACHb,KAAMiN,EACNnM,QAASD,IAUJuM,EAAgB,SAAC7I,GAAgD,IAApC8I,EAAoCtK,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAjB,GACzD,sBAAA9B,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmC,EAAA7C,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMgN,IAqBAtJ,EAHHzD,OAAA2D,EAAA,EAAA3D,QAAA2D,EAAA,EAAA3D,CAAA,GAIIsE,GAJJ,IAKC8I,aALD5L,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EASqCG,IAAWC,KAAKC,IAAU8E,iBAAkBpD,GATjF,OASO7C,EATPY,EAAAS,KAWKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAAS4L,EAAgBtM,IAGzBU,EAAS4L,EAAgB,KAf9B1L,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAkBCF,EAxBD,CACHvB,KAAMkN,IAwBF3L,EAASzB,YAAgB,CACrBuC,QAAS,2CACTC,QAASC,IAAwBG,SArBtC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,iOCxBSuK,EAA2C,2CAC3CC,EAA2C,2CAC3CC,EAA2C,2CAQlDC,EAAuC,SAAC5M,GAC1C,MAAO,CACHb,KAAMuN,EACNzM,QAASD,IAUX6M,EAAqC,SAACnJ,GACxC,sBAAAtD,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMsN,IAkBH7L,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAImDG,IAAWC,KAAKC,IAAU8F,qCAAsCvD,GAAO,GAJ1H,OAIO1D,EAJPY,EAAAS,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAASkM,EAAqC5M,IAE9CU,EAASkM,EAAqC,KATnDhM,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAYCF,EAlBD,CACHvB,KAAMwN,IAkBFjM,EAASzB,YAAgB,CACrBuC,QAAS,4DACTC,QAASC,IAAwBG,SAftC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,iOCxBS4K,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA4B,4BAQnCC,EAAyB,SAACjN,GAC5B,MAAO,CACHb,KAAM4N,EACN9M,QAASD,IAUJkN,EAAuB,SAACxJ,GACjC,sBAAAtD,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAM2N,IAkBHlM,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAIuCG,IAAWC,KAAKC,IAAU6F,aAActD,GAAO,GAJtF,OAIO1D,EAJPY,EAAAS,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAASuM,EAAuBjN,IAEhCU,EAASuM,EAAuB,KATrCrM,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAYCF,EAlBD,CACHvB,KAAM6N,IAkBFtM,EAASzB,YAAgB,CACrBuC,QAAS,mDACTC,QAASC,IAAwBG,SAftC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,mRCvBSiL,EAA8B,8BAC9BC,EAAqC,qCACrCC,EAA8B,8BAErCC,EAA4B,WAC9B,MAAO,CACHnO,KAAMkO,IAIRE,EAAuC,WACzC,MAAO,CACHpO,KAAMiO,IAIRI,EAA4B,SAAC3E,GAC/B,MAAO,CACH1J,KAAMgO,EACNlN,QAAS4I,IAIJ4E,EAA0B,WACnC,sBAAArN,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAgN,EAAA,OAAApN,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EAAS4M,KADN1M,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAIsDG,IAAWoI,IAAIlI,IAAUuG,+BAA+B,GAJ9G,OAIOgG,EAJP9M,EAAAS,KAKCX,EAAS8M,EAA0BE,IALpC9M,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAOCF,EAAS6M,KACT7M,EAASzB,YAAgB,CACrBuC,QAAS,oDACTC,QAASC,IAAwBG,SAVtC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,IAsBEyL,EAAoC,SAACC,EAAwBC,GAC/D,IAAIrM,EAAU,GACRsM,EARkB,SAACC,EAAmBC,GAG5C,OAFAD,EAAYE,SAAS,EAAG,EAAG,EAAG,GAC9BD,EAAWC,SAAS,EAAG,EAAG,EAAG,GACtBD,EAAaD,EAKIG,CACpB,IAAI3O,KAAK4O,YAAOC,YAASP,EAA2BQ,gBAAgBC,YAAa,eAAgB,IAAI/O,MAEnGwO,EAAc,IAAIxO,KAAKsO,EAA2BQ,iBAAiBE,qBAczE,OAbIX,GAAiBC,EAA2BW,gBAExChN,EADAsM,EACO,sFAAAxI,OAAyFyI,GAEtF,mFAENH,GAAkBC,EAA2BW,kBAEjDhN,EADAsM,EACO,8FAAAxI,OAAiGyI,GAE9F,oGAGXvM,GAGEiN,EAAqB,SAACb,GAC/B,sBAAAc,EAAAtP,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAA2I,EAAOzI,GAAP,IAAAiO,EAAAjB,EAAAkB,EAAA,OAAAtO,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,cAAAsI,EAAAvI,KAAA,EAEO8N,EAAO,CACTf,iBAEJlN,EAAS4M,KALVlE,EAAAtI,KAAA,EAMsDG,IAAWC,KAAKC,IAAUuG,8BAA+BiH,GAAM,GANrH,OAMOjB,EANPtE,EAAA/H,KAOCX,EAAS8M,EAA0BE,IAC7BkB,EAAkBjB,EAAkCC,EAAeF,GACzEhN,EAASzB,YAAgB,CACrBuC,QAASoN,EACTnN,QAASC,IAAwBmN,WAXtCzF,EAAAtI,KAAA,iBAAAsI,EAAAvI,KAAA,GAAAuI,EAAAxH,GAAAwH,EAAA,SAcC1I,EAAS6M,KACT7M,EAASzB,YAAgB,CACrBuC,QAAS,oDACTC,QAASC,IAAwBG,SAjBtC,yBAAAuH,EAAAtH,SAAAqH,EAAA,kBAAP,gBAAA2F,GAAA,OAAAJ,EAAA1M,MAAAC,KAAAC,YAAA,8QCnEE6M,EAA0BC,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC5DC,EAA4BN,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC9DE,EAA2BP,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC7DG,EAAwBR,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAG1DI,EAA2BT,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC7DK,EAA0BV,eAAK,WAAsB,OAAOE,EAAAC,EAAA,IAAAC,KAAAF,EAAAG,KAAA,aAG5DM,EAA0BX,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC5DO,EAA2BZ,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC7DQ,EAA2Bb,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAC7DS,EAAqBd,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aACvDU,EAAuBf,eAAK,WAAsB,OAAOlD,QAAAmD,IAAA,CAAAC,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAA,aAMlDW,EAAuB,CAChCC,UAAS,GAAA3K,OALc,kBAKd,cACTtC,YAAW,GAAAsC,OANY,kBAMZ,gBACX4K,WAAU,GAAA5K,OAPa,kBAOb,eACV6K,QAAO,GAAA7K,OARgB,kBAQhB,aAGE8K,EAAwB,CACjCC,UAAS,GAAA/K,OAXe,mBAWf,cACTgL,SAAQ,GAAAhL,OAZgB,mBAYhB,cAGCiL,EAAsB,CAC/BL,WAAU,GAAA5K,OAfY,iBAeZ,eACVtC,YAAW,GAAAsC,OAhBW,iBAgBX,gBACXkL,YAAW,GAAAlL,OAjBW,iBAiBX,gBACXmL,MAAK,GAAAnL,OAlBiB,iBAkBjB,UACL6K,QAAO,GAAA7K,OAnBe,iBAmBf,aAGEoL,EAAe,CACxBC,KAAM,IACNC,UAAW,aACXC,OAAQ,UACRC,cAAe,iBACfC,SAAU,aAGRC,EAAmB,WACrB,MAAO,CACH,CACIC,SAAU,kBACVC,UAAWnC,EACXoC,KAAMnB,EAAqBC,UAC3BmB,UAAW,kBACXC,SAAUC,IACVC,SAAUvB,EAAqBC,UAC/BuB,aAAc,CAACC,IAAUC,iBAE7B,CACIT,SAAU,kBACVC,UAAW3B,EACX4B,KAAMnB,EAAqBE,WAC3BkB,UAAW,cACXC,SAAUM,IACVJ,SAAUvB,EAAqBE,WAC/BsB,aAAc,CAACC,IAAUC,iBAE7B,CACIT,SAAU,UACVC,UAAW1B,EACX2B,KAAMnB,EAAqBG,QAC3BiB,UAAW,UACXC,SAAUO,IACVL,SAAUvB,EAAqBG,QAC/BqB,aAAc,CAACC,IAAUC,iBAE7B,CACIT,SAAU,kBACVC,UAAW5B,EACX6B,KAAMnB,EAAqBhN,YAC3BwO,aAAc,CAACC,IAAUC,iBAE7B,CACIT,SAAU,mBACVE,KApEgB,mBAqEhBC,UAAW,mBACXC,SAAUQ,IACVN,SAvEgB,mBAwEhBC,aAAc,GACdM,UAAW,CACP,CACIb,SAAU,mBACVC,UAAWzB,EACX0B,KAAMf,EAAsBC,UAC5Be,UAAW,YACXC,SAAUU,IACVR,SAAUnB,EAAsBC,UAChCmB,aAAc,IAElB,CACIP,SAAU,mBACVC,UAAWxB,EACXyB,KAAMf,EAAsBE,SAC5Bc,UAAW,WACXC,SAAUW,IACVT,SAAUnB,EAAsBE,SAChCkB,aAAc,MAI1B,CACIP,SAAU,kBACVC,UAAWvB,EACXwB,KAAMZ,EAAoBL,WAC1BkB,UAAW,kBACXC,SAAUY,IACVV,SAAUhB,EAAoBL,WAC9BsB,aAAc,CAACC,IAAUS,gBAE7B,CACIjB,SAAU,kBACVC,UAAWrB,EACXsB,KAAMZ,EAAoBC,YAC1BY,UAAW,eACXC,SAAUc,IACVZ,SAAUhB,EAAoBC,YAC9BgB,aAAc,CAACC,IAAUS,gBAE7B,CACIjB,SAAU,kBACVC,UAAWpB,EACXqB,KAAMZ,EAAoBE,MAC1BW,UAAW,kBACXC,SAAUe,IACVb,SAAUhB,EAAoBE,MAC9Be,aAAc,CAACC,IAAU3B,qBAE7B,CACImB,SAAU,kBACVC,UAAWnB,EACXoB,KAAMZ,EAAoBJ,QAC1BiB,UAAW,UACXC,SAAUO,IACVL,SAAUhB,EAAoBJ,QAC9BqB,aAAc,CAACC,IAAUS,gBAE7B,CACIjB,SAAU,kBACVC,UAAWtB,EACXuB,KAAMZ,EAAoBvN,YAC1BwO,aAAc,CAACC,IAAUS,kBAK/BG,EAAkB,SAACC,GAOrB,OANoBlT,OAAOmT,QAAQD,GACIE,OAAO,SAACC,GAE3C,OAAwB,IAF6BrT,OAAAsT,EAAA,EAAAtT,CAC5BqT,EAD4B,SAQvDE,EAA2B,SAACC,EAA0CC,GAMxE,OAJqBD,EAAoBE,KAAK,SAAA1S,GAAgB,IAAd2S,EAAc3T,OAAAsT,EAAA,EAAAtT,CAAAgB,EAAA,MAC1D,OAAOyS,EAAqBG,QAAQD,IAA0B,KAWzDE,EAAyB,SAACX,GACnC,IAAMY,EAAuC,GAGvCC,EAAqBd,EAAgBC,GA4B3C,OAzB2BtB,IAGRoC,QAAQ,SAACC,GAAyB,IACzC7B,EAAiB6B,EAAjB7B,aAER,IAAmE,IAA/DmB,EAAyBQ,EAAoB3B,GAAwB,CAEjE6B,EAAMnC,WACNgC,EAAoBI,KAAKD,GAHwC,IAAAE,EAO1CF,EAAnBvB,gBAP6D,IAAAyB,EAOjD,GAPiDA,GAQ3DH,QAAQ,SAACI,GAA4B,IACrBC,EAAoBD,EAAlChC,cAG8D,IAAlEmB,EAAyBQ,EAAoBM,IAA6BD,EAAStC,WACnFgC,EAAoBI,KAAKE,QAMlCN,GAQEQ,EAAwB,SAACpB,GAClC,IAAMqB,EAA0C,GAG1CR,EAAqBd,EAAgBC,GA0B3C,OAvB2BtB,IAGRoC,QAAQ,SAACC,GAAyB,IACzC7B,EAAiB6B,EAAjB7B,aAIR,IAAmE,IAA/DmB,EAAyBQ,EAAoB3B,IAA0B6B,EAAMhC,SAAU,KAAAuC,EAC5DP,EAAnBvB,UACF+B,EAAoC,SAF6C,IAAAD,EACnE,GADmEA,GAG7ER,QAAQ,SAACI,GAA4B,IACrBC,EAAoBD,EAAlChC,cAC8D,IAAlEmB,EAAyBQ,EAAoBM,IAA6BD,EAAStC,WACnF2C,EAAiBP,KAAKE,KAI9B,IAAMM,EAAa1U,OAAAC,EAAA,EAAAD,QAAAC,EAAA,EAAAD,CAAA,GAAQiU,GAAR,IAAevB,UAAW+B,IAC7CF,EAAuBL,KAAKQ,MAI7BH,krBC9PEI,EAAqB,SAACC,EAAgB7Q,GAAsB,IAAA/C,EAErE,OAAAA,EAAA,GAAAhB,OAAA6U,EAAA,EAAA7U,CAAAgB,EAAA,GAAAkF,OACQ0O,EADR,UACyB7Q,EAAK+Q,QAD9B9U,OAAA6U,EAAA,EAAA7U,CAAAgB,EAAA,GAAAkF,OAEQ0O,EAFR,QAEuB7Q,EAAK2H,MAF5B1L,OAAA6U,EAAA,EAAA7U,CAAAgB,EAAA,GAAAkF,OAGQ0O,EAHR,SAGwB7Q,EAAK4H,OAH7B3L,OAAA6U,EAAA,EAAA7U,CAAAgB,EAAA,GAAAkF,OAIQ0O,EAJR,UAIyB7Q,EAAKgR,KAJ9B/U,OAAA6U,EAAA,EAAA7U,CAAAgB,EAAA,GAAAkF,OAKQ0O,EALR,WAK2C,OAAjB7Q,EAAKiR,QAAmB,MAAQjR,EAAKiR,SAL/DhU,GASEiU,EAAiB,SAACC,GAAgC,IAAAC,EAC9BD,EAAYE,MAAM,OADYC,EAAArV,OAAAsV,EAAA,EAAAtV,CAAAmV,EAAA,GAC7CxJ,EAD6C0J,EAAA,GACtC3J,EADsC2J,EAAA,GAGpD,SAAAnP,OAAUwF,EAAV,MAAAxF,OAAmByF,IAGV4J,EAAwB,SAACC,GAClC,MAAO,CACHC,MAAOD,EAAKE,oBAAsBT,EAAeO,EAAKE,qBAAuB,KAC7EhK,KAAM8J,EAAKG,YACXhK,MAAO6J,EAAKI,aACZb,IAAKS,EAAKK,cAAgBL,EAAKK,cAAgB,OAI1CC,EAA6B,SAACN,GACvC,MAAO,CACHC,MAAOD,EAAKO,yBAA2Bd,EAAeO,EAAKO,0BAA4B,KACvFrK,KAAM8J,EAAKQ,iBACXrK,MAAO6J,EAAKS,kBACZlB,IAAKS,EAAKU,mBAAqBV,EAAKU,mBAAqB,OAIpDC,EAAiB,SAACC,EAAuBC,GAClD,IAAIC,EAAoB,WAET/S,IAAX6S,GAAmC,OAAXA,IAQxBE,EAPkB,IAAIC,KAAKC,aAAa,QAAS,CAC7CC,MAAO,WACPC,SAAU,MACVC,sBAAuBN,EACvBO,sBAAuBP,IAGGtH,OAAOqH,IAGzC,OAAOE,GAGEO,EAA2B,SAACT,EAAuBC,GAC5D,IAAIC,EAAoB,aAET/S,IAAX6S,GAAmC,OAAXA,IAQxBE,EAPkB,IAAIC,KAAKC,aAAa,QAAS,CAC7CC,MAAO,WACPC,SAAU,MACVC,sBAAuBN,EACvBO,sBAAuBP,IAGGtH,OAAOqH,IAGzC,OAAOE,GAGEQ,EAAe,SAACC,EAA4BC,GAAiE,IAAxCC,EAAwCnU,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAd,EACpGoU,EAAkB,WAEF3T,IAAhBwT,GAA6C,OAAhBA,IAM7BG,EALkB,IAAIX,KAAKC,aAAa,QAAS,CAC7CG,sBAAuBM,EACvBL,sBAAuBI,IAGCjI,OAAOgI,IAEvC,OAAOG,GAGEC,EAAyB,SAACJ,EAA4BC,GAAiE,IAAxCC,EAAwCnU,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAd,EAC9GsU,EAA4B,WAEZ7T,IAAhBwT,GAA6C,OAAhBA,IAM7BK,EALkB,IAAIb,KAAKC,aAAa,QAAS,CAC7CG,sBAAuBM,EACvBL,sBAAuBI,IAGWjI,OAAOgI,IAEjD,SAAA7Q,OAAUkR,EAAV,MAGSC,EAAiC,SAACN,GAA6D,IAAjCO,EAAiCxU,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAd,EACtFoU,EAAkB,MAEtB,QAAoB3T,IAAhBwT,GAA6C,OAAhBA,GAAwBA,GAAe,EAAG,CACvE,IAAMQ,EAAkBC,WAAWT,EAAYU,QAAQH,IACvDJ,EAAkBK,GAAmBR,EAAcQ,EAAgBrI,YAAcqI,EAAelX,KAAAqX,IAAI,GAAOJ,IAAWG,QAAQH,GAGlI,OAAOJ,GAGES,EAAwB,SAACC,GAGlC,OAFe7I,YAAOC,YAAS4I,GAAY,QAWlCC,EAAkB,SAACD,GAG5B,OAFe7I,YAAOC,YAAS4I,GAAY,SAKlCE,EAA0B,SAACC,EAAqBC,EAAoB3B,GAC7E,IAAM4B,EAA6BF,GAAkBC,GAC9CA,EAAgBD,GAAkBA,EAAkB,IACvD,KAEJ,OAAOE,EAA6BnB,EAAamB,EAA4B5B,GAAW4B,GAG/EC,EAAU,SAACC,EAAkBC,GACtC,OAAOD,EAAYE,OAAO,SAACC,EAAUC,GACjC,IAAMrY,EAAMqY,EAAIH,GAKhB,OAJKE,EAAIpY,KACLoY,EAAIpY,GAAO,IAEfoY,EAAIpY,GAAKgU,KAAKqE,GACPD,GACR,KAGME,EAAuB,CAChC,CAAEC,MAAOC,IAAoBC,OAAQlD,MAAO,WAC5C,CAAEgD,MAAOC,IAAoBE,QAASnD,MAAO,WAC7C,CAAEgD,MAAOC,IAAoBG,aAAcpD,MAAO,iBAGzCqD,EAAkB,CAC3B,CAAEL,MAAOM,IAAcC,GAAIvD,MAAO,WAClC,CAAEgD,MAAOQ,IAAsBC,GAAIzD,MAAO,WAC1C,CAAEgD,MAAOM,IAAcI,GAAI1D,MAAO,UAClC,CAAEgD,MAAOM,IAAcK,GAAI3D,MAAO,WAClC,CAAEgD,MAAOM,IAAcM,GAAI5D,MAAO,YAClC,CAAEgD,MAAOQ,IAAsBK,GAAI7D,MAAO,oBAC1C,CAAEgD,MAAOM,IAAcQ,GAAI9D,MAAO,cAClC,CAAEgD,MAAOM,IAAcS,GAAI/D,MAAO,YAClC,CAAEgD,MAAOM,IAAcU,GAAIhE,MAAO,eAClC,CAAEgD,MAAOM,IAAcW,GAAIjE,MAAO,YAClC,CAAEgD,MAAOM,IAAcY,GAAIlE,MAAO,wBAClC,CAAEgD,MAAOM,IAAca,GAAInE,MAAO,WAClC,CAAEgD,MAAOM,IAAcc,GAAIpE,MAAO,WAClC,CAAEgD,MAAOqB,IAAkBC,GAAItE,MAAO,QACtC,CAAEgD,MAAOM,IAAciB,GAAIvE,MAAO,UAClC,CAAEgD,MAAOM,IAAckB,GAAIxE,MAAO,SAClC,CAAEgD,MAAOM,IAAcmB,GAAIzE,MAAO,YAClC,CAAEgD,MAAOM,IAAcoB,GAAI1E,MAAO,WAClC,CAAEgD,MAAOM,IAAcqB,GAAI3E,MAAO,QAClC,CAAEgD,MAAOM,IAAcsB,GAAI5E,MAAO,UAClC,CAAEgD,MAAOM,IAAcuB,GAAI7E,MAAO,YAClC,CAAEgD,MAAOM,IAAcwB,GAAI9E,MAAO,aAClC,CAAEgD,MAAOM,IAAcyB,GAAI/E,MAAO,SAClC,CAAEgD,MAAOQ,IAAsBwB,GAAIhF,MAAO,YAC1C,CAAEgD,MAAOM,IAAc2B,GAAIjF,MAAO,YAClC,CAAEgD,MAAOM,IAAc4B,GAAIlF,MAAO,iBAClC,CAAEgD,MAAOM,IAAc6B,GAAInF,MAAO,YAClC,CAAEgD,MAAOM,IAAc8B,GAAIpF,MAAO,aAClC,CAAEgD,MAAOM,IAAc+B,GAAIrF,MAAO,eAClC,CAAEgD,MAAOM,IAAcgC,GAAItF,MAAO,YAClC,CAAEgD,MAAOM,IAAciC,GAAIvF,MAAO,WAClC,CAAEgD,MAAOM,IAAckC,GAAIxF,MAAO,YAClC,CAAEgD,MAAOM,IAAcmC,GAAIzF,MAAO,UAClC,CAAEgD,MAAOQ,IAAsBkC,GAAI1F,MAAO,iBAC1C,CAAEgD,MAAOM,IAAcqC,GAAI3F,MAAO,iBAClC,CAAEgD,MAAOM,IAAcsC,GAAI5F,MAAO,cAClC,CAAEgD,MAAOM,IAAcuC,GAAI7F,MAAO,cAClC,CAAEgD,MAAOM,IAAcwC,GAAI9F,MAAO,YAClC,CAAEgD,MAAOQ,IAAsBuC,GAAI/F,MAAO,6BAC1C,CAAEgD,MAAOM,IAAc0C,GAAIhG,MAAO,kBAClC,CAAEgD,MAAOM,IAAc2C,GAAIjG,MAAO,gBAClC,CAAEgD,MAAOQ,IAAsB0C,GAAIlG,MAAO,yBAC1C,CAAEgD,MAAOQ,IAAsB2C,GAAInG,MAAO,eAC1C,CAAEgD,MAAOQ,IAAsB4C,GAAIpG,MAAO,WAC1C,CAAEgD,MAAOM,IAAc+C,GAAIrG,MAAO,QAClC,CAAEgD,MAAOM,IAAcgD,GAAItG,MAAO,YAClC,CAAEgD,MAAOQ,IAAsB+C,GAAIvG,MAAO,WAC1C,CAAEgD,MAAOM,IAAckD,GAAIxG,MAAO,UAClC,CAAEgD,MAAOM,IAAcmD,GAAIzG,MAAO,gBAClC,CAAEgD,MAAOQ,IAAsBkD,GAAI1G,MAAO,wBAC1C,CAAEgD,MAAOQ,IAAsBmD,GAAI3G,MAAO,UAC1C,CAAEgD,MAAOM,IAAcsD,GAAI5G,MAAO,gBAClC,CAAEgD,MAAOQ,IAAsBqD,GAAI7G,MAAO,gBAC1C,CAAEgD,MAAOM,IAAcwD,GAAI9G,MAAO,kBAClC,CAAEgD,MAAOM,IAAcyD,GAAI/G,MAAO,gBAClC,CAAEgD,MAAOM,IAAc0D,GAAIhH,MAAO,aAClC,CAAEgD,MAAOM,IAAc2D,GAAIjH,MAAO,SAClC,CAAEgD,MAAOM,IAAc4D,GAAIlH,MAAO,QAClC,CAAEgD,MAAOM,IAAc6D,GAAInH,MAAO,WAClC,CAAEgD,MAAOM,IAAc8D,GAAIpH,MAAO,YAClC,CAAEgD,MAAOM,IAAc+D,GAAIrH,MAAO,cAClC,CAAEgD,MAAOM,IAAcgE,GAAItH,MAAO,iBAClC,CAAEgD,MAAOM,IAAciE,GAAIvH,MAAO,aAClC,CAAEgD,MAAOM,IAAckE,GAAIxH,MAAO,WAClC,CAAEgD,MAAOQ,IAAsBiE,GAAIzH,MAAO,UAGjC0H,EAA2B,SAACC,EAA4BC,GACjE,IAAMC,EAAoB,CACtB,CACIC,YAAa,OAAQC,OAAQ,cAI/BC,EAA0B,CAC5BC,OAAQ,CACJH,YAAaI,IAA0BD,OAAQF,OAAQ,eAAgB9G,UAAU,EAAOY,SAAU,GAEtGsG,aAAc,CACVL,YAAaI,IAA0BC,aAAcJ,OAAQ,iBAAkB9G,UAAU,EAAMY,SAAU,GAE7GuG,WAAY,CACRN,YAAaI,IAA0BE,WAAYL,OAAQ,MAAO9G,UAAU,EAAOY,SAAU,GAEjGwG,WAAY,CACRP,YAAaI,IAA0BG,WAAYN,OAAQ,cAAe9G,UAAU,EAAOY,SAAU,GAEzGyG,kBAAmB,CACfR,YAAW,GAAArX,OAAKyX,IAA0BG,WAA/B,MAA+CN,OAAQ,sBAAuB9G,UAAU,EAAOY,SAAU,GAExH0G,aAAc,CACVT,YAAaI,IAA0BK,aAAcR,OAAQ,iBAAkB9G,UAAU,EAAOY,SAAU,GAE9G2G,eAAgB,CACZV,YAAaI,IAA0BM,eAAgBT,OAAQ,mBAAoB9G,UAAU,EAAMY,SAAU,GAEjH4G,UAAW,CACPX,YAAaI,IAA0BO,UAAWV,OAAQ,aAAc9G,UAAU,EAAOY,SAAU,GAEvG6G,eAAgB,CACZZ,YAAaI,IAA0BQ,eAAgBX,OAAQ,mBAAoB9G,UAAU,EAAOY,SAAU,IAItH,IAAwB,IAApB+F,EAA2B,CAC3B,IAAMe,EAA+Bpe,OAAOkC,KAAKub,GAAyBY,KAAK,SAACC,GAC5E,OAAOA,EAAgBC,gBAAkBnB,EAAmBmB,qBAG3Bhb,IAAjC6a,IACAd,EAAapJ,KAAMuJ,EAAgCW,IAGA,eAA/CA,EAA6BG,eAC7BjB,EAAapJ,KAAKuJ,EAAwBM,yBAIlDT,EAAapJ,KACTuJ,EAAwBC,OACxBD,EAAwBG,aACxBH,EAAwBI,WACxBJ,EAAwBK,WACxBL,EAAwBM,kBACxBN,EAAwBO,aACxBP,EAAwBQ,eACxBR,EAAwBS,UACxBT,EAAwBU,eACxB,CACIZ,YAAa,WAAYC,OAAQ,gBAAiB9G,UAAU,EAAOY,SAAU,GAEjF,CACIiG,YAAa,cAAeC,OAAQ,eAExC,CACID,YAAa,eAAgBC,OAAQ,gBAEzC,CACID,YAAa,mBAAoBC,OAAQ,oBAE7C,CACID,YAAa,oBAAqBC,OAAQ,sBAKtD,OAAOF,GAGEkB,EAA4B,SAACze,GACtC,OAAQA,GACJ,IAAK,YACD,MAAO,aACX,IAAK,cACD,MAAO,cACX,IAAK,gBACD,MAAO,iBACX,IAAK,gBACD,MAAO,eACX,IAAK,oBAEL,QACI,MAAO,mBAIN0e,EAA8B,SAAC1e,GACxC,OAAQA,GACJ,IAAK,SACD,MAAO,UACX,IAAK,SACD,MAAO,SACX,QACI,MAAO,iBAIb2e,EAAyD,CAC3D1F,GAAI,UACJG,GAAI,SACJC,GAAI,UACJC,GAAI,WACJE,GAAI,aACJC,GAAI,WACJC,GAAI,cACJC,GAAI,WACJE,GAAI,UACJC,GAAI,UACJG,GAAI,SACJC,GAAI,QACJC,GAAI,WACJC,GAAI,UACJC,GAAI,OACJC,GAAI,SACJC,GAAI,WACJC,GAAI,YACJC,GAAI,QACJE,GAAI,WACJC,GAAI,gBACJC,GAAI,WACJC,GAAI,YACJC,GAAI,cACJC,GAAI,WACJC,GAAI,UACJC,GAAI,WACJC,GAAI,SACJE,GAAI,gBACJC,GAAI,aACJC,GAAI,aACJC,GAAI,WACJE,GAAI,iBACJC,GAAI,eACJI,GAAI,OACJC,GAAI,WACJE,GAAI,SACJC,GAAI,eACJG,GAAI,eACJE,GAAI,iBACJC,GAAI,eACJC,GAAI,YACJC,GAAI,QACJC,GAAI,OACJC,GAAI,UACJC,GAAI,WACJC,GAAI,aACJC,GAAI,gBACJC,GAAI,YACJC,GAAI,WAGK0B,EAAkB,SAACC,GAC5B,IAAMC,EAAkBD,EAAMxJ,MAAM,WAEpC,GAAqB,IAAjByJ,EAAM1c,OACN,MAAO,uBAJ2C,IAAA2c,EAAA9e,OAAAsV,EAAA,EAAAtV,CAMhC6e,EANgC,GAM/ClT,EAN+CmT,EAAA,GAMxCpT,EANwCoT,EAAA,GAQhDC,EAAyBpT,EAAMqT,OAAOC,cACtCC,EAAwBxT,EACzBsT,OACAT,cACAY,QAAQ,QAAS,SAACC,GAAgB,OAAOA,EAAEH,gBAEhD,SAAA/Y,OAAU6Y,EAAV,OAAA7Y,OAA8BgZ,IAGrBG,EAAmB,SAACC,GAA+C,OAAOZ,EAA4BY,sCCpZnH,IAAAC,EAAAzP,EAAA,GAAA0P,EAAA1P,EAAA2P,EAAAF,GAAAG,EAAA5P,EAAA,KAAA6P,EAAA7P,EAAA,KAAA8P,EAAA9P,EAAA,IAAA+P,EAAA/P,EAAA,KAAAgQ,EAAAhQ,EAAA,GAyCeiQ,gBA5BA,SAACC,GACZ,OAAOC,YAAa,CAChBC,eAAgB,CACZC,UAAW,QACXC,OAAQ,OACRC,UAAW,UAEfC,YAAa,CACTC,SAAU,OACVC,WAAY,UACZC,MAAOT,EAAMU,QAAQC,KAAKC,YAkBvBb,CAbyB,SAACc,GACrC,OACIrB,EAAAre,EAAA2f,cAACpB,EAAA,EAAD,CAAMqB,WAAS,EAACC,WAAW,SAASC,aAAa,SAASC,UAAWL,EAAMM,QAAQjB,gBAC/EV,EAAAre,EAAA2f,cAACpB,EAAA,EAAD,CAAM0B,MAAI,EAACC,GAAI,IACX7B,EAAAre,EAAA2f,cAACnB,EAAA,EAAD,CAAkB2B,UAAW,EAAGC,eAAa,KAEjD/B,EAAAre,EAAA2f,cAACpB,EAAA,EAAD,CAAM0B,MAAI,EAACC,GAAI,IACX7B,EAAAre,EAAA2f,cAAClB,EAAA,EAAD,CAAYvd,QAAQ,UAAU6e,UAAWL,EAAMM,QAAQb,aAAvD,iDCnChB,IAAAf,EAAAzP,EAAA,GAAA0P,EAAA1P,EAAA2P,EAAAF,GAAAiC,EAAA1R,EAAA,IAAA6P,EAAA7P,EAAA,KAAA8P,EAAA9P,EAAA,KAAA+P,EAAA/P,EAAA,KAAAgQ,EAAAhQ,EAAA,GAqCeiQ,gBAzBA,WACX,OAAOE,YAAa,CAChBwB,OAAQ,CACJC,QAAS,EACTC,eAAgB,QAChBC,SAAU,MAoBP7B,CAf8C,SAACc,GAC1D,OACIrB,EAAAre,EAAA2f,cAACnB,EAAA,EAAD,CAASkC,MAAOhB,EAAMiB,cAClBtC,EAAAre,EAAA2f,cAAClB,EAAA,EAAD,CACI9N,UAAWiQ,IACXC,GAAInB,EAAMoB,UACVC,aAAW,eACXf,QAAS,CAAE5P,KAAMsP,EAAMM,QAAQM,SAE9BZ,EAAMsB,kCC/BvBC,EAAAC,QAAiBvS,EAAAwS,EAAuB,2ECAxCxS,EAAAyS,EAAAvc,EAAA,sBAAAwc,IAAA1S,EAAAyS,EAAAvc,EAAA,sBAAAyc,IAAA3S,EAAAyS,EAAAvc,EAAA,sBAAA0c,IAAA5S,EAAAyS,EAAAvc,EAAA,sBAAA2c,IAAA7S,EAAAyS,EAAAvc,EAAA,sBAAA4c,IAAA9S,EAAAyS,EAAAvc,EAAA,sBAAA6c,IAAA/S,EAAAyS,EAAAvc,EAAA,sBAAA8c,IAAAhT,EAAAyS,EAAAvc,EAAA,sBAAA+c,IAAAjT,EAAAyS,EAAAvc,EAAA,sBAAAgd,IAAAlT,EAAAyS,EAAAvc,EAAA,sBAAAid,IAAAnT,EAAAyS,EAAAvc,EAAA,sBAAAkd,IAAApT,EAAAyS,EAAAvc,EAAA,sBAAAmd,IAAArT,EAAAyS,EAAAvc,EAAA,sBAAAod,IAAAtT,EAAAyS,EAAAvc,EAAA,sBAAAqd,IAAAvT,EAAAyS,EAAAvc,EAAA,sBAAAsd,IAAAxT,EAAAyS,EAAAvc,EAAA,sBAAAud,IAAAzT,EAAAyS,EAAAvc,EAAA,sBAAAwd,IAAA1T,EAAAyS,EAAAvc,EAAA,sBAAAyd,IAAA3T,EAAAyS,EAAAvc,EAAA,sBAAA0d,IAAA5T,EAAAyS,EAAAvc,EAAA,sBAAA2d,IAAA7T,EAAAyS,EAAAvc,EAAA,sBAAA4d,IAAA9T,EAAAyS,EAAAvc,EAAA,sBAAA6d,IAAA/T,EAAAyS,EAAAvc,EAAA,sBAAA8d,IAAAhU,EAAAyS,EAAAvc,EAAA,sBAAA+d,IAAAjU,EAAAyS,EAAAvc,EAAA,sBAAAge,IAAAlU,EAAAyS,EAAAvc,EAAA,sBAAAie,IAAAnU,EAAAyS,EAAAvc,EAAA,sBAAAke,IAAApU,EAAAyS,EAAAvc,EAAA,sBAAAme,IAAArU,EAAAyS,EAAAvc,EAAA,sBAAAoe,IAAAtU,EAAAyS,EAAAvc,EAAA,sBAAAqe,IAAAvU,EAAAyS,EAAAvc,EAAA,sBAAAse,IAAAxU,EAAAyS,EAAAvc,EAAA,sBAAAue,IAAAzU,EAAAyS,EAAAvc,EAAA,sBAAAwe,IAAA1U,EAAAyS,EAAAvc,EAAA,sBAAAye,IAAA3U,EAAAyS,EAAAvc,EAAA,sBAAA0e,IAAA5U,EAAAyS,EAAAvc,EAAA,sBAAA2e,IAAA7U,EAAAyS,EAAAvc,EAAA,sBAAA4e,IAAA9U,EAAAyS,EAAAvc,EAAA,sBAAA6e,IAAO,IAAMrC,EAA6B,6BAC7BC,EAAyB,yBACzBC,EAA4B,4BAC5BC,EAA6B,6BAC7BC,EAA8B,8BAC9BC,EAAsC,iCACtCC,EAAkC,kCAClCC,EAAqB,qBACrBC,EAAmC,mCACnCC,EAAyB,yBACzBC,EAAuC,uCACvCC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAA2B,2BAC3BC,EAAkB,kBAClBC,EAAsB,sBACtBC,EAAe,eACfC,EAAqB,qBACrBC,EAA8B,8BAE9BC,EAA0B,WACnC,MAAO,CACH5jB,KAAMyiB,IAIDoB,EAAmB,SAACkB,GAC7B,MAAO,CACH/kB,KAAM0iB,EACN5hB,QAASikB,IAIJjB,EAAqB,SAACkB,GAC/B,MAAO,CACHhlB,KAAM2iB,EACN7hB,QAASkkB,IAIJjB,EAAsB,SAACkB,GAChC,MAAO,CACHjlB,KAAM4iB,EACN9hB,QAASmkB,IAIJjB,EAAwB,SAACe,GAClC,MAAO,CACH/kB,KAAM6iB,EACN/hB,QAASikB,IAIJd,EAA0B,SAACe,GACpC,MAAO,CACHhlB,KAAM8iB,EACNhiB,QAASkkB,IAIJd,EAA2B,SAACe,GACrC,MAAO,CACHjlB,KAAM+iB,EACNjiB,QAASmkB,IAIJd,EAAgB,SAACY,GAC1B,MAAO,CACH/kB,KAAMgjB,EACNliB,QAASikB,IAIJX,EAA2B,SAACY,GACrC,MAAO,CACHhlB,KAAMijB,EACNniB,QAASkkB,IAIJX,EAAmB,SAACa,GAC7B,MAAO,CACHllB,KAAMkjB,EACNpiB,QAASokB,IAIJZ,EAA8B,SAACU,GACxC,MAAO,CACHhlB,KAAMmjB,EACNriB,QAASkkB,IAIJT,EAAgB,SAACS,GAC1B,MAAO,CACHhlB,KAAMojB,EACNtiB,QAASkkB,IAIJR,EAAkB,SAACQ,GAC5B,MAAO,CACHhlB,KAAMqjB,EACNviB,QAASkkB,IAIJP,EAAsB,SAACU,GAChC,MAAO,CACHnlB,KAAMsjB,EACNxiB,QAASqkB,IAIJT,EAAa,SAACM,GACvB,MAAO,CACHhlB,KAAMujB,EACNziB,QAASkkB,IAIJL,EAAgB,SAACM,GAC1B,MAAO,CACHjlB,KAAMwjB,EACN1iB,QAASmkB,IAIJL,EAAW,SAACQ,GACrB,MAAO,CACHplB,KAAMyjB,EACN3iB,QAASskB,IAIJP,EAAgB,SAACI,GAC1B,MAAO,CACHjlB,KAAM0jB,EACN5iB,QAASmkB,IAIJH,EAAsB,SAACO,GAChC,MAAO,CACHrlB,KAAM2jB,EACN7iB,QAASukB,0cCtHDrF,cAnBD,SAACC,GACZ,OAAOC,YAAajgB,OAAAqlB,EAAA,EAAArlB,CAAA,CAChBslB,YAAa,CACTC,UAAW,SAEdvF,EAAMwF,YAAYC,KAAK,MAAQ,CAC5BH,YAAa,CACTI,SAAU,aAYV3F,CAN+C,SAACc,GAC5D,OACI8E,EAAAxkB,EAAA2f,cAAA,OAAKI,UAAWL,EAAMM,QAAQmE,YAAaM,IAAKC,IAAaC,IAAI,0FCdnEC,EAAYC,YAAW,SAAChG,GAC1B,MAAO,CACHiG,SAAU,CACNxF,MAAOT,EAAMU,QAAQC,KAAKC,QAC1BsF,UAAW,CACPC,gBAAiBnG,EAAMoG,UAAUC,6BAErCC,qBAAsB,CAClBC,QAAS,GAEbC,qBAAsB,CAClB/F,MAAOT,EAAMU,QAAQ+F,OAAOC,MAC5BP,gBAAiBnG,EAAMoG,UAAUO,+BACjCT,UAAW,CACPC,gBAAiBnG,EAAMoG,UAAUQ,uCAI7CC,iBAAkB,GAClBC,iBAAkB,GAClBC,aAAc,CACVC,YAAa,QAEjBC,gBAAiB,CACb1G,SAAU,OACV2G,cAAe,OACf1G,WAAY,KAEhB2G,OAAQ,CACJH,YAAahH,EAAMoH,QAAQ,OAwExBC,EAnEW,SAAArmB,GAUP,IATfsmB,EASetmB,EATfsmB,SACAC,EAQevmB,EARfumB,SACAC,EAOexmB,EAPfwmB,WACAC,EAMezmB,EANfymB,iBAOMtG,EAAU4E,IACV2B,EAAUC,cACVC,EAAWC,cAiBjB,OACIlC,EAAAxkB,EAAA2f,cAACgH,EAAA,EAAD,CACIrG,QAAM,EACNsG,WAhBAT,EAASnV,YAELmV,EAAS5U,WAAa4U,EAAS5U,UAAUvQ,OAAS,IAK/CylB,EAASI,SAASC,WAAWX,EAASnV,UAU7C+V,QAAS,WACLT,GAAiB,GACjBC,EAAQxT,KAAKoT,EAASvV,OAE1BoW,SAAUX,EACVrG,QAAS,CACL5P,KAAM4P,EAAQ8E,SACd8B,SAAU5G,EAAQ2F,iBAClBqB,SAAUhH,EAAQ0F,kBAEtB3F,WAAwB,IAAbqG,EAAoBpG,EAAQgG,OAAS,IAG5CG,EAASrV,UACT0T,EAAAxkB,EAAA2f,cAACsH,EAAA,EAAD,CAAclH,UAAWC,EAAQ4F,cAC7BpB,EAAAxkB,EAAA2f,cAACuH,EAAAlnB,EAAD,CACI4Q,KAAMuV,EAASrV,SACf4P,MAAOyF,EAAStV,WAAa,YAC7BsW,KAAM,KAKdhB,EAAStV,WACT2T,EAAAxkB,EAAA2f,cAACyH,EAAA,EAAD,CACI3H,QAAS0G,EAAStV,UAClBmP,QAAS,CAAEP,QAASO,EAAQ8F,qBC3BjClH,eA7DA,SAACC,GACZ,OAAOC,YAAajgB,OAAAqlB,EAAA,EAAArlB,CAAA,CAChBwoB,YAAa,CACTC,MAAO,UAEVzI,EAAMwF,YAAYC,KAAK,MAAQ,CAC5B+C,YAAa,CACTC,MAAO,aAsDR1I,CAhDoD,SAACc,GAChE,IAAyB,IAArBA,EAAM6H,WACN,OAAO/C,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,MAiCX,OACIhD,EAAAxkB,EAAA2f,cAAC8H,EAAA,EAAD,CACIzH,QAAS,CAAE0H,MAAOhI,EAAMM,QAAQqH,aAChCM,KAAMjI,EAAM6H,WACZK,QAAS,WAAclI,EAAM4G,kBAAiB,KAE9C9B,EAAAxkB,EAAA2f,cAACkI,EAAA,EAAD,KAnCGnI,EAAMoI,SAASC,IAAI,SAAC9H,GAAqC,IAAA+H,EACjC/H,EAAnB1O,UACF0W,QAFsD,IAAAD,EACxC,GADwCA,GAEzBD,IAAI,SAAC9U,GACpC,OACIuR,EAAAxkB,EAAA2f,cAACuI,EAAA,EAAD,CAAUnpB,IAAKkU,EAASrC,KAAMuX,IAAI,EAAMxX,UAAU,OAC9C6T,EAAAxkB,EAAA2f,cAACyI,EAAD,CACIjC,SAAUlT,EACVmT,UAAU,EACVE,iBAAkB5G,EAAM4G,iBACxBD,YAAoC,IAAxBpT,EAASoT,gBAMrC,OACI7B,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,CAAUzoB,IAAKkhB,EAAKrP,MAChB4T,EAAAxkB,EAAA2f,cAACyI,EAAD,CACIjC,SAAUlG,EACVmG,UAAU,EACVE,iBAAkB5G,EAAM4G,iBACxBD,YAAgC,IAApBpG,EAAKoG,aAEpB4B,SCqINI,eAfS,SAAC7d,GACrB,MAAO,CACH1C,MAAO0C,EAAM8d,YAAYxgB,MACzBgZ,UAAWtW,EAAM8d,YAAYxH,YAYG,KARrB,SAACyH,EAAiBC,EAAoBC,GACrD,OAAO5pB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4pB,GACAF,GACAC,IAIIH,CAA2CzJ,YA5J3C,SAACC,GACZ,OAAOC,YAAajgB,OAAAqlB,EAAA,EAAArlB,CAAA,CAChB8pB,eAAgB,CACZC,aAAc/J,EAAMoH,QAAQ,IAEhC4C,gBAAiB,CACbC,QAAS,OACTC,SAAU,EACVC,WAAY,OAEhBtY,SAAU,CACN0O,SAAU,QAEd6J,gBAAiB,CACbD,WAAY,QAEfnK,EAAMwF,YAAYC,KAAK,MAAQ,CAC5BqE,eAAgB,CACZI,SAAU,OA0IgCnK,CApIC,SAACc,GACxD,IAAM6G,EAAUC,cAD+E0C,EAE/DC,mBAAS,MAFsDC,EAAAvqB,OAAAwqB,EAAA,EAAAxqB,CAAAqqB,EAAA,GAExFI,EAFwFF,EAAA,GAE9EG,EAF8EH,EAAA,GAAAI,EAGjDL,oBAAS,GAHwCM,EAAA5qB,OAAAwqB,EAAA,EAAAxqB,CAAA2qB,EAAA,GAGxFE,EAHwFD,EAAA,GAGtEE,EAHsEF,EAAA,GAKzFG,EAAczW,YAAsBuM,EAAM5X,OAM1C+hB,EAAyB,WAC3BN,EAAY,OAgBhB,OACI/E,EAAAxkB,EAAA2f,cAACmK,EAAA,EAAD,CAAQC,SAAS,SAAShK,UAAWL,EAAMM,QAAQgK,WAC/CxF,EAAAxkB,EAAA2f,cAACsK,EAAA,EAAD,CAAS/oB,QAAQ,SACbsjB,EAAAxkB,EAAA2f,cAACuK,EAAA,EAAD,CACIC,KAAK,QACL7K,MAAM,UACNyH,QAAS,WACL4C,GAAkB,KAGtBnF,EAAAxkB,EAAA2f,cAACuH,EAAAlnB,EAAD,CAAM4Q,KAAMwZ,IAASjD,KAAM,KAE/B3C,EAAAxkB,EAAA2f,cAAC0K,GAAD,CACIvC,SAAU8B,EACVrC,WAAYmC,EACZpD,iBAAkB,SAACiB,GAAgCoC,EAAkBpC,MAEzE/C,EAAAxkB,EAAA2f,cAAA,OAAKI,UAAWL,EAAMM,QAAQ2I,gBAC1BnE,EAAAxkB,EAAA2f,cAAC2K,EAAA,EAAD,CAAY3J,aAAa,eAAeG,UAAWpB,EAAMoB,WACrD0D,EAAAxkB,EAAA2f,cAAC+E,EAAD,QAGRF,EAAAxkB,EAAA2f,cAAC4K,EAAA,EAAD,CAAQjG,KAAK,MACTE,EAAAxkB,EAAA2f,cAAA,OAAKI,UAAWL,EAAMM,QAAQ6I,kBACM,IAA/BnJ,EAAM5X,MAAM0iB,gBACbhG,EAAAxkB,EAAA2f,cAAC8K,EAAA,EAAD,CAAYvpB,QAAQ,KAAKoe,MAAM,UAAUS,UAAWL,EAAMM,QAAQtP,UAAlE,oBAGgC,IAA/BgP,EAAM5X,MAAM0iB,gBACbhG,EAAAxkB,EAAA2f,cAAC8K,EAAA,EAAD,CAAYvpB,QAAQ,KAAKoe,MAAM,UAAUS,UAAWL,EAAMM,QAAQtP,UAAlE,uBAKR8T,EAAAxkB,EAAA2f,cAAC+K,EAAA,EAAD,CAAShK,MAAM,cACX8D,EAAAxkB,EAAA2f,cAACuK,EAAA,EAAD,CAAY5K,MAAM,UAAUyH,QAvCpB,WACpBtjB,OAAOkkB,KAAK,gDAAiD,YAuC7CnD,EAAAxkB,EAAA2f,cAACuH,EAAAlnB,EAAD,CAAM4Q,KAAM+Z,IAAexD,KAAM,MAIrCzH,EAAMkL,kBACNpG,EAAAxkB,EAAA2f,cAACkL,EAAA7qB,EAAD,MAEJwkB,EAAAxkB,EAAA2f,cAAC+K,EAAA,EAAD,CAAShK,MAAM,WACX8D,EAAAxkB,EAAA2f,cAACuK,EAAA,EAAD,CACI5K,MAAM,UACNwL,gBAAc,sBACdC,gBAAc,OACdhE,QArEU,SAACiE,GAC3BzB,EAAYyB,EAAMC,iBAsEFzG,EAAAxkB,EAAA2f,cAACuH,EAAAlnB,EAAD,CAAM4Q,KAAMsa,IAAkB/D,KAAM,MAG5C3C,EAAAxkB,EAAA2f,cAACwL,EAAA,EAAD,CACIzgB,GAAG,sBACH4e,SAAUA,EACV8B,mBAAoB,KACpBC,aAAc,CACVC,SAAU,MACVC,WAAY,SAEhBC,gBAAiB,CACbF,SAAU,MACVC,WAAY,SAEhB5D,KAAM8D,QAAQnC,GACd1B,QAASiC,GAETrF,EAAAxkB,EAAA2f,cAAC+L,EAAA,EAAD,CACI3E,QAAS,WAjFrBrH,EAAM5X,MAAM0iB,eACZjE,EAAQxT,KAAKtD,IAAqBG,UAC3B8P,EAAM5X,MAAM6jB,eAAiBjM,EAAM5X,MAAM8jB,qBAChDrF,EAAQxT,KAAK/C,IAAoBJ,SAErCia,MA2EY,WAOArF,EAAAxkB,EAAA2f,cAAC+L,EAAA,EAAD,CACI3E,QAAS,WACL8C,IACAgC,GAAYC,WAHpB,iBCtJLC,GAT4B,WACvC,OACIvH,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,KACIhD,EAAAxkB,EAAA2f,cAACqK,GAAD,CAAWY,kBAAkB,IAC7BpG,EAAAxkB,EAAA2f,cAACqM,EAAA,EAAD,iBCPNC,GAAUxoB,OAAeC,mCAEzBwoB,GAAgB,CAClBC,UAAWF,GAAOE,UAClBC,aAAY,GAAArnB,OAAKknB,GAAOroB,UAAZ,aACZyoB,cAAe,OACfC,MAAK,UAAAvnB,OAAYknB,GAAOM,UACxBC,UAAWP,GAAOnoB,cAClB2oB,cAAc,EACdC,yBAA0BT,GAAOroB,UACjC+oB,4BAA4B,EAC5BC,sBAAsB,GAKXC,GAFeC,4BAAkBZ,ICiIjCa,GA/HQ,WACnB,IACMC,EAAaH,GAEbI,EAAU,SAAC3V,GACb,QAAmB,KAAVA,GAA0B,OAAVA,QAA4BlV,IAAVkV,IAWzC4V,EAAa,WAA0B,IAAAC,EAAAC,EACnCC,EAAW,aAAAtoB,OAAA,QAAAooB,EAAgBH,EAAWM,SAASd,iBAApC,IAAAW,IAAiD,GAAjD,KAAApoB,OAAA,QAAAqoB,EAAuDJ,EAAWM,SAASnB,iBAA3E,IAAAiB,IAAwF,IACnGG,EAAWC,eAAeC,QAAQJ,GACxC,GAAIE,EACA,OAAO7hB,KAAKC,MAAM4hB,GAAUG,UAK9BC,EAAqB,SAACC,GACxB,IAAMC,EAAO,CACTC,aAAcF,GAEZG,EAAUb,IACVc,EAAU,CACZC,cAAa,UAAAlpB,OAAYgpB,IAQ7B,OANqBxlB,IAChB2lB,OAAO,CACJF,YAEHrtB,KAAKwtB,KAAUnnB,oBAAqB6mB,IAoDvCO,EAAiB,WACnB,OAAOZ,eAAeC,QAzFL,iBAmHrB,MAAO,CACHY,YA3EgB,WAChB,IAAMN,EAAUb,IAEVc,EAAU,CACZC,cAAa,UAAAlpB,OAAYgpB,IAE7B,OAAOxlB,IAAMO,IAAIqlB,KAAUpnB,YAAa,CAAEinB,YAAWnf,KAAK,SAACvG,GACvD,OAAOA,EAAS1F,QAqEpB0rB,cAjEkB,SAAC5O,EAAY5M,GAC/B,IAAMyb,EAAcf,eAAeC,QArDlB,gBA6DjB,OANIR,EAAQsB,GACRvB,EAAWwB,iBAEX9O,EAAM6G,QAAQxT,KAAKD,GAGhB,MAyDP2b,iBAtDqB,SAAC/O,EAAY5M,GAClC,OA1Da,WACb,IACI,OAAOrP,OAAOirB,OAASjrB,OAAOkrB,IAChC,MAAO/f,GACL,OAAO,GAsDPggB,IACAC,uBACOrK,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,OAGPhD,EAAAxkB,EAAA2f,cAACmP,EAAA,kBAAD,CACIC,YAAa/B,EACbgC,gBACI,SAACC,GACGzB,eAAe0B,QA1Ed,eA0EoCD,EAAQE,cAC7CzP,EAAM6G,QAAQxT,KAAKD,KAI3B0R,EAAAxkB,EAAA2f,cAACyP,GAAD,QAwCRC,QAvBS,eAAAxvB,EAAAhB,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAG,SAAAC,IAAA,IAAAovB,EAAA,OAAAjkB,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAERqtB,EAAmB,UAFXttB,EAAAE,KAAA,EAGiBysB,EAAWuC,qBAAqB,CAAEC,cAAepB,MAHlE,cAGFkB,EAHEjvB,EAAAS,KAXZ0sB,eAAeiC,WArFE,gBAgGLpvB,EAAAE,KAAA,EAMFysB,EAAW0C,aANT,OAQPjsB,OAAegjB,SAASkJ,KAAOL,EAAWrnB,IARnC5H,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,SAURuvB,QAAQC,MAARxvB,EAAAgB,IACCoC,OAAegjB,SAASkJ,KAAO,IAXxB,yBAAAtvB,EAAAkB,SAAArB,EAAA,kBAAH,yBAAAL,EAAA4B,MAAAC,KAAAC,YAAA,GAwBTmuB,mBATuB,WACvB,OAAOnC,EAAmB,UAS1BoC,gBA7BoB,WACpB,OAAQ9C,EAAQO,eAAeC,QA7Fd,kBA0HjBW,kBA3He,GCwDRvC,GA5DM,WACjB,IAAImE,EAAmB,KAiDvB,MAAO,CACHC,QAxCY,WACZ,OAAIlD,GAAcgD,kBALA,WAClB,QAJmB,MADNzY,EAKG0Y,IAJmB,OAAV1Y,QAA4BlV,IAAVkV,GAD/B,IAACA,EAUL4Y,GACO,IAAI3kB,QAAQ,SAACC,GAChBA,EAAQwkB,KAITjD,GAAcsB,cAAcxf,KAAK,SAACshB,GAErC,OADAH,EAAOG,IAKR,IAAI5kB,QAAQ,SAAC6kB,EAAGC,GACnBA,OA0BJC,MAtBU,SAAC5Q,GACX,OAAOqN,GAAcuB,cAAc5O,EAAOvP,IAAaE,YAsBvDkgB,cAfkB,SAAC7Q,GACnB,OAAOqN,GAAc0B,iBAAiB/O,EAAOvP,IAAaE,YAe1Dyb,OApBQ,eAAAjsB,EAAAhB,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAG,SAAAC,IAAA,OAAAmL,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACLwsB,GAAcsC,UADT,wBAAAhvB,EAAAkB,SAAArB,MAAH,yBAAAL,EAAA4B,MAAAC,KAAAC,YAAA,GAqBR0O,UAbc,WACd,OAAO0c,GAAc+C,sBAarB1B,eAVmB,WACnB,OAAOrB,GAAcqB,mBA/CR,GCmDNoC,GArDK,CAGhBC,kBAAmB,SAAClK,GAChBhe,IAAMmoB,aAAaC,QAAQC,IAA3B,eAAA/wB,EAAAhB,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAA+B,SAAAC,EAAOywB,GAAP,IAAAE,EAAAtC,EAAAP,EAAA,OAAA3iB,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACrBswB,EAAaF,EADQtwB,EAAAE,KAAA,EAEDsrB,GAAYuC,iBAFX,YAErBG,EAFqBluB,EAAAS,MAAA,CAAAT,EAAAE,KAAA,eAKnBytB,EAAe,CACf8C,OAAQ,oBAEZ9C,EAAOnvB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAmvB,GADA,IAEHC,cAAa,UAAAlpB,OAAYwpB,KAG7BsC,EAAW7C,QAAUA,EAbE3tB,EAAAoI,OAAA,SAchBooB,GAdgB,cAAAxwB,EAAAoI,OAAA,SAkBpB8C,QAAQ8kB,OAAO,IAAI/uB,MAxBb,2BAMc,yBAAAjB,EAAAkB,SAAArB,MAA/B,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,GAmBG,SAACkuB,GAGA,OADAtJ,EAAQxT,KAAK5C,IAAaI,eACnBhF,QAAQ8kB,OAAOR,KAG1BtnB,IAAMmoB,aAAapoB,SAASsoB,IAAI,SAACtoB,GAE7B,OAAOA,GACR,SAACunB,GAgBA,OAtDiB,WACzB,OADyFluB,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAA5B,IAC/C0G,qBAuCFA,CAAqBwnB,EAAM5D,WAEyB,IAAhD4D,EAAM9hB,WAAWgjB,SAtCZ,0BAuCLxK,EAAQxT,KAAK5C,IAAaC,MAIA,MAA1Byf,EAAMvnB,SAASuC,QAEf0b,EAAQxT,KAAK5C,IAAaI,gBAK3BhF,QAAQ8kB,OAAOR,4BCvDrBmB,GAAgB,CACzBC,eAAgB,UAChBC,gBAAiB,UACjBC,oBAAqB,UACrBC,kBAAmB,UACnBC,iBAAkB,UAClBC,mBAAoB,UACpBC,uBAAwB,UACxB/L,+BAAgC,UAChCC,oCAAqC,UACrCP,4BAA6B,UAC7BsM,sBAAuB,UACvBC,mBAAoB,UACpBC,oBAAqB,UACrBC,0BAA2B,UAC3BC,iBAAkB,UAClBC,2BAA4B,UAG5BC,gBAAiB,UACjBC,kBAAmB,UACnBC,kBAAmB,UACnBC,aAAc,UAGdC,cAAe,UACfC,wBAAyB,UACzBC,mBAAoB,UAGpBC,qBAAsB,UACtBC,WAAY,UACZC,YAAa,UACbC,UAAW,UACXC,gBAAiB,UAGjBC,SAAU,UACVC,YAAa,UACbC,QAAS,UAGTC,2BAA4B,UAC5BC,6BAA8B,UAC9BC,6BAA8B,UAG9BC,+BAAgC,OAChCC,iCAAkC,OAClCC,iCAAkC,OAGlCC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,YAAa,UAEbC,sBAAuB,UACvBC,0BAA2B,UAG3BC,+BAAgC,UAChCC,uCAAwC,UACxCC,qCAAsC,UAGtCC,4BAA6B,UAC7BC,6BAA8B,UAG9BC,gCAAiC,UACjCC,iCAAkC,UAElCC,gBAAiB,UAGjBC,SAAU,CACN1O,MAAO,UACP2O,SAAU,UACVC,UAAW,UACXC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,YAAa,UACbC,UAAW,UACXC,UAAW,UACXC,UAAW,UACXC,UAAW,MAGfC,YAAa,CACTC,eAAgB,UAChBC,SAAU,UACVC,UAAW,YAIbC,GAA6B,CAC/BC,WAAY,CACRC,WAAY,qDAEhBzQ,UAAUpmB,OAAA6pB,EAAA,EAAA7pB,CAAA,GAEHmyB,IAEPzR,QAAS,CACL3gB,KAAM,QACN6gB,QAAS,CACLkW,KAAM3E,GAAcE,iBAExB0E,UAAW,CACPD,KAAM3E,GAAcI,mBAExB5R,KAAM,CACFC,QAASuR,GAAcK,mBAG/BwE,UAAW,CACPC,WAAY,CACR1lB,KAAM,CACF4U,gBAAe,GAAAjgB,OAAKisB,GAAcC,eAAnB,iBAGvB8E,eAAgB,CACZ3lB,KAAM,CACF4U,gBAAiB,SAGzBgR,SAAU,CACNC,UAAW,CACPC,WAAY,CACRC,aAAY,aAAApxB,OAAeisB,GAAcW,4BAE7CyE,oCAAqC,CACjCD,aAAY,aAAApxB,OAAeisB,GAAcW,4BAE7C0E,YAAa,CACTF,aAAY,aAAApxB,OAAeisB,GAAcI,sBAIrDkF,eAAgB,CACZL,UAAW,CACPC,WAAY,CACRC,aAAY,aAAApxB,OAAeisB,GAAcW,4BAE7CyE,oCAAqC,CACjCD,aAAY,aAAApxB,OAAeisB,GAAcW,4BAE7C0E,YAAa,CACTF,aAAY,aAAApxB,OAAeisB,GAAcG,sBAE7CoF,UAAW,CACPJ,aAAY,aAAApxB,OAAeisB,GAAcG,uBAGjD1T,MAAO,CACH6B,MAAO,OACPF,SAAU,OACVC,WAAY,MAGpBmX,cAAe,CACXpmB,KAAM,CACFkP,MAAO0R,GAAcW,0BACrB0E,YAAa,CACT/W,MAAO0R,GAAcG,uBAIjCsF,UAAW,CACPrmB,KAAM,CACFiP,WAAY,KAEhBqX,UAAW,CACPC,aAAc,CACV3R,gBAAiBgM,GAAcI,kBAC/B9R,MAAO0R,GAAcE,gBACrB9L,QAAS,KAGjBwR,mBAAoB,CAChBtX,MAAO0R,GAAcE,kBAG7B2F,oBAAqB,CACjBC,aAAc,CACVxX,MAAO0R,GAAcG,qBAEzB4F,eAAgB,CACZzX,MAAO,YAGf0X,QAAS,CACLC,UAAW,CACPjS,gBAAiBgM,GAAcY,mBAGvCsF,OAAQ,CACJ9mB,KAAM,CACF+lB,aAAc,qBAElBgB,iBAAkB,CACd/X,SAAU,OACVE,MAAO0R,GAAcC,eACrB5R,WAAY,IACZ+X,aAAc,CACV9X,MAAO0R,GAAcY,iBACrBvS,WAAY,OAIxBgY,YAAa,CACTC,MAAO,CACHC,OAAQ,YAGhBC,aAAc,CACVC,KAAM,CACFnY,MAAO0R,GAAcM,mBACrBlS,SAAU,OACVC,WAAY,KAEhBjR,KAAM,CACFgR,SAAU,SAGlBsY,oBAAqB,CACjBtnB,KAAM,CACFunB,YAAa,OAEjBrjB,MAAO,CACH8K,SAAU,SAGlBwY,YAAa,CACTxnB,KAAM,CACFkP,MAAO0R,GAAcC,eACrB5R,WAAY,IACZ+X,aAAc,CACVpS,gBAAiBgM,GAAcwC,0BAC/BlU,MAAO0R,GAAcY,iBACrBvS,WAAY,OAIxBwY,gBAAiB,CACbznB,KAAM,CACFkP,MAAO,YAGfwY,gBAAiB,CACbrY,QAAS,CACLL,SAAU,OACV2G,cAAe,YACf1G,WAAY,cASb0Y,GAFKC,KAAexC,ygBCtQ7ByC,wMAEMC,UAAiB,KAmDjBC,eAAiB,SAACztB,GACtB0tB,EAAKF,UAAL,GAAAnzB,OAAAlG,OAAAw5B,GAAA,EAAAx5B,CAAqBu5B,EAAKF,WAA1B,CAAqCxtB,0EAlDZ4tB,GAAyB,IAAAC,EAAA72B,KAClD,GAAIA,KAAKge,MAAM8Y,gBAAkBF,EAAUE,cAAe,KAAAC,EAAA,WAKtD,IAJA,IAAMC,EAAYJ,EAAUE,eAAiB,GAEtBG,EAAkBJ,EAAK7Y,MAAtC8Y,cACJI,GAAY,EAJsCC,EAAA,SAK7CC,GACL,GAAIF,EACA,cAEJA,EAAYA,IAAcD,EAAc1mB,OAAO,SAAC8mB,GAC5C,OAAOL,EAAUI,GAAG/5B,MAAQg6B,EAAMh6B,MACnCiC,QANE83B,EAAI,EAAGA,EAAIJ,EAAU13B,OAAQ83B,GAAK,EAAG,cAAAD,EAArCC,GAED,MAMR,OAAAE,EAAOJ,GAb+C,wBAAAH,EAAA,OAAAA,EAAAO,EAe1D,OAAO,6CAGeC,GAAsB,IAAAC,EAAAx3B,KAC5C,GAAIA,KAAKge,MAAM8Y,gBAAkBS,EAAUT,oBAA8Cp2B,IAA7BV,KAAKge,MAAM8Y,cAA6B,KAAAW,EACjEz3B,KAAKge,MAA5B8Y,oBADwF,IAAAW,EACxE,GADwEA,GAGlFtmB,QAAQ,SAAClU,GAEnB,IAAIu6B,EAAKhB,UAAUnH,SAASpyB,EAAaI,KAAzC,CAIA,IAAMq6B,EAAU,CACZl4B,QAASvC,EAAauC,QACtBmqB,aAAc,CACVC,SAAU,SACVC,WAAY,WAKpB2N,EAAKxZ,MAAMhhB,gBAAgBC,EAAasC,QAASm4B,GAGjDF,EAAKf,eAAex5B,EAAaI,KAGjCm6B,EAAKxZ,MAAMtgB,eAAeT,EAAaI,0CAU/C,OAAOylB,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,aA1DQ6R,aAqERC,eAAajR,YANJ,SAAC7d,GACrB,MAAO,CACHguB,cAAehuB,EAAM7L,aAAa46B,mBAIW,CAAEn6B,qBAA3BipB,CAA6C4P,+cCvEnEuB,6CAEF,SAAAA,EAAmB9Z,GAAY,IAAA0Y,EAAA,OAAAv5B,OAAA46B,GAAA,EAAA56B,CAAA6C,KAAA83B,IAC3BpB,EAAAsB,EAAAC,KAAAj4B,KAAMge,IACDlV,MAAQ,CACTovB,UAAU,GAHaxB,wDAY3B,OAAK12B,KAAK8I,MAAMovB,SAKZpV,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,KACIhD,EAAAxkB,EAAA2f,cAACka,GAAA,EAAD,CAAMja,WAAS,EAACqG,QAAS,EAAG6T,QAAQ,SAASja,WAAW,SAASka,UAAU,UACvEvV,EAAAxkB,EAAA2f,cAACka,GAAA,EAAD,CAAM5Z,MAAI,EAACC,GAAI,IACXsE,EAAAxkB,EAAA2f,cAAA,4CAPLje,KAAKge,MAAMsB,gBAfFqY,aAAtBG,GASYQ,yBAA4B,WACtC,MAAO,CAAEJ,UAAU,IAqBZJ,UCxCFS,GAAkB,WAC3B,MAAO,CACHr7B,KAJmB,gBCgBZs7B,eAAW7R,YAAQ,KAAM,CAAE4R,oBAAhB5R,CANU,SAAC3I,GAGjC,OAFAA,EAAMua,kBAECpO,GAAYyE,MAAM5Q,MCLdwa,eAJY,SAACxa,GACxB,OAAOmM,GAAY0E,cAAc7Q,aCW/Bya,GAA2B,SAACnK,GAC9B,sBAAAnwB,EAAAhB,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAO,SAAAC,EAAOC,GAAP,OAAAkL,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACHyvB,EAAKloB,MAAM+K,QAAQ,SAACunB,GAAoB,IAAAC,EAAAC,EAAAC,EACpC,OAAQH,GACJ,KAAKI,KAAajrB,mBACdpP,EAAS,CACLvB,KAXI,eAYJc,SAAO26B,EAAA,GAAAx7B,OAAAqlB,EAAA,EAAArlB,CAAAw7B,EACFnpB,KAAUS,eAAgB,GADxB9S,OAAAqlB,EAAA,EAAArlB,CAAAw7B,EAEFnpB,KAAU3B,oBAAqB,GAF7B1Q,OAAAqlB,EAAA,EAAArlB,CAAAw7B,EAGFnpB,KAAUupB,iBAAkB,GAH1BJ,KAMX,MACJ,KAAKG,KAAa7oB,cACdxR,EAAS,CACLvB,KArBI,eAsBJc,SAAO46B,EAAA,GAAAz7B,OAAAqlB,EAAA,EAAArlB,CAAAy7B,EACFppB,KAAUS,eAAgB,GADxB9S,OAAAqlB,EAAA,EAAArlB,CAAAy7B,EAEFppB,KAAUupB,iBAAkB,GAF1BH,KAKX,MACJ,KAAKE,KAAarpB,eACdhR,EAAS,CACLvB,KA9BI,eA+BJc,SAAO66B,EAAA,GAAA17B,OAAAqlB,EAAA,EAAArlB,CAAA07B,EACFrpB,KAAUC,gBAAiB,GADzBtS,OAAAqlB,EAAA,EAAArlB,CAAA07B,EAEFrpB,KAAUupB,iBAAkB,GAF1BF,QAzBpB,wBAAAl6B,EAAAkB,SAAArB,MAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,ICiCE+4B,GAAqB,CACvBC,iBDsDsB,WACtB,sBAAAC,EAAA/7B,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAO,SAAA+I,EAAO7I,EAAoB06B,GAA3B,IAAA/yB,EAAA,OAAAuD,EAAArL,EAAAI,KAAA,SAAA6I,GAAA,cAAAA,EAAA3I,KAAA2I,EAAA1I,MAAA,cACHJ,EAAS,CAAEvB,KAjGU,kBAgGlBqK,EAAA1I,KAAA,EAGGJ,EAtDV,eAAAgO,EAAAtP,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAO,SAAA2I,EAAOzI,GAAP,IAAA6vB,EAAA,OAAA3kB,EAAArL,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,cAAAsI,EAAAtI,KAAA,EACgBsrB,GAAYoE,UAD5B,cACGD,EADHnnB,EAAA/H,KAEHX,EAAS,CACLvB,KA5Ce,cA6Cfc,QAASswB,IAJVnnB,EAAAtI,KAAA,EAMGJ,EAASg6B,GAAyBnK,IANrC,wBAAAnnB,EAAAtH,SAAAqH,MAAP,gBAAA2F,GAAA,OAAAJ,EAAA1M,MAAAC,KAAAC,YAAA,IAmDO,OAKKmG,EAAU+yB,IAAWvS,YAArBxgB,MACR3H,GA1C4B,KADd4R,EA2CQjK,GA1Cb0iB,eACF,CACH5rB,KA3DkB,iBA4DlBc,QAAS,CACLohB,UAAWrR,IAAqBC,aAKb,IAA3BqC,EAAS4Z,cACF,CACH/sB,KApEkB,iBAqElBc,QAAS,CACLohB,UAAW9Q,IAAoBL,cAKV,IAA7BoC,EAAS+oB,gBACF,CACHl8B,KA7EkB,iBA8ElBc,QAAS,CACLohB,UAAWjR,IAAsBC,YAKtC,CACHlR,KArFsB,iBAsFtBc,QAAS,CACLohB,UAAW3Q,IAAaI,iBAa5BpQ,EAAS,CACLvB,KAtGkB,mBA8FnB,wBAAAqK,EAAA1H,OArCU,IAACwQ,GAqCX/I,MAAP,gBAAA+xB,EAAAC,GAAA,OAAAJ,EAAAn5B,MAAAC,KAAAC,YAAA,KC5CW0mB,eApBS,SAAC7d,GACrB,MAAO,CACH1C,MAAO0C,EAAM8d,YAAYxgB,MACzBmzB,gBAAiBzwB,EAAM8d,YAAY2S,gBACnCna,UAAWtW,EAAM8d,YAAYxH,YAgBG4Z,GARrB,SAACnS,EAAiBC,EAAoBC,GACrD,OAAO5pB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4pB,GACAF,GACAC,IAIIH,CA7C6B,SAAC3I,GACzC,IAAM6G,EAAUC,cAERmU,EAAqBjb,EAArBib,iBAmBR,OAjBAO,oBAAU,WACNrP,GAAYxb,YAAYxB,KAAK,WACzB8rB,KACD,WACCpU,EAAQxT,KAAK5C,IAAaI,kBAE/B,CAACoqB,EAAkBpU,IAEtB2U,oBAAU,YACwB,IAA1Bxb,EAAMub,kBACFvb,EAAM5X,MAAM0iB,iBACZ2Q,SAASza,MAAQ,mBAErB6F,EAAQxT,KAAK2M,EAAMoB,aAExB,CAACpB,EAAMub,gBAAiBvb,EAAM5X,MAAOye,EAAS7G,EAAMoB,YAEhD0D,EAAAxkB,EAAA2f,cAACyP,GAAD,QCtBI/G,eAAQ,KAAM,CAAE4R,oBAAhB5R,CAPuB,SAAC3I,GAInC,OAHAA,EAAMua,kBACNpO,GAAYC,SAELtH,EAAAxkB,EAAA2f,cAACyP,GAAD,kBCiCIxQ,eApCA,WACX,OAAOE,YAAa,CAChB1O,KAAM,CACFgrB,OAAQ,OACRlc,UAAW,UAEfmc,cAAe,CACXrS,WAAY,OACZsS,cAAe,WA4BZ1c,CAvBqC,SAACc,GACjD,OACI8E,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,KACIhD,EAAAxkB,EAAA2f,cAACqK,GAAD,CAAWY,kBAAkB,IAC7BpG,EAAAxkB,EAAA2f,cAAA,OAAKI,UAAWL,EAAMM,QAAQ5P,MAC1BoU,EAAAxkB,EAAA2f,cAAA,iCACA6E,EAAAxkB,EAAA2f,cAAC8K,EAAA,EAAD,CAAY1K,UAAWL,EAAMM,QAAQqb,eAArC,oHAGA7W,EAAAxkB,EAAA2f,cAAC4b,GAAA,EAAD,CACIr6B,QAAQ,WACRoe,MAAM,UACNyH,QAAS,WACL8E,GAAYC,WAJpB,yBCqCD0P,GA9C8D,SAAA37B,GAAoD,IAAtCw5B,EAAsCx5B,EAAjD8Q,UAAyB8qB,EAAwB58B,OAAA68B,GAAA,EAAA78B,CAAAgB,EAAA,eACvH4mB,EAAWC,cACXH,EAAUC,cAF6G0C,EAIrGC,mBAAsB,MAJ+EC,EAAAvqB,OAAAwqB,EAAA,EAAAxqB,CAAAqqB,EAAA,GAItH8G,EAJsH5G,EAAA,GAIhHuS,EAJgHvS,EAAA,GAAAI,EAK7EL,oBAAS,GALoEM,EAAA5qB,OAAAwqB,EAAA,EAAAxqB,CAAA2qB,EAAA,GAKtHoS,EALsHnS,EAAA,GAKpGoS,EALoGpS,EAAA,GAsB7H,OAfAyR,oBAAU,WACNr8B,OAAAuM,EAAA,EAAAvM,CAAAwM,EAAArL,EAAAC,KAAC,SAAAC,IAAA,IAAA47B,EAAA,OAAAzwB,EAAArL,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEuCsrB,GAAYoE,UAFnD,OAGiC,QADpB6L,EAFbz7B,EAAAS,MAIW66B,EAAQG,GAERvV,EAAQxT,KAAK5C,IAAaI,eANrC,cAAAlQ,EAAAC,KAAA,EASOu7B,GAAoB,GAT3Bx7B,EAAA07B,OAAA,2BAAA17B,EAAAkB,SAAArB,EAAA,mBAADrB,IAYD,CAACw6B,EAAW9S,KAEU,IAArBqV,GAAsC,OAAT5L,EAEzBxL,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAUP,EACPjX,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAAC0Z,EAAD,SAMS,IAArBuC,EAEIpX,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CACInb,GAAI,CACAgG,SAAU1W,IAAaC,KACvB5F,MAAO,CAAE0xB,KAAMzV,MAMxBjC,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,OC1DL2U,GAAe1tB,eAAK,WAAsB,OAAOE,EAAAC,EAAA,GAAAC,KAAAF,EAAAG,KAAA,cA6DxCuZ,eAfS,SAAC7d,GACrB,MAAO,CACHywB,gBAAiBzwB,EAAM8d,YAAY2S,gBACnCnzB,MAAO0C,EAAM8d,YAAYxgB,QAYO,KARrB,SAACygB,EAAiBC,EAAoBC,GACrD,OAAO5pB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4pB,GACAF,GACAC,IAIIH,CAtDqC,SAAC3I,GACjD,IAAM0c,EAAmBC,kBAAQ,WAC7B,OAAI3c,EAAMub,gBACgBvoB,YAAuBgN,EAAM5X,OAETigB,IAAI,SAACjV,GAC3C,OACI0R,EAAAxkB,EAAA2f,cAAC2c,GAAD,CACI1rB,KAAMkC,EAAMlC,KACZ7R,IAAK+T,EAAMlC,KACX2rB,OAAK,EACL5rB,UAAWmC,EAAMnC,cAQ1B6T,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,OACR,CAAC9H,EAAMub,gBAAiBvb,EAAM5X,QAEjC,OAA8B,IAA1B4X,EAAMub,gBACCzW,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,MAIPhD,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,KACIhD,EAAAxkB,EAAA2f,cAACqK,GAAD,CAAWY,kBAAkB,IAC7BpG,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,KACKI,EACD5X,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,KACIxX,EAAAxkB,EAAA2f,cAACwc,GAAD,WC5BdA,GAAe1tB,eAAK,WAAsB,OAAOE,EAAAC,EAAA,GAAAC,KAAAF,EAAAG,KAAA,cAGjD0tB,GAAoBC,YAAwB,CAAEC,iBAAkB,UAGhEnW,GAAUoW,cAChBnM,GAAYC,kBAAkBlK,IAE9B,IA+CeqW,GA/CO,WAClB,OACIpY,EAAAxkB,EAAA2f,cAACkd,EAAA,EAAD,CAAgBL,kBAAmBA,IAC/BhY,EAAAxkB,EAAA2f,cAACmd,EAAA,EAAD,CAAkBje,MAAOke,IACrBvY,EAAAxkB,EAAA2f,cAACqd,EAAA,EAAD,CAAkBC,SAAU,GACxBzY,EAAAxkB,EAAA2f,cAACud,GAAD,MACA1Y,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAQzV,QAASA,IACb/B,EAAAxkB,EAAA2f,cAAC6H,EAAA,SAAD,CAAU2V,SAAU3Y,EAAAxkB,EAAA2f,cAACyP,GAAD,OAChB5K,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,KACIxX,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAOprB,KAAMT,IAAaC,KAAMmsB,OAAK,GACjC/X,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAACyd,GAAD,QAGR5Y,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAOprB,KAAMT,IAAaK,UACtBgU,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAACnP,GAAD,QAGRgU,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAOprB,KAAMT,IAAaE,WACtBmU,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAAC0d,GAAD,QAGR7Y,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAOprB,KAAMT,IAAaG,QACtBkU,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAACrP,GAAD,QAGRkU,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,CAAOprB,KAAMT,IAAaI,eACtBiU,EAAAxkB,EAAA2f,cAACsc,GAAD,KACIzX,EAAAxkB,EAAA2f,cAACpP,GAAD,QAGRiU,EAAAxkB,EAAA2f,cAAC2d,GAAD,MACA9Y,EAAAxkB,EAAA2f,cAACqc,EAAA,EAAD,KACIxX,EAAAxkB,EAAA2f,cAAC4d,GAAD,gECArBC,WA/CY,WAUkB,IAAAC,EAVjBnV,EAUiB3mB,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAVuB,CAChEmG,OAAK21B,EAAA,GAAA5+B,OAAAqlB,EAAA,EAAArlB,CAAA4+B,EACAvsB,KAAUC,gBAAiB,GAD3BtS,OAAAqlB,EAAA,EAAArlB,CAAA4+B,EAEAvsB,KAAUS,eAAgB,GAF1B9S,OAAAqlB,EAAA,EAAArlB,CAAA4+B,EAGAvsB,KAAUupB,iBAAkB,GAH5B57B,OAAAqlB,EAAA,EAAArlB,CAAA4+B,EAIAvsB,KAAU3B,oBAAqB,GAJ/BkuB,GAMLxC,iBAAiB,EACjBna,UAAW3Q,IAAaI,cACxByf,KAAM,MACP0N,EAA0C/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACzC,OAAQs7B,EAAO9+B,MACX,IPpBqB,gBOqBjB,OAAOC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAypB,GADP,IAEI2S,iBAAiB,IAGzB,IPzBoB,eO0BhB,OAAOp8B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAypB,GADP,IAEIxgB,MAAMjJ,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GAAMypB,EAAYxgB,OAAU41B,EAAOh+B,WAGjD,IP9BsB,iBO+BlB,OAAOb,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAypB,GADP,IAEI2S,iBAAiB,IAGzB,IPnCsB,iBOoClB,OAAOp8B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAypB,GACAoV,EAAOh+B,SAGlB,IPxCmB,cOyCf,OAAOb,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAypB,GADP,IAEI0H,KAAM0N,EAAOh+B,UAGrB,QACI,OAAO4oB,eCpBJqV,GA9Bc,WAGA,IAHCC,EAGDj8B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAH0B,CACnDk8B,YAAY,EACZC,SAAU,IACXJ,EAA0B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACzB,OAAQs7B,EAAO9+B,MACX,KAAKgN,KACD,OAAO/M,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA++B,GADP,IAEIC,YAAY,IAGpB,KAAKhyB,KACD,OAAOhN,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA++B,GADP,IAEIC,YAAY,EACZC,SAAUJ,EAAOh+B,UAGzB,KAAKoM,KACD,OAAOjN,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA++B,GADP,IAEIC,YAAY,EACZC,SAAU,KAGlB,QACI,OAAOF,aCgFJG,GA9FW,WAMM,IANLt7B,EAMKd,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GANsB,CAClDk8B,YAAY,EACZG,YAAa,GACbC,sBAAsB,EACtBC,WAAY,GACZC,sBAAsB,GACvBT,EAA6B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC5B,OAAQs7B,EAAO9+B,MACX,KAAKw/B,KACD,OAAOv/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIo7B,YAAY,IAGpB,KAAKQ,KACD,OAAOx/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIo7B,YAAY,EACZG,YAAaN,EAAOh+B,UAG5B,KAAK4+B,KACD,OAAOz/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIo7B,YAAY,EACZG,YAAa,KAGrB,KAAKO,KACD,OAAO1/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIw7B,sBAAsB,IAG9B,KAAKO,KACD,OAAO3/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIw7B,sBAAsB,EACtBC,WAAYR,EAAOh+B,UAG3B,KAAK++B,KACD,OAAO5/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEIw7B,sBAAsB,EACtBC,WAAY,KAGpB,KAAKQ,KACD,OAAO7/B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEI07B,sBAAsB,IAG9B,KAAKQ,KAML,KAAKC,KACD,OAAO//B,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEI07B,sBAAsB,IAG9B,KAAKU,KACD,OAAOhgC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEI07B,sBAAsB,IAG9B,KAAKW,KACD,IAAMC,EAAmBt8B,EAAYy7B,WAAWjsB,OAAO,SAACoC,GACpD,OAAOA,EAAK2qB,YAActB,EAAOh+B,UAGrC,OAAOb,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEI07B,sBAAsB,EACtBD,WAAYa,IAGpB,KAAKE,KACD,OAAOpgC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4D,GADP,IAEI07B,sBAAsB,IAG9B,QACI,OAAO17B,cCxEJy8B,GA9Be,WAGQ,IAHPC,EAGOx9B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAHgC,CAClEk8B,YAAY,EACZuB,kBAAmB,IACpB1B,EAAmC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAClC,OAAQs7B,EAAO9+B,MACX,KAAKgD,KACD,OAAO/C,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAsgC,GADP,IAEItB,YAAY,IAGpB,KAAKh8B,KACD,OAAOhD,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAsgC,GADP,IAEItB,YAAY,EACZuB,kBAAmB1B,EAAOh+B,UAGlC,KAAKoC,KACD,OAAOjD,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAsgC,GADP,IAEItB,YAAY,EACZuB,kBAAmB,KAG3B,QACI,OAAOD,cCxBbE,GAAqC,CACvC73B,OAAQ,KACRE,YAAa,KACbE,qBAAeyP,EAAqB,IA4BzBioB,GAzBW,WAA8E,IAA7EC,EAA6E59B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAApD09B,GAAwB3B,EAA4B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACpG,OAAQs7B,EAAO9+B,MACX,KAAKwI,KACD,OAAOvI,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0gC,GADP,IAEI/3B,OAAQk2B,EAAOh+B,UAGvB,KAAK2H,KACD,OAAOxI,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0gC,GADP,IAEI73B,YAAag2B,EAAOh+B,UAG5B,KAAK4H,KACD,OAAOzI,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0gC,GADP,IAEI33B,cAAe81B,EAAOh+B,UAG9B,QACI,OAAO6/B,cCCJC,GA9BiB,WAGA,IAHCC,EAGD99B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAHgC,CAC5Dk8B,YAAY,EACZj7B,KAAM,IACP86B,EAA6B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC5B,OAAQs7B,EAAO9+B,MACX,KAAKiE,KACD,OAAOhE,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4gC,GADP,IAEI5B,YAAY,IAGpB,KAAK/6B,KACD,OAAOjE,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4gC,GADP,IAEI5B,YAAY,EACZj7B,KAAM86B,EAAOh+B,UAGrB,KAAKqD,KACD,OAAOlE,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4gC,GADP,IAEI5B,YAAY,EACZj7B,KAAM,KAGd,QACI,OAAO68B,aC+BJC,GApDgC,WAKA,IALCC,EAKDh+B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAL8D,CACzGi+B,2BAA2B,EAC3BC,4BAA4B,EAC5BC,gBAAiB,GACjBC,iBAAkB,IACnBrC,EAA4C/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC3C,OAAQs7B,EAAO9+B,MACX,KAAKohC,KACD,OAAOnhC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIC,2BAA2B,IAGnC,KAAKK,KACD,OAAOphC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIE,4BAA4B,IAGpC,KAAKK,KACD,OAAOrhC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIC,2BAA2B,EAC3BE,gBAAiBpC,EAAOh+B,UAGhC,KAAKygC,KACD,OAAOthC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIE,4BAA4B,EAC5BE,iBAAkBrC,EAAOh+B,UAGjC,KAAK0gC,KACD,OAAOvhC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIC,2BAA2B,EAC3BE,gBAAiB,KAGzB,KAAKO,KACD,OAAOxhC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8gC,GADP,IAEIE,4BAA4B,EAC5BE,iBAAkB,KAG1B,QACI,OAAOJ,IC7BJW,GA7Ba,WAEM,IAFLC,EAEK5+B,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAF8B,CAC5D43B,iBAAkB,IACnBmE,EAA+B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC9B,OAAQs7B,EAAO9+B,MACX,KAAKJ,KACD,OAAOK,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0hC,GADP,IAEIhH,iBAAgB,GAAAx0B,OAAAlG,OAAAw5B,GAAA,EAAAx5B,CACT0hC,EAAkBhH,kBADT,CAAA16B,OAAA6pB,EAAA,EAAA7pB,CAAA,GAGL6+B,EAAO/+B,kBAI1B,KAAKF,KACD,OAAOI,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0hC,GADP,IAEIhH,iBAAkBgH,EAAkBhH,iBAAiBtnB,OACjD,SAACtT,GACG,OAAOA,EAAaI,MAAQ2+B,EAAO3+B,QAKnD,QACI,OAAOwhC,aCYbC,GAA6C,CAC/CC,cAAe,IACfC,gBAAiB,OACjBC,iBAAkB,OAClBC,mBAAoB,IACpBC,yBAA0B,OAC1BC,sBAAuB,OACvBC,WAAY,IACZC,sBAAuB,OACvBC,cAAe,IACfC,yBAA0B,OAC1BC,WAAY,OACZC,aAAc,OACdC,iBAAkB,OAClBC,QAAS,OACTC,WAAY,OACZvd,MAAO,GACPwd,WAAY,OACZC,iBAAkB,QAyHPC,GAtHe,WAA8F,IAA7FC,EAA6FhgC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAA5D6+B,GAA4B9C,EAAgC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACxH,OAAQs7B,EAAO9+B,MACX,KAAKyiB,KACD,OAAOmf,GAEX,KAAKlf,KACD,OAAOziB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIlB,cAAe/C,EAAOh+B,UAG9B,KAAK6hB,KACD,OAAO1iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIjB,gBAAiBhD,EAAOh+B,UAGhC,KAAK8hB,KACD,OAAO3iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIhB,iBAAkBjD,EAAOh+B,UAGjC,KAAK+hB,KACD,OAAO5iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIf,mBAAoBlD,EAAOh+B,UAGnC,KAAKgiB,KACD,OAAO7iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEId,yBAA0BnD,EAAOh+B,UAGzC,KAAKiiB,KACD,OAAO9iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIb,sBAAuBpD,EAAOh+B,UAGtC,KAAKkiB,KACD,OAAO/iB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIZ,WAAYrD,EAAOh+B,UAG3B,KAAKmiB,KACD,OAAOhjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIX,sBAAuBtD,EAAOh+B,UAGtC,KAAKoiB,KACD,OAAOjjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIV,cAAevD,EAAOh+B,UAG9B,KAAKqiB,KACD,OAAOljB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIT,yBAA0BxD,EAAOh+B,UAGzC,KAAKsiB,KACD,OAAOnjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIR,WAAYzD,EAAOh+B,UAG3B,KAAKuiB,KACD,OAAOpjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIP,aAAc1D,EAAOh+B,UAG7B,KAAKwiB,KACD,OAAOrjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIN,iBAAkB3D,EAAOh+B,UAGjC,KAAKyiB,KACD,OAAOtjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIL,QAAS5D,EAAOh+B,UAGxB,KAAK0iB,KACD,OAAOvjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIJ,WAAY7D,EAAOh+B,UAG3B,KAAK2iB,KACD,OAAOxjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEI3d,MAAO0Z,EAAOh+B,UAGtB,KAAK4iB,KACD,OAAOzjB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIH,WAAY9D,EAAOh+B,UAG3B,KAAK6iB,KACD,OAAO1jB,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8iC,GADP,IAEIF,iBAAkB/D,EAAOh+B,UAGjC,QACI,OAAOiiC,cCzIJC,GA9BoB,WAGA,IAHCC,EAGDlgC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAH4C,CAC3EmgC,6BAA6B,EAC7BC,kBAAmB,IACpBrE,EAAgC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC/B,OAAQs7B,EAAO9+B,MACX,KAAK+K,KACD,OAAO9K,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgjC,GADP,IAEIC,6BAA6B,IAGrC,KAAKl4B,KACD,OAAO/K,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgjC,GADP,IAEIC,6BAA6B,EAC7BC,kBAAmBrE,EAAOh+B,UAGlC,KAAKmK,KACD,OAAOhL,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgjC,GADP,IAEIC,6BAA6B,EAC7BC,kBAAmB,KAG3B,QACI,OAAOF,cCGJG,GA5BqB,WAGA,IAHCC,EAGDtgC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAHoC,CACpEugC,2BAA2B,EAC3BC,mBAAoB,IACrBzE,EAAiC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAChC,OAAQs7B,EAAO9+B,MACX,KAAKoL,KACD,OAAOnL,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAojC,GADP,IAEIC,2BAA2B,IAGnC,KAAKj4B,KACD,MAAO,CACHi4B,2BAA2B,EAC3BC,mBAAoBzE,EAAOh+B,SAGnC,KAAKwK,KACD,MAAO,CACHg4B,2BAA2B,EAC3BC,mBAAoB,IAG5B,QACI,OAAOF,cCGJG,GA5BmC,WAGA,IAHCC,EAGD1gC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAHoE,CAClHk8B,YAAY,EACZyE,yBAA0B,IAC3B5E,EAA+C/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC9C,OAAQs7B,EAAO9+B,MACX,KAAKsN,KACD,OAAOrN,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwjC,GADP,IAEIxE,YAAY,IAGpB,KAAK1xB,KACD,MAAO,CACH0xB,YAAY,EACZyE,yBAA0B5E,EAAOh+B,SAGzC,KAAK0M,KACD,MAAO,CACHyxB,YAAY,EACZyE,yBAA0B,IAGlC,QACI,OAAOD,cCIJ1E,GA5Bc,WAGO,IAHN4E,EAGM5gC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAHiC,CACjEk8B,YAAY,EACZ2E,gBAAiB,IAClB9E,EAAiC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAChC,OAAQs7B,EAAO9+B,MACX,KAAK2N,KACD,OAAO1N,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA0jC,GADP,IAEI1E,YAAY,IAGpB,KAAKrxB,KACD,MAAO,CACHqxB,YAAY,EACZ2E,gBAAiB9E,EAAOh+B,SAGhC,KAAK+M,KACD,MAAO,CACHoxB,YAAY,EACZ2E,gBAAiB,IAGzB,QACI,OAAOD,cCWJ5iC,GAlCe,WAMW,IANV8iC,EAMU9gC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GANmC,CACxEk8B,YAAY,EACZ6E,iBAAkB,CACd9jC,KAAM,GACN+jC,SAAU,KAEfjF,EAAsC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACrC,OAAQs7B,EAAO9+B,MACX,KAAKS,KACD,OAAOR,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA4jC,GADP,IAEI5E,YAAY,IAGpB,KAAKv+B,KACD,MAAO,CACHu+B,YAAY,EACZ6E,iBAAkBhF,EAAOh+B,SAGjC,KAAKH,KACD,MAAO,CACHs+B,YAAY,EACZ6E,iBAAkB,CACd9jC,KAAM,GACN+jC,SAAU,KAItB,QACI,OAAOF,aCoHJG,GA3HmB,WAUD,IAVEC,EAUFlhC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAV+B,CAC5DmhC,mCAAmC,EACnCC,cAAc,EACdC,gBAAiB,GACjBC,WAAY,GACZC,WAAY,EACZC,mBAAmB,EACnBC,YAAa,CAAEC,QAAS,IACxBC,6BAA6B,EAC7BC,WAAW,GACZ7F,EAA8B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC7B,OAAQs7B,EAAO9+B,MACX,KAAK4kC,KACD,OAAO3kC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIC,mCAAmC,IAG3C,KAAKW,KAML,KAAKC,KACD,OAAO7kC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIC,mCAAmC,IAG3C,KAAKa,KACD,OAAO9kC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,IAGtB,KAAKa,KACD,OAAO/kC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,EACdC,gBAAiBtF,EAAOh+B,UAGhC,KAAKmkC,KACD,OAAOhlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,IAGtB,KAAKe,KACD,OAAOjlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIK,WAAYxF,EAAOh+B,UAG3B,KAAKqkC,KACD,OAAOllC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,IAGtB,KAAKiB,KACD,OAAOnlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,EACdE,WAAYvF,EAAOh+B,UAG3B,KAAKukC,KACD,OAAOplC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIE,cAAc,IAGtB,KAAKmB,KACD,OAAOrlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIM,mBAAmB,IAG3B,KAAKgB,KACD,OAAOtlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIM,mBAAmB,EACnBC,YAAa1F,EAAOh+B,UAG5B,KAAK0kC,KACD,OAAOvlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIM,mBAAmB,EACnBC,YAAa,CAAEC,QAAS,MAGhC,KAAKgB,KACD,OAAOxlC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIS,6BAA6B,IAGrC,KAAKgB,KAML,KAAKC,KACD,OAAO1lC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIS,6BAA6B,IAGrC,KAAKkB,KACD,OAAO3lC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAgkC,GADP,IAEIU,UAAW7F,EAAOh+B,UAG1B,QACI,OAAOmjC,aC1Hb4B,GAA2C,CAC7CC,WAAY,GACZC,SAAU,GACVC,SAAU,GACVC,YAAa,CACTC,KAAM,EACN3d,KAAM,IAEV4d,oBAAoB,EACpBC,YAAY,EACZC,aAAa,EACbC,cAAc,EACdC,gBAAgB,GAoILC,GAjIW,WAA+F,IAA9FC,EAA8F1jC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAA1D8iC,GAAwB/G,EAAkC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACrH,OAAQs7B,EAAO9+B,MACX,KAAK0mC,KACD,OAAOzmC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIX,WAAY,GACZO,aAAa,IAGrB,KAAKM,KACD,OAAO1mC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIV,SAAUjH,EAAOh+B,UAGzB,KAAK8lC,KACD,OAAO3mC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIL,WAAYtH,EAAOh+B,UAG3B,KAAK+lC,KACD,OAAO5mC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIX,WAAW7lC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACJwmC,EAAgBX,YADb,IAENgB,MAAOhI,EAAOh+B,UAElBulC,YAAaI,EAAgBJ,cAAgBvH,EAAOh+B,UAG5D,KAAKimC,KACD,OAAO9mC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIX,WAAW7lC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACJwmC,EAAgBX,YADb,IAENkB,UAAWlI,EAAOh+B,UAEtBulC,YAAaI,EAAgBJ,cAAgBvH,EAAOh+B,UAG5D,KAAKmmC,KACD,OAAOhnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIX,WAAW7lC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACJwmC,EAAgBX,YADb,IAENoB,SAAUpI,EAAOh+B,UAErBulC,YAAaI,EAAgBJ,cAAgBvH,EAAOh+B,UAG5D,KAAKqmC,KACD,OAAOlnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIT,SAAUlH,EAAOh+B,QACjBqlC,oBAAoB,IAG5B,KAAKiB,KACD,OAAOnnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIT,SAAU,GACVG,oBAAoB,IAG5B,KAAKkB,KACD,OAAOpnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIT,SAAU,GACVG,oBAAoB,IAG5B,KAAKmB,KACD,OAAOrnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIV,SAAU,CACNe,MAAO,GACPE,UAAW,GACXE,SAAU,GACVj7B,OAAQ,GACRH,GAAI,IAERg6B,WAAY,GACZM,YAAY,EACZC,aAAa,EACbC,cAAc,IAGtB,KAAKiB,KACD,OAAOtnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIH,cAAc,IAGtB,KAAKkB,KACD,OAAOvnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIH,cAAc,IAGtB,KAAKmB,KACD,OAAOxnC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIR,YAAanH,EAAOh+B,UAG5B,KAAK4mC,KAML,KAAKC,KACD,OAAO1nC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIF,gBAAgB,IAGxB,KAAKqB,KACD,OAAO3nC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAwmC,GADP,IAEIF,gBAAgB,IAGxB,QACI,OAAOE,cChKboB,GAAoC,CACtCC,mBAAmB,GA+BRC,GA5BQ,WAAiF,IAAhFC,EAAgFjlC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAnD8kC,GAAqB/I,EAA8B/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EACpG,OAAQs7B,EAAO9+B,MACX,KAAKsM,KACD,OAAOrM,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA+nC,GADP,IAEIt7B,aAASlJ,EACTskC,mBAAmB,IAG3B,KAAKz7B,KACD,OAAOpM,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA+nC,GADP,IAEIt7B,aAASlJ,EACTskC,mBAAmB,IAG3B,KAAK17B,KACD,OAAOnM,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA+nC,GADP,IAEIt7B,QAASoyB,EAAOh+B,QAChBgnC,mBAAmB,IAG3B,QACI,OAAOE,aC4BJC,GAlDqB,WAKD,IALEC,EAKFnlC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GALmC,CAClEolC,QAAS,GACT5D,mBAAmB,EACnB6D,iBAAkB,CAAE3D,QAAS,IAC7B4D,sBAAsB,GACvBvJ,EAAgC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC/B,OAAQs7B,EAAO9+B,MACX,KAAKsoC,KACD,OAAOroC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAioC,GADP,IAEI3D,mBAAmB,IAG3B,KAAKgE,KACD,OAAOtoC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAioC,GADP,IAEI3D,mBAAmB,EACnB6D,iBAAkBtJ,EAAOh+B,UAGjC,KAAK0nC,KACD,OAAOvoC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAioC,GADP,IAEI3D,mBAAmB,EACnB6D,iBAAkB,CAAE3D,QAAS,MAGrC,KAAKgE,KACD,OAAOxoC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAioC,GADP,IAEIG,sBAAsB,IAG9B,KAAKK,KAML,KAAKC,KACD,OAAO1oC,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACAioC,GADP,IAEIG,sBAAsB,IAG9B,QACI,OAAOH,cCpDbU,GAA0D,CAC5Dr6B,wBAAoB/K,EACpBqlC,8BAA8B,GA+BnBC,GA5BmB,WAA6H,IAA5HC,EAA4HhmC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAzE6lC,GAAgC9J,EAAyC/7B,UAAAX,OAAA,EAAAW,UAAA,QAAAS,EAC3J,OAAQs7B,EAAO9+B,MACX,KAAKkO,KACD,OAAOjO,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8oC,GADP,IAEIx6B,wBAAoB/K,EACpBqlC,8BAA8B,IAGtC,KAAK56B,KACD,OAAOhO,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8oC,GADP,IAEIx6B,wBAAoB/K,EACpBqlC,8BAA8B,IAGtC,KAAK76B,KACD,OAAO/N,OAAA6pB,EAAA,EAAA7pB,QAAA6pB,EAAA,EAAA7pB,CAAA,GACA8oC,GADP,IAEIx6B,mBAAoBuwB,EAAOh+B,QAC3B+nC,8BAA8B,IAGtC,QACI,OAAOE,ICjBbC,GAAaC,aAAgB,CAC/Bvf,YAAakV,GACbI,aAAcD,GACdl7B,YAAas7B,GACboB,kBAAmBD,GACnBK,WAAYD,GACZG,gBAAiBD,GACjB7gC,aAAc2hC,GACdX,+BAAgCD,GAChCoI,mBAAoBpG,GACpBqG,aAAcnG,GACdoG,cAAehG,GACfK,kCAAmCD,GACnCG,oBAAqB0F,GACrBC,qBAAsBvoC,GACtBkjC,aAAcD,GACduF,YAAaC,GACbC,YAAa1B,GACbG,eAAgBD,GAChByB,oBAAqBZ,KAcVa,GAXK,SAAC/9B,EAAYkzB,GAC7B,OAAQA,EAAO9+B,MACX,I7BhDmB,c6BkDf,OADA4pC,KAAQ/Y,WAAW,gBACZmY,QAAWxlC,EAAWs7B,GAEjC,QACI,OAAOkK,GAAWp9B,EAAOkzB,KC7C/B+K,GAAuE,CAACC,MAExEC,GAAgB,CAClB5pC,IAAK,OACLypC,cAGEI,GAAmBC,aAAeF,GAAeG,OAEhC,WACnB,IAAMC,EAAQC,aAAYJ,GAAkBK,KAAexnC,WAAf,EAAmBgnC,KAE/D,MAAO,CAAEM,QAAOG,UADEC,aAAaJ,ICVNK,GAArBF,gBAAWH,YAEnBM,IAASC,OACL9kB,EAAAxkB,EAAA2f,cAAC4pB,EAAA,EAAD,CAAUR,MAAOA,IACbvkB,EAAAxkB,EAAA2f,cAAC6pB,EAAA,EAAD,CAAaC,QAAS,KAAMP,UAAWA,IACnC1kB,EAAAxkB,EAAA2f,cAAC+pB,GAAD,QAGTvO,SAASwO,eAAe,80BCTdnG,EAAiC,iCACjCC,EAAiC,iCACjCC,EAAiC,iCAEjCC,EAA+B,+BAC/BC,EAA+B,+BAC/BC,EAA+B,+BAE/BE,EAA+B,+BAC/BC,EAA+B,+BAC/BC,EAA+B,+BAE/BC,EAAgC,gCAChCC,EAAgC,gCAChCC,EAAgC,gCAEhCC,EAA0B,0BAC1BC,EAA0B,0BAC1BC,EAA0B,0BAE1BC,EAA2B,2BAE3BV,EAAkB,kBAoElB8F,EAAgB,SAAC1G,GAC1B,MAAO,CACHtkC,KAAMklC,EACNpkC,QAASwjC,IAsBJ2G,EAA+B,WACxC,sBAAAhqC,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAA2pC,EAAAC,EAAA,OAAAhqC,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EAnBG,CACHvB,KAAM4kC,IAiBHnjC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAIuBG,IAAWoI,IAAIlI,IAAUuF,6BAA6B,GAJ7E,OAIO2jC,EAJPzpC,EAAAS,KAMOipC,EAAO,IAAIC,KAAK,CAACF,GAAU,CAAElrC,KAlGzB,2BAmGVqrC,iBAAOF,EAlGQ,2BAoGf5pC,EArBD,CACHvB,KAAM6kC,IAWHpjC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,SAWCF,EAjBD,CACHvB,KAAM8kC,IAiBFvjC,EAASzB,YAAgB,CACrBuC,QAAS,kDACTC,QAASC,IAAwBG,SAdtC,yBAAAjB,EAAAkB,SAAArB,EAAA,kBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,IAoBEuoC,EAA4B,SAACC,GAC/B,MAAO,CACHvrC,KAAM+kC,EACNjkC,QAASyqC,IAIXC,EAA4B,SAACpH,GAC/B,MAAO,CACHpkC,KAAMglC,EACNlkC,QAASsjC,IAUJ58B,EAAqB,SAAC+jC,GAC/B,sBAAAh8B,EAAAtP,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAA2I,EAAOzI,GAAP,IAAAkqC,EAAArH,EAAAsH,EAAAC,EAAA,OAAAxqC,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,UACHJ,EAAS+pC,EAA0BC,IADhCthC,EAAAvI,KAAA,EAIO+pC,EAAW,IAAIG,SAEO,IAAxBL,EAAOM,MAAMzpC,OANlB,CAAA6H,EAAAtI,KAAA,gBAOK8pC,EAASK,OAAO,OAAQ,IAAIV,KAAK,CAACG,EAAOM,MAAM,IAAK,CAAE7rC,KAAM,aAAeurC,EAAOM,MAAM,GAAG7/B,MAPhG/B,EAAAtI,KAAA,EASoDG,IAAWC,KAAK,GAAAoE,OAAGnE,IAAUwF,mBAAb,cAAArB,OAA4ColC,EAAOQ,SAAnD,eAAA5lC,OACxDolC,EAAOS,OADiD,sBAAA7lC,OACtBolC,EAAOU,kBAAoBR,GAAU,GAVnF,OASWrH,EATXn6B,EAAA/H,KAYKX,EAASypC,EAAc,IACvBzpC,EAASiqC,EAA0BpH,IACnC7iC,EAASzB,YAAgB,CACrBuC,QAAS,iBACTC,QAASC,IAAwBmN,WAhB1CzF,EAAAtI,KAAA,uBAmBW,IAAIe,MAAM,wBAnBrB,QAAAuH,EAAAtI,KAAA,iBAAAsI,EAAAvI,KAAA,GAAAuI,EAAAxH,GAAAwH,EAAA,SAsBC1I,EA5BD,CACHvB,KAAMilC,IA4BuD,IAArD3kC,KAAK4rC,OAAM,OAAAjiC,EAAAxH,SAAA,IAAAwH,EAAAxH,QAAA,UAAAipC,EAAAzhC,EAAAxH,GAAKiH,gBAAL,IAAAgiC,OAAA,UAAAC,EAAAD,EAAe1nC,YAAf,IAAA2nC,OAAA,EAAAA,EAAqBQ,WAAY,KAC5C5qC,EAASzB,YAAgB,CACrBuC,QAAS4H,EAAAxH,GAAIiH,SAAS1F,KAAK3B,QAC3BC,QAASC,IAAwBG,SAGrCnB,EAASzB,YAAgB,CACrBuC,QAAS,wCACTC,QAASC,IAAwBG,SA/B1C,yBAAAuH,EAAAtH,SAAAqH,EAAA,kBAAP,gBAAA2F,GAAA,OAAAJ,EAAA1M,MAAAC,KAAAC,YAAA,IAsCEqpC,EAA4B,SAACb,GAC/B,MAAO,CACHvrC,KAAMmlC,EACNrkC,QAASyqC,IAIXc,EAA4B,SAAChI,GAC/B,MAAO,CACHrkC,KAAMolC,EACNtkC,QAASujC,IAUJ58B,EAAqB,SAAC8jC,GAAoF,IAA9De,EAA8DvpC,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,QAAtBS,EAC7F,sBAAAw4B,EAAA/7B,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAA+I,EAAO7I,GAAP,IAAAkqC,EAAApH,EAAAkI,EAAAC,EAAA,OAAArrC,EAAAC,EAAAI,KAAA,SAAA6I,GAAA,cAAAA,EAAA3I,KAAA2I,EAAA1I,MAAA,UACHJ,EAAS6qC,EAA0Bb,IADhClhC,EAAA3I,KAAA,EAIO+pC,EAAW,IAAIG,SAEO,IAAxBL,EAAOM,MAAMzpC,OANlB,CAAAiI,EAAA1I,KAAA,gBAOK8pC,EAASK,OAAO,OAAQ,IAAIV,KAAK,CAACG,EAAOM,MAAM,IAAK,CAAE7rC,KAAM,aAAeurC,EAAOM,MAAM,GAAG7/B,MAPhG3B,EAAA1I,KAAA,EAS0CG,IAAWC,KAAK,GAAAoE,OAAGnE,IAAUyF,mBAAb,cAAAtB,OAA4ColC,EAAOQ,SAAnD,eAAA5lC,OAC9ColC,EAAOS,OADuC,sBAAA7lC,OACZolC,EAAOU,kBAAoBR,GAAU,GAVnF,OASWpH,EATXh6B,EAAAnI,KAYKX,EAASypC,EAAc,IACvBzpC,EAAS8qC,EAA0BhI,IACnC9iC,EAASzB,YAAgB,CACrBuC,QAAS,iBACTC,QAASC,IAAwBmN,gBAEXlM,IAAtB8oC,GACAA,IAnBTjiC,EAAA1I,KAAA,uBAsBKJ,EAASypC,EAAc,IACjB,IAAItoC,MAAM,wBAvBrB,QAAA2H,EAAA1I,KAAA,iBAAA0I,EAAA3I,KAAA,GAAA2I,EAAA5H,GAAA4H,EAAA,SA0BC9I,EAhCD,CACHvB,KAAMqlC,IAgCuD,IAArD/kC,KAAK4rC,OAAM,OAAA7hC,EAAA5H,SAAA,IAAA4H,EAAA5H,QAAA,UAAA8pC,EAAAliC,EAAA5H,GAAKiH,gBAAL,IAAA6iC,OAAA,UAAAC,EAAAD,EAAevoC,YAAf,IAAAwoC,OAAA,EAAAA,EAAqBL,WAAY,KAC5C5qC,EAASzB,YAAgB,CACrBuC,QAASgI,EAAA5H,GAAIiH,SAAS1F,KAAK3B,QAC3BC,QAASC,IAAwBG,SAGrCnB,EAASzB,YAAgB,CACrBuC,QAAS,yCACTC,QAASC,IAAwBG,cAGfc,IAAtB8oC,GACAA,IAvCL,yBAAAjiC,EAAA1H,SAAAyH,EAAA,kBAAP,gBAAA+xB,GAAA,OAAAH,EAAAn5B,MAAAC,KAAAC,YAAA,IA6CE0pC,EAA6B,SAAClB,GAChC,MAAO,CACHvrC,KAAMslC,EACNxkC,QAASyqC,IAiBXmB,EAAe,SAAC/H,GAClB,MAAO,CACH3kC,KAAM4lC,EACN9kC,QAAS6jC,IAIXgI,EAAoB,SAACnI,GACvB,IAAKA,IAAgB1gC,MAAMC,QAAQygC,EAAYC,SAC3C,OAAO,EAEX,IAAK,IAAIvK,EAAI,EAAGA,EAAIsK,EAAYC,QAAQriC,OAAQ83B,GAAK,EAAG,CACpD,IAAM7Y,EAAOmjB,EAAYC,QAAQvK,GAEjC,GAEQ7Y,EAAKurB,gBAAkBC,IAAkBC,WACzCzrB,EAAKurB,gBAAkBC,IAAkBE,QAEzC1rB,EAAK2rB,mBAAqBC,IAAkBH,WAC5CzrB,EAAK2rB,mBAAqBC,IAAkBF,OAGhD,OAAO,EAIf,OAAO,GAGEG,EAA2B,SAAC3B,GACrC,sBAAA4B,EAAAltC,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAmJ,EAAOjJ,GAAP,IAAAijC,EAAA4I,EAAAC,EAAA,OAAAlsC,EAAAC,EAAAI,KAAA,SAAAiJ,GAAA,cAAAA,EAAA/I,KAAA+I,EAAA9I,MAAA,cACHJ,EAASkrC,EAA2BlB,IADjC9gC,EAAA/I,KAAA,EAAA+I,EAAA9I,KAAA,EAIwCG,IAAWoI,IAC9CojC,UAAU,GAAAnnC,OAAGnE,IAAU0F,sBAAb,UAAAvB,OAA2ColC,EAAOrF,KAAKqH,aAAvD,SAAApnC,OACGolC,EAAOrF,KAAKsH,SADf,UAAArnC,OACgColC,EAAOrF,KAAKuH,UAD5C,KAAAtnC,OACyDolC,EAAOrF,KAAKwH,eADrE,aAAAvnC,OAEOolC,EAAOoC,SAAWpC,EAAOoC,SAAW,MACrD,GARL,OAIOnJ,EAJP/5B,EAAAvI,KAWKyqC,EAAkBnI,GAClBjjC,EAASmrC,GAAa,IAEtBnrC,EAASmrC,GAAa,IAG1BnrC,EA5DD,CACHvB,KAAMulC,EACNzkC,QA0DwC0jC,IAjBrC/5B,EAAA9I,KAAA,gBAAA8I,EAAA/I,KAAA,EAAA+I,EAAAhI,GAAAgI,EAAA,SAmBClJ,EAvDD,CACHvB,KAAMwlC,IAuDuD,IAArDllC,KAAK4rC,OAAM,OAAAzhC,EAAAhI,SAAA,IAAAgI,EAAAhI,QAAA,UAAA2qC,EAAA3iC,EAAAhI,GAAKiH,gBAAL,IAAA0jC,OAAA,UAAAC,EAAAD,EAAeppC,YAAf,IAAAqpC,OAAA,EAAAA,EAAqBlB,WAAY,KAC5C5qC,EAASzB,YAAgB,CACrBuC,QAASoI,EAAAhI,GAAIiH,SAAS1F,KAAK3B,QAC3BC,QAASC,IAAwBC,QAGrCjB,EAASzB,YAAgB,CACrBuC,QAAS,+CACTC,QAASC,IAAwBG,SA5B1C,yBAAA+H,EAAA9H,SAAA6H,EAAA,iBAAP,gBAAA4xB,GAAA,OAAA+Q,EAAAtqC,MAAAC,KAAAC,YAAA,IAqDS4E,EAAyB,SAACgmC,GACnC,sBAAAC,EAAA3tC,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAwJ,EAAOtJ,GAAP,IAAAssC,EAAA3C,EAAAC,EAAA,OAAAhqC,EAAAC,EAAAI,KAAA,SAAAsJ,GAAA,cAAAA,EAAApJ,KAAAoJ,EAAAnJ,MAAA,cACHJ,EAnBG,CACHvB,KAAMylC,IAiBH36B,EAAApJ,KAAA,EAGOmsC,EAAkBC,mBAAmBH,GAH5C7iC,EAAAnJ,KAAA,EAIuBG,IAAWoI,IAAX,GAAA/D,OAAkBnE,IAAU2F,uBAA5B,KAAAxB,OAAsD0nC,IAAmB,GAJhG,OAIO3C,EAJPpgC,EAAA5I,KAMOipC,EAAO,IAAIC,KAAK,CAACF,GAAU,CAAElrC,KA5VzB,2BA6VVqrC,iBAAOF,EAAMwC,GAEbpsC,EArBD,CACHvB,KAAM0lC,IAWH56B,EAAAnJ,KAAA,iBAAAmJ,EAAApJ,KAAA,GAAAoJ,EAAArI,GAAAqI,EAAA,SAWCvJ,EAjBD,CACHvB,KAAM2lC,IAiBFpkC,EAASzB,YAAgB,CACrBuC,QAAO,oCAAA8D,OAAsCwnC,EAAtC,KACPrrC,QAASC,IAAwBG,SAdtC,yBAAAoI,EAAAnI,SAAAkI,EAAA,kBAAP,gBAAAkjC,GAAA,OAAAH,EAAA/qC,MAAAC,KAAAC,YAAA,u6BC9WS2jC,EAA0B,0BAC1BC,EAAsB,sBACtBC,EAAwB,wBACxBC,EAA8B,8BAC9BE,EAA8B,8BAC9BE,EAA8B,8BAE9BE,EAA8B,8BAC9BC,EAAqC,qCACrCC,EAA8B,8BAE9BC,EAA0B,0BAC1BC,EAAiC,iCACjCC,EAA0B,0BAE1BI,EAA4B,4BAC5BD,EAAmC,mCACnCD,EAA4B,4BAE5BD,EAA0B,0BAE1BuG,EAAkB,WAC3B,MAAO,CACHhuC,KAAM0mC,IAIDuH,EAAc,SAAClI,GACxB,MAAO,CACH/lC,KAAM2mC,EACN7lC,QAASilC,IAIJmI,EAAgB,SAAC9H,GAC1B,MAAO,CACHpmC,KAAM4mC,EACN9lC,QAASslC,IAIX+H,EAAgB,SAACz1B,GACnB,OAAQA,GAAmB,KAAVA,GAGR01B,EAAgB,SAACtH,GAC1B,IAAMuH,EAAa,IAAIC,OAAO,4DAA4DC,OAC1D,4FAA4FA,QAE5H,OAAIJ,EAAcrH,GACP,CACH9mC,KAAM6mC,EACN/lC,QAAS,wBAIbgmC,IAAUuH,EAAWG,KAAK1H,GACnB,CACH9mC,KAAM6mC,EACN/lC,QAAS,iBAIV,CACHd,KAAM6mC,EACN/lC,aAAS0C,IAIJirC,EAAoB,SAACzH,GAC9B,IAAM0H,EAAa,IAAIJ,OAAO,iCACxBK,EAAa,IAAIL,OAAO,aAE9B,OAAIH,EAAcnH,GACP,CACHhnC,KAAM+mC,EACNjmC,QAAS,0BAIbkmC,IAAc0H,EAAWF,KAAKxH,GACvB,CACHhnC,KAAM+mC,EACNjmC,QAAS,wCAIbkmC,IAAc2H,EAAWH,KAAKxH,GACvB,CACHhnC,KAAM+mC,EACNjmC,QAAS,qCAIV,CACHd,KAAM+mC,EACNjmC,aAAS0C,IAIJorC,EAAmB,SAAC1H,GAC7B,IAAMwH,EAAa,IAAIJ,OAAO,iCACxBK,EAAa,IAAIL,OAAO,aAE9B,OAAIH,EAAcjH,GACP,CACHlnC,KAAMinC,EACNnmC,QAAS,yBAIbomC,IAAawH,EAAWF,KAAKtH,GACtB,CACHlnC,KAAMinC,EACNnmC,QAAS,wCAIbomC,IAAayH,EAAWH,KAAKtH,GACtB,CACHlnC,KAAMinC,EACNnmC,QAAS,qCAIV,CACHd,KAAMinC,EACNnmC,aAAS0C,IAIJqrC,EAAe,WACxB,OAAO,SAACttC,EAAoB06B,GAA6B,IAC7C8J,EAAa9J,IAAWsN,YAAxBxD,SAERxkC,EAASysC,KACTzsC,EAAS6sC,EAAcrI,EAASe,QAChCvlC,EAASktC,EAAkB1I,EAASiB,YACpCzlC,EAASqtC,EAAiB7I,EAASmB,aAgBrC4H,EAAkB,SAACC,GACrB,MAAO,CACH/uC,KAAMmnC,EACNrmC,QAASiuC,IAIJC,EAAiB,SAACC,GAC3B,MAAO,CACHjvC,KAAMynC,EACN3mC,QAASmuC,IAIJC,EAAgB,SAAC3D,GAC1B,sBAAAtqC,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,EAAoB06B,GAA3B,IAAAkT,EAAAC,EAAAnJ,EAAAoJ,EAAAC,EAAAP,EAAAQ,EAAA,OAAApuC,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACCytC,EAAiB7D,GAEjBhqC,EAASytC,EAAeI,KAEhBnJ,EAAgBhK,IAAWsN,YAA3BtD,YACRmJ,EAAcnvC,OAAA2D,EAAA,EAAA3D,CAAA,GAAQgmC,IAKtBoJ,GADJ,QAAAF,EAAIC,SAAJ,IAAAD,OAAA,EAAIA,EAAgBz2B,OACb,GAAAvS,OAAMnE,IAAU+F,YAAhB,WAAA5B,OAAqC2nC,mBAAkB,QAAAwB,EAACF,SAAD,IAAAE,OAAA,EAACA,EAAgB52B,QAErE1W,IAAU+F,YAEpBxG,EAzCG,CACHvB,KAAMqnC,IAyBH5lC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAkBuCG,IAAWoI,IAAImlC,GAAK,GAlB3D,OAkBON,EAlBPttC,EAAAS,KAoBgB,MADXqtC,EAASR,KAETQ,EAAS,IAGbhuC,EAASutC,EAAgBS,IAxB1B9tC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,SA0BCF,EA9CD,CACHvB,KAAMonC,IA8CF7lC,EAASzB,YAAgB,CACrBuC,QAAS,uCACTC,QAASC,IAAwBG,SA7BtC,yBAAAjB,EAAAkB,SAAArB,EAAA,kBAAP,gBAAAsB,EAAA+M,GAAA,OAAA1O,EAAA4B,MAAAC,KAAAC,YAAA,IAmCEysC,EAAkB,WACpB,MAAO,CACHxvC,KAAMwnC,IAIRiI,EAAwB,WAC1B,MAAO,CACHzvC,KAAMunC,IAIRmI,EAAkB,WACpB,MAAO,CACH1vC,KAAMsnC,IAIDqI,EAAU,WACnB,sBAAApgC,EAAAtP,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAA2I,EAAOzI,EAAoB06B,GAA3B,IAAA2T,EAAA7J,EAAAM,EAAAgJ,EAAA1rC,EAAA,OAAAxC,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,UAAAiuC,EAIC3T,IAAWsN,YADXxD,EAHD6J,EAGC7J,SAAUM,EAHXuJ,EAGWvJ,YAGd9kC,EAASstC,MAELxI,EARD,CAAAp8B,EAAAtI,KAAA,gBASCJ,EAASiuC,KATVvlC,EAAAvI,KAAA,EAaK2tC,EAAG,GAAAlpC,OAAMnE,IAAUgG,eAAhB,mBAbRiC,EAAAtI,KAAA,EAcuDG,IAAWC,KAAKstC,EAAKtJ,GAAU,GAdtF,QAcWpiC,EAdXsG,EAAA/H,OAeoD,OAA/ByB,EAAS,GAAGksC,gBACxBtuC,EAASmuC,KACTnuC,EAASzB,YAAgB,CACrBuC,QAAO,2BAAA8D,OAA6B4/B,EAASe,MAAtC,iBACPxkC,QAASC,IAAwBmN,aAGrCnO,EAASkuC,KACTluC,EAASzB,YAAgB,CACrBuC,QAAO,iBAAA8D,OAAmBxC,EAAS,GAAGtB,SAAW,IACjDC,QAASC,IAAwBG,UAzB9CuH,EAAAtI,KAAA,iBAAAsI,EAAAvI,KAAA,GAAAuI,EAAAxH,GAAAwH,EAAA,SA6BK1I,EAASkuC,KACTluC,EAASzB,YAAgB,CACrBuC,QAAS,oCACTC,QAASC,IAAwBG,SAhC1C,yBAAAuH,EAAAtH,SAAAqH,EAAA,kBAAP,gBAAAmyB,EAAAC,GAAA,OAAA7sB,EAAA1M,MAAAC,KAAAC,YAAA,IAoFS+sC,EAAa,SAAC/J,GACvB,sBAAAoH,EAAAltC,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAmJ,EAAOjJ,GAAP,OAAAJ,EAAAC,EAAAI,KAAA,SAAAiJ,GAAA,cAAAA,EAAA/I,KAAA+I,EAAA9I,MAAA,UACHJ,EAnBG,CACHvB,KAAM4nC,SAoBiBpkC,IAAnBuiC,EAASe,MAHV,CAAAr8B,EAAA9I,KAAA,cAIO,IAAIe,MAAM,iBAJjB,cAAA+H,EAAA/I,KAAA,EAAA+I,EAAA9I,KAAA,EAOOG,IAAW6I,OAAX,GAAAxE,OAAqBnE,IAAUiG,cAA/B,KAAA9B,OAAgD2nC,mBAAmB/H,EAASe,SAAU,GAP7F,OAQCvlC,EAASzB,YAAgB,CACrBuC,QAAO,oBAAA8D,OAAsB4/B,EAASe,MAA/B,gBACPxkC,QAASC,IAAwBmN,WAErCnO,EAlBD,CACHvB,KAAM0nC,IAKHj9B,EAAA9I,KAAA,iBAAA8I,EAAA/I,KAAA,GAAA+I,EAAAhI,GAAAgI,EAAA,SAcClJ,EA1BD,CACHvB,KAAM2nC,IA0BFpmC,EAASzB,YAAgB,CACrBuC,QAAS,0CACTC,QAASC,IAAwBG,SAjBtC,yBAAA+H,EAAA9H,SAAA6H,EAAA,kBAAP,gBAAAulC,GAAA,OAAA5C,EAAAtqC,MAAAC,KAAAC,YAAA,gnBCnTSy8B,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAuB,uBAEvBC,EAAsB,sBACtBC,EAAsB,sBACtBC,EAAsB,sBAEtBC,EAAyB,yBACzBC,EAAyB,yBACzBC,EAAyB,yBAEzBC,EAA4B,4BAC5BC,EAA4B,4BAC5BG,EAA4B,4BAQnC2P,EAAqB,SAACnvC,GACxB,MAAO,CACHb,KAAMy/B,EACN3+B,QAASD,IAIXovC,EAA2B,WAC7B,MAAO,CACHjwC,KAAM0/B,IAIDt2B,EAAmB,SAAC9F,EAAkB4F,GAAkD,IAAjC3F,EAAiCR,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAhB,EACjF,sBAAA9B,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmC,EAAA7C,EAAA8C,EAAAusC,EAAAlvC,EAAA,OAAAG,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EApBG,CACHvB,KAAMw/B,IAqBA97B,EAAc,CAACzD,OAAA2D,EAAA,EAAA3D,QAAA2D,EAAA,EAAA3D,CAAA,GACdqD,GADa,IAEhBC,YALD9B,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EASoBG,IAAWC,KAAKC,IAAU6B,YAAaH,GAT3D,OASO7C,EATPY,EAAAS,KAWK4B,MAAMC,QAAQlD,EAAKmD,OAASnD,EAAKmD,KAAK,GAAG5B,OAAS,GAC5CuB,EAAW9C,EAAKmD,KAAK,GAErBksC,EAA8BvsC,EAASA,EAASvB,OAAS,GAC/Db,EAASyuC,EAAmBE,KAGE,IAA1BhnC,EAAMgzB,kBACAl7B,EAAqC,CACvCY,YAAasuC,EAAQC,eACrBtuC,iBAAkBquC,EAAQE,qBAE9B7uC,EAASR,YAAsBC,OAInCO,EAAS0uC,KACT1uC,EAASzB,YAAgB,CACrBuC,QAAS,8DACTC,QAASC,IAAwBC,SA9B1Cf,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAkCCF,EAAS0uC,KACT1uC,EAASzB,YAAgB,CACrBuC,QAAS,gEACTC,QAASC,IAAwBG,SArCtC,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,IAiDEstC,EAAoB,SAACxvC,GACvB,MAAO,CACHb,KAAM4/B,EACN9+B,QAASD,IAUJyvC,EAAkB,WAC3B,sBAAA/gC,EAAAtP,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAA2I,EAAOzI,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,cACHJ,EApBG,CACHvB,KAAM2/B,IAkBH11B,EAAAvI,KAAA,EAAAuI,EAAAtI,KAAA,EAIoBG,IAAWoI,IAAIlI,IAAUkF,eAAe,GAJ5D,OAIOrG,EAJPoJ,EAAA/H,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAC3Bb,EAAS8uC,EAAkBxvC,IAE3BU,EAAS8uC,EAAkB,KAThCpmC,EAAAtI,KAAA,gBAAAsI,EAAAvI,KAAA,EAAAuI,EAAAxH,GAAAwH,EAAA,SAYC1I,EAlBD,CACHvB,KAAM6/B,IAkBFt+B,EAASzB,YAAgB,CACrBuC,QAAS,6CACTC,QAASC,IAAwBG,SAftC,yBAAAuH,EAAAtH,SAAAqH,EAAA,iBAAP,gBAAA2F,GAAA,OAAAJ,EAAA1M,MAAAC,KAAAC,YAAA,IA2BEwtC,EAAsB,WACxB,MAAO,CACHvwC,KAAM+/B,IAUDyQ,EAAe,SAACC,GACzB,sBAAAzU,EAAA/7B,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAA+I,EAAO7I,GAAP,IAAAV,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAA6I,GAAA,cAAAA,EAAA3I,KAAA2I,EAAA1I,MAAA,cACHJ,EAnBG,CACHvB,KAAM8/B,IAiBHz1B,EAAA3I,KAAA,EAAA2I,EAAA1I,KAAA,EAIoBG,IAAWC,KAAKC,IAAUmF,iBAAkBspC,GAAW,GAJ3E,OAIO5vC,EAJPwJ,EAAAnI,KAMKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,GAC3Bb,EAAS+uC,KACT/uC,EAASgvC,KACThvC,EAASzB,YAAgB,CACrBuC,QAAS,cACTC,QAASC,IAAwBmN,YAGrCnO,EAASgvC,KAddlmC,EAAA1I,KAAA,gBAAA0I,EAAA3I,KAAA,EAAA2I,EAAA5H,GAAA4H,EAAA,SAiBC9I,EAvBD,CACHvB,KAAMggC,IAuBFz+B,EAASzB,YAAgB,CACrBuC,QAAS,0CACTC,QAASC,IAAwBG,SApBtC,yBAAA2H,EAAA1H,SAAAyH,EAAA,iBAAP,gBAAA+xB,GAAA,OAAAH,EAAAn5B,MAAAC,KAAAC,YAAA,IAgCE2tC,EAAyB,SAACC,GAC5B,MAAO,CACH3wC,KAAMkgC,EACNp/B,QAAS6vC,IAUJvpC,EAAkB,SAACupC,GAC5B,sBAAAxD,EAAAltC,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAmJ,EAAOjJ,GAAP,OAAAJ,EAAAC,EAAAI,KAAA,SAAAiJ,GAAA,cAAAA,EAAA/I,KAAA+I,EAAA9I,MAAA,cACHJ,EApBG,CACHvB,KAAMigC,IAkBHx1B,EAAA/I,KAAA,EAAA+I,EAAA9I,KAAA,EAIOG,IAAW6I,OAAX,GAAAxE,OAAqBnE,IAAUoF,iBAA/BjB,OAAiDwqC,EAAjD,MAA8D,GAJrE,OAKCpvC,EAASmvC,EAAuBC,IAChCpvC,EAASzB,YAAgB,CACrBuC,QAAS,gBACTC,QAASC,IAAwBmN,WARtCjF,EAAA9I,KAAA,gBAAA8I,EAAA/I,KAAA,EAAA+I,EAAAhI,GAAAgI,EAAA,SAYClJ,EAlBD,CACHvB,KAAMqgC,IAkBF9+B,EAASzB,YAAgB,CACrBuC,QAAS,4CACTC,QAASC,IAAwBG,SAftC,yBAAA+H,EAAA9H,SAAA6H,EAAA,iBAAP,gBAAA4xB,GAAA,OAAA+Q,EAAAtqC,MAAAC,KAAAC,YAAA,oCClMG,IAAKuP,EAOAspB,EAOAgV,EAOAC,EAQAC,EAQA7D,EASAJ,EAOAkE,EAQAC,EAMApzB,EAWArb,EAQAoW,EAMAK,EAsDAe,EAIAb,EAgBA+3B,EAKAC,EA3KZnhC,EAAAyS,EAAAvc,EAAA,sBAAAqM,IAAAvC,EAAAyS,EAAAvc,EAAA,sBAAA21B,IAAA7rB,EAAAyS,EAAAvc,EAAA,sBAAA2qC,IAAA7gC,EAAAyS,EAAAvc,EAAA,sBAAA4qC,IAAA9gC,EAAAyS,EAAAvc,EAAA,sBAAA6qC,IAAA/gC,EAAAyS,EAAAvc,EAAA,sBAAAgnC,IAAAl9B,EAAAyS,EAAAvc,EAAA,sBAAA4mC,IAAA98B,EAAAyS,EAAAvc,EAAA,sBAAA8qC,IAAAhhC,EAAAyS,EAAAvc,EAAA,sBAAA+qC,IAAAjhC,EAAAyS,EAAAvc,EAAA,sBAAA2X,IAAA7N,EAAAyS,EAAAvc,EAAA,sBAAA1D,IAAAwN,EAAAyS,EAAAvc,EAAA,sBAAA0S,IAAA5I,EAAAyS,EAAAvc,EAAA,sBAAA+S,IAAAjJ,EAAAyS,EAAAvc,EAAA,sBAAA8T,IAAAhK,EAAAyS,EAAAvc,EAAA,sBAAAiT,IAAAnJ,EAAAyS,EAAAvc,EAAA,sBAAAgrC,IAAAlhC,EAAAyS,EAAAvc,EAAA,sBAAAirC,aAAY5+B,wKAOAspB,yMAOAgV,kFAOAC,4EAQAC,sIAQA7D,mLASAJ,iHAOAkE,wIAQAC,8DAMApzB,yQAWArb,kHAQAoW,yEAMAK,shBAsDAe,kCAIAb,0JAgBA+3B,kEAKAC,oYCrKC9P,EAA4B,4BAC5BC,EAA6B,6BAC7BC,EAA4B,4BAC5BC,EAA6B,6BAC7BC,EAA4B,4BAC5BC,EAA6B,6BAcpC0P,EAAyB,SAACtwC,GAC5B,MAAO,CACHb,KAAMshC,EACNxgC,QAASD,IAIXuwC,EAA0B,SAACvwC,GAC7B,MAAO,CACHb,KAAMuhC,EACNzgC,QAASD,IAgBJwwC,EAAkC,SAAC9sC,EAAY+sC,GAA8D,IAAnCjkC,EAAmCtK,UAAAX,OAAA,QAAAoB,IAAAT,UAAA,GAAAA,UAAA,GAAhB,EACtG,sBAAA9B,EAAAhB,OAAAwD,EAAA,EAAAxD,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAAmC,EAAA7C,EAAA,OAAAM,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAECJ,EADsB,YAAtB+vC,EAvCD,CACHtxC,KAAMohC,GAKH,CACHphC,KAAMqhC,IAsCA39B,EAPHzD,OAAA2D,EAAA,EAAA3D,QAAA2D,EAAA,EAAA3D,CAAA,GAQIsE,GARJ,IASC8I,aATD5L,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAauDG,IAAWC,KAAKC,IAAU+E,mCAAoCrD,GAbrH,OAaO7C,EAbPY,EAAAS,KAeKjC,OAAOkC,KAAKtB,GAAMuB,OAAS,EAEvBb,EADsB,YAAtB+vC,EACSH,EAAuBtwC,EAAK0wC,mBAE5BH,EAAwBvwC,EAAK2wC,qBAKtCjwC,EADsB,YAAtB+vC,EACSH,EAAuB,IAEvBC,EAAwB,KA1B1C3vC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SA+BKF,EADsB,YAAtB+vC,EA1CL,CACHtxC,KAAMwhC,GAKH,CACHxhC,KAAMyhC,IAyCElgC,EADsB,YAAtB+vC,EACSxxC,YAAgB,CACrBuC,QAAS,mDACTC,QAASC,IAAwBG,QAG5B5C,YAAgB,CACrBuC,QAAS,oDACTC,QAASC,IAAwBG,SA3C1C,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,yWC5CSulC,EAA0B,0BAC1BC,EAA0B,0BAC1BC,EAA0B,0BAC1BC,EAAkB,kBAClBC,EAAkB,kBAClBC,EAAkB,kBA6BzB8I,EAAwB,SAAClG,GAC3B,MAAO,CACHvrC,KAAMsoC,EACNxnC,QAASyqC,IAIXmG,EAAwB,SAACtJ,GAC3B,MAAO,CACHpoC,KAAMuoC,EACNznC,QAASsnC,IAUJuJ,EAAsB,SAACpG,GAChC,sBAAAtqC,EAAAhB,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAAC,EAAOC,GAAP,IAAA6mC,EAAAsD,EAAAC,EAAA,OAAAxqC,EAAAC,EAAAI,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACHJ,EAASkwC,EAAsBlG,IAD5B9pC,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAIkDG,IAAWoI,IACxDojC,UAAU,GAAAnnC,OAAGnE,IAAUqG,kBAAb,KAAAlC,OAAkColC,EAAOqG,WAAzC,SAAAzrC,OACGolC,EAAOrF,KAAKqH,aADf,SAAApnC,OAEGolC,EAAOrF,KAAKsH,YACzB,GARL,OAIOpF,EAJP3mC,EAAAS,KAWCX,EAASmwC,EAAsBtJ,IAXhC3mC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAgB,GAAAhB,EAAA,SAaCF,EAnBD,CACHvB,KAAMwoC,IAmBuD,IAArDloC,KAAK4rC,OAAM,OAAAzqC,EAAAgB,SAAA,IAAAhB,EAAAgB,QAAA,UAAAipC,EAAAjqC,EAAAgB,GAAKiH,gBAAL,IAAAgiC,OAAA,UAAAC,EAAAD,EAAe1nC,YAAf,IAAA2nC,OAAA,EAAAA,EAAqBQ,WAAY,KAC5C5qC,EAASzB,YAAgB,CACrBuC,QAASZ,EAAAgB,GAAIiH,SAAS1F,KAAK3B,QAC3BC,QAASC,IAAwBC,QAGrCjB,EAASzB,YAAgB,CACrBuC,QAAS,iDACTC,QAASC,IAAwBG,SAtB1C,yBAAAjB,EAAAkB,SAAArB,EAAA,iBAAP,gBAAAsB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,YAAA,IA+CSuF,EAAkB,SAACupC,GAC5B,sBAAAtiC,EAAAtP,OAAAiB,EAAA,EAAAjB,CAAAkB,EAAAC,EAAAC,KAAO,SAAA2I,EAAOzI,GAAP,IAAA2pC,EAAAC,EAAA,OAAAhqC,EAAAC,EAAAI,KAAA,SAAAyI,GAAA,cAAAA,EAAAvI,KAAAuI,EAAAtI,MAAA,cACHJ,EAnBG,CACHvB,KAAMyoC,IAiBHx+B,EAAAvI,KAAA,EAAAuI,EAAAtI,KAAA,EAIuBG,IAAWwI,QAAX,GAAAnE,OAAsBnE,IAAUsG,gBAAhC,KAAAnC,OAAmD0rC,IAAgB,GAJ1F,OAIO3G,EAJPjhC,EAAA/H,KAMOipC,EAAO,IAAIC,KAAK,CAACF,GAAU,CAAElrC,KAtGzB,kCAuGVqrC,iBAAOF,EAAM0G,GAEbtwC,EArBD,CACHvB,KAAM0oC,IAWHz+B,EAAAtI,KAAA,iBAAAsI,EAAAvI,KAAA,GAAAuI,EAAAxH,GAAAwH,EAAA,SAWC1I,EAjBD,CACHvB,KAAM2oC,IAiBFpnC,EAASzB,YAAgB,CACrBuC,QAAO,qEAAA8D,OAAuE0rC,EAAvE,KACPvvC,QAASC,IAAwBG,SAdtC,yBAAAuH,EAAAtH,SAAAqH,EAAA,kBAAP,gBAAA2F,GAAA,OAAAJ,EAAA1M,MAAAC,KAAAC,YAAA","file":"static/js/main.7edf3a15.chunk.js","sourcesContent":["export const ENQUEUE_SNACKBAR = 'ENQUEUE_SNACKBAR';\nexport const REMOVE_SNACKBAR = 'REMOVE_SNACKBAR';\n\nexport const enqueueSnackbar = (notification: any): object => {\n return {\n type: ENQUEUE_SNACKBAR,\n notification: {\n key: new Date().getTime() + Math.random(),\n ...notification\n }\n };\n};\n\nexport const removeSnackbar = (key: any): object => {\n return {\n type: 'REMOVE_SNACKBAR',\n key\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\nimport { GeographyPolygon } from '../../../interfaces/networkInsightsServiceInterfaces';\nimport { GeographyPolygonRequest } from '../../../interfaces/marketInsightsServiceInterfaces';\n\nexport const GEOGRAPHY_POLYGON_REQUEST = 'GEOGRAPHY_POLYGON_REQUEST';\nexport const GEOGRAPHY_POLYGON_SUCCESS = 'GEOGRAPHY_POLYGON_SUCCESS';\nexport const GEOGRAPHY_POLYGON_FAILURE = 'GEOGRAPHY_POLYGON_FAILURE';\n\nconst requestGeographyPolygon = (): object => {\n return {\n type: GEOGRAPHY_POLYGON_REQUEST\n };\n};\n\nconst receiveGeographyPolygon = (json: object): object => {\n return {\n type: GEOGRAPHY_POLYGON_SUCCESS,\n payload: json\n };\n};\n\nconst requestGeographyPolygonFailed = (): object => {\n return {\n type: GEOGRAPHY_POLYGON_FAILURE\n };\n};\n\nexport const fetchGeographyPolygon = (inputBody: GeographyPolygonRequest): Function => {\n return async (dispatch: any): Promise => {\n if (inputBody.origin_area !== null && inputBody.destination_area !== null) {\n dispatch(requestGeographyPolygon());\n\n try {\n const json: GeographyPolygon = await ApiService.post(Endpoints.geographyPolygons, inputBody, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveGeographyPolygon(json));\n } else {\n dispatch(receiveGeographyPolygon({}));\n dispatch(enqueueSnackbar({\n message: 'No polygons available.',\n variant: SnackbarMessageVariants.Info\n }));\n }\n } catch (err) {\n dispatch(requestGeographyPolygonFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching geography polygons.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n } else {\n dispatch(receiveGeographyPolygon({}));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { LaneDetailsService } from '../../../interfaces/marketInsightsUiServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const LANE_DETAILS_YEAR_REQUEST = 'LANE_DETAILS_YEAR_REQUEST';\nexport const LANE_DETAILS_YEAR_SUCCESS = 'LANE_DETAILS_YEAR_SUCCESS';\nexport const LANE_DETAILS_YEAR_FAILURE = 'LANE_DETAILS_YEAR_FAILURE';\n\nconst requestLaneDetailsYear = (): object => {\n return {\n type: LANE_DETAILS_YEAR_REQUEST\n };\n};\n\nconst receiveLaneDetailsYear = (json: object): object => {\n return {\n type: LANE_DETAILS_YEAR_SUCCESS,\n payload: json\n };\n};\n\nconst requestLaneDetailsYearFailed = (): object => {\n return {\n type: LANE_DETAILS_YEAR_FAILURE\n };\n};\n\nexport const fetchLaneDetailsYear = (searchQuery: any, months: number = 12): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestLaneDetailsYear());\n\n const requestBody = [{\n ...searchQuery,\n months\n }];\n try {\n const json = await ApiService.post(Endpoints.laneDetails, requestBody);\n if (json && Array.isArray(json.data) && json.data[0].length > 0) {\n const jsonData: LaneDetailsService[] = json.data[0];\n dispatch(receiveLaneDetailsYear(jsonData));\n } else {\n dispatch(requestLaneDetailsYearFailed());\n dispatch(enqueueSnackbar({\n message: 'Not enough loads to provide lane details for current year.',\n variant: SnackbarMessageVariants.Info\n }));\n }\n } catch (err) {\n dispatch(requestLaneDetailsYearFailed());\n dispatch(enqueueSnackbar({\n message: 'Error has occurred while fetching lane details for yearly data.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { SeasonalityService } from '../../../interfaces/marketInsightsUiServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const SEASONALITY_REQUEST = 'SEASONALITY_REQUEST';\nexport const SEASONALITY_SUCCESS = 'SEASONALITY_SUCCESS';\nexport const SEASONALITY_FAILURE = 'SEASONALITY_FAILURE';\n\nconst requestSeasonality = (): object => {\n return {\n type: SEASONALITY_REQUEST\n };\n};\n\nconst receiveSeasonality = (json: object): object => {\n return {\n type: SEASONALITY_SUCCESS,\n payload: json\n };\n};\n\nconst requestSeasonalityFailed = (): object => {\n return {\n type: SEASONALITY_FAILURE\n };\n};\n\nexport const fetchSeasonality = (query: any, months: number = 60): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestSeasonality());\n\n const requestBody = [{\n ...query,\n months\n }];\n\n try {\n const json = await ApiService.post(Endpoints.seasonality, requestBody);\n\n const jsonData: SeasonalityService[] = json.data;\n if (Array.isArray(jsonData) && jsonData.length > 0) {\n // sort the seasonality data by year in descending order\n const sortedData: SeasonalityService[] = jsonData.sort((a: any, b: any): number => {\n return b.year - a.year;\n });\n dispatch(receiveSeasonality(sortedData));\n } else {\n // If no seasons are returned dispatch an empty array and handle it within the component\n dispatch(requestSeasonalityFailed());\n dispatch(enqueueSnackbar({\n message: 'Not enough loads to provide specific seasonality data.',\n variant: SnackbarMessageVariants.Info\n }));\n }\n } catch (err) {\n dispatch(requestSeasonalityFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching seasonality data.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","const {\n login_url: loginUrl,\n authorize_url: authorizeUrl,\n business_api_url: businessUrl,\n market_rates_insights_api_url: marketRateInsightsUrl,\n truck_load_rate_api_url: truckLoadRateUrl,\n network_api_url: networkUrl,\n payment_url: paymentUrl,\n base_api_url: baseApiUrl,\n tlr_subscription_modify: tlrSubscriptionModify\n} = (window as any).tcx_transportationinsights_configs;\n\nexport default {\n authorityUrl: `https://${baseApiUrl}${authorizeUrl}/v2`,\n issuer: authorizeUrl,\n authorizationUrl: `https://${baseApiUrl}${authorizeUrl}/authorize`,\n tokenUrl: `https://${baseApiUrl}${authorizeUrl}/token?tenantDomain=trimble.com`,\n userinfoUrl: `https://${baseApiUrl}${authorizeUrl}/userinfo-v2?schema=openid`,\n jwksUrl: `https://${baseApiUrl}${authorizeUrl}/v1.1/.well-known/jwks.json`,\n LogoutUri: `https://${baseApiUrl}${authorizeUrl}/i/commonauth?commonAuthLogout=true&type=samlsso&sessionDataKey=E294FEF4A64BF7E14940E2964F78E351&commonAuthCallerPath=${loginUrl}`,\n redirectUrl: `https://${baseApiUrl}${loginUrl}/authorize`,\n endSessionUrl: `https://${baseApiUrl}${loginUrl}/revoke`,\n marketInsightsAuthorizationStatus: `https://${baseApiUrl}${marketRateInsightsUrl}/marketRates/authStatus`,\n locationSearch: `https://${baseApiUrl}${businessUrl}/Locations`,\n laneDetails: `https://${baseApiUrl}${businessUrl}/MarketRates/LaneDetails`,\n seasonality: `https://${baseApiUrl}${businessUrl}/MarketRates/Seasonality`,\n rankingArea2area: `https://${baseApiUrl}${marketRateInsightsUrl}/marketRates/ranking/area2area/`,\n rankingArea2areaInboundAndOutbound: `https://${baseApiUrl}${marketRateInsightsUrl}/marketRates/ranking/area2area/inboundAndOutbound/`,\n truckLoadRateAuthorizationStatus: `https://${baseApiUrl}${truckLoadRateUrl}/authStatus`,\n truckLoadRateAdminAuthorizationStatus: `https://${baseApiUrl}${truckLoadRateUrl}/admin/authStatus`,\n allSavedLanes: `https://${baseApiUrl}${truckLoadRateUrl}/allSavedLanes/`,\n saveSearchedLane: `https://${baseApiUrl}${truckLoadRateUrl}/saveSearchedLane/`,\n deleteSavedLane: `https://${baseApiUrl}${truckLoadRateUrl}/lanes/`,\n chartsNationalHaul: `https://${baseApiUrl}${marketRateInsightsUrl}/marketRates/charts/national/haul`,\n chartsStateRate: `https://${baseApiUrl}${marketRateInsightsUrl}/marketRates/charts/state/rate`,\n downloadRateProcessTemplate: `https://${baseApiUrl}${truckLoadRateUrl}/rate-manager/download/batchUploadTemplate`,\n verifyProcessRates: `https://${baseApiUrl}${truckLoadRateUrl}/rate-manager/validateRatesFile`,\n submitProcessRates: `https://${baseApiUrl}${truckLoadRateUrl}/rate-manager/upload`,\n getProcessRateHistory: `https://${baseApiUrl}${truckLoadRateUrl}/rate-manager/files`,\n downloadProcessedRates: `https://${baseApiUrl}${truckLoadRateUrl}/rate-manager/download/outputFile`,\n networkAuthorizationStatus: `https://${baseApiUrl}${networkUrl}/authStatus`,\n networkLanes: `https://${baseApiUrl}${networkUrl}/lanes`,\n networkLanesKeyPerformanceIndicators: `https://${baseApiUrl}${networkUrl}/lanes/kpi`,\n geographyPolygons: `https://${baseApiUrl}${networkUrl}/geography/area/geojson`,\n getTCXUsers: `https://${baseApiUrl}${truckLoadRateUrl}/admin/users`,\n createTCXUsers: `https://${baseApiUrl}${truckLoadRateUrl}/admin/users/create`,\n deleteTCXUser: `https://${baseApiUrl}${truckLoadRateUrl}/admin/users`,\n updateTCXUsers: `https://${baseApiUrl}${truckLoadRateUrl}/admin/users`,\n ttcUserInfo: `https://${baseApiUrl}/api/identity/v2/oauth2/userinfo`,\n ttcActivityEndPoint: `https://${baseApiUrl}/iam/v2/users/activity`,\n getBillingHistory: `https://${baseApiUrl}${paymentUrl}/billingHistory`,\n downloadInvoice: `https://${baseApiUrl}${paymentUrl}/billingHistory/download`,\n tlrSubscriptionModify: `${tlrSubscriptionModify}`,\n tlrSubscriptionStatusEndPoint: `https://${baseApiUrl}${truckLoadRateUrl}/admin/subscription/status`\n};\n","import { fetchLaneDetailsYear } from './laneDetailsYearActions';\nimport { fetchLaneDetails } from './laneDetailsActions';\nimport { fetchSeasonality } from './seasonalityActions';\nimport { AppRoles } from '../../../interfaces/authorizationInterfaces';\n\nexport const SET_ORIGIN = 'SET_ORIGIN';\nexport const SET_DESTINATION = 'SET_DESTINATION';\nexport const SET_EQUIPMENT_TYPE = 'SET_EQUIPMENT_TYPE';\n\nexport const setOrigin = (origin: any): object => {\n return {\n type: SET_ORIGIN,\n payload: origin\n };\n};\n\nexport const setDestination = (destination: any): object => {\n return {\n type: SET_DESTINATION,\n payload: destination\n };\n};\n\nexport const setEquipmentType = (equipmentType: any): object => {\n return {\n type: SET_EQUIPMENT_TYPE,\n payload: equipmentType\n };\n};\n\nexport const handleLaneSearch = (searchQuery: any, roles: AppRoles, isTruckLoadRate: boolean = false): Function => {\n return async (dispatch: any): Promise => {\n dispatch(fetchLaneDetails(searchQuery, roles));\n dispatch(fetchLaneDetailsYear(searchQuery));\n if (isTruckLoadRate !== true) {\n dispatch(fetchSeasonality(searchQuery));\n }\n };\n};\n","import axios from 'axios';\nimport { CustomAxiosRequestConfig } from '../interfaces/axiosInterfaces';\n\n// TODO: check GitHub issue before upgrading to latest axios package.\n// https://github.com/axios/axios/issues/2295\n// They also added a Method type for the method that we can use when we upgrade\nconst ApiService = {\n /**\n * Makes a POST call through axios\n * @param url URL of the API to call\n * @param postBody JSON body of the POST API call\n * @param useBearerToken indicator of whether the bearer token needs to be added to the api call, defaults to false\n * @param isInterceptorEnabled indicator of whether the axios interceptor logic should run, defaults to true - should only be false for auth calls\n */\n async post(url: string, postBody: any, useBearerToken: boolean = false, isInterceptorEnabled: boolean = true): Promise {\n const response = await axios({\n url,\n method: 'POST',\n data: postBody,\n useBearerToken,\n isInterceptorEnabled\n } as CustomAxiosRequestConfig);\n\n return response.data;\n },\n /**\n * Makes a PUT call through axios\n * @param url URL of the API to call\n * @param postBody JSON body of the POST API call\n * @param useBearerToken indicator of whether the bearer token needs to be added to the api call, defaults to false\n * @param isInterceptorEnabled indicator of whether the axios interceptor logic should run, defaults to true - should only be false for auth calls\n */\n async put(url: string, postBody: any, useBearerToken: boolean = false, isInterceptorEnabled: boolean = true): Promise {\n const response = await axios({\n url,\n method: 'PUT',\n data: postBody,\n useBearerToken,\n isInterceptorEnabled\n } as CustomAxiosRequestConfig);\n\n return response.data;\n },\n\n /**\n * Makes a GET call through axios\n * @param url URL of the API to call\n * @param useBearerToken indicator of whether the bearer token needs to be added to the api call, defaults to false\n * @param isInterceptorEnabled indicator of whether the axios interceptor logic should run, defaults to true - should only be false for auth calls\n */\n async get(url: string, useBearerToken: boolean = false, isInterceptorEnabled: boolean = true): Promise {\n const response = await axios({\n url,\n method: 'GET',\n useBearerToken,\n isInterceptorEnabled\n } as CustomAxiosRequestConfig);\n\n return response.data;\n },\n\n async getBlob(url: string, useBearerToken: boolean = false, isInterceptorEnabled: boolean = true): Promise {\n const response = await axios({\n url,\n method: 'GET',\n useBearerToken,\n isInterceptorEnabled,\n responseType: 'blob'\n } as CustomAxiosRequestConfig);\n\n return response.data;\n },\n\n /**\n * Makes a DELETE call through axios\n * @param url URL of the API to call\n * @param useBearerToken indicator of whether the bearer token needs to be added to the api call, defaults to false\n * @param isInterceptorEnabled indicator of whether the axios interceptor logic should run, defaults to true - should only be false for auth calls\n */\n async delete(url: string, useBearerToken: boolean = false, isInterceptorEnabled: boolean = true): Promise {\n const response = await axios({\n url,\n method: 'DELETE',\n useBearerToken,\n isInterceptorEnabled\n } as CustomAxiosRequestConfig);\n\n return response.data;\n }\n};\n\nexport default ApiService;\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport {\n DataChartsNationalHaul\n} from '../../../interfaces/truckLoadRateServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const NATIONAL_HAUL_RATES_REQUEST = 'NATIONAL_HAUL_RATES_REQUEST';\nexport const NATIONAL_HAUL_RATES_SUCCESS = 'NATIONAL_HAUL_RATES_SUCCESS';\nexport const NATIONAL_HAUL_RATES_FAILURE = 'NATIONAL_HAUL_RATES_FAILURE';\n\nconst requestNationalHaulRates = (): object => {\n return {\n type: NATIONAL_HAUL_RATES_REQUEST\n };\n};\n\nconst receiveNationalHaulRates = (json: object): object => {\n return {\n type: NATIONAL_HAUL_RATES_SUCCESS,\n payload: json\n };\n};\n\nconst requestNationalHaulRatesFailed = (): object => {\n return {\n type: NATIONAL_HAUL_RATES_FAILURE\n };\n};\n\nexport const fetchNationalHaulRates = (searchQuery: any): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestNationalHaulRates());\n\n try {\n const json: DataChartsNationalHaul = await ApiService.post(Endpoints.chartsNationalHaul, searchQuery, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveNationalHaulRates(json));\n } else {\n dispatch(receiveNationalHaulRates({}));\n }\n } catch (err) {\n dispatch(requestNationalHaulRatesFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching national haul rates.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport {\n DataChartsStateRate\n} from '../../../interfaces/truckLoadRateServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const STATE_RATE_HISTORY_REQUEST = 'STATE_RATE_HISTORY_REQUEST';\nexport const STATE_RATE_HISTORY_SUCCESS = 'STATE_RATE_HISTORY_SUCCESS';\nexport const STATE_RATE_HISTORY_FAILURE = 'STATE_RATE_HISTORY_FAILURE';\n\nconst requestStateRateHistory = (): object => {\n return {\n type: STATE_RATE_HISTORY_REQUEST\n };\n};\n\nconst receiveStateRateHistory = (json: DataChartsStateRate): object => {\n return {\n type: STATE_RATE_HISTORY_SUCCESS,\n payload: json\n };\n};\n\nconst requestStateRateHistoryFailed = (): object => {\n return {\n type: STATE_RATE_HISTORY_FAILURE\n };\n};\n\nexport const fetchStateRateHistory = (searchQuery: any): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestStateRateHistory());\n\n try {\n const json: DataChartsStateRate = await ApiService.post(Endpoints.chartsStateRate, searchQuery, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveStateRateHistory(json));\n } else {\n dispatch(receiveStateRateHistory({} as DataChartsStateRate));\n }\n } catch (err) {\n dispatch(requestStateRateHistoryFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching state rate chart data.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","export default {\n address: {\n city: 'city',\n state: 'tx'\n },\n favourite: true,\n id: '',\n mi_enabled: true,\n name: 'somename',\n status: true,\n external_reference: {\n tlr: '{\"billingPrice\":646.92,\"nextBillingDate\":\"2021-03-20T00:22:48Z\",\"isActive\"' +\n ':true,\"message\":null,\"subscriptionTypes\":[\"TLR_AP\"],\"subscriptionId\":' +\n '\"6149721813946998004004\",\"additionalUsers\":15,\"discount\":10.0,\"numberOfTrialDays\":14.0}'\n }\n};\n","import { TCXAccount } from '../../../../interfaces/TCXInterfaces';\nimport { SnackbarMessageVariants } from '../../../../helpers/enums';\nimport tcxAccount from '../../../../assets/mockData/tcxAccount';\nimport { enqueueSnackbar } from '../../notificationActions';\n\nexport const RECEIVE_ACCOUNT = 'RECEIVE_ACCOUNT';\nexport const REQUEST_ACCOUNT_FAILED = 'REQUEST_ACCOUNT_FAILED';\nexport const REQUEST_ACCOUNT = 'REQUEST_ACCOUNT';\n\nconst requestAccount = (): object => {\n return {\n type: REQUEST_ACCOUNT\n };\n};\n\nconst requestAccountFailed = (): object => {\n return {\n type: REQUEST_ACCOUNT_FAILED\n };\n};\n\nconst receiveAccount = (page: TCXAccount): object => {\n return {\n type: RECEIVE_ACCOUNT,\n payload: page\n };\n};\n\nexport const fetchAccount = (): object => {\n return async (dispatch: Function): Promise => {\n dispatch(requestAccount());\n\n try {\n // TODO: SCHI-703 Remove this mocked Data\n // const account: TCXAccount = await ApiService.get(Endpoints.getAccount, true);\n const account: TCXAccount = await new Promise((resolve) => {\n resolve(tcxAccount);\n });\n\n if (account.external_reference && account.external_reference.tlr) {\n account.external_ref_parsed = {\n tlr: JSON.parse(account.external_reference.tlr)\n };\n }\n\n dispatch(receiveAccount(account));\n } catch (err) {\n dispatch(requestAccountFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching Account.123',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { TopLanesService } from '../../../interfaces/marketInsightsServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const TOP_LANES_REQUEST = 'TOP_LANES_REQUEST';\nexport const TOP_LANES_SUCCESS = 'TOP_LANES_SUCCESS';\nexport const TOP_LANES_FAILURE = 'TOP_LANES_FAILURE';\n\nconst requestTopLanes = (): object => {\n return {\n type: TOP_LANES_REQUEST\n };\n};\n\nconst receiveTopLanes = (json: object): object => {\n return {\n type: TOP_LANES_SUCCESS,\n payload: json\n };\n};\n\nconst requestTopLanesFailed = (): object => {\n return {\n type: TOP_LANES_FAILURE\n };\n};\n\nexport const fetchTopLanes = (query: any, topCount: number = 20): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestTopLanes());\n\n const requestBody = {\n ...query,\n topCount\n };\n\n try {\n const json: TopLanesService = await ApiService.post(Endpoints.rankingArea2area, requestBody);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveTopLanes(json));\n } else {\n // If no top lanes are returned dispatch an empty object and handle it within the component\n dispatch(receiveTopLanes({}));\n }\n } catch (err) {\n dispatch(requestTopLanesFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching top lanes.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { LanesKeyPerformanceIndicators } from '../../../interfaces/networkInsightsServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const LANES_KEY_PERFORMANCE_INDICATORS_REQUEST = 'LANES_KEY_PERFORMANCE_INDICATORS_REQUEST';\nexport const LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS = 'LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS';\nexport const LANES_KEY_PERFORMANCE_INDICATORS_FAILURE = 'LANES_KEY_PERFORMANCE_INDICATORS_FAILURE';\n\nconst requestLanesKeyPerformanceIndicators = (): object => {\n return {\n type: LANES_KEY_PERFORMANCE_INDICATORS_REQUEST\n };\n};\n\nconst receiveLanesKeyPerformanceIndicators = (json: object): object => {\n return {\n type: LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS,\n payload: json\n };\n};\n\nconst requestLanesKeyPerformanceIndicatorsFailed = (): object => {\n return {\n type: LANES_KEY_PERFORMANCE_INDICATORS_FAILURE\n };\n};\n\nconst fetchLanesKeyPerformanceIndicators = (query: any): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestLanesKeyPerformanceIndicators());\n\n try {\n const json: LanesKeyPerformanceIndicators = await ApiService.post(Endpoints.networkLanesKeyPerformanceIndicators, query, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveLanesKeyPerformanceIndicators(json));\n } else {\n dispatch(receiveLanesKeyPerformanceIndicators({}));\n }\n } catch (err) {\n dispatch(requestLanesKeyPerformanceIndicatorsFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching key performance indicators.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nexport {\n fetchLanesKeyPerformanceIndicators\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { TopNetworkLanes } from '../../../interfaces/networkInsightsServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const TOP_NETWORK_LANES_REQUEST = 'TOP_NETWORK_LANES_REQUEST';\nexport const TOP_NETWORK_LANES_SUCCESS = 'TOP_NETWORK_LANES_SUCCESS';\nexport const TOP_NETWORK_LANES_FAILURE = 'TOP_NETWORK_LANES_FAILURE';\n\nconst requestTopNetworkLanes = (): object => {\n return {\n type: TOP_NETWORK_LANES_REQUEST\n };\n};\n\nconst receiveTopNetworkLanes = (json: object): object => {\n return {\n type: TOP_NETWORK_LANES_SUCCESS,\n payload: json\n };\n};\n\nconst requestTopNetworkLanesFailed = (): object => {\n return {\n type: TOP_NETWORK_LANES_FAILURE\n };\n};\n\nexport const fetchTopNetworkLanes = (query: any): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestTopNetworkLanes());\n\n try {\n const json: TopNetworkLanes[] = await ApiService.post(Endpoints.networkLanes, query, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveTopNetworkLanes(json));\n } else {\n dispatch(receiveTopNetworkLanes({}));\n }\n } catch (err) {\n dispatch(requestTopNetworkLanesFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching top network lanes.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { format, parseISO } from 'date-fns';\nimport { SnackbarMessageVariants } from '../../../../helpers/enums';\nimport { enqueueSnackbar } from '../../notificationActions';\nimport { SubscriptionStatus } from '../../../../interfaces/truckLoadRateServiceInterfaces';\nimport ApiService from '../../../../services/apiService';\nimport Endpoints from '../../../../services/endpoints';\n\nexport const RECEIVE_SUBSCRIPTION_STATUS = 'RECEIVE_SUBSCRIPTION_STATUS';\nexport const REQUEST_SUBSCRIPTION_STATUS_FAILED = 'REQUEST_SUBSCRIPTION_STATUS_FAILED';\nexport const REQUEST_SUBSCRIPTION_STATUS = 'REQUEST_SUBSCRIPTION_STATUS';\n\nconst requestSubscriptionStatus = (): object => {\n return {\n type: REQUEST_SUBSCRIPTION_STATUS\n };\n};\n\nconst requestSubscriptionCancelationFailed = (): object => {\n return {\n type: REQUEST_SUBSCRIPTION_STATUS_FAILED\n };\n};\n\nconst receiveSubscriptionStatus = (response: SubscriptionStatus): object => {\n return {\n type: RECEIVE_SUBSCRIPTION_STATUS,\n payload: response\n };\n};\n\nexport const fetchSubscriptionStatus = (): object => {\n return async (dispatch: Function): Promise => {\n dispatch(requestSubscriptionStatus());\n\n try {\n const subscriptionStatus: SubscriptionStatus = await ApiService.get(Endpoints.tlrSubscriptionStatusEndPoint, true);\n dispatch(receiveSubscriptionStatus(subscriptionStatus));\n } catch (err) {\n dispatch(requestSubscriptionCancelationFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching Account Information',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst isBeforeBillingDate = (billingDate: Date, todaysDate: Date): boolean => {\n billingDate.setHours(0, 0, 0, 0);\n todaysDate.setHours(0, 0, 0, 0);\n return todaysDate < billingDate;\n};\n\nconst subscriptionUpdateResponseMessage = (cancelAutoPay: boolean, subscriptionStatusResponse: SubscriptionStatus): string => {\n let message = '';\n const isBeforeBilling = isBeforeBillingDate(\n new Date(format(parseISO(subscriptionStatusResponse.nextBillingDate.toString()), 'MM/dd/yyyy')), new Date()\n );\n const billingDate = new Date(subscriptionStatusResponse.nextBillingDate).toLocaleDateString();\n if (cancelAutoPay && subscriptionStatusResponse.autoPayCanceled) {\n if (isBeforeBilling) {\n message = `Subscription was successfully canceled, you can continue to use your account until ${billingDate}`;\n } else {\n message = 'Subscription was succussfully canceled, the account will be deactivated tomorrow';\n }\n } else if (!cancelAutoPay && !subscriptionStatusResponse.autoPayCanceled) {\n if (isBeforeBilling) {\n message = `Subscription successfully re-enabled. The account subscription will automatically renew on ${billingDate}`;\n } else {\n message = 'Subscription successfully re-enabled. The account subscription will automatically renew tomorrow';\n }\n }\n return message;\n};\n\nexport const toggleSubscription = (cancelAutoPay: boolean): object => {\n return async (dispatch: Function): Promise => {\n try {\n const body = {\n cancelAutoPay\n };\n dispatch(requestSubscriptionStatus());\n const subscriptionStatus: SubscriptionStatus = await ApiService.post(Endpoints.tlrSubscriptionStatusEndPoint, body, true);\n dispatch(receiveSubscriptionStatus(subscriptionStatus));\n const responseMessage = subscriptionUpdateResponseMessage(cancelAutoPay, subscriptionStatus);\n dispatch(enqueueSnackbar({\n message: responseMessage,\n variant: SnackbarMessageVariants.Success\n }));\n } catch (err) {\n dispatch(requestSubscriptionCancelationFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while updating Subscription Status',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { lazy } from 'react';\nimport {\n mdiFinance, mdiGraph, mdiDolly, mdiWeb, mdiDumpTruck, mdiChartLine, mdiAccountDetails, mdiAccountGroup, mdiTableCheck\n} from '@mdi/js';\n\nimport { RoleTypes } from '../helpers/enums';\nimport { AppRoles, RouteListItem } from '../interfaces/authorizationInterfaces';\n\n// Market Insights\nconst MarketInsightsDashboard = lazy((): Promise => { return import('../components/pages/marketInsights/dashboard'); });\nconst MarketInsightsLaneDetails = lazy((): Promise => { return import('../components/pages/marketInsights/laneDetails'); });\nconst MarketInsightsDataCharts = lazy((): Promise => { return import('../components/pages/marketInsights/dataCharts'); });\nconst MarketInsightsProfile = lazy((): Promise => { return import('../components/pages/marketInsights/profile'); });\n\n// Network Insights\nconst NetworkInsightsGeography = lazy((): Promise => { return import('../components/pages/networkInsights/geography'); });\nconst NetworkInsightsShippers = lazy((): Promise => { return import('../components/pages/networkInsights/shippers'); });\n\n// Data Charts (aka Truck Load Rate)\nconst TruckLoadRateDataCharts = lazy((): Promise => { return import('../components/pages/truckLoadRate/dataCharts'); });\nconst TruckLoadRateLaneDetails = lazy((): Promise => { return import('../components/pages/truckLoadRate/laneDetails'); });\nconst TruckLoadRateRateManager = lazy((): Promise => { return import('../components/pages/truckLoadRate/rateManager'); });\nconst TruckLoadRateAdmin = lazy((): Promise => { return import('../components/pages/truckLoadRate/admin/admin'); });\nconst TruckLoadRateProfile = lazy((): Promise => { return import('../components/pages/truckLoadRate/profile'); });\n\nconst marketInsightsBase = '/marketInsights';\nconst networkInsightsBase = '/networkInsights';\nconst truckLoadRateBase = '/truckLoadRate';\n\nexport const marketInsightsRoutes = {\n dashboard: `${marketInsightsBase}/dashboard`,\n laneDetails: `${marketInsightsBase}/laneDetails`,\n dataCharts: `${marketInsightsBase}/dataCharts`,\n profile: `${marketInsightsBase}/profile`\n};\n\nexport const networkInsightsRoutes = {\n geography: `${networkInsightsBase}/geography`,\n shippers: `${networkInsightsBase}/shippers`\n};\n\nexport const truckLoadRateRoutes = {\n dataCharts: `${truckLoadRateBase}/dataCharts`,\n laneDetails: `${truckLoadRateBase}/laneDetails`,\n rateManager: `${truckLoadRateBase}/rateManager`,\n admin: `${truckLoadRateBase}/admin`,\n profile: `${truckLoadRateBase}/profile`\n};\n\nexport const publicRoutes = {\n root: '/',\n authorize: '/authorize',\n revoke: '/revoke',\n notAuthorized: '/notAuthorized',\n callback: '/callback'\n};\n\nconst privateRouteList = (): RouteListItem[] => {\n return [\n {\n appTitle: 'Market Insights',\n component: MarketInsightsDashboard,\n path: marketInsightsRoutes.dashboard,\n menuTitle: 'Market Insights',\n menuIcon: mdiFinance,\n menuPath: marketInsightsRoutes.dashboard,\n allowedRoles: [RoleTypes.MarketInsights]\n },\n {\n appTitle: 'Market Insights',\n component: MarketInsightsDataCharts,\n path: marketInsightsRoutes.dataCharts,\n menuTitle: 'Data Charts',\n menuIcon: mdiChartLine,\n menuPath: marketInsightsRoutes.dataCharts,\n allowedRoles: [RoleTypes.MarketInsights]\n },\n {\n appTitle: 'Profile',\n component: MarketInsightsProfile,\n path: marketInsightsRoutes.profile,\n menuTitle: 'Profile',\n menuIcon: mdiAccountDetails,\n menuPath: marketInsightsRoutes.profile,\n allowedRoles: [RoleTypes.MarketInsights]\n },\n {\n appTitle: 'Market Insights',\n component: MarketInsightsLaneDetails,\n path: marketInsightsRoutes.laneDetails,\n allowedRoles: [RoleTypes.MarketInsights]\n },\n {\n appTitle: 'Network Insights',\n path: networkInsightsBase,\n menuTitle: 'Network Insights',\n menuIcon: mdiGraph,\n menuPath: networkInsightsBase,\n allowedRoles: [], // TODO: Add NI role back once this page is ready\n subRoutes: [\n {\n appTitle: 'Network Insights',\n component: NetworkInsightsGeography,\n path: networkInsightsRoutes.geography,\n menuTitle: 'Geography',\n menuIcon: mdiWeb,\n menuPath: networkInsightsRoutes.geography,\n allowedRoles: [] // TODO: Add NI role back once this page is ready\n },\n {\n appTitle: 'Network Insights',\n component: NetworkInsightsShippers,\n path: networkInsightsRoutes.shippers,\n menuTitle: 'Shippers',\n menuIcon: mdiDolly,\n menuPath: networkInsightsRoutes.shippers,\n allowedRoles: [] // TODO: Add NI role back once this page is ready\n }\n ]\n },\n {\n appTitle: 'TruckLoad Rates',\n component: TruckLoadRateDataCharts,\n path: truckLoadRateRoutes.dataCharts,\n menuTitle: 'TruckLoad Rates',\n menuIcon: mdiDumpTruck,\n menuPath: truckLoadRateRoutes.dataCharts,\n allowedRoles: [RoleTypes.TruckLoadRate]\n },\n {\n appTitle: 'TruckLoad Rates',\n component: TruckLoadRateRateManager,\n path: truckLoadRateRoutes.rateManager,\n menuTitle: 'Rate Manager',\n menuIcon: mdiTableCheck,\n menuPath: truckLoadRateRoutes.rateManager,\n allowedRoles: [RoleTypes.TruckLoadRate]\n },\n {\n appTitle: 'TruckLoad Rates',\n component: TruckLoadRateAdmin,\n path: truckLoadRateRoutes.admin,\n menuTitle: 'User Management',\n menuIcon: mdiAccountGroup,\n menuPath: truckLoadRateRoutes.admin,\n allowedRoles: [RoleTypes.TruckLoadRateAdmin]\n },\n {\n appTitle: 'TruckLoad Rates',\n component: TruckLoadRateProfile,\n path: truckLoadRateRoutes.profile,\n menuTitle: 'Profile',\n menuIcon: mdiAccountDetails,\n menuPath: truckLoadRateRoutes.profile,\n allowedRoles: [RoleTypes.TruckLoadRate]\n },\n {\n appTitle: 'TruckLoad Rates',\n component: TruckLoadRateLaneDetails,\n path: truckLoadRateRoutes.laneDetails,\n allowedRoles: [RoleTypes.TruckLoadRate]\n }\n ];\n};\n\nconst allowedAppRoles = (appRoles: AppRoles): [string, boolean][] => {\n const roleEntries = Object.entries(appRoles);\n const authorizedAppRoles = roleEntries.filter((entry) => {\n const [, isAuthorized] = entry;\n return isAuthorized === true;\n });\n\n return authorizedAppRoles;\n};\n\nconst isUserAuthorizedForRoute = (allowedRolesForUser: [string, boolean][], allowedRolesForRoute: RoleTypes[]): boolean => {\n // check the array of authorized roles for the route and see if the user is authorized for that route\n const isAuthorized = allowedRolesForUser.some(([roleName]) => {\n return allowedRolesForRoute.indexOf(roleName as RoleTypes) >= 0;\n });\n\n return isAuthorized;\n};\n\n/**\n * This will loop through all available routes and subroutes to determine if the user has access to it.\n * It will return just a flat list of authorized routes.\n * @param appRoles A list of AppRoles for the logged in user\n */\nexport const getAuthorizedRouteList = (appRoles: AppRoles): RouteListItem[] => {\n const allAuthorizedRoutes: RouteListItem[] = [];\n\n // first, get a list of authorized roles that the logged in user has access to\n const authorizedAppRoles = allowedAppRoles(appRoles);\n\n // get list of all available routes in the app\n const allAvailableRoutes = privateRouteList();\n\n // loop through all available routes and determine whether the user is authorized or not\n allAvailableRoutes.forEach((route: RouteListItem) => {\n const { allowedRoles } = route;\n\n if (isUserAuthorizedForRoute(authorizedAppRoles, allowedRoles) === true) {\n // if the user is authorized and there is a component property on the parent, add it to the list\n if (route.component) {\n allAuthorizedRoutes.push(route);\n }\n\n // check authorization for the subRoutes also\n const { subRoutes = [] } = route;\n subRoutes.forEach((subRoute: RouteListItem) => {\n const { allowedRoles: allowedSubRoles } = subRoute;\n\n // if the user is authorized and there is a component property on the child, add it to the list\n if (isUserAuthorizedForRoute(authorizedAppRoles, allowedSubRoles) === true && subRoute.component) {\n allAuthorizedRoutes.push(subRoute);\n }\n });\n }\n });\n\n return allAuthorizedRoutes;\n};\n\n/**\n * This will check the authorized routes and return a list to render the menu.\n * NOTE: this will assume that if the user has access to the parent, they will have access to the subRoute children.\n * @param appRoles A list of AppRoles for the logged in user\n */\nexport const getAuthorizedMenuList = (appRoles: AppRoles): RouteListItem[] => {\n const allAuthorizedMenuItems: RouteListItem[] = [];\n\n // first, get a list of authorized roles that the logged in user has access to\n const authorizedAppRoles = allowedAppRoles(appRoles);\n\n // get list of all available routes in the app\n const allAvailableRoutes = privateRouteList();\n\n // loop through all available routes and determine whether the user is authorized or not\n allAvailableRoutes.forEach((route: RouteListItem) => {\n const { allowedRoles } = route;\n\n // if the route is authorized and has a menuIcon, add it to the list\n // NOTE: adding only allowed subRoutes based on allowed roles.\n if (isUserAuthorizedForRoute(authorizedAppRoles, allowedRoles) === true && route.menuIcon) {\n const { subRoutes = [] } = route;\n const allowedSubRoutes: RouteListItem[] = [];\n subRoutes.forEach((subRoute: RouteListItem) => {\n const { allowedRoles: allowedSubRoles } = subRoute;\n if (isUserAuthorizedForRoute(authorizedAppRoles, allowedSubRoles) === true && subRoute.component) {\n allowedSubRoutes.push(subRoute);\n }\n });\n\n const filteredRoute = { ...route, subRoutes: allowedSubRoutes };\n allAuthorizedMenuItems.push(filteredRoute);\n }\n });\n\n return allAuthorizedMenuItems;\n};\n","import { format, parseISO } from 'date-fns';\nimport {\n EquipmentTypeValues, UsaStateCodes, UsaTerritoryCodes, CanadianProvinceCodes, NetworkInsightsReportType\n} from './enums';\n\nexport const buildAddressObject = (prefix: string, data: any): object => {\n // build the address object to be used by the search actions\n return {\n [`${prefix}Street`]: data.street,\n [`${prefix}City`]: data.city,\n [`${prefix}State`]: data.state,\n [`${prefix}Postal`]: data.zip,\n [`${prefix}Country`]: data.country === 'US' ? 'USA' : data.country\n };\n};\n\nconst buildAreaLabel = (areaDisplay: string): string => {\n const [state, city] = areaDisplay.split(' - ');\n\n return `${city}, ${state}`;\n};\n\nexport const buildLaneOriginObject = (lane: any): object => {\n return {\n label: lane.origin_area_display ? buildAreaLabel(lane.origin_area_display) : null,\n city: lane.origin_city,\n state: lane.origin_state,\n zip: lane.origin_postal ? lane.origin_postal : null\n };\n};\n\nexport const buildLaneDestinationObject = (lane: any): object => {\n return {\n label: lane.destination_area_display ? buildAreaLabel(lane.destination_area_display) : null,\n city: lane.destination_city,\n state: lane.destination_state,\n zip: lane.destination_postal ? lane.destination_postal : null\n };\n};\n\nexport const formatCurrency = (amount: number | null, decimal: number): string => {\n let formattedCurrency = 'N/A';\n\n if (amount !== undefined && amount !== null) {\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: decimal,\n maximumFractionDigits: decimal\n });\n\n formattedCurrency = formatter.format(amount);\n }\n\n return formattedCurrency;\n};\n\nexport const formatRevenueRowCurrency = (amount: number | null, decimal: number): string => {\n let formattedCurrency = '$0.00';\n\n if (amount !== undefined && amount !== null) {\n const formatter = new Intl.NumberFormat('en-Us', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: decimal,\n maximumFractionDigits: decimal\n });\n\n formattedCurrency = formatter.format(amount);\n }\n\n return formattedCurrency;\n};\n\nexport const formatNumber = (inputNumber: number | null, maximumDecimals: number, minimumDecimals: number = 0): string => {\n let formattedNumber = 'N/A';\n\n if (inputNumber !== undefined && inputNumber !== null) {\n const formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: minimumDecimals,\n maximumFractionDigits: maximumDecimals\n });\n\n formattedNumber = formatter.format(inputNumber);\n }\n return formattedNumber;\n};\n\nexport const formatNumberPercentage = (inputNumber: number | null, maximumDecimals: number, minimumDecimals: number = 0): string => {\n let formattedNumberPercentage = 'N/A';\n\n if (inputNumber !== undefined && inputNumber !== null) {\n const formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: minimumDecimals,\n maximumFractionDigits: maximumDecimals\n });\n\n formattedNumberPercentage = formatter.format(inputNumber);\n }\n return `${formattedNumberPercentage}%`;\n};\n\nexport const formatPositiveNumberNoRounding = (inputNumber: number | null, decimals: number = 0): string => {\n let formattedNumber = 'N/A';\n\n if (inputNumber !== undefined && inputNumber !== null && inputNumber >= 0) {\n const numWithRounding = parseFloat(inputNumber.toFixed(decimals));\n formattedNumber = numWithRounding <= inputNumber ? numWithRounding.toString() : (numWithRounding - (0.1 ** decimals)).toFixed(decimals);\n }\n\n return formattedNumber;\n};\n\nexport const getShortMonthFromDate = (inputDate: any): string => {\n const result = format(parseISO(inputDate), 'MMM');\n\n return result;\n};\n\nexport const getMonthFromDate = (inputDate: any): string => {\n const result = format(parseISO(inputDate), 'MMMM');\n\n return result;\n};\n\nexport const getYearFromDate = (inputDate: any): string => {\n const result = format(parseISO(inputDate), 'yyyy');\n\n return result;\n};\n\nexport const getPercentageDifference = (previousAmount: any, currentAmount: any, decimal: number): string | number | null => {\n const percentageDifferenceVolume = previousAmount && currentAmount ?\n (((currentAmount - previousAmount) / previousAmount) * 100) :\n null;\n\n return percentageDifferenceVolume ? formatNumber(percentageDifferenceVolume, decimal) : percentageDifferenceVolume;\n};\n\nexport const groupBy = (objectArray: any, property: any): any => {\n return objectArray.reduce((acc: any, obj: any) => {\n const key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n};\n\nexport const equipmentTypeOptions = [\n { value: EquipmentTypeValues.DryVan, label: 'Dry Van' },\n { value: EquipmentTypeValues.FlatBed, label: 'Flatbed' },\n { value: EquipmentTypeValues.Refrigerated, label: 'Refrigerated' }\n];\n\nexport const usaStateOptions = [\n { value: UsaStateCodes.AL, label: 'Alabama' },\n { value: CanadianProvinceCodes.AB, label: 'Alberta' },\n { value: UsaStateCodes.AK, label: 'Alaska' },\n { value: UsaStateCodes.AZ, label: 'Arizona' },\n { value: UsaStateCodes.AR, label: 'Arkansas' },\n { value: CanadianProvinceCodes.BC, label: 'British Columbia' },\n { value: UsaStateCodes.CA, label: 'California' },\n { value: UsaStateCodes.CO, label: 'Colorado' },\n { value: UsaStateCodes.CT, label: 'Connecticut' },\n { value: UsaStateCodes.DE, label: 'Delaware' },\n { value: UsaStateCodes.DC, label: 'District of Columbia' },\n { value: UsaStateCodes.FL, label: 'Florida' },\n { value: UsaStateCodes.GA, label: 'Georgia' },\n { value: UsaTerritoryCodes.GU, label: 'Guam' },\n { value: UsaStateCodes.HI, label: 'Hawaii' },\n { value: UsaStateCodes.ID, label: 'Idaho' },\n { value: UsaStateCodes.IL, label: 'Illinois' },\n { value: UsaStateCodes.IN, label: 'Indiana' },\n { value: UsaStateCodes.IA, label: 'Iowa' },\n { value: UsaStateCodes.KS, label: 'Kansas' },\n { value: UsaStateCodes.KY, label: 'Kentucky' },\n { value: UsaStateCodes.LA, label: 'Louisiana' },\n { value: UsaStateCodes.ME, label: 'Maine' },\n { value: CanadianProvinceCodes.MB, label: 'Manitoba' },\n { value: UsaStateCodes.MD, label: 'Maryland' },\n { value: UsaStateCodes.MA, label: 'Massachusetts' },\n { value: UsaStateCodes.MI, label: 'Michigan' },\n { value: UsaStateCodes.MN, label: 'Minnesota' },\n { value: UsaStateCodes.MS, label: 'Mississippi' },\n { value: UsaStateCodes.MO, label: 'Missouri' },\n { value: UsaStateCodes.MT, label: 'Montana' },\n { value: UsaStateCodes.NE, label: 'Nebraska' },\n { value: UsaStateCodes.NV, label: 'Nevada' },\n { value: CanadianProvinceCodes.NB, label: 'New Brunswick' },\n { value: UsaStateCodes.NH, label: 'New Hampshire' },\n { value: UsaStateCodes.NJ, label: 'New Jersey' },\n { value: UsaStateCodes.NM, label: 'New Mexico' },\n { value: UsaStateCodes.NY, label: 'New York' },\n { value: CanadianProvinceCodes.NL, label: 'Newfoundland and Labrador' },\n { value: UsaStateCodes.NC, label: 'North Carolina' },\n { value: UsaStateCodes.ND, label: 'North Dakota' },\n { value: CanadianProvinceCodes.NT, label: 'Northwest Territories' },\n { value: CanadianProvinceCodes.NS, label: 'Nova Scotia' },\n { value: CanadianProvinceCodes.NU, label: 'Nunavut' },\n { value: UsaStateCodes.OH, label: 'Ohio' },\n { value: UsaStateCodes.OK, label: 'Oklahoma' },\n { value: CanadianProvinceCodes.ON, label: 'Ontario' },\n { value: UsaStateCodes.OR, label: 'Oregon' },\n { value: UsaStateCodes.PA, label: 'Pennsylvania' },\n { value: CanadianProvinceCodes.PE, label: 'Prince Edward Island' },\n { value: CanadianProvinceCodes.QC, label: 'Quebec' },\n { value: UsaStateCodes.RI, label: 'Rhode Island' },\n { value: CanadianProvinceCodes.SK, label: 'Saskatchewan' },\n { value: UsaStateCodes.SC, label: 'South Carolina' },\n { value: UsaStateCodes.SD, label: 'South Dakota' },\n { value: UsaStateCodes.TN, label: 'Tennessee' },\n { value: UsaStateCodes.TX, label: 'Texas' },\n { value: UsaStateCodes.UT, label: 'Utah' },\n { value: UsaStateCodes.VT, label: 'Vermont' },\n { value: UsaStateCodes.VA, label: 'Virginia' },\n { value: UsaStateCodes.WA, label: 'Washington' },\n { value: UsaStateCodes.WV, label: 'West Virginia' },\n { value: UsaStateCodes.WI, label: 'Wisconsin' },\n { value: UsaStateCodes.WY, label: 'Wyoming' },\n { value: CanadianProvinceCodes.YT, label: 'Yukon' }\n];\n\nexport const getGeographyTableHeaders = (selectedReportType: string, isTableExpanded: boolean): any => {\n const tableHeaders: any = [\n {\n displayText: 'Lane', dataId: 'lane_name'\n }\n ];\n\n const selectedTableHeaderList = {\n Volume: {\n displayText: NetworkInsightsReportType.Volume, dataId: 'order_volume', currency: false, decimals: 2\n },\n AveragePrice: {\n displayText: NetworkInsightsReportType.AveragePrice, dataId: 'price_per_mile', currency: true, decimals: 2\n },\n HaulLength: {\n displayText: NetworkInsightsReportType.HaulLength, dataId: 'loh', currency: false, decimals: 2\n },\n EmptyMiles: {\n displayText: NetworkInsightsReportType.EmptyMiles, dataId: 'empty_miles', currency: false, decimals: 2\n },\n EmptyMilesPercent: {\n displayText: `${NetworkInsightsReportType.EmptyMiles} %`, dataId: 'empty_miles_percent', currency: false, decimals: 0\n },\n MilesPerHour: {\n displayText: NetworkInsightsReportType.MilesPerHour, dataId: 'miles_per_hour', currency: false, decimals: 0\n },\n RevenuePerHour: {\n displayText: NetworkInsightsReportType.RevenuePerHour, dataId: 'revenue_per_hour', currency: true, decimals: 2\n },\n DwellTime: {\n displayText: NetworkInsightsReportType.DwellTime, dataId: 'dwell_time', currency: false, decimals: 2\n },\n InTransitDelay: {\n displayText: NetworkInsightsReportType.InTransitDelay, dataId: 'in_transit_delay', currency: false, decimals: 2\n }\n };\n\n if (isTableExpanded === false) {\n const selectedReportTypeHeaderName = Object.keys(selectedTableHeaderList).find((tableHeaderName) => {\n return tableHeaderName.toLowerCase() === selectedReportType.toLowerCase();\n });\n\n if (selectedReportTypeHeaderName !== undefined) {\n tableHeaders.push((selectedTableHeaderList as any)[selectedReportTypeHeaderName]);\n\n // add on additional display column for the empty miles percent\n if (selectedReportTypeHeaderName.toLowerCase() === 'emptymiles') {\n tableHeaders.push(selectedTableHeaderList.EmptyMilesPercent);\n }\n }\n } else {\n tableHeaders.push(\n selectedTableHeaderList.Volume,\n selectedTableHeaderList.AveragePrice,\n selectedTableHeaderList.HaulLength,\n selectedTableHeaderList.EmptyMiles,\n selectedTableHeaderList.EmptyMilesPercent,\n selectedTableHeaderList.MilesPerHour,\n selectedTableHeaderList.RevenuePerHour,\n selectedTableHeaderList.DwellTime,\n selectedTableHeaderList.InTransitDelay,\n {\n displayText: 'Shippers', dataId: 'shipper_count', currency: false, decimals: 0\n },\n {\n displayText: 'Origin Area', dataId: 'origin_area'\n },\n {\n displayText: 'Origin State', dataId: 'origin_state'\n },\n {\n displayText: 'Destination Area', dataId: 'destination_area'\n },\n {\n displayText: 'Destination State', dataId: 'destination_state'\n }\n );\n }\n\n return tableHeaders;\n};\n\nexport const renderRateResultTypeValue = (type: string): string => {\n switch (type) {\n case 'AREA2AREA':\n return 'Area Rates';\n case 'STATE2STATE':\n return 'State Rates';\n case 'REGION2REGION':\n return 'Regional Rates';\n case 'MARKET2MARKET':\n return 'Market Rates';\n case 'NATIONAL2NATIONAL':\n return 'National Rates';\n default:\n return 'National Rates';\n }\n};\n\nexport const renderSubscriptionTypeValue = (type: string): string => {\n switch (type) {\n case 'TLR_MP':\n return 'Monthly';\n case 'TLR_AP':\n return 'Yearly';\n default:\n return 'Invalid Plan';\n }\n};\n\nconst stateAbbreviationToFullName: { [key: string]: string } = {\n AL: 'Alabama',\n AK: 'Alaska',\n AZ: 'Arizona',\n AR: 'Arkansas',\n CA: 'California',\n CO: 'Colorado',\n CT: 'Connecticut',\n DE: 'Delaware',\n FL: 'Florida',\n GA: 'Georgia',\n HI: 'Hawaii',\n ID: 'Idaho',\n IL: 'Illinois',\n IN: 'Indiana',\n IA: 'Iowa',\n KS: 'Kansas',\n KY: 'Kentucky',\n LA: 'Louisiana',\n ME: 'Maine',\n MD: 'Maryland',\n MA: 'Massachusetts',\n MI: 'Michigan',\n MN: 'Minnesota',\n MS: 'Mississippi',\n MO: 'Missouri',\n MT: 'Montana',\n NE: 'Nebraska',\n NV: 'Nevada',\n NH: 'New Hampshire',\n NJ: 'New Jersey',\n NM: 'New Mexico',\n NY: 'New York',\n NC: 'North Carolina',\n ND: 'North Dakota',\n OH: 'Ohio',\n OK: 'Oklahoma',\n OR: 'Oregon',\n PA: 'Pennsylvania',\n RI: 'Rhode Island',\n SC: 'South Carolina',\n SD: 'South Dakota',\n TN: 'Tennessee',\n TX: 'Texas',\n UT: 'Utah',\n VT: 'Vermont',\n VA: 'Virginia',\n WA: 'Washington',\n WV: 'West Virginia',\n WI: 'Wisconsin',\n WY: 'Wyoming'\n};\n\nexport const formatStateCity = (input: string): string => {\n const parts: string[] = input.split(/\\s*-\\s*/);\n\n if (parts.length !== 2) {\n return 'Invalid input format';\n }\n const [state, city] = parts;\n\n const formattedState: string = state.trim().toUpperCase();\n const formattedCity: string = city\n .trim()\n .toLowerCase()\n .replace(/\\b\\w/g, (c: string) => { return c.toUpperCase(); });\n\n return `${formattedState} - ${formattedCity}`;\n};\n// Arrow function to convert state abbreviation to full name\nexport const getFullStateName = (abbreviation: string): string | undefined => { return stateAbbreviationToFullName[abbreviation]; };\n","import React from 'react';\nimport {\n Grid,\n CircularProgress,\n Typography,\n Theme\n} from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\n\ninterface SpinnerProps {\n classes?: any;\n}\n\nconst styles = (theme: Theme): StyleRules => {\n return createStyles({\n loadingWrapper: {\n minHeight: '150px',\n height: '100%',\n textAlign: 'center'\n },\n loadingText: {\n fontSize: '10px',\n fontWeight: 'lighter',\n color: theme.palette.text.primary\n }\n });\n};\n\nconst Spinner: React.FC = (props: SpinnerProps): JSX.Element => {\n return (\n \n \n \n \n \n LOADING\n \n \n );\n};\n\nexport default withStyles(styles)(Spinner);\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Button, Tooltip } from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\n\ninterface HomeButtonProps {\n tooltipTitle: string;\n homeRoute: string;\n children: any;\n classes?: any;\n}\n\nconst styles = (): StyleRules => {\n return createStyles({\n button: {\n padding: 0,\n justifyContent: 'start',\n minWidth: 0\n }\n });\n};\n\nconst HomeButton: React.FunctionComponent = (props: HomeButtonProps): JSX.Element => {\n return (\n \n \n {props.children}\n \n \n );\n};\n\nexport default withStyles(styles)(HomeButton);\n","module.exports = __webpack_public_path__ + \"static/media/trimble_white.50686b88.png\";","export const RESET_RATE_CALCULATOR_DATA = 'RESET_RATE_CALCULATOR_DATA';\nexport const UPDATE_BASE_RATE_MILES = 'UPDATE_BASE_RATE_MILES';\nexport const UPDATE_BASE_RATE_PER_MILE = 'UPDATE_BASE_RATE_PER_MILE';\nexport const UPDATE_BASE_RATE_ROW_TOTAL = 'UPDATE_BASE_RATE_ROW_TOTAL';\nexport const UPDATE_FUEL_SURCHARGE_MILES = 'UPDATE_FUEL_SURCHARGE_MILES';\nexport const UPDATE_FUEL_SURCHARGE_RATE_PER_MILE = 'UPDATE_FUEL_SURCHARGE_PER_MILE';\nexport const UPDATE_FUEL_SURCHARGE_ROW_TOTAL = 'UPDATE_FUEL_SURCHARGE_ROW_TOTAL';\nexport const UPDATE_EMPTY_MILES = 'UPDATE_EMPTY_MILES';\nexport const UPDATE_EMPTY_MILES_RATE_PER_MILE = 'UPDATE_EMPTY_MILES_RATE_PER_MILE';\nexport const UPDATE_NUMBER_OF_STOPS = 'UPDATE_NUMBER_OF_STOPS';\nexport const UPDATE_NUMBER_OF_STOPS_COST_PER_STOP = 'UPDATE_NUMBER_OF_STOPS_COST_PER_STOP';\nexport const UPDATE_LOADING_FEE = 'UPDATE_LOADING_FEE';\nexport const UPDATE_UNLOADING_FEE = 'UPDATE_UNLOADING_FEE';\nexport const UPDATE_MARKUP_PERCENTAGE = 'UPDATE_MARKUP_PERCENTAGE';\nexport const UPDATE_FLAT_FEE = 'UPDATE_FLAT_FEE';\nexport const UPDATE_ADD_ON_TOTAL = 'UPDATE_ADD_ON_TOTAL';\nexport const UPDATE_NOTES = 'UPDATE_NOTES';\nexport const UPDATE_GRAND_TOTAL = 'UPDATE_GRAND_TOTAL';\nexport const UPDATE_ALL_IN_RATE_PER_MILE = 'UPDATE_ALL_IN_RATE_PER_MILE';\n\nexport const resetRateCalculatorData = (): object => {\n return {\n type: RESET_RATE_CALCULATOR_DATA\n };\n};\n\nexport const setBaseRateMiles = (miles: string): object => {\n return {\n type: UPDATE_BASE_RATE_MILES,\n payload: miles\n };\n};\n\nexport const setBaseRatePerMile = (rate: string): object => {\n return {\n type: UPDATE_BASE_RATE_PER_MILE,\n payload: rate\n };\n};\n\nexport const setBaseRateRowTotal = (total: string): object => {\n return {\n type: UPDATE_BASE_RATE_ROW_TOTAL,\n payload: total\n };\n};\n\nexport const setFuelSurchargeMiles = (miles: string): object => {\n return {\n type: UPDATE_FUEL_SURCHARGE_MILES,\n payload: miles\n };\n};\n\nexport const setFuelSurchargePerMile = (rate: string): object => {\n return {\n type: UPDATE_FUEL_SURCHARGE_RATE_PER_MILE,\n payload: rate\n };\n};\n\nexport const setFuelSurchargeRowTotal = (total: string): object => {\n return {\n type: UPDATE_FUEL_SURCHARGE_ROW_TOTAL,\n payload: total\n };\n};\n\nexport const setEmptyMiles = (miles: string): object => {\n return {\n type: UPDATE_EMPTY_MILES,\n payload: miles\n };\n};\n\nexport const setEmptyMilesRatePerMile = (rate: string): object => {\n return {\n type: UPDATE_EMPTY_MILES_RATE_PER_MILE,\n payload: rate\n };\n};\n\nexport const setNumberOfStops = (stops: string): object => {\n return {\n type: UPDATE_NUMBER_OF_STOPS,\n payload: stops\n };\n};\n\nexport const setNumberOfStopsCostPerStop = (rate: string): object => {\n return {\n type: UPDATE_NUMBER_OF_STOPS_COST_PER_STOP,\n payload: rate\n };\n};\n\nexport const setLoadingFee = (rate: string): object => {\n return {\n type: UPDATE_LOADING_FEE,\n payload: rate\n };\n};\n\nexport const setUnloadingFee = (rate: string): object => {\n return {\n type: UPDATE_UNLOADING_FEE,\n payload: rate\n };\n};\n\nexport const setMarkupPercentage = (percentage: string): object => {\n return {\n type: UPDATE_MARKUP_PERCENTAGE,\n payload: percentage\n };\n};\n\nexport const setFlatFee = (rate: string): object => {\n return {\n type: UPDATE_FLAT_FEE,\n payload: rate\n };\n};\n\nexport const setAddOnTotal = (total: string): object => {\n return {\n type: UPDATE_ADD_ON_TOTAL,\n payload: total\n };\n};\n\nexport const setNotes = (notes: string): object => {\n return {\n type: UPDATE_NOTES,\n payload: notes\n };\n};\n\nexport const setGrandTotal = (total: string): object => {\n return {\n type: UPDATE_GRAND_TOTAL,\n payload: total\n };\n};\n\nexport const setAllInRatePerMile = (ratePerMile: string): object => {\n return {\n type: UPDATE_ALL_IN_RATE_PER_MILE,\n payload: ratePerMile\n };\n};\n","import React from 'react';\nimport {\n Theme\n} from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\nimport trimbleLogo from '../../assets/images/trimble_white.png';\n\ninterface TrimbleLogoProps {\n classes?: any;\n}\n\nconst styles = (theme: Theme): StyleRules => {\n return createStyles({\n companyLogo: {\n maxHeight: '20px'\n },\n [theme.breakpoints.only('xs')]: {\n companyLogo: {\n maxWidth: '100px'\n }\n }\n });\n};\n\nconst TrimbleLogo: React.FunctionComponent = (props: TrimbleLogoProps): JSX.Element => {\n return (\n Trimble Logo\n );\n};\n\nexport default (withStyles(styles))(TrimbleLogo);\n","import React from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport {\n makeStyles,\n ListItem,\n ListItemIcon,\n ListItemText\n} from '@material-ui/core';\nimport Icon from '@mdi/react';\n\nimport { RouteListItem } from '../../interfaces/authorizationInterfaces';\n\nconst useStyles = makeStyles((theme) => {\n return {\n listItem: {\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.appColors.appMenuHoverBackgroundColor\n },\n '&$listItemDisabled': {\n opacity: 1\n },\n '&$listItemSelected': {\n color: theme.palette.common.white,\n backgroundColor: theme.appColors.appMenuSelectedBackgroundColor,\n '&:hover': {\n backgroundColor: theme.appColors.appMenuSelectedBackgroundHoverColor\n }\n }\n },\n listItemDisabled: {},\n listItemSelected: {},\n listItemIcon: {\n paddingLeft: '24px'\n },\n menuTextPrimary: {\n fontSize: '16px',\n textTransform: 'none',\n fontWeight: 400\n },\n nested: {\n paddingLeft: theme.spacing(4)\n }\n };\n});\n\nconst AppHeaderMenuItem = ({\n menuItem,\n isNested,\n isDisabled,\n updateIsMenuOpen\n}: {\n menuItem: RouteListItem;\n isNested: boolean;\n isDisabled: boolean;\n updateIsMenuOpen: Function;\n}): JSX.Element => {\n const classes = useStyles();\n const history = useHistory();\n const location = useLocation();\n\n const isItemSelected = (): boolean => {\n // first check to make sure there is a menuPath on the menuItem\n if (menuItem.menuPath) {\n // then if there are subRoutes, don't show this item as selected\n if (menuItem.subRoutes && menuItem.subRoutes.length > 0) {\n return false;\n }\n\n // if no subRoutes, determine if the menuItem is selected based on the location url\n return location.pathname.startsWith(menuItem.menuPath);\n }\n\n return false;\n };\n\n return (\n {\n updateIsMenuOpen(false);\n history.push(menuItem.path);\n }}\n disabled={isDisabled}\n classes={{\n root: classes.listItem,\n selected: classes.listItemSelected,\n disabled: classes.listItemDisabled\n }}\n className={isNested === true ? classes.nested : ''}\n >\n {\n menuItem.menuIcon &&\n \n \n \n }\n {\n menuItem.menuTitle &&\n \n }\n \n );\n};\n\nexport default AppHeaderMenuItem;\n","import React, { Fragment } from 'react';\nimport {\n Drawer,\n Theme,\n List,\n Collapse\n} from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\nimport AppHeaderMenuItem from './appHeaderMenuItem';\nimport { RouteListItem } from '../../interfaces/authorizationInterfaces';\n\ninterface AppHeaderMenuProps {\n menuList: RouteListItem[];\n isMenuOpen: boolean;\n updateIsMenuOpen: Function;\n classes?: any;\n}\n\nconst styles = (theme: Theme): StyleRules => {\n return createStyles({\n drawerPaper: {\n width: '320px'\n },\n [theme.breakpoints.only('xs')]: {\n drawerPaper: {\n width: '250px'\n }\n }\n });\n};\n\nconst AppHeaderMenu: React.FunctionComponent = (props: AppHeaderMenuProps): JSX.Element => {\n if (props.isMenuOpen === false) {\n return ;\n }\n\n const renderAppHeaderMenu = (): JSX.Element[] => {\n return props.menuList.map((item: RouteListItem): JSX.Element => {\n const { subRoutes = [] } = item;\n const appHeaderSubMenu = subRoutes.map((subRoute) => {\n return (\n \n \n \n );\n });\n\n return (\n \n \n {appHeaderSubMenu}\n \n );\n });\n };\n\n return (\n { props.updateIsMenuOpen(false); }}\n >\n \n {renderAppHeaderMenu()}\n \n \n );\n};\n\nexport default withStyles(styles)(AppHeaderMenu);\n","import React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport {\n AppBar,\n Toolbar,\n Typography,\n Tooltip,\n IconButton,\n Menu,\n MenuItem,\n Hidden,\n Theme\n} from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\nimport Icon from '@mdi/react';\nimport {\n mdiAccountCircle,\n mdiHelpCircle,\n mdiMenu\n} from '@mdi/js';\nimport TrimbleAppLauncher from '@tcx/trimble-app-launcher/lib/AppLauncher';\n\nimport AuthService from '../../services/authService';\nimport { getAuthorizedMenuList, marketInsightsRoutes, truckLoadRateRoutes } from '../../routes/appRouteList';\nimport { AppRoles } from '../../interfaces/authorizationInterfaces';\nimport TrimbleLogo from './trimbleLogo';\nimport HomeButton from '../buttons/homeButton';\nimport AppHeaderMenu from './appHeaderMenu';\n\ninterface AppHeaderProps {\n renderFullHeader: boolean;\n roles: AppRoles;\n homeRoute: string;\n classes?: any;\n}\n\nconst styles = (theme: Theme): StyleRules => {\n return createStyles({\n appLogoWrapper: {\n paddingRight: theme.spacing(1)\n },\n appTitleWrapper: {\n display: 'flex',\n flexGrow: 1,\n paddingTop: '4px'\n },\n appTitle: {\n fontSize: '16px'\n },\n appTitleDivider: {\n paddingTop: '3px'\n },\n [theme.breakpoints.only('xs')]: {\n appLogoWrapper: {\n flexGrow: 1\n }\n }\n });\n};\n\nconst AppHeader: React.FunctionComponent = (props: AppHeaderProps): JSX.Element => {\n const history = useHistory();\n const [anchorEl, setAnchorEl] = useState(null);\n const [isAppNavMenuOpen, setAppNavMenuOpen] = useState(false);\n\n const appMenuList = getAuthorizedMenuList(props.roles);\n\n const handleAccountMenuOpen = (event: any): void => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleAccountMenuClose = (): void => {\n setAnchorEl(null);\n };\n\n const handleProfileMenu = (): void => {\n if (props.roles.marketInsights) {\n history.push(marketInsightsRoutes.profile);\n } else if (props.roles.truckLoadRate || props.roles.truckLoadRateAdmin) {\n history.push(truckLoadRateRoutes.profile);\n }\n handleAccountMenuClose();\n };\n\n const handleContactUs = (): void => {\n window.open('https://transportation.trimble.com/contact-us', '_blank');\n };\n\n return (\n \n \n {\n setAppNavMenuOpen(true);\n }}\n >\n \n \n { setAppNavMenuOpen(isMenuOpen); }}\n />\n
\n \n \n \n
\n \n
\n {props.roles.marketInsights === true &&\n \n Market Insights\n }\n {props.roles.marketInsights === false &&\n \n TruckLoadRate.com\n }\n
\n
\n \n \n \n \n \n {\n props.renderFullHeader &&\n \n }\n \n \n \n \n \n \n {\n handleProfileMenu();\n }}\n >\n Profile\n \n {\n handleAccountMenuClose();\n AuthService.logout();\n }}\n >\n Log Out\n \n \n
\n
\n );\n};\n\nconst mapStateToProps = (state: any): object => {\n return {\n roles: state.userDetails.roles,\n homeRoute: state.userDetails.homeRoute\n };\n};\n\nconst mergeProps = (stateProps: any, dispatchProps: any, ownProps: any): object => {\n return {\n ...ownProps,\n ...stateProps,\n ...dispatchProps\n };\n};\n\nexport default connect(mapStateToProps, null, mergeProps)(withStyles(styles)(AppHeader));\n","import React, { Fragment } from 'react';\n\nimport LoadingSpinner from './spinner';\nimport AppHeader from '../headers/appHeader';\n\nconst CombinedHeaderAndSpinner: React.FC = (): JSX.Element => {\n return (\n \n \n \n \n );\n};\n\nexport default CombinedHeaderAndSpinner;\n","import { createUserManager } from 'redux-oidc';\n\nconst config = (window as any).tcx_transportationinsights_configs;\n\nconst configuration = {\n client_id: config.client_id,\n redirect_uri: `${config.login_url}/callback`,\n response_type: 'code',\n scope: `openid ${config.app_name}`,\n authority: config.authorize_url,\n loadUserInfo: false,\n post_logout_redirect_uri: config.login_url,\n revokeAccessTokenOnSignout: true,\n automaticSilentRenew: true\n};\n\nconst AuthenticationManager = createUserManager(configuration);\n\nexport default AuthenticationManager;\n","import React, { Fragment } from 'react';\nimport * as Oidc from 'redux-oidc';\nimport axios, { AxiosResponse } from 'axios';\nimport { User } from 'oidc-client';\nimport LoadingSpinner from '../components/loaders/combinedHeaderAndSpinner';\nimport endpoints from './endpoints';\nimport AuthenticationManager from './authenticationManager';\n\ninterface Authenticator {\n authenticator: Function;\n fetchAccessToken: Function;\n getUserInfo: Function;\n signOut: Function;\n updateUserLoggedIn: Function;\n isAuthenticated: Function;\n getAccessToken: Function;\n}\n\nconst Authenticator = ((): Authenticator => {\n const ACCESS_TOKEN = 'access_token';\n const authConfig = AuthenticationManager;\n\n const isBlank = (value: string | null | undefined): boolean => {\n return !(value !== '' && value !== null && value !== undefined);\n };\n\n const inIframe = (): boolean => {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n };\n\n const getIdToken = (): string | undefined => {\n const oidcUserKey = `oidc.user:${authConfig.settings.authority ?? ''}:${authConfig.settings.client_id ?? ''}`;\n const oidcUser = sessionStorage.getItem(oidcUserKey);\n if (oidcUser) {\n return JSON.parse(oidcUser).id_token;\n }\n return undefined;\n };\n\n const updateUserActivity = (activity: string): Promise => {\n const code = {\n activityType: activity\n };\n const idToken = getIdToken();\n const headers = {\n Authorization: `Bearer ${idToken}`\n };\n const axiosPromise = axios\n .create({\n headers\n })\n .post(endpoints.ttcActivityEndPoint, code);\n\n return axiosPromise;\n };\n\n const getUserInfo = (): Promise => {\n const idToken = getIdToken();\n\n const headers = {\n Authorization: `Bearer ${idToken}`\n };\n return axios.get(endpoints.ttcUserInfo, { headers }).then((response) => {\n return response.data;\n });\n };\n\n const authenticator = (props: any, route: string): null => {\n const accessToken = sessionStorage.getItem(ACCESS_TOKEN);\n\n if (isBlank(accessToken)) {\n authConfig.signinRedirect();\n } else {\n props.history.push(route);\n }\n\n return null;\n };\n\n const fetchAccessToken = (props: any, route: string): JSX.Element => {\n if (inIframe()) {\n Oidc.processSilentRenew();\n return ;\n }\n return (\n {\n sessionStorage.setItem(ACCESS_TOKEN, success.access_token);\n props.history.push(route);\n }\n }\n >\n \n \n );\n };\n\n const clearAccessToken = (): void => {\n sessionStorage.removeItem(ACCESS_TOKEN);\n };\n\n const getAccessToken = (): string | null => {\n return sessionStorage.getItem(ACCESS_TOKEN);\n };\n\n const isAuthenticated = (): boolean | '' => {\n return !isBlank(sessionStorage.getItem(ACCESS_TOKEN));\n };\n\n const signOut = async (): Promise => {\n try {\n updateUserActivity('LOGOUT');\n const singoutUrl = await authConfig.createSignoutRequest({ id_token_hint: getAccessToken() });\n\n clearAccessToken();\n await authConfig.removeUser();\n\n (window as any).location.href = singoutUrl.url;\n } catch (error) {\n console.error(error);\n (window as any).location.href = '/';\n }\n };\n\n const updateUserLoggedIn = (): Promise => {\n return updateUserActivity('LOGIN');\n };\n\n return {\n getUserInfo,\n authenticator,\n fetchAccessToken,\n signOut,\n updateUserLoggedIn,\n isAuthenticated,\n getAccessToken\n };\n})();\n\nexport default Authenticator;\n","import { AxiosResponse } from 'axios';\nimport { User } from 'oidc-client';\nimport { publicRoutes } from '../routes/appRouteList';\nimport Authenticator from './authenticator';\n\ninterface AuthService {\n getUser: Function;\n login: Function;\n loginCallback: Function;\n logout: Function;\n authorize: Function;\n getAccessToken: Function;\n}\n\nconst AuthService = ((): AuthService => {\n let user: any | null = null;\n\n const isBlank = (value: string | null | undefined): boolean => {\n return !(value !== '' && value !== null && value !== undefined);\n };\n\n const isUserPresent = (): boolean | '' => {\n return !isBlank(user);\n };\n\n const getUser = (): Promise => {\n if (Authenticator.isAuthenticated()) {\n if (isUserPresent()) {\n return new Promise((resolve): void => {\n resolve(user);\n });\n }\n\n return Authenticator.getUserInfo().then((userObj: User) => {\n user = userObj;\n return user;\n });\n }\n\n return new Promise((_, reject): void => {\n reject();\n });\n };\n\n const login = (props: any): void => {\n return Authenticator.authenticator(props, publicRoutes.authorize);\n };\n\n const logout = async (): Promise => {\n await Authenticator.signOut();\n };\n\n const loginCallback = (props: any): void => {\n return Authenticator.fetchAccessToken(props, publicRoutes.authorize);\n };\n\n const authorize = (): Promise => {\n return Authenticator.updateUserLoggedIn();\n };\n\n const getAccessToken = (): void => {\n return Authenticator.getAccessToken();\n };\n\n return {\n getUser,\n login,\n loginCallback,\n logout,\n authorize,\n getAccessToken\n };\n})();\n\nexport default AuthService;\n","import axios from 'axios';\nimport { History } from 'history';\nimport AuthService from './authService';\nimport { CustomAxiosRequestConfig } from '../interfaces/axiosInterfaces';\nimport { publicRoutes } from '../routes/appRouteList';\n\nconst isInterceptorEnabled = (config: CustomAxiosRequestConfig = {}): boolean | undefined => {\n return config.isInterceptorEnabled;\n};\n\nconst notLoggedInError = 'User is not logged in';\n\nconst httpService = {\n // we pass the history in order to navigate to the root or the not authorized page\n // if the user is not authenticated or a 401 is returned from a service\n setupInterceptors: (history: History): void => {\n axios.interceptors.request.use(async (request: CustomAxiosRequestConfig) => {\n const newRequest = request;\n const accessToken = await AuthService.getAccessToken();\n\n if (accessToken) { // The user is authenticated\n let headers: any = {\n Accept: 'application/json'\n };\n headers = {\n ...headers,\n Authorization: `Bearer ${accessToken}`\n };\n\n newRequest.headers = headers;\n return newRequest;\n }\n\n // If user is not authenticated, throw a new error for the response below to catch\n return Promise.reject(new Error(notLoggedInError));\n }, (error) => {\n // if any errors occur as part of the request interceptor, we will just go to the not authorized page\n history.push(publicRoutes.notAuthorized);\n return Promise.reject(error);\n });\n\n axios.interceptors.response.use((response) => {\n // simply return the response if there is no error\n return response;\n }, (error) => {\n // first check to make sure we should go through the error handling\n if (isInterceptorEnabled(error.config)) {\n // if the error contains the string from the request interceptor above, then redirect to the login page to re-authenticate\n if (error.toString().includes(notLoggedInError) === true) {\n history.push(publicRoutes.root);\n }\n\n // if any of the service calls returns a 401, redirect to the not authorized page\n if (error.response.status === 401) {\n // send the user to the not authorized page since the user/token is not valid\n history.push(publicRoutes.notAuthorized);\n }\n }\n\n // just let the calling action handle the error instead if the handler is not enabled\n return Promise.reject(error);\n });\n }\n};\n\nexport default httpService;\n","// Our custom MUI theme (ref - https://material-ui.com/customization/themes/#other-variables)\nimport createMuiTheme, { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\n// NOTE: When adding or deleting colors in this file be sure to keep the CustomAppColors interface\n// src/interfaces/themeInterfaces.ts in sync.\nexport const trimbleColors = {\n appHeaderColor: '#00437b',\n appPrimaryColor: '#002D5B',\n appPrimaryIconColor: '#005f9e',\n appSecondaryColor: '#FFBE00',\n primaryTextColor: '#363545',\n subHeaderTextColor: '#7b7a86',\n appMenuBackgroundColor: '#f3f3f7',\n appMenuSelectedBackgroundColor: '#0063a3',\n appMenuSelectedBackgroundHoverColor: '#217cbb',\n appMenuHoverBackgroundColor: '#e0e1e9',\n inputPlaceholderColor: '#d8dee9',\n formRootLightColor: '#F3F3F7',\n formLabelLightColor: '#009ad9',\n inputNonFocusedLightColor: '#00437b',\n selectedTabColor: '#009ad9',\n shadedTableBackgroundColor: '#e2e2e7',\n\n // trending colors\n trendingUpColor: '#5aa700',\n trendingDownColor: '#ff8b00',\n trendingFlatColor: '#cbaa39',\n trimbleGreen: '#349C44',\n\n // all in rate colors\n baseRateColor: '#0086f6',\n accessorialChargesColor: '#32c8fc',\n fuelSurchargeColor: '#6bdffd',\n\n // transit colors\n standardTransitColor: '#02b6fb',\n delayColor: '#ffba43',\n unloadColor: '#00a1af',\n loadColor: '#00727c',\n emptyDriveColor: '#ff8324',\n\n // rate fluctuation colors\n rateHigh: '#4ec98c',\n rateAverage: '#078af6',\n rateLow: '#ffc552',\n\n // seasonality trending colors\n seasonalityTrendingUpColor: '#7ed321',\n seasonalityTrendingDownColor: '#ff511a',\n seasonalityTrendingFlatColor: '#ff8b00',\n\n // seasonality trending text colors\n seasonalityTrendingUpTextColor: '#000',\n seasonalityTrendingDownTextColor: '#fff',\n seasonalityTrendingFlatTextColor: '#000',\n\n // grade trending colors\n gradeAColor: '#40cb8d',\n gradeBColor: '#7ed321',\n gradeCColor: '#c9c94f',\n gradeDColor: '#f0844f',\n\n dataChartsBorderColor: '#a8a8a8',\n dataChartsBackgroundColor: '#f3f3f7',\n\n // data charts - national chart colors\n dataChartsNationalAvgRateColor: '#009ad9',\n dataChartsNationalAvgLineHaulRateColor: '#7ed321',\n dataChartsNationalFuelSurchargeColor: '#ffbe00',\n\n // data charts - state chart colors\n dataChartsStateInboundColor: '#ff511a',\n dataChartsStateOutboundColor: '#009ad9',\n\n // data charts - all state chart colors\n dataChartsAllStatesInboundColor: '#FBD4D7',\n dataChartsAllStatesOutboundColor: '#DCEDF9',\n\n paginationColor: '#fafafa',\n\n // Trimble Neutrals\n neutrals: {\n white: '#ffffff',\n grayHalf: '#f9f9fb',\n grayLight: '#F3F3F7',\n gray0: '#EAEAEF',\n gray1: '#E2E2E7',\n gray2: '#D0D0D7',\n gray3: '#BFBFC6',\n gray4: '#AEAEB6',\n gray5: '#9D9DA6',\n gray6: '#8C8B96',\n gray7: '#7B7A86',\n gray8: '#6A6976',\n gray9: '#595868',\n gray10: '#474655',\n trimbleGray: '#363545',\n grayDark1: '#262533',\n grayDark2: '#1B1A26',\n grayDark3: '#0B0A12',\n grayBlack: '#0'\n\n },\n otherColors: {\n bewitchingBlue: '#BBD0E3',\n errorRed: '#DA212C',\n paleGreen: '#E0ECCF'\n }\n};\n\nconst themeOptions: ThemeOptions = {\n typography: {\n fontFamily: '\"Open Sans\", Roboto, Helvetica, Arial, sans-serif'\n },\n appColors: {\n // Add on extra Trimble app specific colors\n ...trimbleColors\n },\n palette: {\n type: 'light',\n primary: {\n main: trimbleColors.appPrimaryColor\n },\n secondary: {\n main: trimbleColors.appSecondaryColor\n },\n text: {\n primary: trimbleColors.primaryTextColor\n }\n },\n overrides: {\n MuiToolbar: {\n root: {\n backgroundColor: `${trimbleColors.appHeaderColor} !important`\n }\n },\n MuiFormControl: {\n root: {\n backgroundColor: '#fff'\n }\n },\n MuiInput: {\n underline: {\n '&:before': {\n borderBottom: `1px solid ${trimbleColors.inputNonFocusedLightColor}`\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottom: `2px solid ${trimbleColors.inputNonFocusedLightColor}`\n },\n '&$focused': {\n borderBottom: `1px solid ${trimbleColors.appSecondaryColor}`\n }\n }\n },\n MuiFilledInput: {\n underline: {\n '&:before': {\n borderBottom: `1px solid ${trimbleColors.inputNonFocusedLightColor}`\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottom: `2px solid ${trimbleColors.inputNonFocusedLightColor}`\n },\n '&$focused': {\n borderBottom: `1px solid ${trimbleColors.appPrimaryIconColor}`\n },\n '&:after': {\n borderBottom: `1px solid ${trimbleColors.appPrimaryIconColor}`\n }\n },\n input: {\n color: '#000',\n fontSize: '16px',\n fontWeight: 600\n }\n },\n MuiInputLabel: {\n root: {\n color: trimbleColors.inputNonFocusedLightColor,\n '&$focused': {\n color: trimbleColors.appPrimaryIconColor\n }\n }\n },\n MuiButton: {\n root: {\n fontWeight: 600\n },\n contained: {\n '&$disabled': {\n backgroundColor: trimbleColors.appSecondaryColor,\n color: trimbleColors.appPrimaryColor,\n opacity: 0.6\n }\n },\n containedSecondary: {\n color: trimbleColors.appPrimaryColor\n }\n },\n MuiCircularProgress: {\n colorPrimary: {\n color: trimbleColors.appPrimaryIconColor\n },\n colorSecondary: {\n color: '#ffffff'\n }\n },\n MuiTabs: {\n indicator: {\n backgroundColor: trimbleColors.selectedTabColor\n }\n },\n MuiTab: {\n root: {\n borderBottom: '1px solid #a6b0c5'\n },\n textColorPrimary: {\n fontSize: '14px',\n color: trimbleColors.appHeaderColor,\n fontWeight: 600,\n '&$selected': {\n color: trimbleColors.selectedTabColor,\n fontWeight: 700\n }\n }\n },\n MuiTableRow: {\n hover: {\n cursor: 'pointer'\n }\n },\n MuiTableCell: {\n head: {\n color: trimbleColors.subHeaderTextColor,\n fontSize: '11px',\n fontWeight: 600\n },\n body: {\n fontSize: '14px'\n }\n },\n MuiFormControlLabel: {\n root: {\n marginRight: '0px'\n },\n label: {\n fontSize: '12px'\n }\n },\n MuiListItem: {\n root: {\n color: trimbleColors.appHeaderColor,\n fontWeight: 600,\n '&$selected': {\n backgroundColor: trimbleColors.dataChartsBackgroundColor,\n color: trimbleColors.selectedTabColor,\n fontWeight: 700\n }\n }\n },\n MuiListItemIcon: {\n root: {\n color: 'inherit'\n }\n },\n MuiListItemText: {\n primary: {\n fontSize: '14px',\n textTransform: 'uppercase',\n fontWeight: 'inherit'\n }\n }\n }\n};\n\n// More on creating a Custom Theme: https://material-ui.com/guides/typescript/#customization-of-theme\nconst mui104Theme = createMuiTheme(themeOptions);\n\nexport default mui104Theme;\n","import React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { withSnackbar } from 'notistack';\n\nimport { removeSnackbar } from '../redux/actions/notificationActions';\n\ninterface NotifierProps {\n notifications?: any;\n removeSnackbar: Function;\n enqueueSnackbar: any;\n closeSnackbar: any;\n}\n\nclass Notifier extends Component {\n\n private displayed: any = [];\n\n public shouldComponentUpdate(nextProps: any): boolean {\n if (this.props.notifications !== nextProps.notifications) {\n const newSnacks = nextProps.notifications || [];\n\n const { notifications: currentSnacks } = this.props;\n let notExists = false;\n for (let i = 0; i < newSnacks.length; i += 1) {\n if (notExists) {\n break;\n }\n notExists = notExists || !currentSnacks.filter((snack: any): boolean => {\n return newSnacks[i].key === snack.key;\n }).length;\n }\n return notExists;\n }\n return false;\n }\n\n public componentDidUpdate(prevProps: any): void {\n if (this.props.notifications !== prevProps.notifications && this.props.notifications !== undefined) {\n const { notifications = [] } = this.props;\n\n notifications.forEach((notification: any): void => {\n // Do nothing if snackbar is already displayed\n if (this.displayed.includes(notification.key)) {\n return;\n }\n\n const options = {\n variant: notification.variant,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center'\n }\n };\n\n // Display snackbar using notistack\n this.props.enqueueSnackbar(notification.message, options);\n\n // Keep track of snackbars that we've displayed\n this.storeDisplayed(notification.key);\n\n // Dispatch action to remove snackbar from redux store\n this.props.removeSnackbar(notification.key);\n });\n }\n }\n\n private storeDisplayed = (id: any): void => {\n this.displayed = [...this.displayed, id];\n };\n\n public render(): JSX.Element {\n return ;\n }\n\n}\n\nconst mapStateToProps = (state: any): object => {\n return {\n notifications: state.notification.notificationList\n };\n};\n\nexport default withSnackbar(connect(mapStateToProps, { removeSnackbar })(Notifier));\n","import React, { Component, Fragment } from 'react';\nimport { Grid } from '@material-ui/core';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\ninterface ErrorBoundaryProps {\n classes?: any;\n}\n\nclass ErrorBoundary extends Component {\n\n public constructor(props: any) {\n super(props);\n this.state = {\n hasError: false\n };\n }\n\n public static getDerivedStateFromError = ((): object => {\n return { hasError: true };\n });\n\n public render(): any {\n if (!this.state.hasError) {\n return this.props.children;\n }\n\n return (\n \n \n \n

Oops! Something went wrong.

\n
\n
\n
\n );\n }\n\n}\n\nexport default ErrorBoundary;\n","export const EMPTY_STORE = 'EMPTY_STORE';\n\nexport const emptyReduxStore = (): object => {\n return {\n type: EMPTY_STORE\n };\n};\n","import { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\n\nimport AuthService from '../../../services/authService';\nimport { emptyReduxStore } from '../../../redux/actions/index';\n\ninterface LoginProps {\n emptyReduxStore: Function;\n}\n\nconst Login: React.FC = (props: LoginProps): JSX.Element => {\n props.emptyReduxStore();\n\n return AuthService.login(props);\n};\n\nexport default withRouter(connect(null, { emptyReduxStore })(Login));\n","import { withRouter } from 'react-router-dom';\n\nimport AuthService from '../../../services/authService';\n\nconst Callback: React.FC = (props: any): JSX.Element => {\n return AuthService.loginCallback(props);\n};\n\nexport default withRouter(Callback);\n","import { RoleTypes, RoleTypesTCX } from '../../helpers/enums';\nimport {\n marketInsightsRoutes,\n networkInsightsRoutes,\n publicRoutes,\n truckLoadRateRoutes\n} from '../../routes/appRouteList';\nimport { AppRoles } from '../../interfaces/authorizationInterfaces';\nimport AuthService from '../../services/authService';\n\nexport const ROLES_REQUEST = 'ROLES_REQUEST';\nexport const ROLES_UPDATE = 'ROLES_UPDATE';\nexport const ROLES_RECEIVED = 'ROLES_RECEIVED';\nexport const SET_HOME_ROUTE = 'SET_HOME_ROUTE';\nexport const USER_UPDATE = 'USER_UPDATE';\n\nconst fetchAuthorizationStatus = (user: any) => {\n return async (dispatch: any): Promise => {\n user.roles.forEach((element: string) => {\n switch (element) {\n case RoleTypesTCX.TruckLoadRateAdmin:\n dispatch({\n type: ROLES_UPDATE,\n payload: {\n [RoleTypes.TruckLoadRate]: true,\n [RoleTypes.TruckLoadRateAdmin]: true,\n [RoleTypes.NetworkInsights]: true\n }\n });\n break;\n case RoleTypesTCX.TruckLoadRate:\n dispatch({\n type: ROLES_UPDATE,\n payload: {\n [RoleTypes.TruckLoadRate]: true,\n [RoleTypes.NetworkInsights]: true\n }\n });\n break;\n case RoleTypesTCX.MarketInsights:\n dispatch({\n type: ROLES_UPDATE,\n payload: {\n [RoleTypes.MarketInsights]: true,\n [RoleTypes.NetworkInsights]: true\n }\n });\n break;\n default:\n }\n });\n };\n};\n\nexport const fetchUser = (): object => {\n return async (dispatch: any): Promise => {\n const user = await AuthService.getUser();\n dispatch({\n type: USER_UPDATE,\n payload: user\n });\n await dispatch(fetchAuthorizationStatus(user));\n };\n};\n\n/**\n * This will return the home page route based on the roles the user has access to.\n * @param appRoles A list of AppRoles for the logged in user\n */\nconst getHomeRoute = (appRoles: AppRoles): object => {\n if (appRoles.marketInsights === true) {\n return {\n type: SET_HOME_ROUTE,\n payload: {\n homeRoute: marketInsightsRoutes.dashboard\n }\n };\n }\n\n if (appRoles.truckLoadRate === true) {\n return {\n type: SET_HOME_ROUTE,\n payload: {\n homeRoute: truckLoadRateRoutes.dataCharts\n }\n };\n }\n\n if (appRoles.networkInsights === true) {\n return {\n type: SET_HOME_ROUTE,\n payload: {\n homeRoute: networkInsightsRoutes.geography\n }\n };\n }\n\n return {\n type: SET_HOME_ROUTE,\n payload: {\n homeRoute: publicRoutes.notAuthorized\n }\n };\n};\n\nexport const fetchRoles = (): object => {\n return async (dispatch: Function, getState: Function): Promise => {\n dispatch({ type: ROLES_REQUEST });\n\n await dispatch(fetchUser());\n\n const { roles } = getState().userDetails;\n dispatch(getHomeRoute(roles));\n dispatch({\n type: ROLES_RECEIVED\n });\n };\n};\n","import React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { fetchRoles } from '../../../redux/actions/userDetailsActions';\nimport { AppRoles } from '../../../interfaces/authorizationInterfaces';\nimport LoadingSpinner from '../../loaders/combinedHeaderAndSpinner';\nimport AuthService from '../../../services/authService';\nimport { publicRoutes } from '../../../routes/appRouteList';\n\ninterface AuthorizeProps {\n hasFetchedRoles: boolean;\n roles: AppRoles;\n fetchRolesAction: Function;\n homeRoute: string;\n}\n\nconst Authorize: React.FC = (props: AuthorizeProps): JSX.Element => {\n const history = useHistory();\n\n const { fetchRolesAction } = props;\n\n useEffect(() => {\n AuthService.authorize().then(() => {\n fetchRolesAction();\n }, () => {\n history.push(publicRoutes.notAuthorized);\n });\n }, [fetchRolesAction, history]);\n\n useEffect(() => {\n if (props.hasFetchedRoles === true) {\n if (props.roles.marketInsights) {\n document.title = 'Market Insights';\n }\n history.push(props.homeRoute);\n }\n }, [props.hasFetchedRoles, props.roles, history, props.homeRoute]);\n\n return ;\n};\n\nconst mapStateToProps = (state: any): object => {\n return {\n roles: state.userDetails.roles,\n hasFetchedRoles: state.userDetails.hasFetchedRoles,\n homeRoute: state.userDetails.homeRoute\n };\n};\n\nconst mapDispatchToProps = {\n fetchRolesAction: fetchRoles\n};\n\nconst mergeProps = (stateProps: any, dispatchProps: any, ownProps: any): object => {\n return {\n ...ownProps,\n ...stateProps,\n ...dispatchProps\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps, mergeProps)(Authorize);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport AuthService from '../../../services/authService';\nimport { emptyReduxStore } from '../../../redux/actions/index';\nimport LoadingSpinner from '../../loaders/combinedHeaderAndSpinner';\n\ninterface RevokeProps {\n emptyReduxStore: Function;\n}\n\nconst Revoke: React.FC = (props: RevokeProps): JSX.Element => {\n props.emptyReduxStore();\n AuthService.logout();\n\n return ;\n};\n\nexport default connect(null, { emptyReduxStore })(Revoke);\n","import React, { Fragment } from 'react';\nimport { Typography, Button } from '@material-ui/core';\nimport { StyleRules, createStyles, withStyles } from '@material-ui/core/styles';\n\nimport AppHeader from '../headers/appHeader';\nimport AuthService from '../../services/authService';\n\ninterface NotAuthorizedProps {\n classes?: any;\n}\n\nconst styles = (): StyleRules => {\n return createStyles({\n root: {\n margin: '16px',\n textAlign: 'center'\n },\n errorMesssage: {\n paddingTop: '16px',\n paddingBottom: '16px'\n }\n });\n};\n\nconst NotAuthorized: React.FC = (props: NotAuthorizedProps): JSX.Element => {\n return (\n \n \n
\n

Authorization Error

\n \n Your session may have expired or you may not be authorized for this application. Please log out and log back in.\n \n {\n AuthService.logout();\n }}\n >\n Log Out\n \n
\n
\n );\n};\n\nexport default withStyles(styles)(NotAuthorized);\n","import React, {\n Fragment,\n useEffect,\n useState\n} from 'react';\nimport { User } from 'oidc-client';\nimport {\n Route,\n Redirect,\n useLocation,\n useHistory\n} from 'react-router-dom';\n\nimport AuthService from '../services/authService';\nimport ErrorBoundary from '../components/errors/errorBoundary';\nimport { publicRoutes } from './appRouteList';\n\ninterface AuthenticatedRouteProps {\n component: any;\n // key is required to force the initial state to reset with each route change\n key: string;\n [propName: string]: {};\n}\n\nconst AuthenticatedRoute: React.FunctionComponent = ({ component: Component, ...rest }): JSX.Element => {\n const location = useLocation();\n const history = useHistory();\n\n const [user, setUser] = useState(null);\n const [recievedUserData, setRecievedUserData] = useState(false);\n\n useEffect((): void => {\n (async (): Promise => {\n try {\n const authenticatedUser = await AuthService.getUser();\n if (authenticatedUser !== null) {\n setUser(authenticatedUser);\n } else {\n history.push(publicRoutes.notAuthorized);\n }\n } finally {\n setRecievedUserData(true);\n }\n })();\n }, [Component, history]);\n\n if (recievedUserData === true && user !== null) {\n return (\n \n \n \n \n \n );\n }\n\n if (recievedUserData === true) {\n return (\n \n );\n }\n\n return ;\n};\n\nexport default AuthenticatedRoute;\n","import React, { lazy, Fragment, useMemo } from 'react';\nimport { connect } from 'react-redux';\nimport { Switch, Route } from 'react-router-dom';\n\nimport { getAuthorizedRouteList } from './appRouteList';\nimport { AppRoles, RouteListItem } from '../interfaces/authorizationInterfaces';\nimport AuthenticatedRoute from './authenticatedRoute';\nimport AppHeader from '../components/headers/appHeader';\n\nconst PageNotFound = lazy((): Promise => { return import('../components/errors/pageNotFound'); });\n\ninterface PrivateRoutesProps {\n hasFetchedRoles: boolean;\n roles: AppRoles;\n}\n\nconst PrivateRoutes: React.FC = (props: PrivateRoutesProps): JSX.Element => {\n const authorizedRoutes = useMemo(() => {\n if (props.hasFetchedRoles) {\n const allowedRoutes = getAuthorizedRouteList(props.roles);\n\n const allAuthorizedRoutes = allowedRoutes.map((route: RouteListItem): JSX.Element => {\n return (\n \n );\n });\n\n return allAuthorizedRoutes;\n }\n\n return ;\n }, [props.hasFetchedRoles, props.roles]);\n\n if (props.hasFetchedRoles === false) {\n return ;\n }\n\n return (\n \n \n \n {authorizedRoutes}\n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: any): object => {\n return {\n hasFetchedRoles: state.userDetails.hasFetchedRoles,\n roles: state.userDetails.roles\n };\n};\n\nconst mergeProps = (stateProps: any, dispatchProps: any, ownProps: any): object => {\n return {\n ...ownProps,\n ...stateProps,\n ...dispatchProps\n };\n};\n\nexport default connect(mapStateToProps, null, mergeProps)(PrivateRoutes);\n","import React, { Suspense, lazy } from 'react';\nimport { Router, Route, Switch } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport { SnackbarProvider } from 'notistack';\nimport { MuiThemeProvider, StylesProvider, createGenerateClassName } from '@material-ui/core/styles';\n\nimport httpService from './services/httpService';\nimport muiTrimbleTheme from './assets/theme/muiTrimbleTheme';\nimport Notifier from './snackbars/notifier';\nimport ErrorBoundary from './components/errors/errorBoundary';\nimport LoadingSpinner from './components/loaders/combinedHeaderAndSpinner';\nimport Login from './components/pages/authentication/login';\nimport Callback from './components/pages/authentication/callback';\nimport Authorize from './components/pages/authentication/authorize';\nimport Revoke from './components/pages/authentication/revoke';\nimport NotAuthorized from './components/errors/notAuthorized';\nimport PrivateRoutes from './routes/privateRoutes';\nimport { publicRoutes } from './routes/appRouteList';\n\n// Route-based code splitting\nconst PageNotFound = lazy((): Promise => { return import('./components/errors/pageNotFound'); });\n\n// prefix prod class names with tcxmi (Trimble Cloud eXchange Transportation Insights)\nconst generateClassName = createGenerateClassName({ productionPrefix: 'tcxti' });\n\n// create browser history for the axios interceptor to use and then initialize the interceptors\nconst history = createBrowserHistory();\nhttpService.setupInterceptors(history);\n\nconst App: React.FC = (): JSX.Element => {\n return (\n \n \n \n \n \n }>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import {\n ROLES_REQUEST,\n ROLES_UPDATE,\n ROLES_RECEIVED,\n SET_HOME_ROUTE,\n USER_UPDATE\n} from '../actions/userDetailsActions';\nimport { AppRoles } from '../../interfaces/authorizationInterfaces';\nimport { RoleTypes } from '../../helpers/enums';\nimport { publicRoutes } from '../../routes/appRouteList';\n\nexport interface AuthenticatedUserDetails {\n roles: AppRoles;\n hasFetchedRoles: boolean;\n homeRoute: string;\n user: any;\n}\n\nconst userDetailsReducer = (userDetails: AuthenticatedUserDetails = {\n roles: {\n [RoleTypes.MarketInsights]: false,\n [RoleTypes.TruckLoadRate]: false,\n [RoleTypes.NetworkInsights]: false,\n [RoleTypes.TruckLoadRateAdmin]: false\n },\n hasFetchedRoles: false,\n homeRoute: publicRoutes.notAuthorized,\n user: null\n}, action: any): AuthenticatedUserDetails => {\n switch (action.type) {\n case ROLES_REQUEST: {\n return {\n ...userDetails,\n hasFetchedRoles: false\n };\n }\n case ROLES_UPDATE: {\n return {\n ...userDetails,\n roles: { ...userDetails.roles, ...action.payload }\n };\n }\n case ROLES_RECEIVED: {\n return {\n ...userDetails,\n hasFetchedRoles: true\n };\n }\n case SET_HOME_ROUTE: {\n return {\n ...userDetails,\n ...action.payload\n };\n }\n case USER_UPDATE: {\n return {\n ...userDetails,\n user: action.payload\n };\n }\n default:\n return userDetails;\n }\n};\n\nexport default userDetailsReducer;\n","import {\n TOP_LANES_REQUEST,\n TOP_LANES_SUCCESS,\n TOP_LANES_FAILURE\n} from '../../actions/marketInsights/topLanesActions';\n\ninterface TopLanes {\n topLanes: any;\n isFetching: boolean;\n}\n\nconst fetchTopLanesReducer = (topLanesData: TopLanes = {\n isFetching: false,\n topLanes: {}\n}, action: any): TopLanes => {\n switch (action.type) {\n case TOP_LANES_REQUEST: {\n return {\n ...topLanesData,\n isFetching: true\n };\n }\n case TOP_LANES_SUCCESS: {\n return {\n ...topLanesData,\n isFetching: false,\n topLanes: action.payload\n };\n }\n case TOP_LANES_FAILURE: {\n return {\n ...topLanesData,\n isFetching: false,\n topLanes: {}\n };\n }\n default:\n return topLanesData;\n }\n};\n\nexport default fetchTopLanesReducer;\n","import {\n LANE_DETAILS_REQUEST,\n LANE_DETAILS_SUCCESS,\n LANE_DETAILS_FAILURE,\n SAVED_LANES_REQUEST,\n SAVED_LANES_SUCCESS,\n SAVED_LANES_FAILURE,\n ADD_SAVED_LANE_REQUEST,\n ADD_SAVED_LANE_SUCCESS,\n ADD_SAVED_LANE_FAILURE,\n DELETE_SAVED_LANE_REQUEST,\n DELETE_SAVED_LANE_SUCCESS,\n DELETE_SAVED_LANE_FAILURE\n} from '../../actions/marketInsights/laneDetailsActions';\n\ninterface LaneDetails {\n currentLane: any;\n isFetching: boolean;\n savedLanes: any[];\n isFetchingSavedLanes: boolean;\n isUpdatingSavedLanes: boolean;\n}\n\nconst fetchLanesReducer = (laneDetails: LaneDetails = {\n isFetching: false,\n currentLane: {},\n isFetchingSavedLanes: false,\n savedLanes: [],\n isUpdatingSavedLanes: false\n}, action: any): LaneDetails => {\n switch (action.type) {\n case LANE_DETAILS_REQUEST: {\n return {\n ...laneDetails,\n isFetching: true\n };\n }\n case LANE_DETAILS_SUCCESS: {\n return {\n ...laneDetails,\n isFetching: false,\n currentLane: action.payload\n };\n }\n case LANE_DETAILS_FAILURE: {\n return {\n ...laneDetails,\n isFetching: false,\n currentLane: {}\n };\n }\n case SAVED_LANES_REQUEST: {\n return {\n ...laneDetails,\n isFetchingSavedLanes: true\n };\n }\n case SAVED_LANES_SUCCESS: {\n return {\n ...laneDetails,\n isFetchingSavedLanes: false,\n savedLanes: action.payload\n };\n }\n case SAVED_LANES_FAILURE: {\n return {\n ...laneDetails,\n isFetchingSavedLanes: false,\n savedLanes: []\n };\n }\n case ADD_SAVED_LANE_REQUEST: {\n return {\n ...laneDetails,\n isUpdatingSavedLanes: true\n };\n }\n case ADD_SAVED_LANE_SUCCESS: {\n return {\n ...laneDetails,\n isUpdatingSavedLanes: false\n };\n }\n case ADD_SAVED_LANE_FAILURE: {\n return {\n ...laneDetails,\n isUpdatingSavedLanes: false\n };\n }\n case DELETE_SAVED_LANE_REQUEST: {\n return {\n ...laneDetails,\n isUpdatingSavedLanes: true\n };\n }\n case DELETE_SAVED_LANE_SUCCESS: {\n const updateSavedLanes = laneDetails.savedLanes.filter((lane: any) => {\n return lane.lane_name !== action.payload;\n });\n\n return {\n ...laneDetails,\n isUpdatingSavedLanes: false,\n savedLanes: updateSavedLanes\n };\n }\n case DELETE_SAVED_LANE_FAILURE: {\n return {\n ...laneDetails,\n isUpdatingSavedLanes: false\n };\n }\n default:\n return laneDetails;\n }\n};\n\nexport default fetchLanesReducer;\n","import {\n LANE_DETAILS_YEAR_REQUEST,\n LANE_DETAILS_YEAR_SUCCESS,\n LANE_DETAILS_YEAR_FAILURE\n} from '../../actions/marketInsights/laneDetailsYearActions';\n\ninterface LaneDetailsYearly {\n yearlyLaneDetails: any;\n isFetching: boolean;\n}\n\nconst fetchLanesYearReducer = (laneDetailsYearly: LaneDetailsYearly = {\n isFetching: false,\n yearlyLaneDetails: []\n}, action: any): LaneDetailsYearly => {\n switch (action.type) {\n case LANE_DETAILS_YEAR_REQUEST: {\n return {\n ...laneDetailsYearly,\n isFetching: true\n };\n }\n case LANE_DETAILS_YEAR_SUCCESS: {\n return {\n ...laneDetailsYearly,\n isFetching: false,\n yearlyLaneDetails: action.payload\n };\n }\n case LANE_DETAILS_YEAR_FAILURE: {\n return {\n ...laneDetailsYearly,\n isFetching: false,\n yearlyLaneDetails: []\n };\n }\n default:\n return laneDetailsYearly;\n }\n};\n\nexport default fetchLanesYearReducer;\n","import {\n SET_ORIGIN,\n SET_DESTINATION,\n SET_EQUIPMENT_TYPE\n} from '../../actions/marketInsights/laneSearchActions';\nimport { equipmentTypeOptions } from '../../../helpers/dataHelpers';\n\ninterface LaneSearch {\n origin: any;\n destination: any;\n equipmentType: any;\n}\n\nconst laneSearchInitialState: LaneSearch = {\n origin: null,\n destination: null,\n equipmentType: equipmentTypeOptions[0]\n};\n\nconst laneSearchReducer = (laneSearch: LaneSearch = laneSearchInitialState, action: any): LaneSearch => {\n switch (action.type) {\n case SET_ORIGIN: {\n return {\n ...laneSearch,\n origin: action.payload\n };\n }\n case SET_DESTINATION: {\n return {\n ...laneSearch,\n destination: action.payload\n };\n }\n case SET_EQUIPMENT_TYPE: {\n return {\n ...laneSearch,\n equipmentType: action.payload\n };\n }\n default:\n return laneSearch;\n }\n};\n\nexport default laneSearchReducer;\n","import {\n SEASONALITY_REQUEST,\n SEASONALITY_SUCCESS,\n SEASONALITY_FAILURE\n} from '../../actions/marketInsights/seasonalityActions';\n\ninterface Seasonality {\n data: any;\n isFetching: boolean;\n}\n\nconst fetchSeasonalityReducer = (seasonalityData: Seasonality = {\n isFetching: false,\n data: []\n}, action: any): Seasonality => {\n switch (action.type) {\n case SEASONALITY_REQUEST: {\n return {\n ...seasonalityData,\n isFetching: true\n };\n }\n case SEASONALITY_SUCCESS: {\n return {\n ...seasonalityData,\n isFetching: false,\n data: action.payload\n };\n }\n case SEASONALITY_FAILURE: {\n return {\n ...seasonalityData,\n isFetching: false,\n data: []\n };\n }\n default:\n return seasonalityData;\n }\n};\n\nexport default fetchSeasonalityReducer;\n","import {\n TOP_INBOUND_LANES_REQUEST,\n TOP_OUTBOUND_LANES_REQUEST,\n TOP_INBOUND_LANES_SUCCESS,\n TOP_OUTBOUND_LANES_SUCCESS,\n TOP_INBOUND_LANES_FAILURE,\n TOP_OUTBOUND_LANES_FAILURE\n} from '../../actions/marketInsights/topInboundAndOutboundLanesActions';\n\ninterface TopInboundAndOutboundLanes {\n topInboundLanes: any;\n topOutboundLanes: any;\n isFetchingTopInboundLanes: boolean;\n isFetchingTopOutboundLanes: boolean;\n}\n\nconst fetchTopInboundAndOutboundLanesReducer = (topInboundAndOutboundLanesData: TopInboundAndOutboundLanes = {\n isFetchingTopInboundLanes: false,\n isFetchingTopOutboundLanes: false,\n topInboundLanes: [],\n topOutboundLanes: []\n}, action: any): TopInboundAndOutboundLanes => {\n switch (action.type) {\n case TOP_INBOUND_LANES_REQUEST: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopInboundLanes: true\n };\n }\n case TOP_OUTBOUND_LANES_REQUEST: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopOutboundLanes: true\n };\n }\n case TOP_INBOUND_LANES_SUCCESS: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopInboundLanes: false,\n topInboundLanes: action.payload\n };\n }\n case TOP_OUTBOUND_LANES_SUCCESS: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopOutboundLanes: false,\n topOutboundLanes: action.payload\n };\n }\n case TOP_INBOUND_LANES_FAILURE: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopInboundLanes: false,\n topInboundLanes: []\n };\n }\n case TOP_OUTBOUND_LANES_FAILURE: {\n return {\n ...topInboundAndOutboundLanesData,\n isFetchingTopOutboundLanes: false,\n topOutboundLanes: []\n };\n }\n default:\n return topInboundAndOutboundLanesData;\n }\n};\n\nexport default fetchTopInboundAndOutboundLanesReducer;\n","import { ENQUEUE_SNACKBAR, REMOVE_SNACKBAR } from '../actions/notificationActions';\n\ninterface Notifications {\n notificationList: any[];\n}\n\nconst notificationReducer = (notificationsData: Notifications = {\n notificationList: []\n}, action: any): Notifications => {\n switch (action.type) {\n case ENQUEUE_SNACKBAR:\n return {\n ...notificationsData,\n notificationList: [\n ...notificationsData.notificationList,\n {\n ...action.notification\n }\n ]\n };\n case REMOVE_SNACKBAR:\n return {\n ...notificationsData,\n notificationList: notificationsData.notificationList.filter(\n (notification: any): boolean => {\n return notification.key !== action.key;\n }\n )\n };\n\n default:\n return notificationsData;\n }\n};\n\nexport default notificationReducer;\n","import {\n RESET_RATE_CALCULATOR_DATA,\n UPDATE_BASE_RATE_MILES,\n UPDATE_BASE_RATE_PER_MILE,\n UPDATE_BASE_RATE_ROW_TOTAL,\n UPDATE_FUEL_SURCHARGE_MILES,\n UPDATE_FUEL_SURCHARGE_RATE_PER_MILE,\n UPDATE_FUEL_SURCHARGE_ROW_TOTAL,\n UPDATE_EMPTY_MILES,\n UPDATE_EMPTY_MILES_RATE_PER_MILE,\n UPDATE_NUMBER_OF_STOPS,\n UPDATE_NUMBER_OF_STOPS_COST_PER_STOP,\n UPDATE_LOADING_FEE,\n UPDATE_UNLOADING_FEE,\n UPDATE_MARKUP_PERCENTAGE,\n UPDATE_FLAT_FEE,\n UPDATE_ADD_ON_TOTAL,\n UPDATE_NOTES,\n UPDATE_GRAND_TOTAL,\n UPDATE_ALL_IN_RATE_PER_MILE\n} from '../../actions/marketInsights/rateCalculatorActions';\n\ninterface RateCalculator {\n baseRateMiles: string;\n baseRatePerMile: string;\n baseRateRowTotal: string;\n fuelSurchargeMiles: string;\n fuelSurchargeRatePerMile: string;\n fuelSurchargeRowTotal: string;\n emptyMiles: string;\n emptyMilesRatePerMile: string;\n numberOfStops: string;\n numberOfStopsCostPerStop: string;\n loadingFee: string;\n unloadingFee: string;\n markupPercentage: string;\n flatFee: string;\n addOnTotal: string;\n notes: string;\n grandTotal: string;\n allInRatePerMile: string;\n}\n\nconst rateCalculatorInitialState: RateCalculator = {\n baseRateMiles: '0',\n baseRatePerMile: '0.00',\n baseRateRowTotal: '0.00',\n fuelSurchargeMiles: '0',\n fuelSurchargeRatePerMile: '0.00',\n fuelSurchargeRowTotal: '0.00',\n emptyMiles: '0',\n emptyMilesRatePerMile: '0.00',\n numberOfStops: '0',\n numberOfStopsCostPerStop: '0.00',\n loadingFee: '0.00',\n unloadingFee: '0.00',\n markupPercentage: '0.00',\n flatFee: '0.00',\n addOnTotal: '0.00',\n notes: '',\n grandTotal: '0.00',\n allInRatePerMile: '0.00'\n};\n\nconst rateCalculatorReducer = (rateCalculator: RateCalculator = rateCalculatorInitialState, action: any): RateCalculator => {\n switch (action.type) {\n case RESET_RATE_CALCULATOR_DATA: {\n return rateCalculatorInitialState;\n }\n case UPDATE_BASE_RATE_MILES: {\n return {\n ...rateCalculator,\n baseRateMiles: action.payload\n };\n }\n case UPDATE_BASE_RATE_PER_MILE: {\n return {\n ...rateCalculator,\n baseRatePerMile: action.payload\n };\n }\n case UPDATE_BASE_RATE_ROW_TOTAL: {\n return {\n ...rateCalculator,\n baseRateRowTotal: action.payload\n };\n }\n case UPDATE_FUEL_SURCHARGE_MILES: {\n return {\n ...rateCalculator,\n fuelSurchargeMiles: action.payload\n };\n }\n case UPDATE_FUEL_SURCHARGE_RATE_PER_MILE: {\n return {\n ...rateCalculator,\n fuelSurchargeRatePerMile: action.payload\n };\n }\n case UPDATE_FUEL_SURCHARGE_ROW_TOTAL: {\n return {\n ...rateCalculator,\n fuelSurchargeRowTotal: action.payload\n };\n }\n case UPDATE_EMPTY_MILES: {\n return {\n ...rateCalculator,\n emptyMiles: action.payload\n };\n }\n case UPDATE_EMPTY_MILES_RATE_PER_MILE: {\n return {\n ...rateCalculator,\n emptyMilesRatePerMile: action.payload\n };\n }\n case UPDATE_NUMBER_OF_STOPS: {\n return {\n ...rateCalculator,\n numberOfStops: action.payload\n };\n }\n case UPDATE_NUMBER_OF_STOPS_COST_PER_STOP: {\n return {\n ...rateCalculator,\n numberOfStopsCostPerStop: action.payload\n };\n }\n case UPDATE_LOADING_FEE: {\n return {\n ...rateCalculator,\n loadingFee: action.payload\n };\n }\n case UPDATE_UNLOADING_FEE: {\n return {\n ...rateCalculator,\n unloadingFee: action.payload\n };\n }\n case UPDATE_MARKUP_PERCENTAGE: {\n return {\n ...rateCalculator,\n markupPercentage: action.payload\n };\n }\n case UPDATE_FLAT_FEE: {\n return {\n ...rateCalculator,\n flatFee: action.payload\n };\n }\n case UPDATE_ADD_ON_TOTAL: {\n return {\n ...rateCalculator,\n addOnTotal: action.payload\n };\n }\n case UPDATE_NOTES: {\n return {\n ...rateCalculator,\n notes: action.payload\n };\n }\n case UPDATE_GRAND_TOTAL: {\n return {\n ...rateCalculator,\n grandTotal: action.payload\n };\n }\n case UPDATE_ALL_IN_RATE_PER_MILE: {\n return {\n ...rateCalculator,\n allInRatePerMile: action.payload\n };\n }\n default:\n return rateCalculator;\n }\n};\n\nexport default rateCalculatorReducer;\n","import {\n NATIONAL_HAUL_RATES_REQUEST,\n NATIONAL_HAUL_RATES_SUCCESS,\n NATIONAL_HAUL_RATES_FAILURE\n} from '../../actions/truckLoadRate/nationalActions';\n\ninterface NationalCharts {\n isFetchingNationalHaulRates: boolean;\n nationalHaulRates: any;\n}\n\nconst fetchNationalChartsReducer = (dataChartsNationalCharts: NationalCharts = {\n isFetchingNationalHaulRates: false,\n nationalHaulRates: {}\n}, action: any): NationalCharts => {\n switch (action.type) {\n case NATIONAL_HAUL_RATES_REQUEST: {\n return {\n ...dataChartsNationalCharts,\n isFetchingNationalHaulRates: true\n };\n }\n case NATIONAL_HAUL_RATES_SUCCESS: {\n return {\n ...dataChartsNationalCharts,\n isFetchingNationalHaulRates: false,\n nationalHaulRates: action.payload\n };\n }\n case NATIONAL_HAUL_RATES_FAILURE: {\n return {\n ...dataChartsNationalCharts,\n isFetchingNationalHaulRates: false,\n nationalHaulRates: {}\n };\n }\n default:\n return dataChartsNationalCharts;\n }\n};\n\nexport default fetchNationalChartsReducer;\n","import { DataChartsStateRate } from '../../../interfaces/truckLoadRateServiceInterfaces';\nimport {\n STATE_RATE_HISTORY_REQUEST,\n STATE_RATE_HISTORY_SUCCESS,\n STATE_RATE_HISTORY_FAILURE\n} from '../../actions/truckLoadRate/stateRateActions';\n\ninterface StateRateCharts {\n isFetchingStateRateCharts: boolean;\n stateRateChartData: DataChartsStateRate;\n}\n\nconst fetchStateRateChartsReducer = (stateRateCharts: StateRateCharts = {\n isFetchingStateRateCharts: false,\n stateRateChartData: {} as DataChartsStateRate\n}, action: any): StateRateCharts => {\n switch (action.type) {\n case STATE_RATE_HISTORY_REQUEST: {\n return {\n ...stateRateCharts,\n isFetchingStateRateCharts: true\n };\n }\n case STATE_RATE_HISTORY_SUCCESS: {\n return {\n isFetchingStateRateCharts: false,\n stateRateChartData: action.payload\n };\n }\n case STATE_RATE_HISTORY_FAILURE: {\n return {\n isFetchingStateRateCharts: false,\n stateRateChartData: {} as DataChartsStateRate\n };\n }\n default:\n return stateRateCharts;\n }\n};\n\nexport default fetchStateRateChartsReducer;\n","import {\n LANES_KEY_PERFORMANCE_INDICATORS_REQUEST,\n LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS,\n LANES_KEY_PERFORMANCE_INDICATORS_FAILURE\n} from '../../actions/networkInsights/lanesKeyPerformanceIndicatorsActions';\n\ninterface LanesKeyPerformanceIndicators {\n isFetching: boolean;\n keyPerformanceIndicators: any;\n}\n\nconst fetchLanesKeyPerformanceIndicatorsReducer = (lanesKeyPerformanceIndicatorsData: LanesKeyPerformanceIndicators = {\n isFetching: false,\n keyPerformanceIndicators: {}\n}, action: any): LanesKeyPerformanceIndicators => {\n switch (action.type) {\n case LANES_KEY_PERFORMANCE_INDICATORS_REQUEST: {\n return {\n ...lanesKeyPerformanceIndicatorsData,\n isFetching: true\n };\n }\n case LANES_KEY_PERFORMANCE_INDICATORS_SUCCESS: {\n return {\n isFetching: false,\n keyPerformanceIndicators: action.payload\n };\n }\n case LANES_KEY_PERFORMANCE_INDICATORS_FAILURE: {\n return {\n isFetching: false,\n keyPerformanceIndicators: {}\n };\n }\n default:\n return lanesKeyPerformanceIndicatorsData;\n }\n};\n\nexport default fetchLanesKeyPerformanceIndicatorsReducer;\n","import {\n TOP_NETWORK_LANES_REQUEST,\n TOP_NETWORK_LANES_SUCCESS,\n TOP_NETWORK_LANES_FAILURE\n} from '../../actions/networkInsights/topNetworkLanesActions';\n\ninterface TopNetworkLanes {\n topNetworkLanes: any;\n isFetching: boolean;\n}\n\nconst fetchTopLanesReducer = (topNetworkLanesData: TopNetworkLanes = {\n isFetching: false,\n topNetworkLanes: {}\n}, action: any): TopNetworkLanes => {\n switch (action.type) {\n case TOP_NETWORK_LANES_REQUEST: {\n return {\n ...topNetworkLanesData,\n isFetching: true\n };\n }\n case TOP_NETWORK_LANES_SUCCESS: {\n return {\n isFetching: false,\n topNetworkLanes: action.payload\n };\n }\n case TOP_NETWORK_LANES_FAILURE: {\n return {\n isFetching: false,\n topNetworkLanes: {}\n };\n }\n default:\n return topNetworkLanesData;\n }\n};\n\nexport default fetchTopLanesReducer;\n","import {\n GEOGRAPHY_POLYGON_REQUEST,\n GEOGRAPHY_POLYGON_SUCCESS,\n GEOGRAPHY_POLYGON_FAILURE\n} from '../../actions/networkInsights/geographyPolygonActions';\nimport { GeographyPolygon } from '../../../interfaces/networkInsightsServiceInterfaces';\n\ninterface DataGeographyPolygon {\n isFetching: boolean;\n geographyPolygon: GeographyPolygon;\n}\n\nconst fetchGeographyPolygon = (dataGeographyPolygon: DataGeographyPolygon = {\n isFetching: false,\n geographyPolygon: {\n type: '',\n features: []\n }\n}, action: any): DataGeographyPolygon => {\n switch (action.type) {\n case GEOGRAPHY_POLYGON_REQUEST: {\n return {\n ...dataGeographyPolygon,\n isFetching: true\n };\n }\n case GEOGRAPHY_POLYGON_SUCCESS: {\n return {\n isFetching: false,\n geographyPolygon: action.payload\n };\n }\n case GEOGRAPHY_POLYGON_FAILURE: {\n return {\n isFetching: false,\n geographyPolygon: {\n type: '',\n features: []\n }\n };\n }\n default:\n return dataGeographyPolygon;\n }\n};\n\nexport default fetchGeographyPolygon;\n","import {\n PROCESS_RATES_TEMPLATE_FAILURE,\n PROCESS_RATES_TEMPLATE_REQUEST,\n PROCESS_RATES_TEMPLATE_SUCCESS,\n VerifiedSummary,\n VERIFY_PROCESS_RATES_FAILURE,\n VERIFY_PROCESS_RATES_REQUEST,\n VERIFY_PROCESS_RATES_SUCCESS,\n SUBMIT_PROCESS_RATES_REQUEST,\n SUBMIT_PROCESS_RATES_SUCCESS,\n SUBMIT_PROCESS_RATES_FAILURE,\n SET_ACTIVE_STEP,\n FileStatus,\n PROCESS_RATES_HISTORY_REQUEST,\n PROCESS_RATES_HISTORY_SUCCESS,\n PROCESS_RATES_HISTORY_FAILURE,\n PROCESSED_RATES_REQUEST,\n PROCESSED_RATES_FAILURE,\n PROCESSED_RATES_SUCCESS,\n FileHistory,\n PROCESS_RATES_IS_PENDING\n} from '../../actions/truckLoadRate/processRatesActions';\n\nexport interface ProcessRates {\n isDownloadingProcessRatesTemplate: boolean;\n isProcessing: boolean;\n verifiedSummary: VerifiedSummary | {};\n fileStatus: FileStatus | {};\n activeStep: number;\n isFetchingHistory: boolean;\n fileHistory: FileHistory | { content: FileStatus[] };\n isDownloadingProcessedRates: boolean;\n isPending: boolean;\n}\n\nconst fetchProcessRatesReducers = (processRates: ProcessRates = {\n isDownloadingProcessRatesTemplate: false,\n isProcessing: false,\n verifiedSummary: {},\n fileStatus: {},\n activeStep: 0,\n isFetchingHistory: false,\n fileHistory: { content: [] },\n isDownloadingProcessedRates: false,\n isPending: false\n}, action: any): ProcessRates => {\n switch (action.type) {\n case PROCESS_RATES_TEMPLATE_REQUEST: {\n return {\n ...processRates,\n isDownloadingProcessRatesTemplate: true\n };\n }\n case PROCESS_RATES_TEMPLATE_SUCCESS: {\n return {\n ...processRates,\n isDownloadingProcessRatesTemplate: false\n };\n }\n case PROCESS_RATES_TEMPLATE_FAILURE: {\n return {\n ...processRates,\n isDownloadingProcessRatesTemplate: false\n };\n }\n case VERIFY_PROCESS_RATES_REQUEST: {\n return {\n ...processRates,\n isProcessing: true\n };\n }\n case VERIFY_PROCESS_RATES_SUCCESS: {\n return {\n ...processRates,\n isProcessing: false,\n verifiedSummary: action.payload\n };\n }\n case VERIFY_PROCESS_RATES_FAILURE: {\n return {\n ...processRates,\n isProcessing: false\n };\n }\n case SET_ACTIVE_STEP: {\n return {\n ...processRates,\n activeStep: action.payload\n };\n }\n case SUBMIT_PROCESS_RATES_REQUEST: {\n return {\n ...processRates,\n isProcessing: true\n };\n }\n case SUBMIT_PROCESS_RATES_SUCCESS: {\n return {\n ...processRates,\n isProcessing: false,\n fileStatus: action.payload\n };\n }\n case SUBMIT_PROCESS_RATES_FAILURE: {\n return {\n ...processRates,\n isProcessing: false\n };\n }\n case PROCESS_RATES_HISTORY_REQUEST: {\n return {\n ...processRates,\n isFetchingHistory: true\n };\n }\n case PROCESS_RATES_HISTORY_SUCCESS: {\n return {\n ...processRates,\n isFetchingHistory: false,\n fileHistory: action.payload\n };\n }\n case PROCESS_RATES_HISTORY_FAILURE: {\n return {\n ...processRates,\n isFetchingHistory: false,\n fileHistory: { content: [] }\n };\n }\n case PROCESSED_RATES_REQUEST: {\n return {\n ...processRates,\n isDownloadingProcessedRates: true\n };\n }\n case PROCESSED_RATES_SUCCESS: {\n return {\n ...processRates,\n isDownloadingProcessedRates: false\n };\n }\n case PROCESSED_RATES_FAILURE: {\n return {\n ...processRates,\n isDownloadingProcessedRates: false\n };\n }\n case PROCESS_RATES_IS_PENDING: {\n return {\n ...processRates,\n isPending: action.payload\n };\n }\n default:\n return processRates;\n }\n};\n\nexport default fetchProcessRatesReducers;\n","import {\n ADMIN_SET_EMAIL_VALID_STATE,\n ADMIN_SET_FNAME_VALID_STATE,\n ADMIN_SET_IS_EDITABLE,\n ADMIN_SET_LNAME_VALID_STATE,\n ADMIN_SET_USER_DATA,\n ADMIN_CLEAR_VALID_STATE,\n REQUEST_ADMIN_GET_ALL_USERS_FAILED,\n RECEIVE_ADMIN_GET_ALL_USERS,\n REQUEST_ADMIN_GET_ALL_USERS,\n RECEIVE_ADMIN_SAVE_USER,\n REQUEST_ADMIN_SAVE_USER,\n REQUEST_ADMIN_SAVE_USER_FAILED,\n ADMIN_SET_SEARCH_PARAMS,\n RECEIVE_ADMIN_DELETE_USER,\n REQUEST_ADMIN_DELETE_USER,\n REQUEST_ADMIN_DELETE_USER_FAILED\n} from '../../../actions/truckLoadRate/admin/manageUsersActions';\nimport { TCXSearchParam, TCXUser } from '../../../../interfaces/TCXInterfaces';\n\ninterface AdminManageUsers {\n validState: TCXUser;\n userData: TCXUser;\n allUsers: TCXUser[];\n searchParam: TCXSearchParam;\n isFetchingAllUsers: boolean;\n isEditable: boolean;\n isFormValid: boolean;\n isSavingUser: boolean;\n isDeletingUser: boolean;\n}\n\nconst manageUserInitialState: AdminManageUsers = {\n validState: {},\n userData: {},\n allUsers: [],\n searchParam: {\n page: 1,\n size: 10\n },\n isFetchingAllUsers: false,\n isEditable: false,\n isFormValid: true,\n isSavingUser: false,\n isDeletingUser: false\n};\n\nconst manageUserReducer = (manageUserState: AdminManageUsers = manageUserInitialState, action: any): AdminManageUsers => {\n switch (action.type) {\n case ADMIN_CLEAR_VALID_STATE: {\n return {\n ...manageUserState,\n validState: {},\n isFormValid: true\n };\n }\n case ADMIN_SET_USER_DATA: {\n return {\n ...manageUserState,\n userData: action.payload\n };\n }\n case ADMIN_SET_IS_EDITABLE: {\n return {\n ...manageUserState,\n isEditable: action.payload\n };\n }\n case ADMIN_SET_EMAIL_VALID_STATE: {\n return {\n ...manageUserState,\n validState: {\n ...manageUserState.validState,\n email: action.payload\n },\n isFormValid: manageUserState.isFormValid && !action.payload\n };\n }\n case ADMIN_SET_FNAME_VALID_STATE: {\n return {\n ...manageUserState,\n validState: {\n ...manageUserState.validState,\n firstName: action.payload\n },\n isFormValid: manageUserState.isFormValid && !action.payload\n };\n }\n case ADMIN_SET_LNAME_VALID_STATE: {\n return {\n ...manageUserState,\n validState: {\n ...manageUserState.validState,\n lastName: action.payload\n },\n isFormValid: manageUserState.isFormValid && !action.payload\n };\n }\n case RECEIVE_ADMIN_GET_ALL_USERS: {\n return {\n ...manageUserState,\n allUsers: action.payload,\n isFetchingAllUsers: false\n };\n }\n case REQUEST_ADMIN_GET_ALL_USERS_FAILED: {\n return {\n ...manageUserState,\n allUsers: [],\n isFetchingAllUsers: false\n };\n }\n case REQUEST_ADMIN_GET_ALL_USERS: {\n return {\n ...manageUserState,\n allUsers: [],\n isFetchingAllUsers: true\n };\n }\n case RECEIVE_ADMIN_SAVE_USER: {\n return {\n ...manageUserState,\n userData: {\n email: '',\n firstName: '',\n lastName: '',\n status: '',\n id: ''\n },\n validState: {},\n isEditable: false,\n isFormValid: true,\n isSavingUser: false\n };\n }\n case REQUEST_ADMIN_SAVE_USER_FAILED: {\n return {\n ...manageUserState,\n isSavingUser: false\n };\n }\n case REQUEST_ADMIN_SAVE_USER: {\n return {\n ...manageUserState,\n isSavingUser: true\n };\n }\n case ADMIN_SET_SEARCH_PARAMS: {\n return {\n ...manageUserState,\n searchParam: action.payload\n };\n }\n case RECEIVE_ADMIN_DELETE_USER: {\n return {\n ...manageUserState,\n isDeletingUser: false\n };\n }\n case REQUEST_ADMIN_DELETE_USER_FAILED: {\n return {\n ...manageUserState,\n isDeletingUser: false\n };\n }\n case REQUEST_ADMIN_DELETE_USER: {\n return {\n ...manageUserState,\n isDeletingUser: true\n };\n }\n default:\n return manageUserState;\n }\n};\n\nexport default manageUserReducer;\n","import {\n RECEIVE_ACCOUNT,\n REQUEST_ACCOUNT,\n REQUEST_ACCOUNT_FAILED\n} from '../../../actions/truckLoadRate/admin/accountActions';\nimport { TCXAccount } from '../../../../interfaces/TCXInterfaces';\n\ninterface AccountState {\n account?: TCXAccount;\n isFetchingAccount: boolean;\n}\n\nconst accountInitialState: AccountState = {\n isFetchingAccount: false\n};\n\nconst accountReducer = (accountState: AccountState = accountInitialState, action: any): AccountState => {\n switch (action.type) {\n case REQUEST_ACCOUNT: {\n return {\n ...accountState,\n account: undefined,\n isFetchingAccount: true\n };\n }\n case REQUEST_ACCOUNT_FAILED: {\n return {\n ...accountState,\n account: undefined,\n isFetchingAccount: false\n };\n }\n case RECEIVE_ACCOUNT: {\n return {\n ...accountState,\n account: action.payload,\n isFetchingAccount: false\n };\n }\n default:\n return accountState;\n }\n};\n\nexport default accountReducer;\n","import {\n BILLING_HISTORY_FAILURE,\n BILLING_HISTORY_REQUEST,\n BILLING_HISTORY_SUCCESS,\n INVOICE_REQUEST,\n INVOICE_SUCCESS,\n INVOICE_FAILURE,\n Invoice,\n InvoicesResponse\n} from '../../actions/truckLoadRate/billingHistoryActions';\n\nexport interface BillingHistory {\n invoice: Invoice | {};\n isFetchingHistory: boolean;\n invoicesResponse: InvoicesResponse | { content: Invoice[] };\n isDownloadingInvoice: boolean;\n}\n\nconst fetchBillingHistoryReducers = (billingHistory: BillingHistory = {\n invoice: {},\n isFetchingHistory: false,\n invoicesResponse: { content: [] },\n isDownloadingInvoice: false\n}, action: any): BillingHistory => {\n switch (action.type) {\n case BILLING_HISTORY_REQUEST: {\n return {\n ...billingHistory,\n isFetchingHistory: true\n };\n }\n case BILLING_HISTORY_SUCCESS: {\n return {\n ...billingHistory,\n isFetchingHistory: false,\n invoicesResponse: action.payload\n };\n }\n case BILLING_HISTORY_FAILURE: {\n return {\n ...billingHistory,\n isFetchingHistory: false,\n invoicesResponse: { content: [] }\n };\n }\n case INVOICE_REQUEST: {\n return {\n ...billingHistory,\n isDownloadingInvoice: true\n };\n }\n case INVOICE_SUCCESS: {\n return {\n ...billingHistory,\n isDownloadingInvoice: false\n };\n }\n case INVOICE_FAILURE: {\n return {\n ...billingHistory,\n isDownloadingInvoice: false\n };\n }\n default:\n return billingHistory;\n }\n};\n\nexport default fetchBillingHistoryReducers;\n","import {\n REQUEST_SUBSCRIPTION_STATUS,\n REQUEST_SUBSCRIPTION_STATUS_FAILED,\n RECEIVE_SUBSCRIPTION_STATUS\n} from '../../../actions/truckLoadRate/admin/subscriptionActions';\nimport { SubscriptionStatus } from '../../../../interfaces/truckLoadRateServiceInterfaces';\n\ninterface SubscriptionStatusState {\n subscriptionStatus?: SubscriptionStatus;\n isFetchingSubscriptionStatus: boolean;\n}\n\nconst subscriptionStatusInitialState: SubscriptionStatusState = {\n subscriptionStatus: undefined,\n isFetchingSubscriptionStatus: false\n};\n\nconst subscriptionStatusReducer = (subscriptionStatusState: SubscriptionStatusState = subscriptionStatusInitialState, action: any): SubscriptionStatusState => {\n switch (action.type) {\n case REQUEST_SUBSCRIPTION_STATUS: {\n return {\n ...subscriptionStatusState,\n subscriptionStatus: undefined,\n isFetchingSubscriptionStatus: true\n };\n }\n case REQUEST_SUBSCRIPTION_STATUS_FAILED: {\n return {\n ...subscriptionStatusState,\n subscriptionStatus: undefined,\n isFetchingSubscriptionStatus: false\n };\n }\n case RECEIVE_SUBSCRIPTION_STATUS: {\n return {\n ...subscriptionStatusState,\n subscriptionStatus: action.payload,\n isFetchingSubscriptionStatus: false\n };\n }\n default:\n return subscriptionStatusState;\n }\n};\n\nexport default subscriptionStatusReducer;\n","import { combineReducers } from 'redux';\nimport storage from 'redux-persist/lib/storage';\nimport userDetailsReducer from './userDetailsReducers';\nimport fetchTopLanesReducer from './marketInsights/topLanesReducers';\nimport fetchLanesReducer from './marketInsights/laneDetailsReducers';\nimport fetchLanesYearReducer from './marketInsights/laneDetailsYearReducers';\nimport laneSearchReducer from './marketInsights/laneSearchReducers';\nimport fetchSeasonalityReducer from './marketInsights/seasonalityReducers';\nimport fetchTopInboundAndOutboundLanesReducer from './marketInsights/topInboundAndOutboundLanesReducers';\nimport notificationReducer from './notificationReducers';\nimport rateCalculatorReducer from './marketInsights/rateCalculatorReducers';\nimport fetchNationalChartsReducer from './truckLoadRate/nationalReducers';\nimport fetchStateRateChartsReducer from './truckLoadRate/stateRateReducers';\nimport fetchLanesKeyPerformanceIndicatorsReducer from './networkInsights/lanesKeyPerformanceIndicatorsReducers';\nimport fetchTopNetworkLanesReducer from './networkInsights/topNetworkLanesReducers';\nimport fetchGeographyPolygon from './networkInsights/geographyPolygonReducers';\nimport fetchProcessRatesReducers from './truckLoadRate/processRatesReducers';\nimport manageUsersReducers from './truckLoadRate/admin/manageUsersReducers';\nimport accountReducer from './truckLoadRate/admin/accountReducers';\nimport fetchBillingHistoryReducers from './truckLoadRate/billingHistoryReducers';\n\nimport { EMPTY_STORE } from '../actions/index';\nimport subscriptionStatusReducer from './truckLoadRate/admin/subscriptionStatusReducers';\n\nconst appReducer = combineReducers({\n userDetails: userDetailsReducer,\n topLanesData: fetchTopLanesReducer,\n laneDetails: fetchLanesReducer,\n laneDetailsYearly: fetchLanesYearReducer,\n laneSearch: laneSearchReducer,\n seasonalityData: fetchSeasonalityReducer,\n notification: notificationReducer,\n topInboundAndOutboundLanesData: fetchTopInboundAndOutboundLanesReducer,\n rateCalculatorData: rateCalculatorReducer,\n nationalData: fetchNationalChartsReducer,\n stateRateData: fetchStateRateChartsReducer,\n lanesKeyPerformanceIndicatorsData: fetchLanesKeyPerformanceIndicatorsReducer,\n topNetworkLanesData: fetchTopNetworkLanesReducer,\n networkGeographyData: fetchGeographyPolygon,\n processRates: fetchProcessRatesReducers,\n manageUsers: manageUsersReducers,\n accountInfo: accountReducer,\n billingHistory: fetchBillingHistoryReducers,\n subscriptionDetails: subscriptionStatusReducer\n});\n\nconst rootReducer = (state: any, action: any): object => {\n switch (action.type) {\n case EMPTY_STORE: {\n storage.removeItem('persist:root');\n return appReducer(undefined, action);\n }\n default:\n return appReducer(state, action);\n }\n};\n\nexport default rootReducer;\n","import { createStore, applyMiddleware } from 'redux';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport thunk from 'redux-thunk';\nimport logger from 'redux-logger';\nimport reducers from './reducers';\nimport { AppStore } from '../interfaces/storeInterfaces';\n\nconst middleWare = process.env.NODE_ENV !== 'production' ? [thunk, logger] : [thunk];\n\nconst persistConfig = {\n key: 'root',\n storage\n};\n\nconst persistedReducer = persistReducer(persistConfig, reducers);\n\nconst createAppStore = (): AppStore => {\n const store = createStore(persistedReducer, applyMiddleware(...middleWare));\n const persistor = persistStore(store);\n return { store, persistor };\n};\n\nexport default createAppStore;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/integration/react';\n\nimport './index.css';\nimport App from './App';\nimport createAppStore from './redux/store';\n\nconst { persistor, store } = createAppStore();\n\nReactDOM.render((\n \n \n \n \n \n), document.getElementById('root'));\n","import { saveAs } from 'file-saver';\n\nimport { enqueueSnackbar } from '../notificationActions';\nimport { EnumPaymentStatus, EnumProcessStatus, SnackbarMessageVariants } from '../../../helpers/enums';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\nimport { PageSortParams } from '../../../interfaces/pageSortParams';\n\nexport const PROCESS_RATES_TEMPLATE_REQUEST = 'PROCESS_RATES_TEMPLATE_REQUEST';\nexport const PROCESS_RATES_TEMPLATE_SUCCESS = 'PROCESS_RATES_TEMPLATE_SUCCESS';\nexport const PROCESS_RATES_TEMPLATE_FAILURE = 'PROCESS_RATES_TEMPLATE_FAILURE';\n\nexport const VERIFY_PROCESS_RATES_REQUEST = 'VERIFY_PROCESS_RATES_REQUEST';\nexport const VERIFY_PROCESS_RATES_SUCCESS = 'VERIFY_PROCESS_RATES_SUCCESS';\nexport const VERIFY_PROCESS_RATES_FAILURE = 'VERIFY_PROCESS_RATES_FAILURE';\n\nexport const SUBMIT_PROCESS_RATES_REQUEST = 'SUBMIT_PROCESS_RATES_REQUEST';\nexport const SUBMIT_PROCESS_RATES_SUCCESS = 'SUBMIT_PROCESS_RATES_SUCCESS';\nexport const SUBMIT_PROCESS_RATES_FAILURE = 'SUBMIT_PROCESS_RATES_FAILURE';\n\nexport const PROCESS_RATES_HISTORY_REQUEST = 'PROCESS_RATES_HISTORY_REQUEST';\nexport const PROCESS_RATES_HISTORY_SUCCESS = 'PROCESS_RATES_HISTORY_SUCCESS';\nexport const PROCESS_RATES_HISTORY_FAILURE = 'PROCESS_RATES_HISTORY_FAILURE';\n\nexport const PROCESSED_RATES_REQUEST = 'PROCESSED_RATES_REQUEST';\nexport const PROCESSED_RATES_SUCCESS = 'PROCESSED_RATES_SUCCESS';\nexport const PROCESSED_RATES_FAILURE = 'PROCESSED_RATES_FAILURE';\n\nexport const PROCESS_RATES_IS_PENDING = 'PROCESS_RATES_IS_PENDING';\n\nexport const SET_ACTIVE_STEP = 'SET_ACTIVE_STEP';\n\nconst DOWNLOAD_TYPE = 'text/csv;charset=utf-8';\nconst TEMPLATE_FILE_NAME = 'processRateTemplate.csv';\n\nexport interface InvalidRecordReason {\n rowNumber: number;\n errorMessage: string;\n}\n\nexport interface VerifiedSummary {\n estimatedCostForAllRows: number;\n estimatedCostForAllValidRows: number;\n invalidRecords: InvalidRecordReason[];\n totalInvalidRecords: number;\n totalRecordsProcessed: number;\n totalValidRecords: number;\n}\n\nexport interface FileStatus {\n id: number;\n userId: string;\n startTime: number;\n endTime: number;\n processingStatus: string;\n message: string;\n inputFileName: string;\n inputFilePath: string;\n outputFileName: string;\n outputFilePath: string;\n inputFileLastModified: Date;\n inputFileETag: number;\n outputFileLastModified: Date;\n outputFileETag: number;\n userEmailAddress: string;\n paymentStatus: string;\n processedRowsFuel: number;\n processedRowsSpread: number;\n processedRowsMri: number;\n fileDeletedFlag: boolean;\n guid: string;\n}\n\nexport interface FileHistory {\n content: FileStatus[];\n empty: boolean;\n numberOfElements: number;\n offset: number;\n pageNumber: number;\n pageable: any;\n size: number;\n totalPages: number;\n totalSize: number;\n errorMessage?: string;\n}\n\nexport interface VerifyParams {\n isSpread: boolean;\n isFuel: boolean;\n defaultEquipment: string;\n files: File[];\n}\n\nexport interface FileHistoryParams {\n fileName?: string;\n page: PageSortParams;\n}\n\nexport const setActiveStep = (activeStep: number): object => {\n return {\n type: SET_ACTIVE_STEP,\n payload: activeStep\n };\n};\n\nconst requestProcessRatesTemplate = (): object => {\n return {\n type: PROCESS_RATES_TEMPLATE_REQUEST\n };\n};\n\nconst receiveProcessRatesTemplate = (): object => {\n return {\n type: PROCESS_RATES_TEMPLATE_SUCCESS\n };\n};\n\nconst requestProcessRatesTemplateFailed = (): object => {\n return {\n type: PROCESS_RATES_TEMPLATE_FAILURE\n };\n};\n\nexport const downloadProcessRatesTemplate = (): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestProcessRatesTemplate());\n\n try {\n const rawData = await ApiService.get(Endpoints.downloadRateProcessTemplate, true);\n\n const blob = new Blob([rawData], { type: DOWNLOAD_TYPE });\n saveAs(blob, TEMPLATE_FILE_NAME);\n\n dispatch(receiveProcessRatesTemplate());\n } catch (err) {\n dispatch(requestProcessRatesTemplateFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while downloading rate template.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst requestVerifyProcessRates = (params: VerifyParams): object => {\n return {\n type: VERIFY_PROCESS_RATES_REQUEST,\n payload: params\n };\n};\n\nconst recieveVerifyProcessRates = (verifiedSummary: VerifiedSummary): object => {\n return {\n type: VERIFY_PROCESS_RATES_SUCCESS,\n payload: verifiedSummary\n };\n};\n\nconst requestVerifyProcessRatesFailed = (): object => {\n return {\n type: VERIFY_PROCESS_RATES_FAILURE\n };\n};\n\nexport const verifyProcessRates = (params: VerifyParams): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestVerifyProcessRates(params));\n\n try {\n const formData = new FormData();\n\n if (params.files.length !== 0) {\n formData.append('file', new Blob([params.files[0]], { type: 'text/csv' }), params.files[0].name);\n\n const verifiedSummary: VerifiedSummary = await ApiService.post(`${Endpoints.verifyProcessRates}?isSpread=${params.isSpread}&isFuel=` +\n `${params.isFuel}&defaultEquipment=${params.defaultEquipment}`, formData, true);\n\n dispatch(setActiveStep(1));\n dispatch(recieveVerifyProcessRates(verifiedSummary));\n dispatch(enqueueSnackbar({\n message: 'File verified.',\n variant: SnackbarMessageVariants.Success\n }));\n } else {\n throw new Error('File is not selected');\n }\n } catch (err) {\n dispatch(requestVerifyProcessRatesFailed());\n if (Math.floor(err?.response?.data?.errorCode / 100) === 4) {\n dispatch(enqueueSnackbar({\n message: err.response.data.message,\n variant: SnackbarMessageVariants.Error\n }));\n } else {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while verifying rates.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n\nconst requestSubmitProcessRates = (params: VerifyParams): object => {\n return {\n type: SUBMIT_PROCESS_RATES_REQUEST,\n payload: params\n };\n};\n\nconst recieveSubmitProcessRates = (fileStatus: FileStatus): object => {\n return {\n type: SUBMIT_PROCESS_RATES_SUCCESS,\n payload: fileStatus\n };\n};\n\nconst requestSubmitProcessRatesFailed = (): object => {\n return {\n type: SUBMIT_PROCESS_RATES_FAILURE\n };\n};\n\nexport const submitProcessRates = (params: VerifyParams, resetFormCallback: Function|undefined = undefined): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestSubmitProcessRates(params));\n\n try {\n const formData = new FormData();\n\n if (params.files.length !== 0) {\n formData.append('file', new Blob([params.files[0]], { type: 'text/csv' }), params.files[0].name);\n\n const fileStatus: FileStatus = await ApiService.post(`${Endpoints.submitProcessRates}?isSpread=${params.isSpread}&isFuel=` +\n `${params.isFuel}&defaultEquipment=${params.defaultEquipment}`, formData, true);\n\n dispatch(setActiveStep(0));\n dispatch(recieveSubmitProcessRates(fileStatus));\n dispatch(enqueueSnackbar({\n message: 'File uploaded.',\n variant: SnackbarMessageVariants.Success\n }));\n if (resetFormCallback !== undefined) {\n resetFormCallback();\n }\n } else {\n dispatch(setActiveStep(0));\n throw new Error('File is not selected');\n }\n } catch (err) {\n dispatch(requestSubmitProcessRatesFailed());\n if (Math.floor(err?.response?.data?.errorCode / 100) === 4) {\n dispatch(enqueueSnackbar({\n message: err.response.data.message,\n variant: SnackbarMessageVariants.Error\n }));\n } else {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while submitting rates.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n if (resetFormCallback !== undefined) {\n resetFormCallback();\n }\n }\n };\n};\n\nconst requestProcessRatesHistory = (params: FileHistoryParams): object => {\n return {\n type: PROCESS_RATES_HISTORY_REQUEST,\n payload: params\n };\n};\n\nconst recieveProcessRatesHistory = (files: FileHistory): object => {\n return {\n type: PROCESS_RATES_HISTORY_SUCCESS,\n payload: files\n };\n};\n\nconst requestProcessRatesHistoryFailed = (): object => {\n return {\n type: PROCESS_RATES_HISTORY_FAILURE\n };\n};\n\nconst pendingFiles = (isPending: boolean): object => {\n return {\n type: PROCESS_RATES_IS_PENDING,\n payload: isPending\n };\n};\n\nconst isAnyPendingFiles = (fileHistory: FileHistory): boolean => {\n if (!fileHistory || !Array.isArray(fileHistory.content)) {\n return false;\n }\n for (let i = 0; i < fileHistory.content.length; i += 1) {\n const item = fileHistory.content[i];\n\n if (\n (\n item.paymentStatus !== EnumPaymentStatus.Completed &&\n item.paymentStatus !== EnumPaymentStatus.Failed) ||\n (\n item.processingStatus !== EnumProcessStatus.Completed &&\n item.processingStatus !== EnumProcessStatus.Failed\n )\n ) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const fetchProcessRatesHistory = (params: FileHistoryParams): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestProcessRatesHistory(params));\n\n try {\n const fileHistory: FileHistory = await ApiService.get(\n encodeURI(`${Endpoints.getProcessRateHistory}?page=${params.page.currentPage}` +\n `&size=${params.page.pageSize}&sort=${params.page.sortField},${params.page.sortDirection}` +\n `&fileName=${params.fileName ? params.fileName : ''}`),\n true\n );\n\n if (isAnyPendingFiles(fileHistory)) {\n dispatch(pendingFiles(true));\n } else {\n dispatch(pendingFiles(false));\n }\n\n dispatch(recieveProcessRatesHistory(fileHistory));\n } catch (err) {\n dispatch(requestProcessRatesHistoryFailed());\n if (Math.floor(err?.response?.data?.errorCode / 100) === 4) {\n dispatch(enqueueSnackbar({\n message: err.response.data.message,\n variant: SnackbarMessageVariants.Info\n }));\n } else {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching rates history.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n\nconst requestProcessedRates = (): object => {\n return {\n type: PROCESSED_RATES_REQUEST\n };\n};\n\nconst receiveProcessedRates = (): object => {\n return {\n type: PROCESSED_RATES_SUCCESS\n };\n};\n\nconst requestProcessedRatesFailed = (): object => {\n return {\n type: PROCESSED_RATES_FAILURE\n };\n};\n\nexport const downloadProcessedRates = (fileName: string): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestProcessedRates());\n try {\n const encodedFileName = encodeURIComponent(fileName);\n const rawData = await ApiService.get(`${Endpoints.downloadProcessedRates}/${encodedFileName}`, true);\n\n const blob = new Blob([rawData], { type: DOWNLOAD_TYPE });\n saveAs(blob, fileName);\n\n dispatch(receiveProcessedRates());\n } catch (err) {\n dispatch(requestProcessedRatesFailed());\n dispatch(enqueueSnackbar({\n message: `Error occurred while downloading ${fileName}.`,\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { SnackbarMessageVariants } from '../../../../helpers/enums';\nimport {\n TCXUser, TCXUserCreationResponse, TCXSearchParam\n} from '../../../../interfaces/TCXInterfaces';\nimport { enqueueSnackbar } from '../../notificationActions';\nimport ApiService from '../../../../services/apiService';\nimport Endpoints from '../../../../services/endpoints';\n\nexport const ADMIN_CLEAR_VALID_STATE = 'ADMIN_CLEAR_VALID_STATE';\nexport const ADMIN_SET_USER_DATA = 'ADMIN_SET_USER_DATA';\nexport const ADMIN_SET_IS_EDITABLE = 'ADMIN_SET_IS_EDITABLE';\nexport const ADMIN_SET_EMAIL_VALID_STATE = 'ADMIN_SET_EMAIL_VALID_STATE';\nexport const ADMIN_SET_FNAME_VALID_STATE = 'ADMIN_SET_FNAME_VALID_STATE';\nexport const ADMIN_SET_LNAME_VALID_STATE = 'ADMIN_SET_LNAME_VALID_STATE';\n\nexport const RECEIVE_ADMIN_GET_ALL_USERS = 'RECEIVE_ADMIN_GET_ALL_USERS';\nexport const REQUEST_ADMIN_GET_ALL_USERS_FAILED = 'REQUEST_ADMIN_GET_ALL_USERS_FAILED';\nexport const REQUEST_ADMIN_GET_ALL_USERS = 'REQUEST_ADMIN_GET_ALL_USERS';\n\nexport const RECEIVE_ADMIN_SAVE_USER = 'RECEIVE_ADMIN_SAVE_USER';\nexport const REQUEST_ADMIN_SAVE_USER_FAILED = 'REQUEST_ADMIN_SAVE_USER_FAILED';\nexport const REQUEST_ADMIN_SAVE_USER = 'REQUEST_ADMIN_SAVE_USER';\n\nexport const REQUEST_ADMIN_DELETE_USER = 'REQUEST_ADMIN_DELETE_USER';\nexport const REQUEST_ADMIN_DELETE_USER_FAILED = 'REQUEST_ADMIN_DELETE_USER_FAILED';\nexport const RECEIVE_ADMIN_DELETE_USER = 'RECEIVE_ADMIN_DELETE_USER';\n\nexport const ADMIN_SET_SEARCH_PARAMS = 'ADMIN_SET_SEARCH_PARAMS';\n\nexport const clearValidState = (): object => {\n return {\n type: ADMIN_CLEAR_VALID_STATE\n };\n};\n\nexport const setUserData = (userData: TCXUser): object => {\n return {\n type: ADMIN_SET_USER_DATA,\n payload: userData\n };\n};\n\nexport const setIsEditable = (isEditable: boolean): object => {\n return {\n type: ADMIN_SET_IS_EDITABLE,\n payload: isEditable\n };\n};\n\nconst isEmptyString = (value?: string): boolean => {\n return !value || value === '';\n};\n\nexport const validateEmail = (email: string): object => {\n const emailRegex = new RegExp(/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\],;:\\s@\"]+)*)|(\".+\"))@/.source +\n /((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.source);\n\n if (isEmptyString(email)) {\n return {\n type: ADMIN_SET_EMAIL_VALID_STATE,\n payload: 'Email Id is Required'\n };\n }\n\n if (email && !emailRegex.test(email)) {\n return {\n type: ADMIN_SET_EMAIL_VALID_STATE,\n payload: 'Invalid Email'\n };\n }\n\n return {\n type: ADMIN_SET_EMAIL_VALID_STATE,\n payload: undefined\n };\n};\n\nexport const validateFirstName = (firstName: string): object => {\n const validRegex = new RegExp(\"^[A-Za-z,.'-]?[A-Za-z,. '-]*$\");\n const rangeRegex = new RegExp('^.{2,40}$');\n\n if (isEmptyString(firstName)) {\n return {\n type: ADMIN_SET_FNAME_VALID_STATE,\n payload: 'First Name is required'\n };\n }\n\n if (firstName && !validRegex.test(firstName)) {\n return {\n type: ADMIN_SET_FNAME_VALID_STATE,\n payload: 'Few sp chars are now allowed in name'\n };\n }\n\n if (firstName && !rangeRegex.test(firstName)) {\n return {\n type: ADMIN_SET_FNAME_VALID_STATE,\n payload: 'Name should be between 2-40 chars'\n };\n }\n\n return {\n type: ADMIN_SET_FNAME_VALID_STATE,\n payload: undefined\n };\n};\n\nexport const validateLastName = (lastName: string): object => {\n const validRegex = new RegExp(\"^[A-Za-z,.'-]?[A-Za-z,. '-]*$\");\n const rangeRegex = new RegExp('^.{2,40}$');\n\n if (isEmptyString(lastName)) {\n return {\n type: ADMIN_SET_LNAME_VALID_STATE,\n payload: 'Last Name is required'\n };\n }\n\n if (lastName && !validRegex.test(lastName)) {\n return {\n type: ADMIN_SET_LNAME_VALID_STATE,\n payload: 'Few sp chars are now allowed in name'\n };\n }\n\n if (lastName && !rangeRegex.test(lastName)) {\n return {\n type: ADMIN_SET_LNAME_VALID_STATE,\n payload: 'Name should be between 2-40 chars'\n };\n }\n\n return {\n type: ADMIN_SET_LNAME_VALID_STATE,\n payload: undefined\n };\n};\n\nexport const validateForm = (): object => {\n return (dispatch: Function, getState: Function): void => {\n const { userData } = getState().manageUsers;\n\n dispatch(clearValidState());\n dispatch(validateEmail(userData.email));\n dispatch(validateFirstName(userData.firstName));\n dispatch(validateLastName(userData.lastName));\n };\n};\n\nconst requestAllUsers = (): object => {\n return {\n type: REQUEST_ADMIN_GET_ALL_USERS\n };\n};\n\nconst requestAllUsersFailed = (): object => {\n return {\n type: REQUEST_ADMIN_GET_ALL_USERS_FAILED\n };\n};\n\nconst receiveAllUsers = (users: TCXUser[]): object => {\n return {\n type: RECEIVE_ADMIN_GET_ALL_USERS,\n payload: users\n };\n};\n\nexport const setSearchParam = (param: TCXSearchParam): object => {\n return {\n type: ADMIN_SET_SEARCH_PARAMS,\n payload: param\n };\n};\n\nexport const fetchAllUsers = (params?: TCXSearchParam): object => {\n return async (dispatch: Function, getState: Function): Promise => {\n let tcxSearchParam = params;\n if (tcxSearchParam) {\n dispatch(setSearchParam(tcxSearchParam));\n } else {\n const { searchParam } = getState().manageUsers;\n tcxSearchParam = { ...searchParam };\n }\n\n let uri;\n if (tcxSearchParam?.value) {\n uri = `${Endpoints.getTCXUsers}?query=${encodeURIComponent(tcxSearchParam?.value)}`;\n } else {\n uri = Endpoints.getTCXUsers;\n }\n dispatch(requestAllUsers());\n\n try {\n const users: TCXUser[]|string = await ApiService.get(uri, true);\n let result = users;\n if (result === '') {\n result = [];\n }\n\n dispatch(receiveAllUsers(result as TCXUser[]));\n } catch (err) {\n dispatch(requestAllUsersFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching users.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst requestSaveUser = (): object => {\n return {\n type: REQUEST_ADMIN_SAVE_USER\n };\n};\n\nconst requestSaveUserFailed = (): object => {\n return {\n type: REQUEST_ADMIN_SAVE_USER_FAILED\n };\n};\n\nconst receiveSaveUser = (): object => {\n return {\n type: RECEIVE_ADMIN_SAVE_USER\n };\n};\n\nexport const addUser = (): object => {\n return async (dispatch: Function, getState: Function): Promise => {\n\n const {\n userData, isFormValid\n } = getState().manageUsers;\n\n dispatch(validateForm());\n\n if (isFormValid) {\n dispatch(requestSaveUser());\n\n let uri;\n try {\n uri = `${Endpoints.createTCXUsers}?sendEmail=true`;\n const jsonData: TCXUserCreationResponse[] = await ApiService.post(uri, userData, true);\n if (jsonData && jsonData[0].responseStatus === 'OK') {\n dispatch(receiveSaveUser());\n dispatch(enqueueSnackbar({\n message: `User with email address ${userData.email} was created.`,\n variant: SnackbarMessageVariants.Success\n }));\n } else {\n dispatch(requestSaveUserFailed());\n dispatch(enqueueSnackbar({\n message: `Error occured ${jsonData[0].message || ''}`,\n variant: SnackbarMessageVariants.Error\n }));\n }\n } catch (err) {\n dispatch(requestSaveUserFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while adding user.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n\nexport const updateUser = (): object => {\n return async (dispatch: Function, getState: Function): Promise => {\n dispatch(validateForm());\n\n const { userData, isFormValid } = getState().manageUsers;\n\n if (isFormValid) {\n dispatch(requestSaveUser());\n\n try {\n await ApiService.put(`${Endpoints.updateTCXUsers}`, userData, true);\n dispatch(receiveSaveUser());\n dispatch(enqueueSnackbar({\n message: `User with email, ${userData.email} is updated.`,\n variant: SnackbarMessageVariants.Success\n }));\n } catch (err) {\n dispatch(requestSaveUserFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while updating the user.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n\nconst requestDeleteUser = (): object => {\n return {\n type: REQUEST_ADMIN_DELETE_USER\n };\n};\n\nconst requestDeleteUserFailed = (): object => {\n return {\n type: REQUEST_ADMIN_DELETE_USER_FAILED\n };\n};\n\nconst receiveDeleteUser = (): object => {\n return {\n type: RECEIVE_ADMIN_DELETE_USER\n };\n};\n\nexport const deleteUser = (userData: TCXUser): object => {\n return async (dispatch: Function): Promise => {\n dispatch(requestDeleteUser());\n\n if (userData.email === undefined) {\n throw new Error('Missing Email');\n }\n try {\n await ApiService.delete(`${Endpoints.deleteTCXUser}/${encodeURIComponent(userData.email)}`, true);\n dispatch(enqueueSnackbar({\n message: `User with email, ${userData.email} is deleted.`,\n variant: SnackbarMessageVariants.Success\n }));\n dispatch(receiveDeleteUser());\n } catch (err) {\n dispatch(requestDeleteUserFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while deleting the user.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { LaneDetailsService } from '../../../interfaces/marketInsightsUiServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\nimport { fetchGeographyPolygon } from '../networkInsights/geographyPolygonActions';\nimport { AppRoles } from '../../../interfaces/authorizationInterfaces';\nimport { GeographyPolygonRequest } from '../../../interfaces/marketInsightsServiceInterfaces';\n\nexport const LANE_DETAILS_REQUEST = 'LANE_DETAILS_REQUEST';\nexport const LANE_DETAILS_SUCCESS = 'LANE_DETAILS_SUCCESS';\nexport const LANE_DETAILS_FAILURE = 'LANE_DETAILS_FAILURE';\n\nexport const SAVED_LANES_REQUEST = 'SAVED_LANES_REQUEST';\nexport const SAVED_LANES_SUCCESS = 'SAVED_LANES_SUCCESS';\nexport const SAVED_LANES_FAILURE = 'SAVED_LANES_FAILURE';\n\nexport const ADD_SAVED_LANE_REQUEST = 'ADD_SAVED_LANE_REQUEST';\nexport const ADD_SAVED_LANE_SUCCESS = 'ADD_SAVED_LANE_SUCCESS';\nexport const ADD_SAVED_LANE_FAILURE = 'ADD_SAVED_LANE_FAILURE';\n\nexport const DELETE_SAVED_LANE_REQUEST = 'DELETE_SAVED_LANE_REQUEST';\nexport const DELETE_SAVED_LANE_SUCCESS = 'DELETE_SAVED_LANE_SUCCESS';\nexport const DELETE_SAVED_LANE_FAILURE = 'DELETE_SAVED_LANE_FAILURE';\n\nconst requestLaneDetails = (): object => {\n return {\n type: LANE_DETAILS_REQUEST\n };\n};\n\nconst receiveLaneDetails = (json: object): object => {\n return {\n type: LANE_DETAILS_SUCCESS,\n payload: json\n };\n};\n\nconst requestLaneDetailsFailed = (): object => {\n return {\n type: LANE_DETAILS_FAILURE\n };\n};\n\nexport const fetchLaneDetails = (searchQuery: any, roles: AppRoles, months: number = 2): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestLaneDetails());\n\n const requestBody = [{\n ...searchQuery,\n months\n }];\n\n try {\n const json = await ApiService.post(Endpoints.laneDetails, requestBody);\n\n if (Array.isArray(json.data) && json.data[0].length > 0) {\n const jsonData = json.data[0];\n // take the last object in the return array as that is the most recent data\n const current: LaneDetailsService = jsonData[jsonData.length - 1];\n dispatch(receiveLaneDetails(current));\n\n // Once we have the lane data and the user has access to the network insights api, we can then generate the origin/destination polygons.\n if (roles.networkInsights === true) {\n const inputBody: GeographyPolygonRequest = {\n origin_area: current.origin_area_id,\n destination_area: current.destination_area_id\n };\n dispatch(fetchGeographyPolygon(inputBody));\n }\n } else {\n // If no lane details are returned dispatch it as error with a given reason.\n dispatch(requestLaneDetailsFailed());\n dispatch(enqueueSnackbar({\n message: 'Not enough loads to provide lane details for current month.',\n variant: SnackbarMessageVariants.Info\n }));\n }\n } catch (err) {\n dispatch(requestLaneDetailsFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching lane details for current month.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst requestSavedLanes = (): object => {\n return {\n type: SAVED_LANES_REQUEST\n };\n};\n\nconst receiveSavedLanes = (json: object): object => {\n return {\n type: SAVED_LANES_SUCCESS,\n payload: json\n };\n};\n\nconst requestSavedLanesFailed = (): object => {\n return {\n type: SAVED_LANES_FAILURE\n };\n};\n\nexport const fetchSavedLanes = (): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestSavedLanes());\n\n try {\n const json = await ApiService.get(Endpoints.allSavedLanes, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(receiveSavedLanes(json));\n } else {\n dispatch(receiveSavedLanes([]));\n }\n } catch (err) {\n dispatch(requestSavedLanesFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching saved lanes.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst requestAddSavedLane = (): object => {\n return {\n type: ADD_SAVED_LANE_REQUEST\n };\n};\n\nconst receiveAddSavedLane = (): object => {\n return {\n type: ADD_SAVED_LANE_SUCCESS\n };\n};\n\nconst requestAddSavedLaneFailed = (): object => {\n return {\n type: ADD_SAVED_LANE_FAILURE\n };\n};\n\nexport const addSavedLane = (savedLane: any): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestAddSavedLane());\n\n try {\n const json = await ApiService.post(Endpoints.saveSearchedLane, savedLane, true);\n\n if (Object.keys(json).length > 0) {\n dispatch(fetchSavedLanes());\n dispatch(receiveAddSavedLane());\n dispatch(enqueueSnackbar({\n message: 'Lane saved.',\n variant: SnackbarMessageVariants.Success\n }));\n } else {\n dispatch(receiveAddSavedLane());\n }\n } catch (err) {\n dispatch(requestAddSavedLaneFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while adding saved lane.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n\nconst requestDeleteSavedLane = (): object => {\n return {\n type: DELETE_SAVED_LANE_REQUEST\n };\n};\n\nconst receiveDeleteSavedLane = (laneName: string): object => {\n return {\n type: DELETE_SAVED_LANE_SUCCESS,\n payload: laneName\n };\n};\n\nconst requestDeleteSavedLaneFailed = (): object => {\n return {\n type: DELETE_SAVED_LANE_FAILURE\n };\n};\n\nexport const deleteSavedLane = (laneName: string): Function => {\n return async (dispatch: any): Promise => {\n dispatch(requestDeleteSavedLane());\n\n try {\n await ApiService.delete(`${Endpoints.deleteSavedLane}${laneName}/`, true);\n dispatch(receiveDeleteSavedLane(laneName));\n dispatch(enqueueSnackbar({\n message: 'Lane unsaved.',\n variant: SnackbarMessageVariants.Success\n }));\n\n } catch (err) {\n dispatch(requestDeleteSavedLaneFailed());\n dispatch(enqueueSnackbar({\n message: 'Error occurred while deleting saved lane.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n","export enum RoleTypes {\n MarketInsights = 'marketInsights',\n TruckLoadRate = 'truckLoadRate',\n NetworkInsights = 'networkInsights',\n TruckLoadRateAdmin = 'truckLoadRateAdmin'\n}\n\nexport enum RoleTypesTCX {\n MarketInsights = 'Carrier Insights User',\n TruckLoadRate = 'Transportation_Insights_User',\n NetworkInsights = 'networkInsights',\n TruckLoadRateAdmin = 'Transportation_Insights_Admin'\n}\n\nexport enum TrendingType {\n unknown = 'unknown',\n up = 'up',\n down = 'down',\n flat = 'flat'\n}\n\nexport enum Grade {\n Unknown = 'unknown',\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D'\n}\n\nexport enum ReportType {\n Volume = 'Volume',\n Price = 'Avg. Price',\n Transit = 'Transit Time',\n Speed = 'Avg. Speed',\n Revenue = 'Avg. Revenue'\n}\n\nexport enum EnumProcessStatus {\n Uploaded = 'UPLOADED',\n Started = 'STARTED',\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n WaitingFuelRates = 'WAITING-FUEL-RATES',\n BuildingFile = 'BUILDING-FILE'\n}\n\nexport enum EnumPaymentStatus {\n NotStarted = 'NOT-STARTED',\n Started = 'STARTED',\n Completed = 'COMPLETED',\n Failed = 'FAILED'\n}\n\nexport enum EnumFilenameSortBy {\n Id = 'Id',\n FileName = 'File Name',\n ProcessStatus = 'Process Status',\n PaymentStatus = 'Payment Status',\n By = 'Email'\n}\n\nexport enum EnumSortDirection {\n Ascending = 'asc',\n Descending = 'desc'\n}\n\n// TODO: see if these can be combined with the above enum and/or fix them once we have details on the service\nexport enum NetworkInsightsReportType {\n Volume = 'Order Volume',\n AveragePrice = 'Average Price',\n HaulLength = 'Length of Haul',\n EmptyMiles = 'Empty Miles',\n MilesPerHour = 'Miles per Hour',\n RevenuePerHour = 'Revenue per Hour',\n DwellTime = 'Dwell Time',\n InTransitDelay = 'In Transit Delay'\n}\n\nexport enum SnackbarMessageVariants {\n Default = 'default',\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info'\n}\n\nexport enum EquipmentTypeValues {\n DryVan = 'VN',\n FlatBed = 'FB',\n Refrigerated = 'RF'\n}\n\nexport enum UsaStateCodes {\n AL = 'AL',\n AK = 'AK',\n AZ = 'AZ',\n AR = 'AR',\n CA = 'CA',\n CO = 'CO',\n CT = 'CT',\n DC = 'DC',\n DE = 'DE',\n FL = 'FL',\n GA = 'GA',\n HI = 'HI',\n ID = 'ID',\n IL = 'IL',\n IN = 'IL',\n IA = 'IA',\n KS = 'KS',\n KY = 'KY',\n LA = 'LA',\n ME = 'ME',\n MD = 'MD',\n MA = 'MA',\n MI = 'MI',\n MN = 'MN',\n MS = 'MS',\n MO = 'MO',\n MT = 'MT',\n NE = 'NE',\n NV = 'NV',\n NH = 'NH',\n NJ = 'NJ',\n NM = 'NM',\n NY = 'NY',\n NC = 'NC',\n ND = 'ND',\n OH = 'OH',\n OK = 'OK',\n OR = 'OR',\n PA = 'PA',\n RI = 'RI',\n SC = 'SC',\n SD = 'SD',\n TN = 'TN',\n TX = 'TX',\n UT = 'UT',\n VT = 'VT',\n VA = 'VA',\n WA = 'WA',\n WV = 'WV',\n WI = 'WI',\n WY = 'WY'\n}\n\nexport enum UsaTerritoryCodes {\n GU = 'GU'\n}\n\nexport enum CanadianProvinceCodes {\n AB = 'AB',\n BC = 'BC',\n MB = 'MB',\n NB = 'NB',\n NL = 'NL',\n NS = 'NS',\n NT = 'NT',\n NU = 'NU',\n ON = 'ON',\n PE = 'PE',\n QC = 'QC',\n SK = 'SK',\n YT = 'YT'\n}\n\nexport enum DirectionType {\n Inbound = 'inbound',\n Outbound = 'outbound'\n}\n\nexport enum AppConstants {\n GridRefreshTimeout = 15000\n}\n","import { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\nimport { TopInboundAndOutboundLanesService } from '../../../interfaces/marketInsightsServiceInterfaces';\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\n\nexport const TOP_INBOUND_LANES_REQUEST = 'TOP_INBOUND_LANES_REQUEST';\nexport const TOP_OUTBOUND_LANES_REQUEST = 'TOP_OUTBOUND_LANES_REQUEST';\nexport const TOP_INBOUND_LANES_SUCCESS = 'TOP_INBOUND_LANES_SUCCESS';\nexport const TOP_OUTBOUND_LANES_SUCCESS = 'TOP_OUTBOUND_LANES_SUCCESS';\nexport const TOP_INBOUND_LANES_FAILURE = 'TOP_INBOUND_LANES_FAILURE';\nexport const TOP_OUTBOUND_LANES_FAILURE = 'TOP_OUTBOUND_LANES_FAILURE';\n\nconst requestTopInboundLanes = (): object => {\n return {\n type: TOP_INBOUND_LANES_REQUEST\n };\n};\n\nconst requestTopOutboundLanes = (): object => {\n return {\n type: TOP_OUTBOUND_LANES_REQUEST\n };\n};\n\nconst receiveTopInboundLanes = (json: object): object => {\n return {\n type: TOP_INBOUND_LANES_SUCCESS,\n payload: json\n };\n};\n\nconst receiveTopOutboundLanes = (json: object): object => {\n return {\n type: TOP_OUTBOUND_LANES_SUCCESS,\n payload: json\n };\n};\n\nconst requestTopInboundLanesFailed = (): object => {\n return {\n type: TOP_INBOUND_LANES_FAILURE\n };\n};\n\nconst requestTopOutboundLanesFailed = (): object => {\n return {\n type: TOP_OUTBOUND_LANES_FAILURE\n };\n};\n\nexport const fetchTopInboundAndOutboundLanes = (query: any, inboundOrOutbound: string, topCount: number = 3): Function => {\n return async (dispatch: any): Promise => {\n if (inboundOrOutbound === 'inbound') {\n dispatch(requestTopInboundLanes());\n } else {\n dispatch(requestTopOutboundLanes());\n }\n\n const requestBody = {\n ...query,\n topCount\n };\n\n try {\n const json: TopInboundAndOutboundLanesService = await ApiService.post(Endpoints.rankingArea2areaInboundAndOutbound, requestBody);\n\n if (Object.keys(json).length > 0) {\n if (inboundOrOutbound === 'inbound') {\n dispatch(receiveTopInboundLanes(json.top_inbound_lanes));\n } else {\n dispatch(receiveTopOutboundLanes(json.top_outbound_lanes));\n }\n } else {\n // If no top lanes are returned dispatch an empty object and handle it within the component\n if (inboundOrOutbound === 'inbound') {\n dispatch(receiveTopInboundLanes([]));\n } else {\n dispatch(receiveTopOutboundLanes([]));\n }\n }\n } catch (err) {\n if (inboundOrOutbound === 'inbound') {\n dispatch(requestTopInboundLanesFailed());\n } else {\n dispatch(requestTopOutboundLanesFailed());\n }\n if (inboundOrOutbound === 'inbound') {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching top inbound lanes.',\n variant: SnackbarMessageVariants.Error\n }));\n } else {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching top outbound lanes.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n","import { saveAs } from 'file-saver';\n\nimport ApiService from '../../../services/apiService';\nimport Endpoints from '../../../services/endpoints';\nimport { PageParams } from '../../../interfaces/pageSortParams';\nimport { enqueueSnackbar } from '../notificationActions';\nimport { SnackbarMessageVariants } from '../../../helpers/enums';\n\nexport const BILLING_HISTORY_REQUEST = 'BILLING_HISTORY_REQUEST';\nexport const BILLING_HISTORY_SUCCESS = 'BILLING_HISTORY_SUCCESS';\nexport const BILLING_HISTORY_FAILURE = 'BILLING_HISTORY_FAILURE';\nexport const INVOICE_REQUEST = 'INVOICE_REQUEST';\nexport const INVOICE_SUCCESS = 'INVOICE_SUCCESS';\nexport const INVOICE_FAILURE = 'INVOICE_FAILURE';\n\nconst DOWNLOAD_TYPE = 'application/pdf;charset=utf-8';\n\nexport interface BillingHistoryParams {\n accountId: string;\n page: PageParams;\n}\n\nexport interface InvoicesResponse {\n content: Invoice[];\n empty: boolean;\n numberOfElements: number;\n offset: number;\n pageNumber: number;\n pageable: any;\n size: number;\n totalPages: number;\n totalSize: number;\n errorMessage?: string;\n}\n\nexport interface Invoice {\n paymentRefId: string;\n productDescription: string;\n totalAmount: string;\n createdDate: Date;\n}\n\nconst requestBillingHistory = (params: BillingHistoryParams): object => {\n return {\n type: BILLING_HISTORY_REQUEST,\n payload: params\n };\n};\n\nconst receiveBillingHistory = (invoicesResponse: InvoicesResponse): object => {\n return {\n type: BILLING_HISTORY_SUCCESS,\n payload: invoicesResponse\n };\n};\n\nconst requestBillingHistoryFailed = (): object => {\n return {\n type: BILLING_HISTORY_FAILURE\n };\n};\n\nexport const fetchBillingHistory = (params: BillingHistoryParams): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestBillingHistory(params));\n\n try {\n const invoicesResponse: InvoicesResponse = await ApiService.get(\n encodeURI(`${Endpoints.getBillingHistory}/${params.accountId}` +\n `?page=${params.page.currentPage}` +\n `&size=${params.page.pageSize}`),\n true\n );\n\n dispatch(receiveBillingHistory(invoicesResponse));\n } catch (err) {\n dispatch(requestBillingHistoryFailed());\n if (Math.floor(err?.response?.data?.errorCode / 100) === 4) {\n dispatch(enqueueSnackbar({\n message: err.response.data.message,\n variant: SnackbarMessageVariants.Info\n }));\n } else {\n dispatch(enqueueSnackbar({\n message: 'Error occurred while fetching billing history.',\n variant: SnackbarMessageVariants.Error\n }));\n }\n }\n };\n};\n\nconst requestInvoice = (): object => {\n return {\n type: INVOICE_REQUEST\n };\n};\n\nconst receiveInvoice = (): object => {\n return {\n type: INVOICE_SUCCESS\n };\n};\n\nconst requestInvoiceFailed = (): object => {\n return {\n type: INVOICE_FAILURE\n };\n};\n\nexport const downloadInvoice = (paymentRefId: string): object => {\n return async (dispatch: any): Promise => {\n dispatch(requestInvoice());\n try {\n\n const rawData = await ApiService.getBlob(`${Endpoints.downloadInvoice}/${paymentRefId}`, true);\n\n const blob = new Blob([rawData], { type: DOWNLOAD_TYPE });\n saveAs(blob, paymentRefId);\n\n dispatch(receiveInvoice());\n } catch (err) {\n dispatch(requestInvoiceFailed());\n dispatch(enqueueSnackbar({\n message: `Error occurred while downloading invoice for payment reference id ${paymentRefId}.`,\n variant: SnackbarMessageVariants.Error\n }));\n }\n };\n};\n"],"sourceRoot":""}