|
|
|
@ -4,6 +4,7 @@ import 'package:get_it/get_it.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/api/api_client.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/api/api_client.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/app_state.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/app_state.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/location_util.dart';
|
|
|
|
import 'package:hmg_patient_app_new/core/location_util.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/active_prescriptions/active_prescriptions_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/ask_doctor/ask_doctor_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/ask_doctor/ask_doctor_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/ask_doctor/ask_doctor_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/ask_doctor/ask_doctor_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/authentication/authentication_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/authentication/authentication_repo.dart';
|
|
|
|
@ -12,8 +13,6 @@ import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_repo.
|
|
|
|
import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/active_prescriptions/active_prescriptions_view_model.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/active_prescriptions/models/active_prescriptions_response_model.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/common/common_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/common/common_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/contact_us/contact_us_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/contact_us/contact_us_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/contact_us/contact_us_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/contact_us/contact_us_view_model.dart';
|
|
|
|
@ -23,6 +22,7 @@ import 'package:hmg_patient_app_new/features/emergency_services/emergency_servic
|
|
|
|
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/health_trackers/health_trackers_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/health_trackers/health_trackers_repo.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/health_trackers/health_trackers_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_repo.dart';
|
|
|
|
@ -55,6 +55,8 @@ import 'package:hmg_patient_app_new/features/profile_settings/profile_settings_v
|
|
|
|
import 'package:hmg_patient_app_new/features/qr_parking/qr_parking_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/qr_parking/qr_parking_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/radiology/radiology_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/radiology/radiology_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/radiology/radiology_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/radiology/radiology_view_model.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/refund_request/refund_request_repo.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/features/refund_request/refund_request_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/services_price_list/services_price_list_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/services_price_list/services_price_list_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/services_price_list/services_price_list_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/services_price_list/services_price_list_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/smartwatch_health_data/health_provider.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/smartwatch_health_data/health_provider.dart';
|
|
|
|
@ -66,7 +68,6 @@ import 'package:hmg_patient_app_new/features/water_monitor/water_monitor_repo.da
|
|
|
|
import 'package:hmg_patient_app_new/features/water_monitor/water_monitor_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/water_monitor/water_monitor_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/weather/weather_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/weather/weather_repo.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/weather/weather_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/weather/weather_view_model.dart';
|
|
|
|
import 'package:hmg_patient_app_new/features/health_trackers/health_trackers_view_model.dart';
|
|
|
|
|
|
|
|
import 'package:hmg_patient_app_new/services/analytics/analytics_service.dart';
|
|
|
|
import 'package:hmg_patient_app_new/services/analytics/analytics_service.dart';
|
|
|
|
import 'package:hmg_patient_app_new/services/app_lifecycle_service.dart';
|
|
|
|
import 'package:hmg_patient_app_new/services/app_lifecycle_service.dart';
|
|
|
|
import 'package:hmg_patient_app_new/services/cache_service.dart';
|
|
|
|
import 'package:hmg_patient_app_new/services/cache_service.dart';
|
|
|
|
@ -83,13 +84,11 @@ import 'package:local_auth/local_auth.dart';
|
|
|
|
import 'package:logger/web.dart';
|
|
|
|
import 'package:logger/web.dart';
|
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
|
|
|
|
|
|
|
|
import '../features/monthly_reports/monthly_reports_repo.dart';
|
|
|
|
|
|
|
|
import '../features/qr_parking/qr_parking_view_model.dart';
|
|
|
|
|
|
|
|
import '../presentation/health_calculators_and_converts/health_calculator_view_model.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import '../features/active_prescriptions/active_prescriptions_repo.dart';
|
|
|
|
import '../features/active_prescriptions/active_prescriptions_repo.dart';
|
|
|
|
import '../features/monthly_reports/terms_conditions_repo.dart';
|
|
|
|
import '../features/monthly_reports/terms_conditions_repo.dart';
|
|
|
|
import '../features/monthly_reports/terms_conditions_view_model.dart';
|
|
|
|
import '../features/monthly_reports/terms_conditions_view_model.dart';
|
|
|
|
|
|
|
|
import '../features/qr_parking/qr_parking_view_model.dart';
|
|
|
|
|
|
|
|
import '../presentation/health_calculators_and_converts/health_calculator_view_model.dart';
|
|
|
|
|
|
|
|
|
|
|
|
GetIt getIt = GetIt.instance;
|
|
|
|
GetIt getIt = GetIt.instance;
|
|
|
|
|
|
|
|
|
|
|
|
@ -176,18 +175,14 @@ class AppDependencies {
|
|
|
|
getIt.registerLazySingleton<MonthlyReportRepo>(() => MonthlyReportRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<MonthlyReportRepo>(() => MonthlyReportRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ActivePrescriptionsRepo>(() => ActivePrescriptionsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ActivePrescriptionsRepo>(() => ActivePrescriptionsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<TermsConditionsRepo>(() => TermsConditionsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<TermsConditionsRepo>(() => TermsConditionsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerFactory<TermsConditionsViewModel>(
|
|
|
|
getIt.registerFactory<TermsConditionsViewModel>(() => TermsConditionsViewModel(termsConditionsRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
() => TermsConditionsViewModel(
|
|
|
|
|
|
|
|
termsConditionsRepo: getIt<TermsConditionsRepo>(),
|
|
|
|
|
|
|
|
errorHandlerService: getIt<ErrorHandlerService>(),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<MonthlyReportsRepo>(() => MonthlyReportsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<MonthlyReportsRepo>(() => MonthlyReportsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<QrParkingRepo>(() => QrParkingRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<QrParkingRepo>(() => QrParkingRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<NotificationsRepo>(() => NotificationsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<NotificationsRepo>(() => NotificationsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<AskDoctorRepo>(() => AskDoctorRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<AskDoctorRepo>(() => AskDoctorRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ServicesPriceListRepo>(() => ServicesPriceListRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ServicesPriceListRepo>(() => ServicesPriceListRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ProfileSettingsRepo>(() => ProfileSettingsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
getIt.registerLazySingleton<ProfileSettingsRepo>(() => ProfileSettingsRepoImp(loggerService: getIt<LoggerService>(), apiClient: getIt()));
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<RefundRequestRepo>(() => RefundRequestRepoImp(apiClient: getIt(), loggerService: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
// ViewModels
|
|
|
|
// ViewModels
|
|
|
|
// Global/shared VMs → LazySingleton
|
|
|
|
// Global/shared VMs → LazySingleton
|
|
|
|
@ -198,13 +193,16 @@ class AppDependencies {
|
|
|
|
() => RadiologyViewModel(radiologyRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt()),
|
|
|
|
() => RadiologyViewModel(radiologyRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt()),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<PrescriptionsViewModel>(() => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
|
|
|
|
getIt.registerLazySingleton<PrescriptionsViewModel>(
|
|
|
|
|
|
|
|
() => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<InsuranceViewModel>(() => InsuranceViewModel(insuranceRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<InsuranceViewModel>(() => InsuranceViewModel(insuranceRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<MyAppointmentsViewModel>(() => MyAppointmentsViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
|
|
|
|
getIt.registerLazySingleton<MyAppointmentsViewModel>(
|
|
|
|
|
|
|
|
() => MyAppointmentsViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<AppointmentRatingViewModel>(() => AppointmentRatingViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
|
|
|
|
getIt.registerLazySingleton<AppointmentRatingViewModel>(
|
|
|
|
|
|
|
|
() => AppointmentRatingViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<PayfortViewModel>(
|
|
|
|
getIt.registerLazySingleton<PayfortViewModel>(
|
|
|
|
() => PayfortViewModel(payfortRepo: getIt(), errorHandlerService: getIt()),
|
|
|
|
() => PayfortViewModel(payfortRepo: getIt(), errorHandlerService: getIt()),
|
|
|
|
@ -223,7 +221,12 @@ class AppDependencies {
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<BookAppointmentsViewModel>(
|
|
|
|
getIt.registerLazySingleton<BookAppointmentsViewModel>(
|
|
|
|
() => BookAppointmentsViewModel(
|
|
|
|
() => BookAppointmentsViewModel(
|
|
|
|
bookAppointmentsRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt(), myAppointmentsViewModel: getIt(), locationUtils: getIt(), dialogService: getIt()),
|
|
|
|
bookAppointmentsRepo: getIt(),
|
|
|
|
|
|
|
|
errorHandlerService: getIt(),
|
|
|
|
|
|
|
|
navigationService: getIt(),
|
|
|
|
|
|
|
|
myAppointmentsViewModel: getIt(),
|
|
|
|
|
|
|
|
locationUtils: getIt(),
|
|
|
|
|
|
|
|
dialogService: getIt()),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<ImmediateLiveCareViewModel>(
|
|
|
|
getIt.registerLazySingleton<ImmediateLiveCareViewModel>(
|
|
|
|
@ -237,7 +240,13 @@ class AppDependencies {
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<AuthenticationViewModel>(
|
|
|
|
getIt.registerLazySingleton<AuthenticationViewModel>(
|
|
|
|
() => AuthenticationViewModel(
|
|
|
|
() => AuthenticationViewModel(
|
|
|
|
authenticationRepo: getIt(), cacheService: getIt(), navigationService: getIt(), dialogService: getIt(), appState: getIt(), errorHandlerService: getIt(), localAuthService: getIt()),
|
|
|
|
authenticationRepo: getIt(),
|
|
|
|
|
|
|
|
cacheService: getIt(),
|
|
|
|
|
|
|
|
navigationService: getIt(),
|
|
|
|
|
|
|
|
dialogService: getIt(),
|
|
|
|
|
|
|
|
appState: getIt(),
|
|
|
|
|
|
|
|
errorHandlerService: getIt(),
|
|
|
|
|
|
|
|
localAuthService: getIt()),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<ProfileSettingsViewModel>(() => ProfileSettingsViewModel(
|
|
|
|
getIt.registerLazySingleton<ProfileSettingsViewModel>(() => ProfileSettingsViewModel(
|
|
|
|
@ -310,22 +319,33 @@ class AppDependencies {
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<WaterMonitorViewModel>(() => WaterMonitorViewModel(waterMonitorRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<WaterMonitorViewModel>(() => WaterMonitorViewModel(waterMonitorRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<WeatherMonitorViewModel>(() => WeatherMonitorViewModel(weatherRepo: getIt(), errorHandlerService: getIt(), locationUtils: getIt()));
|
|
|
|
getIt.registerLazySingleton<WeatherMonitorViewModel>(
|
|
|
|
|
|
|
|
() => WeatherMonitorViewModel(weatherRepo: getIt(), errorHandlerService: getIt(), locationUtils: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
//commenting this because its already define there was on run time error because of this.
|
|
|
|
//commenting this because its already define there was on run time error because of this.
|
|
|
|
getIt.registerLazySingleton<MyInvoicesViewModel>(() => MyInvoicesViewModel(myInvoicesRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
|
|
|
|
getIt.registerLazySingleton<MyInvoicesViewModel>(
|
|
|
|
|
|
|
|
() => MyInvoicesViewModel(myInvoicesRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<MonthlyReportViewModel>(() => MonthlyReportViewModel(errorHandlerService: getIt(), monthlyReportRepo: getIt()));
|
|
|
|
getIt.registerLazySingleton<MonthlyReportViewModel>(() => MonthlyReportViewModel(errorHandlerService: getIt(), monthlyReportRepo: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<NotificationsViewModel>(() => NotificationsViewModel(notificationsRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<NotificationsViewModel>(() => NotificationsViewModel(notificationsRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<HealthTrackersViewModel>(() => HealthTrackersViewModel(healthTrackersRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<HealthTrackersViewModel>(() => HealthTrackersViewModel(healthTrackersRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<ActivePrescriptionsViewModel>(() => ActivePrescriptionsViewModel(errorHandlerService: getIt(), activePrescriptionsRepo: getIt()));
|
|
|
|
getIt.registerLazySingleton<ActivePrescriptionsViewModel>(
|
|
|
|
getIt.registerFactory<QrParkingViewModel>(() => QrParkingViewModel(qrParkingRepo: getIt<QrParkingRepo>(), errorHandlerService: getIt<ErrorHandlerService>(), cacheService: getIt<CacheService>()));
|
|
|
|
() => ActivePrescriptionsViewModel(errorHandlerService: getIt(), activePrescriptionsRepo: getIt()));
|
|
|
|
|
|
|
|
getIt.registerFactory<QrParkingViewModel>(() => QrParkingViewModel(
|
|
|
|
|
|
|
|
qrParkingRepo: getIt<QrParkingRepo>(), errorHandlerService: getIt<ErrorHandlerService>(), cacheService: getIt<CacheService>()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<AskDoctorViewModel>(() => AskDoctorViewModel(askDoctorRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<AskDoctorViewModel>(() => AskDoctorViewModel(askDoctorRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<ServicesPriceListViewModel>(() => ServicesPriceListViewModel(servicesPriceListRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
getIt.registerLazySingleton<ServicesPriceListViewModel>(
|
|
|
|
getIt.registerLazySingleton<DateRangCalenderModel>(() => DateRangCalenderModel(appState: getIt(), navigationService: getIt(), dialogService: getIt()));
|
|
|
|
() => ServicesPriceListViewModel(servicesPriceListRepo: getIt(), errorHandlerService: getIt()));
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<DateRangCalenderModel>(
|
|
|
|
|
|
|
|
() => DateRangCalenderModel(appState: getIt(), navigationService: getIt(), dialogService: getIt()));
|
|
|
|
|
|
|
|
getIt.registerLazySingleton<RefundRequestViewModel>(() => RefundRequestViewModel(
|
|
|
|
|
|
|
|
appState: getIt(),
|
|
|
|
|
|
|
|
refundRequestRepo: getIt(),
|
|
|
|
|
|
|
|
errorHandlerService: getIt(),
|
|
|
|
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|