tango-app-ui-manage-tickets 3.7.0-beta.70 → 3.7.0-beta.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/add-csm-modal/add-csm-modal.component.mjs +98 -0
- package/esm2022/lib/components/audit-log/audit-log.component.mjs +11 -0
- package/esm2022/lib/components/audit-mapping-list/audit-mapping-list.component.mjs +498 -0
- package/esm2022/lib/components/audit-metrics/audit-metrics.component.mjs +298 -0
- package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +389 -0
- package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +480 -0
- package/esm2022/lib/components/comment-model/comment-model.component.mjs +58 -0
- package/esm2022/lib/components/count/count.component.mjs +89 -0
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +187 -0
- package/esm2022/lib/components/filter-options/filter-options.component.mjs +41 -0
- package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +1061 -0
- package/esm2022/lib/components/footfall-dicview/footfall-dicview.component.mjs +1014 -0
- package/esm2022/lib/components/footfall-popup/footfall-popup.component.mjs +15 -0
- package/esm2022/lib/components/group-select/group-select.component.mjs +155 -0
- package/esm2022/lib/components/re-trigger/re-trigger.component.mjs +96 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +108 -0
- package/esm2022/lib/components/remove-audit/remove-audit.component.mjs +81 -0
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +758 -0
- package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +131 -0
- package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +435 -0
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +2511 -0
- package/esm2022/lib/components/ticketclosepopup/ticketclosepopup.component.mjs +43 -0
- package/esm2022/lib/components/tickets/tickets.component.mjs +847 -0
- package/esm2022/lib/components/viewcategory/viewcategory.component.mjs +89 -0
- package/esm2022/lib/services/audit.service.mjs +88 -0
- package/esm2022/lib/services/excel.service.mjs +45 -0
- package/esm2022/lib/services/ticket.service.mjs +319 -0
- package/esm2022/lib/services/timer.service.mjs +84 -0
- package/esm2022/lib/tango-manage-tickets-routing.module.mjs +44 -0
- package/esm2022/lib/tango-manage-tickets.module.mjs +109 -0
- package/esm2022/public-api.mjs +6 -0
- package/esm2022/tango-app-ui-manage-tickets.mjs +5 -0
- package/fesm2022/tango-app-ui-manage-tickets.mjs +9945 -0
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/add-csm-modal/add-csm-modal.component.d.ts +30 -0
- package/lib/components/audit-log/audit-log.component.d.ts +5 -0
- package/lib/components/audit-mapping-list/audit-mapping-list.component.d.ts +73 -0
- package/lib/components/audit-metrics/audit-metrics.component.d.ts +59 -0
- package/lib/components/audit-report-popup/audit-report-popup.component.d.ts +52 -0
- package/lib/components/audit-retag/audit-retag.component.d.ts +59 -0
- package/lib/components/comment-model/comment-model.component.d.ts +17 -0
- package/lib/components/count/count.component.d.ts +23 -0
- package/lib/components/custom-select/custom-select.component.d.ts +35 -0
- package/lib/components/filter-options/filter-options.component.d.ts +15 -0
- package/lib/components/footfall-dic/footfall-dic.component.d.ts +143 -0
- package/lib/components/footfall-dicview/footfall-dicview.component.d.ts +132 -0
- package/lib/components/footfall-popup/footfall-popup.component.d.ts +8 -0
- package/lib/components/group-select/group-select.component.d.ts +33 -0
- package/lib/components/re-trigger/re-trigger.component.d.ts +32 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +32 -0
- package/lib/components/remove-audit/remove-audit.component.d.ts +16 -0
- package/lib/components/start-audit/start-audit.component.d.ts +86 -0
- package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +28 -0
- package/lib/components/ticket-filter-panel/ticket-filter-panel.component.d.ts +79 -0
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +293 -0
- package/lib/components/ticketclosepopup/ticketclosepopup.component.d.ts +15 -0
- package/lib/components/tickets/tickets.component.d.ts +88 -0
- package/lib/components/viewcategory/viewcategory.component.d.ts +16 -0
- package/lib/services/audit.service.d.ts +36 -0
- package/lib/services/excel.service.d.ts +10 -0
- package/lib/services/ticket.service.d.ts +87 -0
- package/lib/services/timer.service.d.ts +22 -0
- package/lib/tango-manage-tickets-routing.module.d.ts +7 -0
- package/lib/tango-manage-tickets.module.d.ts +38 -0
- package/package.json +25 -12
- package/{src/public-api.ts → public-api.d.ts} +2 -8
- package/.eslintrc.json +0 -37
- package/ng-package.json +0 -7
- package/src/lib/components/add-csm-modal/add-csm-modal.component.html +0 -32
- package/src/lib/components/add-csm-modal/add-csm-modal.component.scss +0 -14
- package/src/lib/components/add-csm-modal/add-csm-modal.component.spec.ts +0 -23
- package/src/lib/components/add-csm-modal/add-csm-modal.component.ts +0 -94
- package/src/lib/components/audit-log/audit-log.component.html +0 -1
- package/src/lib/components/audit-log/audit-log.component.scss +0 -0
- package/src/lib/components/audit-log/audit-log.component.spec.ts +0 -23
- package/src/lib/components/audit-log/audit-log.component.ts +0 -10
- package/src/lib/components/audit-mapping-list/audit-mapping-list.component.html +0 -234
- package/src/lib/components/audit-mapping-list/audit-mapping-list.component.scss +0 -186
- package/src/lib/components/audit-mapping-list/audit-mapping-list.component.spec.ts +0 -23
- package/src/lib/components/audit-mapping-list/audit-mapping-list.component.ts +0 -536
- package/src/lib/components/audit-metrics/audit-metrics.component.html +0 -345
- package/src/lib/components/audit-metrics/audit-metrics.component.scss +0 -34
- package/src/lib/components/audit-metrics/audit-metrics.component.spec.ts +0 -23
- package/src/lib/components/audit-metrics/audit-metrics.component.ts +0 -292
- package/src/lib/components/audit-report-popup/audit-report-popup.component.html +0 -111
- package/src/lib/components/audit-report-popup/audit-report-popup.component.scss +0 -101
- package/src/lib/components/audit-report-popup/audit-report-popup.component.spec.ts +0 -23
- package/src/lib/components/audit-report-popup/audit-report-popup.component.ts +0 -397
- package/src/lib/components/audit-retag/audit-retag.component.html +0 -129
- package/src/lib/components/audit-retag/audit-retag.component.scss +0 -146
- package/src/lib/components/audit-retag/audit-retag.component.spec.ts +0 -23
- package/src/lib/components/audit-retag/audit-retag.component.ts +0 -497
- package/src/lib/components/comment-model/comment-model.component.html +0 -24
- package/src/lib/components/comment-model/comment-model.component.scss +0 -20
- package/src/lib/components/comment-model/comment-model.component.spec.ts +0 -23
- package/src/lib/components/comment-model/comment-model.component.ts +0 -53
- package/src/lib/components/count/count.component.html +0 -54
- package/src/lib/components/count/count.component.scss +0 -14
- package/src/lib/components/count/count.component.spec.ts +0 -23
- package/src/lib/components/count/count.component.ts +0 -82
- package/src/lib/components/custom-select/custom-select.component.html +0 -134
- package/src/lib/components/custom-select/custom-select.component.scss +0 -204
- package/src/lib/components/custom-select/custom-select.component.spec.ts +0 -23
- package/src/lib/components/custom-select/custom-select.component.ts +0 -189
- package/src/lib/components/filter-options/filter-options.component.html +0 -51
- package/src/lib/components/filter-options/filter-options.component.scss +0 -102
- package/src/lib/components/filter-options/filter-options.component.spec.ts +0 -23
- package/src/lib/components/filter-options/filter-options.component.ts +0 -38
- package/src/lib/components/footfall-dic/footfall-dic.component.html +0 -1275
- package/src/lib/components/footfall-dic/footfall-dic.component.scss +0 -273
- package/src/lib/components/footfall-dic/footfall-dic.component.spec.ts +0 -23
- package/src/lib/components/footfall-dic/footfall-dic.component.ts +0 -1206
- package/src/lib/components/footfall-dicview/footfall-dicview.component.html +0 -1136
- package/src/lib/components/footfall-dicview/footfall-dicview.component.scss +0 -416
- package/src/lib/components/footfall-dicview/footfall-dicview.component.spec.ts +0 -23
- package/src/lib/components/footfall-dicview/footfall-dicview.component.ts +0 -1168
- package/src/lib/components/footfall-popup/footfall-popup.component.html +0 -61
- package/src/lib/components/footfall-popup/footfall-popup.component.scss +0 -20
- package/src/lib/components/footfall-popup/footfall-popup.component.spec.ts +0 -23
- package/src/lib/components/footfall-popup/footfall-popup.component.ts +0 -12
- package/src/lib/components/group-select/group-select.component.html +0 -44
- package/src/lib/components/group-select/group-select.component.scss +0 -144
- package/src/lib/components/group-select/group-select.component.spec.ts +0 -23
- package/src/lib/components/group-select/group-select.component.ts +0 -145
- package/src/lib/components/re-trigger/re-trigger.component.html +0 -53
- package/src/lib/components/re-trigger/re-trigger.component.scss +0 -16
- package/src/lib/components/re-trigger/re-trigger.component.spec.ts +0 -23
- package/src/lib/components/re-trigger/re-trigger.component.ts +0 -96
- package/src/lib/components/reactive-select/reactive-select.component.html +0 -18
- package/src/lib/components/reactive-select/reactive-select.component.scss +0 -52
- package/src/lib/components/reactive-select/reactive-select.component.spec.ts +0 -23
- package/src/lib/components/reactive-select/reactive-select.component.ts +0 -104
- package/src/lib/components/remove-audit/remove-audit.component.html +0 -38
- package/src/lib/components/remove-audit/remove-audit.component.scss +0 -27
- package/src/lib/components/remove-audit/remove-audit.component.spec.ts +0 -23
- package/src/lib/components/remove-audit/remove-audit.component.ts +0 -81
- package/src/lib/components/start-audit/start-audit.component.html +0 -174
- package/src/lib/components/start-audit/start-audit.component.scss +0 -185
- package/src/lib/components/start-audit/start-audit.component.spec.ts +0 -23
- package/src/lib/components/start-audit/start-audit.component.ts +0 -772
- package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html +0 -43
- package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.scss +0 -35
- package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.spec.ts +0 -23
- package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts +0 -118
- package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.html +0 -386
- package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.scss +0 -87
- package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.spec.ts +0 -23
- package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.ts +0 -493
- package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.html +0 -3751
- package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.scss +0 -1240
- package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.spec.ts +0 -23
- package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.ts +0 -2863
- package/src/lib/components/ticketclosepopup/ticketclosepopup.component.html +0 -100
- package/src/lib/components/ticketclosepopup/ticketclosepopup.component.scss +0 -34
- package/src/lib/components/ticketclosepopup/ticketclosepopup.component.spec.ts +0 -23
- package/src/lib/components/ticketclosepopup/ticketclosepopup.component.ts +0 -48
- package/src/lib/components/tickets/tickets.component.html +0 -451
- package/src/lib/components/tickets/tickets.component.scss +0 -131
- package/src/lib/components/tickets/tickets.component.spec.ts +0 -23
- package/src/lib/components/tickets/tickets.component.ts +0 -809
- package/src/lib/components/viewcategory/viewcategory.component.html +0 -38
- package/src/lib/components/viewcategory/viewcategory.component.scss +0 -29
- package/src/lib/components/viewcategory/viewcategory.component.spec.ts +0 -23
- package/src/lib/components/viewcategory/viewcategory.component.ts +0 -79
- package/src/lib/services/audit.service.spec.ts +0 -16
- package/src/lib/services/audit.service.ts +0 -98
- package/src/lib/services/excel.service.ts +0 -48
- package/src/lib/services/ticket.service.spec.ts +0 -16
- package/src/lib/services/ticket.service.ts +0 -501
- package/src/lib/services/timer.service.spec.ts +0 -16
- package/src/lib/services/timer.service.ts +0 -92
- package/src/lib/tango-manage-tickets-routing.module.ts +0 -37
- package/src/lib/tango-manage-tickets.module.ts +0 -68
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tango-app-ui-manage-tickets.mjs","sources":["../../../projects/tango-manage-tickets/src/lib/services/ticket.service.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.html","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.ts","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.html","../../../projects/tango-manage-tickets/src/lib/services/excel.service.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.html","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.ts","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.html","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.ts","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.html","../../../projects/tango-manage-tickets/src/lib/components/reactive-select/reactive-select.component.ts","../../../projects/tango-manage-tickets/src/lib/components/reactive-select/reactive-select.component.html","../../../projects/tango-manage-tickets/src/lib/components/group-select/group-select.component.ts","../../../projects/tango-manage-tickets/src/lib/components/group-select/group-select.component.html","../../../projects/tango-manage-tickets/src/lib/components/footfall-dic/footfall-dic.component.ts","../../../projects/tango-manage-tickets/src/lib/components/footfall-dic/footfall-dic.component.html","../../../projects/tango-manage-tickets/src/lib/components/footfall-popup/footfall-popup.component.ts","../../../projects/tango-manage-tickets/src/lib/components/footfall-popup/footfall-popup.component.html","../../../projects/tango-manage-tickets/src/lib/components/ticketclosepopup/ticketclosepopup.component.ts","../../../projects/tango-manage-tickets/src/lib/components/ticketclosepopup/ticketclosepopup.component.html","../../../projects/tango-manage-tickets/src/lib/services/audit.service.ts","../../../projects/tango-manage-tickets/src/lib/components/custom-select/custom-select.component.ts","../../../projects/tango-manage-tickets/src/lib/components/custom-select/custom-select.component.html","../../../projects/tango-manage-tickets/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.ts","../../../projects/tango-manage-tickets/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.html","../../../projects/tango-manage-tickets/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.ts","../../../projects/tango-manage-tickets/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.html","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html","../../../projects/tango-manage-tickets/src/lib/components/footfall-dicview/footfall-dicview.component.ts","../../../projects/tango-manage-tickets/src/lib/components/footfall-dicview/footfall-dicview.component.html","../../../projects/tango-manage-tickets/src/lib/components/remove-audit/remove-audit.component.ts","../../../projects/tango-manage-tickets/src/lib/components/remove-audit/remove-audit.component.html","../../../projects/tango-manage-tickets/src/lib/components/viewcategory/viewcategory.component.ts","../../../projects/tango-manage-tickets/src/lib/components/viewcategory/viewcategory.component.html","../../../projects/tango-manage-tickets/src/lib/services/timer.service.ts","../../../projects/tango-manage-tickets/src/lib/components/start-audit/start-audit.component.ts","../../../projects/tango-manage-tickets/src/lib/components/start-audit/start-audit.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-report-popup/audit-report-popup.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-report-popup/audit-report-popup.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-mapping-list/audit-mapping-list.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-mapping-list/audit-mapping-list.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-retag/audit-retag.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-retag/audit-retag.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets-routing.module.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.html","../../../projects/tango-manage-tickets/src/lib/components/filter-options/filter-options.component.ts","../../../projects/tango-manage-tickets/src/lib/components/filter-options/filter-options.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets.module.ts","../../../projects/tango-manage-tickets/src/public-api.ts","../../../projects/tango-manage-tickets/src/tango-app-ui-manage-tickets.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, Optional } from \"@angular/core\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport {\r\n BehaviorSubject,\r\n Observable,\r\n catchError,\r\n map,\r\n of,\r\n throwError,\r\n} from \"rxjs\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class TicketService {\r\n userApiUrl: any;\r\n ticketsApiUrl: any;\r\n auditApiUrl: any;\r\n auditmetricApiUrl: any;\r\n zoneauditApiUrl: any;\r\n footfallDirapiUrl: any;\r\n footfallCDN: any;\r\n trafficApiUrl: any;\r\n revopApiUrl: any;\r\n clientApiUrl:any;\r\n vmsAuditUrl:any;\r\n dropDownTrigger = new BehaviorSubject<any>(null);\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.subscribe((env) => {\r\n if (env) {\r\n this.userApiUrl = env.userApiUrl;\r\n this.ticketsApiUrl = env.ticketsApiUrl;\r\n this.auditmetricApiUrl = env.auditmetricApiUrl;\r\n this.auditApiUrl = env.auditApiUrl;\r\n this.zoneauditApiUrl = env.zoneauditApiUrl;\r\n this.clientApiUrl = env.clientApiUrl;\r\n this.footfallDirapiUrl = env.footfallDirapiUrl;\r\n this.footfallCDN = env.footfallCDN;\r\n this.trafficApiUrl = env.trafficApiUrl;\r\n this.revopApiUrl = env.revopApiUrl;\r\n this.vmsAuditUrl = env.vmsAuditUrl;\r\n }\r\n });\r\n }\r\n\r\n getUserList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/get-list`, params);\r\n }\r\n\r\n exportInstallationList(data: any) {\r\n return this.http.post(\r\n `${this.ticketsApiUrl}/infra/installationTable`,\r\n data,\r\n { responseType: \"arraybuffer\" }\r\n );\r\n }\r\n\r\n exportInfraList(data: any) {\r\n return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {\r\n responseType: \"arraybuffer\",\r\n });\r\n }\r\n\r\n exportMatList(data: any) {\r\n return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {\r\n responseType: \"arraybuffer\",\r\n });\r\n }\r\n\r\n getSotresList(data: any) {\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/storeFilter`, data);\r\n }\r\n\r\n getInstallationList(data: any) {\r\n return this.http.post<any>(\r\n `${this.ticketsApiUrl}/infra/installationTable`,\r\n data\r\n );\r\n }\r\n\r\n getInfraList(data: any) {\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/infraTable`, data);\r\n }\r\n\r\n getAssignTicket(data: any) {\r\n return this.http.post<any>(\r\n `${this.ticketsApiUrl}/infra/assignTicket`,\r\n data\r\n );\r\n }\r\n\r\n getMatList(data: any) {\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/matTable`, data);\r\n }\r\n\r\n updateTicketIssue(data: any) {\r\n return this.http.post<any>(\r\n `${this.ticketsApiUrl}/employeeTraning/updatecomment`,\r\n data\r\n );\r\n }\r\n\r\n getUserActiveList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/list`, params);\r\n }\r\n\r\n getAllCounts(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/allCounts`, data)\r\n }\r\n getstoreMetrics(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data)\r\n }\r\n getstoreMetricsExport(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data,{responseType: 'arraybuffer'})\r\n }\r\n getclientList(){\r\n return this.http.get(`${this.auditApiUrl}/clients`)\r\n }\r\n getuserList(){\r\n return this.http.get(`${this.auditApiUrl}/tango-users`)\r\n }\r\n auditretrigger(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`,data)\r\n }\r\n getfootfallcount(data:any){\r\n return this.http.get(`${this.revopApiUrl}/store-processed-data?storeId=${data.storeId}&fromDate=${data.Date}&toDate=${data.Date}`)\r\n \r\n }\r\n getstoreList(data:any){\r\n return this.http.post(`${this.auditApiUrl}/audit-stores`,data)\r\n }\r\n checkTicketExists(data:any){\r\n return this.http.post(`${this.footfallDirapiUrl}/checkTicketExists`,data)\r\n }\r\n mergeticket(data:any){\r\n return this.http.post(`${this.footfallDirapiUrl}/mergeticket`,data)\r\n }\r\n getDataMismathList(data: any) {\r\n return this.http.post<any>(\r\n `${this.ticketsApiUrl}/infra/dataMismatchTable`,\r\n data\r\n );\r\n }\r\n accuracyReasonsupdate(data: any) {\r\n return this.http.post<any>(\r\n `${this.footfallDirapiUrl}/tango-review-accuracy-ticket`,\r\n data\r\n );\r\n }\r\n\r\n exportDataMismatchList(data: any) {\r\n return this.http.post(\r\n `${this.ticketsApiUrl}/infra/dataMismatchTable`,\r\n data,\r\n { responseType: \"arraybuffer\" }\r\n );\r\n }\r\n\r\n\r\n getAuditImages(data: any) {\r\n return this.http.get(\r\n `${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`\r\n );\r\n }\r\n ExportAuditImagesasxlsx(data: any) {\r\n return this.http.get(\r\n `${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`,\r\n { responseType: \"arraybuffer\" }\r\n );\r\n }\r\n\r\n getTicketSummaryApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n tangoType:any,\r\n permissionType?: string | null,\r\n ): Observable<any> {\r\n let url =\r\n `${this.footfallDirapiUrl}/ticket-summary?` +\r\n `clientId=${client}` +\r\n `&fromDate=${fromDate}` +\r\n `&toDate=${toDate}` +\r\n `&tangoType=${tangoType}`;\r\n if (permissionType) {\r\n url += `&permissionType=${permissionType}`;\r\n }\r\n\r\n return this.http.get(url);\r\n }\r\n accuracyReasons(\r\n client: any,\r\n ): Observable<any> {\r\n return this.http.get(\r\n `${this.footfallDirapiUrl}/get-accuarcy-issues?clientId=${client}`\r\n );\r\n }\r\n\r\n getTicketListOldApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n searchvalue: any,\r\n limit: any,\r\n offset: any,\r\n isExport: any,\r\n sortBy: any,\r\n sortOrder: any\r\n ): Observable<any> {\r\n return this.http.get(\r\n `${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`\r\n );\r\n }\r\n\r\ngetTicketListApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n searchvalue: any,\r\n limit: any,\r\n offset: any,\r\n isExport: any,\r\n sortBy: any,\r\n sortOrder: any,\r\n tangoType: any,\r\n permissionType?: string | null,\r\n filters?: {\r\n filterByStatus: any[];\r\n filterByReviewer: any | null;\r\n filterByApprover: any | null;\r\n filterByTango: any | null;\r\n filterByReviewedBy: any[];\r\n fileterByApprovedBy: any[];\r\n }\r\n): Observable<any> {\r\n let url =\r\n `${this.footfallDirapiUrl}/ticket-list?` +\r\n `clientId=${client}` +\r\n `&fromDate=${fromDate}` +\r\n `&toDate=${toDate}` +\r\n `&searchValue=${searchvalue}` +\r\n `&limit=${limit}` +\r\n `&offset=${offset}` +\r\n `&isExport=${isExport}` +\r\n `&sortBy=${sortBy}` +\r\n `&sortOrder=${sortOrder}` +\r\n `&tangoType=${tangoType}`;\r\n\r\n if (permissionType) {\r\n url += `&permissionType=${permissionType}`;\r\n }\r\n\r\n if (filters) {\r\n // array params – send as comma-separated\r\n if (filters.filterByStatus?.length) {\r\n url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;\r\n }\r\n\r\n if (filters.filterByReviewedBy?.length) {\r\n url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;\r\n }\r\n\r\n if (filters.fileterByApprovedBy?.length) {\r\n url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;\r\n }\r\n\r\n // string params – JSON stringified accuracy\r\n if (filters.filterByReviewer) {\r\n url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;\r\n }\r\n\r\n if (filters.filterByApprover) {\r\n url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;\r\n }\r\n\r\n if (filters.filterByTango) {\r\n url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;\r\n }\r\n }\r\n\r\n return this.http.get(url);\r\n}\r\n\r\n\r\n getTicketListExportOldApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n searchvalue: any,\r\n limit: any,\r\n offset: any,\r\n isExport: any,\r\n sortBy: any,\r\n sortOrder: any\r\n ): Observable<any> {\r\n return this.http.get(\r\n `${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`,\r\n { responseType: \"arraybuffer\" }\r\n );\r\n }\r\n\r\ngetTicketListExportApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n searchvalue: any,\r\n limit: any,\r\n offset: any,\r\n isExport: any,\r\n sortBy: any,\r\n sortOrder: any,\r\n tangoType: any,\r\n permissionType?: string | null,\r\n filters?: {\r\n filterByStatus?: string[];\r\n filterByReviewer?: string | null;\r\n filterByApprover?: string | null;\r\n filterByTango?: string | null;\r\n filterByReviewedBy?: string[];\r\n fileterByApprovedBy?: string[];\r\n }\r\n): Observable<any> {\r\n let url =\r\n `${this.footfallDirapiUrl}/ticket-list?` +\r\n `clientId=${client}` +\r\n `&fromDate=${fromDate}` +\r\n `&toDate=${toDate}` +\r\n `&searchValue=${searchvalue}` +\r\n `&limit=${limit}` +\r\n `&offset=${offset}` +\r\n `&isExport=${isExport}` +\r\n `&sortBy=${sortBy}` +\r\n `&sortOrder=${sortOrder}` +\r\n `&tangoType=${tangoType}`;\r\n\r\n if (permissionType) {\r\n url += `&permissionType=${permissionType}`;\r\n }\r\n\r\n if (filters) {\r\n if (filters.filterByStatus?.length) {\r\n url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;\r\n }\r\n\r\n if (filters.filterByReviewedBy?.length) {\r\n url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;\r\n }\r\n\r\n if (filters.fileterByApprovedBy?.length) {\r\n url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;\r\n }\r\n\r\n if (filters.filterByReviewer) {\r\n url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;\r\n }\r\n\r\n if (filters.filterByApprover) {\r\n url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;\r\n }\r\n\r\n if (filters.filterByTango) {\r\n url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;\r\n }\r\n }\r\n\r\n const options = isExport\r\n ? { responseType: 'arraybuffer' as 'json' }\r\n : {};\r\n\r\n return this.http.get(url, options);\r\n}\r\n\r\n\r\n getTicketsApi(\r\n store: any,\r\n fromDate: any,\r\n toDate: any,\r\n revopsType: any,\r\n status: any,\r\n action: any,\r\n offset: any,\r\n limit: any\r\n ): Observable<any> {\r\n let params = new HttpParams()\r\n .set(\"storeId\", store)\r\n .set(\"fromDate\", fromDate)\r\n .set(\"toDate\", toDate)\r\n .set(\"offset\", offset)\r\n .set(\"limit\", limit);\r\n if (revopsType) {\r\n params = params.set(\"revopsType\", revopsType);\r\n }\r\n if (status) {\r\n params = params.set(\"status\", status);\r\n }\r\n if (action) {\r\n params = params.set(\"action\", action);\r\n }\r\n return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });\r\n }\r\n\r\n getTicketsNewApi(ticketId: any): Observable<any> {\r\n let params = new HttpParams().set(\"ticketId\", ticketId);\r\n return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });\r\n }\r\n\r\n getTaggedStoresApi(\r\n client: any,\r\n fromDate: any,\r\n toDate: any,\r\n searchValue: any,\r\n clusters: any,\r\n sortOrder: any\r\n ): Observable<any> {\r\n let params = new HttpParams()\r\n .set(\"clientId\", client)\r\n .set(\"fromDate\", fromDate)\r\n .set(\"toDate\", toDate); // Add searchValue as an empty string if not provided\r\n // Only add 'clusters' if it's not null, undefined, or an empty array/string\r\n if (searchValue) {\r\n params = params.set(\"searchValue\", searchValue);\r\n }\r\n\r\n if (clusters && clusters.length > 0) {\r\n params = params.set(\"clusters\", clusters);\r\n }\r\n if (sortOrder) {\r\n params = params.set(\"sortOrder\", sortOrder);\r\n }\r\n return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {\r\n params,\r\n });\r\n }\r\n\r\n getUpdateStatusApi(data: any): Observable<any> {\r\n const url = `${this.footfallDirapiUrl}/update-status`;\r\n return this.http.put(url, data);\r\n }\r\n\r\n getUpdateTempStatusApi(data: any): Observable<any> {\r\n return this.http.post(`${this.footfallDirapiUrl}/update-temp-status`, data);\r\n }\r\n\r\n getOpenTicketListApi(data: any): Observable<any> {\r\n return this.http.post(`${this.footfallDirapiUrl}/open-ticket-list`, data);\r\n }\r\n\r\n getUpdateTicketStatusApi(data: any): Observable<any> {\r\n return this.http.post(\r\n `${this.footfallDirapiUrl}/update-ticket-status`,\r\n data\r\n );\r\n }\r\n\r\ngetCreateTicketListApi(data:any): Observable<any> {\r\n return this.http.post(`${this.footfallDirapiUrl}/create-ticket`, data);\r\n}\r\nCreateinternalTicketApi(data:any): Observable<any> {\r\n return this.http.post(`${this.footfallDirapiUrl}/create-internalticket`, data);\r\n}\r\n getclusters(data: any) {\r\n return this.http.post(`${this.trafficApiUrl}/headercluster_v2`, data);\r\n }\r\n\r\n getReviewerApi(clientId: any,type:any,tangotype:any): Observable<any> {\r\n let params = new HttpParams().set(\"clientId\", clientId)\r\n .set(\"type\",type).set(\"tangotype\",tangotype);\r\n return this.http.get(`${this.footfallDirapiUrl}/reviewer-list`, { params });\r\n }\r\n\r\n getTicketAssignApi(data: any): Observable<any> {\r\n return this.http.post(`${this.footfallDirapiUrl}/assign-ticket`, data);\r\n }\r\n reAssignAudit(data: any): Observable<any> {\r\n return this.http.post(`${this.vmsAuditUrl}/reAssign-audit`, data);\r\n }\r\n\r\n getMultiCloseTicketApi(data: any): Observable<any> {\r\n return this.http.post(\r\n `${this.footfallDirapiUrl}/multi-close-tickets`,\r\n data\r\n );\r\n }\r\n\r\n getTypeFunction(clientId: any): Observable<any> {\r\n let params = new HttpParams().set(\"clientId\", clientId);\r\n return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config`, { params });\r\n\r\n \r\n }\r\n private footfallData: any;\r\n\r\n setFootfallData(data: any) {\r\n this.footfallData = data;\r\n }\r\n\r\n getFootfallData() {\r\n return this.footfallData;\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: \"lib-add-csm-modal\",\r\n templateUrl: \"./add-csm-modal.component.html\",\r\n styleUrl: \"./add-csm-modal.component.scss\",\r\n})\r\nexport class AddCsmModalComponent implements OnInit, OnDestroy {\r\n @Input() ticketId: any;\r\n csmUserList: any = [];\r\n csmSelectInput = new FormControl(\"\");\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n userList_req: {};\r\n users: any=[];\r\n userList: any=[];\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n public gs: GlobalStateService,\r\n private service: TicketService,\r\n private toast: ToastService\r\n ) {}\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n \"userType\": this.users.userType, \"isActive\": true\r\n // clientId: this.headerFilters.client,\r\n // limit: 10000,\r\n // offset: 1,\r\n // userType: this.users.userType,\r\n // FilterByStatus:'isActive'\r\n };\r\n this.getuserlist();\r\n }\r\n },\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n getuserlist() {\r\n this.service\r\n .getUserActiveList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n });\r\n }\r\n\r\n assignCsm() {\r\n let obj = {\r\n tickets: this.ticketId,\r\n user: this.csmSelectInput.value,\r\n };\r\n this.service\r\n .getAssignTicket(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n onCsmSelect(selectedCsm: any) {\r\n this.csmSelectInput.setValue(selectedCsm?._id);\r\n }\r\n cancel() {\r\n this.activeModal.close(\"submit\");\r\n }\r\n}\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M32 37V35C32 33.9391 31.5786 32.9217 30.8284 32.1716C30.0783 31.4214 29.0609 31 28 31H21C19.9391 31 18.9217 31.4214 18.1716 32.1716C17.4214 32.9217 17 33.9391 17 35V37M36 24V30M39 27H33M28.5 23C28.5 25.2091 26.7091 27 24.5 27C22.2909 27 20.5 25.2091 20.5 23C20.5 20.7909 22.2909 19 24.5 19C26.7091 19 28.5 20.7909 28.5 23Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Assign Ticket</a>\r\n <p class=\"text-sub\">Assign the ticket to a particular user</p>\r\n <div class=\"mt-5 w-100\">\r\n <!-- <lib-reactive-select [formControl]=\"csmSelectInput\" [idField]=\"'email'\" [nameField]=\"'userName'\" [data]=\"csmUserList\" ></lib-reactive-select> -->\r\n\r\n <!-- <select [formControl]=\"csmSelectInput\" class=\"form-select border-val my-3\">\r\n <option [value]=\"user.email\" *ngFor=\"let user of csmUserList\">{{user.userName}}</option>\r\n </select> -->\r\n\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'_id'\"\r\n (selected)=\"onCsmSelect($event)\" ></lib-select>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!csmSelectInput.value\" (click)=\"assignCsm()\">Submit</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'lib-comment-model',\r\n templateUrl: './comment-model.component.html',\r\n styleUrl: './comment-model.component.scss'\r\n})\r\nexport class CommentModelComponent {\r\n @Input() ticketId: any;\r\n comment:any= \"\"\r\n private readonly destroy$ = new Subject();\r\n constructor(private activeModal:NgbActiveModal, private service: TicketService,\r\n private toast: ToastService){\r\n\r\n }\r\n\r\n cancel(){\r\n this.activeModal.close();\r\n }\r\n commentSubmit(){\r\n if(this.comment == ''){\r\n return this.toast.getErrorToast(\"Please Enter Any comment\")\r\n }\r\n let obj = {\r\n \"ticketId\": this.ticketId,\r\n \"primary\": \"\",\r\n \"secondary\": [],\r\n \"comment\": this.comment,\r\n \r\n }\r\n this.service\r\n .updateTicketIssue(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n \r\n}\r\n\r\n\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Comment</a>\r\n <p class=\"text-sub\">Add comment for the ticket</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nconst ZIP_TYPE = 'application/zip'\r\nconst ZIP_EXTENSION = '.zip'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelService {\r\n\r\n \r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n console.log(buffer, fileName);\r\n \r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n private saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n public saveAsZipFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: ZIP_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'Images'+ ZIP_EXTENSION);\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AddCsmModalComponent } from \"../add-csm-modal/add-csm-modal.component\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CommentModelComponent } from \"../comment-model/comment-model.component\";\r\n@Component({\r\n selector: \"lib-tickets\",\r\n templateUrl: \"./tickets.component.html\",\r\n styleUrl: \"./tickets.component.scss\",\r\n})\r\nexport class TicketsComponent implements OnInit, OnDestroy {\r\n type = \"Infra\";\r\n searchValue: any = \"\";\r\n selectedTab: any = \"total\";\r\n // paginationVariables\r\n itemsPerPage = 10;\r\n currentPage = 1;\r\n totalItems = 0;\r\n paginationSizes = [10, 20, 30];\r\n pageSize = 10;\r\n private readonly destroy$ = new Subject();\r\n assignTicket: boolean = false;\r\n filterByStores: any = [];\r\n filterByinstalled: any = [];\r\n filterByStatus: any = [];\r\n filterByQueryType: any = [];\r\n issueType: any = [];\r\n sortedColumn: string;\r\n sortDirection: number;\r\n headerFilters: any;\r\n userList_req: any;\r\n userList: any = [];\r\n dataObject: any = [];\r\n storeList: any = [];\r\n statusType: { text: string; id: string }[];\r\n typeName: string;\r\n users: any;\r\n limit: number = 10;\r\n offset: number = 1;\r\n sortBy: any = -1;\r\n sortColumName: any = \"\";\r\n listArray: any = [];\r\n tableListArray: any = [];\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n selectAll: any = false;\r\n assignStores: any = [];\r\n issueTypeList: any = [];\r\n queryTypeList: any = [];\r\n ClusterList: any[];\r\n filterByCluster: any[];\r\n showClusterFilter: boolean = false\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public gs: GlobalStateService,\r\n private modalService: NgbModal,\r\n private service: TicketService,\r\n private excelservice: ExcelService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.route?.queryParams\r\n ?.pipe(takeUntil(this.destroy$))\r\n .subscribe((params) => {\r\n this.type = params.type;\r\n this.filterByStores = []; this.storeList = []\r\n this.filterByinstalled = []; this.statusType = []\r\n this.filterByStatus = []; this.userList = [];\r\n this.issueType = []; this.issueTypeList = []\r\n this.filterByQueryType = []; this.queryTypeList = [];\r\n this.filterByCluster = []; this.ClusterList = []\r\n this.dataObject = []\r\n this.gs.manageRefreshTrigger.next(true)\r\n this.getInitload();\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n limit: 10000,\r\n offset: 1,\r\n userType: this.users.userType,\r\n };\r\n this.getstoreFilter();\r\n this.getAllGroups()\r\n }\r\n },\r\n });\r\n if (this.type === \"installation\") {\r\n this.typeName = \"Installed By\";\r\n this.statusType = [\r\n { text: \"Onboarded\", id: \"onboarded\" },\r\n { text: \"Paired\", id: \"paired\" },\r\n { text: \"Installationfailed\", id: \"installationfailed\" },\r\n { text: \"Deployed\", id: \"deployed\" },\r\n ];\r\n } else {\r\n this.typeName = \"Resolved By\";\r\n\r\n if (this.users.userType === \"tango\" && this.type === 'infra') {\r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Refresh Ticket\", id: \"refreshticket\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n } else {\r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n }\r\n this.issueTypeList = [\r\n { text: \"High Count\", id: \"highcount\" },\r\n { text: \"Low Count\", id: \"lowcount\" },\r\n ];\r\n this.queryTypeList = [\r\n { text: \"Internal\", id: \"internal\" },\r\n { text: \"External\", id: \"external\" },\r\n ];\r\n }\r\n });\r\n }\r\n getInitload() {\r\n this.searchValue = \"\";\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.selectedTab = \"total\";\r\n this.loading = true;\r\n this.noData = false;\r\n this.sortedColumn = '';\r\n }\r\n getstoreFilter() {\r\n this.service\r\n .getSotresList({ issueType: this.type, clientId: this.headerFilters.clients })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.storeList = res?.data?.data;\r\n this.storeList.forEach((element: any) => {\r\n element.text = element.storeId;\r\n element.id = element.storeId;\r\n });\r\n if (this.users.userType === \"tango\") {\r\n this.getuserlist();\r\n } else {\r\n if (this.type === 'installation') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n } else if (this.type === 'infra' || this.type === 'dataMismatch') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n } else if (this.type === 'mat') {\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n }\r\n }\r\n this.getTable();\r\n } else {\r\n this.getTable();\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n }\r\n getuserlist() {\r\n this.service\r\n .getUserList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n this.userList?.forEach((element: any) => {\r\n element.text = element.userName;\r\n element.id = element.email;\r\n });\r\n }\r\n\r\n if (this.users.userType === \"tango\" && (this.type === 'installation')) {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n } else if (this.users.userType === \"tango\" && this.type === 'infra') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n } else if (this.users.userType === \"tango\" && this.type === 'dataMismatch') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Query Type\", Issues: this.queryTypeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n } else if (this.type === 'mat') {\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n\r\n ];\r\n if (this.showClusterFilter) {\r\n this.dataObject.push({ Description: \"Clusters\", Issues: this.ClusterList },)\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.getTable();\r\n }\r\n\r\n onSort(column: string) {\r\n if (this.sortedColumn === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getTable();\r\n }\r\n exportXLSX() {\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: true,\r\n };\r\n if (this.sortedColumn) {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n if (this.filterByCluster?.length) {\r\n obj.filterByCluster = this.filterByCluster ? this.filterByCluster : [];\r\n }\r\n if (this.type === \"installation\" || this.type === \"infra\") {\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n }\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n } else if (this.type === \"mat\") {\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n }\r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByQueryType?.length) {\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n if (this.filterByCluster?.length) {\r\n obj.filterByCluster = this.filterByCluster ? this.filterByCluster : [];\r\n }\r\n }\r\n if (this.type === \"installation\") {\r\n this.service\r\n .exportInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Installation')\r\n\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .exportInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n\r\n this.excelservice.saveAsExcelFile(res, 'Infra')\r\n\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .exportMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n\r\n this.excelservice.saveAsExcelFile(res, 'Mat')\r\n\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === 'dataMismatch') {\r\n this.service\r\n .exportDataMismatchList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Data Mismatch')\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n selectedTabs(type: any) {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n if (this.type === 'dataMismatch') {\r\n this.selectedTab = type.name.replace(/\\s+/g, '').toLocaleLowerCase();\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.getTable();\r\n this.transformName(type);\r\n } else {\r\n this.selectedTab = type.name;\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.getTable();\r\n }\r\n }\r\n transformName(name: string): string {\r\n return name.toLocaleLowerCase().replace(/\\s+/g, '');\r\n\r\n }\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset);\r\n this.offset = Number(pageOffset);\r\n this.limit = 10;\r\n this.getTable();\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize);\r\n this.limit = Number(pageSize);\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.getTable();\r\n }\r\n selectAllStore(event: any) {\r\n this.selectAll = event.target.checked;\r\n this.tableListArray.forEach((obj: any) => (obj.checked = this.selectAll));\r\n // If all checkboxes are checked, assign all ticketIds to assignStores, otherwise clear assignStores\r\n this.assignStores = this.selectAll\r\n ? this.tableListArray.map((obj: any) => obj.ticketId)\r\n : [];\r\n this.assignTicket = this.selectAll; // Update assignTicket based on selectAll state\r\n }\r\n getAllGroups() {\r\n this.ClusterList = [];\r\n if (this.headerFilters?.clients[0] && this.headerFilters?.clients[0] != '') {\r\n this.service.getclusters({ clientId: this.headerFilters?.clients[0], group: [], city: [] }).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.showClusterFilter = true;\r\n this.ClusterList = res?.data?.groupData\r\n this.ClusterList.forEach((element: any) => {\r\n element.text = element.groupName;\r\n element.id = element.groupName;\r\n });\r\n } else {\r\n this.ClusterList = [];\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n updateCheck(event: any, ticketId: any) {\r\n const ticket = this.tableListArray.find(\r\n (obj: any) => obj.ticketId === ticketId\r\n );\r\n\r\n if (ticket) {\r\n ticket.checked = event.target.checked;\r\n // If the checkbox is checked, add or remove the corresponding array from the selected arrays\r\n if (event.target.checked) {\r\n this.assignStores.push(ticketId);\r\n } else {\r\n const index = this.assignStores.indexOf(ticketId);\r\n if (index !== -1) {\r\n this.assignStores.splice(index, 1);\r\n }\r\n }\r\n // Update selectAll based on the current state of checkboxes\r\n this.selectAll = this.tableListArray.every((obj: any) => obj.checked);\r\n // Update assignTicket based on whether any individual ticket checkbox is checked\r\n this.assignTicket = this.tableListArray.some((obj: any) => obj.checked);\r\n }\r\n }\r\n\r\n addAssignTicket() {\r\n const modalRef = this.modalService.open(AddCsmModalComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop: \"static\"\r\n });\r\n modalRef.componentInstance.ticketId = this.assignStores;\r\n modalRef.result.then((result) => {\r\n if (result === \"submit\") {\r\n this.searchValue = \"\";\r\n this.assignStores = [];\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n this.getTable();\r\n }\r\n });\r\n }\r\n\r\n applyFilters(event: any) {\r\n if (event?.length) {\r\n event.forEach((element: any) => {\r\n if (element.Description === \"Store ID\") {\r\n this.filterByStores = element.Issues.map((val: any) => val?.id);\r\n }\r\n if (this.type !== 'installation') {\r\n if (element.Description === \"Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n } if (this.type === 'installation') {\r\n if (element.Description === \"Deployed Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n }\r\n if (this.users.userType === \"tango\" && (this.type === 'installation' || this.type === 'infra')) {\r\n if (element.Description === this.typeName) {\r\n this.filterByinstalled = element.Issues.map((val: any) => val?.id);\r\n }\r\n } else {\r\n this.filterByinstalled = [];\r\n }\r\n if (element.Description === \"Query Type\") {\r\n this.filterByQueryType = element.Issues.map((val: any) => val?.id);\r\n }\r\n if (element.Description === \"Clusters\") {\r\n this.filterByCluster = element.Issues.map((val: any) => val?.id);\r\n }\r\n });\r\n }\r\n\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.getTable();\r\n }\r\n\r\n getTable() {\r\n this.loading = true;\r\n this.noData = false;\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: false,\r\n };\r\n if (this.sortedColumn) {\r\n if (this.type === 'dataMismatch') {\r\n obj.sortColumnName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n } else {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n }\r\n if (this.type === \"installation\" || this.type === \"infra\") {\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n }\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n } else if (this.type === \"mat\") {\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n }\r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByQueryType?.length) {\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n }\r\n if (this.filterByCluster?.length) {\r\n obj.filterByCluster = this.filterByCluster ? this.filterByCluster : [];\r\n }\r\n if (this.type === \"installation\") {\r\n this.service\r\n .getInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if (res.data.result.length === 0) {\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .getInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if (res.data.result.length === 0) {\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .getMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] } this.loading = false;\r\n this.noData = false;\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n } else if (this.type === 'dataMismatch') {\r\n this.service\r\n .getDataMismathList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n if (res.data.result.length === 0) {\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => { },\r\n });\r\n }\r\n }\r\n\r\n routeToStore(storeId: any, clientId: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], {\r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n routeToMat(storeId: any, clientId: any, clientName: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName : 'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], {\r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n commentModal(obj: any) {\r\n const modalRef = this.modalService.open(CommentModelComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop: \"static\"\r\n });\r\n modalRef.componentInstance.ticketId = obj.ticketId;\r\n modalRef.result.then((result) => {\r\n })\r\n }\r\n\r\n tickets(type: any, clientId: any, storeId: any, clientName: any) {\r\n if (type === 'mat') {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName : 'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], {\r\n queryParams: { storeId: storeId }\r\n });\r\n } else {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName : 'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], {\r\n queryParams: { storeId: storeId, type: type }\r\n });\r\n }\r\n }\r\n\r\n clientTickets(clientId: any, storeId: any, clientName: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName : 'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores']);\r\n }\r\n storeTickets(clientId: any, storeId: any, clientName: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName : 'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/cameras'], {\r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n userTickets(clientId: any, storeId: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/users']);\r\n }\r\n\r\n setpageSize() {\r\n if (this.totalItems < 10) {\r\n return this.totalItems;\r\n } else {\r\n return this.pageSize;\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span *ngIf=\"type !=='dataMismatch' && type !== 'mat'\" class=\"card-label mb-2\">{{type | titlecase}}</span>\r\n <span *ngIf=\"type ==='dataMismatch'\" class=\"card-label mb-2\">Data Mismatch</span>\r\n <span *ngIf=\"type ==='mat'\" class=\"card-label mb-2\">Employee Mat</span>\r\n\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"!assignTicket\" class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchValue\" />\r\n <lib-filters *ngIf=\"users.userType === 'tango' && userList?.length || users.userType === 'client' && storeList?.length\" [dataObject]=\"dataObject\"\r\n (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"assignTicket\" class=\"d-flex\">\r\n <button type=\"button\" (click)=\"addAssignTicket()\"\r\n class=\"btn mx-2 btn-primary rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99984 4.1665V15.8332M4.1665 9.99984H15.8332\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Assign Ticket</span>\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n\r\n\r\n <ul *ngIf=\"!loading && listArray?.length && type !== 'mat' && type !== 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"{'active': selectedTab === obj.name}\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === obj.name ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <ul *ngIf=\"!loading && listArray?.length && type === 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"selectedTab === transformName(obj.name) ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === transformName(obj.name) ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive mt-5\">\r\n <table class=\"table bottom-border text-nowrap \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" >\r\n \r\n <input *ngIf=\"this.users.userType ==='tango'\"\r\n class=\"form-check-input cursor-pointer me-4\" type=\"checkbox\" [(ngModel)]=\"selectAll\"\r\n (click)=\"selectAllStore($event)\"> <span class=\"cursor-pointer\" (click)=\"onSort('ticketId')\"> Ticket ID <svg\r\n [ngClass]=\"sortedColumn === 'ticketId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'ticketId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> \r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type !=='dataMismatch'\" (click)=\"onSort('issueDate')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='infra'\" (click)=\"onSort('createdAt')\"> Created Time\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='infra'\" (click)=\"onSort('issueClosedDate')\"> Closed Date\r\n <svg [ngClass]=\"sortedColumn === 'issueClosedDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueClosedDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='infra'\" (click)=\"onSort('issueClosedDate')\"> Closed Time\r\n <svg [ngClass]=\"sortedColumn === 'issueClosedDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueClosedDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('createdAt')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" ><span (click)=\"onSort('issueDate')\">Issue Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientName')\">Brand Name<svg\r\n [ngClass]=\"sortedColumn === 'clientName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientId')\">Brand ID<svg\r\n [ngClass]=\"sortedColumn === 'clientId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Name<svg\r\n [ngClass]=\"sortedColumn === 'storeName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeId')\">Store ID<svg\r\n [ngClass]=\"sortedColumn === 'storeId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && (type ==='infra'||type ==='dataMismatch'||type ==='mat')\" (click)=\"onSort('userName')\">Resolved By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && type ==='installation'\" (click)=\"onSort('userName')\">Installed By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('issueType')\">Issue Type\r\n <svg [ngClass]=\"sortedColumn === 'issueType' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueType' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('type')\">Query Type\r\n <svg [ngClass]=\"sortedColumn === 'type' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'type' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('reportedFootfall')\">Reported Footfall\r\n <svg [ngClass]=\"sortedColumn === 'reportedFootfall' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'reportedFootfall' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('mappedCount')\">Unique Images\r\n <svg [ngClass]=\"sortedColumn === 'mappedCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'mappedCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('successPercentage')\">Success Percentage\r\n <svg [ngClass]=\"sortedColumn === 'successPercentage' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'successPercentage' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='installation'\" (click)=\"onSort('status')\">Deployed Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch' ||type ==='mat'|| type ==='infra'\" class=\"cursor-pointer\" (click)=\"onSort('status')\">Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n<!-- added config and total downtime as per the prioduct team requirement -->\r\n <th *ngIf=\"type==='infra'\">Configured Ticket Time\r\n </th> \r\n\r\n <th *ngIf=\"type==='infra'\" >Total Downtime\r\n </th>\r\n<!-- -->\r\n\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('primaryIssue')\">Primary Issues<svg\r\n [ngClass]=\"sortedColumn === 'primaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'primaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('secondaryIssue')\">Secondary Issues<svg\r\n [ngClass]=\"sortedColumn === 'secondaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'secondaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type!=='installation'\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of tableListArray\">\r\n <td>\r\n <input *ngIf=\"this.users.userType ==='tango'\" class=\"form-check-input cursor-pointer me-4 mt-3\" type=\"checkbox\" [(ngModel)]=\"obj.checked\"\r\n (change)=\"updateCheck($event,obj?.ticketId)\">\r\n <span *ngIf=\"type === 'dataMismatch' || type === 'mat' || type === 'infra'\"\r\n class=\"txt-light-primary cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\">\r\n {{obj.ticketId}}\r\n </span>\r\n <span *ngIf=\"type === 'installation'\">\r\n {{obj.ticketId}}\r\n </span>\r\n </td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.issueDate |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type !== 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}\r\n </td>\r\n <td *ngIf=\"type === 'infra'\">\r\n {{obj?.createdAt |\r\n date: 'hh:mm a' | uppercase}}\r\n </td>\r\n <td *ngIf=\"type === 'infra'\">\r\n {{obj?.issueClosedDate?(obj?.issueClosedDate |\r\n date: 'dd MMM, yyyy'):\"--\"}}\r\n </td>\r\n <td *ngIf=\"type === 'infra'\">\r\n {{obj?.issueClosedDate?(obj?.issueClosedDate |\r\n date: 'hh:mm a' | uppercase):\"--\"}}\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" (click)=\"clientTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.clientName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">{{obj.clientId}}\r\n </td>\r\n <td>\r\n <div class=\"table-title cursor-pointer\" (click)=\"storeTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.storeName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td>{{obj.storeId}}\r\n </td>\r\n \r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" >\r\n <span >\r\n {{obj.userName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='lowcount'\" >Low Count</td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='highcount'\">High Count</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.type ? obj?.type:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.reportedFootfall ? obj?.reportedFootfall:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.mappedCount ? obj?.mappedCount:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.successPercentage ? obj?.successPercentage:'--'}}</td>\r\n <td *ngIf=\"type==='installation'\">\r\n <span *ngIf=\"obj.installationStatus ==='paired' || obj.installationStatus ==='onboarded'\"\r\n class=\"badge badge-light-primary mx-4\">{{obj.installationStatus | titlecase}}</span>\r\n <span *ngIf=\"obj.installationStatus ==='live'\" class=\"badge badge-light-success mx-4\">Live</span>\r\n <span *ngIf=\"obj.installationStatus ==='installationfailed'\"\r\n class=\"badge badge-light-warning mx-4\">Installationfailed</span>\r\n <span *ngIf=\"obj.installationStatus ==='deployed'\"\r\n class=\"badge badge-light-success mx-4 text-capitalize\">deployed</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type==='mat' || type==='dataMismatch'\">\r\n <span *ngIf=\"obj.status ==='open'\" class=\"badge badge-light-danger\">Open</span>\r\n <span *ngIf=\"obj.status ==='closed'\" class=\"badge badge-light-success\">Closed</span>\r\n <span *ngIf=\"obj.status ==='inprogress'\" class=\"badge badge-light-primary\">In\r\n Progress</span>\r\n </td>\r\n <td *ngIf=\"type==='infra'\">\r\n{{obj.configuredDownTime?obj.configuredDownTime*60:0 || 0 }} {{obj.configuredDownTime > 1? 'mins' : 'min'}} \r\n </td>\r\n <td *ngIf=\"type==='infra'\"> \r\n{{obj.totalDownTime || 0 }} {{obj.totalDownTime > 1? 'mins' : 'min'}} \r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <div>\r\n <span *ngIf=\"obj.primaryIssue !=='-'\">{{obj.primaryIssue ? obj.primaryIssue :'Issue not identified'}}</span>\r\n <span *ngIf=\"obj.primaryIssue ==='-'\">Issue not identified</span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <span *ngIf=\"obj.secondaryIssue\">{{obj.secondaryIssue}}</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type ==='dataMismatch'\">\r\n <span class=\"mx-2 cursor-pointer\" *ngIf=\"this.users.userType ==='tango'\" (click)=\"commentModal(obj)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M17.6431 12.5C17.6431 12.942 17.4675 13.366 17.1549 13.6785C16.8423 13.9911 16.4184 14.1667 15.9764 14.1667H5.9764L2.64307 17.5V4.16667C2.64307 3.72464 2.81866 3.30072 3.13122 2.98816C3.44378 2.67559 3.86771 2.5 4.30973 2.5H15.9764C16.4184 2.5 16.8423 2.67559 17.1549 2.98816C17.4675 3.30072 17.6431 3.72464 17.6431 4.16667V12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </td>\r\n <td *ngIf=\"type === 'mat'\">\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"routeToMat(obj.storeId,obj.clientId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span> \r\n \r\n </td>\r\n \r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"setpageSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>","import { Component,HostListener, OnDestroy, OnInit,Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { takeUntil, Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-retrigger',\r\n templateUrl: './re-trigger.component.html',\r\n styleUrl: './re-trigger.component.scss'\r\n})\r\nexport class ReTriggerComponent implements OnInit,OnDestroy {\r\n\r\n dropDown: boolean = false;\r\n loading:boolean = true;\r\n noData:boolean = false;\r\n dropdownItems:any[] = [];\r\n selectedItem: any = 'Audit';\r\n selectedData:any = 'To Queue';\r\n standardData:any = ['To Queue','To User']\r\n Comment:any = '';\r\n userId:any = '';\r\n private readonly destroy$ = new Subject();\r\n @Input() reTrigerData:any;\r\n userList: any = [];\r\n\r\n constructor(public activeModal:NgbActiveModal,private service:TicketService){\r\n\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const\r\n target = event.target as HTMLElement;\r\n if (!target.closest('.dropDown')) {\r\n this.dropDown = false;\r\n }\r\n }\r\n\r\nngOnInit(){\r\n if(this.reTrigerData?.data?.auditType ==='ReAudit'){\r\n this.dropdownItems = ['Audit','ReAudit']\r\n }else if(this.reTrigerData?.data?.auditType ==='Audit'){\r\n this.dropdownItems = ['Audit']\r\n }\r\n this.getuserList();\r\n}\r\n\r\ngetuserList(){\r\n this.service.getuserList().subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n },\r\n })\r\n}\r\n\r\nngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n}\r\n\r\nselectRadio(value:any){\r\n this.selectedData = value;\r\n}\r\n\r\nopenDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n}\r\n\r\nselectItem(value: any) {\r\n this.selectedItem = value;\r\n this.dropDown = false;\r\n}\r\n\r\nonReportSelect(event:any){\r\n this.userId = event;\r\n}\r\n\r\ncloseModal(){\r\n let data:any = {\r\n fileDate: this.reTrigerData?.data?.fileDate,\r\n storeId: this.reTrigerData?.data?.storeId,\r\n auditType: this.selectedItem,\r\n zoneName : this.reTrigerData?.data?.zoneName,\r\n triggerType: this.selectedData === 'To Queue' ? 'queue' : 'user',\r\n totalCount: this.selectedItem ==='Audit' ? this.reTrigerData?.data?.beforeCount : this.reTrigerData?.data?.afterCount,\r\n comments: this.Comment,\r\n moduleType : this.reTrigerData?.data?.moduleType\r\n }\r\n this.selectedData === 'To User' ? data.userId = this.userId.userId : ''\r\n this.activeModal.close(data);\r\n}\r\n\r\n}\r\n","<div class=\"card\">\r\n \r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"card-title\">Re-trigger File</div>\r\n <div class=\"text-sub\">Re-trigger the file to a queue or other users</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"\">\r\n <label class=\"label\">Push Form</label>\r\n <div class=\"position-relative w-100 mt-3 mb-5\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedItem}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedItem === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 cursor-pointer d-flex mb-5\">\r\n <div *ngFor=\"let data of standardData\" (click)=\"selectRadio(data)\" class=\"d-flex align-items-center me-20\">\r\n <input [checked]=\"selectedData === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-3 standard\">{{data}}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedData === 'To User'\" class=\"w-100 mb-5\">\r\n <label for=\"infraDownTime\" class=\"label mb-3\">Select User<span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'userId'\"\r\n (selected)=\"onReportSelect($event)\" [selectedValues]=\"[userId]\"></lib-select>\r\n </div>\r\n <div>\r\n <label class=\"label mb-3\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"Comment\"></textarea>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"activeModal.dismiss()\">Cancel</button>\r\n <button *ngIf=\"selectedData === 'To User'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!userId || !Comment\" (click)=\"closeModal()\">Submit</button>\r\n <button *ngIf=\"selectedData === 'To Queue'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!Comment\" (click)=\"closeModal()\">Submit</button>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-count',\r\n templateUrl: './count.component.html',\r\n styleUrl: './count.component.scss'\r\n})\r\nexport class CountComponent implements OnInit,OnDestroy {\r\n\r\n private readonly destroy$ = new Subject();\r\n @Input() data:any;\r\n loading:any = true;\r\n noData:any=false;\r\n auditImages:any;\r\n \r\n constructor(private Service:TicketService,private toast:ToastService,private excel : ExcelService,private cd: ChangeDetectorRef){}\r\n ngOnInit(){\r\n this.getAuditImages();\r\n }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n getAuditImages(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : false,\r\n moduleType : this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n this.Service.getAuditImages(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res?.code === 200){\r\n this.auditImages = res?.data?.result;\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n })\r\n \r\n }\r\n \r\n exportTable(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : true,\r\n moduleType: this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n let type = this.data?.type === 'before' ? 'BeforeCount' : 'AfterCount'\r\n this.Service.ExportAuditImagesasxlsx(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res){\r\n this.excel.saveAsZipFile(res,type)\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.error)\r\n },\r\n })\r\n \r\n }\r\n \r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title d-grid\">\r\n <div *ngIf=\"data?.type\" class=\"card-label\">{{data?.type | titlecase}} Count - {{data?.storeId}}</div>\r\n <div class=\"text-sub\">{{data?.fileDate | customDateFormat}}</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button *ngIf=\"!noData\" type=\"button\" (click)=\"exportTable()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let images of auditImages;let i=index\" style=\"padding: 10px;\">\r\n <img class=\"mx-3 my-3 img\" [src]=\"images?.imgPath\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{images?.imgName}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { ReTriggerComponent } from '../re-trigger/re-trigger.component';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CountComponent } from '../count/count.component';\r\n\r\n\r\n@Component({\r\n selector: 'lib-audit-metrics',\r\n templateUrl: './audit-metrics.component.html',\r\n styleUrl: './audit-metrics.component.scss'\r\n})\r\nexport class AuditMetricsComponent implements OnInit,OnDestroy {\r\n noData:boolean = false;\r\n loading:boolean = true;\r\n\r\n storesData:any = [];\r\n activity:any = [\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'},\r\n {type:'Re-Audit',FileDate:'28-10-2023',Time:'03:24 pm',beforeCout:'350',AfterCount:'120'},\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'}\r\n ]\r\n @ViewChild('activitylog') activitylog:any;\r\n private readonly destroy$ = new Subject();\r\n headerFilter: any;\r\n sortColumName: any = '';\r\n sortBy: any = 1;\r\n filterByClient: any = [];\r\n filterByStatus: any = [];\r\n pagination: any = [10, 20, 30];\r\n searchTerm: any;\r\n limit:any = 10;\r\n offset:any = 1;\r\n selectedValue: string;\r\n dayjs = dayjs;\r\n filterByStore: any = [];\r\n totalCount: any; \r\n selectedTab:any = '';\r\n\r\n dataObject:any = [\r\n { Description: 'Module Type',type:'single', Issues: [{id:'traffic', text: \"Traffic\"},{id:'zone', text: \"Zone\" }]},\r\n { Description: 'Clients', Issues: [] },\r\n { Description: 'Status', Issues: [{id:'closed', text: \"Completed\" }, {id:'inprogress', text: \"Inprogress\" },{id:'drafted', text: \"Draft\" },{id:'assigned', text: \"Assigned\" },{id:'not_assign', text: \"Not Assigened\" },{id:'skipped', text: \"Skip\"},] }\r\n ];\r\n \r\n clientList: any;\r\n selectedType: any = 'traffic';\r\n\r\n constructor(private gs:GlobalStateService,private modalService:NgbModal,private service: TicketService,private toast:ToastService,private excel:ExcelService){\r\n \r\n }\r\n\r\n ngOnInit(){\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if(data!=null){\r\n this.headerFilter = data\r\n this.metricsList();\r\n }\r\n })\r\n }\r\n\r\n metricsList(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: this.limit,\r\n offset: this.offset,\r\n isExport: false\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.getclientList();\r\n this.service.getstoreMetrics(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code === 200){\r\n this.storesData = res?.data?.result;\r\n this.totalCount = res?.data?.count;\r\n if(!this.storesData?.length){\r\n this.noData = true;\r\n }\r\n if(this.totalCount < 10){\r\n this.pagination = [this.totalCount]\r\n }else{\r\n this.pagination = [10, 20, 30]\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n}\r\n\r\nsetItemsperPage(){\r\n if(this.totalCount < 10){\r\n return this.totalCount;\r\n }else{\r\n return this.limit;\r\n }\r\n}\r\n\r\ngetclientList(){\r\n this.service.getclientList().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code ===200){\r\n this.clientList = res?.data?.result;\r\n const issues = this.clientList.map((obj: any) => ({ text: obj.clientName,id:obj.clientId }));\r\n const uniqueIssues:any[] = [];\r\n const Clients = new Set();\r\n issues.forEach((issue:any) => {\r\n if (!Clients.has(issue.text)) {\r\n Clients.add(issue.text);\r\n uniqueIssues.push(issue);\r\n }\r\n });\r\n const filtredObject = (this.dataObject.find((obj: any) => obj.Description === \"Clients\"))\r\n filtredObject.Issues = uniqueIssues;\r\n }\r\n },\r\n error:(err:any) => {\r\n \r\n },\r\n})\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n receiveData(data:any) {\r\n this.filterByClient = data.find((obj:any) => obj.Description === \"Clients\")?.Issues.map((item: any) => item?.id);\r\n this.filterByStatus = data.find((obj:any) => obj.Description === \"Status\")?.Issues?.map((item: any) => item?.id);\r\n this.selectedType = data.find((obj:any) => obj.Description ==='Module Type')?.Issues?.id;\r\n this.metricsList();\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.pagination.offset = pageOffset;\r\n this.metricsList();\r\n }\r\n \r\n onPageSizeChange(pageSize: any) {\r\n this.pagination.limit = pageSize;\r\n this.pagination.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n exportXLSX(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: 10000,\r\n offset: this.offset,\r\n isExport: true\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.service.getstoreMetricsExport(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res){\r\n this.excel.saveAsExcelFile(res,'AuditMetrics')\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n\r\n selectedTabs(data:any){\r\n if(data === 'all'){\r\n this.selectedTab = '';\r\n }else{\r\n this.selectedTab = data;\r\n }\r\n this.limit = 10;\r\n this.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n searchData(){\r\n this.searchTerm = this.searchTerm;\r\n this.metricsList();\r\n }\r\n\r\n openBeforecount(value:any) {\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\n modalRef.componentInstance.data ={\r\n type : 'before',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'BC'\r\n }\r\n}\r\nopenAftercount(value:any){\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\nmodalRef.componentInstance.data ={\r\n type : 'after',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'AC'\r\n}\r\n}\r\n\r\nopenView(){\r\n const modalRef = this.modalService.open(this.activitylog)\r\n}\r\n\r\nopenreTrigger(value:any){\r\n const modalRef = this.modalService.open(ReTriggerComponent,{\r\n centered:true,\r\n // size:''\r\n })\r\n modalRef.componentInstance.reTrigerData ={\r\n type : 'after',\r\n data: value,\r\n selectedType : this.selectedType\r\n }\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res) {\r\n this.service.auditretrigger(res).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200){\r\n this.toast.getSuccessToast(res?.data?.result);\r\n this.metricsList();\r\n } \r\n },\r\n error:(err:any)=> {\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n } )\r\n}\r\n\r\nstatusBadge(value:any){\r\n let AccountStatus = value;\r\n if(AccountStatus === 'closed'){\r\n return 'badge-light-success'\r\n }else if(AccountStatus === 'assigned' || AccountStatus === 'not Assigned'){\r\n return 'badge-light-warning'\r\n }else{\r\n return 'badge-light-primary'\r\n }\r\n}\r\n\r\nsortData(value:any){\r\n this.sortColumName = value\r\n this.sortBy *= -1;\r\n this.metricsList();\r\n}\r\n\r\n\r\n}","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Audit Metrics</span>\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchTerm\" />\r\n \r\n <lib-filters *ngIf=\"clientList\" [dataObject]=\"dataObject\" (appliedFilters)=\"receiveData($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" (click)=\"selectedTabs('all')\">\r\n <a [ngClass]=\"selectedTab === '' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n All <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === '' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.totalauditCount ? totalCount?.totalauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('Audit')\">\r\n <a [ngClass]=\"selectedTab === 'Audit' ? 'active' :''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'Audit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.auditCount ? totalCount?.auditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('ReAudit')\">\r\n <a [ngClass]=\"selectedTab === 'ReAudit' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Re Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'ReAudit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.reauditCount ? totalCount?.reauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-5\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>File Date</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeName')\">\r\n Store Name\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== 1 || sortColumName !== 'storeName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeId')\">\r\n Store Id\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== 1 || sortColumName !== 'storeId'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userName')\">\r\n User Name\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userEmail')\">\r\n User Email\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== 1 || sortColumName !== 'userEmail'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>BC</th>\r\n <th>AC</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('accuracy')\">\r\n Accuracy\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== 1 || sortColumName !== 'accuracy'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('timeSpent')\">\r\n TimeSpent\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== 1 || sortColumName !== 'timeSpent'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>Audit Type</th>\r\n <th>Status</th>\r\n <th><span>Actions</span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of storesData\">\r\n <td>\r\n <div>{{ item?.fileDate ? item?.fileDate :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.storeName ? item?.storeName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{item?.storeId ? item?.storeId : 'NA'}}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userName ? item?.userName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userEmail ? item?.userEmail :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.beforeCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openBeforecount(item)\">\r\n {{ item?.beforeCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.afterCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openAftercount(item)\">\r\n {{ item?.afterCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.accuracy ?? '--' }}</div>\r\n </td>\r\n <td>{{ item?.timeSpent ? item?.timeSpent :'NA'}}</td>\r\n <td><span *ngIf=\"item?.auditType\" [ngClass]=\"item?.auditType === 'Audit' ? 'badge-light-success':'badge-light-warning'\" class=\"badge\">{{ item?.auditType }}</span></td>\r\n <td><span *ngIf=\"item?.status\" [ngClass]=\"statusBadge(item?.status)\" class=\"badge\">{{ item?.status | titlecase}}</span></td>\r\n <td><button class=\"btn btn-default btn-outline\" (click)=\"openView()\">View-Log</button>\r\n <button class=\"btn btn-default btn-outline ms-3\" [disabled]=\"item?.status === 'not_assign' || item?.status === 'assigned'\" (click)=\"openreTrigger(item)\">Re-Trigger</button></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"pagination\" [pageSize]=\"setItemsperPage()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n\r\n </div>\r\n</div>\r\n\r\n<ng-template #activitylog let-modal>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">Activity Log</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"cursor-pointer\" (click)=\"modal.dismiss()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div> \r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngFor=\"let log of activity\" class=\"d-flex mb-5 ms-5\">\r\n <div\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <!-- <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\"> -->\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'badge-light-success' : 'badge-light-primary'\" class=\"symbol-label badge-light-primary text-symbol\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'text-success badge badge-light-success' : 'text-primary badge badge-light-primary'\" class=\"fs-4 fw-normal\">\r\n {{log?.type?.slice(0,1) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"p-0 h-100 mt-1 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"activity-title fw-semibold mt-2 d-flex mb-4\">\r\n <span>{{log?.type}} </span><span class=\"ms-5 list\"><li>Fasila</li></span>\r\n </div>\r\n <div class=\"date-time mb-4\">\r\n {{log?.FileDate}} | {{log?.Time}}\r\n </div>\r\n <div class=\"\"><span class=\"badge badge-light-default fw-semibold\">Before Count : {{log?.beforeCout}}</span>\r\n <span class=\"badge badge-light-default fw-semibold ms-3\">After Count : {{log?.AfterCount}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, Provider, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TicketService } from '../../services/ticket.service';\r\n\r\nconst SELECT_CONTROL_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveSelectComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'lib-reactive-select',\r\n templateUrl: './reactive-select.component.html',\r\n styleUrl: './reactive-select.component.scss',\r\n providers: [SELECT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class ReactiveSelectComponent implements ControlValueAccessor, OnInit {\r\n\r\n private onTouched: Function;\r\n private onChanged: Function;\r\n @Input() isDisabled: boolean;\r\n @Input() idField: string\r\n @Input() nameField: string\r\n @Input() label: string\r\n @Input() data: any\r\n @Output() itemChange = new EventEmitter()\r\n protected isOpened: boolean = false\r\n protected selected: Record<string, any> | null = null\r\n protected selectedId: string | number\r\n instanceId: string;\r\n\r\n\r\n constructor(private apiService: TicketService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.apiService.dropDownTrigger.subscribe((e) => {\r\n if (e !== this.instanceId) {\r\n this.isOpened = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n\r\n writeValue(val: string | number): void {\r\n this.selectedId = val\r\n this.selected = this.data.filter((item: Record<string, any>) => item?.[this.idField] === val)[0]\r\n \r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn\r\n \r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled\r\n\r\n }\r\n\r\n onSelect(item: Record<string, any>) {\r\n this.onTouched()\r\n this.selected = item\r\n this.selectedId = item?.[this.idField]\r\n this.isOpened = false\r\n this.itemChange.next(this.selectedId)\r\n this.onChanged(this.selectedId)\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n // console.log(this.isDisabled)\r\n if (!this.isDisabled) {\r\n const targetElement = event.target as HTMLElement;\r\n if (!this.isComponentClicked(targetElement)) {\r\n this.isOpened = false;\r\n }\r\n }\r\n }\r\n\r\n isComponentClicked(targetElement: HTMLElement): boolean {\r\n const parentElement = targetElement.parentElement;\r\n if (parentElement) {\r\n const clickedOnComponent = parentElement.classList.contains('custom-select');\r\n if (clickedOnComponent) {\r\n return true;\r\n } else {\r\n return this.isComponentClicked(parentElement);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n openDropdown(){\r\n this.isOpened = !this.isOpened;\r\n this.apiService.dropDownTrigger.next(this.instanceId)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect text-nowrap\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4 \">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\n@Component({\r\n selector: 'lib-group-select',\r\n templateUrl: './group-select.component.html',\r\n styleUrl: './group-select.component.scss'\r\n})\r\nexport class GroupSelectComponent implements OnInit, OnChanges {\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.showDropdown = false;\r\n }\r\n }\r\n \r\n @Input() items: any\r\n @Input() searchField: string\r\n @Input() multi: boolean\r\n @Input() idField: string\r\n @Input() selectedValues: any = []\r\n @Input() disabled: boolean | undefined\r\n @Input() label: string\r\n @Output() selected = new EventEmitter<any>()\r\n filteredValues: any = []\r\n showDropdown: boolean\r\n searchValue: string\r\n instanceId: any;\r\n \r\n \r\n constructor(private cd: ChangeDetectorRef, private authService:TicketService) { }\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.authService.dropDownTrigger.subscribe((e)=>{ \r\n if(e !== this.instanceId){ \r\n this.showDropdown = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n \r\n if (changes['items'] && this.items?.length) {\r\n this.initializeItems();\r\n }\r\n if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) { \r\n this.updateSelectedValues();\r\n }\r\n }\r\n \r\n initializeItems() {\r\n this.filteredValues = this.items.map((item: any) => ({ ...item }));\r\n this.updateSelectedValues()\r\n }\r\n \r\n updateSelectedValues() { \r\n this.selectedValues?.forEach((selectedItem: any) => {\r\n const item = this.filteredValues?.find((filteredItem: any) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);\r\n if (item) {\r\n item.isSelected = true;\r\n }\r\n });\r\n \r\n }\r\n \r\n openDropdown(event: any) {\r\n this.authService.dropDownTrigger.next(this.instanceId)\r\n event.stopPropagation();\r\n this.showDropdown = !this.showDropdown;\r\n }\r\n \r\n onInput(event: any) {\r\n if (!event.target.value) {\r\n this.filteredValues = [...this.items];\r\n } else {\r\n const searchTerm = event.target.value.toLowerCase();\r\n this.filteredValues = this.items.filter((item: any) =>\r\n item[this.searchField].toLowerCase().includes(searchTerm)\r\n );\r\n }\r\n this.updateSelectedValues();\r\n this.cd.detectChanges();\r\n }\r\n \r\n onSelect(event: any, item: any) { \r\n if (this.multi) {\r\n if (event.currentTarget.checked) {\r\n this.selectedValues.push(item ); \r\n } else {\r\n this.selectedValues = this.selectedValues.filter((elem: any) => elem[this.idField] !== item[this.idField]);\r\n }\r\n } else {\r\n this.selectedValues = [{ ...item }];\r\n this.filteredValues.forEach((element:any) => {\r\n if(element[this.idField] !== item[this.idField]){\r\n element.isSelected = false\r\n }\r\n });\r\n this.showDropdown = false;\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const selectedItem = { ...value };\r\n delete selectedItem.isSelected;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n \r\n }\r\n \r\n onSelectAll(event: any) {\r\n const selectAll = event.currentTarget.checked;\r\n this.filteredValues.forEach((item: any) => item.isSelected = selectAll);\r\n \r\n if (selectAll) {\r\n this.selectedValues = [...this.filteredValues];\r\n } else {\r\n this.selectedValues = [];\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const { isSelected, ...selectedItem } = value;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n }\r\n \r\n \r\n emitSelectedValues(values: any[]) {\r\n if (this.multi) {\r\n this.selected.emit(values);\r\n } else {\r\n this.selected.emit(values[0]);\r\n }\r\n }\r\n \r\n checkIfAllSelected() {\r\n return this.filteredValues.every((item: any) => item.isSelected);\r\n }\r\n}\r\n","<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\"> <img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[0]?.[searchField]}}</span> \r\n <!-- <span *ngIf=\"selectedValues?.length > 1\" class=\"select-value mx-2\"><img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[1]?.[searchField]}}</span> -->\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">+{{selectedValues?.length -1}}</span> {{label}} \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\" >\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n [id]=\"instanceId\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ElementRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ToastService } from \"tango-app-ui-shared\";\r\nimport { ExcelService } from \"../../services/excel.service\";\r\nimport { FormBuilder, FormControl } from \"@angular/forms\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"lib-footfall-dic\",\r\n templateUrl: \"./footfall-dic.component.html\",\r\n styleUrl: \"./footfall-dic.component.scss\",\r\n})\r\nexport class FootfallDicComponent implements OnInit, OnDestroy {\r\n searchValue: any;\r\n loading: boolean = false;\r\n noData: boolean = false;\r\n sortedColumn: any = \"\";\r\n sortDirection: any = 1;\r\n sortedColumn1: any = \"\";\r\n sortDirection1: any = 1;\r\n footfallView: boolean = true;\r\n headerFilters: any;\r\n footfallList_req: any;\r\n form: any;\r\n selectedRevopsType: FormControl;\r\n revopsTypeArray: any = [\r\n { value: \"\", label: \"All\" },\r\n { value: \"duplicateImages\", label: \"Duplicates\" },\r\n { value: \"employee\", label: \"Employee/Staff\" },\r\n { value: \"houseKeeping\", label: \"House Keeping\" },\r\n { value: \"junk\", label: \"Junk\" },\r\n ];\r\n type: any = [\r\n { value: \"open\", label: \"Open\" },\r\n { value: \"closed\", label: \"Closed\" },\r\n ];\r\n // selectedStatus: FormControl;\r\n\r\n pendingArray: any = [\r\n // { value: \"\", label: \"All\" },\r\n { value: \"pending\", label: \"Pending\" },\r\n { value: \"approved\", label: \"Approved\" },\r\n { value: \"rejected\", label: \"Rejected\" },\r\n ];\r\n actionStatus: FormControl;\r\n filterForm: any;\r\n\r\n ticketData: any = {\r\n ticketName: \"Footfall Directory\",\r\n ticketId: \"TE_INF_F5645G4534A24\",\r\n storeName: \"LKST98 | RK Salai, Mylapore, Chennai, Tamil Nadu, India\",\r\n status: \"Open\",\r\n date: \"04 Sep 2023\",\r\n footfall: {\r\n total: 100,\r\n duplicates: 10,\r\n employee: 2,\r\n houseKeeping: 1,\r\n junk:1,\r\n },\r\n duplicates: [\r\n { url: \"assets/img1.jpg\" },\r\n { url: \"assets/img2.jpg\" },\r\n { url: \"assets/img3.jpg\" },\r\n ],\r\n };\r\n selectedStores: any[] = [];\r\n allSelected: boolean = false;\r\n stores: any[] = [];\r\n private readonly destroy$ = new Subject();\r\n\r\n constructor(\r\n private gs: GlobalStateService,\r\n private ticketService: TicketService,\r\n private cd: ChangeDetectorRef,\r\n private router: Router,\r\n private toast: ToastService,\r\n private modalService: NgbModal,\r\n private excelservice: ExcelService,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n ngOnInit(): void {\r\n this.footfallView = true;\r\n\r\n this.selectedRevopsType = new FormControl(\"\");\r\n this.filterForm = this.fb.group({\r\n selectedStatus: new FormControl(\"open\"),\r\n actionStatus: new FormControl(\"pending\"),\r\n ClusterList: new FormControl([]),\r\n });\r\n\r\n this.form = this.fb.group({\r\n selectedRevopsType: this.selectedRevopsType,\r\n });\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.footfallList_req = {\r\n client: this.headerFilters.clients.toString(),\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n };\r\n this.getTicketSummary('store');\r\n this.getTicketList();\r\n }\r\n },\r\n });\r\n }\r\n getFootfallSummaryData: any;\r\n getTicketSummary(type:any) {\r\n this.ticketService\r\n .getTicketSummaryApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n type\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.data && res?.data?.result) {\r\n this.getFootfallSummaryData = res?.data?.result;\r\n } else {\r\n this.getFootfallSummaryData = [];\r\n }\r\n },\r\n error: (err: any) => {\r\n this.getFootfallSummaryData = [];\r\n },\r\n complete: () => {\r\n this.getFootfallSummaryData.length === 0;\r\n },\r\n });\r\n this.cd.detectChanges();\r\n }\r\n offset = 0;\r\n limit = 10;\r\n isExport: any = false;\r\n footfallListData: any;\r\n totalItems: any;\r\n paginationSizes = [10, 20, 30];\r\n getTicketList() {\r\n this.loading = true;\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.offset = this.offset || 1;\r\n this.limit = this.limit || 10;\r\n this.isExport = false;\r\n this.ticketService\r\n .getTicketListOldApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.searchValue,\r\n this.limit,\r\n this.offset,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.footfallListData = res?.data?.result;\r\n\r\n this.totalItems = res?.data?.count;\r\n if (this.totalItems < 10) {\r\n this.paginationSizes = [this.totalItems];\r\n } else {\r\n this.paginationSizes = [10, 20, 30];\r\n }\r\n } else {\r\n this.noData = true;\r\n this.loading = false;\r\n this.footfallListData = [];\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n }\r\n\r\n currentPage: any = 1;\r\n pageSize: any = 10;\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset);\r\n this.offset = Number(pageOffset);\r\n // this.limit = 10;\r\n this.getTicketList();\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize);\r\n this.limit = Number(pageSize);\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.getTicketList();\r\n }\r\n\r\n setpageSize() {\r\n if (this.totalItems < 10) {\r\n return this.totalItems;\r\n } else {\r\n return this.pageSize;\r\n }\r\n }\r\n searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.getTicketList();\r\n }\r\n\r\n exportXLSX() {\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.offset = 1;\r\n this.limit = 10000;\r\n this.isExport = true;\r\n this.ticketService\r\n .getTicketListExportOldApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.searchValue,\r\n this.limit,\r\n this.offset,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, \"footfall directory ticket \");\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(\r\n \"Error exporting data:\" + err.error ? err.error : err.message\r\n );\r\n },\r\n });\r\n }\r\n\r\n onSort(column: string) {\r\n if (this.sortedColumn === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getTicketList();\r\n }\r\n storeCount: any;\r\n\r\n searchStoresData() {\r\n this.getStores();\r\n }\r\n\r\n StoresSearchValue: any = \"\";\r\n sortOrderStores: any;\r\n\r\n sortValue(column: string) {\r\n if (this.sortedColumn1 === column) {\r\n this.sortedColumn1 = this.sortDirection1 === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn1 = column;\r\n this.sortDirection1 = 1;\r\n }\r\n this.getStores();\r\n }\r\n getStores() {\r\n this.ticketService\r\n .getTaggedStoresApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.StoresSearchValue,\r\n this.groups,\r\n this.sortDirection1\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n if (res?.data?.result?.length) {\r\n this.stores = res?.data?.result;\r\n this.storeCount = res.data?.count || 0;\r\n } else {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n }\r\n } else {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n getTaggedStoresData: any;\r\n\r\n typeChange(event: any) {\r\n this.filterForm.get(\"selectedStatus\")?.setValue(event || null);\r\n }\r\n\r\n pendingChange(event: any) {\r\n this.filterForm.get(\"actionStatus\")?.setValue(event || null);\r\n }\r\n\r\n RevopsTypeChange(event: any) {\r\n const selectedType = event ?? \"\";\r\n this.footfalloffset = 1;\r\n if (selectedType === \"\") {\r\n this.footfalllimit = 1;\r\n this.footfallcurrentPage = 1;\r\n } else {\r\n this.footfalllimit = 10;\r\n }\r\n this.form.get(\"selectedRevopsType\")?.setValue(selectedType);\r\n this.allSelectValue = false;\r\n // Clear selected lists\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList\r\n this.cd.detectChanges();\r\n // Reset counts\r\n this.employeeACCount = \"\";\r\n this.houseKeepingACCount = \"\";\r\n this.junkACCount =\"\"\r\n this.duplicateACCount = \"\";\r\n this.dataStoreView();\r\n }\r\n\r\n footfalloffset = 1;\r\n footfalllimit = 1;\r\n footfallTicketsData: any = [];\r\n storeIdValue: any;\r\n\r\n dataReset() {\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.StoresSearchValue = \"\";\r\n this.getStores();\r\n this.form.get(\"selectedRevopsType\")?.setValue(\"\");\r\n this.filterForm.get(\"selectedStatus\")?.setValue(\"open\");\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n this.dataStoreView();\r\n }\r\n dataApply() {\r\n this.footfalloffset = 1;\r\n if (this.selectedRevopsType.value === \"\") {\r\n this.footfallcurrentPage = 1;\r\n this.footfalllimit = 1;\r\n } else {\r\n this.footfalllimit = 10;\r\n }\r\n this.allSelectValue = false;\r\n this.dataStoreView();\r\n }\r\n imageUrl: any;\r\n dataIndexId: any;\r\n dateString: any;\r\n footfallNoData = false;\r\n footfallLoading = true;\r\n private lastSelectedTicket: any = null;\r\n\r\n hasInitialStoreSynced = false;\r\n\r\n addStoreIfNotExists(store: any) {\r\n if (this.hasInitialStoreSynced) return;\r\n\r\n const storeId = store?.storeId;\r\n if (storeId && !this.selectedStores.includes(storeId)) {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.hasInitialStoreSynced = true;\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n selecteValues: any;\r\n selectedStatus: any;\r\n dataStoreView(data?: any) {\r\n this.ticketService.setFootfallData(data);\r\n this.router.navigate([\"/manage/tickets/list\"], {\r\n queryParams: {\r\n type: \"footfall\",\r\n client: this.footfallList_req.client,\r\n },\r\n });\r\n return;\r\n // this.getAllGroups();\r\n // this.footfallTicketsData = [];\r\n // this.footfallNoData = false;\r\n // this.footfallLoading = true;\r\n // const ticket = data?._source ? data : this.lastSelectedTicket;\r\n\r\n // if (!ticket || !ticket._source) {\r\n // this.footfallLoading = false;\r\n // this.footfallNoData = true;\r\n // this.toast.getErrorToast(\"No ticket data available\");\r\n // return;\r\n // }\r\n\r\n // this.lastSelectedTicket = ticket;\r\n // this.addStoreIfNotExists(ticket._source);\r\n // this.dataIndexId = ticket._id || \"\";\r\n // this.dateString = ticket._source.dateString || \"\";\r\n // this.imageUrl = this.ticketService?.footfallCDN;\r\n // this.storeIdValue = this.selectedStores;\r\n // const revopsType = this.form.get(\"selectedRevopsType\")?.value;\r\n // const selectedStatus = (this.selectedStatus =\r\n // this.filterForm.get(\"selectedStatus\")?.value);\r\n // const actionStatus = (this.selecteValues =\r\n // this.filterForm.get(\"actionStatus\")?.value);\r\n\r\n // const storeId = this.storeIdValue;\r\n // const fromDate = this.footfallList_req.fromDate;\r\n // const toDate = this.footfallList_req.toDate;\r\n // const offset = this.footfalloffset;\r\n // const limit =\r\n // revopsType === \"\" ? this.footfalllimit : (this.footfalllimit = 10);\r\n\r\n // this.ticketService\r\n // .getTicketsApi(\r\n // storeId,\r\n // fromDate,\r\n // toDate,\r\n // revopsType,\r\n // selectedStatus,\r\n // actionStatus,\r\n // offset,\r\n // limit\r\n // )\r\n // .pipe(takeUntil(this.destroy$))\r\n // .subscribe({\r\n // next: (res: any) => {\r\n // if (res && res.code === 200) {\r\n // if (res?.data?.result?.length === 0) {\r\n // this.footfallTicketsData = [];\r\n // this.footfallView = true;\r\n // this.footfallNoData = true;\r\n // this.footfallLoading = false;\r\n // this.toast.getErrorToast(\r\n // \"No data found for the selected filters\"\r\n // );\r\n // } else {\r\n // this.footfallTicketsData = res?.data?.result ?? [];\r\n // this.totalItemsFootfall = res?.data?.count;\r\n // if (this.footfalllimit === 1) {\r\n // this.paginationSizes = [1];\r\n // this.pageSizeFootfall = 1;\r\n // } else {\r\n // const limit =\r\n // this.totalItemsFootfall < 10 ? this.totalItemsFootfall : 10;\r\n // this.paginationSizes = [limit];\r\n // this.pageSizeFootfall = limit;\r\n // }\r\n // this.footfallView = false;\r\n // this.footfallNoData = false;\r\n // this.footfallLoading = false;\r\n // }\r\n // } else {\r\n // this.footfallTicketsData = [];\r\n // this.footfallView = false;\r\n // this.footfallNoData = true;\r\n // this.footfallLoading = false;\r\n // }\r\n // },\r\n // error: () => {\r\n // this.footfallTicketsData = [];\r\n // this.footfallView = false;\r\n // this.footfallNoData = true;\r\n // this.footfallLoading = false;\r\n // },\r\n // complete: () => {\r\n // this.cd.detectChanges();\r\n // },\r\n // });\r\n }\r\n\r\n isCollapsed = false;\r\n\r\n toggleSidebar() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n matchedType: any;\r\n\r\n matchedArray: any = [{ value: \"all\", label: \"matched: All\" }];\r\n onFilterApply() {\r\n this.getStores();\r\n if (this.selectedRevopsType.value === \"\") this.footfalllimit = 1;\r\n else this.footfalllimit = 10;\r\n this.dataStoreView();\r\n }\r\n pageSizeFootfall: any = 1;\r\n footfallcurrentPage: any = 1;\r\n onFootfallPageChange(pageOffset: number) {\r\n this.footfallcurrentPage = Number(pageOffset);\r\n this.footfalloffset = Number(pageOffset);\r\n this.footfalllimit = 1;\r\n this.cancel();\r\n this.dataStoreView();\r\n }\r\n\r\n onFootfallPageSizeChange(pageSize: number) {\r\n this.footfalllimit = Number(pageSize);\r\n this.pageSizeFootfall = Number(pageSize);\r\n this.footfallcurrentPage = 1;\r\n this.footfalloffset = 1;\r\n this.dataStoreView();\r\n }\r\n totalItemsFootfall: any;\r\n setFootfallpageSize() {\r\n if (this.footfalllimit === 1) {\r\n if (this.totalItemsFootfall < 1) {\r\n return this.totalItemsFootfall;\r\n } else {\r\n return this.pageSizeFootfall;\r\n }\r\n } else {\r\n if (this.totalItemsFootfall < 10) {\r\n return this.totalItemsFootfall;\r\n } else {\r\n return this.pageSizeFootfall;\r\n }\r\n }\r\n }\r\n\r\n footfallMulticurrentPage: any = 1;\r\n onFootfallMultiPageChange(pageOffset: number) {\r\n this.footfallMulticurrentPage = Number(pageOffset);\r\n this.footfalloffset = Number(pageOffset);\r\n this.footfalllimit = 10;\r\n this.allSelectValue = false;\r\n this.cancel();\r\n this.dataStoreView();\r\n }\r\n\r\n onFootfallMultiPageSizeChange(pageSize: number) {\r\n this.footfalllimit = Number(pageSize);\r\n this.pageSizeFootfall = Number(pageSize);\r\n this.footfallMulticurrentPage = 1;\r\n this.footfalloffset = 1;\r\n\r\n this.dataStoreView();\r\n }\r\n toggleStoreSelection(store: any) {\r\n const storeId = store?.storeId;\r\n if (!storeId) return;\r\n\r\n const index = this.selectedStores.indexOf(storeId);\r\n\r\n if (index > -1) {\r\n this.selectedStores.splice(index, 1);\r\n } else {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n\r\n toggleSelectAll() {\r\n const visibleStoreIds = this.filteredStores.map((s) => s.storeId);\r\n\r\n if (this.allSelected) {\r\n // Remove only the visible ones\r\n this.selectedStores = this.selectedStores.filter(\r\n (id) => !visibleStoreIds.includes(id)\r\n );\r\n } else {\r\n // Add only those that are not already selected\r\n const newIds = visibleStoreIds.filter(\r\n (id) => !this.selectedStores.includes(id)\r\n );\r\n this.selectedStores = [...this.selectedStores, ...newIds];\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n\r\n isSelected(store: any): boolean {\r\n return this.selectedStores.includes(store.storeId);\r\n }\r\n\r\n imgtoggleSelectAll() {\r\n this.allSelected = !this.allSelected;\r\n this.ticketData.duplicates.forEach((img: any) => {\r\n img.selected = this.allSelected;\r\n });\r\n }\r\n\r\n selectedImagesList: any[] = [];\r\n\r\n selectedDuplicateImagesList: any[] = [];\r\n selectedHousekeepingImagesList: any[] = [];\r\n selectedEmployeeImagesList: any[] = [];\r\n selectedJunkImagesList: any[] = [];\r\n junkACCount: any;\r\n houseKeepingACCount: any;\r\n employeeACCount: any;\r\n duplicateACCount: any;\r\n\r\n cloneWithoutSelected(obj: any) {\r\n const { ...rest } = obj;\r\n return rest;\r\n }\r\n\r\n allSelectValue = false;\r\n\r\n cloneWithoutSelected1(data: any): any {\r\n const { __parent, ...rest } = data;\r\n return { ...rest };\r\n }\r\n\r\n onImageCheckboxChange1(data: any, category: string, parentOriginal?: any) {\r\n let selectedList: any;\r\n\r\n if (category === \"duplicate\") {\r\n parentOriginal = parentOriginal || data.__parent;\r\n\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected1(data));\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected1(data)],\r\n });\r\n }\r\n } else {\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList =\r\n this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n }\r\n\r\n if (category === \"employee\") {\r\n selectedList = this.selectedEmployeeImagesList;\r\n } else if (category === \"houseKeeping\") {\r\n selectedList = this.selectedHousekeepingImagesList;\r\n } else if(category === \"junk\"){\r\n selectedList = this.selectedJunkImagesList;\r\n }\r\n\r\n if (category !== \"duplicate\") {\r\n if (data.selected) {\r\n const alreadyExists = selectedList.some(\r\n (item: any) => item.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const index = selectedList.findIndex(\r\n (item: any) => item.tempId === data.tempId\r\n );\r\n if (index !== -1) {\r\n selectedList.splice(index, 1);\r\n }\r\n }\r\n\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n this.junkACCount = this.selectedJunkImagesList.length;\r\n }\r\n\r\n // 🔒 Disable other checkboxes if one type is selected\r\n const totalSelected =\r\n this.duplicateACCount + this.employeeACCount + this.houseKeepingACCount + this.junkACCount;\r\n\r\n if (totalSelected > 0) {\r\n this.checkedValue = false;\r\n } else {\r\n this.checkedValue = true;\r\n }\r\n\r\n this.cd.detectChanges(); // To update the template\r\n this.allSelectValue = this.areAllCheckboxesSelected();\r\n }\r\n\r\n selectAllValue() {\r\n this.allSelectValue = !this.allSelectValue;\r\n this.checkedValue = !this.allSelectValue;\r\n\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList =[];\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n // ✅ Employee\r\n if (Array.isArray(source.employee)) {\r\n source.employee.forEach((img: any) => {\r\n img.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedEmployeeImagesList.some(\r\n (e) => e.tempId === img.tempId\r\n )\r\n ) {\r\n this.selectedEmployeeImagesList.push(img);\r\n }\r\n });\r\n }\r\n // ✅ Junk\r\n if (Array.isArray(source.junk)) {\r\n source.junk.forEach((img: any) => {\r\n img.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedJunkImagesList.some(\r\n (e) => e.tempId === img.tempId\r\n )\r\n ) {\r\n this.selectedJunkImagesList.push(img);\r\n }\r\n });\r\n }\r\n // ✅ Housekeeping\r\n if (Array.isArray(source.houseKeeping)) {\r\n source.houseKeeping.forEach((emp: any) => {\r\n emp.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedHousekeepingImagesList.some(\r\n (e) => e.tempId === emp.tempId\r\n )\r\n ) {\r\n this.selectedHousekeepingImagesList.push(emp);\r\n }\r\n });\r\n }\r\n\r\n // ✅ Duplicate\r\n if (Array.isArray(source.duplicateImages)) {\r\n source.duplicateImages.forEach((original: any) => {\r\n if (Array.isArray(original.data)) {\r\n original.data.forEach((dup: any) => {\r\n dup.selected = this.allSelectValue;\r\n dup.__parent = original; // ✅ Needed for uncheck\r\n });\r\n\r\n if (this.allSelectValue && original.data.length > 0) {\r\n const existing = this.selectedDuplicateImagesList.find(\r\n (o: any) => o.tempId === original.tempId\r\n );\r\n\r\n if (!existing) {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: original.tempId,\r\n filePath: original.filePath,\r\n entryTime: original.entryTime,\r\n exitTime: original.exitTime,\r\n timeRange: original.timeRange,\r\n data: original.data.map((d: any) =>\r\n this.cloneWithoutSelected1(d)\r\n ),\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.junkACCount = this.selectedHousekeepingImagesList.length;\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n }\r\n\r\n areAllCheckboxesSelected(): boolean {\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n if (source.employee?.some((img: any) => !img.selected)) return false;\r\n if (source.houseKeeping?.some((img: any) => !img.selected)) return false;\r\n if(source.junk?.some((img: any) => !img.selected)) return false;\r\n if (\r\n source.duplicateImages?.some((original: any) =>\r\n original.data?.some((dup: any) => !dup.selected)\r\n )\r\n )\r\n return false;\r\n }\r\n return true;\r\n }\r\n checkedValue = true;\r\n\r\n onImageCheckboxChange(data: any, category: string, parentOriginal?: any) {\r\n let selectedList;\r\n\r\n switch (category) {\r\n case \"duplicate\":\r\n // Ensure selectedDuplicateImagesList is an array of ORIGINALS with selected children\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected(data)); // ✅ no 'selected' key\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected(data)], // ✅\r\n });\r\n }\r\n } else {\r\n // Remove from selected duplicates\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n // Remove the whole original if no duplicates are left\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList =\r\n this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Count only from selected duplicates\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n return;\r\n\r\n case \"houseKeeping\":\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n\r\n case \"employee\":\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n case \"junk\":\r\n selectedList = this.selectedJunkImagesList;\r\n break;\r\n default:\r\n return;\r\n \r\n }\r\n\r\n // Unchanged logic for employee and housekeeping\r\n selectedList = selectedList || [];\r\n if (data.selected) {\r\n const alreadyExists =\r\n Array.isArray(selectedList) &&\r\n selectedList.some((item: any) => item.tempId === data.tempId);\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const updated = Array.isArray(selectedList)\r\n ? selectedList.filter((item: any) => item.tempId !== data.tempId)\r\n : [];\r\n\r\n if (category === \"houseKeeping\") {\r\n this.selectedHousekeepingImagesList = updated;\r\n } else if (category === \"employee\") {\r\n this.selectedEmployeeImagesList = updated;\r\n } else if(category === \"junk\"){\r\n this.selectedJunkImagesList = updated;\r\n }\r\n }\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList?.length || 0;\r\n this.employeeACCount = this.selectedEmployeeImagesList.length || 0;\r\n this.junkACCount = this.selectedJunkImagesList.length || 0;\r\n }\r\n\r\n commentText: any;\r\n submitValue(status: string = \"approved\", category: string = \"duplicate\") {\r\n // Step 1: Validate based on current category\r\n let selectedList;\r\n switch (category) {\r\n case \"duplicate\":\r\n selectedList = this.selectedDuplicateImagesList;\r\n break;\r\n case \"houseKeeping\":\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n case \"employee\":\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n case \"junk\":\r\n selectedList = this.selectedJunkImagesList;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (selectedList.length === 0) {\r\n this.toast.getErrorToast(\"Please select at least one image\");\r\n return;\r\n }\r\n\r\n // Replace selected → isChecked before sending\r\n const transformedList = selectedList.map((item) => {\r\n const { selected, ...rest } = item;\r\n return { ...rest, isChecked: true };\r\n });\r\n\r\n // Step 2: Build full payload\r\n const payload: any[] = [];\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n const singlePayload: any = {\r\n _id: ticket._id,\r\n comments: this.commentText || \"\",\r\n dateString: source.dateString || this.dateString,\r\n\r\n employeeStatus:\r\n category === \"employee\" ? status : source.employeeStatus,\r\n houseKeepingStatus:\r\n category === \"houseKeeping\" ? status : source.houseKeepingStatus,\r\n junkStatus:\r\n category === \"junk\" ? status : source.junkStatus,\r\n duplicateStatus:\r\n category === \"duplicate\" ? status : source.duplicateStatus,\r\n };\r\n\r\n if (category === \"employee\") {\r\n singlePayload.employee = transformedList;\r\n singlePayload.employeeACCount = this.employeeACCount\r\n ? this.employeeACCount\r\n : 0;\r\n }\r\n\r\n if (category === \"houseKeeping\") {\r\n singlePayload.houseKeeping = transformedList;\r\n singlePayload.houseKeepingACCount = this.houseKeepingACCount\r\n ? this.houseKeepingACCount\r\n : 0;\r\n }\r\n if(category === \"junk\"){\r\n singlePayload.junk = transformedList;\r\n singlePayload.junkACCount = this.junkACCount\r\n ? this.junkACCount\r\n : 0;\r\n\r\n}\r\n if (category === \"duplicate\") {\r\n singlePayload.duplicateImages = transformedList;\r\n singlePayload.duplicateACCount = this.duplicateACCount\r\n ? this.duplicateACCount\r\n : 0;\r\n }\r\n\r\n payload.push(singlePayload);\r\n }\r\n // Step 3: Set status based on current category\r\n switch (category) {\r\n case \"duplicate\":\r\n payload.forEach((item) => (item.duplicateStatus = status));\r\n break;\r\n case \"houseKeeping\":\r\n payload.forEach((item) => (item.houseKeepingStatus = status));\r\n break;\r\n case \"employee\":\r\n payload.forEach((item) => (item.employeeStatus = status));\r\n break;\r\n case \"junk\":\r\n payload.forEach((item) => (item.junkStatus = status));\r\n break;\r\n }\r\n\r\n // Step 4: Submit the payload\r\n this.ticketService\r\n .getUpdateStatusApi({ data: payload })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(\r\n res?.message || \"Ticket updated successfully\"\r\n );\r\n // this.selectedStores =[];\r\n // this.allSelected = false;\r\n // this.allSelectValue =false;\r\n this.footfalloffset = 1;\r\n this.dataStoreView();\r\n this.cancel();\r\n } else {\r\n this.toast.getErrorToast(\"Failed to update ticket\");\r\n }\r\n },\r\n error: (err: any) => {\r\n const msg =\r\n err.error.error ||\r\n err.error ||\r\n err?.error?.message ||\r\n err.message ||\r\n \"Unknown error\";\r\n this.toast.getErrorToast(\"Error updating ticket: \" + msg);\r\n\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n },\r\n });\r\n }\r\n searchTerm: any = \"\";\r\n get filteredStores() {\r\n if (!this.searchTerm?.trim()) return this.stores;\r\n\r\n const term = this.searchTerm.toLowerCase();\r\n return this.stores.filter((store) =>\r\n store?.storeName?.toLowerCase().includes(term)\r\n );\r\n }\r\n onImageError(event: any): void {\r\n event.target.src = \"assets/images/fallback-image.png\"; // or any default image path\r\n }\r\n backToNavigation() {\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n this.hasInitialStoreSynced = false;\r\n this.footfallView = true;\r\n this.cancel();\r\n this.ClusterList = [];\r\n // this.groups =[];\r\n // this.filterForm.get('ClusterList')?.setValue('')\r\n this.form.get(\"selectedRevopsType\")?.setValue(\"\");\r\n this.filterForm.get(\"selectedStatus\")?.setValue(\"open\");\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n this.getTicketSummary('store');\r\n this.getTicketList();\r\n }\r\n @ViewChild(\"zoomPopup\") zoomPopup: ElementRef;\r\n popupvalue: any;\r\n popupType: any;\r\n popupOpen(type: any, value: any) {\r\n const modalRef = this.modalService.open(this.zoomPopup, {\r\n centered: true,\r\n size: \"md\",\r\n backdrop: \"static\", // Prevent closing on outside click\r\n keyboard: false, // Prevent closing on ESC key\r\n });\r\n this.popupType = type;\r\n if (value === \"duplicateImages\") {\r\n this.popupvalue = \"duplicate\";\r\n } else {\r\n this.popupvalue = value;\r\n }\r\n }\r\n cancel() {\r\n // this.allSelected = false;\r\n // this.allSelectValue = false;\r\n if (this.selectedRevopsType?.value !== \"\") this.allSelectValue = false;\r\n // Clear all selected flags from the data\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n source.employee?.forEach((img: any) => (img.selected = false));\r\n source.houseKeeping?.forEach((img: any) => (img.selected = false));\r\n source.junk?.forEach((img: any) => (img.selected = false));\r\n source.duplicateImages?.forEach((original: any) => {\r\n original.data?.forEach((dup: any) => (dup.selected = false));\r\n });\r\n }\r\n this.clear();\r\n\r\n // this.checkedValue = true;\r\n }\r\n clear() {\r\n this.modalService.dismissAll();\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList = [];\r\n // Reset counts\r\n this.employeeACCount = \"\";\r\n this.houseKeepingACCount = \"\";\r\n this.duplicateACCount = \"\";\r\n this.junkACCount =\"\"\r\n }\r\n ClusterList: any = [];\r\n getAllGroups() {\r\n this.ClusterList = [];\r\n // this.groups =[];\r\n\r\n this.ticketService\r\n .getclusters({ clientId: this.headerFilters.client, group: [], city: [] })\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.ClusterList = res?.data?.groupData;\r\n this.getStores();\r\n } else {\r\n this.ClusterList = [];\r\n }\r\n },\r\n });\r\n }\r\n groups: any = [];\r\n ongroupSelect(event: any) {\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n this.filterForm.get(\"ClusterList\")?.setValue(event);\r\n this.groups = event.map((el: any) => el.groupName);\r\n }\r\n // isSubmitDisabled(): boolean {\r\n // switch (this.selectedRevopsType?.value) {\r\n // case 'employee':\r\n // return this.employeeACCount === 0;\r\n // case 'houseKeeping':\r\n // return this.houseKeepingACCount === 0;\r\n // case 'duplicate':\r\n // return this.duplicateACCount === 0;\r\n // default:\r\n // return true;\r\n // }\r\n // }\r\n getFormattedEntryTime(entryTime: string): string {\r\n if (!entryTime) return \"-\";\r\n const [hours, minutes, seconds] = entryTime.split(\":\").map(Number);\r\n const date = new Date();\r\n date.setHours(hours, minutes, seconds);\r\n return date.toLocaleTimeString(\"en-US\", {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n // second: '2-digit',\r\n hour12: true,\r\n });\r\n }\r\n showSelectAllBox() {\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n }\r\n}\r\n","<div *ngIf=\"footfallView\" class=\"row\">\r\n <div class=\"col-md-3 mb-3\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title my-0\">{{ getFootfallSummaryData?.totalTickets !== null ?\r\n getFootfallSummaryData?.totalTickets : '--' }}</h5>\r\n <span class=\"sub-header\">Total tickets</span>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-6 col-xl-9 col-md-6 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.openTickets !== null ?\r\n getFootfallSummaryData?.openTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Open</span>\r\n </div>\r\n <div class=\"col-lg-6 col-xl-3 col-md-6 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.closedTickets !== null ?\r\n getFootfallSummaryData?.closedTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Closed</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-9 mb-3\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title mt-0\">{{ getFootfallSummaryData?.noShopper !== null ?\r\n getFootfallSummaryData?.noShopper : '--' }}</h5>\r\n <div class=\"sub-header\">Non-Shoppers</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.duplicateCount !== null ?\r\n getFootfallSummaryData?.duplicateCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Duplicates</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3 \">\r\n <h5 class=\"card-title \">{{ getFootfallSummaryData?.employeeCount !== null ?\r\n getFootfallSummaryData?.employeeCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header \">Employee/Staff</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3 \">\r\n <h5 class=\"card-title \">{{ (getFootfallSummaryData?.junkCount !== null ?\r\n getFootfallSummaryData?.junkCount : '--') || 0 }}</h5>\r\n <span class=\"card-title-sub-header \">Junk</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3\">\r\n <h5 class=\"card-title \">{{ getFootfallSummaryData?.houseKeepingCount !== null ?\r\n getFootfallSummaryData?.houseKeepingCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Housekeeping</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"footfallView\" class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Ticket Info <span *ngIf=\"totalItems\"\r\n class=\"ms-2 px-3 badge badge-light-primary\">{{totalItems ? totalItems :'--'}} Total</span></span>\r\n <span class=\"text-sub mb-2\">Based on {{footfallList_req?.fromDate | date: 'dd MMM, yyyy'}} –\r\n {{footfallList_req?.toDate | date: 'dd MMM, yyyy'}} </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search by store\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchValue\" />\r\n <!-- <lib-filters [dataObject]=\"dataObject\"\r\n (appliedFilters)=\"applyFilters($event)\"></lib-filters> -->\r\n\r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body mt-3 py-0 px-0\">\r\n\r\n\r\n\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Date</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Info<svg\r\n [ngClass]=\"sortedColumn === 'storeName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <!-- <th class=\"cursor-pointer\" (click)=\"onSort('ticketId')\">Ticket ID<svg\r\n [ngClass]=\"sortedColumn === 'ticketId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'ticketId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th> -->\r\n <th class=\"cursor-pointer\" (click)=\"onSort('createdAt')\">Ticket raised on\r\n <svg [ngClass]=\"sortedColumn === 'dateString' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('dateString')\">Issue Date\r\n <svg [ngClass]=\"sortedColumn === 'dateString' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'dateString' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('footfallCount')\">Total footfall\r\n <svg [ngClass]=\"sortedColumn === 'footfallCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'footfallCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('duplicateCount')\">Duplicates\r\n <svg [ngClass]=\"sortedColumn === 'duplicateCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'duplicateCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('employeeCount')\">Employee/Staff\r\n <svg [ngClass]=\"sortedColumn === 'employeeCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'employeeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('junkCount')\">Junk\r\n <svg [ngClass]=\"sortedColumn === 'junkCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'junkCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('houseKeepingCount')\">Housekeeping\r\n <svg [ngClass]=\"sortedColumn === 'houseKeepingCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'houseKeepingCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n\r\n <th>Revised footfall\r\n\r\n </th>\r\n \r\n <th>Ticket %\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('status')\">Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <!-- <th >Actions</th> -->\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let ticket of footfallListData\">\r\n <ng-container *ngIf=\"ticket?._source as source\">\r\n <td (click)=\"dataStoreView(ticket)\">\r\n <div class=\"text-primary cursor-pointer\">{{ source.storeName }}</div>\r\n <div class=\"text-gray-500 fs-7 mt-2\">ID : {{ source.storeId }}</div>\r\n </td>\r\n\r\n <!-- <td class=\"py-7\">{{ source.ticketId }}</td> -->\r\n <td class=\"py-7\">{{ source.createdAt | date: 'dd MMM, yyyy' }}</td>\r\n <td class=\"py-7\">{{ source.dateString | date: 'dd MMM, yyyy' }}</td>\r\n <td class=\"py-7\">{{ source.footfallCount }}</td>\r\n <td class=\"py-7\">{{ source?.status ===\"closed\"? source.duplicateACCount : source.duplicateCount }}</td>\r\n <td class=\"py-7\">{{ source?.status ===\"closed\"? source.employeeACCount :source.employeeCount }}</td>\r\n <td class=\"py-7\">{{ source?.status ===\"closed\"? source.junkACCount :source.junkCount ?? '0' }}</td>\r\n <td class=\"py-7\">{{ source?.status ===\"closed\"? source.houseKeepingACCount :source.houseKeepingCount }}</td>\r\n <td class=\"py-7\">\r\n {{source?.status ===\"closed\"? source.footfallCount - (source?.houseKeepingACCount + source.employeeACCount + source.junkACCount + source?.duplicateACCount) : source.footfallCount - (source.houseKeepingCount + source.employeeCount + source.junkCount +\r\n source.duplicateCount) }}\r\n </td>\r\n<td class=\"py-7\">\r\n <ng-container *ngIf=\"source?.status === 'closed' && source?.footfallCount > 0; else naBlock\">\r\n {{\r\n (\r\n ((source?.duplicateACCount || 0) + \r\n (source?.employeeACCount || 0) + \r\n (source?.houseKeepingACCount || 0) + (source?.junkACCount || 0)) \r\n / source?.footfallCount\r\n ) * 100 | number: '1.0-0'\r\n }}%\r\n </ng-container>\r\n <ng-template #naBlock>\r\n {{\r\n (\r\n ((source?.duplicateCount || 0) + \r\n (source?.employeeCount || 0) + \r\n (source?.houseKeepingCount || 0) + (source?.junkCount || 0)) \r\n / source?.footfallCount\r\n ) * 100 | number: '1.0-0'\r\n }}%\r\n </ng-template>\r\n</td>\r\n\r\n\r\n <td class=\"py-7\">\r\n <span *ngIf=\"source.status === 'open' || source.status === 'closed'\" class=\"badge mx-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': source.status === 'open',\r\n 'badge-light-default': source.status === 'closed'\r\n }\">\r\n {{ source.status | titlecase }}\r\n </span>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"setpageSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<div *ngIf=\"!footfallView\" class=\"card mt-2\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"row my-0\">\r\n <div class=\"col-lg-3 my-3\">\r\n <span class=\"ms-2 cursor-pointer\" (click)=\"backToNavigation()\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"56\" height=\"44\" viewBox=\"0 0 56 44\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_887_4505)\">\r\n <rect x=\"2\" y=\"1\" width=\"52\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"51\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M30.5 26L25.5 21L30.5 16\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_887_4505\" x=\"0\" y=\"0\" width=\"56\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_887_4505\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_887_4505\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg><span class=\"card-title-foot pt-15 ms-3\">Footfall Directory</span></span>\r\n\r\n </div>\r\n <div class=\"col-md-2 my-3\">\r\n\r\n <lib-reactive-select formControlName=\"selectedStatus\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"type\" (itemChange)=\"typeChange($event)\"></lib-reactive-select>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-2 my-3\">\r\n\r\n <lib-reactive-select formControlName=\"actionStatus\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"pendingArray\" (itemChange)=\"pendingChange($event)\"></lib-reactive-select>\r\n\r\n </div>\r\n <div class=\"col-md-3 my-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"!(filterForm.get('ClusterList')?.value?.length)\">\r\n Select cluster\r\n </div>\r\n <lib-group-select [items]=\"ClusterList\" [disabled]=\"false\" [multi]=\"true\"\r\n [searchField]=\"'groupName'\" [idField]=\"'groupName'\" (selected)=\"ongroupSelect($event)\"\r\n [selectedValues]=\"filterForm.get('ClusterList')?.value\">\r\n </lib-group-select>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-2 my-4\">\r\n <div class=\"d-flex me-3\">\r\n <a (click)=\"onFilterApply()\" type=\"submit\"\r\n class=\"btn btn-sm btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n<div *ngIf=\"!footfallView\" class=\"row mt-3\">\r\n <div class=\"position-relative\" [ngClass]=\"isCollapsed ? 'd-none' : 'col-md-3 h-auto'\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-header border-0 pt-3 px-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Footfall Directory</span>\r\n <span class=\"text-sub mb-2\">Based on {{footfallList_req.fromDate | date: 'dd MMM, yyyy'}} –\r\n {{footfallList_req.toDate | date: 'dd MMM, yyyy'}} </span>\r\n </h3>\r\n </div>\r\n <span class=\"cursor-pointer\" (click)=\"toggleSidebar()\" style=\"position: absolute; top: 15px; right: -25px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"68\" height=\"68\" viewBox=\"0 0 68 68\" fill=\"none\">\r\n <g filter=\"url(#filter0_dd_778_34282)\">\r\n <rect x=\"12\" width=\"44\" height=\"44\" rx=\"22\" fill=\"white\" />\r\n <path d=\"M33 27L28 22L33 17M40 27L35 22L40 17\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_dd_778_34282\" x=\"0\" y=\"0\" width=\"68\" height=\"68\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"2\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect1_dropShadow_778_34282\" />\r\n <feOffset dy=\"4\" />\r\n <feGaussianBlur stdDeviation=\"3\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.03 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_778_34282\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"4\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feOffset dy=\"12\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.08 0\" />\r\n <feBlend mode=\"normal\" in2=\"effect1_dropShadow_778_34282\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect2_dropShadow_778_34282\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <div class=\"text-end mt-10\">\r\n <button class=\"btn btn-outline w-25 me-3 btn-resize\" (click)=\"dataReset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-25 me-5 btn-resize\" (click)=\"dataApply()\">Apply</button>\r\n </div>\r\n <div class=\"p-4 w-100 overflow-auto\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute pb-2 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input class=\"form-control form-control-sm mb-2 ps-14 pe-2 w-100\" type=\"text\" placeholder=\"Search\"\r\n [(ngModel)]=\"StoresSearchValue\" (change)=\"searchStoresData()\" />\r\n </div>\r\n\r\n <div *ngIf=\"stores?.length\" class=\"mb-2 border-selectall\">\r\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"toggleSelectAll()\" />\r\n <label class=\"mt-2 font-semibold ms-2\">Select All {{storeCount}} Stores</label>\r\n <!-- <span class=\"text-end\" (click)=\"sortValue('storeName')\"><svg\r\n [ngClass]=\"sortedColumn1 === 'storeName' && sortDirection1 === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn1 === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> -->\r\n </div>\r\n <ul class=\"list-unstyled ps-0\">\r\n <li\r\n *ngFor=\"let store of stores\"\r\n class=\"mb-3\"\r\n [ngClass]=\"{ 'store-item-active': isSelected(store), 'store-item': true }\"\r\n >\r\n <div class=\"left\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isSelected(store)\"\r\n (change)=\"toggleStoreSelection(store)\"\r\n />\r\n <span [ngClass]=\"{ 'active-text': isSelected(store) }\">\r\n {{ store?.storeName }}\r\n </span>\r\n </div>\r\n <span [ngClass]=\"{ 'badge': true, 'badge-active': isSelected(store), 'badge-normal': !isSelected(store) }\">\r\n {{ store?.totalCount }}\r\n </span>\r\n </li>\r\n</ul>\r\n\r\n\r\n\r\n <div *ngIf=\"!stores?.length\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body mx-0 d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\"\r\n viewBox=\"0 0 94 94\" fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\" transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No Stores Found</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no stores </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"isCollapsed ? 'col-12' : 'col-md-9'\">\r\n <div class=\"card h-100\">\r\n\r\n <div class=\"card-header min-h-35px border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <form class=\"mx-4\" [formGroup]=\"form\">\r\n <lib-reactive-select formControlName=\"selectedRevopsType\" [idField]=\"'value'\"\r\n [nameField]=\"'label'\" [data]=\"revopsTypeArray\"\r\n (itemChange)=\"RevopsTypeChange($event)\"></lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedRevopsType?.value !== '' && selecteValues ==='pending'\"\r\n class=\"card-header min-h-35px border-0\">\r\n <h3 class=\"align-items-start flex-column\">\r\n\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"mt-12 mb-2 font-semibold\">\r\n\r\n <input *ngIf=\"!footfallLoading && !footfallNoData\" type=\"checkbox\" [checked]=\"allSelectValue\"\r\n (change)=\"selectAllValue()\" />\r\n <label *ngIf=\"!footfallLoading && !footfallNoData\" class=\"mt-2 fs-6 font-semibold ms-2\">\r\n Select All (\r\n {{\r\n houseKeepingACCount > 0\r\n ? houseKeepingACCount\r\n : employeeACCount > 0\r\n ? employeeACCount\r\n : duplicateACCount > 0\r\n ? duplicateACCount\r\n : 0\r\n }}\r\n )\r\n </label>\r\n </div>\r\n <!-- -->\r\n\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"my-7 d-flex justify-content-end me-5\"\r\n role=\"group\">\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\"\r\n class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected',this.selectedRevopsType.value)\">Reject selection</button>\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\"\r\n class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved',this.selectedRevopsType.value)\">Approve selection</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <section *ngIf=\"selectedRevopsType?.value === ''\">\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"card-body mt-3 py-0\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"col-md-12 text-center my-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"240\"\r\n height=\"86\" viewBox=\"0 0 240 86\" fill=\"none\">\r\n <rect width=\"240\" height=\"86\" fill=\"#FAFAFA\" />\r\n <rect x=\"31\" width=\"178\" height=\"86\" fill=\"url(#pattern0_778_33543)\" />\r\n <defs>\r\n <pattern id=\"pattern0_778_33543\" patternContentUnits=\"objectBoundingBox\" width=\"1\"\r\n height=\"1\">\r\n <use xlink:href=\"#image0_778_33543\"\r\n transform=\"matrix(0.000333333 0 0 0.000689922 0 -0.0822946)\" />\r\n </pattern>\r\n <image id=\"image0_778_33543\" width=\"3000\" height=\"1688\" preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAC7gAAAaYCAYAAAAXbpGPAAAgAElEQVR4AezQgQAAAACAoP2pFymECgMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDJZikLkAACAASURBVBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwjXnEogAAIABJREFUYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBiYvXvBtZAGAgCqi3MT7sJFuG4NUSIP74cW2s60x8QAl0KnZ6Y8IU0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBp7TinAAAgAElEQVQgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQO/m9l0AACAASURBVIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA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QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAptcw2AAAgAElEQVQgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPx/duhAAAAAAADI/7UREhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgfUWlHgAACAASURBVAMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMH3CjNDQAAIABJREFUDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHtEPHAgAAAACD/K2nsaMQMmDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAGPnY0UAAAMe0lEQVQDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBt4DAfUfAYwpoEnzAAAAAElFTkSuQmCC\" />\r\n </defs>\r\n </svg>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"row mb-6\">\r\n <div class=\"col-2 card-title-label my-2\">Ticket Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketName ? (source.ticketName |\r\n titlecase) : '-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Ticket ID</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketId ? source.ticketId:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Store Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.storeName ? source.storeName:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Status</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-4 my-2\"><span class=\"badge\" [ngClass]=\"{\r\n 'badge-light-primary': source.status === 'open',\r\n 'badge-secondary': source.status === 'closed',\r\n 'badge-light-warning': source.status === 'pending',\r\n 'badge-light-danger': source.status === 'rejected'\r\n }\">\r\n {{ source.status ? (source.status | titlecase) : '-' }}\r\n </span></div>\r\n\r\n <div class=\"col-1 card-title-label my-2\">Date</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 card-title-value my-2\">{{ source.dateString ? (source.dateString | date:\r\n 'dd MMM, yyyy') :'- ' }}</div>\r\n </div>\r\n\r\n <div *ngIf=\"ticket?._source as source\" class=\"border-totalfootfall\">\r\n <div class=\"card-header ellipse1 min-h-45px py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title\">{{ source?.footfallCount !== null ?\r\n source?.footfallCount : '--' }} <span class=\"sub-header ms-2\">Total\r\n Footfall</span></h5>\r\n\r\n </div>\r\n </div>\r\n <div class=\"card-body py-0 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.duplicateCount !== null && source?.duplicateCount !== undefined ?\r\n source?.duplicateCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.duplicateACCount !== null && source?.duplicateACCount !== undefined ?\r\n source?.duplicateACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Duplicates</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.employeeCount !== null && source?.employeeCount !== undefined ?\r\n source?.employeeCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.employeeACCount !== null && source?.employeeACCount !== undefined ?\r\n source?.employeeACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Employee/Staff</span>\r\n </div>\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ (source?.junkCount !== null && source?.junkCount !== undefined ?\r\n source?.junkCount : '--') || 0 }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ (source?.junkACCount !== null && source?.junkACCount !== undefined ?\r\n source?.junkACCount : '--') || 0 }}</h5>\r\n <span class=\"card-title-sub-header\">Junk</span>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.houseKeepingCount !== null && source?.houseKeepingCount !== undefined ?\r\n source?.houseKeepingCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.houseKeepingACCount !== null && source?.houseKeepingACCount !== undefined ?\r\n source?.houseKeepingACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">House Keeping</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\"> {{\r\n (source.footfallCount || 0) -\r\n ((source.houseKeepingCount || 0) +\r\n (source.employeeCount || 0) + (source.junkCount || 0) +\r\n (source.duplicateCount || 0))\r\n }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\"> {{\r\n (source.footfallCount || 0) -\r\n ((source.houseKeepingACCount || 0) +\r\n (source.employeeACCount || 0) + (source.junkACCount || 0) +\r\n (source.duplicateACCount || 0))\r\n }}</h5>\r\n <span class=\"card-title-sub-header\">Actual footfall</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-5\">\r\n <h3 *ngIf=\"source?.duplicateImages?.length\" class=\"text-lg font-semibold mb-4\"> <span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Duplicates</h3>\r\n\r\n\r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-3\">Original image\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\"\r\n class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{ original.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime) }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"duplicate-head text-lg my-3\">Duplicates<span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.duplicateStatus === 'pending',\r\n 'badge-light-success': source?.duplicateStatus === 'approved',\r\n 'badge-light-danger': source?.duplicateStatus === 'rejected'\r\n }\">{{source?.duplicateStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source?.duplicateStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'duplicate', original)\" />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{ img.tempId }}\r\n <span class=\"ms-2\" *ngIf=\"source?.duplicateStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(img?.entryTime) }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"my-7 d-flex justify-content-end\"\r\n role=\"group\">\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','duplicate')\">Reject</button>\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','duplicate')\">Approve</button>\r\n </div>\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n <div *ngIf=\"source?.employee?.length\" class=\"duplicate-head text-lg my-3\"><span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"16\"\r\n viewBox=\"0 0 18 16\" fill=\"none\">\r\n <path\r\n d=\"M12.75 14.75V13.25C12.75 12.4544 12.4339 11.6913 11.8713 11.1287C11.3087 10.5661 10.5456 10.25 9.75 10.25H3.75C2.95435 10.25 2.19129 10.5661 1.62868 11.1287C1.06607 11.6913 0.75 12.4544 0.75 13.25V14.75M17.25 14.75V13.25C17.2495 12.5853 17.0283 11.9396 16.621 11.4142C16.2138 10.8889 15.6436 10.5137 15 10.3475M12 1.3475C12.6453 1.51273 13.2173 1.88803 13.6257 2.41423C14.0342 2.94044 14.2559 3.58762 14.2559 4.25375C14.2559 4.91988 14.0342 5.56706 13.6257 6.09327C13.2173 6.61947 12.6453 6.99477 12 7.16M9.75 4.25C9.75 5.90685 8.40685 7.25 6.75 7.25C5.09315 7.25 3.75 5.90685 3.75 4.25C3.75 2.59315 5.09315 1.25 6.75 1.25C8.40685 1.25 9.75 2.59315 9.75 4.25Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Employee/Staff <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.employeeStatus === 'pending',\r\n 'badge-light-success': source?.employeeStatus === 'approved',\r\n 'badge-light-danger': source?.employeeStatus === 'rejected'\r\n }\">{{source?.employeeStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.employeeStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'employee')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{img.tempId}}\r\n <span class=\"ms-2\" *ngIf=\"source?.employeeStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time:\r\n {{getFormattedEntryTime(img?.entryTime)}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','employee')\">Reject</button>\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','employee')\">Approve</button>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"duplicate-head text-lg my-3\"><span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.51995 0.613065C8.33739 -0.204355 9.66267 -0.204355 10.4801 0.613065L17.387 7.51995C18.2043 8.33739 18.2043 9.66267 17.387 10.4801L10.4801 17.387C9.66267 18.2043 8.33739 18.2043 7.51995 17.387L5.54626 15.4133L3.73708 17.2224C2.91966 18.0399 1.59436 18.0399 0.776944 17.2224C-0.0404767 16.4051 -0.0404767 15.0797 0.776944 14.2624L2.58612 12.4531L0.613065 10.4801C-0.204355 9.66267 -0.204355 8.33739 0.613065 7.51995L7.51995 0.613065ZM9.49336 1.59978C9.22088 1.32731 8.77909 1.32731 8.50661 1.59978L3.57286 6.53357L11.4665 14.4272L16.4002 9.49336C16.6727 9.22088 16.6727 8.77909 16.4002 8.5067L12.9465 5.05286L11.7952 6.20403C11.5228 6.4765 11.0811 6.4765 10.8086 6.20403C10.5361 5.93155 10.5361 5.48978 10.8086 5.21731L11.9597 4.06614L10.9732 3.07964L8.17757 5.87533C7.90509 6.1478 7.46329 6.1478 7.19081 5.87533C6.91833 5.60286 6.91833 5.16109 7.19081 4.88862L9.9865 2.09293L9.49336 1.59978ZM10.4797 15.4139L2.58615 7.52028L1.59978 8.5067C1.3273 8.77909 1.3273 9.22088 1.59978 9.49336L8.50661 16.4002C8.77909 16.6727 9.22088 16.6727 9.49336 16.4002L10.4797 15.4139ZM3.57275 13.4399L1.76366 15.249C1.49119 15.5215 1.49119 15.9633 1.76366 16.2358C2.03613 16.5082 2.4779 16.5082 2.75037 16.2358L4.55946 14.4266L3.57275 13.4399Z\"\r\n fill=\"#475467\" />\r\n </svg></span> House Keeping <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.houseKeepingStatus === 'pending',\r\n 'badge-light-success': source?.houseKeepingStatus === 'approved',\r\n 'badge-light-danger': source?.houseKeepingStatus === 'rejected'\r\n }\">{{source?.houseKeepingStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.houseKeepingStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'houseKeeping')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{img.tempId}}\r\n <span class=\"ms-2\" *ngIf=\"source?.houseKeepingStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time:\r\n {{getFormattedEntryTime(img?.entryTime)}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"my-7 d-flex justify-content-end\"\r\n role=\"group\">\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','houseKeeping')\">Reject</button>\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','houseKeeping')\">Approve</button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfalloffset\"\r\n [totalItems]=\"totalItemsFootfall\" [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"setFootfallpageSize()\" (pageChange)=\"onFootfallPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n\r\n </div>\r\n\r\n </section>\r\n <div *ngIf=\"footfallLoading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"footfallNoData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\" viewBox=\"0 0 94 94\"\r\n fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\" transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No pending items</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no action item required for <span\r\n *ngIf=\"selectedRevopsType?.value==='duplicateImages'\">duplicates</span><span\r\n *ngIf=\"selectedRevopsType?.value==='employee'\">employee/staff</span> <span\r\n *ngIf=\"selectedRevopsType?.value==='houseKeeping'\">houseKeeping</span>\r\n <span *ngIf=\"!selectedRevopsType?.value\">items</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Card Body -->\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"card-body mt-3 py-0\">\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-4\">\r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-2\">Original image\r\n </div>\r\n <div class=\"row\">\r\n <!-- ✅ Original Image -->\r\n <div class=\"col-md-4 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}</div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- 🟨 Duplicate Images (for this original) -->\r\n <div class=\"duplicate-head my-3\">Duplicates <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.duplicateStatus === 'pending',\r\n 'badge-light-success': source?.duplicateStatus === 'approved',\r\n 'badge-light-danger': source?.duplicateStatus === 'rejected'\r\n }\">{{source?.duplicateStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source?.duplicateStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'duplicate',original)\" />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.duplicateStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.employeeStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'employee')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.employeeStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.houseKeepingStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'houseKeeping')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.houseKeepingStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfalloffset\"\r\n [totalItems]=\"totalItemsFootfall\" [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"setFootfallpageSize()\" (pageChange)=\"onFootfallMultiPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallMultiPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }} Selected Images\r\n </h5>\r\n\r\n <!-- Description -->\r\n <p class=\"mb-3\">\r\n You're about to {{ popupType === 'approved' ? 'approve' : 'reject' }} the following number of selected\r\n images.\r\n </p>\r\n\r\n <!-- Count Box -->\r\n <div class=\"border border-1 rounded p-3 w-50 mb-4\">\r\n <div *ngIf=\"popupvalue === 'employee'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ employeeACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'houseKeeping'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ houseKeepingACCount ||'--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'duplicate'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ duplicateACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'junk'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ junkACCount || '--' }}\r\n </div>\r\n <div class=\"fw-semibold text-muted fs-6 mt-2\">\r\n {{ popupvalue | titlecase }}s\r\n </div>\r\n </div>\r\n\r\n <!-- Action Buttons -->\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType, popupvalue)\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }}\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-footfall-popup',\r\n templateUrl: './footfall-popup.component.html',\r\n styleUrl: './footfall-popup.component.scss'\r\n})\r\nexport class FootfallPopupComponent {\r\ncomment:any='';\r\ncancel(){}\r\ncommentSubmit(){}\r\n}\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Approve Selected Images</a>\r\n <p class=\"text-sub\">You're about to approve 5 Duplicates</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Remarks (Optional)</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <!-- <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div> -->\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Start audit</a>\r\n <p class=\"text-sub\">Please select a store and date range to start audit</p>\r\n <div class=\"w-100\">\r\n <div class=\"row\">\r\n<div class=\"col-8\">\r\n\r\n <label class=\"label my-2\">Store</label>\r\n <select class=\"form-control-sm\">\r\n <option>Select Store</option>\r\n </select>\r\n</div>\r\n<div class=\"col-4\">\r\n <input type=\"date\" class=\"form-control-sm\">\r\n</div>\r\n </div>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'lib-ticketclosepopup',\r\n templateUrl: './ticketclosepopup.component.html',\r\n styleUrl: './ticketclosepopup.component.scss'\r\n})\r\nexport class TicketclosepopupComponent {\r\n\r\n @Input() tangoTicket: any;\r\n @Input() storeTicket: any;\r\n centralOpsData: any\r\n tangoData: any\r\n\r\n\r\n constructor(public activeModal: NgbActiveModal) {\r\n\r\n\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n console.log(\"🚀 ~ TicketclosepopupComponent ~ tangoTicket:\", this.tangoTicket)\r\n console.log(\"🚀 ~ TicketclosepopupComponent ~ storeTicket:\", this.storeTicket)\r\n if (this.storeTicket && this.storeTicket?.mappingInfo.length > 0) {\r\n this.centralOpsData = this.storeTicket.mappingInfo.filter((data: any) => data.type != \"tangoreview\")[0]\r\n console.log(\"🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.centralOpsData:\", this.centralOpsData)\r\n }\r\n if (this.tangoTicket && this.tangoTicket?.mappingInfo.length > 0) {\r\n this.tangoData = this.tangoTicket.mappingInfo.filter((data: any) => data.type === \"tangoreview\")[0]\r\n console.log(\"🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.tangoData:\", this.tangoData)\r\n }\r\n\r\n\r\n\r\n }\r\n submit(type: any) {\r\n this.activeModal.close({ type: type });\r\n }\r\n\r\n closepopup() {\r\n this.activeModal.close({ type: 'close' });\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Merge ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n <p class=\"mb-1\">\r\n This ticket has already been audited internally by Tango.\r\n </p>\r\n <p class=\"mb-0\">\r\n Clicking <b>‘Merge’</b> will merge the Tango audit with this ticket.\r\n If needed, you can perform a new audit by clicking\r\n <b>‘Start Audit’</b>.\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\" >\r\n ↓\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n ↑\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\" >\r\n ↓\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n ↑\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"submit('start')\">\r\n Start Audit\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"submit('merge')\">\r\n Merge\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, catchError, map, throwError,BehaviorSubject } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuditService {\r\n\r\n\r\n ticketApiUrl: any;\r\n storeApiUrl: any;\r\n data: any;\r\n userUrl: any;\r\n tokenStorage: any;\r\n zoneauditApiUrl:any;\r\n edgeAppApiUrl: any;\r\n clientApiUrl:string\r\n\r\n clientId = new BehaviorSubject<string>('')\r\n clientData = new BehaviorSubject<any>(null)\r\n auditApiUrl: any;\r\n traxauditApiUrl: any;\r\n vmsAuditUrl: any;\r\n footfallDirapiUrl: any;\r\n\r\n dropDownTrigger = new BehaviorSubject<any>(null)\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.subscribe((env) => {\r\n if (env) {\r\n this.ticketApiUrl = env.ticketsApiUrl\r\n this.storeApiUrl = env.storeApiUrl;\r\n this.userUrl = env.userUrl;\r\n this.edgeAppApiUrl = env.edgeAppApiUrl;\r\n this.auditApiUrl = env.auditApiUrl;\r\n this.clientApiUrl = env.clientApiUrl\r\n this.vmsAuditUrl = env.vmsAuditUrl\r\n this.footfallDirapiUrl = env.footfallDirapiUrl\r\n }\r\n this.gs.dataRangeValue.subscribe((e:any)=>{ \r\n if(e){\r\n this.clientId.next(e.client)\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n// audit code\r\n\r\ngetAuditMapping(payload:any) {\r\n return this.http.get(`${this.vmsAuditUrl}/get-file?storeId=${payload?.storeId}&nextId=${payload?.nextId}&limit=${payload?.limit}&Date=${payload?.Date}&count=${payload?.count}&tickettype=${payload?.tickettype}`)\r\n}\r\ngetAuditconfig(clientId:any) {\r\n return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config?clientId=${clientId}`)\r\n}\r\n\r\n\r\nexport(data: any) {\r\n return this.http.get(`${this.clientApiUrl}/audit/processing_info?export=${data.export}&userId=${data.userId}`, {responseType: 'arraybuffer'})\r\n}\r\n\r\ngetauditCard(filter: any,user:any){\r\n return this.http.get(`${this.clientApiUrl}/audit/userAuditSummary?range=${filter}&userId=${user}`)\r\n}\r\n\r\ngetactivitylog(data: any) {\r\n return this.http.post(`${this.clientApiUrl}/activitylog/list`, data)\r\n}\r\nsaveDraft(data: any) {\r\n return this.http.post(`${this.vmsAuditUrl}/save-draft`, data)\r\n}\r\ngetAuditmappinglist(payload:any) {\r\n return this.http.get(`${this.vmsAuditUrl}/get-drafted-data?fileDate=${payload?.fileDate}&storeId=${payload?.storeId}&auditId=${payload?.auditId}`)\r\n}\r\nsaveaudit(data: any) {\r\n return this.http.post(`${this.footfallDirapiUrl}/tango-review-ticket`, data)\r\n}\r\n\r\n\r\n\r\nuserDetails() {\r\n return this.http.get(`${this.auditApiUrl}/auth/me`, {\r\n }).pipe(map((response: any) => {\r\n localStorage.setItem('user-info', JSON.stringify(response.data));\r\n return response\r\n }),\r\n catchError(this.handleError));\r\n}\r\n\r\nprivate handleError(error: HttpErrorResponse): Observable<never> {\r\n return throwError(\r\n () => new Error(\"Something bad happened; please try again later\")\r\n );\r\n}\r\n\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\n// import { ManageUsersService } from '../../services-v2/manage-users.service';\r\n \r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'team-select',\r\n templateUrl: './custom-select.component.html',\r\n styleUrl: './custom-select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomSelectComponent implements OnChanges, OnInit {\r\n \r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.showDropdown = false;\r\n }\r\n }\r\n \r\n @Input() items: any\r\n @Input() searchField: string\r\n @Input() multi: boolean\r\n @Input() idField: string\r\n @Input() selectedValues: any = []\r\n @Input() disabled: boolean | undefined\r\n @Input() label: string\r\n @Output() selected = new EventEmitter<any>()\r\n filteredValues: any = []\r\n showDropdown: boolean\r\n searchValue: string\r\n instanceId: any;\r\n \r\n \r\n constructor(private cd: ChangeDetectorRef, private authService:TicketService) { }\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.authService.dropDownTrigger.subscribe((e)=>{ \r\n if(e !== this.instanceId){ \r\n this.showDropdown = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n \r\n if (changes['items'] && this.items?.length) {\r\n this.initializeItems();\r\n }\r\n if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) { \r\n this.updateSelectedValues();\r\n }\r\n }\r\n \r\n initializeItems() {\r\n this.filteredValues = this.items.map((item: any) => ({ ...item }));\r\n this.updateSelectedValues()\r\n }\r\n \r\n updateSelectedValues() { \r\n this.selectedValues?.forEach((selectedItem: any) => {\r\n const item = this.filteredValues?.find((filteredItem: any) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);\r\n if (item) {\r\n item.isSelected = true;\r\n }\r\n });\r\n \r\n }\r\n \r\n openDropdown(event: any) {\r\n this.authService.dropDownTrigger.next(this.instanceId)\r\n event.stopPropagation();\r\n this.showDropdown = !this.showDropdown;\r\n }\r\n \r\n onInput(event: any) {\r\n if (!event.target.value) {\r\n this.filteredValues = [...this.items];\r\n } else {\r\n const searchTerm = event.target.value.toLowerCase();\r\n this.filteredValues = this.items.filter((item: any) =>\r\n item[this.searchField].toLowerCase().includes(searchTerm)\r\n );\r\n }\r\n this.updateSelectedValues();\r\n this.cd.detectChanges();\r\n }\r\n \r\n onSelect(event: any, item: any) { \r\n if (this.multi) {\r\n if (event.currentTarget.checked) {\r\n this.selectedValues.push(item ); \r\n } else {\r\n this.selectedValues = this.selectedValues.filter((elem: any) => elem[this.idField] !== item[this.idField]);\r\n }\r\n } else {\r\n this.selectedValues = [{ ...item }];\r\n this.filteredValues.forEach((element:any) => {\r\n if(element[this.idField] !== item[this.idField]){\r\n element.isSelected = false\r\n }\r\n });\r\n this.showDropdown = false;\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const selectedItem = { ...value };\r\n delete selectedItem.isSelected;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n \r\n }\r\n \r\n onSelectAll(event: any) {\r\n const selectAll = event.currentTarget.checked;\r\n this.filteredValues.forEach((item: any) => item.isSelected = selectAll);\r\n \r\n if (selectAll) {\r\n this.selectedValues = [...this.filteredValues];\r\n } else {\r\n this.selectedValues = [];\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const { isSelected, ...selectedItem } = value;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n }\r\n \r\n \r\n emitSelectedValues(values: any[]) {\r\n if (this.multi) {\r\n this.selected.emit(values);\r\n } else {\r\n this.selected.emit(values[0]);\r\n }\r\n }\r\n \r\n checkIfAllSelected() {\r\n return this.filteredValues.every((item: any) => item.isSelected);\r\n }\r\n onItemClick(item: any, event: MouseEvent) {\r\n event.stopPropagation();\r\n\r\n // For multi-select, row click should not do anything special;\r\n // checkbox + onSelect already handle it\r\n if (this.multi) {\r\n return;\r\n }\r\n\r\n // Mark this item as selected so UI highlights it\r\n item.isSelected = true;\r\n\r\n // Fake an event with `currentTarget.checked = true`\r\n const fakeEvent: any = {\r\n currentTarget: {\r\n checked: true\r\n }\r\n };\r\n\r\n // Reuse your existing logic\r\n this.onSelect(fakeEvent, item);\r\n}\r\n getInitialsFromEmail(email?: string): string {\r\n if (!email) return \"\";\r\n\r\n // take text before @\r\n const namePart = email.split(\"@\")[0];\r\n\r\n // split by . or space (e.g. \"sandeep.pal\" -> [\"sandeep\", \"pal\"])\r\n const parts = namePart.split(/[.\\s_-]+/).filter(Boolean);\r\n\r\n if (parts.length >= 2) {\r\n return (parts[0][0] + parts[1][0]).toUpperCase(); // S + P = SP\r\n }\r\n\r\n // fallback: first two chars of whole namePart\r\n return namePart.substring(0, 2).toUpperCase();\r\n }\r\n\r\n}","<div class=\"outer-container\">\r\n <!-- TRIGGER -->\r\n <div\r\n [ngClass]=\"disabled ? 'disable-input' : ''\"\r\n class=\"select-trigger form-select\"\r\n (click)=\"openDropdown($event)\"\r\n >\r\n <ng-container *ngIf=\"multi; else singleMode\">\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\">\r\n <!-- <img class=\"me-2 trigger-avatar\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\" /> -->\r\n {{ selectedValues?.[0]?.[searchField] }}\r\n </span>\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">\r\n +{{ selectedValues?.length - 1 }}\r\n </span>\r\n <span *ngIf=\"!selectedValues?.length\">{{ label || 'Select' }}</span>\r\n </ng-container>\r\n\r\n <ng-template #singleMode>\r\n <span *ngIf=\"selectedValues?.[0]; else placeholderSingle\">\r\n {{ selectedValues?.[0]?.[searchField] || 'Select' }}\r\n </span>\r\n <ng-template #placeholderSingle>\r\n <span >{{ label || 'Select' }}</span>\r\n </ng-template>\r\n </ng-template>\r\n\r\n\r\n </div>\r\n\r\n <!-- DROPDOWN PANEL -->\r\n <div\r\n class=\"input-container dropdown\"\r\n [ngClass]=\"showDropdown ? '' : 'd-none'\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Search -->\r\n <div class=\"w-100 input-wrapper\">\r\n <input\r\n [(ngModel)]=\"searchValue\"\r\n placeholder=\"Search\"\r\n (input)=\"onInput($event)\"\r\n type=\"text\"\r\n />\r\n <svg\r\n class=\"search-icon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"17\"\r\n viewBox=\"0 0 16 17\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.3\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <ul>\r\n <!-- Select all (multi mode only) -->\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\">\r\n <input\r\n (change)=\"onSelectAll($event)\"\r\n [checked]=\"checkIfAllSelected()\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"instanceId\"\r\n />\r\n <span class=\"form-check-label\"> Select All </span>\r\n </label>\r\n </li>\r\n\r\n <!-- LIST ITEMS -->\r\n <li\r\n *ngFor=\"let item of filteredValues\"\r\n [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <!-- multi → checkbox + label ; single → user row (avatar + name + email) -->\r\n <ng-container *ngIf=\"multi; else singleItemTemplate\">\r\n <label\r\n [for]=\"item[idField] + instanceId\"\r\n [ngClass]=\"multi ? '' : 'ps-0'\"\r\n class=\"form-check\"\r\n >\r\n <input\r\n (change)=\"onSelect($event, item)\"\r\n [(ngModel)]=\"item.isSelected\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"item[idField] + instanceId\"\r\n />\r\n <span class=\"form-check-label\">\r\n {{ item[searchField] }}\r\n </span>\r\n </label>\r\n </ng-container>\r\n\r\n <ng-template #singleItemTemplate>\r\n <div class=\"user-row\">\r\n <div class=\"avatar avatar-text light-primary p-3\">\r\n {{ getInitialsFromEmail(item.email ||\r\n item.email) }}\r\n </div>\r\n <!-- <img\r\n class=\"user-avatar\"\r\n [src]=\"item.avatarUrl || './assets/tango/Image/Avatar.svg'\"\r\n alt=\"{{ item[searchField] }}\"\r\n /> -->\r\n <div class=\"user-text\">\r\n <div class=\"user-name\">\r\n {{ item[searchField] }}\r\n </div>\r\n <div class=\"user-email\">\r\n {{ item.email }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li *ngIf=\"!filteredValues?.length\">\r\n <span class=\"d-flex align-items-center justify-content-center\">\r\n No data found\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TicketService } from '../../services/ticket.service';\r\n\r\ntype Condition = 'gt' | 'lt' | 'gte' | 'lte' | 'between';\r\n\r\n@Component({\r\n selector: 'lib-ticket-filter-panel',\r\n templateUrl: './ticket-filter-panel.component.html',\r\n styleUrl: './ticket-filter-panel.component.scss'\r\n})\r\nexport class TicketFilterPanelComponent implements OnChanges {\r\n @Output() apply = new EventEmitter<any>();\r\n @Output() panelClosed = new EventEmitter<void>(); // ✅ not `close`\r\n @Input() permissionType: string | null = null;\r\n@Input() userType: string | null = null; // e.g. 'tango' or others\r\n@Input() client :any;\r\n @HostListener('document:click', ['$event'])\r\nonDocumentClick(event: MouseEvent): void {\r\n\r\n // 1️⃣ Always close dropdowns first\r\n this.dropdownState.status = false;\r\n this.dropdownState.reviewer = false;\r\n this.dropdownState.approver = false;\r\n\r\n // 2️⃣ If filter is not open → nothing to close\r\n if (!this.isOpen) return;\r\n\r\n // 3️⃣ Check if clicked inside filter card\r\n const clickedInside = this.eRef.nativeElement.contains(event.target);\r\n\r\n // 4️⃣ If clicked OUTSIDE → close entire filter panel\r\n if (!clickedInside) {\r\n this.isOpen = false;\r\n this.panelClosed.emit();\r\n this.filterForm.reset({\r\n status: [],\r\n reviewerCondition: null,\r\n reviewerFrom: null,\r\n reviewerTo: null,\r\n\r\n approverCondition: null,\r\n approverFrom: null,\r\n approverTo: null,\r\n\r\n tangoCondition: null,\r\n tangoFrom: null,\r\n tangoTo: null,\r\n\r\n reviewedBy: [],\r\n approvedBy: []\r\n });\r\nthis.onReset();\r\n }\r\n}\r\n isOpen = false; // controls visibility\r\n\r\n // called from parent via #filterPanel.open()\r\n open() {\r\n this.isOpen = true;\r\n }\r\n\r\n // called from close button inside the panel\r\n close() {\r\n this.isOpen = false;\r\n this.panelClosed.emit();\r\n }\r\n\r\n showPanel = false; // you can also control this from parent\r\n\r\nstatusOptions: any[] = [\r\n 'Open',\r\n 'In-Progress',\r\n 'Closed',\r\n // 'Open - Accuracy Issue',\r\n // 'Closed - Accuracy Issue',\r\n 'Expired',\r\n];\r\n\r\n\r\n conditionOptions = [\r\n { value: 'gt', label: '> Greater than' },\r\n { value: 'lt', label: '< Lesser than' },\r\n { value: 'gte', label: '>= Greater than or equal to' },\r\n { value: 'lte', label: '<= Lesser than or equal to' },\r\n { value: 'between', label: 'Between' },\r\n ];\r\n\r\n filterForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder,private eRef: ElementRef,private service:TicketService) {\r\n this.filterForm = this.fb.group({\r\n status: [[]],\r\n\r\n reviewerCondition: [null as Condition | null],\r\n reviewerFrom: [null,[Validators.min(0), Validators.max(100)]],\r\n reviewerTo: [null,[Validators.min(0), Validators.max(100)]],\r\n\r\n approverCondition: [null as Condition | null],\r\n approverFrom: [null,[Validators.min(0), Validators.max(100)]],\r\n approverTo: [null,[Validators.min(0), Validators.max(100)]],\r\n\r\n tangoCondition: [null as Condition | null],\r\n tangoFrom: [null,[Validators.min(0), Validators.max(100)]],\r\n tangoTo: [null,[Validators.min(0), Validators.max(100)]],\r\n\r\n reviewedBy: [[]],\r\n approvedBy: [[]], \r\n });\r\n this.onReset();\r\n }\r\nlimitValue(event: any, controlName: string) {\r\n let value = Number(event.target.value);\r\n\r\n if (value < 0) value = 0;\r\n if (value > 100) value = 100;\r\n\r\n event.target.value = value;\r\n this.filterForm.get(controlName)?.setValue(value, { emitEvent: false });\r\n}\r\n\r\nget isTango(): boolean {\r\n return this.userType === 'tango';\r\n}\r\n\r\n// SHOW / HIDE RULES\r\n\r\n// Reviewer accuracy and \"Reviewed by\" visible for tango + reviewer\r\nget showReviewerAccuracy(): boolean {\r\n return this.isTango || this.permissionType === 'review';\r\n}\r\n\r\nget showReviewedBy(): boolean {\r\n return this.permissionType === 'review';\r\n}\r\n\r\n// Approver accuracy and \"Approved by\" visible for tango + approver\r\nget showApproverAccuracy(): boolean {\r\n return this.isTango || this.permissionType === 'approve';\r\n}\r\n\r\nget showApprovedBy(): boolean {\r\n return this.permissionType === 'approve';\r\n}\r\n\r\n// Tango accuracy only for tango users\r\nget showTangoAccuracy(): boolean {\r\n return this.isTango;\r\n}\r\nstatusDropdownOpen = false;\r\nisStatusSelected(status: string): boolean {\r\n const selected: string[] = this.filterForm.value.status || [];\r\n return selected.includes(status);\r\n}\r\n\r\nonStatusChange(event: Event, status: string) {\r\n const checkbox = event.target as HTMLInputElement;\r\n const selected: string[] = this.filterForm.value.status || [];\r\n let next: string[];\r\n\r\n if (checkbox.checked) {\r\n next = selected.includes(status) ? selected : [...selected, status];\r\n } else {\r\n next = selected.filter(s => s !== status);\r\n }\r\n\r\n this.filterForm.patchValue({ status: next });\r\n}\r\n\r\ntoggleStatusDropdown(event?: MouseEvent) {\r\n if (event) {\r\n event.stopPropagation(); // avoid document click closing it\r\n }\r\n this.statusDropdownOpen = !this.statusDropdownOpen;\r\n}\r\n\r\n// Are all statuses currently selected?\r\nareAllStatusesSelected(): boolean {\r\n const selected: string[] = this.filterForm.value.status || [];\r\n return selected.length > 0 && selected.length === this.statusOptions.length;\r\n}\r\n\r\n// Handle \"Select All\" checkbox change\r\nonStatusSelectAllChange(event: Event) {\r\n const checkbox = event.target as HTMLInputElement;\r\n\r\n if (checkbox.checked) {\r\n // Select every status\r\n this.filterForm.patchValue({ status: [...this.statusOptions] });\r\n } else {\r\n // Clear all\r\n this.filterForm.patchValue({ status: [] });\r\n }\r\n}\r\nget selectedStatuses(): string[] {\r\n return this.filterForm.value.status || [];\r\n}\r\n\r\n isBetween(controlName: string): boolean {\r\n return this.filterForm.get(controlName)?.value === 'between';\r\n }\r\nngOnChanges(changes: SimpleChanges): void {\r\n if (changes['client'] || changes['permissionType'] || changes['userType']) {\r\n this.loadReviewerList();\r\n }\r\n}\r\n// full user list you already have\r\nuserList: any[] = [];\r\n\r\n\r\nreviewerSearchTerm: string = '';\r\n\r\n// ✅ simple computed list for *ngFor\r\nget filteredReviewerList(): { email: string; name?: string }[] {\r\n const term = (this.reviewerSearchTerm || '').trim().toLowerCase();\r\n\r\n if (!term) {\r\n return this.userList;\r\n }\r\n\r\n return this.userList.filter(u => {\r\n const email = (u.email || '').toLowerCase();\r\n const name = (u.name || '').toLowerCase();\r\n return email.includes(term) || name.includes(term);\r\n });\r\n}\r\napproverSearchTerm:any;\r\nget filteredApproverList(): any[] {\r\n const term = (this.approverSearchTerm || '').trim().toLowerCase();\r\n if (!term) {\r\n return this.userList;\r\n }\r\n\r\n return this.userList.filter((u: any) => {\r\n const email = (u.email || '').toLowerCase();\r\n const name = (u.name || '').toLowerCase();\r\n return email.includes(term) || name.includes(term);\r\n });\r\n}\r\n\r\nonApproverSearch(value: string) {\r\n this.approverSearchTerm = value;\r\n}\r\nprivate loadReviewerList(): void {\r\n if (!this.client) {\r\n this.userList = [];\r\n return;\r\n }\r\n\r\n let type: string;\r\n\r\n if (this.userType === 'tango') {\r\n type = 'tango'; // or 'all'\r\n } else if (this.permissionType === 'review') {\r\n type = 'review';\r\n } else if (this.permissionType === 'approve') {\r\n type = 'approve';\r\n } else {\r\n this.userList = [];\r\n return;\r\n }\r\n\r\n this.service.getReviewerApi(this.client, type,'').subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res.data;\r\n } else {\r\n this.userList = [];\r\n }\r\n },\r\n error: () => {\r\n this.userList = [];\r\n }\r\n });\r\n}\r\n\r\n// open flags\r\nreviewerDropdownOpen = false;\r\napproverDropdownOpen = false;\r\n\r\n// convenience getters\r\nget selectedReviewedBy(): string[] {\r\n return this.filterForm.value.reviewedBy || [];\r\n}\r\n\r\nget selectedApprovedBy(): string[] {\r\n return this.filterForm.value.approvedBy || [];\r\n}\r\n\r\n// --- Reviewed By helpers ---\r\n\r\ntoggleReviewerDropdown(event?: MouseEvent) {\r\n if (event) event.stopPropagation();\r\n this.reviewerDropdownOpen = !this.reviewerDropdownOpen;\r\n}\r\n\r\nisReviewerSelected(email: string): boolean {\r\n return this.selectedReviewedBy.includes(email);\r\n}\r\n\r\nonReviewerChange(event: Event, email: string) {\r\n const checkbox = event.target as HTMLInputElement;\r\n const selected = [...this.selectedReviewedBy];\r\n\r\n if (checkbox.checked) {\r\n if (!selected.includes(email)) selected.push(email);\r\n } else {\r\n const i = selected.indexOf(email);\r\n if (i >= 0) selected.splice(i, 1);\r\n }\r\n\r\n this.filterForm.patchValue({ reviewedBy: selected });\r\n}\r\n\r\nareAllReviewersSelected(): boolean {\r\n return (\r\n this.userList.length > 0 &&\r\n this.selectedReviewedBy.length === this.userList.length\r\n );\r\n}\r\n\r\nonReviewerSelectAll(event: Event) {\r\n const checkbox = event.target as HTMLInputElement;\r\n\r\n if (checkbox.checked) {\r\n this.filterForm.patchValue({\r\n reviewedBy: this.userList.map((u:any) => u.email),\r\n });\r\n } else {\r\n this.filterForm.patchValue({ reviewedBy: [] });\r\n }\r\n}\r\n\r\n// --- Approved By helpers ---\r\n\r\ntoggleApproverDropdown(event?: MouseEvent) {\r\n if (event) event.stopPropagation();\r\n this.approverDropdownOpen = !this.approverDropdownOpen;\r\n}\r\n\r\nisApproverSelected(email: string): boolean {\r\n return this.selectedApprovedBy.includes(email);\r\n}\r\n\r\nonApproverChange(event: Event, email: string) {\r\n const checkbox = event.target as HTMLInputElement;\r\n const selected = [...this.selectedApprovedBy];\r\n\r\n if (checkbox.checked) {\r\n if (!selected.includes(email)) selected.push(email);\r\n } else {\r\n const i = selected.indexOf(email);\r\n if (i >= 0) selected.splice(i, 1);\r\n }\r\n\r\n this.filterForm.patchValue({ approvedBy: selected });\r\n}\r\n\r\nareAllApproversSelected(): boolean {\r\n return (\r\n this.userList.length > 0 &&\r\n this.selectedApprovedBy.length === this.userList.length\r\n );\r\n}\r\n\r\nonApproverSelectAll(event: Event) {\r\n const checkbox = event.target as HTMLInputElement;\r\n\r\n if (checkbox.checked) {\r\n this.filterForm.patchValue({\r\n approvedBy: this.userList.map((u:any) => u.email),\r\n });\r\n } else {\r\n this.filterForm.patchValue({ approvedBy: [] });\r\n }\r\n}\r\n\r\nonReset(): void {\r\n this.filterForm.reset({\r\n status: [],\r\n reviewerCondition: null,\r\n reviewerFrom: null,\r\n reviewerTo: null,\r\n\r\n approverCondition: null,\r\n approverFrom: null,\r\n approverTo: null,\r\n\r\n tangoCondition: null,\r\n tangoFrom: null,\r\n tangoTo: null,\r\n\r\n reviewedBy: [],\r\n approvedBy: []\r\n });\r\n\r\n // 2️⃣ Reset search terms\r\n this.reviewerSearchTerm = '';\r\n this.approverSearchTerm = '';\r\n\r\n // 3️⃣ Build empty payload to send back\r\n const payload = {\r\n filterByStatus: [],\r\n filterByReviewer: null,\r\n filterByApprover: null,\r\n filterByTango: null,\r\n filterByReviewedBy: [],\r\n fileterByApprovedBy: []\r\n };\r\n\r\n // 4️⃣ Emit the now-empty filter result\r\n this.apply.emit(payload);\r\n\r\n // 5️⃣ Close the filter panel\r\n this.close();\r\n}\r\n\r\nprivate mapAccuracy(\r\n condition: Condition | null,\r\n from: number | null,\r\n to: number | null\r\n): string | null {\r\n\r\n // nothing selected\r\n if (!condition || from == null) return null;\r\n\r\n // \"between\" → \"90 to 100\"\r\n if (condition === 'between') {\r\n if (to == null) return null;\r\n return `${from} to ${to}`;\r\n }\r\n\r\n // other conditions (gt, lt, gte, lte)\r\n const opMap: Record<Condition, string> = {\r\n gt: '>',\r\n lt: '<',\r\n gte: '>=',\r\n lte: '<=',\r\n between: '', // already handled above\r\n };\r\n\r\n return `${opMap[condition]}${from}`; // e.g. \">= 90\"\r\n}\r\n\r\n onApply(): void {\r\n\r\n const raw = this.filterForm.value;\r\n\r\n const reviewerStr = this.mapAccuracy(raw.reviewerCondition, raw.reviewerFrom, raw.reviewerTo);\r\n const approverStr = this.mapAccuracy(raw.approverCondition, raw.approverFrom, raw.approverTo);\r\n const tangoStr = this.mapAccuracy(raw.tangoCondition, raw.tangoFrom, raw.tangoTo);\r\n\r\n const payload = {\r\n filterByStatus: raw.status || [],\r\n\r\n filterByReviewer: reviewerStr,\r\n filterByApprover: approverStr,\r\n filterByTango: tangoStr,\r\n\r\n filterByReviewedBy: raw.reviewedBy || [], \r\n fileterByApprovedBy: raw.approvedBy || [], \r\n };\r\n this.apply.emit(payload);\r\n this.close();\r\n this.showPanel = false;\r\n }\r\n\r\ndropdownState = {\r\n status: false,\r\n reviewer: false,\r\n approver: false\r\n};\r\n// @HostListener('document:click')\r\ncloseAll() {\r\n this.dropdownState.status = false;\r\n this.dropdownState.reviewer = false;\r\n this.dropdownState.approver = false;\r\n}\r\n\r\ntoggleDropdown(type: 'status' | 'reviewer' | 'approver', event: MouseEvent) {\r\n event.stopPropagation();\r\n\r\n // Close all before opening a new one\r\n this.closeAll();\r\n\r\n // Toggle only the selected one\r\n this.dropdownState[type] = !this.dropdownState[type];\r\n}\r\n\r\nisDropdownOpen(type: 'status' | 'reviewer' | 'approver') {\r\n return this.dropdownState[type];\r\n}\r\n}\r\n","<!-- ticket-filter-panel.component.html -->\r\n<div class=\"filter-wrapper\" *ngIf=\"isOpen\">\r\n <div class=\"filter-card\">\r\n <div class=\"filter-header d-flex justify-content-between align-items-center mb-3\">\r\n <div class=\"title\">Filter Options</div>\r\n <!-- <button type=\"button\" class=\"btn-close\" (click)=\"close()\">✕</button> -->\r\n </div>\r\n\r\n <form [formGroup]=\"filterForm\">\r\n <!-- Status -->\r\n<div class=\"mb-3 position-relative\" (click)=\"$event.stopPropagation()\">\r\n <label class=\"form-label\">Status</label>\r\n\r\n <!-- Header / trigger -->\r\n <div\r\n class=\"status-select border rounded px-3 py-2 d-flex justify-content-between align-items-center\"\r\n (click)=\"toggleDropdown('status', $event)\"\r\n >\r\n <span *ngIf=\"!selectedStatuses.length\">Select</span>\r\n\r\n <span *ngIf=\"selectedStatuses.length === 1\">\r\n {{ selectedStatuses[0] }}\r\n </span>\r\n\r\n <span *ngIf=\"selectedStatuses.length > 1\" class=\"d-flex align-items-center\">\r\n <span>{{ selectedStatuses[0] }}</span>\r\n <span class=\"badge ms-2\">\r\n +{{ selectedStatuses.length - 1 }}\r\n </span>\r\n </span>\r\n\r\n </div>\r\n\r\n <!-- DROPDOWN PANEL (OVERLAY) -->\r\n <div\r\n class=\"status-dropdown position-absolute w-100 mt-1 border rounded p-1 bg-white\"\r\n style=\"z-index: 1000; max-height: 220px; overflow-y: auto;\"\r\n *ngIf=\"isDropdownOpen('status')\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Select All -->\r\n <div class=\"form-check px-0 d-flex align-items-center mb-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input \"\r\n id=\"status-select-all\"\r\n [checked]=\"areAllStatusesSelected()\"\r\n (change)=\"onStatusSelectAllChange($event)\"\r\n />\r\n <label class=\"form-check-label text-dark ms-2\" for=\"status-select-all\">\r\n Select All\r\n </label>\r\n </div>\r\n\r\n\r\n <!-- Options -->\r\n <div\r\n class=\"form-check px-0 d-flex align-items-center mb-1\"\r\n *ngFor=\"let s of statusOptions\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input \"\r\n [id]=\"'status-' + s\"\r\n [checked]=\"isStatusSelected(s)\"\r\n (change)=\"onStatusChange($event, s)\"\r\n />\r\n <label class=\"form-check-label text-dark ms-2\" [for]=\"'status-' + s\">\r\n {{ s }}\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n <!-- Reviewer accuracy -->\r\n <div class=\"mb-3\" *ngIf=\"showReviewerAccuracy\" (click)=\"closeAll()\">\r\n <label class=\"form-label\">Reviewer accuracy (%) by condition</label>\r\n <div class=\"d-flex gap-2\">\r\n <select class=\"form-select w-100\" formControlName=\"reviewerCondition\">\r\n <option [ngValue]=\"null\">Select</option>\r\n <option *ngFor=\"let c of conditionOptions\" [ngValue]=\"c.value\">\r\n {{ c.label }}\r\n </option>\r\n </select>\r\n\r\n <!-- one or two inputs -->\r\n <ng-container *ngIf=\"isBetween('reviewerCondition'); else singleReviewer\">\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"reviewerFrom\"\r\n placeholder=\"From\" (input)=\"limitValue($event, 'reviewerFrom')\" />\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"reviewerTo\"\r\n placeholder=\"To\" (input)=\"limitValue($event, 'reviewerTo')\" />\r\n </ng-container>\r\n <ng-template #singleReviewer>\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"reviewerFrom\"\r\n placeholder=\"1 to 100%\" (input)=\"limitValue($event, 'reviewerFrom')\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <!-- Approver accuracy -->\r\n <div class=\"mb-3\" *ngIf=\"showApproverAccuracy\" (click)=\"closeAll()\">\r\n <label class=\"form-label\">Approver accuracy (%) by condition</label>\r\n <div class=\"d-flex gap-2\">\r\n <select class=\"form-select w-100\" formControlName=\"approverCondition\">\r\n <option [ngValue]=\"null\">Select</option>\r\n <option *ngFor=\"let c of conditionOptions\" [ngValue]=\"c.value\">\r\n {{ c.label }}\r\n </option>\r\n </select>\r\n\r\n <ng-container *ngIf=\"isBetween('approverCondition'); else singleApprover\">\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"approverFrom\"\r\n placeholder=\"From\" \r\n (input)=\"limitValue($event, 'approverFrom')\"/>\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"approverTo\"\r\n placeholder=\"To\" (input)=\"limitValue($event, 'approverTo')\" />\r\n </ng-container>\r\n <ng-template #singleApprover>\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"approverFrom\"\r\n placeholder=\"1 to 100%\" (input)=\"limitValue($event, 'approverFrom')\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango accuracy -->\r\n <div class=\"mb-3\" *ngIf=\"showTangoAccuracy\" (click)=\"closeAll()\">\r\n <label class=\"form-label\">Tango accuracy (%) by condition</label>\r\n <div class=\"d-flex gap-2\">\r\n <select class=\"form-select w-100\" formControlName=\"tangoCondition\">\r\n <option [ngValue]=\"null\">Select</option>\r\n <option *ngFor=\"let c of conditionOptions\" [ngValue]=\"c.value\">\r\n {{ c.label }}\r\n </option>\r\n </select>\r\n\r\n <ng-container *ngIf=\"isBetween('tangoCondition'); else singleTango\">\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"tangoFrom\"\r\n placeholder=\"From\" (input)=\"limitValue($event, 'tangoFrom')\" />\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"tangoTo\"\r\n placeholder=\"To\" (input)=\"limitValue($event, 'tangoTo')\" />\r\n </ng-container>\r\n <ng-template #singleTango>\r\n <input\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"100\"\r\n class=\"form-control\"\r\n formControlName=\"tangoFrom\"\r\n placeholder=\"1 to 100%\" (input)=\"limitValue($event, 'tangoFrom')\" />\r\n </ng-template>\r\n </div>\r\n </div>\r\n<div\r\n class=\"mb-3 position-relative\"\r\n *ngIf=\"showReviewedBy\"\r\n (click)=\"$event.stopPropagation()\"\r\n>\r\n <label class=\"form-label\">Reviewed by</label>\r\n\r\n <!-- Trigger / display -->\r\n <div\r\n class=\"border rounded px-3 py-2 d-flex justify-content-between align-items-center\"\r\n (click)=\"toggleDropdown('reviewer', $event)\"\r\n >\r\n <!-- 0 selected -->\r\n <span *ngIf=\"!selectedReviewedBy.length\">\r\n Select\r\n </span>\r\n\r\n <!-- 1 selected -->\r\n <span *ngIf=\"selectedReviewedBy.length === 1\">\r\n {{ selectedReviewedBy[0] }}\r\n </span>\r\n\r\n <!-- >1 selected -->\r\n <span\r\n *ngIf=\"selectedReviewedBy.length > 1\"\r\n class=\"d-flex align-items-center\"\r\n >\r\n <span>{{ selectedReviewedBy[0] }}</span>\r\n <span class=\"badge ms-2\">\r\n +{{ selectedReviewedBy.length - 1 }}\r\n </span>\r\n </span>\r\n </div>\r\n\r\n<div\r\n *ngIf=\"isDropdownOpen('reviewer')\"\r\n class=\"position-absolute w-100 border rounded bg-white p-1 mt-1\"\r\n style=\"z-index: 1000; max-height: 220px; overflow-y: auto;\"\r\n (click)=\"$event.stopPropagation()\"\r\n>\r\n\r\n <!-- 🔍 Search box -->\r\n <!-- <div class=\"mb-2 px-0\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n placeholder=\"Search by email\"\r\n [(ngModel)]=\"reviewerSearchTerm\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div> -->\r\n\r\n <!-- Select All -->\r\n <div class=\"form-check px-0 mb-2 d-flex align-items-center\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n id=\"reviewer-all\"\r\n [checked]=\"areAllReviewersSelected()\"\r\n (change)=\"onReviewerSelectAll($event)\"\r\n />\r\n <label for=\"reviewer-all\" class=\"form-check-label text-dark ms-2\">\r\n Select All\r\n </label>\r\n </div>\r\n\r\n <!-- Options – now use getter filteredReviewerList -->\r\n <div\r\n class=\"form-check mb-1 px-0 d-flex align-items-center\"\r\n *ngFor=\"let u of filteredReviewerList\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"'rev-' + u.email\"\r\n [checked]=\"isReviewerSelected(u.email)\"\r\n (change)=\"onReviewerChange($event, u.email)\"\r\n />\r\n <label class=\"form-check-label text-dark ms-2\" [for]=\"'rev-' + u.email\">\r\n {{ u.email }}\r\n </label>\r\n </div>\r\n</div>\r\n\r\n\r\n</div>\r\n\r\n\r\n <!-- Approved By -->\r\n<div\r\n class=\"mb-3 position-relative\"\r\n *ngIf=\"showApprovedBy\"\r\n (click)=\"$event.stopPropagation()\"\r\n>\r\n <label class=\"form-label\">Approved by</label>\r\n\r\n <!-- Trigger / display -->\r\n <div\r\n class=\"border rounded px-3 py-2 d-flex justify-content-between align-items-center\"\r\n (click)=\"toggleDropdown('approver', $event)\"\r\n >\r\n <!-- 0 selected -->\r\n <span *ngIf=\"!selectedApprovedBy.length\">\r\n Select\r\n </span>\r\n\r\n <!-- 1 selected -->\r\n <span *ngIf=\"selectedApprovedBy.length === 1\">\r\n {{ selectedApprovedBy[0] }}\r\n </span>\r\n\r\n <!-- >1 selected -->\r\n <span\r\n *ngIf=\"selectedApprovedBy.length > 1\"\r\n class=\"d-flex align-items-center\"\r\n >\r\n <span>{{ selectedApprovedBy[0] }}</span>\r\n <span class=\"badge ms-2\">\r\n +{{ selectedApprovedBy.length - 1 }}\r\n </span>\r\n </span>\r\n\r\n </div>\r\n<!-- Dropdown panel -->\r\n<div\r\n *ngIf=\"isDropdownOpen('approver')\"\r\n class=\"position-absolute w-100 border rounded bg-white p-1 mt-1\"\r\n style=\"z-index: 1000; max-height: 220px; overflow-y: auto;\"\r\n (click)=\"$event.stopPropagation()\"\r\n>\r\n\r\n <!-- 🔍 Search box -->\r\n <!-- <div class=\"mb-2 px-0\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n placeholder=\"Search by email\"\r\n [ngModel]=\"approverSearchTerm\"\r\n (ngModelChange)=\"onReviewerSearch($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div> -->\r\n\r\n <!-- Select All -->\r\n <div class=\"form-check px-0 mb-2 d-flex align-items-center\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n id=\"reviewer-all\"\r\n [checked]=\"areAllReviewersSelected()\"\r\n (change)=\"onReviewerSelectAll($event)\"\r\n />\r\n <label for=\"reviewer-all\" class=\"form-check-label text-dark ms-2\">\r\n Select All\r\n </label>\r\n </div>\r\n\r\n <!-- Options (use filteredReviewerList instead of userList) -->\r\n <div\r\n class=\"form-check mb-1 px-0 d-flex align-items-center\"\r\n *ngFor=\"let u of filteredApproverList\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"'rev-' + u.email\"\r\n [checked]=\"isReviewerSelected(u.email)\"\r\n (change)=\"onReviewerChange($event, u.email)\"\r\n />\r\n <label class=\"form-check-label text-dark ms-2\" [for]=\"'rev-' + u.email\">\r\n {{ u.email }}\r\n </label>\r\n </div>\r\n</div>\r\n\r\n <!-- Dropdown panel -->\r\n\r\n</div>\r\n\r\n\r\n <!-- Footer buttons -->\r\n <div class=\"d-flex justify-content-between w-100 mt-4\">\r\n <button type=\"button\" class=\"btn btn-outline w-50 me-1\" (click)=\"onReset()\">\r\n Reset\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary w-50 ms-1\" (click)=\"onApply()\">\r\n Apply\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n AfterViewInit,\r\n OnDestroy,\r\n OnInit,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n HostListener,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n} from \"@angular/core\";\r\nimport { FootfallPopupComponent } from \"../footfall-popup/footfall-popup.component\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ExcelService } from \"../../services/excel.service\";\r\nimport { ToastService } from \"tango-app-ui-shared\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport dayjs from \"dayjs\";\r\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\r\nimport { TicketclosepopupComponent } from \"../ticketclosepopup/ticketclosepopup.component\";\r\nimport { AuditService } from \"../../services/audit.service\";\r\ndayjs.extend(customParseFormat);\r\n\r\n@Component({\r\n selector: \"lib-ticket-footfall-new\",\r\n templateUrl: \"./ticket-footfall-new.component.html\",\r\n styleUrl: \"./ticket-footfall-new.component.scss\",\r\n})\r\nexport class TicketFootfallNewComponent implements OnInit, OnDestroy {\r\n searchValue: any = \"\";\r\n sortedColumn: string = \"\";\r\n sortDirection: number = 1;\r\n private readonly destroy$ = new Subject();\r\n constructor(\r\n private modalService: NgbModal,\r\n public gs: GlobalStateService,\r\n private service: TicketService,\r\n private cd: ChangeDetectorRef,\r\n private excelService: ExcelService,\r\n private ts: ToastService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private auditservice: AuditService\r\n ) {}\r\n headerFilters: any;\r\n footfallList_req: any;\r\n usersDetails: any;\r\n selectedStore: any;\r\n selectedReviewer: any;\r\n storeList: any = [];\r\n dayjs = dayjs;\r\n selectedDateRange: any = {};\r\n arrowshow = true;\r\n accuracyList: any = [];\r\n selectedIssue: any = \"\";\r\n selectedsubIssue: any = \"\";\r\n isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate = m > this.dayjs();\r\n return isValidDate ? \"invalid-date\" : false;\r\n };\r\n @ViewChild(\"tooltip\") tooltip: MatTooltip;\r\n footfallcount: any = 0;\r\n @ViewChild(\"internalticket\") internalticket: any;\r\n @ViewChild(\"closeacuuracyissue\") closeacuuracyissue: any;\r\n clientData: any;\r\n ngOnInit(): void {\r\n let tickettype = sessionStorage.getItem(\"ticketType\");\r\n this.tangoType = tickettype;\r\n sessionStorage.clear();\r\n this.imageUrl = this.service?.footfallCDN;\r\n let clientdata: any = localStorage.getItem(\"footfall-config\");\r\n this.clientData = JSON.parse(clientdata);\r\n let userData: any = localStorage.getItem(\"user-info\");\r\n this.usersDetails = JSON.parse(userData);\r\n\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.footfallList_req = {\r\n client: this.headerFilters.clients.toString(),\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n };\r\n if (!this.selectedRole) {\r\n if (this.hasApproverAccess) {\r\n this.selectedRole = \"approver\";\r\n } else if (this.hasReviewerAccess) {\r\n this.selectedRole = \"reviewer\";\r\n }\r\n }\r\n this.viewTicket(\"store\");\r\n let payload = {\r\n clientId: this.headerFilters.clients,\r\n };\r\n const yesterday = this.dayjs().subtract(1, \"days\");\r\n const formattedDate = {\r\n startDate: yesterday.format(\"YYYY-MM-DD\"),\r\n endDate: yesterday.format(\"YYYY-MM-DD\"),\r\n };\r\n this.selectedDateRange = {\r\n startDate: yesterday.format(\"DD-MM-YYYY\"),\r\n endDate: yesterday.format(\"DD-MM-YYYY\"),\r\n };\r\n this.service.getstoreList(payload).subscribe({\r\n next: (e: any) => {\r\n if (e) {\r\n this.storeList = e.data.result;\r\n }\r\n },\r\n });\r\n }\r\n },\r\n });\r\n }\r\n viewTicket(type: any) {\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.tangoType = type;\r\n this.getTicketSummary(type);\r\n this.select = \"ticketList\";\r\n if (this.usersDetails?.userType !== \"tango\") {\r\n if (this.hasApproverAccess && this.selectedRole === \"approver\") {\r\n this.SelectedRole(\"approver\");\r\n return;\r\n }\r\n\r\n if (this.hasReviewerAccess && this.selectedRole === \"reviewer\") {\r\n this.SelectedRole(\"reviewer\");\r\n return;\r\n }\r\n }\r\n this.getTicketList(type);\r\n }\r\n\r\n private areAllItemsReviewed(mapping: any): boolean {\r\n const revised = mapping?.revisedDetail || [];\r\n if (!revised.length) return false;\r\n\r\n const itemsToCheck: any[] = [];\r\n\r\n revised.forEach((detail: any) => {\r\n // If duplicate parent → check its duplicateImage children\r\n if (\r\n detail?.revopsType === \"duplicate\" &&\r\n detail?.isParent &&\r\n Array.isArray(detail?.duplicateImage) &&\r\n detail.duplicateImage.length\r\n ) {\r\n itemsToCheck.push(...detail.duplicateImage);\r\n } else {\r\n // Normal item or non-parent duplicate\r\n itemsToCheck.push(detail);\r\n }\r\n });\r\n\r\n // All must have review approved/rejected\r\n return (\r\n itemsToCheck.length > 0 &&\r\n itemsToCheck.every((item) => this.hasReviewDecision(item))\r\n );\r\n }\r\n private hasReviewDecision(item: any): boolean {\r\n const actions = item?.actions || [];\r\n return actions.some(\r\n (a: any) =>\r\n a.actionType === \"review\" &&\r\n (a.action === \"approved\" || a.action === \"rejected\")\r\n );\r\n }\r\n\r\n selectedRole: \"approver\" | \"reviewer\" | \"\" = \"\";\r\n statusVal: any;\r\n dueDate: any;\r\n reviewStatus = false;\r\n getHeaderStatus(): any {\r\n // Default: ticket-level status\r\n let headerStatus = this.ticketData?.status || \"--\";\r\n // if(headerStatus === 'Open'){\r\n // this.isCheckboxEnable =false;\r\n // } else if(headerStatus === 'In-Progress'){\r\n // this.isCheckboxEnable =true;\r\n // }\r\n if (!this.footfallTicketsData || !this.footfallTicketsData.length) {\r\n return headerStatus;\r\n }\r\n\r\n // 🔹 1) Collect latest mapping by type (only those with a status)\r\n let tangoMapping: any = null;\r\n let approverMapping: any = null;\r\n let reviewerMapping: any = null;\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket?._source;\r\n const mappingList = source?.mappingInfo || [];\r\n\r\n for (const m of mappingList) {\r\n this.dueDate = m.dueDate ? m.dueDate : \"\";\r\n if (!m?.status) continue; // need status to show in header\r\n\r\n if (m.type === \"tangoreview\") {\r\n tangoMapping = m; // last tango wins\r\n }\r\n\r\n if (m.type === \"approve\") {\r\n approverMapping = m; // last approve wins (Open / In-Progress / Closed)\r\n }\r\n\r\n if (m.type === \"review\") {\r\n reviewerMapping = m; // last review wins\r\n }\r\n }\r\n }\r\n\r\n // 🔹 2) Compute permissionType same as your API\r\n let permissionType: \"approve\" | \"review\" | null = null;\r\n\r\n if (this.usersDetails?.userType !== \"tango\") {\r\n if (this.hasApproverAccess && this.selectedRole === \"approver\") {\r\n permissionType = \"approve\";\r\n } else if (this.hasReviewerAccess && this.selectedRole === \"reviewer\") {\r\n permissionType = \"review\";\r\n }\r\n }\r\n\r\n let roleMapping: any = null;\r\n\r\n // 🔹 3) Decide which mapping to show in header\r\n if (!permissionType) {\r\n // tango or no special role → prefer tango > approve > review\r\n roleMapping = tangoMapping || approverMapping || reviewerMapping;\r\n } else if (permissionType === \"approve\") {\r\n // approver view → try approve first, else fallbacks\r\n roleMapping = approverMapping || tangoMapping || reviewerMapping;\r\n } else if (permissionType === \"review\") {\r\n // reviewer view → try review first, else fallbacks\r\n roleMapping = reviewerMapping;\r\n }\r\n\r\n // Save for other places if needed\r\n this.statusVal = roleMapping;\r\n if (roleMapping?.status) {\r\n this.areAllItemsReviewed(roleMapping); // keep your side-effect\r\n headerStatus = roleMapping.status; // \"Open\", \"In-Progress\", \"Closed\", etc.\r\n }\r\n return headerStatus;\r\n }\r\n\r\n approverClosed: any = false;\r\n getCurrentRoleMapping(): any {\r\n if (!this.footfallTicketsData || !this.footfallTicketsData.length) {\r\n return null;\r\n }\r\n\r\n let approverMapping: any = null;\r\n let reviewerMapping: any = null;\r\n let tangoMapping: any = null;\r\n let hasClosedApprove = false; // 👈 track overall condition\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket?._source;\r\n const mappingList = source?.mappingInfo || [];\r\n\r\n for (const m of mappingList) {\r\n // 👇 overall check for arrowshow (approve + Closed)\r\n if (m?.type === \"approve\" && m?.status === \"Closed\") {\r\n this.approverClosed = hasClosedApprove = true;\r\n this.arrowshow = !hasClosedApprove;\r\n // console.log(this.approverClosed)\r\n }\r\n\r\n if (m?.type === \"tangoreview\" && m?.revisedDetail?.length) {\r\n tangoMapping = m; // last tango wins\r\n }\r\n\r\n if (m?.type === \"approve\" && m?.revisedDetail?.length) {\r\n approverMapping = m;\r\n // last approve wins\r\n }\r\n\r\n if (m?.type === \"review\" && m?.revisedDetail?.length) {\r\n reviewerMapping = m; // last review wins\r\n }\r\n }\r\n }\r\n if (tangoMapping) {\r\n return tangoMapping;\r\n }\r\n\r\n // 🔹 2) Then approver / reviewer based on access\r\n if (this.hasApproverAccess && approverMapping) {\r\n return approverMapping;\r\n }\r\n\r\n if (this.hasReviewerAccess && reviewerMapping) {\r\n return reviewerMapping;\r\n }\r\n\r\n // 🔹 3) Fallback if nothing found\r\n return null;\r\n }\r\n\r\n disableToday = (date: any): boolean => {\r\n const today = dayjs().format(\"YYYY-MM-DD\");\r\n return dayjs(date).format(\"YYYY-MM-DD\") === today;\r\n };\r\n\r\n datechange(event: any) {\r\n if (event && event.startDate && event.endDate) {\r\n if (\r\n this.dayjs(event.startDate).isValid() &&\r\n this.dayjs(event.endDate).isValid()\r\n ) {\r\n this.selectedDateRange.startDate = event.startDate;\r\n this.selectedDateRange.endDate = event.endDate;\r\n var datetime = {\r\n startDate: this.dayjs(event.startDate, \"DD-MM-YYYY\").format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n endDate: this.dayjs(event.endDate, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\r\n };\r\n if (this.selectedStore?.storeId) {\r\n this.service\r\n .getfootfallcount({\r\n storeId: this.selectedStore?.storeId,\r\n Date: this.dayjs(\r\n this.selectedDateRange.startDate,\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\"),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n // console.log(res.data)\r\n this.footfallcount = res?.data[0]?.footfallCount;\r\n }\r\n },\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n getStatusBadgeClass(status: string): string {\r\n const map: any = {\r\n Open: \"badge-light-warning\",\r\n open: \"badge-light-warning\",\r\n \"In-Progress\": \"badge-light-primary\",\r\n tangoreview: \"badge-light-primary\",\r\n Closed: \"badge-secondary\",\r\n Pending: \"badge-light-warning\",\r\n \"Reviewer-Closed\": \"badge-light-warning\",\r\n Rejected: \"badge-light-danger\",\r\n \"Open - Accuracy Issue\": \"badge-light-danger\",\r\n Raised: \"badge-light-info\",\r\n };\r\n\r\n return map[status] || \"badge-light-dark\"; // fallback\r\n }\r\n\r\n getFootfallSummaryData: any;\r\n getTicketSummary(type: any) {\r\n this.setPermissionType();\r\n this.service\r\n .getTicketSummaryApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n type,\r\n this.permissionType\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.data && res?.data?.result) {\r\n this.getFootfallSummaryData = res?.data?.result;\r\n } else {\r\n this.getFootfallSummaryData = [];\r\n }\r\n },\r\n error: (err: any) => {\r\n this.getFootfallSummaryData = [];\r\n },\r\n complete: () => {\r\n this.getFootfallSummaryData.length === 0;\r\n },\r\n });\r\n this.cd.detectChanges();\r\n }\r\n offset = 1;\r\n limit = 10;\r\n isExport: any = false;\r\n footfallListData: any;\r\n totalItems: any;\r\n paginationSizes = [10, 20, 30];\r\n loading = true;\r\n noData = false;\r\n tangoType: any = \"store\";\r\n filterPayload: any = null;\r\n permissionType: string | null = null;\r\n setPermissionType() {\r\n if (this.usersDetails?.userType !== \"tango\") {\r\n this.permissionType =\r\n this.hasApproverAccess && this.selectedRole === \"approver\"\r\n ? \"approve\"\r\n : this.hasReviewerAccess && this.selectedRole === \"reviewer\"\r\n ? \"review\"\r\n : null;\r\n } else {\r\n // tango -> can see all flows\r\n this.permissionType = \"\";\r\n }\r\n }\r\n private buildFiltersForApi(): any {\r\n const p = this.filterPayload || {};\r\n\r\n // Always send all keys\r\n const filters: any = {\r\n filterByStatus: [],\r\n filterByTango: null,\r\n filterByReviewer: null,\r\n filterByApprover: null,\r\n filterByReviewedBy: [],\r\n fileterByApprovedBy: [],\r\n };\r\n\r\n // Status\r\n if (p.filterByStatus?.length) {\r\n filters.filterByStatus = p.filterByStatus;\r\n }\r\n\r\n // Role-based Accuracy Blocks\r\n if (this.usersDetails?.userType === \"tango\") {\r\n filters.filterByTango = p.filterByTango?.length ? p.filterByTango : null;\r\n filters.filterByReviewer = p.filterByReviewer?.length\r\n ? p.filterByReviewer\r\n : null;\r\n filters.filterByApprover = p.filterByApprover?.length\r\n ? p.filterByApprover\r\n : null;\r\n } else if (this.permissionType === \"review\") {\r\n filters.filterByReviewer = p.filterByReviewer?.length\r\n ? p.filterByReviewer\r\n : null;\r\n } else if (this.permissionType === \"approve\") {\r\n filters.filterByApprover = p.filterByApprover?.length\r\n ? p.filterByApprover\r\n : null;\r\n }\r\n\r\n // ReviewedBy\r\n if (p.filterByReviewedBy?.length) {\r\n filters.filterByReviewedBy = p.filterByReviewedBy;\r\n }\r\n\r\n // ApprovedBy\r\n if (p.fileterByApprovedBy?.length) {\r\n filters.fileterByApprovedBy = p.fileterByApprovedBy; // keep spelling\r\n }\r\n\r\n return filters;\r\n }\r\n\r\n getTicketList(type: any) {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.loading = true;\r\n this.noData = false;\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.isExport = false;\r\n this.footfallListData = [];\r\n this.setPermissionType(); // make sure it’s up-to-date\r\n\r\n const filters = this.buildFiltersForApi();\r\n\r\n this.service\r\n .getTicketListApi(\r\n this.footfallList_req?.client,\r\n this.footfallList_req?.fromDate,\r\n this.footfallList_req?.toDate,\r\n this.searchValue,\r\n 10,\r\n 1,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection,\r\n type,\r\n this.permissionType,\r\n filters\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.footfallListData = res?.data?.result;\r\n\r\n if (this.footfallListData.length > 0) {\r\n this.generateColumns(this.footfallListData[0]);\r\n }\r\n this.totalItems = res?.data?.count;\r\n if (this.totalItems < 10) {\r\n this.paginationSizes = [this.totalItems];\r\n } else {\r\n this.paginationSizes = [10, 20, 30];\r\n }\r\n } else {\r\n this.totalItems = 0;\r\n this.noData = true;\r\n this.loading = false;\r\n this.footfallListData = [];\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n }\r\n tableColumns: any[] = [];\r\n labelOverrides: Record<string, string> = {\r\n ticketId: \"Ticket ID\",\r\n storeName: \"Store Name\",\r\n storeId: \"Store ID\", // or just 'Store'\r\n storeRevisedAccuracy: \"Store (Accuracy%)\",\r\n reviewerRevisedAccuracy: \"Reviewer (Accuracy%)\",\r\n approverRevisedAccuracy: \"Approver (Accuracy%)\",\r\n tangoRevisedAccuracy: \"Tango (Accuracy%)\",\r\n ticketRaised: \"Ticket Raised On\",\r\n issueDate: \"Issue Date\",\r\n footfall: \"Actual FF\",\r\n };\r\n hiddenColumns: string[] = [\r\n \"storeName\", // uncomment if you want to REMOVE the extra \"Store Name\" column\r\n \"type\",\r\n ];\r\n sortableColumns: string[] = [\"issueDate\", \"storeId\", \"footfall\"];\r\n\r\n generateColumns(firstRow: any) {\r\n const keys = Object.keys(firstRow).filter(\r\n (key) => !this.hiddenColumns.includes(key)\r\n ); // remove unwanted columns\r\n\r\n this.tableColumns = keys.map((key) => ({\r\n key,\r\n label: this.labelOverrides[key] ?? this.formatColumnName(key),\r\n sortable: this.sortableColumns.includes(key), // ✅ only 3 columns sortable\r\n type: this.detectColumnType ? this.detectColumnType(key) : null,\r\n }));\r\n }\r\n\r\n formatColumnName(key: string): string {\r\n return key\r\n .replace(/([A-Z])/g, \" $1\")\r\n .replace(/_/g, \" \")\r\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\r\n }\r\n\r\n detectColumnType(key: string) {\r\n if (key === \"storeName\" || key === \"ticketId\") return \"store\";\r\n if (key.toLowerCase().includes(\"date\") || key === \"ticketRaised\")\r\n return \"date\";\r\n if (key.toLowerCase().includes(\"status\")) return \"status\";\r\n return \"text\";\r\n }\r\n currentPage: any = 1;\r\n pageSize: any = 10;\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset);\r\n this.offset = Number(pageOffset);\r\n // this.limit = 10;\r\n this.loading = true;\r\n this.noData = false;\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.isExport = false;\r\n this.setPermissionType(); // make sure it’s up-to-date\r\n\r\n const filters = this.buildFiltersForApi();\r\n\r\n this.service\r\n .getTicketListApi(\r\n this.footfallList_req?.client,\r\n this.footfallList_req?.fromDate,\r\n this.footfallList_req?.toDate,\r\n this.searchValue,\r\n this.limit,\r\n this.offset,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection,\r\n this.tangoType,\r\n this.permissionType,\r\n filters\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.footfallListData = res?.data?.result;\r\n if (this.footfallListData.length > 0) {\r\n this.generateColumns(this.footfallListData[0]);\r\n }\r\n this.totalItems = res?.data?.count;\r\n if (this.totalItems < 10) {\r\n this.paginationSizes = [this.totalItems];\r\n } else {\r\n this.paginationSizes = [10, 20, 30];\r\n }\r\n } else {\r\n this.totalItems = 0;\r\n this.noData = true;\r\n this.loading = false;\r\n this.footfallListData = [];\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize);\r\n this.limit = Number(pageSize);\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.loading = true;\r\n this.noData = false;\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.isExport = false;\r\n this.setPermissionType(); // make sure it’s up-to-date\r\n\r\n const filters = this.buildFiltersForApi();\r\n\r\n this.service\r\n .getTicketListApi(\r\n this.footfallList_req?.client,\r\n this.footfallList_req?.fromDate,\r\n this.footfallList_req?.toDate,\r\n this.searchValue,\r\n this.limit,\r\n this.offset,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection,\r\n this.tangoType,\r\n this.permissionType,\r\n filters\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.footfallListData = res?.data?.result;\r\n if (this.footfallListData.length > 0) {\r\n this.generateColumns(this.footfallListData[0]);\r\n }\r\n this.totalItems = res?.data?.count;\r\n if (this.totalItems < 10) {\r\n this.paginationSizes = [this.totalItems];\r\n } else {\r\n this.paginationSizes = [10, 20, 30];\r\n }\r\n } else {\r\n this.totalItems = 0;\r\n this.noData = true;\r\n this.loading = false;\r\n this.footfallListData = [];\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n }\r\n\r\n setpageSize() {\r\n if (this.totalItems < 10) {\r\n return this.totalItems;\r\n } else {\r\n return this.pageSize;\r\n }\r\n }\r\n searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.getTicketList(this.tangoType);\r\n }\r\n storeChange(event: any) {\r\n this.selectedStore = { storeId: event.storeId, storeName: event.storeName };\r\n this.service\r\n .getfootfallcount({\r\n storeId: this.selectedStore?.storeId,\r\n Date: this.dayjs(this.selectedDateRange.startDate, \"DD-MM-YYYY\").format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n // console.log(res.data)\r\n this.footfallcount = res?.data[0]?.footfallCount;\r\n }\r\n },\r\n });\r\n }\r\n onStartDateChange(event: any) {\r\n if (this.dayjs(event.startDate).isValid()) {\r\n this.isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate =\r\n m > this.dayjs() || m > this.dayjs(event.startDate.add(90, \"days\"));\r\n return isValidDate ? \"invalid-date\" : false;\r\n };\r\n }\r\n }\r\n\r\n createInternalticket() {\r\n this.selectedStore = {};\r\n this.footfallcount = 0;\r\n const modalRef = this.modalService.open(this.internalticket);\r\n modalRef.result.then((result) => {\r\n if (result === \"isConfirmed\") {\r\n let obj = {\r\n storeId: this.selectedStore?.storeId,\r\n dateString: dayjs(\r\n this.selectedDateRange.startDate,\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\"),\r\n storeName: this.selectedStore?.storeName,\r\n ticketName: \"footfall-directory\",\r\n footfallCount: this.footfallcount,\r\n clientId: this.headerFilters?.client,\r\n status: \"Raised\",\r\n comments: \"\",\r\n };\r\n this.service\r\n .CreateinternalTicketApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.ts.getSuccessToast(\"Ticket created successfully\");\r\n this.modalService.dismissAll();\r\n const data = {\r\n totalfiles: this.footfallcount,\r\n filedetails: {\r\n clientId: this.headerFilters?.client,\r\n storeId: this.selectedStore?.storeId,\r\n Date: dayjs(\r\n this.selectedDateRange.startDate,\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\"),\r\n auditId: \"\",\r\n userId: \"\",\r\n nextToken: \"\",\r\n },\r\n auditId: \"\",\r\n storedetails: {\r\n storeName: this.selectedStore?.storeName,\r\n },\r\n };\r\n sessionStorage.setItem(\"totalfiles\", JSON.stringify(data));\r\n sessionStorage.setItem(\"ticketType\", \"internal\");\r\n this.select = \"ticketMethod\";\r\n this.router.navigateByUrl(\"/manage/tickets/audit\");\r\n } else {\r\n this.ts.getErrorToast(\"Error closing ticket\");\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n const errorMsg =\r\n err?.error?.message ||\r\n err?.error?.error ||\r\n err?.error ||\r\n err?.message ||\r\n \"Error closing ticket\";\r\n this.ts.getErrorToast(errorMsg);\r\n this.isCheckboxEnable = true;\r\n this.closeBtn = true;\r\n this.closeDisabled = false;\r\n },\r\n });\r\n }\r\n });\r\n }\r\n exportXLSX() {\r\n this.searchValue = this.searchValue?.trim() || \"\";\r\n this.offset = 1;\r\n this.limit = 10000;\r\n this.isExport = true;\r\n this.service\r\n .getTicketListExportApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.searchValue,\r\n this.limit,\r\n this.offset,\r\n this.isExport,\r\n this.sortedColumn,\r\n this.sortDirection,\r\n this.tangoType\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelService.saveAsExcelFile(res, \"footfall directory ticket \");\r\n },\r\n error: (err: any) => {\r\n this.ts.getErrorToast(\r\n \"Error exporting data:\" + err.error ? err.error : err.message\r\n );\r\n },\r\n });\r\n }\r\n\r\n onSort(column: string) {\r\n if (this.sortedColumn === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getTicketList(this.tangoType);\r\n }\r\n select = \"ticketList\";\r\n ticketData: any;\r\n\r\n startAudit() {\r\n let input = {\r\n storeId: this.ticketData?.storeId,\r\n dateString: this.ticketData?.issueDate,\r\n };\r\n this.service\r\n .checkTicketExists(input)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n // console.log(res.data)\r\n let ticketList = res?.data;\r\n let findTangoticket = ticketList.filter(\r\n (data: any) =>\r\n data?._source?.type === \"internal\" &&\r\n data?._source?.status === \"Closed\"\r\n );\r\n let findstoreticket = ticketList.filter(\r\n (data: any) =>\r\n data?._source?.type === \"store\" &&\r\n data?._source?.status != \"Closed\"\r\n );\r\n\r\n if (findTangoticket.length > 0) {\r\n const modalRef = this.modalService.open(\r\n TicketclosepopupComponent,\r\n {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop: \"static\",\r\n }\r\n );\r\n modalRef.componentInstance.tangoTicket =\r\n findTangoticket[0]._source;\r\n modalRef.componentInstance.storeTicket =\r\n findstoreticket[0]._source;\r\n modalRef.result.then((result) => {\r\n if (result.type === \"merge\") {\r\n let obj = findTangoticket[0]?._source;\r\n if (obj && obj?.mappingInfo.length > 0) {\r\n let mapData = obj.mappingInfo.filter(\r\n (data: any) => data.type === \"tangoreview\"\r\n )[0];\r\n\r\n let payload = {\r\n storeId: this.ticketData?.storeId,\r\n dateString: this.ticketData?.issueDate,\r\n ticketType: \"store\",\r\n mappingInfo: mapData,\r\n };\r\n this.auditservice\r\n .saveaudit(payload)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.router.navigate([\"/manage/tickets\"], {\r\n queryParams: { type: \"footfall\" },\r\n });\r\n }\r\n },\r\n });\r\n }\r\n } else if (result.type == \"\") {\r\n const data = {\r\n totalfiles: this.ticketData?.footfall,\r\n filedetails: {\r\n clientId: this.headerFilters?.client,\r\n storeId: this.ticketData?.storeId,\r\n Date: this.ticketData?.issueDate,\r\n auditId: \"\",\r\n userId: \"\",\r\n nextToken: \"\",\r\n },\r\n auditId: \"\",\r\n storedetails: {\r\n storeName: this.ticketData?.storeName,\r\n },\r\n };\r\n sessionStorage.setItem(\"totalfiles\", JSON.stringify(data));\r\n sessionStorage.setItem(\"ticketType\", this.tangoType);\r\n\r\n this.select = \"ticketMethod\";\r\n this.router.navigateByUrl(\"/manage/tickets/audit\");\r\n }\r\n });\r\n } else {\r\n const data = {\r\n totalfiles: this.ticketData?.footfall,\r\n filedetails: {\r\n clientId: this.headerFilters?.client,\r\n storeId: this.ticketData?.storeId,\r\n Date: this.ticketData?.issueDate,\r\n auditId: \"\",\r\n userId: \"\",\r\n nextToken: \"\",\r\n },\r\n auditId: \"\",\r\n storedetails: {\r\n storeName: this.ticketData?.storeName,\r\n },\r\n };\r\n sessionStorage.setItem(\"totalfiles\", JSON.stringify(data));\r\n sessionStorage.setItem(\"ticketType\", this.tangoType);\r\n\r\n this.select = \"ticketMethod\";\r\n this.router.navigateByUrl(\"/manage/tickets/audit\");\r\n }\r\n }\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n backToNavigation() {\r\n this.select = \"ticketList\";\r\n this.footfallTicketsData = [];\r\n this.getTicketSummary(this.tangoType);\r\n this.getTicketList(this.tangoType);\r\n this.closeBtn = false;\r\n this.isCheckboxEnable = false;\r\n this.arrowshow = !this.arrowshow;\r\n this.commentsAccordionOpen = false;\r\n this.selectedCommentCategory = null;\r\n this.resetSelections();\r\n this.allSelected = false;\r\n }\r\n isCollapsed = false;\r\n toggleSidebar() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n toggleFilter() {\r\n this.isFilterOpen = !this.isFilterOpen;\r\n }\r\n isFilterOpen = false; // controls show/hide panel\r\n filterForm: FormGroup;\r\n @Output() filterChange = new EventEmitter<any>();\r\n newForm() {\r\n this.filterForm = this.fb.group({\r\n status: [\"\"],\r\n reviewerCondition: [\"\"],\r\n reviewerValue: [\"\"],\r\n approverCondition: [\"\"],\r\n approverValue: [\"\"],\r\n tangoCondition: [\"\"],\r\n tangoValue: [\"\"],\r\n });\r\n }\r\n\r\n applyFilter() {\r\n this.filterChange.emit(this.filterForm.value);\r\n this.isFilterOpen = false; // close after apply\r\n }\r\n\r\n resetFilter() {\r\n this.filterForm.reset();\r\n this.filterChange.emit(this.filterForm.value);\r\n }\r\n\r\n close() {\r\n this.isFilterOpen = false;\r\n }\r\n StoresSearchValue: any = \"\";\r\n sortedColumn1: string = \"\";\r\n sortDirection1: number = 1;\r\n\r\n openTicketsList: any[] = [];\r\n selectedStores: any[] = []; // holds selected rows\r\n allSelected = false; // top \"Select All\" checkbox\r\n\r\n get storeCount(): number {\r\n return this.openTicketsList?.length || 0;\r\n }\r\n\r\n // check if a row is selected (used in template)\r\n isSelected(store: any): boolean {\r\n return this.selectedStores.includes(store);\r\n }\r\n\r\n toggleStoreSelection(store: any): void {\r\n if (this.isSelected(store)) {\r\n this.selectedStores = this.selectedStores.filter((s) => s !== store);\r\n } else {\r\n this.selectedStores = [...this.selectedStores, store];\r\n }\r\n this.closeMultiple = this.selectedStores.length > 1 ? false : true;\r\n\r\n this.allSelected =\r\n this.selectedStores.length === this.openTicketsList.length &&\r\n this.openTicketsList.length > 0;\r\n }\r\n\r\n newallSelected = false;\r\n toggleSelectAll(): void {\r\n if (this.newallSelected) {\r\n this.selectedStores = [];\r\n this.newallSelected = false;\r\n } else {\r\n this.selectedStores = [...this.openTicketsList];\r\n this.newallSelected = true;\r\n }\r\n }\r\n startTicketData:any;\r\n ticketViewChanges(store: any) {\r\n this.selectedStores = [store];\r\n this.footfallTicketsData = [];\r\n this.startTicketData =store;\r\n this.dataStoreView(store);\r\n this.newallSelected =\r\n this.selectedStores.length === this.openTicketsList.length &&\r\n this.openTicketsList.length > 0;\r\n }\r\n\r\n originalImage: any = {\r\n id: 4,\r\n entryTime: \"10:00 AM\",\r\n };\r\n ticket: any = [];\r\n imageUrl: any;\r\n getFormattedEntryTime(entryTime: any) {\r\n if (!entryTime) return \"-\";\r\n const [hours, minutes, seconds] = entryTime.split(\":\").map(Number);\r\n const date = new Date();\r\n date.setHours(hours, minutes, seconds);\r\n return date.toLocaleTimeString(\"en-US\", {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n // second: '2-digit',\r\n hour12: true,\r\n });\r\n }\r\n duplicates: any;\r\n\r\n // key = parent original.tempId, value = array of selected duplicate tempIds\r\n selectedDuplicatesByParent: { [parentId: number]: number[] } = {};\r\n\r\n // is one duplicate selected?\r\n isDuplicateSelected(parentId: number, duplicateId: number): boolean {\r\n return (\r\n this.selectedDuplicatesByParent[parentId]?.includes(duplicateId) || false\r\n );\r\n }\r\n\r\n // select / unselect single duplicate\r\n onDuplicateCheckboxChange(\r\n parentId: number,\r\n duplicateId: number,\r\n event: Event\r\n ): void {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n\r\n if (!this.selectedDuplicatesByParent[parentId]) {\r\n this.selectedDuplicatesByParent[parentId] = [];\r\n }\r\n\r\n const list = this.selectedDuplicatesByParent[parentId];\r\n\r\n if (checked) {\r\n if (!list.includes(duplicateId)) {\r\n list.push(duplicateId);\r\n }\r\n } else {\r\n this.selectedDuplicatesByParent[parentId] = list.filter(\r\n (id) => id !== duplicateId\r\n );\r\n }\r\n this.updateOverallSelectedIds();\r\n }\r\n\r\n // are *all* duplicates under this parent selected?\r\n areAllDuplicatesSelected(original: any): boolean {\r\n const parentId = original.tempId;\r\n const duplicates = original?.duplicateImage || [];\r\n const selected = this.selectedDuplicatesByParent[parentId] || [];\r\n\r\n return duplicates.length > 0 && selected.length === duplicates.length;\r\n }\r\n\r\n // handle \"Select All\" toggle for this original\r\n onToggleSelectAllDuplicates(original: any, event: Event): void {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n const parentId = original.tempId;\r\n\r\n const duplicates = (original?.duplicateImage || []).filter(\r\n (d: any) => !this.isFinalStatus(d) // ⛔ skip approved/rejected\r\n );\r\n\r\n if (checked) {\r\n this.selectedDuplicatesByParent[parentId] = duplicates.map(\r\n (d: any) => d.tempId\r\n );\r\n } else {\r\n this.selectedDuplicatesByParent[parentId] = [];\r\n }\r\n\r\n this.updateOverallSelectedIds();\r\n }\r\n\r\n // comments: any;\r\n\r\n commentModal(obj: any) {\r\n const modalRef = this.modalService.open(FootfallPopupComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop: \"static\",\r\n });\r\n modalRef.componentInstance.ticketId = obj.ticketId;\r\n modalRef.result.then((result) => {});\r\n }\r\n\r\n commentsAccordionOpen = false;\r\n selectedCommentCategory: string | null = null;\r\n getCategoryCommentCountForSource(source: any, category: string): number {\r\n if (!source?.commentsDetails || !category) return 0;\r\n\r\n let count = 0;\r\n\r\n for (const block of source.commentsDetails) {\r\n // 🔹 DUPLICATE: no block.comments, use block itself\r\n // if (category === 'duplicate') {\r\n // if (\r\n // block.category === 'duplicate' &&\r\n // (parentId == null || String(block.parent) === String(parentId))\r\n // ) {\r\n // count += 1; // each block = one comment thread\r\n // }\r\n // continue;\r\n // }\r\n\r\n // 🔹 NON-DUPLICATE: old shapes\r\n const comments = block?.comments || [];\r\n if (!comments.length) continue;\r\n\r\n if (block.category) {\r\n // New shape: category at block level\r\n if (block.category === category) {\r\n count += comments.length;\r\n }\r\n } else {\r\n // Old shape: category on each comment\r\n count += comments.filter((c: any) => c.category === category).length;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n toggleCommentsAccordion(type: string) {\r\n // console.log(id)\r\n // If you click the same type again → close accordion\r\n if (this.commentsAccordionOpen && this.selectedCommentCategory === type) {\r\n this.commentsAccordionOpen = false;\r\n this.selectedCommentCategory = null;\r\n } else {\r\n // Clicked a new type → open accordion for that type\r\n this.commentsAccordionOpen = true;\r\n this.selectedCommentCategory = type;\r\n }\r\n // console.log(this.selectedCommentCategory)\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n comments: any = [];\r\n\r\n showRevisedDetails = false;\r\n footfallNoData: boolean = false;\r\n footfallLoading: boolean = false;\r\n footfalloffset = 1;\r\n footfalllimit = 1;\r\n totalItemsFootfall: any = 0;\r\n dataIndexId: string = \"\";\r\n dateString: string = \"\";\r\n storeIdValue: any = [];\r\n lastSelectedTicket: any;\r\n selecteValues: any = \"\";\r\n hasInitialStoreSynced: boolean = false;\r\n\r\n pageSizeFootfall: number = 10;\r\n paginationSizesFootfall: number[] = [10, 20, 30];\r\n addStoreIfNotExists(store: any) {\r\n if (this.hasInitialStoreSynced) return;\r\n\r\n const storeId = store?.storeId;\r\n if (storeId && !this.selectedStores.includes(storeId)) {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.hasInitialStoreSynced = true;\r\n // this.allSelected =\r\n // this.selectedStores.length === this.openTicketsList.length;\r\n }\r\n revopsTypes: string[] = [];\r\n countData: any;\r\n filterList: any;\r\n buildRevopsTypes(tickets: any[]) {\r\n const types = new Set<string>();\r\n\r\n (tickets || []).forEach((ticket: any) => {\r\n const mappingInfo = ticket?._source?.mappingInfo || [];\r\n mappingInfo.forEach((mapping: any) => {\r\n if (\r\n mapping?.status === \"In-Progress\" &&\r\n [\"review\", \"approve\"].includes(mapping.type)\r\n ) {\r\n this.ticketStatus = mapping?.createdByEmail;\r\n }\r\n if (mapping.status === \"Closed\" && [\"review\"].includes(mapping.type)) {\r\n this.isCheckboxEnable = false;\r\n return;\r\n }\r\n // 🔹 ONE function handles review + approve\r\n if (\r\n mapping.status === \"Closed\" &&\r\n [\"approve\", \"tangoreview\"].includes(mapping.type)\r\n ) {\r\n this.openArrow();\r\n this.approverClosed = true;\r\n }\r\n if (\r\n (mapping?.status === \"Closed - Accuracy Issue\" ||\r\n mapping?.status === \"Open - Accuracy Issue\") &&\r\n [\"tangoreview\"].includes(mapping.type)\r\n ) {\r\n this.openArrow();\r\n this.approverClosed = true;\r\n }\r\n\r\n this.updateCloseStateFromMapping(mapping);\r\n // 🔹 Existing revopsTypes logic\r\n (mapping?.revisedDetail || []).forEach((item: any) => {\r\n // inside your component (e.g., ngOnChanges or wherever you process mapping)\r\n\r\n if (\r\n (mapping?.status === \"Closed\" ||\r\n mapping?.status === \"Closed - Accuracy Issue\" ||\r\n mapping?.status === \"Open - Accuracy Issue\") &&\r\n mapping?.type === \"tangoreview\"\r\n ) {\r\n this.filterList = mapping?.revisedDetail || [];\r\n // initialize counts\r\n\r\n let Data = this.filterList.filter(\r\n (data: any) => data.isParent === false\r\n );\r\n this.countData = Object.entries(\r\n Data.reduce((acc: any, it: any) => {\r\n const k = it.revopsType || \"unknown\";\r\n acc[k] = (acc[k] || 0) + 1;\r\n return acc;\r\n }, {})\r\n ).map(([type, count]) => ({ type, count }));\r\n\r\n this.applyFilter1(this.filterList);\r\n }\r\n\r\n if (item?.revopsType) {\r\n types.add(item.revopsType);\r\n } else if (item?.type && item?.name) {\r\n types.add(item.type); // e.g. 'vendor', 'technician', 'houseKeeping'\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.revopsTypes = Array.from(types);\r\n this.cd.detectChanges();\r\n }\r\n ticketStatus: any;\r\n // Handles both: review & approve in ONE place\r\n private updateCloseStateFromMapping(mapping: any): void {\r\n if (!mapping || mapping.status !== \"In-Progress\") {\r\n return;\r\n }\r\n // Decide which stage this mapping belongs to\r\n const stage: \"review\" | \"approve\" | null =\r\n mapping.type === \"review\"\r\n ? \"review\"\r\n : mapping.type === \"approve\"\r\n ? \"approve\"\r\n : null;\r\n if (!stage) return; // ignore other types\r\n\r\n const { total, done, fullyDone } = this.getActionCompletion(mapping, stage);\r\n\r\n // 🔹 Case 1: nothing to review → hide/disable button\r\n if (done === 0) {\r\n this.isCheckboxEnable = true;\r\n this.closeBtn = true;\r\n this.closeDisabled = true;\r\n } else {\r\n this.isCheckboxEnable = true;\r\n this.closeBtn = true;\r\n this.closeDisabled = !fullyDone;\r\n }\r\n this.cd.detectChanges();\r\n\r\n const hasCorrectRole =\r\n (this.hasReviewerAccess && this.selectedRole === \"reviewer\") ||\r\n (this.hasApproverAccess && this.selectedRole === \"approver\");\r\n\r\n const isOwner =\r\n this.usersDetails?.email === this.ticketStatus ||\r\n this.usersDetails?.email === this.ticketStatus;\r\n if (hasCorrectRole === isOwner) {\r\n this.isCheckboxEnable = true;\r\n } else {\r\n this.isCheckboxEnable = false;\r\n }\r\n }\r\n\r\n private getActionCompletion(mapping: any, actionType: \"review\" | \"approve\") {\r\n const details = mapping?.revisedDetail || [];\r\n const allItems: any[] = [];\r\n\r\n for (const d of details) {\r\n if (!d.isParent && d.revopsType !== \"duplicate\") {\r\n allItems.push(d);\r\n }\r\n if (d.isParent && Array.isArray(d.duplicateImage)) {\r\n allItems.push(...d.duplicateImage);\r\n }\r\n }\r\n\r\n const isDone = (item: any) => {\r\n const actions = item.actions || [];\r\n const act = actions.find((a: any) => a.actionType === actionType);\r\n return act && (act.action === \"approved\" || act.action === \"rejected\");\r\n };\r\n\r\n const done = allItems.filter(isDone).length;\r\n const total = allItems.length;\r\n if (done > 1) {\r\n }\r\n return { total, done, fullyDone: total > 0 && done === total };\r\n }\r\n\r\n hasRevopsType(type: any) {\r\n return this.revopsTypes.includes(type);\r\n }\r\n\r\n private isFinalStatus(item: any): boolean {\r\n if (this.permissionType === \"review\" && this.selectedRole === \"reviewer\") {\r\n return this.isApproved(item) || this.isRejected(item);\r\n }\r\n\r\n if (this.permissionType === \"approve\" && this.selectedRole === \"approver\") {\r\n return this.isApproved1(item) || this.isRejected1(item);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n overallSelectedIds: any;\r\n overallSelect(event: any) {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n\r\n this.allSelected = checked;\r\n\r\n const parents = this.getAllParentItems() || [];\r\n\r\n if (checked) {\r\n // non-duplicate types\r\n (this.revopsTypes || []).forEach((type: string) => {\r\n if (type === \"duplicate\") return;\r\n\r\n const list = (this.getListByType(type) || []).filter(\r\n (i: any) => !this.isFinalStatus(i)\r\n );\r\n\r\n this.selectedByType[type] = list.map((i: any) => i.tempId);\r\n this.selectAllByType[type] = list.length > 0;\r\n });\r\n\r\n // duplicate type\r\n this.selectedDuplicatesByParent = {};\r\n\r\n parents\r\n .filter((p: any) => p.revopsType === \"duplicate\")\r\n .forEach((p: any) => {\r\n const parentId = p.tempId;\r\n\r\n const duplicates = (p.duplicateImage || []).filter(\r\n (d: any) => !this.isFinalStatus(d)\r\n );\r\n\r\n this.selectedDuplicatesByParent[parentId] = duplicates.map(\r\n (d: any) => d.tempId\r\n );\r\n });\r\n } else {\r\n // clear everything\r\n (this.revopsTypes || []).forEach((type: string) => {\r\n if (type === \"duplicate\") return;\r\n this.selectedByType[type] = [];\r\n this.selectAllByType[type] = false;\r\n });\r\n\r\n this.selectedDuplicatesByParent = {};\r\n this.selectAllByType.duplicate = false;\r\n this.overallSelectedIds = [];\r\n }\r\n\r\n // 🔥 always recalc after change\r\n this.updateOverallSelectedIds();\r\n }\r\n\r\n getAllParentItems() {\r\n if (!this.footfallTicketsData) {\r\n return [];\r\n }\r\n\r\n const allMappings: any[] = [];\r\n const allRevised: any[] = [];\r\n\r\n // first level: collect all mappingInfo arrays\r\n this.footfallTicketsData.forEach((ticket: any) => {\r\n const mappings = ticket?._source?.mappingInfo || [];\r\n allMappings.push.apply(allMappings, mappings); // concat\r\n });\r\n\r\n // second level: collect all revisedDetail arrays\r\n allMappings.forEach((mapping: any) => {\r\n const details = mapping?.revisedDetail || [];\r\n allRevised.push.apply(allRevised, details); // concat\r\n });\r\n\r\n return allRevised;\r\n }\r\n\r\n isCheckboxEnable = false;\r\n closeBtn = false;\r\n closeDisabled = false;\r\n startReview() {\r\n let obj = {\r\n storeId: this.startTicketData?.storeId ? this.startTicketData?.storeId :this.ticketData?.storeId,\r\n dateString: this.startTicketData?.dateString ? this.startTicketData?.dateString : this.ticketData?.issueDate,\r\n mode: \"web\",\r\n };\r\n // return\r\n this.service\r\n .getUpdateTicketStatusApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.isCheckboxEnable = true; // call this on your \"Review\" button click\r\n this.closeBtn = true;\r\n this.closeDisabled = true;\r\n this.getTicketList(this.tangoType);\r\n if (this.ticketId) {\r\n this.dataStoreView({ticketId:this.ticketId});\r\n } else {\r\n this.dataStoreView(this.ticketData);\r\n }\r\n }\r\n },\r\n error: (err: any) => {\r\n const errorMsg =\r\n err?.error?.message ||\r\n err?.error?.error ||\r\n err?.error ||\r\n err?.message ||\r\n \"Error updating status\";\r\n this.ts.getErrorToast(errorMsg);\r\n },\r\n complete: () => {\r\n this.cd.detectChanges();\r\n },\r\n });\r\n }\r\n @ViewChild(\"closePopup\") closePopup: ElementRef;\r\n stopReview() {\r\n const modalRef = this.modalService.open(this.closePopup, {\r\n centered: true,\r\n size: \"md\",\r\n backdrop: \"static\",\r\n keyboard: false,\r\n });\r\n this.isCheckboxEnable = false;\r\n this.closeBtn = true;\r\n }\r\n\r\n ticketView(data?: any) {\r\n this.ticketData = data;\r\n this.allSelected = false;\r\n if (!data) {\r\n this.getOpenTicketList(data);\r\n this.select = \"ticketMethod\";\r\n return;\r\n }\r\n\r\n const status = (data.status || \"\").trim();\r\n if (this.usersDetails.userType === \"tango\") {\r\n this.dataStoreView(data);\r\n } else {\r\n if (status === \"Open\") {\r\n // when ticket status is Open → use open-ticket API\r\n this.getOpenTicketList(data);\r\n } else {\r\n // otherwise → use store view API\r\n this.dataStoreView(data);\r\n }\r\n }\r\n if (data.status === \"Open - Accuracy Issue\") {\r\n this.accuracyReasons();\r\n }\r\n this.select = \"ticketMethod\"; // keep your existing tab; change if you use a different view key\r\n }\r\n accuracyReasons() {\r\n this.service\r\n .accuracyReasons(this.headerFilters?.client)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.accuracyList = res.data.result;\r\n }\r\n },\r\n });\r\n }\r\n oncloseSubmit() {\r\n const modalRef = this.modalService.open(this.closeacuuracyissue);\r\n modalRef.result.then((result) => {\r\n if (result === \"isConfirmed\") {\r\n let payload = {\r\n storeId: this.footfallTicketsData[0]?._source?.storeId,\r\n dateString: this.footfallTicketsData[0]?._source?.dateString,\r\n comments: this.selectedIssue,\r\n subComment: this.selectedsubIssue,\r\n };\r\n\r\n this.service\r\n .accuracyReasonsupdate(payload)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.ts.getSuccessToast(\"updated Sucessfully\"),\r\n this.router.navigate([\"/manage/tickets\"], {\r\n queryParams: { type: \"footfall\" },\r\n });\r\n }\r\n },\r\n });\r\n }\r\n });\r\n }\r\n ticketId: any = \"\";\r\n dataStoreView(data?: any) {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = false;\r\n this.footfallLoading = true;\r\n this.allSelected = false;\r\n const ticket = data?.ticketId;\r\n this.ticketId = data?.ticketId;\r\n console.log(\"====\", this.ticketId);\r\n this.lastSelectedTicket = ticket;\r\n this.addStoreIfNotExists(ticket);\r\n this.imageUrl = this.service?.footfallCDN;\r\n this.storeIdValue = this.selectedStores;\r\n\r\n this.service\r\n .getTicketsNewApi(ticket)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.getIconType();\r\n if (res?.data?.result?.length === 0) {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n this.ts.getErrorToast(\"No data found for the selected filters\");\r\n } else {\r\n this.footfallTicketsData = res?.data?.result ?? [];\r\n\r\n this.buildRevopsTypes(this.footfallTicketsData);\r\n this.totalItemsFootfall = res?.data?.count;\r\n this.cd.detectChanges();\r\n if (this.footfalllimit === 1) {\r\n this.paginationSizes = [1];\r\n this.pageSizeFootfall = 1;\r\n } else {\r\n const limit =\r\n this.totalItemsFootfall < 10 ? this.totalItemsFootfall : 10;\r\n this.paginationSizes = [limit];\r\n this.pageSizeFootfall = limit;\r\n }\r\n this.footfallNoData = false;\r\n this.footfallLoading = false;\r\n this.cd.detectChanges();\r\n // this.getCurrentReviewMapping();\r\n }\r\n } else {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n }\r\n },\r\n error: (err: any) => {\r\n if (err?.error?.code === 400)\r\n this.ts.getErrorToast(\r\n err?.error?.message ? err?.error?.message : err?.error?.error\r\n );\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n },\r\n complete: () => {\r\n this.cd.detectChanges();\r\n },\r\n });\r\n }\r\n footfallTicketsData: any[] = [];\r\n // ---- SELECTION STATE ----\r\n\r\n selectedByType: any = {};\r\n selectAllByType: any = {};\r\n\r\n // ---- HELPERS ----\r\n\r\n // Get all revisedDetail items of a given type from footfallTicketsData\r\n // Get all revisedDetail items of a given type from footfallTicketsData\r\n getListByType(type: any) {\r\n if (!this.footfallTicketsData) {\r\n return [];\r\n }\r\n\r\n const allRevised: any[] = [];\r\n\r\n // collect revisedDetail ONLY from mappingInfo with type === 'review'\r\n this.footfallTicketsData.forEach((ticket: any) => {\r\n const mappings = ticket?._source?.mappingInfo || [];\r\n\r\n mappings\r\n .filter((m: any) => m?.type === \"review\") // 🔹 IMPORTANT\r\n .forEach((mapping: any) => {\r\n const details = mapping?.revisedDetail || [];\r\n allRevised.push(...details);\r\n });\r\n });\r\n\r\n // filter by type (junk / employee / houseKeeping)\r\n const filtered = allRevised.filter(\r\n (original: any) => original?.revopsType === type\r\n );\r\n\r\n // 🔹 DEDUPE by tempId (or id) so we don't count same image twice\r\n const uniqueByTempId = Array.from(\r\n new Map(filtered.map((item: any) => [item.tempId, item])).values()\r\n );\r\n\r\n return uniqueByTempId;\r\n }\r\n\r\n private updateOverallSelectedIds(): void {\r\n const ids: string[] = [];\r\n const parents = this.getAllParentItems() || [];\r\n const selectedTypesSet = new Set<string>();\r\n\r\n // Non-duplicate\r\n (this.revopsTypes || [])\r\n .filter((type) => type !== \"duplicate\")\r\n .forEach((type: string) => {\r\n const list = this.getListByType(type) || [];\r\n const selectedTemps = this.selectedByType[type] || [];\r\n\r\n if (selectedTemps.length > 0) selectedTypesSet.add(type);\r\n\r\n list.forEach((item: any) => {\r\n if (\r\n selectedTemps.includes(item.tempId) &&\r\n item.id &&\r\n !this.isFinalStatus(item) // ⛔ safeguard\r\n ) {\r\n ids.push(item.id);\r\n } else if (\r\n selectedTemps.includes(item.tempId) &&\r\n item.id &&\r\n this.isFinalStatus(item)\r\n ) {\r\n ids.push(item.id);\r\n }\r\n });\r\n });\r\n\r\n // Duplicate\r\n parents\r\n .filter((p: any) => p.revopsType === \"duplicate\")\r\n .forEach((parent: any) => {\r\n const parentId = parent.tempId;\r\n const selectedChildTemps =\r\n this.selectedDuplicatesByParent[parentId] || [];\r\n\r\n if (selectedChildTemps.length > 0) {\r\n selectedTypesSet.add(\"duplicate\");\r\n }\r\n\r\n (parent.duplicateImage || []).forEach((child: any) => {\r\n if (\r\n selectedChildTemps.includes(child.tempId) &&\r\n !this.isFinalStatus(child) // ⛔ safeguard\r\n ) {\r\n if (child.id) {\r\n ids.push(child.id);\r\n } else if (parent.id) {\r\n ids.push(parent.id);\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.overallSelectedIds = Array.from(new Set(ids));\r\n this.selectedCategories = Array.from(selectedTypesSet);\r\n }\r\n\r\n selectedCategories: any = [];\r\n labelMap: Record<string, string> = {};\r\n toTitleCase(str: string): string {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n\r\n buildLabelMap(tickets: any[]) {\r\n tickets.forEach((ticket: any) => {\r\n const mappingInfo = ticket?._source?.mappingInfo || [];\r\n\r\n mappingInfo.forEach((mapping: any) => {\r\n (mapping?.revisedDetail || []).forEach((item: any) => {\r\n // CASE 1: normal entries (employee, vendor, technician, etc.)\r\n if (item?.revopsType) {\r\n const key = item.revopsType;\r\n if (!this.labelMap[key]) {\r\n this.labelMap[key] = this.toTitleCase(key);\r\n }\r\n }\r\n\r\n // CASE 2: summary rows with { name, type }\r\n if (item?.type && item?.name) {\r\n this.labelMap[item.type] = item.name;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n get selectedCategoriesLabel(): string {\r\n if (!this.selectedCategories?.length) return \"\";\r\n\r\n if (this.selectedCategories.length === 1) {\r\n const type = this.selectedCategories[0];\r\n return this.labelMap[type] || this.toTitleCase(type);\r\n }\r\n\r\n return this.selectedCategories\r\n .map((t: any) => this.labelMap[t] || this.toTitleCase(t))\r\n .join(\", \");\r\n }\r\n type: any = \"footfall\";\r\n // \"Select all\" / \"Unselect all\" for a type\r\n popupvalue: any;\r\n // or just: popupvalue: string = '';\r\n\r\n onSelectAll(type: any, event: any) {\r\n const checked = event?.target?.checked;\r\n\r\n this.selectAllByType[type] = checked;\r\n this.type = type;\r\n this.popupvalue = type;\r\n\r\n const list = this.getListByType(type) || [];\r\n\r\n // ⛔ skip items that are already approved / rejected\r\n const selectable = list.filter((x: any) => !this.isFinalStatus(x));\r\n\r\n this.selectedByType[type] = checked\r\n ? selectable.map((x: any) => x.tempId)\r\n : [];\r\n\r\n this.updateOverallSelectedIds();\r\n }\r\n\r\n // Single checkbox change for one image\r\n onImageCheckboxChange(type: string, id: any, event: any) {\r\n const checked = event?.target?.checked;\r\n if (!this.selectedByType[type]) {\r\n this.selectedByType[type] = [];\r\n }\r\n if (this.selectAllByType[type] === undefined) {\r\n this.selectAllByType[type] = false;\r\n }\r\n\r\n const arr = this.selectedByType[type];\r\n\r\n if (checked) {\r\n // add if not present\r\n if (!arr.includes(id)) {\r\n arr.push(id);\r\n }\r\n } else {\r\n // remove if present\r\n const idx = arr.indexOf(id);\r\n if (idx > -1) {\r\n arr.splice(idx, 1);\r\n }\r\n }\r\n\r\n // total items for this type\r\n const total = this.getListByType(type).length;\r\n\r\n // auto-update \"Select All\" for that type\r\n this.selectAllByType[type] = total > 0 && arr.length === total;\r\n\r\n this.updateOverallSelectedIds();\r\n this.popupvalue = type;\r\n }\r\n\r\n remarks: any;\r\n @ViewChild(\"zoomPopup\") zoomPopup: ElementRef;\r\n popupType: any;\r\n popupIds: any[] = [];\r\n popupOpen(type: any, value?: any) {\r\n // store type\r\n this.popupType = type;\r\n this.popupIds = this.overallSelectedIds || [];\r\n const modalRef = this.modalService.open(this.zoomPopup, {\r\n centered: true,\r\n size: \"md\",\r\n backdrop: \"static\",\r\n keyboard: false,\r\n });\r\n }\r\n\r\n houseKeepingACCount: any;\r\n employeeACCount: any;\r\n duplicateACCount: any;\r\n junkACCount: any;\r\n\r\n selectedDuplicateImagesList: any[] = [];\r\n selectedHousekeepingImagesList: any[] = [];\r\n selectedEmployeeImagesList: any[] = [];\r\n selectedJunkImagesList: any[] = [];\r\n submitValue(status: string = \"approved\", category: string = \"duplicate\") {\r\n let permissionType =\r\n this.hasApproverAccess && this.selectedRole === \"approver\"\r\n ? \"approve\"\r\n : this.hasReviewerAccess && this.selectedRole === \"reviewer\"\r\n ? \"review\"\r\n : null;\r\n // Step 1: Validate based on current category\r\n let obj = {\r\n id: this.popupIds,\r\n status: status,\r\n type:\r\n this.hasApproverAccess && this.selectedRole == \"approver\"\r\n ? \"approve\"\r\n : \"review\",\r\n ...(this.remarks?.trim() && { comments: this.remarks.trim() }),\r\n };\r\n this.service\r\n .getUpdateTempStatusApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.ts.getSuccessToast(\r\n `${\r\n this.overallSelectedIds?.length\r\n ? this.overallSelectedIds?.length\r\n : this.popupValue\r\n ? this.popupValue\r\n : \"--\"\r\n } ${\r\n this.selectedCategoriesLabel.charAt(0).toUpperCase() +\r\n this.selectedCategoriesLabel.slice(1)\r\n } ${status}`\r\n );\r\n\r\n this.cancel();\r\n if (this.ticketId) {\r\n this.dataStoreView({ticketId:this.ticketId});\r\n } else {\r\n this.dataStoreView(this.ticketData);\r\n }\r\n\r\n this.remarks = \"\";\r\n } else {\r\n this.ts.getErrorToast(\"Error updating status\");\r\n }\r\n },\r\n error: (err: any) => {\r\n const errorMsg =\r\n err?.error?.message ||\r\n err?.error?.error ||\r\n err?.error ||\r\n err?.message ||\r\n \"Error updating status\";\r\n this.ts.getErrorToast(errorMsg);\r\n },\r\n complete: () => {\r\n this.cd.detectChanges();\r\n },\r\n });\r\n }\r\n resetSelections() {\r\n this.selectedByType = {};\r\n this.selectAllByType = {};\r\n this.selectedDuplicatesByParent = {};\r\n this.overallSelectedIds = [];\r\n this.popupIds = [];\r\n }\r\n\r\n cancel() {\r\n this.modalService.dismissAll();\r\n this.resetSelections();\r\n this.allSelected = false;\r\n this.selectedCategories = [];\r\n }\r\n openArrow() {\r\n this.arrowshow = !this.arrowshow;\r\n }\r\n\r\n sortOpen: 1 | -1 = 1; // default ascending\r\n\r\n onSortClick() {\r\n this.sortOpen = this.sortOpen === 1 ? -1 : 1; // 👈 toggle and SAVE\r\n this.getOpenTicketList();\r\n }\r\n searchStoresData() {\r\n this.StoresSearchValue = this.StoresSearchValue;\r\n this.getOpenTicketList();\r\n }\r\n getOpenTicketList(data?: any) {\r\n this.footfallLoading = true;\r\n const selectedTicketId = data?.ticketId ?? data;\r\n\r\n const obj = {\r\n clientId: [this.headerFilters?.client],\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n type:\r\n this.hasApproverAccess && this.selectedRole == \"approver\"\r\n ? \"approve\"\r\n : \"review\",\r\n sortOrder: this.sortOpen,\r\n searchValue: this.StoresSearchValue,\r\n };\r\n\r\n this.service\r\n .getOpenTicketListApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.openTicketsList = res?.data ?? [];\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n\r\n if (!this.openTicketsList.length) {\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n this.allSelected = false;\r\n return;\r\n }\r\n\r\n let storeToSelect: any | undefined;\r\n if (selectedTicketId) {\r\n storeToSelect = this.openTicketsList.find(\r\n (s: any) => s.ticketId === selectedTicketId\r\n );\r\n }\r\n\r\n if (!storeToSelect) {\r\n storeToSelect = this.openTicketsList[0];\r\n }\r\n\r\n this.selectedStores = [storeToSelect];\r\n this.dataStoreView(storeToSelect);\r\n } else {\r\n this.openTicketsList = [];\r\n this.selectedStores = [];\r\n this.footfallNoData = true;\r\n this.allSelected = false;\r\n }\r\n },\r\n error: () => {\r\n this.openTicketsList = [];\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n },\r\n complete: () => {\r\n this.cd.detectChanges();\r\n },\r\n });\r\n }\r\n isLockedByReviewer(original: any): boolean {\r\n if (this.hasApproverAccess && this.selectedRole === \"approver\") {\r\n this.getCurrentRoleMapping();\r\n return this.isApproved1(original) || this.isRejected1(original);\r\n }\r\n this.getCurrentReviewMapping();\r\n\r\n return this.isApproved(original) || this.isRejected(original);\r\n }\r\n\r\n isApproved1(original: any): boolean {\r\n const actions = original?.actions || [];\r\n return actions.some(\r\n (a: any) => a.actionType === \"approve\" && a.action === \"approved\"\r\n );\r\n }\r\n\r\n isRejected1(original: any): boolean {\r\n const actions = original?.actions || [];\r\n return actions.some(\r\n (a: any) => a.actionType === \"approve\" && a.action === \"rejected\"\r\n );\r\n }\r\n\r\n isApproved(original: any): boolean {\r\n const actions = original?.actions || [];\r\n return actions.some(\r\n (a: any) => a.actionType === \"review\" && a.action === \"approved\"\r\n );\r\n }\r\n\r\n isRejected(original: any): boolean {\r\n const actions = original?.actions || [];\r\n return actions.some(\r\n (a: any) => a.actionType === \"review\" && a.action === \"rejected\"\r\n );\r\n }\r\n\r\n resetCheckbox(type: any, original: any) {\r\n if (!original?.actions || !Array.isArray(original.actions)) {\r\n return;\r\n }\r\n const actions = original.actions;\r\n\r\n // 1) Check if there is a decision (review/approve → approved/rejected)\r\n const hasDecision = actions.some(\r\n (a: any) =>\r\n (a.actionType === \"review\" || a.actionType === \"approve\") &&\r\n (a.action === \"approved\" || a.action === \"rejected\")\r\n );\r\n\r\n // If NO approved/rejected → do nothing\r\n if (!hasDecision) {\r\n return;\r\n }\r\n\r\n // 2) Remove only decision actions\r\n original.actions = actions.filter(\r\n (a: any) =>\r\n !(\r\n (a.actionType === \"review\" || a.actionType === \"approve\") &&\r\n (a.action === \"approved\" || a.action === \"rejected\")\r\n )\r\n );\r\n\r\n // 3) Remove from selected array\r\n const tempId = original.tempId;\r\n const arr = this.selectedByType[type] || [];\r\n const i = arr.indexOf(tempId);\r\n if (i > -1) arr.splice(i, 1);\r\n\r\n // 4) Uncheck select all for that type\r\n this.selectAllByType[type] = false;\r\n }\r\n\r\n viewMode: \"tangoreview\" | \"approve\" | \"review\" | \"tagging\" = \"tagging\";\r\n getAction(\r\n original: any,\r\n type: \"tagging\" | \"review\" | \"tangoreview\" | \"approve\"\r\n ) {\r\n return original?.actions?.find((a: any) => a.actionType === type) || null;\r\n }\r\n\r\n getCurrentReviewMapping(): any {\r\n if (!this.footfallTicketsData || !this.footfallTicketsData.length) {\r\n return null;\r\n }\r\n\r\n // Go through all tickets and mappingInfo\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket?._source;\r\n const mappingList = source?.mappingInfo || [];\r\n\r\n // pick the first mapping with type 'review' that has revisedDetail\r\n const found = mappingList.find(\r\n (m: any) => m?.type === \"review\" && m?.revisedDetail?.length\r\n );\r\n\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Decide if ticket is fully reviewed based on ALL mappingInfo[type='review']\r\n isTicketFullyReviewed(mapping: any): boolean {\r\n if (!mapping?.revisedDetail) return false;\r\n\r\n const details = mapping.revisedDetail as any[];\r\n\r\n const nonDupTypes: any = [];\r\n\r\n const nonDupItems = details.filter((d) =>\r\n nonDupTypes.includes(d.revopsType)\r\n );\r\n\r\n const nonDupReviewedCount = nonDupItems.filter((d) => {\r\n const review = this.getAction(d, \"review\");\r\n return (\r\n review && (review.action === \"approved\" || review.action === \"rejected\")\r\n );\r\n }).length;\r\n\r\n const parentItems = details.filter((d) => d.isParent);\r\n\r\n const dupChildren = parentItems.reduce((acc: any[], p: any) => {\r\n return acc.concat(p.duplicateImage || []);\r\n }, []);\r\n\r\n const dupReviewedCount = dupChildren.filter((d) => {\r\n const review = this.getAction(d, \"review\");\r\n return (\r\n review && (review.action === \"approved\" || review.action === \"rejected\")\r\n );\r\n }).length;\r\n\r\n const totalToReview = nonDupItems.length + dupChildren.length;\r\n const totalReviewed = nonDupReviewedCount + dupReviewedCount;\r\n\r\n return totalToReview > 0 && totalReviewed === totalToReview;\r\n }\r\n\r\n getInitialsFromEmail(email?: string): string {\r\n if (!email) return \"\";\r\n\r\n // take text before @\r\n const namePart = email.split(\"@\")[0];\r\n\r\n // split by . or space (e.g. \"sandeep.pal\" -> [\"sandeep\", \"pal\"])\r\n const parts = namePart.split(/[.\\s_-]+/).filter(Boolean);\r\n\r\n if (parts.length >= 2) {\r\n return (parts[0][0] + parts[1][0]).toUpperCase(); // S + P = SP\r\n }\r\n\r\n // fallback: first two chars of whole namePart\r\n return namePart.substring(0, 2).toUpperCase();\r\n }\r\n\r\n confirmCloseTicket() {\r\n let permissionType =\r\n this.hasApproverAccess && this.selectedRole === \"approver\"\r\n ? \"approve\"\r\n : this.hasReviewerAccess && this.selectedRole === \"reviewer\"\r\n ? \"review\"\r\n : null;\r\n let obj = {\r\n ticketName: \"footfall-directory\",\r\n storeId: this.footfallTicketsData[0]?._source?.storeId,\r\n dateString: this.footfallTicketsData[0]?._source?.dateString,\r\n type:\r\n this.hasApproverAccess && this.selectedRole == \"approver\"\r\n ? \"approve\"\r\n : \"review\",\r\n mode: \"web\",\r\n };\r\n this.service\r\n .getCreateTicketListApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.ts.getSuccessToast(\"Ticket closed successfully\");\r\n this.modalService.dismissAll();\r\n this.closeBtn = false;\r\n this.closeDisabled = true;\r\n const obj = {\r\n clientId: [this.headerFilters?.client],\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n type:\r\n this.hasApproverAccess && this.selectedRole == \"approver\"\r\n ? \"approve\"\r\n : \"review\",\r\n sortOrder: this.sortOpen,\r\n searchValue: this.StoresSearchValue,\r\n };\r\n\r\n this.service\r\n .getOpenTicketListApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.openTicketsList = res?.data ?? [];\r\n console.log(this.openTicketsList[0])\r\n this.toggleStoreSelection(this.openTicketsList[0]);\r\n this.startTicketData = this.openTicketsList[0];\r\n this.dataStoreView(this.openTicketsList[0]);\r\n }\r\n }\r\n })\r\n } else {\r\n this.closeBtn = true;\r\n this.closeDisabled = false;\r\n this.ts.getErrorToast(res.error ? res.error : \"\");\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n const errorMsg =\r\n err?.error?.message ||\r\n err?.error?.error ||\r\n err?.error ||\r\n err?.message ||\r\n \"Error closing ticket\";\r\n this.ts.getErrorToast(errorMsg);\r\n // this.isCheckboxEnable = true;\r\n this.closeBtn = true;\r\n this.closeDisabled = false;\r\n },\r\n });\r\n }\r\n\r\n confirmCloseCancel() {\r\n this.modalService.dismissAll();\r\n this.closeBtn = false;\r\n this.closeDisabled = true;\r\n this.dataStoreView(this.ticketData);\r\n }\r\n @ViewChild(\"imagePreviewPopup\") imagePreviewPopup: ElementRef;\r\n previewList: any[] = [];\r\n currentPreviewIndex = 0;\r\n previewTitle = \"Tagged Duplicates\";\r\n get currentPreviewItem() {\r\n if (!this.previewList || !this.previewList.length) {\r\n return null;\r\n }\r\n\r\n if (\r\n this.currentPreviewIndex == null ||\r\n this.currentPreviewIndex < 0 ||\r\n this.currentPreviewIndex >= this.previewList.length\r\n ) {\r\n return null;\r\n }\r\n\r\n return this.previewList[this.currentPreviewIndex];\r\n }\r\n\r\n getPreviewImageUrl() {\r\n const item = this.currentPreviewItem;\r\n return item ? this.imageUrl + item.filePath : \"\";\r\n }\r\n overallMapping: any;\r\n openImagePreview(list: any, target: any, startIndex: number, title: string) {\r\n this.overallMapping = list;\r\n this.previewTitle = title;\r\n\r\n // Decide preview list\r\n if (Array.isArray(target) && target.length) {\r\n this.previewList = target;\r\n } else if (Array.isArray(list) && list.length) {\r\n this.previewList = list; // Case 2\r\n } else if (Array.isArray(list?.revisedDetail)) {\r\n this.previewList = list.revisedDetail; // Case 3\r\n } else {\r\n this.previewList = []; // fallback\r\n }\r\n\r\n // Set correct preview index\r\n this.setPreviewIndex(startIndex, target);\r\n\r\n // Open popup\r\n this.modalService.open(this.imagePreviewPopup, {\r\n centered: true,\r\n size: \"lg\",\r\n backdrop: \"static\",\r\n });\r\n }\r\n\r\n private setPreviewIndex(startIndex: number | null | undefined, target: any) {\r\n let index = -1;\r\n\r\n // 1️⃣ Always try to find the clicked item by ID/tempId FIRST\r\n if (target) {\r\n index = this.previewList.findIndex(\r\n (item: any) =>\r\n (target.tempId && item.tempId === target.tempId) ||\r\n (target.id && item.id === target.id)\r\n );\r\n }\r\n\r\n // 2️⃣ If not found by ID, fallback to startIndex (ONLY if valid)\r\n if (\r\n index < 0 &&\r\n startIndex != null &&\r\n startIndex >= 0 &&\r\n startIndex < this.previewList.length\r\n ) {\r\n index = startIndex;\r\n }\r\n\r\n // 3️⃣ Final fallback: use first image\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n // Save final index\r\n this.currentPreviewIndex = index;\r\n }\r\n\r\n // 1) Check if there is an APPROVE mapping with status Closed in overall mapping\r\n overallApproveClosed(): boolean {\r\n const list = this.overallMapping || [];\r\n\r\n return (\r\n Array.isArray(list) &&\r\n list.some(\r\n (m: any) =>\r\n m?.type === \"approve\" && m?.status?.toLowerCase() === \"closed\"\r\n )\r\n );\r\n }\r\n\r\n // 2) Get approve action for a single image\r\n getApproveActionForItem(item: any): any | null {\r\n const actions = item?.actions || [];\r\n return (\r\n actions.find(\r\n (a: any) =>\r\n a.actionType === \"approve\" &&\r\n (a.action === \"approved\" || a.action === \"rejected\")\r\n ) || null\r\n );\r\n }\r\n\r\n // 3) Final function: can we show Accept / Reject for this image?\r\n canShowPreviewActions(item: any): boolean {\r\n // if overall approve is closed -> no buttons\r\n if (this.overallApproveClosed()) {\r\n return false;\r\n }\r\n\r\n // if this image already has approve approved/rejected -> no buttons\r\n const approveAction = this.getApproveActionForItem(item);\r\n if (approveAction) {\r\n return false;\r\n }\r\n\r\n // otherwise -> show buttons\r\n return true;\r\n }\r\n\r\n prevPreview() {\r\n if (this.previewList.length <= 1) return;\r\n this.currentPreviewIndex =\r\n this.currentPreviewIndex === 0\r\n ? this.previewList.length - 1\r\n : this.currentPreviewIndex - 1;\r\n }\r\n\r\n nextPreview() {\r\n if (this.previewList.length <= 1) return;\r\n this.currentPreviewIndex =\r\n this.currentPreviewIndex === this.previewList.length - 1\r\n ? 0\r\n : this.currentPreviewIndex + 1;\r\n }\r\n popupValue: any;\r\n rejectedPopup(type: any, value: any) {\r\n this.overallSelectedIds = [value?.id];\r\n this.popupValue = 1;\r\n this.popupOpen(type);\r\n }\r\n approvedPopup(type: any, value: any) {\r\n this.overallSelectedIds = [value?.id];\r\n this.popupValue = 1;\r\n this.popupOpen(type);\r\n }\r\n get hasApproverAccess(): boolean {\r\n const perm = this.usersDetails?.permission;\r\n return !!(\r\n perm?.FootfallDirectory_approver_isAdd ||\r\n perm?.FootfallDirectory_approver_isEdit\r\n );\r\n }\r\n\r\n get hasReviewerAccess(): boolean {\r\n const perm = this.usersDetails?.permission;\r\n return !!(\r\n perm?.FootfallDirectory_reviewer_isAdd ||\r\n perm?.FootfallDirectory_reviewer_isEdit\r\n );\r\n }\r\n\r\n // call this in ngOnInit or after usersDetails is loaded\r\n setDefaultRole() {\r\n if (this.hasApproverAccess) {\r\n this.selectedRole = \"approver\";\r\n } else if (this.hasReviewerAccess) {\r\n this.selectedRole = \"reviewer\";\r\n } else {\r\n this.selectedRole = \"\";\r\n }\r\n }\r\n\r\n SelectedRole(role: \"approver\" | \"reviewer\") {\r\n if (role === \"approver\" && !this.hasApproverAccess) return;\r\n if (role === \"reviewer\" && !this.hasReviewerAccess) return;\r\n\r\n this.selectedRole = role;\r\n this.getTicketList(this.tangoType);\r\n this.getTicketSummary(this.tangoType);\r\n // 🔹 put your role-based logic here:\r\n // e.g. filter mappingInfo, change API call, etc.\r\n // this.loadRoleData(role);\r\n }\r\n\r\n showApproveDetails = false;\r\n showTangoDetails = false;\r\n\r\n toggleRevisedDetails(mapping: any) {\r\n if (mapping?.type === \"approve\") {\r\n this.showApproveDetails = !this.showApproveDetails;\r\n } else if (mapping?.type === \"tangoreview\") {\r\n this.showTangoDetails = !this.showTangoDetails;\r\n }\r\n }\r\n\r\n reviwerList: any;\r\n reviewrReassignApi() {\r\n this.service\r\n .getReviewerApi(\r\n this.headerFilters?.client,\r\n \"approve\",\r\n this.usersDetails?.userType\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.reviwerList = res?.data;\r\n } else {\r\n this.reviwerList = [];\r\n }\r\n },\r\n error: (err) => {},\r\n });\r\n }\r\n reviewrApi() {\r\n this.service\r\n .getReviewerApi(this.headerFilters?.client, \"approve\", this.tangoType)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.reviwerList = res?.data;\r\n this.viewTicket(\"store\");\r\n } else {\r\n this.reviwerList = [];\r\n }\r\n },\r\n error: (err) => {},\r\n });\r\n }\r\n reviewerChange(event: any) {\r\n this.selectedReviewer = event;\r\n }\r\n assignTicketView() {\r\n if (this.usersDetails?.userType === \"tango\") {\r\n let obj = {\r\n email: this.selectedReviewer?.email,\r\n userName: this.selectedReviewer?.userName,\r\n storeId: this.ticketData?.storeId,\r\n dateString: this.ticketData?.issueDate,\r\n tickettype: this.tangoType,\r\n };\r\n this.service\r\n .reAssignAudit(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.ts.getSuccessToast(\r\n res?.data?.message\r\n ? res?.data?.message\r\n : \"Ticket assigned successfully\"\r\n );\r\n this.backToNavigation();\r\n this.cancelassign();\r\n }\r\n },\r\n });\r\n return;\r\n }\r\n\r\n let obj = {\r\n email: this.selectedReviewer?.email,\r\n userName: this.selectedReviewer?.userName,\r\n actionType:\r\n this.hasApproverAccess && this.selectedRole === \"approver\"\r\n ? \"approve\"\r\n : \"review\",\r\n storeId: this.ticketData?.storeId,\r\n dateString: this.ticketData?.issueDate,\r\n };\r\n this.service\r\n .getTicketAssignApi(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.ts.getSuccessToast(\r\n res?.data?.message\r\n ? res?.data?.message\r\n : \"Ticket assigned successfully\"\r\n );\r\n this.backToNavigation();\r\n this.cancelassign();\r\n } else {\r\n this.ts.getErrorToast(\"Error updating status\");\r\n }\r\n },\r\n error: (err) => {\r\n const errorMsg =\r\n err?.error?.message ||\r\n err?.error?.error ||\r\n err?.error ||\r\n err?.message ||\r\n \"Error closing ticket\";\r\n this.ts.getErrorToast(errorMsg);\r\n },\r\n });\r\n }\r\n cancelassign() {\r\n this.modalService.dismissAll();\r\n this.reviwerList = [];\r\n this.selectedReviewer = [];\r\n }\r\n isTicketMenuOpen = false;\r\n\r\n toggleTicketMenu(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.isTicketMenuOpen = !this.isTicketMenuOpen;\r\n }\r\n\r\n // close when clicking outside\r\n @HostListener(\"document:click\")\r\n onDocumentClick() {\r\n this.isTicketMenuOpen = false;\r\n }\r\n\r\n onReassignClick() {\r\n this.isTicketMenuOpen = false;\r\n // 🔹 open your popup here\r\n this.openReassignPopup(); // implement this\r\n }\r\n @ViewChild(\"ReassignTicketPopup\") ReassignTicketPopup: ElementRef;\r\n openReassignPopup() {\r\n const modalRef = this.modalService.open(this.ReassignTicketPopup, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop: \"static\",\r\n });\r\n this.reviewrReassignApi();\r\n }\r\n onExportClick() {\r\n this.isTicketMenuOpen = false;\r\n // 🔹 call your export API / logic here\r\n // this.exportTicket();\r\n }\r\n\r\n getMultipleTicketClose() {\r\n // if (!this.selectedStores || !this.selectedStores.length) {\r\n // this.ts.getErrorToast('Please select at least one ticket');\r\n // return;\r\n // }\r\n let ticketList: any;\r\n\r\n if (this.selectedStores?.length) {\r\n // When multiple stores are selected\r\n ticketList = this.selectedStores.map((store: any) => ({\r\n storeId: store.storeId,\r\n dateString: store.dateString || store.issueDate,\r\n }));\r\n } else {\r\n // When ticket rows are selected instead\r\n ticketList = this.selectedTicketRows.map((store: any) => ({\r\n storeId: store.storeId,\r\n dateString: store.dateString || store.issueDate,\r\n }));\r\n }\r\n\r\n const obj = {\r\n ticketList,\r\n mode: \"web\",\r\n };\r\n\r\n this.service.getMultiCloseTicketApi(obj).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n // success\r\n this.ts.getSuccessToast(\"Tickets closed successfully\");\r\n this.viewTicket(this.tangoType);\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n } else {\r\n // this.toastService.getErrorToast('Failed to close tickets');\r\n }\r\n },\r\n error: (err) => {\r\n console.error(\"Failed to close tickets\", err);\r\n this.ts.getErrorToast(\"Failed to close tickets\");\r\n },\r\n });\r\n }\r\n isRowSelectable(row: any): boolean {\r\n return (\r\n row?.status?.toLowerCase() === \"open\" || row?.status === \"Reviewed-Closed\"\r\n );\r\n }\r\n selectedTicketRows: any = [];\r\n // check if a row is currently selected\r\n isRowSelected(row: any): boolean {\r\n return this.selectedTicketRows.includes(row);\r\n }\r\n\r\n // rows that CAN be selected (status open)\r\n getSelectableRows(): any[] {\r\n return (this.footfallListData || []).filter((r: any) =>\r\n this.isRowSelectable(r)\r\n );\r\n }\r\n\r\n // header \"select all\" checkbox state\r\n areAllSelectableRowsSelected(): boolean {\r\n const selectable = this.getSelectableRows();\r\n return (\r\n selectable.length > 0 &&\r\n selectable.every((r) => this.selectedTicketRows.includes(r))\r\n );\r\n }\r\n closeMultiple = true;\r\n\r\n private updateCloseDisabled() {\r\n this.closeMultiple = this.selectedTicketRows.length === 0;\r\n }\r\n // single row checkbox toggle\r\n toggleRowSelection(row: any, event: Event): void {\r\n if (!this.isRowSelectable(row)) return;\r\n\r\n const target = event.target as HTMLInputElement;\r\n const checked = target.checked;\r\n\r\n if (checked) {\r\n if (!this.isRowSelected(row)) {\r\n this.selectedTicketRows = [...this.selectedTicketRows, row];\r\n }\r\n } else {\r\n this.selectedTicketRows = this.selectedTicketRows.filter(\r\n (r: any) => r !== row\r\n );\r\n }\r\n this.updateCloseDisabled();\r\n }\r\n\r\n // header \"Select All\" toggle\r\n toggleSelectAllRows(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n const checked = target.checked;\r\n\r\n if (checked) {\r\n this.selectedTicketRows = this.getSelectableRows().slice();\r\n } else {\r\n this.selectedTicketRows = [];\r\n }\r\n this.updateCloseDisabled();\r\n }\r\n showImagesModal = false;\r\n selectedImagesForPopup: any[] = [];\r\n selectedComment: any | null = null;\r\n\r\n openImagesPopup(comment: any): void {\r\n // return\r\n this.selectedComment = comment;\r\n this.selectedImagesForPopup = comment?.taggedImages || [];\r\n this.showImagesModal = true;\r\n }\r\n\r\n closeImagesPopup(): void {\r\n this.showImagesModal = false;\r\n this.selectedImagesForPopup = [];\r\n this.selectedComment = null;\r\n }\r\n\r\n getIconTypeList: any;\r\n tagIconMap: Record<string, string> = {}; // type -> iconName\r\n\r\n getIconType() {\r\n this.service\r\n .getTypeFunction(this.headerFilters?.client)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n this.getIconTypeList = res?.data?.footfallDirectoryConfigs || {};\r\n\r\n const taggingLimitation =\r\n this.getIconTypeList?.taggingLimitation || [];\r\n\r\n this.tagIconMap = {};\r\n taggingLimitation.forEach((item: any) => {\r\n if (item?.type && item?.iconName) {\r\n this.tagIconMap[item.type] = item.iconName;\r\n }\r\n });\r\n } else {\r\n this.getIconTypeList = {};\r\n this.tagIconMap = {};\r\n }\r\n },\r\n error: (err) => {\r\n this.getIconTypeList = {};\r\n this.tagIconMap = {};\r\n },\r\n });\r\n }\r\n onFilterPanelClosed() {\r\n // nothing required, but you can do logging here\r\n }\r\n\r\n onFilterApply(filters: any) {\r\n this.filterPayload = filters;\r\n this.offset = 0;\r\n this.getTicketList(this.tangoType);\r\n }\r\n revFilter: \"all\" | \"accept\" | \"reject\" | \"pending\" = \"all\";\r\n // private getActionStatus(item: any): 'accept' | 'reject' | 'pending' | null {\r\n // const actions = item?.actions || [];\r\n\r\n // const approveAction = actions.find(\r\n // (a: any) => a?.actionType === 'approve' || a?.actionType === 'review'\r\n // );\r\n\r\n // if (!approveAction) return 'pending';\r\n\r\n // const act = (approveAction.action || '').toLowerCase();\r\n\r\n // if (act === 'approved' || act === 'accept' || act === 'accepted') {\r\n // return 'accept';\r\n // }\r\n\r\n // if (act === 'rejected' || act === 'reject') {\r\n // return 'reject';\r\n // }\r\n\r\n // return 'pending';\r\n // }\r\n onFilterChange(): any {\r\n if (this.revFilter === \"all\") return true;\r\n\r\n this.footfallTicketsData.map((mapdata: any) => {\r\n mapdata._source.mappingInfo.map((data: any) => {\r\n if (data.status === this.footfallTicketsData[0]._source.status) {\r\n if (data.revisedDetail.revopsType === \"duplicate\") {\r\n }\r\n }\r\n });\r\n });\r\n }\r\n private getItemStatus(item: any): \"accept\" | \"reject\" | \"pending\" {\r\n const actions = item?.actions || [];\r\n\r\n const act = actions.find(\r\n (a: any) => a.actionType === \"approve\" || a.actionType === \"review\"\r\n );\r\n\r\n if (!act) return \"pending\";\r\n\r\n const s = (act.action || \"\").toLowerCase();\r\n\r\n if (s === \"approved\" || s === \"accept\" || s === \"accepted\") return \"accept\";\r\n if (s === \"rejected\" || s === \"reject\") return \"reject\";\r\n\r\n return \"pending\";\r\n }\r\n matchesStatusFilter(item: any): boolean {\r\n if (!item) return false;\r\n const status = this.getItemStatus(item);\r\n\r\n if (this.revFilter === \"all\") return true;\r\n if (this.revFilter === \"accept\") return status === \"accept\";\r\n if (this.revFilter === \"reject\") return status === \"reject\";\r\n if (this.revFilter === \"pending\") return status === \"pending\";\r\n\r\n return true;\r\n }\r\n\r\n // onFilterChange() {\r\n // console.log(\"Filter changed:\", this.revFilter);\r\n // }\r\n\r\n selectPlanTrends(type: string) {\r\n this.type = type;\r\n this.applyFilter1(this.filterList);\r\n }\r\n\r\n filteredList: any[] = [];\r\n\r\n applyFilter1(mapping: any) {\r\n const list = Array.isArray(mapping) ? mapping : [];\r\n\r\n if (!this.type || this.type === \"footfall\") {\r\n this.filteredList = list.slice(); // copy\r\n return;\r\n }\r\n\r\n // simple filter by revopsType (change to 'processType' or other field if you need)\r\n this.filteredList = list.filter((item: any) => {\r\n // handle undefined safely\r\n const t = (item?.revopsType || \"\").toString().toLowerCase();\r\n\r\n // if you pass special types like 'non-tag' vs 'non-tagging', normalize:\r\n const sel = this.type.toString().toLowerCase();\r\n\r\n // Example rules:\r\n if (sel === \"non-tags\") return t === \"non-tag\" || t === \"non-tagging\";\r\n if (sel === \"footfall\")\r\n return (\r\n (item?.processType || \"\").toString().toLowerCase() === \"footfall\"\r\n );\r\n if (sel === \"duplicated\")\r\n return t === \"duplicate\" || item?.duplicateImage?.length > 0;\r\n if (sel === \"footfall\") return true;\r\n\r\n // default: exact match on revopsType\r\n return t === sel;\r\n });\r\n }\r\n}\r\n","<section *ngIf=\"select ==='ticketList'\">\r\n <div class=\"row ms-3 my-3\">\r\n <ul *ngIf=\"usersDetails?.userType === 'tango'\"\r\n class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\">\r\n <a [ngClass]=\"tangoType === 'store' ? 'active' : ''\" (click)=\"viewTicket('store')\"\r\n class=\"nav-link cursor-pointer no-border me-3\">\r\n Tickets\r\n </a>\r\n </li>\r\n <li class=\"nav-item\">\r\n <a [ngClass]=\"tangoType === 'internal' ? 'active' : ''\" (click)=\"viewTicket('internal')\"\r\n class=\"nav-link cursor-pointer no-border me-3\"> Internal audit\r\n </a>\r\n </li>\r\n </ul>\r\n <ul *ngIf=\"hasApproverAccess && hasReviewerAccess && usersDetails?.userType !== 'tango'\"\r\n class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <!-- Approver tab -->\r\n <li class=\"nav-item\" *ngIf=\"hasApproverAccess\">\r\n <a [ngClass]=\"selectedRole === 'approver' ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border me-3\" (click)=\"SelectedRole('approver')\">\r\n Approver\r\n </a>\r\n </li>\r\n\r\n <!-- Reviewer tab -->\r\n <li class=\"nav-item\" *ngIf=\"hasReviewerAccess\">\r\n <a [ngClass]=\"selectedRole === 'reviewer' ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border me-3\" (click)=\"SelectedRole('reviewer')\">\r\n Reviewer\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mb-3 col-md-12\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title my-0\">{{ getFootfallSummaryData?.totalTickets !== null ?\r\n getFootfallSummaryData?.totalTickets : '--' }}</h5>\r\n <span class=\"sub-header\">Total tickets</span>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.averageAccuracyOverAll !== null &&\r\n getFootfallSummaryData?.averageAccuracyOverAll !== undefined\" class=\"card-toolbar\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title my-0\">{{ getFootfallSummaryData?.averageAccuracyOverAll !== null ?\r\n getFootfallSummaryData?.averageAccuracyOverAll : '--' }}</h5>\r\n <span class=\"sub-header\">Average accuracy (Overall)</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div *ngIf=\"getFootfallSummaryData?.openTickets !== null &&\r\n getFootfallSummaryData?.openTickets !== undefined\" class=\"col my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.openTickets !== null ?\r\n getFootfallSummaryData?.openTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Open</span>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.openInfraIssues !== null &&\r\n getFootfallSummaryData?.openInfraIssues !== undefined\" class=\"col my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.openInfraIssues !== null ?\r\n getFootfallSummaryData?.openInfraIssues : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Open-Infra Issue</span>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.inprogress !== null &&\r\n getFootfallSummaryData?.inprogress !== undefined\" class=\"col my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.inprogress !== null ?\r\n getFootfallSummaryData?.inprogress : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">In-progress</span>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.closedTickets !== null &&\r\n getFootfallSummaryData?.closedTickets !== undefined\" class=\"col my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.closedTickets !== null ?\r\n getFootfallSummaryData?.closedTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Closed</span>\r\n </div>\r\n\r\n <div *ngIf=\"getFootfallSummaryData?.dueToday !== null &&\r\n getFootfallSummaryData?.dueToday !== undefined\" class=\"col my-3 \">\r\n <h5 style=\"color:#DC6803 !important\" class=\"card-title\">{{ getFootfallSummaryData?.dueToday\r\n !== null ?\r\n getFootfallSummaryData?.dueToday : '--' }}</h5>\r\n <span class=\"card-title-sub-header\" style=\"color:#DC6803 !important\">Due today</span>\r\n </div>\r\n\r\n <div *ngIf=\"getFootfallSummaryData?.Expired !== null &&\r\n getFootfallSummaryData?.Expired !== undefined\" class=\"col my-3 \">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.Expired !== null ?\r\n getFootfallSummaryData?.Expired : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Expired</span>\r\n </div>\r\n\r\n <div *ngIf=\"getFootfallSummaryData?.underTangoReview !== null &&\r\n getFootfallSummaryData?.underTangoReview !== undefined\" class=\"col my-3 \">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.underTangoReview !== null ?\r\n getFootfallSummaryData?.underTangoReview : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Under tango review</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"col-md-3 mb-3\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 py-1 px-5\">\r\n <div *ngIf=\"getFootfallSummaryData?.ticketAccuracyAbove !== null &&\r\n getFootfallSummaryData?.ticketAccuracyAbove !== undefined\" class=\"my-0\">\r\n <h5 class=\"card-title mt-0\">{{ getFootfallSummaryData?.ticketAccuracyAbove !== null ?\r\n getFootfallSummaryData?.ticketAccuracyAbove : '--' }}</h5>\r\n <div class=\"sub-header\">Tickets with Accuracy Above {{clientData?.tangoReview ?\r\n clientData?.tangoReview:'85%'}}</div>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.avgTicket !== null &&\r\n getFootfallSummaryData?.avgTicket !== undefined\" class=\"my-0\">\r\n <h5 class=\"card-title mt-0\">{{ getFootfallSummaryData?.avgTicket !== null ?\r\n getFootfallSummaryData?.avgTicket : '--' }}</h5>\r\n <div class=\"sub-header\">Average ticket %</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div *ngIf=\"getFootfallSummaryData?.ticketAccuracyBelow !== null &&\r\n getFootfallSummaryData?.ticketAccuracyBelow !== undefined\"\r\n class=\"col-lg-12 col-xl-12 col-md-12 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.ticketAccuracyBelow !== null ?\r\n getFootfallSummaryData?.ticketAccuracyBelow : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Tickets with Accuracy Below {{clientData?.tangoReview ?\r\n clientData?.tangoReview:'85%'}}</span>\r\n </div>\r\n <div *ngIf=\"getFootfallSummaryData?.avgAccuracy !== null &&\r\n getFootfallSummaryData?.avgAccuracy !== undefined\" class=\"col-lg-12 col-xl-12 col-md-12 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.avgAccuracy !== null ?\r\n getFootfallSummaryData?.avgAccuracy : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Average accuracy%</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\" *ngIf=\"tangoType==='store'\"><span\r\n *ngIf=\"usersDetails?.userType !== 'tango'\">Ticket Info</span> <span\r\n *ngIf=\"usersDetails?.userType === 'tango'\">Showing tickets with Accuracy Below\r\n {{clientData?.tangoReview ? clientData?.tangoReview:'85%'}} </span><span\r\n class=\"ms-2 px-3 badge badge-light-primary\">{{totalItems}} Total</span></span>\r\n <span class=\"card-label mb-2\" *ngIf=\"tangoType==='internal'\">Internal Tickets <span\r\n class=\"ms-2 px-3 badge badge-light-primary\">{{totalItems}} Total</span></span>\r\n <span class=\"text-sub mb-2\">Based on {{headerFilters?.date?.startDate | date:'dd MMM, yyyy'}} –\r\n {{headerFilters?.date?.endDate | date:'dd MMM, yyyy'}} </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search by store\"\r\n autocomplete=\"off\" (change)=\"searchData()\" [(ngModel)]=\"searchValue\" />\r\n <!-- <section *ngIf=\"!loading && !noData\"> -->\r\n <button type=\"button\" (click)=\"filterPanel.open(); $event.stopPropagation()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <span class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Filter\r\n\r\n </button>\r\n <lib-ticket-filter-panel #filterPanel [client]=\"headerFilters?.client\"\r\n [permissionType]=\"permissionType\" [userType]=\"usersDetails?.userType\"\r\n (panelClosed)=\"onFilterPanelClosed()\" (apply)=\"onFilterApply($event)\">\r\n </lib-ticket-filter-panel>\r\n <!-- </section> -->\r\n <button type=\"button\" *ngIf=\"!loading && !noData\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n <button\r\n class=\"btn btn-default btn-primary btn-outline btn-outline-default rounded-3 text-nowrap border-val\"\r\n *ngIf=\"tangoType==='internal'\" (click)=\"createInternalticket()\">Start Audit</button>\r\n <button\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\"\r\n [disabled]=\"closeMultiple\" class=\"btn btn-sm btn-primary mx-2 text-nowrap\"\r\n (click)=\"getMultipleTicketClose()\">\r\n Close Ticket\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"table-responsive\" *ngIf=\"!loading && !noData\">\r\n <table class=\"table custom-table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <!-- NEW: checkbox column for approver only -->\r\n <th\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\">\r\n <input type=\"checkbox\" [checked]=\"areAllSelectableRowsSelected()\"\r\n (change)=\"toggleSelectAllRows($event)\" />\r\n </th>\r\n\r\n <th *ngFor=\"let col of tableColumns\"\r\n [class.cursor-pointer]=\"col.sortable && col.type !== 'store'\"\r\n (click)=\"col.sortable && col.type !== 'store' && onSort(col.key)\">\r\n {{ col.label }}\r\n\r\n <svg *ngIf=\"col.sortable && col.type !== 'store'\"\r\n [ngClass]=\"sortedColumn === col.key && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8 3.333V12.667L12.667 8 8 12.667 3.333 8\"\r\n [attr.stroke]=\"sortedColumn === col.key ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let row of footfallListData\">\r\n <!-- NEW: per-row checkbox (approver only) -->\r\n <td\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\">\r\n <input type=\"checkbox\" [disabled]=\"!isRowSelectable(row)\" [checked]=\"isRowSelected(row)\"\r\n [style.cursor]=\"isRowSelectable(row) ? 'pointer' : 'not-allowed text-muted'\"\r\n (change)=\"toggleRowSelection(row, $event)\" />\r\n </td>\r\n\r\n <td *ngFor=\"let col of tableColumns\">\r\n <!-- Store + ticket clickable -->\r\n <ng-container *ngIf=\"col.type === 'store'\">\r\n <div class=\"text-primary ellipsis-underline\" (click)=\"ticketView(row)\">\r\n {{ row.ticketId }}\r\n </div>\r\n <div class=\"pt-2\">{{ row.storeName }}</div>\r\n </ng-container>\r\n\r\n <!-- Date -->\r\n <ng-container class=\"pt-5\" *ngIf=\"col.type === 'date' || col.type === 'ticketRaised'\">\r\n {{ row[col.key] | date: 'dd MMM, yyyy' }}\r\n </ng-container>\r\n\r\n <!-- Status -->\r\n <ng-container class=\"pt-5\" *ngIf=\"col.type === 'status'\">\r\n <span class=\"badge mx-2\" [ngClass]=\"getStatusBadgeClass(row[col.key])\">\r\n {{ row[col.key] | titlecase }}\r\n </span>\r\n </ng-container>\r\n\r\n <!-- Default Text -->\r\n <ng-container class=\"pt-5\" *ngIf=\"col.type === 'text'\">\r\n {{ row[col.key] ?? '--' }}\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"setpageSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"card mt-5\">\r\n <div class=\"card-body h-500px\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this conversion funnel</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>\r\n<!-- -->\r\n<section *ngIf=\"select ==='ticketMethod'\">\r\n <div class=\"row my-2\">\r\n <div class=\"position-relative\"\r\n [ngClass]=\"isCollapsed || this.usersDetails.userType ==='tango' ? 'd-none' : 'col-md-3 h-auto'\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-header border-0 pt-3 ps-1 pe-5\">\r\n <span class=\"ms-2\"><span class=\"cursor-pointer\" (click)=\"backToNavigation()\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"44\" viewBox=\"0 0 56 44\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_887_4505)\">\r\n <rect x=\"2\" y=\"1\" width=\"52\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"51\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M30.5 26L25.5 21L30.5 16\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_887_4505\" x=\"0\" y=\"0\" width=\"56\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_887_4505\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_887_4505\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg></span><span class=\"card-title-foot pt-15 ms-3\">Tickets</span></span>\r\n <span class=\"cursor-pointer\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 15px; right: -25px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"68\" height=\"68\" viewBox=\"0 0 68 68\" fill=\"none\">\r\n <g filter=\"url(#filter0_dd_778_34282)\">\r\n <rect x=\"12\" width=\"44\" height=\"44\" rx=\"22\" fill=\"white\" />\r\n <path d=\"M33 27L28 22L33 17M40 27L35 22L40 17\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_dd_778_34282\" x=\"0\" y=\"0\" width=\"68\" height=\"68\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"2\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect1_dropShadow_778_34282\" />\r\n <feOffset dy=\"4\" />\r\n <feGaussianBlur stdDeviation=\"3\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.03 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_778_34282\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"4\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feOffset dy=\"12\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.08 0\" />\r\n <feBlend mode=\"normal\" in2=\"effect1_dropShadow_778_34282\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect2_dropShadow_778_34282\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"p-4 w-100 overflow-auto\">\r\n <div class=\"row my-1\">\r\n <div class=\"col-12\">\r\n\r\n <span class=\"svg-icon svg-icon-1 position-absolute py-2 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input class=\"form-control form-control-sm mb-2 ps-14 pe-2 w-100\" type=\"text\"\r\n placeholder=\"Search\" [(ngModel)]=\"StoresSearchValue\" (change)=\"searchStoresData()\" />\r\n </div>\r\n <!-- <div class=\"text-end text-nowrp ms-3 mt-2\">\r\n <button\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\"\r\n [disabled]=\"closeMultiple\" class=\"btn btn-sm btn-primary text-nowrap mx-2\"\r\n (click)=\"getMultipleTicketClose()\">\r\n Close Ticket\r\n </button>\r\n </div> -->\r\n\r\n <div *ngIf=\"openTicketsList.length\" class=\"mb-2 border-selectall\">\r\n <div class=\"d-flex justify-content-between align-items-center w-100\">\r\n\r\n <!-- LEFT: checkbox + text -->\r\n <div class=\"d-flex align-items-center\">\r\n <input\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\"\r\n type=\"checkbox\" class=\"me-2\" [checked]=\"newallSelected\"\r\n (change)=\"toggleSelectAll()\" />\r\n <label class=\"m-0 font-semibold\">\r\n Select <span\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\">all\r\n {{ storeCount }}</span> stores\r\n </label>\r\n </div>\r\n\r\n <!-- RIGHT: Reviewer(%) + optional sort icon -->\r\n <div class=\"d-flex align-items-center reviewer-label\">\r\n <span *ngIf=\"hasReviewerAccess && selectedRole === 'reviewer'\"\r\n class=\"me-1\">Reviewer(%)</span>\r\n <span *ngIf=\"hasApproverAccess && selectedRole === 'approver'\"\r\n class=\"me-1\">Accuracy(%)</span>\r\n <!-- if you want arrow icon -->\r\n <span (click)=\"onSortClick()\" class=\"sort-arrow cursor-pointer\"><svg\r\n [ngClass]=\"sortOpen === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\"\r\n viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M6.83464 1L6.83463 12.6667M6.83463 12.6667L12.668 6.83333M6.83463 12.6667L1.0013 6.83333\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <!-- or use an <i> from font-awesome/bootstrap icon instead -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ul class=\"list-unstyled ps-0\">\r\n <li *ngFor=\"let store of openTicketsList\" class=\"mb-2\"\r\n [ngClass]=\"{ 'store-item-active': isSelected(store), 'store-item': true }\">\r\n\r\n <div class=\"d-flex justify-content-between align-items-center w-100\">\r\n <!-- LEFT: checkbox + text -->\r\n <div class=\"d-flex align-items-start\">\r\n <input\r\n *ngIf=\"usersDetails.userType !=='tango' && (hasApproverAccess && selectedRole ==='approver')\"\r\n type=\"checkbox\" class=\"me-2 my-3\" [checked]=\"isSelected(store)\"\r\n (change)=\"toggleStoreSelection(store)\" />\r\n\r\n <div class=\"store-text ms-1 cursor-pointer\" (click)=\"ticketViewChanges(store)\">\r\n <div class=\"ticket-id\" [ngClass]=\"{ 'active-text': isSelected(store) }\">\r\n {{ store?.ticketId }}\r\n </div>\r\n <div class=\"store-name mt-1\">\r\n {{ store?.storeName }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- RIGHT: pill badge -->\r\n <span\r\n class=\"ms-2 px-3 py-1 rounded-pill d-inline-flex align-items-center justify-content-center perc-badge\"\r\n [ngClass]=\"{\r\n 'perc-badge-active': isSelected(store),\r\n 'perc-badge-normal': !isSelected(store)\r\n }\">\r\n {{ store?.revicedPerc }}\r\n </span>\r\n </div>\r\n </li>\r\n\r\n </ul>\r\n\r\n\r\n\r\n <div *ngIf=\"!openTicketsList.length\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body mx-0 d-flex justify-content-center align-items-center flex-column \"\r\n style=\"margin: 64px;border-radius: 8px;\r\n background: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\"\r\n viewBox=\"0 0 94 94\" fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\"\r\n transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No Stores Found</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no stores </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div [ngClass]=\"isCollapsed || this.usersDetails.userType ==='tango' ? 'col-12' : 'col-md-9'\">\r\n <div class=\"card bg-light-primary p-1 h-100\">\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"card-header border-0 pt-3 px-5\">\r\n <div class=\"d-flex justify-content-start\">\r\n <div *ngIf=\"this.usersDetails.userType !=='tango'\" class=\"cursor-pointer\"><span\r\n *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 10px; left: 10px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\">\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#667085\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </span>\r\n <span class=\"card-title-foot\" [ngClass]=\"isCollapsed ? 'ms-10' : 'ms-0'\">Footfall\r\n Directory</span>\r\n </div>\r\n <div *ngIf=\"this.usersDetails.userType ==='tango'\" class=\"cursor-pointer\"><span\r\n (click)=\"backToNavigation()\" style=\"position: absolute; top: 10px; left: 10px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\">\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#667085\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </span>\r\n <span class=\"card-title-foot ms-10\">Footfall Directory</span>\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar py-0\">\r\n <!-- Start Review -->\r\n <section *ngIf=\"usersDetails?.userType !=='tango'\">\r\n <span\r\n *ngIf=\"statusVal?.type !== 'tangoreview' && (ticketData?.status === 'Raised' || statusVal?.status === 'Open')\">\r\n\r\n <button class=\"btn btn-sm btn-primary mx-2\" (click)=\"startReview()\">\r\n Start Review\r\n </button>\r\n </span>\r\n <!-- <section *ngIf=\"\r\n (hasReviewerAccess && selectedRole === 'reviewer') ||\r\n (hasApproverAccess && selectedRole === 'approver')\r\n \">\r\n <span *ngIf=\"\r\n getHeaderStatus()?.toLowerCase() === 'in-progress' ||\r\n ticketData?.status?.toLowerCase() === 'in-progress'\r\n \">\r\n <button *ngIf=\"closeBtn\" [disabled]=\"closeDisabled\" class=\"btn btn-sm btn-primary mx-2\"\r\n (click)=\"stopReview()\">\r\n Close Ticket\r\n </button>\r\n </span>\r\n </section> -->\r\n <section *ngIf=\"\r\n (\r\n (hasReviewerAccess && selectedRole === 'reviewer'&&ticketStatus === usersDetails?.email) ||\r\n (hasApproverAccess && selectedRole === 'approver'&&ticketStatus === usersDetails?.email)\r\n )\r\n \">\r\n <span *ngIf=\"\r\n getHeaderStatus()?.toLowerCase() === 'in-progress' ||\r\n ticketData?.status?.toLowerCase() === 'in-progress'\r\n \">\r\n <button *ngIf=\"closeBtn\" [disabled]=\"closeDisabled\"\r\n class=\"btn btn-sm btn-primary mx-2\" (click)=\"stopReview()\">\r\n Close Ticket\r\n </button>\r\n </span>\r\n </section>\r\n </section>\r\n <span\r\n *ngIf=\"usersDetails?.userType ==='tango' && statusVal?.type === 'tangoreview' && statusVal?.status ==='Open'||usersDetails?.userType ==='tango' && statusVal?.type === 'tangoreview' && statusVal?.status !='Open'&&footfallTicketsData[0]?._source?.createdByEmail===this.usersDetails.email||usersDetails?.userType ==='tango'&&this.tangoType === 'internal'&&ticketData.status!='In-Progress'||usersDetails?.userType ==='tango'&&this.tangoType === 'internal'&&ticketData.status==='In-Progress'&&footfallTicketsData[0]?._source?.createdByEmail===this.usersDetails.email\">\r\n <button class=\"btn btn-sm btn-primary mx-2\" (click)=\"startAudit()\">Start Audit</button>\r\n </span>\r\n\r\n <span\r\n *ngIf=\"this.tangoType === 'store'&&usersDetails?.userType ==='tango'&&footfallTicketsData[0]?._source?.createdByEmail===this.usersDetails.email||usersDetails?.userType ==='tango'&&this.tangoType === 'internal'&&ticketData.status==='In-Progress'&&footfallTicketsData[0]?._source?.createdByEmail===this.usersDetails.email\">\r\n <span class=\"ticket-actions-wrapper\" (click)=\"$event.stopPropagation()\">\r\n\r\n <span class=\"icon-btn\" (click)=\"toggleTicketMenu($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"ticket-menu\" *ngIf=\"isTicketMenuOpen\">\r\n <div class=\"ticket-menu-item\" (click)=\"onReassignClick()\">\r\n Re-Assign Ticket\r\n </div>\r\n <!-- <div class=\"ticket-menu-item\" (click)=\"onExportClick()\">\r\n Export\r\n </div> -->\r\n </div>\r\n </span>\r\n </span>\r\n <span *ngIf=\"\r\n (\r\n (hasReviewerAccess && selectedRole === 'reviewer'&&ticketStatus === usersDetails?.email)\r\n )\r\n \">\r\n <span *ngIf=\"\r\n getHeaderStatus()?.toLowerCase() === 'in-progress' ||\r\n ticketData?.status?.toLowerCase() === 'in-progress'\">\r\n <span *ngIf=\"closeBtn\" class=\"ticket-actions-wrapper\"\r\n (click)=\"$event.stopPropagation()\">\r\n\r\n <span class=\"icon-btn\" (click)=\"toggleTicketMenu($event)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"ticket-menu\" *ngIf=\"isTicketMenuOpen\">\r\n <div class=\"ticket-menu-item\" (click)=\"onReassignClick()\">\r\n Re-Assign Ticket\r\n </div>\r\n <!-- <div class=\"ticket-menu-item\" (click)=\"onExportClick()\">\r\n Export\r\n </div> -->\r\n </div>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"card-body p-4 \">\r\n <div class=\"row mb-6\">\r\n\r\n <div class=\"col-2 card-title-label my-2\">Store Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 card-title-value my-2\">{{footfallTicketsData[0]?._source?.storeName}}</div>\r\n <div class=\"col-2 card-title-label my-2\">Ticket ID</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 card-title-value my-2\">{{footfallTicketsData[0]?._source?.ticketId}}</div>\r\n <div class=\"col-2 card-title-label my-2\">Status</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n\r\n <div class=\"col-3 my-2\">\r\n <span class=\"badge mx-2\" [ngClass]=\"getStatusBadgeClass(getHeaderStatus())\">\r\n {{ getHeaderStatus() | titlecase }}\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"dueDate\" class=\"col-2 card-title-label my-2\">Due Date</div>\r\n <div *ngIf=\"dueDate\" class=\"col-1 font-bold my-2\">:</div>\r\n <div *ngIf=\"dueDate\" class=\"col-3 card-title-value my-2\">{{dueDate ? (dueDate | date:'dd MMM yyyy') :''}}</div>\r\n </div>\r\n <div class=\"accuracy-panel\" *ngIf=\"getHeaderStatus()==='Open - Accuracy Issue'\">\r\n <!-- Title + badge -->\r\n <div class=\" accuracy-header\">\r\n <span class=\"badge badge-light-blue px-3 py-2 badge-light-blue\">Accuracy issue</span>\r\n </div>\r\n\r\n <!-- Info Text -->\r\n <p class=\"info-line mb-3\">\r\n <i class=\"bi bi-info-circle-fill me-2\"></i>\r\n Please review and determine the root cause of the low accuracy.\r\n </p>\r\n\r\n <!-- Form area -->\r\n <div class=\"row gx-3\">\r\n <!-- Column for select and +Add -->\r\n <div class=\"col-12 col-md-4\">\r\n <div class=\"form-small\">\r\n <label class=\"visually-hidden\" for=\"issueSelect\">Select issue</label>\r\n <select id=\"issueSelect\" class=\"form-select form-select-sm\"\r\n [(ngModel)]=\"selectedIssue\" name=\"selectedIssue\">\r\n <option value=\"\">Select issue</option>\r\n <option value=\"{{item?.issueName}}\" *ngFor=\"let item of accuracyList\">\r\n {{item?.issueName}}</option>\r\n </select>\r\n\r\n <!-- <button type=\"button\" class=\"btn btn-sm btn-outline-secondary add-btn\"\r\n (click)=\"onAddIssue()\">\r\n + Add\r\n </button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- You can put additional fields here if needed -->\r\n <div class=\"col-12 col-md-8\">\r\n <input type=\"text\" class=\"form-control\" *ngIf=\"selectedIssue!=''\"\r\n [(ngModel)]=\"selectedsubIssue\"\r\n placeholder=\"Changes camera location, hence closing this ticket\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Footer with right-aligned buttons -->\r\n <div class=\"panel-footer\">\r\n\r\n <button type=\"button\" [disabled]=\"selectedIssue==''||selectedsubIssue===''\"\r\n class=\"btn btn-sm btn-primary\" (click)=\"oncloseSubmit()\">Close &\r\n Submit</button>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"card-layer\">\r\n <div class=\"d-flex justify-content-between align-items-start w-100\">\r\n\r\n <!-- LEFT SIDE -->\r\n <h3 class=\"card-title align-items-start flex-column mb-0\">\r\n <div class=\"card-label\">Ticket Status</div>\r\n <div class=\"text-sub mb-2\">Logs for each revision of the ticket.</div>\r\n </h3>\r\n\r\n <!-- RIGHT SIDE -->\r\n <div class=\"cursor-pointer\">\r\n <span (click)=\"openArrow()\"> <svg *ngIf=\"arrowshow\" xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_486_91902)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M15 16.5L20 21.5L25 16.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_486_91902\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_486_91902\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_486_91902\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg></span>\r\n <span (click)=\"openArrow()\">\r\n <svg *ngIf=\"!arrowshow\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\"\r\n viewBox=\"0 0 40 40\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_486_91893)\">\r\n <rect x=\"38\" y=\"37\" width=\"36\" height=\"36\" rx=\"8\"\r\n transform=\"rotate(180 38 37)\" fill=\"white\" />\r\n <rect x=\"37.5\" y=\"36.5\" width=\"35\" height=\"35\" rx=\"7.5\"\r\n transform=\"rotate(180 37.5 36.5)\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25 21.5L20 16.5L15 21.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_486_91893\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_486_91893\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_486_91893\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <section *ngIf=\"!arrowshow\">\r\n\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n\r\n <div *ngIf=\"ticket?._source as source\" class=\"ticket-container\">\r\n\r\n <!-- Actual Footfall Header -->\r\n <div class=\"ticket-header\">\r\n <div class=\"footfall-value\">{{source?.footfallCount}} <span\r\n class=\"footfall-label ms-3\">Actual\r\n Footfall</span>\r\n </div>\r\n <div class=\"issue-date\">Issue date : {{source?.dateString | date:'dd MMM yyyy'}}\r\n </div>\r\n </div>\r\n\r\n <!-- Timeline Line -->\r\n <ng-container *ngFor=\"let mapping of source?.mappingInfo\">\r\n\r\n <!-- When ticket is CLOSED, skip the tagging row -->\r\n <ng-container\r\n *ngIf=\"\r\n ['tagging','review','approve','tangoreview'].includes(mapping?.type)\r\n && (\r\n mapping?.status === 'Closed'\r\n || mapping?.status === 'Closed - Accuracy Issue'\r\n || mapping?.status === 'Open - Accuracy Issue'\r\n || mapping?.status === 'Raised'\r\n )\r\n \"\r\n>\r\n\r\n\r\n <div class=\"timeline\"></div>\r\n <div class=\"user-info ms-4\">\r\n\r\n <div class=\"avatar avatar-text light-primary p-3\">\r\n {{ getInitialsFromEmail(mapping?.createdByEmail ||\r\n source?.createdByEmail) }}\r\n </div>\r\n\r\n <div>\r\n <div class=\"user-name\">\r\n <span *ngIf=\"mapping?.type === 'tagging'\">\r\n Ticket created by\r\n </span>\r\n <span *ngIf=\"mapping?.type === 'review'\">\r\n Reviewed by\r\n </span>\r\n <span *ngIf=\"mapping?.type === 'approve'\">\r\n Approved by\r\n </span>\r\n\r\n <span *ngIf=\"mapping?.type === 'tangoreview'\">\r\n Tango\r\n </span>\r\n </div>\r\n\r\n <div class=\"user-email\">\r\n {{ mapping?.createdByEmail || source?.createdByEmail }}\r\n {{(mapping?.createdAt || source?.createdAt)\r\n | date:'HH:mm:ss –dd MMM yyyy' }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"timeline\"></div>\r\n\r\n <!-- Show revision card only when NOT closed & type is tagging -->\r\n <div class=\"revision-card\"\r\n [ngClass]=\"{'revision-card-approve-closed':(mapping?.status === 'Closed' || mapping?.status === 'Closed - Accuracy Issue' || mapping?.status === 'Open - Accuracy Issue') && (mapping?.type === 'approve' || mapping?.type === 'tangoreview'),}\">\r\n <div class=\"values-row\">\r\n <div class=\"value-block\">\r\n <div class=\"value\">\r\n {{ mapping?.revicedFootfall === null ? '--' :\r\n mapping?.revicedFootfall }}\r\n </div>\r\n <div class=\"label fw-bold\">Revised Footfall</div>\r\n </div>\r\n\r\n <div class=\"value-block\">\r\n <div class=\"value accuracy down\">\r\n {{ mapping?.revicedPerc || source?.revicedPerc || '--' }}\r\n <span class=\"ms-1\">\r\n <!-- arrow svg -->\r\n </span>\r\n </div>\r\n <div class=\"label fw-bold pt-1\">Accuracy</div>\r\n </div>\r\n\r\n <div class=\"timeline-new my-2\"></div>\r\n\r\n <div class=\"value-block\" *ngFor=\"let item of mapping?.count\">\r\n <div class=\"value\">\r\n {{ item?.value ?? '--' }}\r\n </div>\r\n <div class=\"label\">\r\n {{ item?.name }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <div *ngIf=\"mapping?.status === 'Closed' && ['approve'].includes(mapping?.type)\"\r\n class=\"card-footer revision-card-approve py-1 bg-light-primary\">\r\n <div *ngIf=\"!showApproveDetails\"\r\n class=\"details-toggle d-flex justify-content-start bg-light-primary align-items-start mt-2\"\r\n (click)=\"toggleRevisedDetails(mapping)\">\r\n <span class=\"text-primary \">\r\n Show in details\r\n </span>\r\n <span class=\"chevron ms-3 cursor-pointer\"\r\n [class.rotate-180]=\"showRevisedDetails\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 9L12 15L6 9\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span *ngIf=\"showApproveDetails\" class=\"chevron ms-3 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 15L12 9L18 15\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <div class=\"details-body mt-2\" *ngIf=\"showApproveDetails\">\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-5\">\r\n <ng-container *ngFor=\"let type of revopsTypes\">\r\n <section *ngIf=\"type ==='duplicate'\">\r\n\r\n <div *ngIf=\"hasRevopsType(type)\" class=\"layers\">\r\n <!-- Header Section -->\r\n <div class=\"card-header min-h-25px pt-3\">\r\n <h3 class=\"text-lg font-semibold mb-4\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\"\r\n fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n Duplicates\r\n </h3>\r\n </div>\r\n\r\n\r\n <!-- Body Section -->\r\n <ng-container\r\n *ngFor=\"let mapping of source?.mappingInfo\">\r\n <!-- Body Section -->\r\n <ng-container *ngIf=\"mapping?.type ===viewMode\">\r\n <ng-container\r\n *ngFor=\"let original of mapping?.revisedDetail\">\r\n <div *ngIf=\"original?.isParent && original?.revopsType ==='duplicate'\"\r\n class=\"card-body bg-white layers pt-5 pb-0 px-0 m-3\">\r\n <div class=\"mt-4\">\r\n <!-- Original Image -->\r\n <div\r\n class=\"duplicate-head px-5 my-3\">\r\n Original image\r\n </div>\r\n <div class=\"row px-5\">\r\n <div\r\n class=\"col-md-4 relative\">\r\n <div\r\n class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original?.filePath\"\r\n alt=\"\"\r\n class=\"w-100 rounded border\" />\r\n <div\r\n class=\"desc-title ms-2 my-2\">\r\n Tango ID: {{\r\n original.tempId\r\n }}</div>\r\n <div\r\n class=\"desc-value ms-2\">\r\n Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime)\r\n }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div\r\n class=\"separator separator-dashed mt-3 mb-5\">\r\n </div>\r\n <div class=\"row px-5\">\r\n <h5\r\n class=\"duplicate-head my-3 fs-6\">\r\n Tagged Duplicates</h5>\r\n <div *ngIf=\"isCheckboxEnable\"\r\n class=\"my-3\">\r\n <input type=\"checkbox\"\r\n [checked]=\"areAllDuplicatesSelected(original)\"\r\n (change)=\"onToggleSelectAllDuplicates(original, $event)\" />\r\n <label\r\n class=\"ms-2\">Select\r\n All</label>\r\n </div>\r\n <div *ngFor=\"let duplicate of original?.duplicateImage; let i = index\"\r\n class=\"col-md-3 mb-3 position-relative\">\r\n <div class=\"pb-3 h-100 rounded-3 position-relative\"\r\n [ngClass]=\"{\r\n 'layer-approved': isApproved(duplicate),\r\n 'layer-rejected': isRejected(duplicate),\r\n 'img-border border border-1': !isApproved(duplicate) && !isRejected(duplicate)}\">\r\n <!-- Checkbox -->\r\n <div\r\n *ngIf=\"isCheckboxEnable\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"!isLockedByReviewer(duplicate)\"\r\n style=\"right: 5px ; margin: 10px 5px 4px !important;\"\r\n [checked]=\"isDuplicateSelected(original.tempId, duplicate.tempId)\"\r\n (change)=\"onDuplicateCheckboxChange(original.tempId, duplicate.tempId, $event)\"\r\n class=\"position-absolute form-check-input duplicate-checkbox\" />\r\n <span\r\n class=\"position-absolute absolute\"\r\n *ngIf=\"isLockedByReviewer(duplicate)\"\r\n (click)=\"resetCheckbox('duplicate', duplicate)\">\r\n\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\"\r\n height=\"19\"\r\n viewBox=\"0 0 19 19\"\r\n fill=\"none\">\r\n <g\r\n filter=\"url(#filter0_d_2023_13718)\">\r\n <rect\r\n x=\"1.11133\"\r\n y=\"0.555664\"\r\n width=\"16\"\r\n height=\"16\"\r\n rx=\"2\"\r\n fill=\"white\" />\r\n <rect\r\n x=\"1.38911\"\r\n y=\"0.833442\"\r\n width=\"15.4444\"\r\n height=\"15.4444\"\r\n rx=\"1.72222\"\r\n stroke=\"#D0D5DD\"\r\n stroke-width=\"0.555556\" />\r\n <path\r\n d=\"M5.87109 8.55566H12.3526\"\r\n stroke=\"#344054\"\r\n stroke-width=\"0.927778\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_2023_13718\"\r\n x=\"0.00021708\"\r\n y=\"0.00010854\"\r\n width=\"18.2222\"\r\n height=\"18.2222\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood\r\n flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset\r\n dy=\"0.555556\" />\r\n <feGaussianBlur\r\n stdDeviation=\"0.555556\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2023_13718\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_2023_13718\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n </div>\r\n <!-- (change)=\"onImageCheckboxChange(duplicate.tempId, 'duplicate', 'original')\" -->\r\n <!-- Duplicate Image -->\r\n <img [src]=\"imageUrl + duplicate.filePath\"\r\n alt=\"\"\r\n (click)=\"openImagePreview(mapping,original.duplicateImage, i, 'Tagged Duplicates')\"\r\n class=\"w-100 rounded border duplicate-image cursor-pointer\" />\r\n\r\n <!-- Duplicate Info -->\r\n <div\r\n class=\"row my-2\">\r\n <div\r\n class=\"col-8\">\r\n <div\r\n class=\"desc-title ms-2 my-2\">\r\n Tango\r\n ID: {{\r\n duplicate.tempId\r\n }}\r\n\r\n <span\r\n *ngIf=\"getAction(duplicate, 'review')?.action === 'approved'\"\r\n class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(duplicate, 'review')?.action === 'rejected'\"\r\n class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n\r\n </div>\r\n\r\n <div\r\n class=\"desc-value ms-2\">\r\n Entry\r\n Time: {{\r\n getFormattedEntryTime(duplicate.entryTime)\r\n }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"col-4\">\r\n <span\r\n *ngIf=\"getAction(duplicate, 'approve')?.action === 'approved'\">\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\"\r\n height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect\r\n width=\"24\"\r\n height=\"24\"\r\n rx=\"12\"\r\n fill=\"#D1FADF\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94051)\">\r\n <path\r\n d=\"M9.5 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V12.5C7 12.2348 7.10536 11.9804 7.29289 11.7929C7.48043 11.6054 7.73478 11.5 8 11.5H9.5M13 10.5V8.5C13 8.10218 12.842 7.72064 12.5607 7.43934C12.2794 7.15804 11.8978 7 11.5 7L9.5 11.5V17H15.14C15.3812 17.0027 15.6152 16.9182 15.799 16.762C15.9827 16.6058 16.1038 16.3885 16.14 16.15L16.83 11.65C16.8518 11.5067 16.8421 11.3603 16.8017 11.2211C16.7613 11.0819 16.6911 10.9531 16.5959 10.8438C16.5008 10.7344 16.383 10.647 16.2508 10.5876C16.1185 10.5283 15.975 10.4984 15.83 10.5H13Z\"\r\n stroke=\"#039855\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94051\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n <span\r\n *ngIf=\"getAction(duplicate, 'approve')?.action === 'rejected'\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\"\r\n height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect\r\n width=\"24\"\r\n height=\"24\"\r\n rx=\"12\"\r\n fill=\"#FEE4E2\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94090)\">\r\n <path\r\n d=\"M14.5015 7.00006H15.8365C16.1195 6.99505 16.3944 7.09413 16.6092 7.27847C16.8239 7.46281 16.9635 7.71959 17.0015 8.00006V11.5001C16.9635 11.7805 16.8239 12.0373 16.6092 12.2216C16.3944 12.406 16.1195 12.5051 15.8365 12.5001H14.5015M11.0015 13.5001V15.5001C11.0015 15.8979 11.1595 16.2794 11.4408 16.5607C11.7221 16.842 12.1037 17.0001 12.5015 17.0001L14.5015 12.5001V7.00006H8.86148C8.62032 6.99733 8.38629 7.08186 8.20253 7.23806C8.01876 7.39426 7.89764 7.61161 7.86148 7.85006L7.17148 12.3501C7.14973 12.4934 7.15939 12.6397 7.19981 12.7789C7.24023 12.9181 7.31043 13.0469 7.40555 13.1563C7.50067 13.2657 7.61844 13.3531 7.75069 13.4124C7.88295 13.4718 8.02653 13.5017 8.17148 13.5001H11.0015Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94090\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Duplicate Reason -->\r\n <!-- <div class=\"duplicate-reason ms-2 mt-2\">\r\n <small class=\"text-muted\">{{ duplicate.reason }}</small>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"card-footer py-5\"\r\n *ngIf=\"source?.commentsDetails?.length\">\r\n <div\r\n class=\"comments-accordion\">\r\n <!-- Accordion Header -->\r\n <div class=\"accordion-header\"\r\n (click)=\"toggleCommentsAccordion(type)\">\r\n <div\r\n class=\"d-flex justify-content-start align-items-center w-100\">\r\n <span\r\n class=\"comments-count\">\r\n <!-- {{\r\n getCategoryCommentCountForSource(source,\r\n type) }} -->\r\n Comments</span>\r\n <div\r\n class=\"accordion-arrow ms-3\">\r\n <svg [class.rotated]=\"selectedCommentCategory ==='duplicate' && commentsAccordionOpen\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M4 6L8 10L12 6\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion Body -->\r\n <div class=\"accordion-body mt-3\"\r\n *ngIf=\"selectedCommentCategory ==='duplicate' && commentsAccordionOpen\">\r\n\r\n <!-- Loop each block: tagging / review / approve -->\r\n <ng-container\r\n *ngFor=\"let block of source?.commentsDetails\">\r\n\r\n <!-- Loop inside comments -->\r\n <ng-container\r\n *ngFor=\"let c of block.comments\">\r\n\r\n <div *ngIf=\"block?.category ==='duplicate'\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{\r\n getInitialsFromEmail(c.createdByEmail)\r\n }}\r\n </div>\r\n <div\r\n class=\"w-100\">\r\n\r\n <!-- email -->\r\n <div\r\n class=\"fw-semibold\">\r\n {{\r\n c.createdByEmail\r\n }}\r\n </div>\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <!-- message text -->\r\n <p class=\"mb-2 mt-2\"\r\n *ngIf=\"c.message\">\r\n {{\r\n c.message\r\n }}\r\n </p>\r\n\r\n <!-- Review / Approve only -->\r\n <ng-container\r\n *ngIf=\"block.type === 'review' || block.type === 'approve'\">\r\n <!-- Tagged images -->\r\n <div\r\n class=\"d-flex flex-wrap\">\r\n\r\n <div\r\n *ngFor=\"let img of c.taggedImages; let i = index\">\r\n\r\n <!-- Show only first 4 -->\r\n <ng-container\r\n *ngIf=\"i < 3\">\r\n <div\r\n class=\"tango-card me-2\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url('+ imageUrl + img.filePath + ')'\">\r\n </div>\r\n\r\n <div\r\n class=\"tango-meta small\">\r\n <div>\r\n Tango\r\n ID:\r\n {{\r\n img.tempId\r\n }}\r\n\r\n <!-- status dots -->\r\n <span\r\n *ngIf=\"c.status === 'approved'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg></span>\r\n\r\n <span\r\n *ngIf=\"c.status === 'rejected'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n\r\n <div\r\n class=\"text-muted\">\r\n Entry\r\n time:\r\n {{\r\n img.entryTime\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <!-- +N more -->\r\n <div class=\"tango-card me-2 more-card text-center\"\r\n *ngIf=\"c.taggedImages.length > 3\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.taggedImages[3].filePath + ')'\"\r\n (click)=\"openImagesPopup(c)\">\r\n <div\r\n class=\"more-overlay\">\r\n </div>\r\n\r\n <!-- vertical container -->\r\n <div\r\n class=\"more-wrapper my-10 d-flex flex-column align-items-center justify-content-center\">\r\n <div\r\n class=\"more-text fw-semibold\">\r\n +{{\r\n c.taggedImages.length\r\n -\r\n 3\r\n }}\r\n </div>\r\n <div\r\n class=\"text-primary text-dark text-decoration-underline small\">\r\n View\r\n all\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n <!-- Status Icons -->\r\n\r\n\r\n </div>\r\n </section>\r\n <section *ngIf=\"type !=='duplicate'\">\r\n <div class=\"layers my-2\" *ngIf=\"hasRevopsType(type)\">\r\n <div class=\"card-header min-h-25px pt-3\">\r\n <div class=\"duplicate-head text-lg my-3\"><span\r\n *ngIf=\"type ==='employee'\"\r\n class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"16\"\r\n viewBox=\"0 0 18 16\" fill=\"none\">\r\n <path\r\n d=\"M12.75 14.75V13.25C12.75 12.4544 12.4339 11.6913 11.8713 11.1287C11.3087 10.5661 10.5456 10.25 9.75 10.25H3.75C2.95435 10.25 2.19129 10.5661 1.62868 11.1287C1.06607 11.6913 0.75 12.4544 0.75 13.25V14.75M17.25 14.75V13.25C17.2495 12.5853 17.0283 11.9396 16.621 11.4142C16.2138 10.8889 15.6436 10.5137 15 10.3475M12 1.3475C12.6453 1.51273 13.2173 1.88803 13.6257 2.41423C14.0342 2.94044 14.2559 3.58762 14.2559 4.25375C14.2559 4.91988 14.0342 5.56706 13.6257 6.09327C13.2173 6.61947 12.6453 6.99477 12 7.16M9.75 4.25C9.75 5.90685 8.40685 7.25 6.75 7.25C5.09315 7.25 3.75 5.90685 3.75 4.25C3.75 2.59315 5.09315 1.25 6.75 1.25C8.40685 1.25 9.75 2.59315 9.75 4.25Z\"\r\n stroke=\"#475467\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> <span\r\n *ngIf=\"type ==='houseKeeping'\"\r\n class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.51995 0.613065C8.33739 -0.204355 9.66267 -0.204355 10.4801 0.613065L17.387 7.51995C18.2043 8.33739 18.2043 9.66267 17.387 10.4801L10.4801 17.387C9.66267 18.2043 8.33739 18.2043 7.51995 17.387L5.54626 15.4133L3.73708 17.2224C2.91966 18.0399 1.59436 18.0399 0.776944 17.2224C-0.0404767 16.4051 -0.0404767 15.0797 0.776944 14.2624L2.58612 12.4531L0.613065 10.4801C-0.204355 9.66267 -0.204355 8.33739 0.613065 7.51995L7.51995 0.613065ZM9.49336 1.59978C9.22088 1.32731 8.77909 1.32731 8.50661 1.59978L3.57286 6.53357L11.4665 14.4272L16.4002 9.49336C16.6727 9.22088 16.6727 8.77909 16.4002 8.5067L12.9465 5.05286L11.7952 6.20403C11.5228 6.4765 11.0811 6.4765 10.8086 6.20403C10.5361 5.93155 10.5361 5.48978 10.8086 5.21731L11.9597 4.06614L10.9732 3.07964L8.17757 5.87533C7.90509 6.1478 7.46329 6.1478 7.19081 5.87533C6.91833 5.60286 6.91833 5.16109 7.19081 4.88862L9.9865 2.09293L9.49336 1.59978ZM10.4797 15.4139L2.58615 7.52028L1.59978 8.5067C1.3273 8.77909 1.3273 9.22088 1.59978 9.49336L8.50661 16.4002C8.77909 16.6727 9.22088 16.6727 9.49336 16.4002L10.4797 15.4139ZM3.57275 13.4399L1.76366 15.249C1.49119 15.5215 1.49119 15.9633 1.76366 16.2358C2.03613 16.5082 2.4779 16.5082 2.75037 16.2358L4.55946 14.4266L3.57275 13.4399Z\"\r\n fill=\"#475467\" />\r\n </svg></span> <span\r\n *ngIf=\"type ==='junk'\" class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\" height=\"19\"\r\n viewBox=\"0 0 17 19\" fill=\"none\">\r\n <path\r\n d=\"M1 4.33333H2.66667M2.66667 4.33333H16M2.66667 4.33333V16C2.66667 16.442 2.84226 16.8659 3.15482 17.1785C3.46738 17.4911 3.89131 17.6667 4.33333 17.6667H12.6667C13.1087 17.6667 13.5326 17.4911 13.8452 17.1785C14.1577 16.8659 14.3333 16.442 14.3333 16V4.33333H2.66667ZM5.16667 4.33333V2.66667C5.16667 2.22464 5.34226 1.80072 5.65482 1.48816C5.96738 1.17559 6.39131 1 6.83333 1H10.1667C10.6087 1 11.0326 1.17559 11.3452 1.48816C11.6577 1.80072 11.8333 2.22464 11.8333 2.66667V4.33333M6.83333 8.5V13.5M10.1667 8.5V13.5\"\r\n stroke=\"#475467\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> <span\r\n *ngIf=\"type !=='junk' && type !=='houseKeeping' && type !=='employee'\"\r\n class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"21\"\r\n viewBox=\"0 0 21 21\" fill=\"none\">\r\n <path\r\n d=\"M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n fill=\"#FFEAD5\" />\r\n <path\r\n d=\"M5.66406 5.66663H5.67406M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n stroke=\"#FB6514\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> {{type | titlecase}}\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCheckboxEnable\" class=\"ms-3 my-3\">\r\n <input type=\"checkbox\"\r\n [(ngModel)]=\"selectAllByType[type]\"\r\n (change)=\"onSelectAll(type, $event)\">\r\n <label>Select All</label>\r\n </div>\r\n <ng-container\r\n *ngFor=\"let mapping of source?.mappingInfo\">\r\n <!-- Body Section -->\r\n <div *ngIf=\"mapping?.type ===viewMode\"\r\n class=\"card-body bg-white layers p-5 m-3\">\r\n\r\n <div class=\"row\">\r\n <ng-container\r\n *ngFor=\"let original of mapping?.revisedDetail;let i=index\">\r\n <div *ngIf=\"original?.revopsType ===type\"\r\n class=\"col-md-3 mb-3 position-relative\">\r\n <div class=\"pb-3 h-100 rounded-3 position-relative\"\r\n [ngClass]=\"{\r\n'layer-approved': isApproved(original),\r\n'layer-rejected': isRejected(original),\r\n'img-border border border-1': !isApproved(original) && !isRejected(original)}\">\r\n\r\n\r\n <!-- Top-right Checkbox -->\r\n <div\r\n *ngIf=\"isCheckboxEnable\">\r\n\r\n <input\r\n *ngIf=\"!isLockedByReviewer(original)\"\r\n type=\"checkbox\"\r\n class=\"position-absolute absolute form-check-input\"\r\n [checked]=\"(selectedByType[type] || []).includes(original?.tempId)\"\r\n (change)=\"onImageCheckboxChange(type, original.tempId,$event)\" />\r\n <span\r\n class=\"position-absolute absolute\"\r\n *ngIf=\"isLockedByReviewer(original)\"\r\n (click)=\"resetCheckbox(type, original)\">\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\"\r\n height=\"19\"\r\n viewBox=\"0 0 19 19\"\r\n fill=\"none\">\r\n <g\r\n filter=\"url(#filter0_d_2023_13718)\">\r\n <rect\r\n x=\"1.11133\"\r\n y=\"0.555664\"\r\n width=\"16\"\r\n height=\"16\"\r\n rx=\"2\"\r\n fill=\"white\" />\r\n <rect\r\n x=\"1.38911\"\r\n y=\"0.833442\"\r\n width=\"15.4444\"\r\n height=\"15.4444\"\r\n rx=\"1.72222\"\r\n stroke=\"#D0D5DD\"\r\n stroke-width=\"0.555556\" />\r\n <path\r\n d=\"M5.87109 8.55566H12.3526\"\r\n stroke=\"#344054\"\r\n stroke-width=\"0.927778\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_2023_13718\"\r\n x=\"0.00021708\"\r\n y=\"0.00010854\"\r\n width=\"18.2222\"\r\n height=\"18.2222\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood\r\n flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset\r\n dy=\"0.555556\" />\r\n <feGaussianBlur\r\n stdDeviation=\"0.555556\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2023_13718\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_2023_13718\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n\r\n <img [src]=\"imageUrl + original?.filePath\"\r\n alt=\"\"\r\n (click)=\"openImagePreview(mapping,original, i, type)\"\r\n class=\"w-100 rounded border cursor-pointer\" />\r\n <div class=\"row my-2\">\r\n <div class=\"col-8\">\r\n <div\r\n class=\"desc-title ms-2 my-2\">\r\n Tango ID: {{\r\n original.tempId\r\n }}\r\n <span\r\n *ngIf=\"getAction(original, 'review')?.action === 'approved'\"\r\n class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\nheight: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(original, 'review')?.action === 'rejected'\"\r\n class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\nheight: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div\r\n class=\"desc-value ms-2\">\r\n Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime)\r\n }}</div>\r\n </div>\r\n <div class=\"col-4\">\r\n <span\r\n *ngIf=\"getAction(original, 'approve')?.action === 'approved'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\"\r\n height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect\r\n width=\"24\"\r\n height=\"24\"\r\n rx=\"12\"\r\n fill=\"#D1FADF\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94051)\">\r\n <path\r\n d=\"M9.5 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V12.5C7 12.2348 7.10536 11.9804 7.29289 11.7929C7.48043 11.6054 7.73478 11.5 8 11.5H9.5M13 10.5V8.5C13 8.10218 12.842 7.72064 12.5607 7.43934C12.2794 7.15804 11.8978 7 11.5 7L9.5 11.5V17H15.14C15.3812 17.0027 15.6152 16.9182 15.799 16.762C15.9827 16.6058 16.1038 16.3885 16.14 16.15L16.83 11.65C16.8518 11.5067 16.8421 11.3603 16.8017 11.2211C16.7613 11.0819 16.6911 10.9531 16.5959 10.8438C16.5008 10.7344 16.383 10.647 16.2508 10.5876C16.1185 10.5283 15.975 10.4984 15.83 10.5H13Z\"\r\n stroke=\"#039855\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94051\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(original, 'approve')?.action === 'rejected'\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\"\r\n height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect\r\n width=\"24\"\r\n height=\"24\"\r\n rx=\"12\"\r\n fill=\"#FEE4E2\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94090)\">\r\n <path\r\n d=\"M14.5015 7.00006H15.8365C16.1195 6.99505 16.3944 7.09413 16.6092 7.27847C16.8239 7.46281 16.9635 7.71959 17.0015 8.00006V11.5001C16.9635 11.7805 16.8239 12.0373 16.6092 12.2216C16.3944 12.406 16.1195 12.5051 15.8365 12.5001H14.5015M11.0015 13.5001V15.5001C11.0015 15.8979 11.1595 16.2794 11.4408 16.5607C11.7221 16.842 12.1037 17.0001 12.5015 17.0001L14.5015 12.5001V7.00006H8.86148C8.62032 6.99733 8.38629 7.08186 8.20253 7.23806C8.01876 7.39426 7.89764 7.61161 7.86148 7.85006L7.17148 12.3501C7.14973 12.4934 7.15939 12.6397 7.19981 12.7789C7.24023 12.9181 7.31043 13.0469 7.40555 13.1563C7.50067 13.2657 7.61844 13.3531 7.75069 13.4124C7.88295 13.4718 8.02653 13.5017 8.17148 13.5001H11.0015Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94090\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer py-5\"\r\n *ngIf=\"source?.commentsDetails?.length\">\r\n <div class=\"comments-accordion\">\r\n <!-- Accordion Header -->\r\n <div class=\"accordion-header\"\r\n (click)=\"toggleCommentsAccordion(type)\">\r\n <div\r\n class=\"d-flex justify-content-start align-items-center w-100\">\r\n <div class=\"comments-title\">\r\n\r\n <span class=\"comments-count\">\r\n <!-- {{\r\n getCategoryCommentCountForSource(source,\r\n type) }} -->\r\n Comments</span>\r\n\r\n\r\n </div>\r\n <div class=\"accordion-arrow ms-3\">\r\n <svg [class.rotated]=\"selectedCommentCategory === type && commentsAccordionOpen\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion Content -->\r\n <div class=\"accordion-body mt-3\"\r\n *ngIf=\"selectedCommentCategory === type && commentsAccordionOpen\">\r\n\r\n <!-- loop each block: tagging / review / approve -->\r\n <ng-container\r\n *ngFor=\"let block of source?.commentsDetails\">\r\n\r\n <!-- TAGGING COMMENTS (each comment = one image + message) -->\r\n <ng-container\r\n *ngIf=\"block.type === 'tagging'\">\r\n <ng-container\r\n *ngFor=\"let c of block.comments\">\r\n\r\n <div *ngIf=\"block.category === selectedCommentCategory\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{\r\n getInitialsFromEmail(c.createdByEmail)\r\n }}\r\n </div>\r\n\r\n <!-- content -->\r\n <div>\r\n <div\r\n class=\"fw-semibold\">\r\n {{\r\n c.createdByEmail\r\n }}\r\n </div>\r\n\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <p class=\"mb-2 mt-2\"\r\n *ngIf=\"c.message\">\r\n {{ c.message }}\r\n </p>\r\n\r\n <!-- single image card -->\r\n <div\r\n class=\"d-flex flex-wrap\">\r\n <div class=\"tango-card me-2\"\r\n *ngIf=\"c.filePath\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.filePath + ')'\">\r\n </div>\r\n\r\n <div\r\n class=\"tango-meta small\">\r\n <div>\r\n Tango\r\n ID:\r\n {{\r\n c.tempId\r\n }}\r\n </div>\r\n <div\r\n class=\"text-muted\">\r\n Entry\r\n time:\r\n {{\r\n c.entryTime\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- REVIEW / APPROVE COMMENTS (with taggedImages + +N View all) -->\r\n <ng-container\r\n *ngIf=\"block.type === 'review' || block.type === 'approve'\">\r\n <ng-container\r\n *ngFor=\"let c of block.comments\">\r\n\r\n <div *ngIf=\"c.category === selectedCommentCategory\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{\r\n getInitialsFromEmail(c.createdByEmail)\r\n }}\r\n </div>\r\n\r\n <!-- content -->\r\n <div class=\"w-100\">\r\n <div\r\n class=\"fw-semibold\">\r\n {{\r\n c.createdByEmail\r\n }}\r\n </div>\r\n\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <!-- main review/approve message -->\r\n <p class=\"mb-2 mt-2\"\r\n *ngIf=\"c.message\">\r\n {{ c.message }}\r\n </p>\r\n\r\n\r\n\r\n <!-- image list + +N View all -->\r\n <div class=\"d-flex flex-wrap\"\r\n *ngIf=\"c.taggedImages?.length\">\r\n\r\n <!-- first 3 images -->\r\n <div\r\n *ngFor=\"let img of c.taggedImages; let i = index\">\r\n <ng-container\r\n *ngIf=\"i < 3\">\r\n <div\r\n class=\"tango-card me-2\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + img.filePath + ')'\">\r\n </div>\r\n\r\n <div\r\n class=\"tango-meta small\">\r\n <div>\r\n Tango\r\n ID:\r\n {{\r\n img.tempId\r\n }}\r\n <span\r\n *ngIf=\"c.status === 'approved'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg></span>\r\n\r\n <span\r\n *ngIf=\"c.status === 'rejected'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div\r\n class=\"text-muted\">\r\n Entry\r\n time:\r\n {{\r\n img.entryTime\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- +N View all card -->\r\n <div class=\"tango-card me-2 more-card text-center\"\r\n *ngIf=\"c.taggedImages.length > 3\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.taggedImages[3].filePath + ')'\"\r\n (click)=\"openImagesPopup(c)\">\r\n <div\r\n class=\"more-overlay\">\r\n </div>\r\n\r\n <!-- vertical container -->\r\n <div\r\n class=\"more-wrapper my-10 d-flex flex-column align-items-center justify-content-center\">\r\n <div\r\n class=\"more-text fw-semibold\">\r\n +{{\r\n c.taggedImages.length\r\n -\r\n 3 }}\r\n </div>\r\n <div\r\n class=\"text-primary text-dark text-decoration-underline small\">\r\n View\r\n all\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-container>\r\n\r\n\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showApproveDetails\"\r\n class=\"details-toggle d-flex justify-content-start bg-light-primary align-items-start mt-2\"\r\n (click)=\"toggleRevisedDetails(mapping)\">\r\n <span class=\"text-primary \">\r\n Hide in details\r\n </span>\r\n\r\n <span *ngIf=\"showApproveDetails\" class=\"chevron ms-3 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 15L12 9L18 15\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"(mapping?.status === 'Closed' || mapping?.status === 'Closed - Accuracy Issue' || mapping?.status === 'Open - Accuracy Issue') && ['tangoreview'].includes(mapping?.type)\"\r\n class=\"card-footer revision-card-approve py-1 bg-light-primary\">\r\n <div *ngIf=\"!showTangoDetails\"\r\n class=\"details-toggle d-flex justify-content-start bg-light-primary align-items-start mt-2\"\r\n (click)=\"toggleRevisedDetails(mapping)\">\r\n <span class=\"text-primary \">\r\n Show in details\r\n </span>\r\n <span class=\"chevron ms-3 cursor-pointer\"\r\n [class.rotate-180]=\"showRevisedDetails\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 9L12 15L6 9\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n\r\n </div>\r\n\r\n <div class=\"details-body mt-2\" *ngIf=\"showTangoDetails\">\r\n\r\n <div>\r\n <div class=\"nav-group bg-white btn-group w-auto my-2\">\r\n <ng-container>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('footfall')\">\r\n Total Footfall\r\n <span\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ this.filterList?.length || 0 }}\r\n </span>\r\n </button>\r\n <button class=\"btn btn-outline px-6 py-3 text-capitalize\"\r\n *ngFor=\"let item of countData\"\r\n [ngClass]=\"type === item.type ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends(item.type)\">\r\n {{item.type}}\r\n <span\r\n [ngClass]=\"type === item.type ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ item?.count || 0 }}\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n </div>\r\n <div class=\"row\">\r\n <div *ngFor=\"let original of filteredList;let i=index\"\r\n class=\"col-6 col-sm-4 col-md-3 col-lg-2-4 mb-2\">\r\n\r\n <div\r\n class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n <img [src]=\"original?.filePath\" alt=\"\"\r\n class=\"w-100 h-250px rounded border cursor-pointer\" />\r\n <div class=\"row my-2\">\r\n <div class=\"col-9\">\r\n <div class=\"desc-title ms-2 my-2\">Tango ID:\r\n {{\r\n original.tempId\r\n }}\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-3 my-2 pe-5 text-end\">\r\n <span\r\n *ngIf=\"original.revopsType==='non-tagging'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n </path>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"original.revopsType==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\"\r\n fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"original.revopsType==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"16\"\r\n viewBox=\"0 0 18 16\" fill=\"none\">\r\n <path\r\n d=\"M12.75 14.75V13.25C12.75 12.4544 12.4339 11.6913 11.8713 11.1287C11.3087 10.5661 10.5456 10.25 9.75 10.25H3.75C2.95435 10.25 2.19129 10.5661 1.62868 11.1287C1.06607 11.6913 0.75 12.4544 0.75 13.25V14.75M17.25 14.75V13.25C17.2495 12.5853 17.0283 11.9396 16.621 11.4142C16.2138 10.8889 15.6436 10.5137 15 10.3475M12 1.3475C12.6453 1.51273 13.2173 1.88803 13.6257 2.41423C14.0342 2.94044 14.2559 3.58762 14.2559 4.25375C14.2559 4.91988 14.0342 5.56706 13.6257 6.09327C13.2173 6.61947 12.6453 6.99477 12 7.16M9.75 4.25C9.75 5.90685 8.40685 7.25 6.75 7.25C5.09315 7.25 3.75 5.90685 3.75 4.25C3.75 2.59315 5.09315 1.25 6.75 1.25C8.40685 1.25 9.75 2.59315 9.75 4.25Z\"\r\n stroke=\"#475467\" stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"original.revopsType==='houseKeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.51995 0.613065C8.33739 -0.204355 9.66267 -0.204355 10.4801 0.613065L17.387 7.51995C18.2043 8.33739 18.2043 9.66267 17.387 10.4801L10.4801 17.387C9.66267 18.2043 8.33739 18.2043 7.51995 17.387L5.54626 15.4133L3.73708 17.2224C2.91966 18.0399 1.59436 18.0399 0.776944 17.2224C-0.0404767 16.4051 -0.0404767 15.0797 0.776944 14.2624L2.58612 12.4531L0.613065 10.4801C-0.204355 9.66267 -0.204355 8.33739 0.613065 7.51995L7.51995 0.613065ZM9.49336 1.59978C9.22088 1.32731 8.77909 1.32731 8.50661 1.59978L3.57286 6.53357L11.4665 14.4272L16.4002 9.49336C16.6727 9.22088 16.6727 8.77909 16.4002 8.5067L12.9465 5.05286L11.7952 6.20403C11.5228 6.4765 11.0811 6.4765 10.8086 6.20403C10.5361 5.93155 10.5361 5.48978 10.8086 5.21731L11.9597 4.06614L10.9732 3.07964L8.17757 5.87533C7.90509 6.1478 7.46329 6.1478 7.19081 5.87533C6.91833 5.60286 6.91833 5.16109 7.19081 4.88862L9.9865 2.09293L9.49336 1.59978ZM10.4797 15.4139L2.58615 7.52028L1.59978 8.5067C1.3273 8.77909 1.3273 9.22088 1.59978 9.49336L8.50661 16.4002C8.77909 16.6727 9.22088 16.6727 9.49336 16.4002L10.4797 15.4139ZM3.57275 13.4399L1.76366 15.249C1.49119 15.5215 1.49119 15.9633 1.76366 16.2358C2.03613 16.5082 2.4779 16.5082 2.75037 16.2358L4.55946 14.4266L3.57275 13.4399Z\"\r\n fill=\"#475467\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"original.revopsType==='vendor'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"21\"\r\n viewBox=\"0 0 21 21\" fill=\"none\">\r\n <path\r\n d=\"M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n fill=\"#EBE9FE\" />\r\n <path\r\n d=\"M5.66406 5.66663H5.67406M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n stroke=\"#7A5AF8\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"original.revopsType==='technician'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"21\"\r\n viewBox=\"0 0 21 21\" fill=\"none\">\r\n <path\r\n d=\"M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n fill=\"#EBE9FE\" />\r\n <path\r\n d=\"M5.66406 5.66663H5.67406M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n stroke=\"#7A5AF8\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"original.revopsType==='junk'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\" height=\"19\"\r\n viewBox=\"0 0 17 19\" fill=\"none\">\r\n <path\r\n d=\"M1 4.33333H2.66667M2.66667 4.33333H16M2.66667 4.33333V16C2.66667 16.442 2.84226 16.8659 3.15482 17.1785C3.46738 17.4911 3.89131 17.6667 4.33333 17.6667H12.6667C13.1087 17.6667 13.5326 17.4911 13.8452 17.1785C14.1577 16.8659 14.3333 16.442 14.3333 16V4.33333H2.66667ZM5.16667 4.33333V2.66667C5.16667 2.22464 5.34226 1.80072 5.65482 1.48816C5.96738 1.17559 6.39131 1 6.83333 1H10.1667C10.6087 1 11.0326 1.17559 11.3452 1.48816C11.6577 1.80072 11.8333 2.22464 11.8333 2.66667V4.33333M6.83333 8.5V13.5M10.1667 8.5V13.5\"\r\n stroke=\"#475467\" stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n <div *ngIf=\"showTangoDetails\"\r\n class=\"details-toggle d-flex justify-content-start bg-light-primary align-items-start mt-2\"\r\n (click)=\"toggleRevisedDetails(mapping)\">\r\n <span class=\"text-primary \">\r\n Hide in details\r\n </span>\r\n\r\n <span class=\"chevron ms-3 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 15L12 9L18 15\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n\r\n\r\n <!-- <div class=\"timeline\"></div> -->\r\n\r\n </div>\r\n </ng-container>\r\n </section>\r\n </div>\r\n\r\n </div>\r\n <section *ngIf=\"!footfallLoading && !footfallNoData\">\r\n\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6 position-relative\">\r\n <div *ngIf=\"isCheckboxEnable\" class=\"pb-3 my-3 h-100 rounded-3 position-relative\">\r\n\r\n <input type=\"checkbox\" class=\"position-absolute absolute1 form-check-input\"\r\n [(ngModel)]=\"allSelected\" (change)=\"overallSelect($event)\" /><span class=\"ms-12\">\r\n Select\r\n All</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCheckboxEnable\" class=\"col-md-6 pe-8\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-md-4\">\r\n <button [disabled]=\"!overallSelectedIds?.length\"\r\n class=\"btn btn-outline bg-white w-100\" (click)=\"popupOpen('rejected')\">\r\n\r\n {{ ((hasApproverAccess && selectedRole === 'approver')\r\n || (hasReviewerAccess && selectedRole === 'reviewer'))\r\n ? 'Deny'\r\n : 'Reject' }}\r\n\r\n </button>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <button [disabled]=\"!overallSelectedIds?.length\"\r\n class=\"btn btn-outline bg-white w-100\" (click)=\"popupOpen('approved')\">\r\n\r\n {{ ((hasApproverAccess && selectedRole === 'approver')\r\n || (hasReviewerAccess && selectedRole === 'reviewer'))\r\n ? 'Approve'\r\n : 'Accept' }}\r\n\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"!approverClosed\" class=\"bg-white\">\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-5\">\r\n <ng-container *ngFor=\"let type of revopsTypes\">\r\n <section *ngIf=\"type ==='duplicate'\">\r\n\r\n <div *ngIf=\"hasRevopsType(type)\" class=\"layers\">\r\n <!-- Header Section -->\r\n <div class=\"card-header min-h-25px pt-3\">\r\n <h3 class=\"text-lg font-semibold mb-4\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n Duplicates\r\n </h3>\r\n </div>\r\n\r\n\r\n <!-- Body Section -->\r\n <ng-container *ngFor=\"let mapping of source?.mappingInfo\">\r\n <!-- Body Section -->\r\n <ng-container *ngIf=\"mapping?.type ===viewMode\">\r\n <ng-container *ngFor=\"let original of mapping?.revisedDetail\">\r\n <div *ngIf=\"original?.isParent && original?.revopsType ==='duplicate'\"\r\n class=\"card-body bg-white layers pt-5 pb-0 px-0 m-3\">\r\n <div class=\"mt-4\">\r\n <!-- Original Image -->\r\n <div class=\"duplicate-head px-5 my-3\">Original image\r\n </div>\r\n <div class=\"row px-5\">\r\n <div class=\"col-md-4 relative\">\r\n <div\r\n class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original?.filePath\"\r\n alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">Tango ID:\r\n {{\r\n original.tempId\r\n }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime)\r\n }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n <div class=\"row px-5\">\r\n <h5 class=\"duplicate-head my-3 fs-6\">Tagged\r\n Duplicates</h5>\r\n <div *ngIf=\"isCheckboxEnable\" class=\"my-3\">\r\n <input type=\"checkbox\"\r\n [checked]=\"areAllDuplicatesSelected(original)\"\r\n (change)=\"onToggleSelectAllDuplicates(original, $event)\" />\r\n <label class=\"ms-2\">Select All</label>\r\n </div>\r\n <div *ngFor=\"let duplicate of original?.duplicateImage; let i = index\"\r\n class=\"col-md-3 mb-3 position-relative\">\r\n <div *ngIf=\"matchesStatusFilter(duplicate)\"\r\n class=\"pb-3 h-100 rounded-3 position-relative\"\r\n [ngClass]=\"{\r\n 'layer-approved': isApproved(duplicate),\r\n 'layer-rejected': isRejected(duplicate),\r\n 'img-border border border-1': !isApproved(duplicate) && !isRejected(duplicate)}\">\r\n <!-- Checkbox -->\r\n <div *ngIf=\"isCheckboxEnable\">\r\n <input type=\"checkbox\"\r\n *ngIf=\"!isLockedByReviewer(duplicate)\"\r\n style=\"right: 5px ; margin: 10px 5px 4px !important;\"\r\n [checked]=\"isDuplicateSelected(original.tempId, duplicate.tempId)\"\r\n (change)=\"onDuplicateCheckboxChange(original.tempId, duplicate.tempId, $event)\"\r\n class=\"position-absolute form-check-input duplicate-checkbox\" />\r\n <span class=\"position-absolute absolute\"\r\n *ngIf=\"isLockedByReviewer(duplicate)\"\r\n (click)=\"resetCheckbox('duplicate', duplicate)\">\r\n\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\" height=\"19\"\r\n viewBox=\"0 0 19 19\" fill=\"none\">\r\n <g\r\n filter=\"url(#filter0_d_2023_13718)\">\r\n <rect x=\"1.11133\"\r\n y=\"0.555664\" width=\"16\"\r\n height=\"16\" rx=\"2\"\r\n fill=\"white\" />\r\n <rect x=\"1.38911\"\r\n y=\"0.833442\"\r\n width=\"15.4444\"\r\n height=\"15.4444\"\r\n rx=\"1.72222\"\r\n stroke=\"#D0D5DD\"\r\n stroke-width=\"0.555556\" />\r\n <path\r\n d=\"M5.87109 8.55566H12.3526\"\r\n stroke=\"#344054\"\r\n stroke-width=\"0.927778\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_2023_13718\"\r\n x=\"0.00021708\"\r\n y=\"0.00010854\"\r\n width=\"18.2222\"\r\n height=\"18.2222\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood\r\n flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset\r\n dy=\"0.555556\" />\r\n <feGaussianBlur\r\n stdDeviation=\"0.555556\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2023_13718\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_2023_13718\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n </div>\r\n <!-- (change)=\"onImageCheckboxChange(duplicate.tempId, 'duplicate', 'original')\" -->\r\n <!-- Duplicate Image -->\r\n <img [src]=\"imageUrl + duplicate.filePath\"\r\n alt=\"\"\r\n (click)=\"openImagePreview(mapping,original.duplicateImage, i, 'Tagged Duplicates')\"\r\n class=\"w-100 rounded border duplicate-image cursor-pointer\" />\r\n\r\n <!-- Duplicate Info -->\r\n <div class=\"row my-2\">\r\n <div class=\"col-9\">\r\n <div class=\"desc-title ms-2 my-2\">\r\n Tango ID: {{ duplicate.tempId }}\r\n\r\n <span\r\n *ngIf=\"getAction(duplicate, 'review')?.action === 'approved'\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\"\r\n height=\"10\" rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(duplicate, 'review')?.action === 'rejected'\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n\r\n </div>\r\n\r\n <div class=\"desc-value ms-2\">Entry\r\n Time: {{\r\n getFormattedEntryTime(duplicate.entryTime)\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"col-3\">\r\n <span\r\n *ngIf=\"getAction(duplicate, 'approve')?.action === 'approved'\">\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\" height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect width=\"24\" height=\"24\"\r\n rx=\"12\"\r\n fill=\"#D1FADF\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94051)\">\r\n <path\r\n d=\"M9.5 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V12.5C7 12.2348 7.10536 11.9804 7.29289 11.7929C7.48043 11.6054 7.73478 11.5 8 11.5H9.5M13 10.5V8.5C13 8.10218 12.842 7.72064 12.5607 7.43934C12.2794 7.15804 11.8978 7 11.5 7L9.5 11.5V17H15.14C15.3812 17.0027 15.6152 16.9182 15.799 16.762C15.9827 16.6058 16.1038 16.3885 16.14 16.15L16.83 11.65C16.8518 11.5067 16.8421 11.3603 16.8017 11.2211C16.7613 11.0819 16.6911 10.9531 16.5959 10.8438C16.5008 10.7344 16.383 10.647 16.2508 10.5876C16.1185 10.5283 15.975 10.4984 15.83 10.5H13Z\"\r\n stroke=\"#039855\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94051\">\r\n <rect width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n <span\r\n *ngIf=\"getAction(duplicate, 'approve')?.action === 'rejected'\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\" height=\"37\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect width=\"24\" height=\"24\"\r\n rx=\"12\"\r\n fill=\"#FEE4E2\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94090)\">\r\n <path\r\n d=\"M14.5015 7.00006H15.8365C16.1195 6.99505 16.3944 7.09413 16.6092 7.27847C16.8239 7.46281 16.9635 7.71959 17.0015 8.00006V11.5001C16.9635 11.7805 16.8239 12.0373 16.6092 12.2216C16.3944 12.406 16.1195 12.5051 15.8365 12.5001H14.5015M11.0015 13.5001V15.5001C11.0015 15.8979 11.1595 16.2794 11.4408 16.5607C11.7221 16.842 12.1037 17.0001 12.5015 17.0001L14.5015 12.5001V7.00006H8.86148C8.62032 6.99733 8.38629 7.08186 8.20253 7.23806C8.01876 7.39426 7.89764 7.61161 7.86148 7.85006L7.17148 12.3501C7.14973 12.4934 7.15939 12.6397 7.19981 12.7789C7.24023 12.9181 7.31043 13.0469 7.40555 13.1563C7.50067 13.2657 7.61844 13.3531 7.75069 13.4124C7.88295 13.4718 8.02653 13.5017 8.17148 13.5001H11.0015Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_486_94090\">\r\n <rect width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg> </span>\r\n </div>\r\n </div>\r\n <!-- Duplicate Reason -->\r\n <!-- <div class=\"duplicate-reason ms-2 mt-2\">\r\n <small class=\"text-muted\">{{ duplicate.reason }}</small>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-footer py-5\"\r\n *ngIf=\"source?.commentsDetails?.length\">\r\n <div class=\"comments-accordion\">\r\n <!-- Accordion Header -->\r\n <div class=\"accordion-header\"\r\n (click)=\"toggleCommentsAccordion(type)\">\r\n <div\r\n class=\"d-flex justify-content-start align-items-center w-100\">\r\n <span class=\"comments-count\">\r\n <!-- {{\r\n getCategoryCommentCountForSource(source,\r\n type) }} -->\r\n Comments</span>\r\n <div class=\"accordion-arrow ms-3\">\r\n <svg [class.rotated]=\"selectedCommentCategory ==='duplicate' && commentsAccordionOpen\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\"\r\n stroke=\"#667085\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion Body -->\r\n <div class=\"accordion-body mt-3\"\r\n *ngIf=\"selectedCommentCategory ==='duplicate' && commentsAccordionOpen\">\r\n\r\n <!-- Loop each block: tagging / review / approve -->\r\n <ng-container\r\n *ngFor=\"let block of source?.commentsDetails\">\r\n\r\n <!-- Loop inside comments -->\r\n <ng-container\r\n *ngFor=\"let c of block.comments\">\r\n <ng-container\r\n *ngIf=\"(block?.parent === original?.tempId && block.category ==='duplicate') || (c?.parent === original?.tempId && c.category ==='duplicate')\">\r\n\r\n <div *ngIf=\"(c.category === 'duplicate' || block.category === 'duplicate')\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{\r\n getInitialsFromEmail(c.createdByEmail)\r\n }}\r\n </div>\r\n <div class=\"w-100\">\r\n <!-- email -->\r\n <div\r\n class=\"fw-semibold\">\r\n {{ c.createdByEmail\r\n }}\r\n </div>\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <!-- message text -->\r\n <p class=\"mb-2 mt-2\"\r\n *ngIf=\"c.message\">\r\n {{ c.message }}\r\n </p>\r\n\r\n\r\n <!-- Review / Approve only -->\r\n <ng-container\r\n *ngIf=\"block.type === 'review' || block.type === 'approve'\">\r\n <!-- Tagged images -->\r\n <div\r\n class=\"d-flex flex-wrap\">\r\n\r\n <div\r\n *ngFor=\"let img of c.taggedImages; let i = index\">\r\n\r\n <!-- Show only first 4 -->\r\n <ng-container\r\n *ngIf=\"i < 3\">\r\n <div\r\n class=\"tango-card me-2\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url('+ imageUrl + img.filePath + ')'\">\r\n </div>\r\n\r\n <div\r\n class=\"tango-meta small\">\r\n <div>\r\n Tango\r\n ID:\r\n {{\r\n img.tempId\r\n }}\r\n\r\n <!-- status dots -->\r\n <span\r\n *ngIf=\"c.status === 'approved'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg></span>\r\n\r\n <span\r\n *ngIf=\"c.status === 'rejected'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n\r\n <div\r\n class=\"text-muted\">\r\n Entry\r\n time:\r\n {{\r\n img.entryTime\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <!-- +N more -->\r\n <div class=\"tango-card me-2 more-card text-center\"\r\n *ngIf=\"c.taggedImages.length > 3\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.taggedImages[3].filePath + ')'\"\r\n (click)=\"openImagesPopup(c)\">\r\n <div\r\n class=\"more-overlay\">\r\n </div>\r\n\r\n <!-- vertical container -->\r\n <div\r\n class=\"more-wrapper my-10 d-flex flex-column align-items-center justify-content-center\">\r\n <div\r\n class=\"more-text fw-semibold\">\r\n +{{\r\n c.taggedImages.length\r\n -\r\n 3 }}\r\n </div>\r\n <div\r\n class=\"text-primary text-dark text-decoration-underline small\">\r\n View\r\n all\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n <!-- Status Icons -->\r\n\r\n\r\n </div>\r\n </section>\r\n <section *ngIf=\"type !=='duplicate'\">\r\n <div class=\"layers my-2\" *ngIf=\"hasRevopsType(type)\">\r\n <div class=\"card-header min-h-25px pt-3\">\r\n <div class=\"duplicate-head text-lg my-3\"><span\r\n *ngIf=\"type ==='employee'\" class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"16\"\r\n viewBox=\"0 0 18 16\" fill=\"none\">\r\n <path\r\n d=\"M12.75 14.75V13.25C12.75 12.4544 12.4339 11.6913 11.8713 11.1287C11.3087 10.5661 10.5456 10.25 9.75 10.25H3.75C2.95435 10.25 2.19129 10.5661 1.62868 11.1287C1.06607 11.6913 0.75 12.4544 0.75 13.25V14.75M17.25 14.75V13.25C17.2495 12.5853 17.0283 11.9396 16.621 11.4142C16.2138 10.8889 15.6436 10.5137 15 10.3475M12 1.3475C12.6453 1.51273 13.2173 1.88803 13.6257 2.41423C14.0342 2.94044 14.2559 3.58762 14.2559 4.25375C14.2559 4.91988 14.0342 5.56706 13.6257 6.09327C13.2173 6.61947 12.6453 6.99477 12 7.16M9.75 4.25C9.75 5.90685 8.40685 7.25 6.75 7.25C5.09315 7.25 3.75 5.90685 3.75 4.25C3.75 2.59315 5.09315 1.25 6.75 1.25C8.40685 1.25 9.75 2.59315 9.75 4.25Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> <span *ngIf=\"type ==='houseKeeping'\"\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\"\r\n height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.51995 0.613065C8.33739 -0.204355 9.66267 -0.204355 10.4801 0.613065L17.387 7.51995C18.2043 8.33739 18.2043 9.66267 17.387 10.4801L10.4801 17.387C9.66267 18.2043 8.33739 18.2043 7.51995 17.387L5.54626 15.4133L3.73708 17.2224C2.91966 18.0399 1.59436 18.0399 0.776944 17.2224C-0.0404767 16.4051 -0.0404767 15.0797 0.776944 14.2624L2.58612 12.4531L0.613065 10.4801C-0.204355 9.66267 -0.204355 8.33739 0.613065 7.51995L7.51995 0.613065ZM9.49336 1.59978C9.22088 1.32731 8.77909 1.32731 8.50661 1.59978L3.57286 6.53357L11.4665 14.4272L16.4002 9.49336C16.6727 9.22088 16.6727 8.77909 16.4002 8.5067L12.9465 5.05286L11.7952 6.20403C11.5228 6.4765 11.0811 6.4765 10.8086 6.20403C10.5361 5.93155 10.5361 5.48978 10.8086 5.21731L11.9597 4.06614L10.9732 3.07964L8.17757 5.87533C7.90509 6.1478 7.46329 6.1478 7.19081 5.87533C6.91833 5.60286 6.91833 5.16109 7.19081 4.88862L9.9865 2.09293L9.49336 1.59978ZM10.4797 15.4139L2.58615 7.52028L1.59978 8.5067C1.3273 8.77909 1.3273 9.22088 1.59978 9.49336L8.50661 16.4002C8.77909 16.6727 9.22088 16.6727 9.49336 16.4002L10.4797 15.4139ZM3.57275 13.4399L1.76366 15.249C1.49119 15.5215 1.49119 15.9633 1.76366 16.2358C2.03613 16.5082 2.4779 16.5082 2.75037 16.2358L4.55946 14.4266L3.57275 13.4399Z\"\r\n fill=\"#475467\" />\r\n </svg></span> <span *ngIf=\"type ==='junk'\" class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"19\"\r\n viewBox=\"0 0 17 19\" fill=\"none\">\r\n <path\r\n d=\"M1 4.33333H2.66667M2.66667 4.33333H16M2.66667 4.33333V16C2.66667 16.442 2.84226 16.8659 3.15482 17.1785C3.46738 17.4911 3.89131 17.6667 4.33333 17.6667H12.6667C13.1087 17.6667 13.5326 17.4911 13.8452 17.1785C14.1577 16.8659 14.3333 16.442 14.3333 16V4.33333H2.66667ZM5.16667 4.33333V2.66667C5.16667 2.22464 5.34226 1.80072 5.65482 1.48816C5.96738 1.17559 6.39131 1 6.83333 1H10.1667C10.6087 1 11.0326 1.17559 11.3452 1.48816C11.6577 1.80072 11.8333 2.22464 11.8333 2.66667V4.33333M6.83333 8.5V13.5M10.1667 8.5V13.5\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> <span\r\n *ngIf=\"type !=='junk' && type !=='houseKeeping' && type !=='employee'\"\r\n class=\"me-2\">\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"21\"\r\n viewBox=\"0 0 21 21\" fill=\"none\">\r\n <path\r\n d=\"M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n fill=\"#EBE9FE\" />\r\n <path\r\n d=\"M5.66406 5.66663H5.67406M19.2541 12.0766L12.0841 19.2466C11.8983 19.4326 11.6777 19.5801 11.4349 19.6807C11.1921 19.7814 10.9319 19.8332 10.6691 19.8332C10.4062 19.8332 10.146 19.7814 9.90318 19.6807C9.66039 19.5801 9.43981 19.4326 9.25406 19.2466L0.664062 10.6666V0.666626H10.6641L19.2541 9.25663C19.6266 9.63135 19.8356 10.1383 19.8356 10.6666C19.8356 11.195 19.6266 11.7019 19.2541 12.0766Z\"\r\n stroke=\"#7A5AF8\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> {{type | titlecase}}\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isCheckboxEnable\" class=\"ms-3 my-3\">\r\n <input type=\"checkbox\" [(ngModel)]=\"selectAllByType[type]\"\r\n (change)=\"onSelectAll(type, $event)\">\r\n <label>Select All</label>\r\n </div>\r\n <ng-container *ngFor=\"let mapping of source?.mappingInfo\">\r\n <!-- Body Section -->\r\n <div *ngIf=\"mapping?.type ===viewMode\"\r\n class=\"card-body bg-white layers p-5 m-3\">\r\n\r\n <div class=\"row\">\r\n <ng-container\r\n *ngFor=\"let original of mapping?.revisedDetail;let i=index\">\r\n <div *ngIf=\"original?.revopsType ===type && matchesStatusFilter(original)\"\r\n class=\"col-md-3 mb-3 position-relative\">\r\n <div class=\"pb-3 h-100 rounded-3 position-relative\"\r\n [ngClass]=\"{\r\n'layer-approved': isApproved(original),\r\n'layer-rejected': isRejected(original),\r\n'img-border border border-1': !isApproved(original) && !isRejected(original)}\">\r\n\r\n\r\n <!-- Top-right Checkbox -->\r\n <div *ngIf=\"isCheckboxEnable\">\r\n\r\n <input *ngIf=\"!isLockedByReviewer(original)\"\r\n type=\"checkbox\"\r\n class=\"position-absolute absolute form-check-input\"\r\n [checked]=\"(selectedByType[type] || []).includes(original?.tempId)\"\r\n (change)=\"onImageCheckboxChange(type, original.tempId,$event)\" />\r\n <span class=\"position-absolute absolute\"\r\n *ngIf=\"isLockedByReviewer(original)\"\r\n (click)=\"resetCheckbox(type, original)\">\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\" height=\"19\"\r\n viewBox=\"0 0 19 19\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_2023_13718)\">\r\n <rect x=\"1.11133\" y=\"0.555664\"\r\n width=\"16\" height=\"16\" rx=\"2\"\r\n fill=\"white\" />\r\n <rect x=\"1.38911\" y=\"0.833442\"\r\n width=\"15.4444\" height=\"15.4444\"\r\n rx=\"1.72222\" stroke=\"#D0D5DD\"\r\n stroke-width=\"0.555556\" />\r\n <path d=\"M5.87109 8.55566H12.3526\"\r\n stroke=\"#344054\"\r\n stroke-width=\"0.927778\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2023_13718\"\r\n x=\"0.00021708\" y=\"0.00010854\"\r\n width=\"18.2222\" height=\"18.2222\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"0.555556\" />\r\n <feGaussianBlur\r\n stdDeviation=\"0.555556\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2023_13718\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_2023_13718\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n\r\n <img [src]=\"imageUrl + original?.filePath\" alt=\"\"\r\n (click)=\"openImagePreview(mapping,original, i, selectedByType[type])\"\r\n class=\"w-100 rounded border cursor-pointer\" />\r\n <div class=\"row my-2\">\r\n <div class=\"col-8\">\r\n <div class=\"desc-title ms-2 my-2\">Tango ID:\r\n {{\r\n original.tempId\r\n }}\r\n <span\r\n *ngIf=\"getAction(original, 'review')?.action === 'approved'\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\nheight: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\"\r\n height=\"10\" rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(original, 'review')?.action === 'rejected'\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\nheight: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime)\r\n }}</div>\r\n </div>\r\n <div class=\"col-4\">\r\n <span\r\n *ngIf=\"getAction(original, 'approve')?.action === 'approved'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\" height=\"37\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect width=\"24\" height=\"24\" rx=\"12\"\r\n fill=\"#D1FADF\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94051)\">\r\n <path\r\n d=\"M9.5 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V12.5C7 12.2348 7.10536 11.9804 7.29289 11.7929C7.48043 11.6054 7.73478 11.5 8 11.5H9.5M13 10.5V8.5C13 8.10218 12.842 7.72064 12.5607 7.43934C12.2794 7.15804 11.8978 7 11.5 7L9.5 11.5V17H15.14C15.3812 17.0027 15.6152 16.9182 15.799 16.762C15.9827 16.6058 16.1038 16.3885 16.14 16.15L16.83 11.65C16.8518 11.5067 16.8421 11.3603 16.8017 11.2211C16.7613 11.0819 16.6911 10.9531 16.5959 10.8438C16.5008 10.7344 16.383 10.647 16.2508 10.5876C16.1185 10.5283 15.975 10.4984 15.83 10.5H13Z\"\r\n stroke=\"#039855\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_486_94051\">\r\n <rect width=\"12\" height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"getAction(original, 'approve')?.action === 'rejected'\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"37\" height=\"37\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect width=\"24\" height=\"24\" rx=\"12\"\r\n fill=\"#FEE4E2\" />\r\n <g\r\n clip-path=\"url(#clip0_486_94090)\">\r\n <path\r\n d=\"M14.5015 7.00006H15.8365C16.1195 6.99505 16.3944 7.09413 16.6092 7.27847C16.8239 7.46281 16.9635 7.71959 17.0015 8.00006V11.5001C16.9635 11.7805 16.8239 12.0373 16.6092 12.2216C16.3944 12.406 16.1195 12.5051 15.8365 12.5001H14.5015M11.0015 13.5001V15.5001C11.0015 15.8979 11.1595 16.2794 11.4408 16.5607C11.7221 16.842 12.1037 17.0001 12.5015 17.0001L14.5015 12.5001V7.00006H8.86148C8.62032 6.99733 8.38629 7.08186 8.20253 7.23806C8.01876 7.39426 7.89764 7.61161 7.86148 7.85006L7.17148 12.3501C7.14973 12.4934 7.15939 12.6397 7.19981 12.7789C7.24023 12.9181 7.31043 13.0469 7.40555 13.1563C7.50067 13.2657 7.61844 13.3531 7.75069 13.4124C7.88295 13.4718 8.02653 13.5017 8.17148 13.5001H11.0015Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_486_94090\">\r\n <rect width=\"12\" height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer py-5\" *ngIf=\"source?.commentsDetails?.length\">\r\n <div class=\"comments-accordion\">\r\n <!-- Accordion Header -->\r\n <div class=\"accordion-header\"\r\n (click)=\"toggleCommentsAccordion(type)\">\r\n <div\r\n class=\"d-flex justify-content-start align-items-center w-100\">\r\n <div class=\"comments-title\">\r\n\r\n <span class=\"comments-count\">\r\n <!-- {{getCategoryCommentCountForSource(source, type) }} -->\r\n Comments</span>\r\n\r\n\r\n </div>\r\n <div class=\"accordion-arrow ms-3\">\r\n <svg [class.rotated]=\"selectedCommentCategory === type && commentsAccordionOpen\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"#667085\"\r\n stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion Content -->\r\n <div class=\"accordion-body mt-3\"\r\n *ngIf=\"selectedCommentCategory === type && commentsAccordionOpen\">\r\n\r\n <!-- loop each block: tagging / review / approve -->\r\n <ng-container *ngFor=\"let block of source?.commentsDetails\">\r\n\r\n <!-- TAGGING COMMENTS (each comment = one image + message) -->\r\n <ng-container *ngIf=\"block.type === 'tagging'\">\r\n <ng-container *ngFor=\"let c of block.comments\">\r\n <div *ngIf=\"block.category === selectedCommentCategory\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{ getInitialsFromEmail(c.createdByEmail) }}\r\n </div>\r\n\r\n <!-- content -->\r\n <div>\r\n <div class=\"fw-semibold\">\r\n {{ c.createdByEmail }}\r\n </div>\r\n\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <p class=\"mb-2 mt-2\" *ngIf=\"c.message\">\r\n {{ c.message }}\r\n </p>\r\n\r\n <!-- single image card -->\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"tango-card me-2\"\r\n *ngIf=\"c.filePath\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.filePath + ')'\">\r\n </div>\r\n\r\n <div class=\"tango-meta small\">\r\n <div>Tango ID: {{ c.tempId }}\r\n </div>\r\n <div class=\"text-muted\">Entry\r\n time:\r\n {{ c.entryTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- REVIEW / APPROVE COMMENTS (with taggedImages + +N View all) -->\r\n <ng-container\r\n *ngIf=\"block.type === 'review' || block.type === 'approve'\">\r\n <ng-container *ngFor=\"let c of block.comments\">\r\n\r\n <div *ngIf=\"c.category === selectedCommentCategory\"\r\n class=\"comment-thread d-flex mb-4\">\r\n\r\n <!-- avatar -->\r\n <div\r\n class=\"avatar avatar-text light-primary p-3\">\r\n\r\n {{ getInitialsFromEmail(c.createdByEmail) }}\r\n </div>\r\n\r\n <!-- content -->\r\n <div class=\"w-100\">\r\n <div class=\"fw-semibold\">\r\n {{ c.createdByEmail }}\r\n </div>\r\n\r\n <div class=\"text-muted small\"\r\n *ngIf=\"c.createdAt\">\r\n {{ c.createdAt | date:'hh:mm:ss a - dd MMM yyyy'\r\n }}\r\n </div>\r\n\r\n <!-- main review/approve message -->\r\n <p class=\"mb-2 mt-2\" *ngIf=\"c.message\">\r\n {{ c.message }}\r\n </p>\r\n\r\n\r\n\r\n <!-- image list + +N View all -->\r\n <div class=\"d-flex flex-wrap\"\r\n *ngIf=\"c.taggedImages?.length\">\r\n\r\n <!-- first 3 images -->\r\n <div\r\n *ngFor=\"let img of c.taggedImages; let i = index\">\r\n <ng-container *ngIf=\"i < 3\">\r\n <div class=\"tango-card me-2\">\r\n <div class=\"tango-image\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + img.filePath + ')'\">\r\n </div>\r\n\r\n <div\r\n class=\"tango-meta small\">\r\n <div>\r\n Tango ID: {{\r\n img.tempId\r\n }}\r\n <span\r\n *ngIf=\"c.status === 'approved'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\"\r\n fill=\"none\">\r\n <rect\r\n y=\"0.5\"\r\n width=\"10\"\r\n height=\"10\"\r\n rx=\"5\"\r\n fill=\"#D1FADF\" />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg></span>\r\n\r\n <span\r\n *ngIf=\"c.status === 'rejected'\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\"\r\n fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_1428_59484\">\r\n <rect\r\n width=\"12\"\r\n height=\"12\"\r\n fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"text-muted\">\r\n Entry time: {{\r\n img.entryTime }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- +N View all card -->\r\n <div class=\"tango-card me-2 more-card text-center\"\r\n *ngIf=\"c.taggedImages.length > 3\"\r\n [style.backgroundImage]=\"'url(' + imageUrl + c.taggedImages[3].filePath + ')'\"\r\n (click)=\"openImagesPopup(c)\">\r\n <div class=\"more-overlay\"></div>\r\n\r\n <!-- vertical container -->\r\n <div\r\n class=\"more-wrapper my-10 d-flex flex-column align-items-center justify-content-center\">\r\n <div\r\n class=\"more-text fw-semibold\">\r\n +{{\r\n c.taggedImages.length -\r\n 3 }}</div>\r\n <div\r\n class=\"text-primary text-dark text-decoration-underline small\">\r\n View all\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </ng-container>\r\n\r\n\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </section>\r\n <div *ngIf=\"footfallLoading\" class=\"card mt-5\">\r\n <div class=\"card-body h-500px\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"footfallNoData\">\r\n <div class=\"row mt-20\">\r\n <div class=\"col-lg-12 mt-20 mb-5\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this footfall directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</section>\r\n\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }} Selected Images\r\n </h5>\r\n\r\n <!-- Description -->\r\n <p class=\"mb-3 test-appvalue\">\r\n You're about to {{ popupType === 'approved' ? 'Approve' : 'Reject' }} {{ this.overallSelectedIds?.length\r\n ? this.overallSelectedIds?.length : this.popupValue ?\r\n this.popupValue:'--' }} <span class=\"fw-bold\">{{ selectedCategoriesLabel | titlecase }}</span>\r\n </p>\r\n <!-- Count Box -->\r\n <div *ngIf=\"selectedCategories?.length === 1\" class=\"w-100 mb-4\">\r\n <label class=\"mb-2\">Remarks (Optional)</label>\r\n <textarea class=\"form-control\" rows=\"3\" [(ngModel)]=\"remarks\"></textarea>\r\n\r\n </div>\r\n\r\n <!-- Action Buttons -->\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType, popupvalue)\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }}\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #closePopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n <h5 class=\"modal-title mb-2\">\r\n Close ticket\r\n </h5>\r\n <p class=\"mb-3 test-appvalue\">\r\n You are about to close the ticket, Are you sure want to continue?\r\n </p>\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"confirmCloseCancel()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"confirmCloseTicket()\">\r\n Close ticket\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #ReassignTicketPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n Re-Assign Ticket\r\n </h5>\r\n\r\n <!-- Description -->\r\n <p class=\"mb-3 test-appvalue\">\r\n Transfer the ticket to another user\r\n </p>\r\n\r\n <!-- Count Box -->\r\n <div class=\"row w-100 my-3\">\r\n <div class=\"col-md-12 mb-4\">\r\n <label class=\"label mb-2\">Choose User</label>\r\n <team-select [items]=\"reviwerList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'email'\"\r\n (selected)=\"reviewerChange($event)\" [selectedValues]=\"[selectedReviewer]\"></team-select>\r\n </div>\r\n </div>\r\n `\r\n <!-- Action Buttons -->\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancelassign()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"assignTicketView()\">\r\n Re-Assign\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<ng-template #imagePreviewPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 my-2 p-0 w-100 d-flex justify-content-between align-items-center\">\r\n\r\n <h5 class=\"modal-title mb-2 m-0\">{{ currentPreviewItem.revopsType | titlecase}}</h5>\r\n\r\n <!-- Close Button -->\r\n <button type=\"button\" class=\"btn-close fs-4\" aria-label=\"Close\" (click)=\"model.close()\">\r\n\r\n </button>\r\n\r\n </div>\r\n\r\n <div class=\"w-100 position-relative mb-4\">\r\n\r\n <button class=\"btn btn-light position-absolute ms-3 start-0 top-50 translate-middle-y\"\r\n (click)=\"prevPreview()\" [disabled]=\"previewList.length <= 1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <path d=\"M15.5615 6.22429L9.33724 12.4486L15.5615 18.6729\" stroke=\"#344054\" stroke-width=\"2.07891\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n\r\n <img [src]=\"getPreviewImageUrl()\" class=\"w-100 rounded border\" />\r\n <div class=\"row my-2\">\r\n <div class=\"col-10\">\r\n <div class=\"desc-title ms-2 my-2\">\r\n Tango ID: {{ currentPreviewItem.tempId }}\r\n\r\n <span *ngIf=\"getAction(currentPreviewItem, 'review')?.action === 'approved'\" class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"getAction(currentPreviewItem, 'review')?.action === 'rejected'\" class=\"ms-2\"><svg\r\n style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n\r\n </div>\r\n\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(currentPreviewItem.entryTime) }}</div>\r\n </div>\r\n <div class=\"col-2 mt-2 text-end\">\r\n <span *ngIf=\"getAction(currentPreviewItem, 'approve')?.action === 'approved'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"42\" height=\"42\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#D1FADF\" />\r\n <g clip-path=\"url(#clip0_486_94051)\">\r\n <path\r\n d=\"M9.5 17H8C7.73478 17 7.48043 16.8946 7.29289 16.7071C7.10536 16.5196 7 16.2652 7 16V12.5C7 12.2348 7.10536 11.9804 7.29289 11.7929C7.48043 11.6054 7.73478 11.5 8 11.5H9.5M13 10.5V8.5C13 8.10218 12.842 7.72064 12.5607 7.43934C12.2794 7.15804 11.8978 7 11.5 7L9.5 11.5V17H15.14C15.3812 17.0027 15.6152 16.9182 15.799 16.762C15.9827 16.6058 16.1038 16.3885 16.14 16.15L16.83 11.65C16.8518 11.5067 16.8421 11.3603 16.8017 11.2211C16.7613 11.0819 16.6911 10.9531 16.5959 10.8438C16.5008 10.7344 16.383 10.647 16.2508 10.5876C16.1185 10.5283 15.975 10.4984 15.83 10.5H13Z\"\r\n stroke=\"#039855\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_486_94051\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"getAction(currentPreviewItem, 'approve')?.action === 'rejected'\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"42\" height=\"42\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect width=\"24\" height=\"24\" rx=\"12\" fill=\"#FEE4E2\" />\r\n <g clip-path=\"url(#clip0_486_94090)\">\r\n <path\r\n d=\"M14.5015 7.00006H15.8365C16.1195 6.99505 16.3944 7.09413 16.6092 7.27847C16.8239 7.46281 16.9635 7.71959 17.0015 8.00006V11.5001C16.9635 11.7805 16.8239 12.0373 16.6092 12.2216C16.3944 12.406 16.1195 12.5051 15.8365 12.5001H14.5015M11.0015 13.5001V15.5001C11.0015 15.8979 11.1595 16.2794 11.4408 16.5607C11.7221 16.842 12.1037 17.0001 12.5015 17.0001L14.5015 12.5001V7.00006H8.86148C8.62032 6.99733 8.38629 7.08186 8.20253 7.23806C8.01876 7.39426 7.89764 7.61161 7.86148 7.85006L7.17148 12.3501C7.14973 12.4934 7.15939 12.6397 7.19981 12.7789C7.24023 12.9181 7.31043 13.0469 7.40555 13.1563C7.50067 13.2657 7.61844 13.3531 7.75069 13.4124C7.88295 13.4718 8.02653 13.5017 8.17148 13.5001H11.0015Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_486_94090\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" transform=\"translate(6 6)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- <div class=\"duplicate-reason ms-2 mt-2\">\r\n <small class=\"text-muted\">{{ currentPreviewItem.reason }}</small>\r\n </div> -->\r\n\r\n <button class=\"btn btn-light position-absolute me-3 end-0 top-50 translate-middle-y\" (click)=\"nextPreview()\"\r\n [disabled]=\"previewList.length <= 1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <path d=\"M9.33594 18.6732L15.5602 12.4489L9.33594 6.22461\" stroke=\"#344054\" stroke-width=\"2.07891\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n\r\n </div>\r\n <section *ngIf=\"isCheckboxEnable\">\r\n\r\n <div *ngIf=\"canShowPreviewActions(currentPreviewItem)\" class=\"w-100 d-flex justify-content-end\">\r\n\r\n <!-- Reject / Deny -->\r\n <button class=\"btn btn-outline me-2\" (click)=\"rejectedPopup('rejected', currentPreviewItem)\">\r\n {{ ((hasApproverAccess && selectedRole === 'approver')\r\n || (hasReviewerAccess && selectedRole === 'reviewer'))\r\n ? 'Deny'\r\n : 'Reject' }}\r\n </button>\r\n\r\n <!-- Approve / Accept -->\r\n <button class=\"btn btn-primary\" (click)=\"approvedPopup('approved', currentPreviewItem)\">\r\n {{ ((hasApproverAccess && selectedRole === 'approver')\r\n || (hasReviewerAccess && selectedRole === 'reviewer'))\r\n ? 'Approve'\r\n : 'Accept' }}\r\n </button>\r\n\r\n </div>\r\n </section>\r\n\r\n </div>\r\n\r\n</ng-template>\r\n\r\n\r\n<ng-template #internalticket let-modal>\r\n <div class=\"h-auto p-10\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">Start audit</div>\r\n <div class=\"card-sub\">Please select a store and date range to start audit</div>\r\n </div>\r\n <div class=\"row my-3\">\r\n <div class=\"col-md-7 mb-4\">\r\n <label class=\"label\">Store</label>\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"storeChange($event)\" [selectedValues]=\"[selectedStore]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-5 mt-7\">\r\n\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"width:165px !important\" type=\"text\" matInput\r\n ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\" [opens]=\"'left'\"\r\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\r\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" [isInvalidDate]=\"disableToday\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" [autoApply]=\"true\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3 card p-3 back-ground\" *ngIf=\"footfallcount>0\">\r\n <div class=\"card-title\">{{footfallcount}}</div>\r\n <div class=\"mt-2 card-title1\">Total footfall</div>\r\n </div>\r\n <div class=\"card-body mt-5\">\r\n <div class=\"w-100 d-flex mt-5\">\r\n\r\n <button class=\"btn btn-outline w-50 me-2\" (click)=\"modal.close('isDenied')\">Cancel</button>\r\n <button [disabled]=\"footfallcount<=0\" class=\"btn btn-primary w-50 ms-2\"\r\n (click)=\"modal.close('isConfirmed')\">start</button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Simple overlay modal -->\r\n<div class=\"images-modal-backdrop\" *ngIf=\"showImagesModal\">\r\n <div class=\"images-modal\">\r\n <div class=\"modal-header d-flex justify-content-between align-items-start mb-3\">\r\n <div>\r\n\r\n <div class=\"comment-header d-flex align-items-start\">\r\n\r\n <!-- Avatar -->\r\n <div class=\"avatar avatar-text light-primary p-3 me-3\">\r\n {{ getInitialsFromEmail(selectedComment.createdByEmail) }}\r\n </div>\r\n\r\n <!-- Text content -->\r\n <div class=\"comment-info\">\r\n <!-- email -->\r\n <div class=\"medium fw-semibold\">\r\n {{ selectedComment?.createdByEmail }}\r\n </div>\r\n\r\n <!-- created time -->\r\n <div class=\"medium text-muted\" *ngIf=\"selectedComment?.createdAt\">\r\n {{ selectedComment?.createdAt | date: 'hh:mm:ss a - dd MMM yyyy' }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- optional comment text under time -->\r\n <p class=\"mb-0 mt-2\" *ngIf=\"selectedComment?.message\">\r\n {{ selectedComment?.message }}\r\n </p>\r\n </div>\r\n <span class=\"cursor-pointer\" (click)=\"closeImagesPopup()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\"\r\n height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M13 1L1 13M1 1L13 13\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <!-- <button type=\"button\" class=\"btn-close ms-3\" >\r\n </button> -->\r\n </div>\r\n\r\n\r\n <div class=\"modal-body d-flex flex-wrap border border-1 p-3 gap-2\">\r\n <div *ngFor=\"let img of selectedImagesForPopup\" class=\"tango-card me-2\">\r\n <div class=\"tango-image\" [style.backgroundImage]=\"'url('+ imageUrl + img.filePath + ')'\">\r\n </div>\r\n <div class=\"tango-meta small\">\r\n <div>\r\n Tango ID: {{ img.tempId }}\r\n\r\n <!-- status dots -->\r\n <span *ngIf=\"selectedComment.status === 'approved'\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg></span>\r\n\r\n <span *ngIf=\"selectedComment.status === 'rejected'\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n\r\n <div class=\"text-muted\">\r\n Entry time: {{ img.entryTime }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #closeacuuracyissue let-modal>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n <h5 class=\"modal-title mb-5 fw-bold\">\r\n Close accuracy issue\r\n </h5>\r\n <p class=\"mb-5 test-appvalue\">\r\n The ticket will be “closed” and updated in the store as a final revision.\r\n </p>\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"modal.close('isDenied')\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"modal.close('isConfirmed')\">\r\n Close accuracy issue\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TicketService } from '../../services/ticket.service';\r\n@Component({\r\n selector: 'lib-tango-manage-tickets',\r\n templateUrl: './tango-manage-tickets.component.html',\r\n styleUrl: './tango-manage-tickets.component.scss'\r\n})\r\nexport class TangoManageTicketsComponent implements OnInit,OnDestroy {\r\n SelectedTab:any='installation'\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n ticketAllCount: any;\r\n users: any;\r\n constructor(private pageInfo:PageInfoService,private route: ActivatedRoute,private router:Router,public gs:GlobalStateService,private service:TicketService){\r\n }\r\nclientData:any;\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n const clientData: any = JSON.parse(localStorage.getItem(\"client-details\") || \"{}\");\r\n this.clientData = clientData;\r\n this.route?.queryParams?.pipe(takeUntil(this.destroy$)).subscribe(params => {\r\n if (params.hasOwnProperty('type')) {\r\n const type = params['type'];\r\n this.Selectedtabs(type);\r\n \r\n } else{\r\n this.updateStoreIdQueryParam()\r\n }\r\n });\r\n this.onLoad(); \r\n this.setPageData();\r\n }\r\n\r\n updateStoreIdQueryParam() {\r\n const queryParams = { ...this.route?.snapshot?.queryParams };\r\n // Update storeId in queryParams\r\n queryParams.type = this.SelectedTab.toLocaleLowerCase();\r\n // Navigate to the same route with updated queryParams\r\n this.router.navigate([], { queryParams: queryParams, queryParamsHandling: 'merge' });\r\n }\r\n\r\n setPageData(){\r\n this.pageInfo.setTitle('Tickets')\r\n this.pageInfo.setDescription('Summary of queries raised,addresed & resolved')\r\n let breadcrumbs : any[]=[];\r\n if (this.gs.userAccess.value?.userType === \"tango\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n } else if (this.gs.userAccess.value?.userType === \"client\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n }\r\n this.pageInfo.setBreadcrumbs(breadcrumbs);\r\n }\r\n\r\n \r\n Selectedtabs(value:any){\r\n this.SelectedTab = value;\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\nonLoad(){\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.getAllCount();\r\n }\r\n }\r\n })\r\n}\r\n\r\ngetAllCount(){\r\n let obj ={\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate\r\n }\r\n this.service.getAllCounts(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (res: any) => {\r\n if(res.code ===200){\r\n this.ticketAllCount = res?.data[0];\r\n }\r\n }\r\n })\r\n}\r\n\r\n}\r\n","<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\">\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'installation' }\" (click)=\"Selectedtabs('installation')\"\r\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Installation<span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount?ticketAllCount?.installationCount:0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" >\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'infra' }\" (click)=\"Selectedtabs('infra')\"\r\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount?ticketAllCount?.infraCount:0}}</span>\r\n </a>\r\n </li> \r\n <li class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'dataMismatch' }\" (click)=\"Selectedtabs('dataMismatch')\">\r\n <a [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span></a>\r\n </li>\r\n <!-- <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'audit' }\" (click)=\"Selectedtabs('audit')\"><a [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Audit</a>\r\n </li> -->\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'mat' }\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\r\n <span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount ?ticketAllCount?.matCount:0}}</span></a>\r\n </li>\r\n<!-- <li *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || clientData?.isVMS\" class=\"nav-item\" (click)=\"Selectedtabs('footfall')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'footfall' }\" [ngClass]=\"SelectedTab ==='footfall' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Footfall Directory\r\n <span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='footfall' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.footfallDirectory ?ticketAllCount?.footfallDirectory:0}}</span>\r\n\r\n </a>\r\n </li> -->\r\n <li *ngIf=\"this.users.userType ==='tango' || (this.users.userType ==='client' && this.users.role !=='user')\" class=\"nav-item\" (click)=\"Selectedtabs('footfall')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'footfall' }\" [ngClass]=\"SelectedTab ==='footfall' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Footfall Directory\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='footfall' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.footfallDirectory ?ticketAllCount?.footfallDirectory:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n<lib-ticket-footfall-new *ngIf=\"SelectedTab ==='footfall'\"></lib-ticket-footfall-new>\r\n<lib-footfall-dic *ngIf=\"SelectedTab ==='footfall-new'\"></lib-footfall-dic>\r\n<lib-tickets *ngIf=\"SelectedTab !=='audit' && SelectedTab !=='footfall' && SelectedTab !=='footfall-new'\"></lib-tickets>\r\n<lib-audit-metrics *ngIf=\"SelectedTab ==='audit'\"></lib-audit-metrics>\r\n<router-outlet></router-outlet>","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormBuilder, FormControl } from \"@angular/forms\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { GlobalStateService, PageInfoService } from \"tango-app-ui-global\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ToastService } from \"tango-app-ui-shared\";\r\nimport { ExcelService } from \"../../services/excel.service\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\n@Component({\r\n selector: \"lib-footfall-dicview\",\r\n templateUrl: \"./footfall-dicview.component.html\",\r\n styleUrl: \"./footfall-dicview.component.scss\",\r\n})\r\nexport class FootfallDicviewComponent implements OnInit {\r\n dayjs = dayjs;\r\n filterForm: any;\r\n form: any;\r\n paginationSizes = [10, 20, 30];\r\n selectedRevopsType: any;\r\n revopsTypeArray: any = [\r\n { value: \"\", label: \"All\" },\r\n { value: \"duplicateImages\", label: \"Duplicates\" },\r\n { value: \"employee\", label: \"Employee/Staff\" },\r\n { value: \"houseKeeping\", label: \"House Keeping\" },\r\n { value: \"junk\", label: \"Junk\" },\r\n ];\r\n type: any = [\r\n { value: \"open\", label: \"Open\" },\r\n { value: \"closed\", label: \"Closed\" },\r\n ];\r\n // selectedStatus: FormControl;\r\n\r\n pendingArray: any = [\r\n // { value: \"\", label: \"All\" },\r\n { value: \"pending\", label: \"Pending\" },\r\n { value: \"approved\", label: \"Approved\" },\r\n { value: \"rejected\", label: \"Rejected\" },\r\n ];\r\n\r\n storeCount: any;\r\n constructor(\r\n private gs: GlobalStateService,\r\n private ticketService: TicketService,\r\n private pageInfo: PageInfoService,\r\n private cd: ChangeDetectorRef,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private toast: ToastService,\r\n private modalService: NgbModal,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n selectedStores: any[] = [];\r\n allSelected: boolean = false;\r\n stores: any[] = [];\r\n selectedDateRange: any = {};\r\n selectedDate: any;\r\n isCustomDate: any;\r\n private readonly destroy$ = new Subject();\r\n ticketDataList: any;\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle(\"Tickets\");\r\n this.pageInfo.setDescription(\r\n \"Summary of queries raised,addresed & resolved\"\r\n );\r\n let breadcrumbs: any[] = [];\r\n if (this.gs.userAccess.value?.userType === \"tango\") {\r\n breadcrumbs = [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n } else if (this.gs.userAccess.value?.userType === \"client\") {\r\n breadcrumbs = [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n }\r\n this.pageInfo.setBreadcrumbs(breadcrumbs);\r\n }\r\n users:any;\r\n ngOnInit(): void {\r\n this.setPageData();\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n // console.log(this.users)\r\n // 1️⃣ Try from service\r\n const serviceData = this.ticketService.getFootfallData();\r\n\r\n if (serviceData && Object.keys(serviceData).length > 0) {\r\n this.ticketDataList = serviceData;\r\n } else {\r\n // 2️⃣ Try from localStorage\r\n const saved = localStorage.getItem(\"ticketDataList\");\r\n if (saved) {\r\n this.ticketDataList = JSON.parse(saved);\r\n }\r\n }\r\n\r\n // 3️⃣ If still nothing, set default\r\n if (!this.ticketDataList) {\r\n this.ticketDataList = {};\r\n }\r\n\r\n // 4️⃣ Always ensure dates exist\r\n const defaultDate = this.dayjs().subtract(1, \"day\");\r\n const fromDate =\r\n this.ticketDataList._source?.dateString ||\r\n defaultDate.format(\"YYYY-MM-DD\");\r\n const toDate =\r\n this.ticketDataList._source?.dateString ||\r\n defaultDate.format(\"YYYY-MM-DD\");\r\n\r\n this.ticketDataList.fromDate = fromDate;\r\n this.ticketDataList.toDate = toDate;\r\n\r\n // 5️⃣ Save back to localStorage\r\n localStorage.setItem(\"ticketDataList\", JSON.stringify(this.ticketDataList));\r\n\r\n // ✅ client from route\r\n this.route.queryParams.subscribe((params) => {\r\n this.client = params[\"client\"];\r\n });\r\n\r\n this.selectedRevopsType = new FormControl(\"\");\r\n this.filterForm = this.fb.group({\r\n selectedStatus: new FormControl(\"open\"),\r\n actionStatus: new FormControl(\"pending\"),\r\n ClusterList: new FormControl([]),\r\n fromDate: new FormControl(fromDate),\r\n toDate: new FormControl(toDate),\r\n });\r\n\r\n this.isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate = m > this.dayjs();\r\n return isValidDate ? \"invalid-date\" : false;\r\n };\r\n\r\n // 6️⃣ Selected range (always DD-MM-YYYY for display)\r\n this.selectedDateRange = {\r\n startDate: this.dayjs(fromDate).format(\"DD-MM-YYYY\"),\r\n endDate: this.dayjs(toDate).format(\"DD-MM-YYYY\"),\r\n };\r\n\r\n this.form = this.fb.group({\r\n selectedRevopsType: this.selectedRevopsType,\r\n });\r\n\r\n // 7️⃣ Call your rendering function\r\n this.dataStoreView(this.ticketDataList);\r\n }\r\n\r\n headDate: any;\r\n headDateEnd: any;\r\n datechange(event: any) {\r\n if (event && event.startDate && event.endDate) {\r\n if (\r\n this.dayjs(event.startDate).isValid() &&\r\n this.dayjs(event.endDate).isValid()\r\n ) {\r\n this.selectedDateRange.startDate = this.dayjs(\r\n event.startDate,\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\");\r\n this.selectedDateRange.endDate = this.dayjs(\r\n event.endDate,\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\");\r\n\r\n this.filterForm\r\n .get(\"fromDate\")\r\n ?.setValue(this.selectedDateRange.startDate);\r\n this.filterForm.get(\"toDate\")?.setValue(this.selectedDateRange.endDate);\r\n this.ticketDataList.fromDate = this.selectedDateRange.startDate;\r\n this.ticketDataList.toDate = this.selectedDateRange.endDate;\r\n if (this.dayjs(this.selectedDateRange.startDate).isValid()) {\r\n this.headDate = this.dayjs(this.selectedDateRange.startDate).format(\r\n \"MMM, DD\"\r\n );\r\n }\r\n if (this.dayjs(this.selectedDateRange.endDate).isValid()) {\r\n this.headDateEnd = this.dayjs(this.selectedDateRange.endDate).format(\r\n \"MMM DD, YYYY\"\r\n );\r\n }\r\n\r\n // ✅ Update ticketDataList without losing other keys\r\n }\r\n }\r\n }\r\n\r\n onStartDateChange(event: any) {\r\n if (this.dayjs(event.startDate).isValid()) {\r\n this.isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate =\r\n m > this.dayjs() || m > this.dayjs(event.startDate.add(60, \"days\"));\r\n return isValidDate ? \"invalid-date\" : false;\r\n };\r\n }\r\n }\r\n\r\n resetValidation() {\r\n this.isCustomDate = (m: dayjs.Dayjs) => {\r\n // Check if the given date is before yesterday\r\n return m.isAfter(this.dayjs(), \"day\") ? \"invalid-date\" : false;\r\n };\r\n }\r\n\r\n ClusterList: any = [];\r\n client: any;\r\n getAllGroups() {\r\n this.ClusterList = [];\r\n // this.groups =[];\r\n\r\n this.ticketService\r\n .getclusters({ clientId: this.client, group: [], city: [] })\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.ClusterList = res?.data?.groupData;\r\n this.getStores();\r\n } else {\r\n this.ClusterList = [];\r\n }\r\n },\r\n });\r\n }\r\n groups: any = [];\r\n ongroupSelect(event: any) {\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n this.filterForm.get(\"ClusterList\")?.setValue(event);\r\n this.groups = event.map((el: any) => el.groupName);\r\n }\r\n searchStoresData() {\r\n this.getStores();\r\n }\r\n StoresSearchValue: any = \"\";\r\n sortOrderStores: any;\r\n sortedColumn1: any = \"\";\r\n sortDirection1: any = 1;\r\n sortValue(column: string) {\r\n if (this.sortedColumn1 === column) {\r\n this.sortedColumn1 = this.sortDirection1 === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn1 = column;\r\n this.sortDirection1 = 1;\r\n }\r\n this.getStores();\r\n }\r\n getStores() {\r\n this.ticketService\r\n .getTaggedStoresApi(\r\n this.client,\r\n this.ticketDataList?.fromDate,\r\n this.ticketDataList?.toDate,\r\n this.StoresSearchValue,\r\n this.groups,\r\n this.sortDirection1\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n if (res?.data?.result?.length) {\r\n this.stores = res?.data?.result;\r\n this.storeCount = res.data?.count || 0;\r\n } else {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n }\r\n } else {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.stores = [];\r\n this.storeCount = 0;\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n toggleStoreSelection(store: any) {\r\n const storeId = store?.storeId;\r\n if (!storeId) return;\r\n\r\n const index = this.selectedStores.indexOf(storeId);\r\n\r\n if (index > -1) {\r\n // Deselect\r\n this.selectedStores.splice(index, 1);\r\n } else {\r\n // Select\r\n this.selectedStores.push(storeId);\r\n\r\n // Reorder to match main stores order\r\n this.selectedStores = this.stores\r\n .map((s) => s.storeId)\r\n .filter((id) => this.selectedStores.includes(id));\r\n\r\n // Scroll after rendering\r\n setTimeout(() => {\r\n const el = document.getElementById(\"detail-\" + storeId);\r\n if (el) {\r\n el.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n }, 100);\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n\r\n toggleSelectAll() {\r\n const visibleStoreIds = this.filteredStores.map((s) => s.storeId);\r\n\r\n if (this.allSelected) {\r\n // Remove only the visible ones\r\n this.selectedStores = this.selectedStores.filter(\r\n (id) => !visibleStoreIds.includes(id)\r\n );\r\n } else {\r\n // Add only those that are not already selected\r\n const newIds = visibleStoreIds.filter(\r\n (id) => !this.selectedStores.includes(id)\r\n );\r\n this.selectedStores = [...this.selectedStores, ...newIds];\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n\r\n isSelected(store: any): boolean {\r\n return this.selectedStores.includes(store.storeId);\r\n }\r\n backToNavigation() {\r\n this.router.navigate([\"/manage/tickets\"], {\r\n queryParams: {\r\n type: \"footfall\",\r\n },\r\n });\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n this.hasInitialStoreSynced = false;\r\n this.cancel();\r\n this.ClusterList = [];\r\n // this.groups =[];\r\n // this.filterForm.get('ClusterList')?.setValue('')\r\n this.form.get(\"selectedRevopsType\")?.setValue(\"\");\r\n this.filterForm.get(\"selectedStatus\")?.setValue(\"open\");\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n }\r\n cancel() {\r\n // this.allSelected = false;\r\n // this.allSelectValue = false;\r\n if (this.selectedRevopsType?.value !== \"\") this.allSelectValue = false;\r\n // Clear all selected flags from the data\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n source.employee?.forEach((img: any) => (img.selected = false));\r\n source.houseKeeping?.forEach((img: any) => (img.selected = false));\r\n source.junk?.forEach((img: any) => (img.selected = false));\r\n source.duplicateImages?.forEach((original: any) => {\r\n original.data?.forEach((dup: any) => (dup.selected = false));\r\n });\r\n }\r\n this.clear();\r\n\r\n // this.checkedValue = true;\r\n }\r\n clear() {\r\n this.modalService.dismissAll();\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList = [];\r\n // Reset counts\r\n this.employeeACCount = \"\";\r\n this.houseKeepingACCount = \"\";\r\n this.duplicateACCount = \"\";\r\n this.junkACCount = \"\";\r\n }\r\n ticketData: any;\r\n imgtoggleSelectAll() {\r\n this.allSelected = !this.allSelected;\r\n this.ticketData.duplicates.forEach((img: any) => {\r\n img.selected = this.allSelected;\r\n });\r\n }\r\n\r\n selectedImagesList: any[] = [];\r\n\r\n selectedDuplicateImagesList: any[] = [];\r\n selectedHousekeepingImagesList: any[] = [];\r\n selectedEmployeeImagesList: any[] = [];\r\n houseKeepingACCount: any;\r\n employeeACCount: any;\r\n duplicateACCount: any;\r\n junkACCount: any;\r\n selectedJunkImagesList: any[] = [];\r\n\r\n cloneWithoutSelected(obj: any) {\r\n const { ...rest } = obj;\r\n return rest;\r\n }\r\n\r\n allSelectValue = false;\r\n\r\n cloneWithoutSelected1(data: any): any {\r\n const { __parent, ...rest } = data;\r\n return { ...rest };\r\n }\r\n\r\n onImageCheckboxChange1(data: any, category: string, parentOriginal?: any) {\r\n let selectedList: any;\r\n\r\n if (category === \"duplicate\") {\r\n parentOriginal = parentOriginal || data.__parent;\r\n\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected1(data));\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected1(data)],\r\n });\r\n }\r\n } else {\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList =\r\n this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n }\r\n\r\n if (category === \"employee\") {\r\n selectedList = this.selectedEmployeeImagesList;\r\n } else if (category === \"houseKeeping\") {\r\n selectedList = this.selectedHousekeepingImagesList;\r\n } else if(category === \"junk\"){\r\n selectedList = this.selectedJunkImagesList;\r\n }\r\n\r\n if (category !== \"duplicate\") {\r\n if (data.selected) {\r\n const alreadyExists = selectedList.some(\r\n (item: any) => item.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const index = selectedList.findIndex(\r\n (item: any) => item.tempId === data.tempId\r\n );\r\n if (index !== -1) {\r\n selectedList.splice(index, 1);\r\n }\r\n }\r\n\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n this.junkACCount = this.selectedJunkImagesList.length;\r\n }\r\n\r\n // 🔒 Disable other checkboxes if one type is selected\r\n const totalSelected =\r\n this.duplicateACCount + this.employeeACCount + this.houseKeepingACCount + this.junkACCount;\r\n\r\n if (totalSelected > 0) {\r\n this.checkedValue = false;\r\n } else {\r\n this.checkedValue = true;\r\n }\r\n\r\n this.cd.detectChanges(); // To update the template\r\n this.allSelectValue = this.areAllCheckboxesSelected();\r\n }\r\n\r\n selectAllValue() {\r\n this.allSelectValue = !this.allSelectValue;\r\n this.checkedValue = !this.allSelectValue;\r\n\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList = [];\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n // ✅ Employee\r\n if (Array.isArray(source.employee)) {\r\n source.employee.forEach((img: any) => {\r\n img.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedEmployeeImagesList.some(\r\n (e) => e.tempId === img.tempId\r\n )\r\n ) {\r\n this.selectedEmployeeImagesList.push(img);\r\n }\r\n });\r\n }\r\n// ✅ Junk\r\n if (Array.isArray(source.junk)) {\r\n source.junk.forEach((img: any) => {\r\n img.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedJunkImagesList.some(\r\n (e) => e.tempId === img.tempId\r\n )\r\n ) {\r\n this.selectedJunkImagesList.push(img);\r\n }\r\n });\r\n }\r\n\r\n // ✅ Housekeeping\r\n if (Array.isArray(source.houseKeeping)) {\r\n source.houseKeeping.forEach((emp: any) => {\r\n emp.selected = this.allSelectValue;\r\n if (\r\n this.allSelectValue &&\r\n !this.selectedHousekeepingImagesList.some(\r\n (e) => e.tempId === emp.tempId\r\n )\r\n ) {\r\n this.selectedHousekeepingImagesList.push(emp);\r\n }\r\n });\r\n }\r\n\r\n // ✅ Duplicate\r\n if (Array.isArray(source.duplicateImages)) {\r\n source.duplicateImages.forEach((original: any) => {\r\n if (Array.isArray(original.data)) {\r\n original.data.forEach((dup: any) => {\r\n dup.selected = this.allSelectValue;\r\n dup.__parent = original; // ✅ Needed for uncheck\r\n });\r\n\r\n if (this.allSelectValue && original.data.length > 0) {\r\n const existing = this.selectedDuplicateImagesList.find(\r\n (o: any) => o.tempId === original.tempId\r\n );\r\n\r\n if (!existing) {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: original.tempId,\r\n filePath: original.filePath,\r\n entryTime: original.entryTime,\r\n exitTime: original.exitTime,\r\n timeRange: original.timeRange,\r\n data: original.data.map((d: any) =>\r\n this.cloneWithoutSelected1(d)\r\n ),\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.junkACCount = this.selectedJunkImagesList.length;\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n }\r\n\r\n areAllCheckboxesSelected(): boolean {\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n if (source.employee?.some((img: any) => !img.selected)) return false;\r\n if (source.houseKeeping?.some((img: any) => !img.selected)) return false;\r\n if(source.junk?.some((img: any) => !img.selected)) return false;\r\n if (\r\n source.duplicateImages?.some((original: any) =>\r\n original.data?.some((dup: any) => !dup.selected)\r\n )\r\n )\r\n return false;\r\n }\r\n return true;\r\n }\r\n checkedValue = true;\r\n\r\n onImageCheckboxChange(data: any, category: string, parentOriginal?: any) {\r\n let selectedList;\r\n\r\n switch (category) {\r\n case \"duplicate\":\r\n // Ensure selectedDuplicateImagesList is an array of ORIGINALS with selected children\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected(data)); // ✅ no 'selected' key\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected(data)], // ✅\r\n });\r\n }\r\n } else {\r\n // Remove from selected duplicates\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n // Remove the whole original if no duplicates are left\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList =\r\n this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Count only from selected duplicates\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n return;\r\n\r\n case \"houseKeeping\":\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n\r\n case \"employee\":\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n case \"junk\":\r\n selectedList = this.selectedJunkImagesList;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n // Unchanged logic for employee and housekeeping\r\n selectedList = selectedList || [];\r\n if (data.selected) {\r\n const alreadyExists =\r\n Array.isArray(selectedList) &&\r\n selectedList.some((item: any) => item.tempId === data.tempId);\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const updated = Array.isArray(selectedList)\r\n ? selectedList.filter((item: any) => item.tempId !== data.tempId)\r\n : [];\r\n\r\n if (category === \"houseKeeping\") {\r\n this.selectedHousekeepingImagesList = updated;\r\n } else if (category === \"employee\") {\r\n this.selectedEmployeeImagesList = updated;\r\n } else if (category === \"junk\") {\r\n this.selectedJunkImagesList = updated;\r\n }\r\n }\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList?.length || 0;\r\n this.employeeACCount = this.selectedEmployeeImagesList.length || 0;\r\n this.junkACCount = this.selectedJunkImagesList.length || 0;\r\n }\r\n\r\n commentText: any;\r\n submitValue(status: string = \"approved\", category: string = \"duplicate\") {\r\n // Step 1: Validate based on current category\r\n let selectedList;\r\n switch (category) {\r\n case \"duplicate\":\r\n selectedList = this.selectedDuplicateImagesList;\r\n break;\r\n case \"houseKeeping\":\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n case \"employee\":\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n case \"junk\":\r\n selectedList = this.selectedJunkImagesList;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (selectedList.length === 0) {\r\n this.toast.getErrorToast(\"Please select at least one image\");\r\n return;\r\n }\r\n\r\n // Replace selected → isChecked before sending\r\n const transformedList = selectedList.map((item) => {\r\n const { selected, ...rest } = item;\r\n return { ...rest, isChecked: true };\r\n });\r\n\r\n // Step 2: Build full payload\r\n const payload: any[] = [];\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n const singlePayload: any = {\r\n _id: ticket._id,\r\n comments: this.commentText || \"\",\r\n dateString: source.dateString || this.dateString,\r\n\r\n employeeStatus:\r\n category === \"employee\" ? status : source.employeeStatus,\r\n houseKeepingStatus:\r\n category === \"houseKeeping\" ? status : source.houseKeepingStatus,\r\n junkStatus:\r\n category === \"junk\" ? status : source.junkStatus,\r\n duplicateStatus:\r\n category === \"duplicate\" ? status : source.duplicateStatus,\r\n };\r\n\r\n if (category === \"employee\") {\r\n singlePayload.employee = transformedList;\r\n singlePayload.employeeACCount = this.employeeACCount\r\n ? this.employeeACCount\r\n : 0;\r\n }\r\n\r\n if (category === \"houseKeeping\") {\r\n singlePayload.houseKeeping = transformedList;\r\n singlePayload.houseKeepingACCount = this.houseKeepingACCount\r\n ? this.houseKeepingACCount\r\n : 0;\r\n }\r\n if (category === \"junk\") {\r\n singlePayload.junk = transformedList;\r\n singlePayload.junkACCount = this.junkACCount\r\n ? this.junkACCount\r\n : 0;\r\n }\r\n if (category === \"duplicate\") {\r\n singlePayload.duplicateImages = transformedList;\r\n singlePayload.duplicateACCount = this.duplicateACCount\r\n ? this.duplicateACCount\r\n : 0;\r\n }\r\n\r\n payload.push(singlePayload);\r\n }\r\n // Step 3: Set status based on current category\r\n switch (category) {\r\n case \"duplicate\":\r\n payload.forEach((item) => (item.duplicateStatus = status));\r\n break;\r\n case \"houseKeeping\":\r\n payload.forEach((item) => (item.houseKeepingStatus = status));\r\n break;\r\n case \"employee\":\r\n payload.forEach((item) => (item.employeeStatus = status));\r\n break;\r\n case \"junk\":\r\n payload.forEach((item) => (item.junkStatus = status));\r\n break;\r\n }\r\n\r\n // Step 4: Submit the payload\r\n this.ticketService\r\n .getUpdateStatusApi({ data: payload })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(\r\n res?.message || \"Ticket updated successfully\"\r\n );\r\n // this.selectedStores =[];\r\n // this.allSelected = false;\r\n // this.allSelectValue =false;\r\n this.footfalloffset = 1;\r\n this.dataStoreView();\r\n this.cancel();\r\n } else {\r\n this.toast.getErrorToast(\"Failed to update ticket\");\r\n }\r\n },\r\n error: (err: any) => {\r\n const msg =\r\n err.error.error ||\r\n err.error ||\r\n err?.error?.message ||\r\n err.message ||\r\n \"Unknown error\";\r\n this.toast.getErrorToast(\"Error updating ticket: \" + msg);\r\n\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n },\r\n });\r\n }\r\n searchTerm: any = \"\";\r\n get filteredStores() {\r\n if (!this.searchTerm?.trim()) return this.stores;\r\n\r\n const term = this.searchTerm.toLowerCase();\r\n return this.stores.filter((store) =>\r\n store?.storeName?.toLowerCase().includes(term)\r\n );\r\n }\r\n onImageError(event: any): void {\r\n event.target.src = \"assets/images/fallback-image.png\"; // or any default image path\r\n }\r\n\r\n isCollapsed = false;\r\n\r\n toggleSidebar() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n matchedType: any;\r\n\r\n matchedArray: any = [{ value: \"all\", label: \"matched: All\" }];\r\n onFilterApply() {\r\n this.getStores();\r\n if (this.selectedRevopsType.value === \"\") this.footfalllimit = 1;\r\n else this.footfalllimit = 10;\r\n this.dataStoreView();\r\n }\r\n pageSizeFootfall: any = 1;\r\n footfallcurrentPage: any = 1;\r\n onFootfallPageChange(pageOffset: number) {\r\n this.footfallcurrentPage = Number(pageOffset);\r\n this.footfalloffset = Number(pageOffset);\r\n this.footfalllimit = 1;\r\n this.cancel();\r\n this.dataStoreView();\r\n }\r\n\r\n onFootfallPageSizeChange(pageSize: number) {\r\n this.footfalllimit = Number(pageSize);\r\n this.pageSizeFootfall = Number(pageSize);\r\n this.footfallcurrentPage = 1;\r\n this.footfalloffset = 1;\r\n this.dataStoreView();\r\n }\r\n totalItemsFootfall: any;\r\n setFootfallpageSize() {\r\n if (this.footfalllimit === 1) {\r\n if (this.totalItemsFootfall < 1) {\r\n return this.totalItemsFootfall;\r\n } else {\r\n return this.pageSizeFootfall;\r\n }\r\n } else {\r\n if (this.totalItemsFootfall < 10) {\r\n return this.totalItemsFootfall;\r\n } else {\r\n return this.pageSizeFootfall;\r\n }\r\n }\r\n }\r\n\r\n footfallMulticurrentPage: any = 1;\r\n onFootfallMultiPageChange(pageOffset: number) {\r\n this.footfallMulticurrentPage = Number(pageOffset);\r\n this.footfalloffset = Number(pageOffset);\r\n this.footfalllimit = 10;\r\n this.allSelectValue = false;\r\n this.cancel();\r\n this.dataStoreView();\r\n }\r\n\r\n onFootfallMultiPageSizeChange(pageSize: number) {\r\n this.footfalllimit = Number(pageSize);\r\n this.pageSizeFootfall = Number(pageSize);\r\n this.footfallMulticurrentPage = 1;\r\n this.footfalloffset = 1;\r\n\r\n this.dataStoreView();\r\n }\r\n\r\n typeChange(event: any) {\r\n this.filterForm.get(\"selectedStatus\")?.setValue(event || null);\r\n }\r\n\r\n pendingChange(event: any) {\r\n this.filterForm.get(\"actionStatus\")?.setValue(event || null);\r\n }\r\n\r\n RevopsTypeChange(event: any) {\r\n const selectedType = event ?? \"\";\r\n this.footfalloffset = 1;\r\n if (selectedType === \"\") {\r\n this.footfalllimit = 1;\r\n this.footfallcurrentPage = 1;\r\n } else {\r\n this.footfalllimit = 10;\r\n }\r\n this.form.get(\"selectedRevopsType\")?.setValue(selectedType);\r\n this.allSelectValue = false;\r\n // Clear selected lists\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n this.selectedJunkImagesList = [];\r\n this.cd.detectChanges();\r\n // Reset counts\r\n this.employeeACCount = \"\";\r\n this.houseKeepingACCount = \"\";\r\n this.duplicateACCount = \"\";\r\n this.junkACCount=\"\";\r\n this.dataStoreView();\r\n }\r\n\r\n footfalloffset = 1;\r\n footfalllimit = 1;\r\n footfallTicketsData: any = [];\r\n storeIdValue: any;\r\n\r\n dataReset() {\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.StoresSearchValue = \"\";\r\n this.getStores();\r\n this.form.get(\"selectedRevopsType\")?.setValue(\"\");\r\n this.filterForm.get(\"selectedStatus\")?.setValue(\"open\");\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n this.dataStoreView();\r\n }\r\n dataApply() {\r\n this.footfalloffset = 1;\r\n if (this.selectedRevopsType.value === \"\") {\r\n this.footfallcurrentPage = 1;\r\n this.footfalllimit = 1;\r\n } else {\r\n this.footfalllimit = 10;\r\n }\r\n this.allSelectValue = false;\r\n this.dataStoreView();\r\n }\r\n imageUrl: any;\r\n dataIndexId: any;\r\n dateString: any;\r\n footfallNoData = false;\r\n footfallLoading = true;\r\n private lastSelectedTicket: any = null;\r\n\r\n hasInitialStoreSynced = false;\r\n\r\n addStoreIfNotExists(store: any) {\r\n if (this.hasInitialStoreSynced) return;\r\n\r\n const storeId = store?.storeId;\r\n if (storeId && !this.selectedStores.includes(storeId)) {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.hasInitialStoreSynced = true;\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n }\r\n selecteValues: any;\r\n selectedStatus: any;\r\n dataStoreView(data?: any) {\r\n this.getAllGroups();\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = false;\r\n this.footfallLoading = true;\r\n const ticket = data?._source ? data : this.lastSelectedTicket;\r\n\r\n if (!ticket || !ticket._source) {\r\n this.footfallLoading = false;\r\n this.footfallNoData = true;\r\n this.toast.getErrorToast(\"No ticket data available\");\r\n return;\r\n }\r\n\r\n this.lastSelectedTicket = ticket;\r\n this.addStoreIfNotExists(ticket._source);\r\n this.dataIndexId = ticket._id || \"\";\r\n this.dateString = ticket._source.dateString || \"\";\r\n this.imageUrl = this.ticketService?.footfallCDN;\r\n this.storeIdValue = this.selectedStores;\r\n const revopsType = this.form.get(\"selectedRevopsType\")?.value;\r\n const selectedStatus = (this.selectedStatus =\r\n this.filterForm.get(\"selectedStatus\")?.value);\r\n const actionStatus = (this.selecteValues =\r\n this.filterForm.get(\"actionStatus\")?.value);\r\n\r\n const storeId = this.storeIdValue;\r\n const fromDate = this.ticketDataList?.fromDate;\r\n const toDate = this.ticketDataList?.toDate;\r\n const offset = this.footfalloffset;\r\n const limit =\r\n revopsType === \"\" ? this.footfalllimit : (this.footfalllimit = 10);\r\n\r\n this.ticketService\r\n .getTicketsApi(\r\n storeId,\r\n fromDate,\r\n toDate,\r\n revopsType,\r\n selectedStatus,\r\n actionStatus,\r\n offset,\r\n limit\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n if (res?.data?.result?.length === 0) {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n this.toast.getErrorToast(\r\n \"No data found for the selected filters\"\r\n );\r\n } else {\r\n this.footfallTicketsData = res?.data?.result ?? [];\r\n this.totalItemsFootfall = res?.data?.count;\r\n if (this.footfalllimit === 1) {\r\n this.paginationSizes = [1];\r\n this.pageSizeFootfall = 1;\r\n } else {\r\n const limit =\r\n this.totalItemsFootfall < 10 ? this.totalItemsFootfall : 10;\r\n this.paginationSizes = [limit];\r\n this.pageSizeFootfall = limit;\r\n }\r\n this.footfallNoData = false;\r\n this.footfallLoading = false;\r\n }\r\n } else {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n }\r\n },\r\n error: (err:any) => {\r\n if(err?.error?.code === 400)\r\n this.toast.getErrorToast(err?.error?.message ? err?.error?.message :err?.error?.error);\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n },\r\n complete: () => { \r\n this.cd.detectChanges();\r\n },\r\n });\r\n }\r\n\r\n @ViewChild(\"zoomPopup\") zoomPopup: ElementRef;\r\n popupvalue: any;\r\n popupType: any;\r\n popupOpen(type: any, value: any) {\r\n const modalRef = this.modalService.open(this.zoomPopup, {\r\n centered: true,\r\n size: \"md\",\r\n backdrop: \"static\", // Prevent closing on outside click\r\n keyboard: false, // Prevent closing on ESC key\r\n });\r\n this.popupType = type;\r\n if (value === \"duplicateImages\") {\r\n this.popupvalue = \"duplicate\";\r\n } else {\r\n this.popupvalue = value;\r\n }\r\n }\r\n\r\n getFormattedEntryTime(entryTime: string): string {\r\n if (!entryTime) return \"-\";\r\n const [hours, minutes, seconds] = entryTime.split(\":\").map(Number);\r\n const date = new Date();\r\n date.setHours(hours, minutes, seconds);\r\n return date.toLocaleTimeString(\"en-US\", {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n // second: '2-digit',\r\n hour12: true,\r\n });\r\n }\r\n showSelectAllBox() {\r\n this.filterForm.get(\"actionStatus\")?.setValue(\"pending\");\r\n }\r\n\r\n scrollToStore(store: any) {\r\n const element = document.getElementById(\"detail-\" + store.storeId);\r\n if (element) {\r\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n }\r\n}\r\n","<div class=\"card mt-2\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"row my-0\">\r\n <div class=\"col-lg-3 my-3 pt-2\">\r\n <span class=\"ms-2 cursor-pointer\" (click)=\"backToNavigation()\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"56\" height=\"44\" viewBox=\"0 0 56 44\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_887_4505)\">\r\n <rect x=\"2\" y=\"1\" width=\"52\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"51\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M30.5 26L25.5 21L30.5 16\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_887_4505\" x=\"0\" y=\"0\" width=\"56\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_887_4505\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_887_4505\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg><span class=\"card-title-foot pt-15 ms-3\">Footfall Directory</span></span>\r\n\r\n </div>\r\n\r\n <div class=\"col-md-3 my-3\">\r\n <div class=\"position-relative\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14 z-2\"\r\n style=\"min-width: 230px !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"false\" autocomplete=\"off\"\r\n [(ngModel)]=\"selectedDateRange\" [ngModelOptions]=\"{standalone: true}\"\r\n (datesUpdated)=\"datechange($event)\" (click)=\"resetValidation()\"\r\n (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [autoApply]=\"true\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 my-3\">\r\n\r\n <lib-reactive-select formControlName=\"selectedStatus\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"type\" (itemChange)=\"typeChange($event)\"></lib-reactive-select>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-2 my-3\">\r\n\r\n <lib-reactive-select formControlName=\"actionStatus\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"pendingArray\" (itemChange)=\"pendingChange($event)\"></lib-reactive-select>\r\n\r\n </div>\r\n <div class=\"col-md-2 my-4\">\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"!(filterForm.get('ClusterList')?.value?.length)\">\r\n Select cluster\r\n </div>\r\n <lib-group-select [items]=\"ClusterList\" [disabled]=\"false\" [multi]=\"true\"\r\n [searchField]=\"'groupName'\" [idField]=\"'groupName'\" (selected)=\"ongroupSelect($event)\"\r\n [selectedValues]=\"filterForm.get('ClusterList')?.value\">\r\n </lib-group-select>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-1 my-4\">\r\n <div class=\"d-flex me-3\">\r\n <a (click)=\"onFilterApply()\" type=\"submit\"\r\n class=\"btn btn-sm btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n<div class=\"row mt-3\">\r\n <div class=\"position-relative\" [ngClass]=\"isCollapsed ? 'd-none' : 'col-md-3'\">\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-3 px-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Footfall Directory</span>\r\n <span class=\"text-sub mb-2\">Based on {{this.ticketDataList?.fromDate | date: 'dd MMM, yyyy'}} –\r\n {{this.ticketDataList?.toDate | date: 'dd MMM, yyyy'}} </span>\r\n </h3>\r\n </div>\r\n <span class=\"cursor-pointer\" (click)=\"toggleSidebar()\" style=\"position: absolute; top: 15px; right: -25px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"68\" height=\"68\" viewBox=\"0 0 68 68\" fill=\"none\">\r\n <g filter=\"url(#filter0_dd_778_34282)\">\r\n <rect x=\"12\" width=\"44\" height=\"44\" rx=\"22\" fill=\"white\" />\r\n <path d=\"M33 27L28 22L33 17M40 27L35 22L40 17\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_dd_778_34282\" x=\"0\" y=\"0\" width=\"68\" height=\"68\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"2\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect1_dropShadow_778_34282\" />\r\n <feOffset dy=\"4\" />\r\n <feGaussianBlur stdDeviation=\"3\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.03 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_778_34282\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feMorphology radius=\"4\" operator=\"erode\" in=\"SourceAlpha\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feOffset dy=\"12\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.08 0\" />\r\n <feBlend mode=\"normal\" in2=\"effect1_dropShadow_778_34282\"\r\n result=\"effect2_dropShadow_778_34282\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect2_dropShadow_778_34282\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <div class=\"text-end mt-10\">\r\n <button class=\"btn btn-outline w-25 me-3 btn-resize\" (click)=\"dataReset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-25 me-5 btn-resize\" (click)=\"dataApply()\">Apply</button>\r\n </div>\r\n <div class=\"p-4 w-100 overflow-y-auto overflow-x-hidden\" style=\"max-height: 1500px;\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute pb-2 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input class=\"form-control form-control-sm mb-2 ps-14 pe-2 w-100\" type=\"text\" placeholder=\"Search\"\r\n [(ngModel)]=\"StoresSearchValue\" (change)=\"searchStoresData()\" />\r\n </div>\r\n\r\n <div *ngIf=\"stores?.length\" class=\"mb-2 border-selectall\">\r\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"toggleSelectAll()\" />\r\n <label class=\"mt-2 font-semibold ms-2\">Select All {{storeCount}} Stores</label>\r\n <!-- <span class=\"text-end\" (click)=\"sortValue('storeName')\"><svg\r\n [ngClass]=\"sortedColumn1 === 'storeName' && sortDirection1 === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn1 === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> -->\r\n </div>\r\n <ul class=\"list-unstyled ps-0\">\r\n <li\r\n *ngFor=\"let store of stores\"\r\n class=\"mb-3\" [attr.id]=\"'store-' + store.storeId\"\r\n [ngClass]=\"{ 'store-item-active': isSelected(store), 'store-item': true }\"\r\n >\r\n <div class=\"left\" (click)=\"scrollToStore(store)\">\r\n <input \r\n type=\"checkbox\"\r\n [checked]=\"isSelected(store)\"\r\n (change)=\"toggleStoreSelection(store)\"\r\n />\r\n <span [ngClass]=\"{ 'active-text': isSelected(store) }\">\r\n {{ store?.storeName }}\r\n </span>\r\n </div>\r\n <span [ngClass]=\"{ 'badge': true, 'badge-active': isSelected(store), 'badge-normal': !isSelected(store) }\">\r\n {{ store?.totalCount }}\r\n </span>\r\n </li>\r\n</ul>\r\n\r\n\r\n\r\n <div *ngIf=\"!stores?.length\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body mx-0 d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\"\r\n viewBox=\"0 0 94 94\" fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\" transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No Stores Found</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no stores </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"isCollapsed ? 'col-12' : 'col-md-9 flex-grow-1 d-flex'\">\r\n <div class=\"card flex-grow-1\">\r\n\r\n <div class=\"card-header min-h-35px border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <form class=\"mx-4\" style=\"min-width:200px !important\" [formGroup]=\"form\">\r\n <lib-reactive-select formControlName=\"selectedRevopsType\" [idField]=\"'value'\"\r\n [nameField]=\"'label'\" [data]=\"revopsTypeArray\"\r\n (itemChange)=\"RevopsTypeChange($event)\"></lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedRevopsType?.value !== '' && selecteValues ==='pending'\"\r\n class=\"card-header min-h-35px border-0\">\r\n <h3 class=\"align-items-start flex-column\">\r\n\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"mt-12 mb-2 font-semibold\">\r\n <!-- <section *ngIf=\"!(users?.role === 'user' && users?.userType === 'client' && selectedRevopsType?.value === 'junk')\"> -->\r\n\r\n <input *ngIf=\"!footfallLoading && !footfallNoData\" type=\"checkbox\" [checked]=\"allSelectValue\"\r\n (change)=\"selectAllValue()\" />\r\n <label *ngIf=\"!footfallLoading && !footfallNoData\" class=\"mt-2 fs-6 font-semibold ms-2\">\r\n Select All (\r\n {{\r\n houseKeepingACCount > 0\r\n ? houseKeepingACCount\r\n : employeeACCount > 0\r\n ? employeeACCount\r\n : junkACCount > 0\r\n ? junkACCount\r\n : duplicateACCount > 0\r\n ? duplicateACCount\r\n : 0\r\n }}\r\n )\r\n </label>\r\n <!-- </section> -->\r\n </div>\r\n <!-- -->\r\n\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"my-7 d-flex justify-content-end me-5\"\r\n role=\"group\">\r\n <!-- <section *ngIf=\"!(users?.role === 'user' && users?.userType === 'client' && selectedRevopsType?.value === 'junk')\"> -->\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\"\r\n class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected',this.selectedRevopsType.value)\">Reject selection</button>\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\"\r\n class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved',this.selectedRevopsType.value)\">Approve selection</button>\r\n <!-- </section> -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <section *ngIf=\"selectedRevopsType?.value === ''\">\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"card-body mt-3 py-0\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <div class=\"col-md-12 text-center my-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"240\"\r\n height=\"86\" viewBox=\"0 0 240 86\" fill=\"none\">\r\n <rect width=\"240\" height=\"86\" fill=\"#FAFAFA\" />\r\n <rect x=\"31\" width=\"178\" height=\"86\" fill=\"url(#pattern0_778_33543)\" />\r\n <defs>\r\n <pattern id=\"pattern0_778_33543\" patternContentUnits=\"objectBoundingBox\" width=\"1\"\r\n height=\"1\">\r\n <use xlink:href=\"#image0_778_33543\"\r\n transform=\"matrix(0.000333333 0 0 0.000689922 0 -0.0822946)\" />\r\n </pattern>\r\n <image id=\"image0_778_33543\" width=\"3000\" height=\"1688\" preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAC7gAAAaYCAYAAAAXbpGPAAAgAElEQVR4AezQgQAAAACAoP2pFymECgMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDJZikLkAACAASURBVBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwjXnEogAAIABJREFUYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBiYvXvBtZAGAgCqi3MT7sJFuG4NUSIP74cW2s60x8QAl0KnZ6Y8IU0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBp7TinAAAgAElEQVQgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQO/m9l0AACAASURBVIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA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QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAptcw2AAAgAElEQVQgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPx/duhAAAAAAADI/7UREhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgfUWlHgAACAASURBVAMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMH3CjNDQAAIABJREFUDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHDhw4cODAgQMHtEPHAgAAAACD/K2nsaMQMmDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAGPnY0UAAAMe0lEQVQDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBt4DAfUfAYwpoEnzAAAAAElFTkSuQmCC\" />\r\n </defs>\r\n </svg>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"row mb-6\">\r\n <div class=\"col-2 card-title-label my-2\">Ticket Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketName ? (source.ticketName |\r\n titlecase) : '-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Ticket ID</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketId ? source.ticketId:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Store Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.storeName ? source.storeName:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Status</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-4 my-2\"><span class=\"badge\" [ngClass]=\"{\r\n 'badge-light-primary': source.status === 'open',\r\n 'badge-secondary': source.status === 'closed',\r\n 'badge-light-warning': source.status === 'pending',\r\n 'badge-light-danger': source.status === 'rejected'\r\n }\">\r\n {{ source.status ? (source.status | titlecase) : '-' }}\r\n </span></div>\r\n\r\n <div class=\"col-1 card-title-label my-2\">Date</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 card-title-value my-2\">{{ source.dateString ? (source.dateString | date:\r\n 'dd MMM, yyyy') :'- ' }}</div>\r\n </div>\r\n\r\n <div *ngIf=\"ticket?._source as source\" class=\"border-totalfootfall\">\r\n <div class=\"card-header ellipse1 min-h-45px py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title\">{{ source?.footfallCount !== null ?\r\n source?.footfallCount : '--' }} <span class=\"sub-header ms-2\">Total\r\n Footfall</span></h5>\r\n\r\n </div>\r\n </div>\r\n <div class=\"card-body py-0 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.duplicateCount !== null && source?.duplicateCount !== undefined ?\r\n source?.duplicateCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.duplicateACCount !== null && source?.duplicateACCount !== undefined ?\r\n source?.duplicateACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Duplicates</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.employeeCount !== null && source?.employeeCount !== undefined ?\r\n source?.employeeCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.employeeACCount !== null && source?.employeeACCount !== undefined ?\r\n source?.employeeACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Employee/Staff</span>\r\n </div>\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ (source?.junkCount !== null && source?.junkCount !== undefined ?\r\n source?.junkCount : '--') || 0 }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ (source?.junkACCount !== null && source?.junkACCount !== undefined ?\r\n source?.junkACCount : '--') || 0 }}</h5>\r\n <span class=\"card-title-sub-header\">Junk</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\">{{ source?.houseKeepingCount !== null && source?.houseKeepingCount !== undefined ?\r\n source?.houseKeepingCount : '--' }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\">{{ source?.houseKeepingACCount !== null && source?.houseKeepingACCount !== undefined ?\r\n source?.houseKeepingACCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">House Keeping</span>\r\n </div>\r\n <div class=\"col-lg-2 col-xl-2 col-md-2 mt-3\">\r\n <h5 *ngIf=\"source?.status ==='open'\" class=\"card-title\"> {{\r\n (source.footfallCount || 0) -\r\n ((source.houseKeepingCount || 0) +\r\n (source.employeeCount || 0) + (source.junkCount ?? 0) +\r\n (source.duplicateCount || 0))\r\n }}</h5>\r\n <h5 *ngIf=\"source?.status !=='open'\" class=\"card-title\"> {{\r\n (source.footfallCount || 0) -\r\n ((source.houseKeepingACCount || 0) +\r\n (source.employeeACCount || 0) + (source.junkACCount ?? 0) +\r\n (source.duplicateACCount || 0))\r\n }}</h5>\r\n <span class=\"card-title-sub-header\">Actual footfall</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-5\">\r\n <h3 *ngIf=\"source?.duplicateImages?.length\" class=\"text-lg font-semibold mb-4\"> <span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Duplicates</h3>\r\n\r\n\r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-3\">Original image\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\"\r\n class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{ original.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(original?.entryTime) }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"duplicate-head text-lg my-3\">Duplicates<span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.duplicateStatus === 'pending',\r\n 'badge-light-success': source?.duplicateStatus === 'approved',\r\n 'badge-light-danger': source?.duplicateStatus === 'rejected'\r\n }\">{{source?.duplicateStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source?.duplicateStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'duplicate', original)\" />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{ img.tempId }}\r\n <span class=\"ms-2\" *ngIf=\"source?.duplicateStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{\r\n getFormattedEntryTime(img?.entryTime) }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"my-7 d-flex justify-content-end\"\r\n role=\"group\">\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','duplicate')\">Reject</button>\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','duplicate')\">Approve</button>\r\n </div>\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n <div *ngIf=\"source?.employee?.length\" class=\"duplicate-head text-lg my-3\"><span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"16\"\r\n viewBox=\"0 0 18 16\" fill=\"none\">\r\n <path\r\n d=\"M12.75 14.75V13.25C12.75 12.4544 12.4339 11.6913 11.8713 11.1287C11.3087 10.5661 10.5456 10.25 9.75 10.25H3.75C2.95435 10.25 2.19129 10.5661 1.62868 11.1287C1.06607 11.6913 0.75 12.4544 0.75 13.25V14.75M17.25 14.75V13.25C17.2495 12.5853 17.0283 11.9396 16.621 11.4142C16.2138 10.8889 15.6436 10.5137 15 10.3475M12 1.3475C12.6453 1.51273 13.2173 1.88803 13.6257 2.41423C14.0342 2.94044 14.2559 3.58762 14.2559 4.25375C14.2559 4.91988 14.0342 5.56706 13.6257 6.09327C13.2173 6.61947 12.6453 6.99477 12 7.16M9.75 4.25C9.75 5.90685 8.40685 7.25 6.75 7.25C5.09315 7.25 3.75 5.90685 3.75 4.25C3.75 2.59315 5.09315 1.25 6.75 1.25C8.40685 1.25 9.75 2.59315 9.75 4.25Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>Employee/Staff <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.employeeStatus === 'pending',\r\n 'badge-light-success': source?.employeeStatus === 'approved',\r\n 'badge-light-danger': source?.employeeStatus === 'rejected'\r\n }\">{{source?.employeeStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.employeeStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'employee')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{img.tempId}}\r\n <span class=\"ms-2\" *ngIf=\"source?.employeeStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time:\r\n {{getFormattedEntryTime(img?.entryTime)}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','employee')\">Reject</button>\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','employee')\">Approve</button>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n\r\n <div *ngIf=\"source?.junk?.length\" class=\"duplicate-head text-lg my-3\"><span\r\n class=\"me-2\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n<path d=\"M3 6H5M5 6H21M5 6V20C5 20.5304 5.21071 21.0391 5.58579 21.4142C5.96086 21.7893 6.46957 22 7 22H17C17.5304 22 18.0391 21.7893 18.4142 21.4142C18.7893 21.0391 19 20.5304 19 20V6H5ZM8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M10 11V17M14 11V17\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg></span>Junk <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.junkStatus === 'pending',\r\n 'badge-light-success': source?.junkStatus === 'approved',\r\n 'badge-light-danger': source?.junkStatus === 'rejected'\r\n }\">{{source?.junkStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of source.junk\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <!-- <section *ngIf=\"users?.role !=='user' && users?.userType !=='client'\"> -->\r\n <input *ngIf=\"source?.junkStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'junk')\" />\r\n <!-- </section> -->\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{img.tempId}}\r\n <span class=\"ms-2\" *ngIf=\"source?.junkStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.junkStatus === 'approved' || source?.junkStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.junkStatus === 'approved' || source?.junkStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time:\r\n {{getFormattedEntryTime(img?.entryTime)}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <section *ngIf=\"users?.role !=='user' && users?.userType !=='client'\"> -->\r\n <div *ngIf=\"source?.junk?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!junkACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','junk')\">Reject</button>\r\n <button [disabled]=\"!junkACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','junk')\">Approve</button>\r\n </div>\r\n <!-- </section> -->\r\n\r\n <div *ngIf=\"source?.junk?.length\" class=\"separator separator-dashed mt-3 mb-5\"></div>\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"duplicate-head text-lg my-3\"><span\r\n class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.51995 0.613065C8.33739 -0.204355 9.66267 -0.204355 10.4801 0.613065L17.387 7.51995C18.2043 8.33739 18.2043 9.66267 17.387 10.4801L10.4801 17.387C9.66267 18.2043 8.33739 18.2043 7.51995 17.387L5.54626 15.4133L3.73708 17.2224C2.91966 18.0399 1.59436 18.0399 0.776944 17.2224C-0.0404767 16.4051 -0.0404767 15.0797 0.776944 14.2624L2.58612 12.4531L0.613065 10.4801C-0.204355 9.66267 -0.204355 8.33739 0.613065 7.51995L7.51995 0.613065ZM9.49336 1.59978C9.22088 1.32731 8.77909 1.32731 8.50661 1.59978L3.57286 6.53357L11.4665 14.4272L16.4002 9.49336C16.6727 9.22088 16.6727 8.77909 16.4002 8.5067L12.9465 5.05286L11.7952 6.20403C11.5228 6.4765 11.0811 6.4765 10.8086 6.20403C10.5361 5.93155 10.5361 5.48978 10.8086 5.21731L11.9597 4.06614L10.9732 3.07964L8.17757 5.87533C7.90509 6.1478 7.46329 6.1478 7.19081 5.87533C6.91833 5.60286 6.91833 5.16109 7.19081 4.88862L9.9865 2.09293L9.49336 1.59978ZM10.4797 15.4139L2.58615 7.52028L1.59978 8.5067C1.3273 8.77909 1.3273 9.22088 1.59978 9.49336L8.50661 16.4002C8.77909 16.6727 9.22088 16.6727 9.49336 16.4002L10.4797 15.4139ZM3.57275 13.4399L1.76366 15.249C1.49119 15.5215 1.49119 15.9633 1.76366 16.2358C2.03613 16.5082 2.4779 16.5082 2.75037 16.2358L4.55946 14.4266L3.57275 13.4399Z\"\r\n fill=\"#475467\" />\r\n </svg></span> House Keeping <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.houseKeepingStatus === 'pending',\r\n 'badge-light-success': source?.houseKeepingStatus === 'approved',\r\n 'badge-light-danger': source?.houseKeepingStatus === 'rejected'\r\n }\">{{source?.houseKeepingStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 mb-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.houseKeepingStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'houseKeeping')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">Tango ID: {{img.tempId}}\r\n <span class=\"ms-2\" *ngIf=\"source?.houseKeepingStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Entry Time:\r\n {{getFormattedEntryTime(img?.entryTime)}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"my-7 d-flex justify-content-end\"\r\n role=\"group\">\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-outline me-1\"\r\n (click)=\"popupOpen('rejected','houseKeeping')\">Reject</button>\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-primary ms-1\"\r\n (click)=\"popupOpen('approved','houseKeeping')\">Approve</button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfalloffset\"\r\n [totalItems]=\"totalItemsFootfall\" [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"setFootfallpageSize()\" (pageChange)=\"onFootfallPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n\r\n </div>\r\n\r\n </section>\r\n <div *ngIf=\"footfallLoading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"footfallNoData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\" viewBox=\"0 0 94 94\"\r\n fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\" transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No pending items</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no action item required for <span\r\n *ngIf=\"selectedRevopsType?.value==='duplicateImages'\">duplicates</span><span\r\n *ngIf=\"selectedRevopsType?.value==='employee'\">employee/staff</span> <span\r\n *ngIf=\"selectedRevopsType?.value==='houseKeeping'\">houseKeeping</span>\r\n <span *ngIf=\"!selectedRevopsType?.value\">items</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Card Body -->\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"card-body mt-3 py-0\">\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\"\r\n style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-4\">\r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-2\">Original image\r\n </div>\r\n <div class=\"row\">\r\n <!-- ✅ Original Image -->\r\n <div class=\"col-md-4 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n\r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}</div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- 🟨 Duplicate Images (for this original) -->\r\n <div class=\"duplicate-head my-3\">Duplicates <span class=\"badge ms-2\" [ngClass]=\"{\r\n 'badge-light-primary': source?.duplicateStatus === 'pending',\r\n 'badge-light-success': source?.duplicateStatus === 'approved',\r\n 'badge-light-danger': source?.duplicateStatus === 'rejected'\r\n }\">{{source?.duplicateStatus | titlecase}}</span></div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source?.duplicateStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'duplicate',original)\" />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.duplicateStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.duplicateStatus === 'approved' || source?.duplicateStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.employeeStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'employee')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.employeeStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.employeeStatus === 'approved' || source?.employeeStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"source?.junk?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.junk\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <!-- <section *ngIf=\"users?.role !=='user' && users?.userType !=='client'\"> -->\r\n <input *ngIf=\"source?.junkStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'junk')\" />\r\n <!-- </section> -->\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.junkStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.junkStatus === 'approved' || source?.junkStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.junkStatus === 'approved' || source?.junkStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n\r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source?.houseKeepingStatus ==='pending'\" type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'houseKeeping')\" />\r\n\r\n\r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n\r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 my-2\">{{source.storeName}}\r\n <span class=\"ms-2\" *ngIf=\"source?.houseKeepingStatus === 'pending'\">\r\n <svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#F2F4F7\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57918L4.13887 6.45835L3.3472 5.61252C3.20137 5.47502 2.9722 5.46668 2.80553 5.58335C2.64303 5.70418 2.5972 5.91668 2.6972 6.08752L3.6347 7.61252C3.72637 7.75418 3.8847 7.84168 4.06387 7.84168C4.2347 7.84168 4.3972 7.75418 4.48887 7.61252C4.63887 7.41668 7.50137 4.00418 7.50137 4.00418C7.87637 3.62085 7.4222 3.28335 7.1222 3.57502V3.57918Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"11\" viewBox=\"0 0 10 11\" fill=\"none\">\r\n <rect y=\"0.5\" width=\"10\" height=\"10\" rx=\"5\" fill=\"#D1FADF\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M7.1222 3.57919L4.13887 6.45836L3.3472 5.61253C3.20137 5.47503 2.9722 5.46669 2.80553 5.58336C2.64303 5.70419 2.5972 5.91669 2.6972 6.08753L3.6347 7.61253C3.72637 7.75419 3.8847 7.84169 4.06387 7.84169C4.2347 7.84169 4.3972 7.75419 4.48887 7.61253C4.63887 7.41669 7.50137 4.00419 7.50137 4.00419C7.87637 3.62086 7.4222 3.28336 7.1222 3.57503V3.57919Z\"\r\n fill=\"#12B76A\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"!img.isChecked && (source?.houseKeepingStatus === 'approved' || source?.houseKeepingStatus === 'rejected')\"\r\n class=\"ms-2\"><svg style=\"width: 20px;\r\n height: 20px;\" xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1428_59484)\">\r\n <path\r\n d=\"M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n fill=\"#FEE4E2\" />\r\n <path\r\n d=\"M8.09961 5L5.09961 8M5.09961 5L8.09961 8M4.52961 1.5H8.66961L11.5996 4.43V8.57L8.66961 11.5H4.52961L1.59961 8.57V4.43L4.52961 1.5Z\"\r\n stroke=\"#D92D20\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1428_59484\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"\r\n transform=\"translate(0.599609 0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"desc-value ms-2\">Footfall date : {{source.dateString |\r\n date:'dd/MM/yyyy'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfalloffset\"\r\n [totalItems]=\"totalItemsFootfall\" [paginationSizes]=\"paginationSizes\"\r\n [pageSize]=\"setFootfallpageSize()\" (pageChange)=\"onFootfallMultiPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallMultiPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }} Selected Images\r\n </h5>\r\n\r\n <!-- Description -->\r\n <p class=\"mb-3\">\r\n You're about to {{ popupType === 'approved' ? 'approve' : 'reject' }} the following number of selected\r\n images.\r\n </p>\r\n\r\n <!-- Count Box -->\r\n <div class=\"border border-1 rounded p-3 w-50 mb-4\">\r\n <div *ngIf=\"popupvalue === 'employee'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ employeeACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'houseKeeping'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ houseKeepingACCount ||'--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'duplicate'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ duplicateACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'junk'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ junkACCount || '--' }}\r\n </div>\r\n <div class=\"fw-semibold text-muted fs-6 mt-2\">\r\n {{ popupvalue | titlecase }}s\r\n </div>\r\n </div>\r\n\r\n <!-- Action Buttons -->\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType, popupvalue)\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }}\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as LZString from 'lz-string';\r\n\r\n@Component({\r\n selector: 'lib-remove-audit',\r\n templateUrl: './remove-audit.component.html',\r\n styleUrl: './remove-audit.component.scss'\r\n})\r\nexport class RemoveAuditComponent implements OnInit {\r\n\r\n imagelist: any = []\r\n maindata: any;\r\n @Input() data: any;\r\n\r\n constructor(private modalService: NgbModal, public activeModal: NgbActiveModal) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.data) {\r\n this.maindata = this.data\r\n this.imagelist = this.data.mappedid\r\n }\r\n }\r\n removeimage(data: any) {\r\n this.imagelist.splice(this.imagelist.findIndex(({ img_name }: { img_name: string }) => img_name == data.img_name), 1);\r\n this.maindata.mappedid = this.imagelist\r\n this.maindata.count = this.maindata.count - 1\r\n var framedobj: any = {}\r\n framedobj.img_name = data.img_name\r\n framedobj.img_id = data.img_id\r\n framedobj.img_path = data.img_path\r\n framedobj.mappedid = [{\r\n img_name: data.img_name,\r\n img_id: data.img_id,\r\n img_path: data.img_path\r\n }]\r\n framedobj.count = 1\r\n framedobj.selected = false\r\n framedobj.demographic = \"\"\r\n framedobj.dropped = false\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n var foundIndex = customer.findIndex((x: any) => x.img_id == this.maindata.img_id);\r\n if (foundIndex == -1) {\r\n var retag = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n var newindex = retag.findIndex((x: any) => x.img_id == this.maindata.img_id);\r\n retag[newindex] = this.maindata;\r\n retag.push(framedobj)\r\n sessionStorage.setItem('retag', JSON.stringify(retag))\r\n } else {\r\n customer[foundIndex] = this.maindata;\r\n customer.push(framedobj)\r\n const jsonString = JSON.stringify(customer);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n\r\n\r\n console.log(this.maindata,framedobj)\r\n if ('duplicate' in sessionStorage) {\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n console.log(\"🚀 ~ RemoveAuditComponent ~ removeimage ~ filedata:\", filedata)\r\n let filterData = filedata.filter((x: any) => x.img_name != framedobj.img_name)\r\n console.log(filterData)\r\n \r\n sessionStorage.setItem('duplicate', JSON.stringify(filterData))\r\n \r\n }\r\n\r\n\r\n if (this.imagelist.length == 1) {\r\n this.activeModal.close({ reload: true });\r\n }\r\n }\r\n closepopup() {\r\n this.activeModal.close({ reload: true });\r\n }\r\n\r\n}\r\n","<div class=\"modal-body mt-5\">\r\n <div class=\" d-flex\">\r\n <div class=\"d-flex justify-content-between w-100\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"fs-2 text-dark fw-bolder my-3 mx-7\"> <span class=\"card-label fw-bold text-dark\">\r\n {{maindata?.detectionType ? maindata?.detectionType : 'Customer' }} Files -\r\n <span>{{maindata?.count}}</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary me-5\" (click)=\"closepopup()\" data-bs-dismiss=\"modal\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"6\" y=\"17.3137\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(-45 6 17.3137)\"\r\n fill=\"black\"></rect>\r\n <rect x=\"7.41422\" y=\"6\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(45 7.41422 6)\" fill=\"black\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let item of imagelist;let i=index\" style=\"padding: 10px;\">\r\n\r\n <img class=\"mx-3 mb-3 img\" [src]=\"item.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item.img_name}}</div>\r\n <span *ngIf=\"i\" class=\"notify-badge1 cursor-pointer\" (click)=\"removeimage(item)\"><i class=\"fa fa-close\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as LZString from 'lz-string';\r\n@Component({\r\n selector: 'lib-viewcategory',\r\n templateUrl: './viewcategory.component.html',\r\n styleUrl: './viewcategory.component.scss'\r\n})\r\nexport class ViewcategoryComponent {\r\n maindata: any = {}\r\n imagelist: any = []\r\n counter: any = 0;\r\n @Input() data: any\r\n constructor(public modalService: NgbModal, public activeModel: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n if (this.data) {\r\n this.maindata = this.data\r\n }\r\n var saveData = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}')\r\n if (saveData.length > 0) {\r\n this.imagelist = saveData\r\n }\r\n }\r\n removeimage(data: any) {\r\n \r\n this.counter = 0;\r\n let oldData = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}')\r\n let auditData = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(auditData);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n customer.map((cus: any) => {\r\n if (cus.count > 0) {\r\n cus.mappedid = cus.mappedid.filter((x: any) => x.img_name != data.img_name)\r\n cus.count = cus.mappedid.length\r\n }\r\n })\r\n console.log(customer)\r\n const jsonString = JSON.stringify(customer);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n if (this.counter < oldData?.length) {\r\n this.counter = this.counter + 1;\r\n var wrongData = oldData.splice(oldData.findIndex(({ img_name }: { img_name: string }) => img_name == data?.img_name), 1);\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n console.log(wrongData)\r\n if (wrongData.length > 0) {\r\n wrongData[0].selected = false\r\n }\r\n customer.push(wrongData[0])\r\n const jsonString = JSON.stringify(customer);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n sessionStorage.setItem(this.maindata?.type, JSON.stringify(oldData))\r\n var newdata = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}')\r\n if (newdata.length > 0) {\r\n this.imagelist = newdata\r\n } else if (newdata.length == 0) {\r\n this.activeModel.close({ reload: true });\r\n } else {\r\n this.imagelist = []\r\n\r\n }\r\n } else {\r\n\r\n }\r\n \r\n\r\n }\r\n\r\n closepopup() {\r\n console.log(this.counter)\r\n if (this.counter > 0) {\r\n this.activeModel.close({ reload: true });\r\n } else { this.activeModel.close({ reload: false }); }\r\n }\r\n}\r\n","<div class=\"modal-body mt-5\">\r\n <div class=\" d-flex\">\r\n <div class=\"d-flex justify-content-between w-100\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"fs-2 text-dark fw-bolder my-3 mx-7\"> <span class=\"card-label fw-bold text-dark\">\r\n {{maindata?.name ? maindata?.name : 'Customer' }} Files -\r\n <span>{{maindata?.count}}</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary me-5\" (click)=\"closepopup()\" data-bs-dismiss=\"modal\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"6\" y=\"17.3137\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(-45 6 17.3137)\"\r\n fill=\"black\"></rect>\r\n <rect x=\"7.41422\" y=\"6\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(45 7.41422 6)\" fill=\"black\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let item of imagelist;let i=index\" style=\"padding: 10px;\">\r\n\r\n <img class=\"mx-3 mb-3 img\" [src]=\"item.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item.img_name}}</div>\r\n <span class=\"notify-badge1 cursor-pointer\" (click)=\"removeimage(item)\"><i class=\"fa fa-close\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable, OnDestroy, OnInit } from '@angular/core';\r\nimport { interval,Observable,BehaviorSubject,Subscription } from 'rxjs';\r\nimport { Router,ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimerService {\r\n\r\n private timePassed = new BehaviorSubject<number>(0); // Timer count\r\n private subscription: Subscription | null = null; // Timer subscription\r\n private inactivityTimeout: any = null; // Timeout for inactivity\r\n private INACTIVITY_LIMIT = 5000;\r\n\r\n constructor(private route:ActivatedRoute) {\r\n \r\n }\r\n\r\n startTimer(): void {\r\n if (!this.subscription) {\r\n let currentTime = 0;\r\n let timeSpent: any;\r\n if ('timeSpent' in sessionStorage) {\r\n timeSpent = JSON.parse(sessionStorage.getItem('timeSpent') || '{}');\r\n currentTime = timeSpent || 0; // Retrieve the existing timer value\r\n }\r\n \r\n const timer$ = interval(1000); // Emits every 1 second\r\n \r\n this.subscription = timer$.subscribe(() => {\r\n currentTime += 1; \r\n this.timePassed.next(currentTime); \r\n timeSpent = currentTime;\r\n sessionStorage.setItem('timeSpent', JSON.stringify(timeSpent)); // Store the updated object\r\n });\r\n }\r\n this.resetInactivityTimeout();\r\n }\r\n\r\n stopTimer(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n }\r\n\r\n stopTimerAfterInactivity(): void {\r\n this.inactivityTimeout = setTimeout(() => {\r\n this.stopTimer(); // Stop the timer after inactivity\r\n }, this.INACTIVITY_LIMIT);\r\n }\r\n\r\n resetInactivityTimeout(): void {\r\n if (this.inactivityTimeout) {\r\n clearTimeout(this.inactivityTimeout); // Clear the previous inactivity timeout\r\n }\r\n this.stopTimerAfterInactivity(); // Set a new inactivity timeout\r\n }\r\n\r\n getTimePassed(): BehaviorSubject<number> {\r\n return this.timePassed;\r\n }\r\n\r\n clearTimer(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n // this.timePassed.next(0); // Optionally reset the timePassed\r\n // sessionStorage.removeItem('totalfiles'); // Optionally clear session storage\r\n // sessionStorage.removeItem('timeSpent')\r\n }\r\n\r\n resetTimer(): void {\r\n this.timePassed.next(0); // Reset to 0\r\n // this.resetInactivityTimeout(); // Reset inactivity timeout\r\n }\r\n\r\n formatTime(seconds: number): string {\r\n const hours = Math.floor(seconds / 3600);\r\n const minutes = Math.floor((seconds % 3600) / 60);\r\n const secs = seconds % 60;\r\n\r\n return `${this.padZero(hours)}:${this.padZero(minutes)}:${this.padZero(secs)}`;\r\n }\r\n\r\n // Helper method to pad single digit numbers with a leading zero\r\n private padZero(num: number): string {\r\n return num < 10 ? '0' + num : '' + num;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, HostListener, ViewChild, viewChild, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { ActivatedRoute, Route, Router } from '@angular/router';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable, Subject, timer, Subscription } from 'rxjs';\r\nimport { AuditService } from '../../services/audit.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { RemoveAuditComponent } from '../remove-audit/remove-audit.component';\r\nimport * as LZString from 'lz-string';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { takeUntil } from 'rxjs';\r\nimport { TimerService } from '../../services/timer.service';\r\nimport { ViewcategoryComponent } from '../viewcategory/viewcategory.component';\r\n\r\n@Component({\r\n selector: 'lib-start-audit',\r\n templateUrl: './start-audit.component.html',\r\n styleUrl: './start-audit.component.scss'\r\n})\r\nexport class StartAuditComponent implements OnInit, OnDestroy {\r\n junkimage: any;\r\n employeimage: any;\r\n filedetails: any = {};\r\n datareason: any;\r\n limit: any = 500;\r\n nextId: any = ''\r\n spinnerstart = true\r\n submitted: boolean = false;\r\n auditId: any;\r\n customercount = 0;\r\n junkcount = 0;\r\n employeecount = 0;\r\n demographic: any;\r\n id: any = '';\r\n queueName: any = '';\r\n auditmappingdata: any;\r\n totalfile: any = 0;\r\n auditLoading = true;\r\n badge = false;\r\n imagelist: any = \"./assets/tango/Images/loading-img.png\"\r\n selected: any = [];\r\n selectedType: any;\r\n auditLoading1 = true;\r\n Nodata = false;\r\n counter: any = 1;\r\n clickedImages: boolean[] = [];\r\n @ViewChild('confirmDraft') confirmDraft: any;\r\n @ViewChild('confirmerror') confirmerror: any;\r\n Errormsg: any;\r\n storedetails: any;\r\n openmodel: boolean = false;\r\n private readonly destroy$ = new Subject();\r\n getBack: boolean = false;\r\n category: any = []\r\n @HostListener(\"window:scroll\", [])\r\n onScroll(): void {\r\n if ('totalfiles' in sessionStorage) {\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n if (filedata?.filedetails?.nextToken) {\r\n if (Math.ceil(window.innerHeight + window.scrollY) >= document.body.scrollHeight) {//this condition failed when the browser inspect screen open in horizontal\r\n if (this.spinnerstart) {\r\n this.spinnerService.show();\r\n this.getMapping('nextId')\r\n }\r\n }\r\n }\r\n } else {\r\n var result: any = window.confirm(\"Something Went Wrong. Please clear browser cache or Use incognito window\")\r\n if (result) {\r\n \r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n } else {\r\n \r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n handleKeyPress(event: KeyboardEvent) {\r\n if (this.openmodel) return;\r\n // if (event.key === 'g' || event.code === 'KeyG') {\r\n // var group = this.auditmappingdata.filter((data: any) => data.selected === true)\r\n // if (group.length > 0) {\r\n // if (group.length == 1) {\r\n // this.toastr.getErrorToast('Please Select multiple file then add to Group')\r\n // } else {\r\n // let dummyarray = group.shift()\r\n // var groupimages: any = []\r\n // group.forEach((data: any) => {\r\n // this.auditmappingdata.splice(this.auditmappingdata.findIndex(({ img_name }: { img_name: string }) => img_name == data.img_name), 1);\r\n // groupimages.push(data.mappedid[0])\r\n // })\r\n // this.demographic = this.auditmappingdata.filter((data: any) => data.demographic === 'd').length;\r\n // dummyarray.count = dummyarray.count + groupimages.length\r\n // dummyarray.selected = false\r\n // dummyarray.demographic = ''\r\n // dummyarray.mappedid = [...dummyarray.mappedid, ...groupimages]\r\n // const jsonString = JSON.stringify(this.auditmappingdata);\r\n // const compressedData = LZString.compress(jsonString);\r\n // sessionStorage.setItem('audit', compressedData)\r\n // }\r\n\r\n // // this.initial_data_loading()\r\n // } else {\r\n // this.toastr.getErrorToast('Please Select file then add to Group')\r\n // }\r\n // }\r\n const pressed = (event.key || '').toLowerCase();\r\n const matched = this.category.find((m: any) => {\r\n if (!m.key) return false;\r\n const mapKey = m.key.toLowerCase();\r\n // match by event.key (preferred) OR by event.code like 'KeyJ'\r\n return pressed === mapKey || event.code === `Key${mapKey.toUpperCase()}`;\r\n });\r\n \r\n if (!matched) return\r\n if (matched) {\r\n var newData = this.auditmappingdata.filter((data: any) => data.selected === true)\r\n if (newData.length > 0) {\r\n var oldData = JSON.parse(sessionStorage.getItem(matched?.type) || '{}')\r\n if (Number(oldData.length) > 0) {\r\n newData = [...oldData, ...newData]\r\n } else {\r\n newData = newData\r\n }\r\n this.category.map((data: any) => {\r\n if (data.type === matched?.type) {\r\n data.count = newData.length\r\n }\r\n })\r\n sessionStorage.setItem(matched?.type, JSON.stringify(newData))\r\n this.auditmappingdata = this.auditmappingdata.filter((data: any) => data.selected === false)\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n this.toastr.getSuccessToast(`${matched?.type} Added Succesfully!`);\r\n } else {\r\n this.toastr.getErrorToast(`Please Select file then add to ${matched?.type} `)\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n constructor(\r\n private excel: ExcelService,\r\n private auditservice: AuditService,\r\n private toastr: ToastService,\r\n private router: Router, private cd: ChangeDetectorRef,\r\n private modalService: NgbModal, private timerService: TimerService,\r\n private spinnerService: NgxSpinnerService, private route: ActivatedRoute\r\n ) {\r\n this.selectedType = this.route.snapshot.paramMap.get('type')\r\n }\r\n destroy = new Subject();\r\n showDialog = false;\r\n timePassed: number = 0;\r\n subscription: Subscription | null = null;\r\n formattedTime: string = '00:00:00';\r\n\r\n notice = 'session expired';\r\n showNotice = false;\r\n rxjsTimer: Subscription[] = [];\r\n\r\n ngOnInit(): void {\r\n\r\n this.getAuditConfig()\r\n if ('user-info' in localStorage) {\r\n var user = JSON.parse(localStorage.getItem('user-info') || '{}')\r\n this.id = user._id\r\n }\r\n if ('audit' in sessionStorage) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var auditdata = JSON.parse(decompressedData || '{}')\r\n if (auditdata.length > 0) {\r\n this.auditmappingdata = auditdata;\r\n this.customercount = this.auditmappingdata.length\r\n }\r\n this.auditLoading = false;\r\n this.setTimer();\r\n } else {\r\n var filedata\r\n if ('totalfiles' in sessionStorage) {\r\n filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.getMapping()\r\n }\r\n }\r\n }\r\n\r\n setTimer() {\r\n this.subscription = this.timerService.getTimePassed().subscribe(time => {\r\n this.timePassed = time;\r\n this.formattedTime = this.timerService.formatTime(time);\r\n this.cd.detectChanges();\r\n });\r\n this.timerService.startTimer();\r\n document.addEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.addEventListener('click', this.handleGlobalMouseEvent);\r\n document.addEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.addEventListener('scroll', this.handleGlobalMouseEvent);\r\n }\r\n\r\n handleGlobalMouseEvent = (): void => {\r\n this.timerService.startTimer();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n document.removeEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.removeEventListener('click', this.handleGlobalMouseEvent);\r\n document.removeEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.removeEventListener('scroll', this.handleGlobalMouseEvent);\r\n this.timerService.clearTimer()\r\n }\r\n\r\n initial_data_loading() {\r\n if ('audit' in sessionStorage) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var auditdata = JSON.parse(decompressedData || '{}')\r\n if (auditdata.length > 0) {\r\n this.auditmappingdata = auditdata;\r\n this.demographic = this.auditmappingdata.filter((data: any) => data.demographic === 'd').length;\r\n this.customercount = this.auditmappingdata.length\r\n this.auditLoading = false;\r\n } else {\r\n this.auditmappingdata = []\r\n this.customercount = 0\r\n }\r\n }\r\n\r\n\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n data.count = count?.length\r\n })\r\n if ('retag' in sessionStorage) {\r\n var retagiamge = JSON.parse(sessionStorage.getItem('retag') || '[]')\r\n if (retagiamge.length > 0) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n customer = [...customer, ...retagiamge]\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n sessionStorage.removeItem('retag')\r\n }\r\n }\r\n if ('totalfiles' in sessionStorage) {\r\n var files = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.totalfile = files?.totalfiles\r\n this.filedetails = files?.filedetails\r\n this.storedetails = files?.storedetails\r\n }\r\n }\r\n toggleImage(img_name: any) {\r\n this.selected.push(img_name)\r\n this.auditmappingdata.map((data: any) => {\r\n\r\n if (data.img_name == img_name) {\r\n if (data.mappedid.length == 1) {\r\n data.selected = !data.selected\r\n } else {\r\n data.dropped = !data.dropped\r\n }\r\n }\r\n })\r\n }\r\n getAuditConfig() {\r\n\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.auditservice.getAuditconfig(filedata?.filedetails?.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n \r\n this.category = res.data.footfallDirectoryConfigs.taggingLimitation\r\n this.category.map((data: any) => {\r\n if (data?.type in sessionStorage) {\r\n\r\n } else {\r\n sessionStorage.setItem(data.type, JSON.stringify([]))\r\n }\r\n })\r\n this.initial_data_loading()\r\n\r\n }\r\n }\r\n })\r\n }\r\n getMapping(nextId?: any) {\r\n this.auditLoading = true;\r\n this.spinnerstart = false\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n let tickettype = sessionStorage.getItem('ticketType')\r\n console.log(\"🚀 ~ StartAuditComponent ~ getMapping ~ tickettype:\", tickettype)\r\n let payload = {\r\n storeId: filedata?.filedetails?.storeId,\r\n limit: this.limit,\r\n nextId: filedata?.filedetails?.nextToken ? filedata?.filedetails?.nextToken : '',\r\n Date: filedata?.filedetails?.Date,\r\n count: filedata?.totalfiles,\r\n tickettype:tickettype\r\n }\r\n\r\n\r\n this.auditservice.getAuditMapping(payload).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.storedetails = res?.data;\r\n setTimeout(() => {\r\n if (res?.data?.file?.nextToken) {\r\n this.getMapping(res?.data?.file?.nextToken)\r\n }\r\n }, 100)\r\n if (res?.data?.isDraft) {\r\n sessionStorage.setItem('timeSpent', JSON.stringify(res?.data?.timeSpent));\r\n this.spinnerstart = false;\r\n\r\n this.category.map((data: any) => {\r\n\r\n let filterData = res?.data?.result.filter((x: any) => x.type === data.type)\r\n \r\n sessionStorage.setItem(data.type, JSON.stringify(filterData[0].value))\r\n })\r\n let customerData = res?.data?.result.filter((x: any) => x.type === 'customer')\r\n \r\n this.auditmappingdata = customerData[0].value\r\n const jsonString = JSON.stringify(customerData[0].value);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n\r\n\r\n this.totalfile = res?.data?.count;\r\n this.filedetails = res?.data?.file;\r\n\r\n\r\n this.category.map((data: any) => {\r\n \r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n data.count = count?.length\r\n })\r\n\r\n if (res?.data?.result?.retag_image?.length > 0) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n customer = [...customer, ...res.data.result.retag_image]\r\n this.auditmappingdata = customer;\r\n const jsonString = JSON.stringify(customer);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n\r\n var totalfiles = {\r\n \"storedetails\": {\r\n \"storeName\": res?.data?.storeName,\r\n \"address\": res?.data?.address\r\n },\r\n \"totalfiles\": this.storedetails?.count,\r\n \"auditId\": res?.data.file?.auditId,\r\n \"filedetails\": {\r\n \"storeId\": this.storedetails?.file?.storeId,\r\n \"Date\": res?.data?.file?.Date,\r\n \"userId\": res?.data?.file?.userId,\r\n \"clientId\": res?.data?.file?.clientId,\r\n }\r\n }\r\n sessionStorage.setItem('totalfiles', JSON.stringify(totalfiles))\r\n this.auditLoading = false;\r\n this.setTimer();\r\n } else {\r\n this.spinnerstart = false\r\n this.spinnerService.hide();\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n if (filedata?.filedetails?.nextToken) {\r\n this.auditLoading = false;\r\n this.auditId = res.data.file?.auditId;\r\n this.totalfile = res?.data?.count;\r\n this.filedetails = res?.data?.file;\r\n this.filedetails.zoneName = res?.data?.file?.zoneName;\r\n if ('audit' in sessionStorage) {\r\n if (this.auditmappingdata?.length > 0) {\r\n this.auditmappingdata = [...this.auditmappingdata, ...res?.data?.result]\r\n this.customercount = this.auditmappingdata?.length\r\n }\r\n }\r\n } else {\r\n this.auditLoading = false;\r\n this.auditLoading1 = false;\r\n this.filedetails = res?.data?.file;\r\n this.auditId = res.data.file?.auditId;\r\n this.auditmappingdata = res?.data?.result;\r\n this.totalfile = res?.data?.count;\r\n this.filedetails.queueName = this.queueName;\r\n this.filedetails.zoneName = res?.data?.file?.zoneName;\r\n }\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n let obj = {\r\n totalfiles: this.totalfile,\r\n filedetails: this.filedetails,\r\n auditId: this.auditId,\r\n\r\n storedetails: {\r\n \"storeName\": res?.data?.storeName,\r\n \"address\": res?.data?.address\r\n },\r\n }\r\n sessionStorage.setItem('totalfiles', JSON.stringify(obj))\r\n this.spinnerstart = true\r\n this.setTimer();\r\n }\r\n\r\n } else if (!res || res.code == 204) {\r\n if (this.counter < 6) {\r\n this.counter = this.counter + 1;\r\n this.getMapping()\r\n this.showDialog = true;\r\n } else {\r\n this.auditLoading = false;\r\n if (!nextId) { this.Nodata = true } else { }\r\n this.submitted = true;\r\n this.destroy.next(true);\r\n this.destroy.complete();\r\n this.showNotice = true;\r\n }\r\n }\r\n\r\n },\r\n error: (err: any) => {\r\n \r\n if (err?.status == 404) {\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n if (filedata.filedetails && filedata.filedetails.nextToken) {\r\n delete filedata.filedetails.nextToken;\r\n sessionStorage.setItem('totalfiles', JSON.stringify(filedata));\r\n this.getMapping('')\r\n }\r\n } else {\r\n this.toastr.getErrorToast(err?.error?.message)\r\n }\r\n }\r\n })\r\n }\r\n\r\n removeaudit(data: any) {\r\n const modalRef = this.modalService.open(RemoveAuditComponent, {\r\n size: 'lg',\r\n centered: true,\r\n backdrop: 'static',\r\n keyboard: false\r\n })\r\n modalRef.componentInstance.data = data,\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res && res?.reload) {\r\n this.initial_data_loading()\r\n }\r\n })\r\n }\r\n allowDrop(event: any) {\r\n event.preventDefault();\r\n }\r\n\r\n dragImage(event: any) {\r\n event.dataTransfer.setData('text/plain', event.target.id);\r\n }\r\n\r\n dropImage(event: any) {\r\n event.preventDefault();\r\n const draggedImageId = event.dataTransfer.getData('text/plain');\r\n const draggedImage = document.getElementById(draggedImageId);\r\n event.target.appendChild(draggedImage);\r\n const dropZone = event.target;\r\n this.auditmappingdata.map((data: any, index: number) => {\r\n if (data.img_name == dropZone.id) {\r\n if (data.mappedid.length > 0) {\r\n var findone = this.auditmappingdata.filter((data: any) => data.img_name == draggedImageId)\r\n \r\n if (findone.length > 0) {\r\n data.count = data.count + findone[0].count\r\n data.mappedid = [...data.mappedid, ...findone[0].mappedid]\r\n }\r\n if ('duplicate' in sessionStorage) {\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n let filteredData = findone[0].mappedid.filter((data: any) => data.img_id === findone[0].img_id)\r\n let insertObj: any = {}\r\n insertObj.img_id = filteredData[0]?.img_id\r\n insertObj.img_name = filteredData[0]?.img_name\r\n insertObj.img_path = filteredData[0]?.img_path\r\n insertObj.mappedid = [\r\n {\r\n img_id: filteredData[0]?.img_id,\r\n img_name: filteredData[0]?.img_name,\r\n img_path: filteredData[0]?.img_path\r\n }\r\n ]\r\n\r\n \r\n filedata = [...filedata, ...[insertObj]]\r\n \r\n sessionStorage.setItem('duplicate', JSON.stringify(filedata))\r\n }\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n data.count = count?.length\r\n })\r\n } else {\r\n data.count = data.count + 1\r\n data.mappedid.push(draggedImageId)\r\n }\r\n }\r\n })\r\n\r\n\r\n\r\n this.auditmappingdata.splice(this.auditmappingdata.findIndex(({ img_name }: { img_name: string }) => img_name == draggedImageId), 1);\r\n this.auditmappingdata.map((data: any) => data.selected = false)\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n\r\n dragStart(event: DragEvent) {\r\n const target = event.target as HTMLImageElement;\r\n event.dataTransfer?.setData('text/plain', target.id);\r\n }\r\n\r\n Reviewdata() {\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n if (filedata?.filedetails?.nextToken) {\r\n this.toastr.getErrorToast('Scroll Down to bottom load the files before Move to Next page!');\r\n } else {\r\n this.submitted = true;\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: customer ? customer : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '[]');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n var inserobj: any = {\r\n userCommands: this.datareason ? this.datareason : \"\",\r\n customerCount: customer ? customer?.length : 0,\r\n storeId: totalfile?.filedetails?.storeId,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails.auditId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n retagCount: 0,\r\n timeSpent: this.timePassed,\r\n retagImage: [],\r\n draftedData: storedData\r\n }\r\n \r\n this.auditservice.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.submitted = false;\r\n this.router.navigate([\"/manage/tickets/mapping-list\"])\r\n } if (res && res.code == 203) {\r\n this.Errormsg = res.message\r\n const modalRef = this.modalService.open(this.confirmerror, { centered: true })\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n })\r\n }\r\n },\r\n error: (err: any) => {\r\n if (err?.code == 400 || err?.code == 204 || err?.code == 404 || err?.code == 500) {\r\n this.Errormsg = err.message\r\n const modalRef = this.modalService.open(this.confirmerror, { centered: true })\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.submitted = true;\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n viewcategory(data: any) {\r\n const modalRef = this.modalService.open(ViewcategoryComponent, {\r\n size: 'lg',\r\n centered: true,\r\n backdrop: 'static',\r\n keyboard: false\r\n })\r\n modalRef.componentInstance.data = data\r\n modalRef.componentInstance.imageList = data,\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res && res?.reload) {\r\n this.initial_data_loading()\r\n }\r\n })\r\n }\r\n async savedraft() {\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n if (filedata?.filedetails?.nextToken) {\r\n this.toastr.getErrorToast('Scroll Down to bottom load the files before save!');\r\n } else {\r\n this.openmodel = true;\r\n const modalRef = this.modalService.open(this.confirmDraft, {\r\n centered: true, size: 'md'\r\n })\r\n modalRef.result.then((result) => {\r\n \r\n\r\n if (result === 'isDenied') {\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: customer ? customer : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '[]');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n\r\n var inserobj: any = {\r\n userCommands: this.datareason ? this.datareason : \"\",\r\n // userId: user?.user,\r\n storeId: totalfile?.filedetails?.storeId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails.auditId,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n customerCount: customer ? customer?.length : 0,\r\n retagCount: 0,\r\n timeSpent: this.timePassed,\r\n retagImage: [],\r\n draftedData: storedData\r\n }\r\n if (inserobj?.auditId && inserobj?.auditId != '') {\r\n this.auditservice.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.submitted = false;\r\n this.toastr.getSuccessToast(res?.data?.result)\r\n } else {\r\n if (res && res.code == 203) {\r\n this.Errormsg = res.error;\r\n const modalRef = this.modalService.open(this.confirmerror)\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n })\r\n }\r\n }\r\n },\r\n error: (err: any) => {\r\n if (err?.code == 400 || err?.code == 204 || err?.code == 404 || err?.code == 500) {\r\n this.toastr.getErrorToast('File not saved!')\r\n }\r\n }\r\n })\r\n } else {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n\r\n } else if (result === 'isConfirmed') {\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: this.auditmappingdata ? this.auditmappingdata : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '[]');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n var inserobj: any = {\r\n userCommands: this.datareason ? this.datareason : \"\",\r\n customerCount: customer ? customer?.length : 0,\r\n storeId: totalfile?.filedetails?.storeId,\r\n auditType: totalfile?.filedetails?.type,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails.auditId,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n retagCount: 0,\r\n timeSpent: this.timePassed,\r\n retagImage: [],\r\n draftedData: storedData\r\n }\r\n if (inserobj?.auditId && inserobj.auditId !== '') {\r\n\r\n this.auditservice.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.submitted = false;\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n } else {\r\n if (res && res.code == 203) {\r\n this.Errormsg = res.error;\r\n const modalRef = this.modalService.open(this.confirmerror)\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n })\r\n }\r\n\r\n }\r\n },\r\n error: (err: any) => {\r\n if (err?.code == 400 || err?.code == 204 || err?.code == 404 || err?.code == 500) {\r\n this.toastr.getErrorToast('File not saved!')\r\n }\r\n }\r\n })\r\n } else {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n } else {\r\n\r\n }\r\n })\r\n modalRef.result.finally(() => {\r\n this.openmodel = false;\r\n });\r\n }\r\n }\r\n\r\n backtotickets() {\r\n this.savedraft();\r\n // this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n\r\n }\r\n cameraPreview() {\r\n // const ModalRef = this.modalService.open(CameraPreviewComponent,{\r\n // centered: true,\r\n // size:'lg'\r\n // })\r\n }\r\n}\r\n","<div class=\"mb-5 d-flex justify-content-between align-items-center w-100\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"border w-40px bg-white cursor-pointer me-5 text-center\" (click)=\"backtotickets()\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15.8334 10H4.16669M4.16669 10L10 15.8334M4.16669 10L10 4.16669\" stroke=\"#344054\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <a (click)=\"cameraPreview()\"><span *ngIf=\"filedetails?.Date\">{{filedetails?.Date}}</span><span> -\r\n </span><span *ngIf=\"filedetails?.storeId\">{{filedetails?.storeId}}</span><span> - </span><span\r\n *ngIf=\"storedetails?.storeName\">{{storedetails?.storeName}}</span><span *ngIf=\"selectedType ==='zone'\">\r\n - </span><span\r\n *ngIf=\"filedetails?.zoneName && selectedType ==='zone'\">{{filedetails?.zoneName}}</span><span\r\n *ngIf=\"storedetails?.address\"> | {{storedetails?.address}} </span></a>\r\n </div>\r\n <div class=\"rounded-3 d-flex align-items-center bg-timer\">\r\n <span class=\"me-3 text-timer fw-semibold\">{{ formattedTime }}</span>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.16667 2.87071C9.16667 2.62023 9.26617 2.38001 9.44329 2.20289C9.62041 2.02577 9.86063 1.92627 10.1111 1.92627H13.8889C14.1394 1.92627 14.3796 2.02577 14.5567 2.20289C14.7338 2.38001 14.8333 2.62023 14.8333 2.87071C14.8333 3.1212 14.7338 3.36142 14.5567 3.53854C14.3796 3.71565 14.1394 3.81516 13.8889 3.81516H12.9444V5.07442L12.9432 5.12605C14.5396 5.30097 16.0528 5.92787 17.3053 6.93308L17.3141 6.92553L18.2585 5.98108C18.374 5.85676 18.5208 5.76588 18.6835 5.71801C18.8463 5.67014 19.019 5.66706 19.1833 5.70908C19.3477 5.75111 19.4977 5.83669 19.6175 5.9568C19.7373 6.07692 19.8225 6.22713 19.8641 6.3916C19.906 6.55578 19.903 6.72823 19.8554 6.89085C19.8077 7.05348 19.7172 7.20029 19.5933 7.3159L18.6489 8.26034L18.6413 8.26915C19.6403 9.51974 20.2658 11.027 20.446 12.6174C20.6261 14.2078 20.3536 15.8167 19.6597 17.2591C18.9658 18.7014 17.8788 19.9185 16.5237 20.7704C15.1686 21.6222 13.6006 22.0741 12 22.0741C10.3994 22.0741 8.83137 21.6222 7.47629 20.7704C6.12122 19.9185 5.03419 18.7014 4.3403 17.2591C3.64641 15.8167 3.37386 14.2078 3.55402 12.6174C3.73418 11.027 4.35973 9.51974 5.35867 8.26915L5.35111 8.26034L4.40667 7.3159C4.23964 7.1369 4.14865 6.90003 4.15287 6.65524C4.1571 6.41045 4.25622 6.17687 4.42934 6.00375C4.60246 5.83063 4.83604 5.73151 5.08083 5.72728C5.32562 5.72306 5.56249 5.81405 5.74149 5.98108L6.68593 6.92553L6.69474 6.93308C7.94681 5.92809 9.45963 5.3012 11.0556 5.12605V3.81516H10.1111C9.86063 3.81516 9.62041 3.71565 9.44329 3.53854C9.26617 3.36142 9.16667 3.1212 9.16667 2.87071ZM12 20.1855C13.7535 20.1854 15.4352 19.4886 16.675 18.2485C17.9148 17.0085 18.6113 15.3267 18.6111 13.5732C18.6109 11.8196 17.9142 10.138 16.6741 8.89813C15.4341 7.65831 13.7523 6.96188 11.9987 6.96204C10.2452 6.96221 8.56354 7.65896 7.32372 8.89902C6.0839 10.1391 5.38747 11.8209 5.38763 13.5744C5.3878 15.328 6.08455 17.0096 7.32461 18.2494C8.56467 19.4893 10.2465 20.1857 12 20.1855ZM12.4899 11.7485L14.1647 10.0737C14.2517 9.98343 14.3559 9.91143 14.4711 9.86188C14.5863 9.81233 14.7102 9.78622 14.8356 9.78507C14.9611 9.78392 15.0854 9.80776 15.2015 9.85519C15.3176 9.90262 15.4231 9.9727 15.5118 10.0613C15.6005 10.15 15.6707 10.2554 15.7182 10.3714C15.7658 10.4875 15.7897 10.6118 15.7887 10.7372C15.7877 10.8626 15.7617 10.9866 15.7122 11.1018C15.6628 11.2171 15.5909 11.3213 15.5007 11.4085L13.8259 13.0846C13.9003 13.3645 13.9095 13.6579 13.8526 13.942C13.7958 14.226 13.6745 14.4933 13.4981 14.7231C13.3217 14.9529 13.0949 15.1391 12.8352 15.2675C12.5754 15.3958 12.2897 15.4628 12 15.4633C11.7327 15.461 11.4688 15.4019 11.226 15.29C10.9832 15.1781 10.767 15.0159 10.5916 14.8141C10.4162 14.6123 10.2857 14.3755 10.2087 14.1195C10.1316 13.8635 10.1099 13.594 10.1448 13.329C10.1798 13.0639 10.2706 12.8093 10.4114 12.582C10.5522 12.3547 10.7396 12.1599 10.9613 12.0104C11.183 11.861 11.4339 11.7604 11.6974 11.7152C11.9609 11.6701 12.231 11.6814 12.4899 11.7485Z\"\r\n fill=\"black\" />\r\n </svg></span>\r\n </div>\r\n</div>\r\n<div class=\"card py-2\">\r\n <div class=\"card-header align-items-center border-0 overflow\">\r\n <div class=\"card-title border-0\">\r\n <!-- <div class=\"w-50px h-50px badge-light-primary text-center align-content-center rounded-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\">\r\n <path d=\"M21 15.1667V23.3334H4.66665V7.00004H10.5233C10.5816 6.17171 10.78 5.39004 11.0833 4.66671H4.66665C3.38331 4.66671 2.33331 5.71671 2.33331 7.00004V23.3334C2.33331 24.6167 3.38331 25.6667 4.66665 25.6667H21C22.2833 25.6667 23.3333 24.6167 23.3333 23.3334V17.5L21 15.1667ZM19.25 21H6.41665L9.62498 16.8817L11.9116 19.635L15.12 15.505L19.25 21ZM22.5166 10.3717C23.03 9.55504 23.3333 8.61004 23.3333 7.58337C23.3333 4.67837 20.9883 2.33337 18.0833 2.33337C15.1783 2.33337 12.8333 4.67837 12.8333 7.58337C12.8333 10.4884 15.1783 12.8334 18.0716 12.8334C19.0983 12.8334 20.055 12.53 20.86 12.0167L24.5 15.6567L26.1566 14L22.5166 10.3717ZM18.0833 10.5C17.3098 10.5 16.5679 10.1927 16.0209 9.64577C15.4739 9.09879 15.1666 8.35692 15.1666 7.58337C15.1666 6.80983 15.4739 6.06796 16.0209 5.52098C16.5679 4.974 17.3098 4.66671 18.0833 4.66671C18.8569 4.66671 19.5987 4.974 20.1457 5.52098C20.6927 6.06796 21 6.80983 21 7.58337C21 8.35692 20.6927 9.09879 20.1457 9.64577C19.5987 10.1927 18.8569 10.5 18.0833 10.5Z\" fill=\"#00A3FF\"/>\r\n </svg> \r\n </div> -->\r\n <div class=\"d-grid\">\r\n <div class=\"card-label ms-2\"><span *ngIf=\"filedetails?.type\">{{filedetails?.type ? filedetails?.type :\r\n ''}}</span>\r\n </div>\r\n <div *ngIf=\"filedetails\" class=\"sub-text mt-2\">\r\n <span class=\"badge badge-light-default\"><svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_14508_18583)\">\r\n <path\r\n d=\"M2.5 10.5H9.5C10.0523 10.5 10.5 10.0523 10.5 9.5V2.5C10.5 1.94772 10.0523 1.5 9.5 1.5H2.5C1.94772 1.5 1.5 1.94772 1.5 2.5V9.5C1.5 10.0523 1.94772 10.5 2.5 10.5ZM2.5 10.5L8 5L10.5 7.5M5 4.25C5 4.66421 4.66421 5 4.25 5C3.83579 5 3.5 4.66421 3.5 4.25C3.5 3.83579 3.83579 3.5 4.25 3.5C4.66421 3.5 5 3.83579 5 4.25Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_14508_18583\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>{{totalfile ? totalfile : 0}} After Count</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align align-items-center gap-2\">\r\n <div class=\"border border-1 rounded-3 w-auto h-45px px-2 d-flex justify-content-between align-items-center\"\r\n *ngFor=\"let item of category\">\r\n <div class=\"h-100 align-content-center text-nowrap fw-semibold cursor-pointer mx-2\" (click)=\"viewcategory(item)\">\r\n <span class=\"badge badge-light-primary me-2\">{{item?.count}}</span>{{item?.name}}<span class=\" ms-3 badge badge-light-primary me-5 text-capitalize\">{{item?.key}}</span></div> \r\n </div>\r\n <!-- <div class=\"border border-1 rounded-3 w-auto h-45px px-4 d-flex justify-content-between align-items-center\">\r\n <div class=\"px-5 h-100 align-content-center text fw-semibold pe-none\"><span\r\n class=\"badge badge-light-primary me-5\">{{auditmappingdata?.length ? auditmappingdata?.length : 0\r\n }}</span>Unique Customers</div>\r\n </div> -->\r\n <div *ngIf=\"!auditLoading && !Nodata\" class=\"card-toolbar text-nowrap ms-5\">\r\n <button type=\"button\" class=\"btn btn-sm btn-default btn-outline ms-3 py-2\"\r\n [disabled]=\"!employeecount && !junkcount && (auditmappingdata?.length === totalfile)\"\r\n (click)=\"savedraft()\">Save Draft</button>\r\n <button type=\"submit\" class=\"btn btn-sm btn-primary py-2 ms-3\" [disabled]=\"submitted\"\r\n (click)=\"Reviewdata()\">Review <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M4.16666 9.99996H15.8333M15.8333 9.99996L9.99999 4.16663M15.8333 9.99996L9.99999 15.8333\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- scroll-top -->\r\n<div class=\"card mt-5\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div *ngIf=\"auditLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <ng-container *ngIf=\"Nodata\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this conversion funnel</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- scroll-y h-500px -->\r\n <div *ngIf=\"!auditLoading\" class=\"col-md-12 item \">\r\n\r\n <div class=\"item\" *ngFor=\"let item of auditmappingdata;let i=index\" style=\"padding: 5px 10px;\">\r\n\r\n <img class=\"mx-3 my-3 img\" [src]=\"item?.img_path\" id=\"{{item?.img_name}}\" alt=\"Image\"\r\n (dragover)=\"allowDrop($event)\" (drop)=\"dropImage($event)\" draggable=\"true\"\r\n (dragstart)=\"dragImage($event)\" (click)=\"toggleImage(item?.img_name )\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item?.img_name}}</div>\r\n\r\n <span *ngIf=\"item?.selected\" class=\"notify-badge1\"><i class=\"fa fa-check\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i></span>\r\n <!-- (click)=\"removeaudit(item)\" -->\r\n <span class=\"notify-badge cursor-pointer\" (click)=\"removeaudit(item)\" *ngIf=\"item?.count>1\">{{item?.count}}</span>\r\n </div>\r\n\r\n <ngx-spinner size=\"medium\" type=\"ball-atom\"></ngx-spinner>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmDraft let-modal>\r\n <div class=\"card h-auto p-10\">\r\n <div class=\"card-header d-grid p-0 border-0\">\r\n <span><img src=\"./assets/tango/Images/Successtoast.png\"></span>\r\n <!-- <span *ngIf=\"getBack\"><img src=\"./assets/tango/custompopup-Icons/danger-icon.svg\"></span> -->\r\n <div class=\"card-label mt-5\">Save Changes</div>\r\n <!-- <div *ngIf=\"getBack\" class=\"card-label mt-5\">Unsaved Changes</div> -->\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <p class=\"text-sub mt-5\">Do you want to draft the file?</p>\r\n <!-- <p *ngIf=\"getBack\" class=\"text-sub mt-5\">Do you want to get back?</p> -->\r\n <textarea class=\"form-control mt-5\" [(ngModel)]=\"datareason\"\r\n placeholder=\"Type your reason (Required) ...\"></textarea>\r\n <div class=\"w-100 d-flex mt-10\">\r\n <button class=\"btn btn-outline w-50 me-2 fw-bold\" [disabled]=\"!datareason\"\r\n (click)=\"modal.close('isConfirmed')\">Save & Exit</button>\r\n <button class=\"btn btn-primary savebtn w-50 ms-2\" (click)=\"modal.close('isDenied')\">save &\r\n Continue</button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #confirmerror let-modal>\r\n <div class=\"w-400px h-auto p-10 card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-label\">{{Errormsg}}</div>\r\n </div>\r\n <div class=\"card-body mt-5\">\r\n <div class=\"w-100 d-flex mt-10\">\r\n <button class=\"btn btn-outline w-50 me-2\" (click)=\"modal.close('isDenied')\">Cancel</button>\r\n <button class=\"btn btn-primary w-50 ms-2\" (click)=\"modal.close('isConfirmed')\">Confirm</button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnInit, ViewChild, Input, viewChild, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AuditService } from '../../services/audit.service';\r\nimport * as LZString from 'lz-string';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil, Subscription } from 'rxjs';\r\nimport { TimerService } from '../../services/timer.service';\r\nimport { TicketService } from '../../services/ticket.service';\r\n\r\n@Component({\r\n selector: 'lib-audit-report-popup',\r\n templateUrl: './audit-report-popup.component.html',\r\n styleUrl: './audit-report-popup.component.scss'\r\n})\r\nexport class AuditReportPopupComponent implements OnInit, OnDestroy {\r\n\r\n Retagjunkcount: any = 0;\r\n Retagemployeecount: any = 0;\r\n Retagcustomercount: any = 0;\r\n demographicCount: any;\r\n retagjunkdata: any;\r\n retagemployeedata: any;\r\n retagcustomerdata: any;\r\n totalfiles: any;\r\n auth: boolean = false;\r\n submitauth: boolean = false;\r\n Errormsg: any = '';\r\n @Input() selectedType: any;\r\n @ViewChild('confirmerror') confirmerror: any;\r\n private readonly destroy$ = new Subject();\r\n timePassed: number = 0;\r\n subscription: Subscription | null = null;\r\n formattedTime: string = '00:00:00';\r\n category: any = []\r\n centralOpsData: any;\r\n tangoData: any;\r\n tangoAccuracy:any=''\r\n constructor(public modalService: NgbModal,\r\n public activeModal: NgbActiveModal,\r\n private service: TicketService,\r\n public router: Router, private timerService: TimerService, private cd: ChangeDetectorRef,\r\n public apiservice: AuditService, private route: ActivatedRoute, private toast: ToastService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.totalfiles = filedata;\r\n this.apiservice.getAuditconfig(filedata?.filedetails?.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.category = res.data.footfallDirectoryConfigs.taggingLimitation\r\n\r\n\r\n this.category.map((data: any) => {\r\n let filterData = JSON.parse(sessionStorage.getItem(data?.type) || '{}')\r\n data.value = filterData\r\n data.count = data?.value?.length\r\n })\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ ngOnInit ~ this.category:\", this.category)\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n this.Retagcustomercount = customer.length\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ ngOnInit ~ this.totalfiles:\", this.totalfiles)\r\n let input = {\r\n storeId: this.totalfiles?.filedetails?.storeId,\r\n dateString: this.totalfiles?.filedetails?.Date,\r\n }\r\n this.service\r\n .checkTicketExists(input).pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code === 200) {\r\n console.log(res.data)\r\n let ticketList = res?.data\r\n let findstoreticket = ticketList.filter((data: any) => data?._source?.type === 'store' && data?._source?.status != \"Closed\")[0]?._source\r\n if (findstoreticket && findstoreticket?.mappingInfo.length > 0) {\r\n this.centralOpsData = findstoreticket.mappingInfo.filter((data: any) => data.type != \"tangoreview\")[0]\r\n console.log(\"🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.centralOpsData:\", this.centralOpsData)\r\n }\r\n this.tangoAccuracy = Math.round((this.Retagcustomercount/this.totalfiles?.totalfiles)*100)\r\n this.tangoData ={\r\n revicedFootfall:this.Retagcustomercount,\r\n revicedPerc:this.tangoAccuracy+\"%\"\r\n }\r\n }\r\n }\r\n })\r\n\r\n\r\n\r\n\r\n }\r\n }\r\n })\r\n this.setTimer();\r\n }\r\n\r\n setTimer() {\r\n this.subscription = this.timerService.getTimePassed().subscribe(time => {\r\n this.timePassed = time;\r\n this.formattedTime = this.timerService.formatTime(time);\r\n this.cd.detectChanges();\r\n });\r\n this.timerService.startTimer();\r\n document.addEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.addEventListener('click', this.handleGlobalMouseEvent);\r\n document.addEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.addEventListener('scroll', this.handleGlobalMouseEvent);\r\n }\r\n\r\n handleGlobalMouseEvent = (): void => {\r\n this.timerService.startTimer();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n document.removeEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.removeEventListener('click', this.handleGlobalMouseEvent);\r\n document.removeEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.removeEventListener('scroll', this.handleGlobalMouseEvent);\r\n this.timerService.clearTimer()\r\n }\r\n\r\n changebrand() {\r\n this.auth = true;\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n\r\n let junkimage: any = [];\r\n let employeeimage: any = [];\r\n let customerimage: any = [];\r\n\r\n this.retagjunkdata.map((e: any) => {\r\n delete e.img_path; delete e.selected; delete e.count;\r\n delete e.dropped; delete e.mappedid;\r\n junkimage.push(e);\r\n })\r\n this.retagemployeedata.map((e: any) => {\r\n delete e.img_path; delete e.selected; delete e.count;\r\n delete e.dropped; delete e.mappedid;\r\n employeeimage.push(e);\r\n })\r\n\r\n this.retagcustomerdata.map((e: any) => {\r\n\r\n if (e.count > 1) {\r\n delete e.img_path;\r\n delete e.selected;\r\n delete e.dropped;\r\n var result = e.mappedid;\r\n e.mappedid = result\r\n e.count = result.length\r\n e.mappedid.forEach((e1: any) => { delete e1.img_path })\r\n customerimage.push(e)\r\n }\r\n if (e.demographic === 'd' && e.count === 1) {\r\n delete e.img_path;\r\n delete e.selected;\r\n delete e.dropped;\r\n var result = e.mappedid;\r\n e.mappedid = result\r\n e.count = result.length\r\n e.mappedid.forEach((e1: any) => { delete e1.img_path })\r\n customerimage.push(e)\r\n }\r\n })\r\n var obj: any = {\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails?.auditId,\r\n storeId: totalfile?.filedetails?.store_id,\r\n auditType: totalfile?.filedetails?.type,\r\n fileDate: totalfile?.filedetails?.file_date,\r\n beforeCount: totalfile?.totalfiles,\r\n junkCount: this.Retagjunkcount,\r\n junk: junkimage ? junkimage : [],\r\n employeeCount: this.Retagemployeecount,\r\n employee: employeeimage ? employeeimage : [],\r\n customerCount: this.Retagcustomercount,\r\n zoneName: totalfile?.filedetails?.zoneName ? totalfile?.filedetails?.zoneName : '',\r\n moduleType: this.selectedType,\r\n customer: customerimage ? customerimage : [],\r\n timeSpent: this.timePassed\r\n }\r\n\r\n this.apiservice.saveaudit(obj).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(res?.data?.result)\r\n this.auth = false;\r\n this.timerService.resetTimer()\r\n sessionStorage.removeItem('timeSpent')\r\n this.closepopup()\r\n sessionStorage.removeItem('employee')\r\n sessionStorage.removeItem('junk')\r\n sessionStorage.removeItem('audit')\r\n sessionStorage.removeItem('totalfiles')\r\n sessionStorage.removeItem('retag')\r\n\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n\r\n } else {\r\n this.auth = false;\r\n if (res && res.code == 203) {\r\n this.Errormsg = res.error\r\n const modalRef = this.modalService.open(this.confirmerror)\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n })\r\n }\r\n }\r\n },\r\n error: (err) => {\r\n const errorMessage = err?.error?.message || err?.error?.error || err?.message || 'Invalid status code: undefined';\r\n this.toast.getErrorToast(errorMessage);\r\n },\r\n\r\n })\r\n\r\n }\r\n\r\n nextfile() {\r\n this.auth = true;\r\n let totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ totalfile:\", totalfile)\r\n let revisedDetail: any = []\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n customer.map((customerData: any) => {\r\n if (customerData.count > 1) {\r\n // console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ customerData:\", customerData)\r\n let duplicateData = customerData.mappedid.filter((data: any) => data.img_name != customerData?.img_name)\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ duplicateData:\", duplicateData)\r\n let duplicateImage: any = []\r\n duplicateData.map((dupData: any) => {\r\n duplicateImage.push(\r\n {\r\n \"id\": `${totalfile?.filedetails?.storeId}_${totalfile?.filedetails?.Date}_${dupData?.img_name}`,\r\n \"tempId\": dupData?.img_name,\r\n \"filePath\": dupData?.img_path,\r\n \"isChecked\": true\r\n }\r\n )\r\n\r\n })\r\n let newObj: any = {\r\n \"id\": `${totalfile?.filedetails?.storeId}_${totalfile?.filedetails?.Date}_${customerData?.img_name}`,\r\n \"clientId\": totalfile?.filedetails?.clientId,\r\n \"storeId\": totalfile?.filedetails?.storeId,\r\n \"tempId\": customerData?.img_name,\r\n \"dateString\": totalfile?.filedetails?.Date,\r\n // \"timeRange\": \"11AM-12PM\",\r\n \"processType\": \"footfall\",\r\n \"revopsType\": \"duplicate\",\r\n \"filePath\": customerData?.img_path,\r\n \"status\": \"submitted\",\r\n \"description\": \"\",\r\n \"isChecked\": true,\r\n \"type\": \"tagging-reflect\",\r\n \"parent\": null,\r\n \"isParent\": true,\r\n \"duplicateImage\": duplicateImage\r\n }\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ newObj:\", newObj)\r\n revisedDetail.push(newObj)\r\n } else {\r\n // console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ customerData:\", customerData)\r\n let newObj: any = {\r\n \"id\": `${totalfile?.filedetails?.storeId}_${totalfile?.filedetails?.Date}_${customerData?.img_name}`,\r\n \"clientId\": totalfile?.filedetails?.clientId,\r\n \"storeId\": totalfile?.filedetails?.storeId,\r\n \"tempId\": customerData?.img_name,\r\n \"dateString\": totalfile?.filedetails?.Date,\r\n \"timeRange\": \"11AM-12PM\",\r\n \"processType\": \"footfall\",\r\n \"revopsType\": \"duplicate\",\r\n \"filePath\": customerData?.img_path,\r\n \"status\": \"submitted\",\r\n \"description\": \"\",\r\n \"isChecked\": true,\r\n \"type\": \"tagging-reflect\",\r\n \"parent\": null,\r\n \"isParent\": true,\r\n \"duplicateImage\": []\r\n }\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ newObj:\", newObj)\r\n revisedDetail.push(newObj)\r\n }\r\n\r\n\r\n })\r\n let count: any = []\r\n this.category.map((data: any) => {\r\n count.push({\r\n name: data.name,\r\n value: data.count,\r\n type: data.type\r\n })\r\n let filterData = JSON.parse(sessionStorage.getItem(data?.type) || '[]')\r\n\r\n filterData.map((otherData: any) => {\r\n\r\n let otherObj: any = {\r\n \"id\": `${totalfile?.filedetails?.storeId}_${totalfile?.filedetails?.Date}_${otherData?.img_name}`,\r\n \"clientId\": totalfile?.filedetails?.clientId,\r\n \"storeId\": totalfile?.filedetails?.storeId,\r\n \"tempId\": otherData?.img_name,\r\n \"dateString\": totalfile?.filedetails?.Date,\r\n \"processType\": \"footfall\",\r\n \"revopsType\": data?.type,\r\n \"filePath\": otherData?.img_path,\r\n \"status\": \"submitted\",\r\n \"description\": \"\",\r\n \"isChecked\": true,\r\n \"type\": \"tagging-reflect\",\r\n \"parent\": null,\r\n \"isParent\": false,\r\n \"duplicateImage\": []\r\n }\r\n revisedDetail.push(otherObj)\r\n })\r\n })\r\n\r\n\r\n let ticketType = sessionStorage.getItem('ticketType')\r\n\r\n var obj: any = {\r\n \"type\": \"tangoreview\",\r\n \"mode\": \"web\",\r\n \"revicedFootfall\": this.Retagcustomercount,\r\n\r\n \"revicedPerc\": Math.round((this.Retagcustomercount / totalfile?.totalfiles) * 100) + \"%\",\r\n count: count,\r\n revisedDetail: revisedDetail\r\n }\r\n console.log(\"🚀 ~ AuditReportPopupComponent ~ nextfile ~ obj:\", obj)\r\n // return\r\n let payload = {\r\n storeId: totalfile?.filedetails?.storeId,\r\n \"dateString\": totalfile?.filedetails?.Date,\r\n ticketType: ticketType,\r\n mappingInfo: obj\r\n }\r\n this.apiservice.saveaudit(payload).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.auth = false;\r\n this.timerService.resetTimer()\r\n sessionStorage.removeItem('timeSpent')\r\n this.closepopup()\r\n sessionStorage.removeItem('employee')\r\n sessionStorage.removeItem('junk')\r\n sessionStorage.removeItem('audit')\r\n sessionStorage.removeItem('totalfiles')\r\n sessionStorage.removeItem('retag')\r\n var obj: any = {\r\n totalfiles: {\r\n }\r\n }\r\n obj.totalfiles.queueName = totalfile?.filedetails?.queueName\r\n sessionStorage.setItem('totalfiles', JSON.stringify(obj))\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n\r\n } else {\r\n this.auth = false;\r\n if (res && res.code == 203) {\r\n this.Errormsg = res.error\r\n const modalRef = this.modalService.open(this.confirmerror)\r\n modalRef.result.then((result) => {\r\n if (result.isConfirmed) {\r\n this.router.navigate(['/manage/tickets'], { queryParams: { type: 'footfall' } })\r\n }\r\n })\r\n }\r\n }\r\n\r\n },\r\n error: (err) => {\r\n const errorMessage = err?.error?.message || err?.error?.error || err?.message || 'Invalid status code: undefined';\r\n this.toast.getErrorToast(errorMessage);\r\n },\r\n })\r\n\r\n }\r\n closepopup() {\r\n this.activeModal.close();\r\n }\r\n\r\n reviewdata() {\r\n this.router.navigate([\"/manage/tickets/mapping-list\"])\r\n this.activeModal.close();\r\n }\r\n\r\n}\r\n","<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Close ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"tangoAccuracy>85&¢ralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">The ticket will be <b>“closed”</b> and updated in the store as a final revision.</p>\r\n </div>\r\n <div *ngIf=\"tangoAccuracy>85&&!centralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">You’re about to close this ticket. Do you want to proceed?</p>\r\n </div>\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\" *ngIf=\"tangoAccuracy<85\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n\r\n <p class=\"mb-0\">\r\n The ticket will be <b>“closed”</b> and updated in the store as a final revision.\r\n Since accuracy is below 85%, it will be marked as an <b>“Open-Accuracy Issue”</b> in Tango.\r\n Please add the cause for the low accuracy.\r\n </p>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"centralOpsData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n ↓\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n ↑\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"tangoData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n ↓\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n ↑\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"closepopup()\">\r\n cancel\r\n </button>\r\n <button *ngIf=\"tangoAccuracy>85\" type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n submit\r\n </button>\r\n <button *ngIf=\"tangoAccuracy<85\" type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n Review\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnChanges, SimpleChanges, OnDestroy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { AuditService } from '../../services/audit.service';\r\nimport * as LZString from 'lz-string';\r\n// import { AuditReportPopupComponent } from '../audit-report-popup/audit-report-popup.component';\r\nimport { Subject, takeUntil, Subscription } from 'rxjs';\r\nimport { TimerService } from '../../services/timer.service';\r\nimport { AuditReportPopupComponent } from '../audit-report-popup/audit-report-popup.component';\r\n\r\n@Component({\r\n selector: 'lib-audit-mapping-list',\r\n templateUrl: './audit-mapping-list.component.html',\r\n styleUrl: './audit-mapping-list.component.scss'\r\n})\r\nexport class AuditMappingListComponent {\r\n\r\n totalfile = 0;\r\n customer = 0;\r\n junk = 0;\r\n employee = 0;\r\n currentValue: any = 0;\r\n showvalue: boolean = false;\r\n retggingpage: boolean = false;\r\n showvalue1: boolean = false;\r\n junkimage: any = []\r\n retagimage: any = []\r\n submitvalue: boolean = true;\r\n auditmappingdata: any;\r\n customercount: any;\r\n auditLoading = true;\r\n selectedType: any;\r\n\r\n junkcount: any = 0;\r\n employeecount: any = 0;\r\n employeimage: any = [];\r\n filedetails: any;\r\n demographic: any;\r\n submitted: boolean = false;\r\n dummymapping: any;\r\n private readonly destroy$ = new Subject();\r\n timePassed: number = 0;\r\n subscription: Subscription | null = null;\r\n formattedTime: string = '00:00:00';\r\n count: any;\r\n category: any = []\r\n @ViewChild('confirmDraft') confirmDraft: any;\r\n\r\n constructor(public modalService: NgbModal, private router: Router, private auditService: AuditService, private toastr: ToastService, private route: ActivatedRoute,\r\n private cd: ChangeDetectorRef, private timerService: TimerService) {\r\n this.selectedType = this.route.snapshot.paramMap.get('type')\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAuditConfig()\r\n // this.initial_data_loading();\r\n if (this.retagimage.length > 0) {\r\n this.showvalue = true\r\n }\r\n this.setTimer();\r\n }\r\n getAuditConfig() {\r\n\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.auditService.getAuditconfig(filedata?.filedetails?.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.category = res.data.footfallDirectoryConfigs.taggingLimitation\r\n // this.initial_data_loading()\r\n // this.saveDraftimg();\r\n this.getmappingdata()\r\n\r\n }\r\n }\r\n })\r\n }\r\n setTimer() {\r\n this.subscription = this.timerService.getTimePassed().subscribe(time => {\r\n this.timePassed = time;\r\n this.formattedTime = this.timerService.formatTime(time);\r\n this.cd.detectChanges();\r\n });\r\n this.timerService.startTimer();\r\n document.addEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.addEventListener('click', this.handleGlobalMouseEvent);\r\n document.addEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.addEventListener('scroll', this.handleGlobalMouseEvent);\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n document.removeEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.removeEventListener('click', this.handleGlobalMouseEvent);\r\n document.removeEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.removeEventListener('scroll', this.handleGlobalMouseEvent);\r\n this.timerService.clearTimer()\r\n }\r\n\r\n handleGlobalMouseEvent = (): void => {\r\n this.timerService.startTimer();\r\n }\r\n\r\n initial_data_loading() {\r\n if ('audit' in sessionStorage) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var auditdata = JSON.parse(decompressedData || '{}')\r\n \r\n if (auditdata.length > 0) {\r\n this.auditmappingdata = auditdata;\r\n this.customercount = this.auditmappingdata.length\r\n } else {\r\n this.auditmappingdata = []\r\n this.customercount = 0\r\n }\r\n this.demographic = this.auditmappingdata.filter((data: any) => data.demographic === 'd').length;\r\n }\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data?.type) || '{}')\r\n data.count = count?.length\r\n })\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n if (retagdata.length > 0) {\r\n this.retagimage = retagdata;\r\n } else {\r\n this.retagimage = [];\r\n if (this.retagimage.length == 0) {\r\n this.showvalue = false\r\n }\r\n }\r\n }\r\n if ('totalfiles' in sessionStorage) {\r\n var files = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.totalfile = files?.totalfiles\r\n this.filedetails = files?.filedetails\r\n }\r\n\r\n }\r\n\r\n getmappingdata() {\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n this.filedetails = totalfile?.filedetails\r\n let tickettype = sessionStorage.getItem('ticketType')\r\n var payload: any = {\r\n storeId: totalfile?.filedetails?.storeId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId,\r\n count: totalfile?.totalfiles,\r\n tickettype:tickettype\r\n }\r\n this.auditService.getAuditmappinglist(payload).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.auditLoading = false;\r\n\r\n\r\n\r\n\r\n this.category.map((data: any) => {\r\n let filterData = res?.data?.result?.draftedData?.filter((x: any) => x.type === data.type)\r\n data.value = filterData[0]?.value && filterData[0]?.value.length > 0 ? filterData[0]?.value : []\r\n data.count = data?.value?.length\r\n sessionStorage.setItem(data?.type, JSON.stringify(data?.value && data?.value.length > 0 ? data?.value : []))\r\n\r\n })\r\n let customerData = res?.data?.result?.draftedData?.filter((x: any) => x.type === 'customer')\r\n\r\n this.auditmappingdata = customerData[0]?.value\r\n const jsonString = JSON.stringify(customerData[0]?.value);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n\r\n\r\n\r\n var retagiamge = JSON.parse(sessionStorage.getItem('retag') || '[]')\r\n if (retagiamge.length > 0) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n customer = [...customer, ...retagiamge]\r\n const jsonString = JSON.stringify(customer);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n sessionStorage.removeItem('retag')\r\n this.retagimage = []\r\n this.initial_data_loading()\r\n if (this.retagimage.length == 0) {\r\n this.showvalue = false\r\n }\r\n }\r\n },\r\n error: (err: any) => {\r\n\r\n }\r\n })\r\n }\r\n\r\n redireact: boolean = false;\r\n\r\n backToTagging() {\r\n this.redireact = true;\r\n this.saveDraftimg();\r\n }\r\n\r\n changesdata() {\r\n var user = JSON.parse(localStorage.getItem('user-info') || '{}')\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n var payload: any = {\r\n storeId: totalfile?.filedetails?.storeId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId,\r\n count: totalfile?.totalfiles\r\n }\r\n this.auditService.getAuditmappinglist(payload).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.auditLoading = false;\r\n sessionStorage.removeItem('retag')\r\n this.retagimage = []\r\n this.category.map((data: any) => {\r\n let filterData = res?.data?.result?.draftedData?.filter((x: any) => x.type === data.type)\r\n data.value = filterData[0]?.value && filterData[0]?.value.length > 0 ? filterData[0]?.value : []\r\n data.count = data?.value?.length\r\n sessionStorage.setItem(data?.type, JSON.stringify(data?.value && data?.value.length > 0 ? data?.value : []))\r\n\r\n })\r\n let customerData = res?.data?.result?.draftedData?.filter((x: any) => x.type === 'customer')\r\n\r\n this.auditmappingdata = customerData[0]?.value\r\n const jsonString = JSON.stringify(customerData[0]?.value);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n if (this.retagimage.length == 0) {\r\n this.showvalue = false\r\n }\r\n\r\n this.router.navigate([\"/manage/tickets/audit\"])\r\n }\r\n },\r\n error: (err: any) => {\r\n\r\n }\r\n })\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['auditmappingdata']) {\r\n this.dummymapping = JSON.parse(JSON.stringify(changes['auditmappingdata'].currentValue));\r\n }\r\n }\r\n\r\n allowDrop(ev: any) {\r\n ev.preventDefault();\r\n }\r\n\r\n drag(ev: any) {\r\n ev.dataTransfer.setData(\"text/plain\", ev.target.id);\r\n }\r\n\r\n dropforretag(ev: any) {\r\n ev.preventDefault();\r\n const draggedImageId = ev.dataTransfer.getData('text/plain');\r\n const draggedImage = document.getElementById(draggedImageId);\r\n this.showvalue = true;\r\n const htmltag = ev.dataTransfer.getData('text/html');\r\n var Name = getTagNameFromHTML(htmltag);\r\n console.log(\"🚀 ~ AuditMappingListComponent ~ dropforretag ~ Name:\", Name,draggedImageId)\r\n if (Name != null && this.category.filter((data: any) => data?.type === Name)?.length > 0) {\r\n\r\n let imageData = JSON.parse(sessionStorage.getItem(Name) || '{}')\r\n var splicedvalue = imageData.splice(imageData.findIndex(({ img_id }: { img_id: string }) => img_id == draggedImageId), 1);\r\n\r\n this.category.map((data: any) => {\r\n if (data?.type == Name) {\r\n data.value = imageData\r\n data.count = imageData.length\r\n }\r\n\r\n })\r\n sessionStorage.setItem(Name, JSON.stringify(imageData))\r\n var oldretag = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n var newtag: any = []\r\n if (Number(oldretag.length) > 0) {\r\n newtag = [...oldretag, ...splicedvalue]\r\n } else {\r\n newtag = splicedvalue\r\n }\r\n this.retagimage = newtag\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage))\r\n\r\n\r\n if(Name==='duplicate'){\r\n this.auditmappingdata.map((mainData:any)=>{\r\n if(mainData.count>1){\r\n console.log(\"🚀 ~ AuditMappingListComponent ~ dropforretag ~ mainData:\", mainData)\r\n mainData.mappedid = mainData.mappedid.filter((data:any)=>data.img_id!=draggedImageId)\r\n mainData.count = mainData.mappedid.length\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n } else if (Name != null) {\r\n var insertIndex = this.auditmappingdata.findIndex(({ img_id }: { img_id: string }) => img_id == Name)\r\n var mainarray = this.auditmappingdata.splice(this.auditmappingdata.findIndex(({ img_id }: { img_id: string }) => img_id == Name), 1);\r\n this.customercount = this.auditmappingdata?.length;\r\n if (mainarray?.length > 0 && mainarray[0].mappedid.length > 1) {\r\n var checkindex = mainarray[0].mappedid.findIndex(({ img_id }: { img_id: string }) => img_id == draggedImageId)\r\n\r\n var subarray = mainarray[0].mappedid.splice(mainarray[0].mappedid.findIndex(({ img_id }: { img_id: string }) => img_id == draggedImageId), 1);\r\n if (checkindex == 0) {\r\n mainarray[0].img_name = mainarray[0].mappedid[0].img_name\r\n mainarray[0].img_id = mainarray[0].mappedid[0].img_id\r\n mainarray[0].img_path = mainarray[0].mappedid[0].img_path\r\n }\r\n mainarray[0].count = mainarray[0].count - 1\r\n subarray[0].mappedid = []\r\n let obj = {\r\n img_name: subarray[0].img_name,\r\n img_id: subarray[0].img_id,\r\n img_path: subarray[0].img_path\r\n }\r\n subarray[0].mappedid.push(obj)\r\n subarray[0].selected = false\r\n subarray[0].dropped = false\r\n subarray[0].demographic = ''\r\n subarray[0].count = 1;\r\n var oldretag = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n var newtag: any = []\r\n if (Number(oldretag.length) > 0) {\r\n newtag = [...oldretag, ...subarray]\r\n } else {\r\n newtag = subarray\r\n }\r\n this.retagimage = newtag\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage))\r\n this.auditmappingdata.splice(insertIndex, 0, ...mainarray);\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n } else {\r\n\r\n var oldretag = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n var newtag: any = []\r\n if (Number(oldretag.length) > 0) {\r\n newtag = [...oldretag, ...mainarray]\r\n } else {\r\n newtag = mainarray\r\n }\r\n this.retagimage = newtag\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage))\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n }\r\n\r\n function getTagNameFromHTML(html: any) {\r\n var tempElement = document.createElement('div');\r\n tempElement.innerHTML = html;\r\n var firstChild: any = tempElement.firstChild;\r\n if (firstChild.hasAttribute('name')) {\r\n var namePropertyValue = firstChild.getAttribute('name');\r\n return namePropertyValue;\r\n }\r\n return null;\r\n }\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage))\r\n\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n this.retagimage = retagdata;\r\n\r\n }\r\n }\r\n\r\n removeimage(data: any) {\r\n var removed_img = this.retagimage.filter((ev: any) => ev.img_id == data.img_id)\r\n this.retagimage.splice(this.retagimage.findIndex(({ img_id }: { img_id: string }) => img_id == data.img_id), 1);\r\n this.auditmappingdata = [...this.auditmappingdata, ...removed_img]\r\n this.customercount = this.auditmappingdata?.length;\r\n if (!this.retagimage.length) { this.showvalue = false }\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n const completeDate = JSON.parse(decompressedData || '{}')\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage))\r\n this.cd.detectChanges();\r\n }\r\n\r\n saveDraftimg() {\r\n this.submitted = true;\r\n\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n this.timePassed = JSON.parse(sessionStorage.getItem('timeSpent') || '{}')\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n this.retagimage = retagdata;\r\n }\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: this.auditmappingdata ? this.auditmappingdata : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '{}');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n var inserobj: any = {\r\n storeId: totalfile?.filedetails?.storeId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails?.auditId,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n retagCount: this.retagimage.length,\r\n timeSpent: this.timePassed,\r\n retagImage: this.retagimage ? this.retagimage : []\r\n }\r\n\r\n this.auditService.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n if (!this.redireact) {\r\n this.submitted = false;\r\n this.getmappingdata()\r\n } else {\r\n this.changesdata()\r\n }\r\n })\r\n }\r\n\r\n\r\n taggingview() {\r\n this.submitted = true;\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n this.showvalue = false;\r\n this.showvalue1 = true;\r\n this.retggingpage = true;\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: customer ? customer : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '{}');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n var inserobj: any = {\r\n storeId: totalfile?.filedetails?.store_id,\r\n fileDate: totalfile?.filedetails?.file_date,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails.auditId,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n retagCount: this.retagimage.length,\r\n timeSpent: this.timePassed,\r\n retagImage: this.retagimage ? this.retagimage : []\r\n }\r\n\r\n this.auditService.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe(() => { this.submitted = false; })\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n this.retagimage = retagdata;\r\n\r\n }\r\n this.router.navigate([\"/manage/tickets/retag-mapping\"])\r\n }\r\n\r\n submitaudit() {\r\n const modalRef = this.modalService.open(AuditReportPopupComponent, {\r\n size: 'lg',\r\n centered: true\r\n })\r\n modalRef.componentInstance.selectedType = this.selectedType;\r\n }\r\n\r\n\r\n\r\n setValue(i: any) {\r\n let index = 0;\r\n if (i > index) {\r\n return this.currentValue = this.currentValue + 1;\r\n }\r\n\r\n }\r\n currentGroupNumber: any = 0;\r\n\r\n getGroupNumber(obj: any): number | null {\r\n if (obj.count > 1) {\r\n return ++this.currentGroupNumber;\r\n }\r\n return null;\r\n }\r\n\r\n resetGroupNumber() {\r\n this.currentGroupNumber = 0;\r\n }\r\n\r\n getFilteredData(count: number) {\r\n return this.auditmappingdata.filter((obj: any) => obj.count === count);\r\n\r\n }\r\n\r\n toggleImage(img_name: any) {\r\n this.auditmappingdata.map((data: any) => {\r\n if (data.img_name == img_name) {\r\n if (data.mappedid.length > 0) {\r\n data.demographic !== 'd' ? data.demographic = 'd' : data.demographic = ''\r\n } else {\r\n data.dropped = !data.dropped\r\n }\r\n }\r\n })\r\n this.demographic = this.auditmappingdata.filter((data: any) => data.demographic === 'd').length;\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n }\r\n}","<div *ngIf=\"!auditLoading\" class=\"card\" >\r\n <div class=\"card-header\" >\r\n <div class=\"card-title\">\r\n <h3 class=\"flex-column\">\r\n <!-- <span class=\"card-label fw-bold\">{{filedetails?.queueName}}<span class=\"mx-3 arrow-code\"> - </span> -->\r\n <span>{{filedetails?.storeId}}</span>\r\n \r\n <span class=\"mx-3 arrow-code\"> - </span>\r\n <span >{{filedetails?.Date}}</span>\r\n <!-- <span class=\"mx-3 arrow-code\"> - </span>\r\n <span >{{filedetails?.type}}</span> -->\r\n <!-- </span> -->\r\n </h3>\r\n \r\n <div class=\"rounded-3 ms-3 d-flex align-items-center bg-timer\">\r\n <span class=\"me-3 text-timer fw-semibold\">{{ formattedTime }}</span>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9.16667 2.87071C9.16667 2.62023 9.26617 2.38001 9.44329 2.20289C9.62041 2.02577 9.86063 1.92627 10.1111 1.92627H13.8889C14.1394 1.92627 14.3796 2.02577 14.5567 2.20289C14.7338 2.38001 14.8333 2.62023 14.8333 2.87071C14.8333 3.1212 14.7338 3.36142 14.5567 3.53854C14.3796 3.71565 14.1394 3.81516 13.8889 3.81516H12.9444V5.07442L12.9432 5.12605C14.5396 5.30097 16.0528 5.92787 17.3053 6.93308L17.3141 6.92553L18.2585 5.98108C18.374 5.85676 18.5208 5.76588 18.6835 5.71801C18.8463 5.67014 19.019 5.66706 19.1833 5.70908C19.3477 5.75111 19.4977 5.83669 19.6175 5.9568C19.7373 6.07692 19.8225 6.22713 19.8641 6.3916C19.906 6.55578 19.903 6.72823 19.8554 6.89085C19.8077 7.05348 19.7172 7.20029 19.5933 7.3159L18.6489 8.26034L18.6413 8.26915C19.6403 9.51974 20.2658 11.027 20.446 12.6174C20.6261 14.2078 20.3536 15.8167 19.6597 17.2591C18.9658 18.7014 17.8788 19.9185 16.5237 20.7704C15.1686 21.6222 13.6006 22.0741 12 22.0741C10.3994 22.0741 8.83137 21.6222 7.47629 20.7704C6.12122 19.9185 5.03419 18.7014 4.3403 17.2591C3.64641 15.8167 3.37386 14.2078 3.55402 12.6174C3.73418 11.027 4.35973 9.51974 5.35867 8.26915L5.35111 8.26034L4.40667 7.3159C4.23964 7.1369 4.14865 6.90003 4.15287 6.65524C4.1571 6.41045 4.25622 6.17687 4.42934 6.00375C4.60246 5.83063 4.83604 5.73151 5.08083 5.72728C5.32562 5.72306 5.56249 5.81405 5.74149 5.98108L6.68593 6.92553L6.69474 6.93308C7.94681 5.92809 9.45963 5.3012 11.0556 5.12605V3.81516H10.1111C9.86063 3.81516 9.62041 3.71565 9.44329 3.53854C9.26617 3.36142 9.16667 3.1212 9.16667 2.87071ZM12 20.1855C13.7535 20.1854 15.4352 19.4886 16.675 18.2485C17.9148 17.0085 18.6113 15.3267 18.6111 13.5732C18.6109 11.8196 17.9142 10.138 16.6741 8.89813C15.4341 7.65831 13.7523 6.96188 11.9987 6.96204C10.2452 6.96221 8.56354 7.65896 7.32372 8.89902C6.0839 10.1391 5.38747 11.8209 5.38763 13.5744C5.3878 15.328 6.08455 17.0096 7.32461 18.2494C8.56467 19.4893 10.2465 20.1857 12 20.1855ZM12.4899 11.7485L14.1647 10.0737C14.2517 9.98343 14.3559 9.91143 14.4711 9.86188C14.5863 9.81233 14.7102 9.78622 14.8356 9.78507C14.9611 9.78392 15.0854 9.80776 15.2015 9.85519C15.3176 9.90262 15.4231 9.9727 15.5118 10.0613C15.6005 10.15 15.6707 10.2554 15.7182 10.3714C15.7658 10.4875 15.7897 10.6118 15.7887 10.7372C15.7877 10.8626 15.7617 10.9866 15.7122 11.1018C15.6628 11.2171 15.5909 11.3213 15.5007 11.4085L13.8259 13.0846C13.9003 13.3645 13.9095 13.6579 13.8526 13.942C13.7958 14.226 13.6745 14.4933 13.4981 14.7231C13.3217 14.9529 13.0949 15.1391 12.8352 15.2675C12.5754 15.3958 12.2897 15.4628 12 15.4633C11.7327 15.461 11.4688 15.4019 11.226 15.29C10.9832 15.1781 10.767 15.0159 10.5916 14.8141C10.4162 14.6123 10.2857 14.3755 10.2087 14.1195C10.1316 13.8635 10.1099 13.594 10.1448 13.329C10.1798 13.0639 10.2706 12.8093 10.4114 12.582C10.5522 12.3547 10.7396 12.1599 10.9613 12.0104C11.183 11.861 11.4339 11.7604 11.6974 11.7152C11.9609 11.6701 12.231 11.6814 12.4899 11.7485Z\" fill=\"black\"/>\r\n </svg></span>\r\n </div>\r\n <!-- <span *ngIf=\"demographic\" class=\"badge badge-light-success ms-3\">{{demographic}} {{demographic > 1 ? 'Demographics' : 'Demographic'}}</span> -->\r\n </div>\r\n\r\n <div class=\"card-toolbar \">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <a *ngIf=\"!showvalue1\" class=\"btn btn-sm btn-default btn-outline py-2 mx-2\" (click)=\"changesdata()\"><span\r\n class=\"svg-icon svg-icon-primary svg-icon-2x\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15.8337 10.0001H4.16699M4.16699 10.0001L10.0003 15.8334M4.16699 10.0001L10.0003 4.16675\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span><span class=\"ms-3\">Back to Tagging</span></a>\r\n <button *ngIf=\"!showvalue\" class=\"btn btn-sm btn-primary py-2 mx-2\" (click)=\"submitaudit()\" >Submit\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16699 9.99984H15.8337M15.8337 9.99984L10.0003 4.1665M15.8337 9.99984L10.0003 15.8332\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n \r\n <button *ngIf=\"showvalue\" class=\"btn btn-primary btn-sm py-2 mx-2\" [disabled]=\"submitted\" (click)=\"taggingview()\">Retag <span\r\n class=\"svg-icon svg-icon-primary svg-icon-2x\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16666 9.99996H15.8333M15.8333 9.99996L9.99999 4.16663M15.8333 9.99996L9.99999 15.8333\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n \r\n</div>\r\n\r\n\r\n<div class=\"row\"> \r\n <div *ngIf=\"auditLoading\" class=\"card mt-5\">\r\n <div class=\"card-body\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n <!-- <h5 class=\"text-dark-600 fs-3 fw-bold text-center \">Loading Audit file......</h5> -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"!auditLoading\" class=\"col-md-7\">\r\n <div class=\"card mt-5\">\r\n <div class=\"h-1000px\">\r\n <div ngbAccordion *ngFor=\"let item of category\">\r\n <div *ngIf=\"item?.count !==0\" class=\"mt-6\" ngbAccordionItem [collapsed]=\"!item?.count\">\r\n <div ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div>\r\n {{item?.name}} <span class=\"sub-text mt-2 ms-2\">\r\n <span class=\"badge badge-light-default\"><svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_14508_18583)\">\r\n <path d=\"M2.5 10.5H9.5C10.0523 10.5 10.5 10.0523 10.5 9.5V2.5C10.5 1.94772 10.0523 1.5 9.5 1.5H2.5C1.94772 1.5 1.5 1.94772 1.5 2.5V9.5C1.5 10.0523 1.94772 10.5 2.5 10.5ZM2.5 10.5L8 5L10.5 7.5M5 4.25C5 4.66421 4.66421 5 4.25 5C3.83579 5 3.5 4.66421 3.5 4.25C3.5 3.83579 3.83579 3.5 4.25 3.5C4.66421 3.5 5 3.83579 5 4.25Z\" stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_14508_18583\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>{{item?.count}}</span>\r\n </span>\r\n </div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n \r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody class=\"py-0\">\r\n <ng-template>\r\n <div class=\"h-auto\" (dragover)=\"allowDrop($event)\">\r\n <div class=\"col-md-12 item\" >\r\n <div class=\"item\" *ngFor=\"let obj of item?.value\" >\r\n <img draggable=\"true\" (dragstart)=\"drag($event)\" id=\"{{obj.img_id}}\" name=\"{{item.type}}\"\r\n class=\"my-3 mx-2 img\" [src]=\"obj.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{obj.img_name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n <div ngbAccordion>\r\n <div class=\"mt-6\" ngbAccordionItem [collapsed]=\"!(!junkcount && !employeecount)\">\r\n <div ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div>\r\n Unique Customer <span class=\"sub-text mt-2 ms-2\">\r\n <span class=\"badge badge-light-default\"><svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_15800_3911)\">\r\n <path d=\"M8.5 10.5V9.5C8.5 8.96957 8.28929 8.46086 7.91421 8.08579C7.53914 7.71071 7.03043 7.5 6.5 7.5H2.5C1.96957 7.5 1.46086 7.71071 1.08579 8.08579C0.710714 8.46086 0.5 8.96957 0.5 9.5V10.5M11.5 10.5V9.5C11.4997 9.05686 11.3522 8.62639 11.0807 8.27616C10.8092 7.92593 10.4291 7.67578 10 7.565M8 1.565C8.43021 1.67515 8.81152 1.92535 9.08382 2.27616C9.35612 2.62696 9.50392 3.05841 9.50392 3.5025C9.50392 3.94659 9.35612 4.37804 9.08382 4.72884C8.81152 5.07965 8.43021 5.32985 8 5.44M6.5 3.5C6.5 4.60457 5.60457 5.5 4.5 5.5C3.39543 5.5 2.5 4.60457 2.5 3.5C2.5 2.39543 3.39543 1.5 4.5 1.5C5.60457 1.5 6.5 2.39543 6.5 3.5Z\" stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_15800_3911\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg> {{customercount}}</span>\r\n </span>\r\n </div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n \r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody class=\"py-0\">\r\n <ng-template>\r\n <div>\r\n <div class=\"h-500\" (dragover)=\"allowDrop($event)\">\r\n <ng-container *ngIf=\"resetGroupNumber() === null\"></ng-container>\r\n <ng-container *ngFor=\"let obj of auditmappingdata;let i=index\">\r\n <div *ngIf=\"obj?.count === 1\" class=\"item\">\r\n <div>\r\n <div *ngFor=\"let img of obj?.mappedid\">\r\n <img draggable=\"true\" name=\"{{obj.img_id}}\" (dragstart)=\"drag($event)\" (click)=\"toggleImage(img?.img_name )\"\r\n id=\"{{img.img_id}}\" class=\"my-3 mx-2 img\" [src]=\"img.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{img.img_name}}</div>\r\n <!-- <span *ngIf=\"obj?.demographic !== 'd'\" class=\"notify-badge2 w-25px h-25px cursor-pointer\" (click)=\"toggleImage(img?.img_name )\">\r\n </span>\r\n <span *ngIf=\"obj?.demographic === 'd'\" class=\"notify-badge\" (click)=\"toggleImage(img?.img_name )\"><i class=\"fa fa-check\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i></span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container class=\"mt-5\" *ngFor=\"let obj of auditmappingdata;let i=index\">\r\n <div *ngIf=\"obj?.count > 1\" class=\"card-label mt-3\">Group {{ getGroupNumber(obj) }} <span class=\"sub-text mt-3 ms-2\">\r\n <span class=\"badge badge-light-default\"><svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_14508_18583)\">\r\n <path d=\"M2.5 10.5H9.5C10.0523 10.5 10.5 10.0523 10.5 9.5V2.5C10.5 1.94772 10.0523 1.5 9.5 1.5H2.5C1.94772 1.5 1.5 1.94772 1.5 2.5V9.5C1.5 10.0523 1.94772 10.5 2.5 10.5ZM2.5 10.5L8 5L10.5 7.5M5 4.25C5 4.66421 4.66421 5 4.25 5C3.83579 5 3.5 4.66421 3.5 4.25C3.5 3.83579 3.83579 3.5 4.25 3.5C4.66421 3.5 5 3.83579 5 4.25Z\" stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_14508_18583\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>{{obj.count}}</span>\r\n </span> \r\n <!-- <span *ngIf=\"obj?.demographic !== 'd'\" class=\"kid-badge cursor-pointer ms-3 me-3\" style=\"padding:2px 10.5px !important\" (click)=\"toggleImage(obj?.img_name)\">\r\n </span>\r\n <span *ngIf=\"obj?.demographic === 'd'\" class=\"kid-badge cursor-pointer ms-3 me-3\" (click)=\"toggleImage(obj?.img_name)\"><i class=\"fa fa-check\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i></span> Mark as demographic -->\r\n </div>\r\n <div *ngIf=\"obj.count > 1\" class=\"item\">\r\n <div>\r\n <div *ngFor=\"let img of obj?.mappedid\" class=\"item\">\r\n <img draggable=\"true\" name=\"{{obj.img_id}}\" (dragstart)=\"drag($event)\"\r\n id=\"{{img.img_id}}\" class=\"my-3 mx-2 img\" [src]=\"img.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{img.img_name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!auditLoading\" class=\"col-md-5\">\r\n <div class=\"card mt-5\">\r\n <!-- (change)=\"imagearray()\" -->\r\n <div class=\"card-body h-1000px\" (drop)=\"dropforretag($event)\" (dragover)=\"allowDrop($event)\" >\r\n <div class=\"card-label fw-bold text-dark mb-5\">Images for Retagging</div>\r\n <div class=\"col-md-12 item\" >\r\n <div class=\"item\" *ngFor=\"let item of retagimage\">\r\n <img [src]=\"item.img_path\" class=\"my-2 mx-4 img-ret\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item.img_name}}</div>\r\n <span class=\"notify-badge1 cursor-pointer\" (click)=\"removeimage(item)\"><i class=\"fa fa-close\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmDraft let-modal>\r\n <div class=\"card h-auto p-10\">\r\n <div class=\"card-header d-grid p-0 border-0\">\r\n <span><img src=\"./assets/tango/Images/Successtoast.png\"></span>\r\n <!-- <span *ngIf=\"getBack\"><img src=\"./assets/tango/custompopup-Icons/danger-icon.svg\"></span> -->\r\n <div class=\"card-label mt-5\">Do you want to submit your changes without demographic?</div>\r\n <!-- <div *ngIf=\"getBack\" class=\"card-label mt-5\">Unsaved Changes</div> -->\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"w-100 d-flex mt-10\">\r\n <button class=\"btn btn-outline w-50 me-2 fw-bold\" (click)=\"modal.close('isDenied')\">Cancel</button>\r\n <button class=\"btn btn-primary savebtn w-50 ms-2\" (click)=\"modal.close('isConfirmed')\">Ok</button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { Component, OnInit, HostListener, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport * as LZString from 'lz-string';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { AuditService } from '../../services/audit.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { RemoveAuditComponent } from '../remove-audit/remove-audit.component';\r\nimport { AuditReportPopupComponent } from '../audit-report-popup/audit-report-popup.component';\r\nimport { Subject, takeUntil, Subscription } from 'rxjs';\r\nimport { TimerService } from '../../services/timer.service';\r\nimport { ViewcategoryComponent } from '../viewcategory/viewcategory.component';\r\n\r\n@Component({\r\n selector: 'lib-audit-retag',\r\n templateUrl: './audit-retag.component.html',\r\n styleUrl: './audit-retag.component.scss'\r\n})\r\nexport class AuditRetagComponent implements OnInit, OnDestroy {\r\n\r\n totalfile = 0;\r\n customer = 0;\r\n junk = 0;\r\n employee = 0;\r\n junkimage: any = []\r\n retagimage: any = []\r\n submitvalue: boolean = true;\r\n auditmappingdata: any = [];\r\n customercount: any = 0;\r\n junkcount: any = 0;\r\n employeecount: any = 0;\r\n employeimage: any = [];\r\n filedetails: any = {};\r\n auditLoading = false;\r\n selectedType: any;\r\n private readonly destroy$ = new Subject();\r\n timePassed: number = 0;\r\n subscription: Subscription | null = null;\r\n formattedTime: string = '00:00:00';\r\n\r\n openmodel: boolean = false;\r\n category: any = []\r\n @HostListener('window:keydown', ['$event'])\r\n handleKeyPress(event: KeyboardEvent) {\r\n if (this.openmodel) return;\r\n // if (event.key === 'g' || event.code === 'KeyG') {\r\n // var group = this.auditmappingdata.filter((data: any) => data.selected === true)\r\n // if (group.length > 0) {\r\n // if (group.length == 1) {\r\n // this.toastr.getErrorToast('Please Select multiple file then add to Group')\r\n // } else {\r\n // let dummyarray = group.shift()\r\n // var groupimages: any = []\r\n // group.forEach((data: any) => {\r\n // this.auditmappingdata.splice(this.auditmappingdata.findIndex(({ img_name }: { img_name: string }) => img_name == data.img_name), 1);\r\n // groupimages.push(data.mappedid[0])\r\n // })\r\n // dummyarray.count = dummyarray.count + groupimages.length\r\n // dummyarray.selected = false\r\n\r\n // dummyarray.mappedid = [...dummyarray.mappedid, ...groupimages]\r\n // const jsonString = JSON.stringify(this.auditmappingdata);\r\n // const compressedData = LZString.compress(jsonString);\r\n // sessionStorage.setItem('audit', compressedData)\r\n // }\r\n\r\n // // this.initial_data_loading()\r\n // } else {\r\n // this.toastr.getErrorToast('Please Select file then add to Group')\r\n // }\r\n // }\r\n const pressed = (event.key || '').toLowerCase();\r\n const matched = this.category.find((m: any) => {\r\n if (!m.key) return false;\r\n const mapKey = m.key.toLowerCase();\r\n // match by event.key (preferred) OR by event.code like 'KeyJ'\r\n return pressed === mapKey || event.code === `Key${mapKey.toUpperCase()}`;\r\n });\r\n console.log(matched)\r\n if (!matched) return\r\n if (matched) {\r\n var newData = this.auditmappingdata.filter((data: any) => data.selected === true)\r\n if (newData.length > 0) {\r\n var oldData = JSON.parse(sessionStorage.getItem(matched?.type) || '{}')\r\n if (Number(oldData.length) > 0) {\r\n newData = [...oldData, ...newData]\r\n } else {\r\n newData = newData\r\n }\r\n this.category.map((data: any) => {\r\n if (data.type === matched?.type) {\r\n data.count = newData.length\r\n }\r\n })\r\n sessionStorage.setItem(matched?.type, JSON.stringify(newData))\r\n this.auditmappingdata = this.auditmappingdata.filter((data: any) => data.selected === false)\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n this.toastr.getSuccessToast(`${matched?.type} Added Succesfully!`);\r\n } else {\r\n this.toastr.getErrorToast(`Please Select file then add to ${matched?.type} `)\r\n }\r\n\r\n }\r\n\r\n }\r\n constructor(public modalService: NgbModal, private router: Router, private $api: AuditService,\r\n private toastr: ToastService, private route: ActivatedRoute, private timerService: TimerService, private cd: ChangeDetectorRef) {\r\n this.selectedType = this.route.snapshot.paramMap.get('type')\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(\"*************\")\r\n this.getAuditConfig()\r\n if (this.retagimage.length == 0) {\r\n this.submitvalue = false;\r\n }\r\n this.auditLoading = false\r\n this.setTimer();\r\n }\r\n getAuditConfig() {\r\n\r\n let filedata = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.$api.getAuditconfig(filedata?.filedetails?.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n console.log(res.data.footfallDirectoryConfigs.taggingLimitation)\r\n this.category = res.data.footfallDirectoryConfigs.taggingLimitation\r\n this.initial_data_loading()\r\n\r\n }\r\n }\r\n })\r\n }\r\n setTimer() {\r\n this.subscription = this.timerService.getTimePassed().subscribe(time => {\r\n this.timePassed = time;\r\n this.formattedTime = this.timerService.formatTime(time);\r\n this.cd.detectChanges();\r\n });\r\n this.timerService.startTimer();\r\n document.addEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.addEventListener('click', this.handleGlobalMouseEvent);\r\n document.addEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.addEventListener('scroll', this.handleGlobalMouseEvent);\r\n }\r\n\r\n handleGlobalMouseEvent = (): void => {\r\n this.timerService.startTimer();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n document.removeEventListener('mousemove', this.handleGlobalMouseEvent);\r\n document.removeEventListener('click', this.handleGlobalMouseEvent);\r\n document.removeEventListener('mouseenter', this.handleGlobalMouseEvent);\r\n document.removeEventListener('scroll', this.handleGlobalMouseEvent);\r\n this.timerService.clearTimer()\r\n\r\n }\r\n\r\n initial_data_loading() {\r\n console.log(\"------------\")\r\n if ('audit' in sessionStorage) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var auditdata = JSON.parse(decompressedData || '{}')\r\n console.log(\"🚀 ~ AuditRetagComponent ~ initial_data_loading ~ auditdata:\", auditdata)\r\n if (auditdata.length > 0) {\r\n this.auditmappingdata = auditdata;\r\n this.customercount = this.auditmappingdata.length\r\n } else {\r\n this.auditmappingdata = []\r\n this.customercount = 0\r\n }\r\n }\r\n\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n console.log(\"🚀 ~ AuditRetagComponent ~ initial_data_loading ~ count:\", count)\r\n data.count = count?.length\r\n })\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n if (retagdata.length > 0) {\r\n this.retagimage = retagdata;\r\n this.submitvalue = true;\r\n } else {\r\n this.retagimage = [];\r\n }\r\n \r\n }\r\n \r\n if ('totalfiles' in sessionStorage) {\r\n var files = JSON.parse(sessionStorage.getItem('totalfiles') || '{}')\r\n this.totalfile = files?.totalfiles\r\n this.filedetails = files?.filedetails\r\n\r\n }\r\n }\r\n getmappingdata() {\r\n this.auditLoading = false\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n this.filedetails = totalfile?.filedetails\r\n\r\n var payload: any = {\r\n storeId: totalfile?.filedetails?.storeId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n auditId: totalfile?.auditId,\r\n count: totalfile?.totalfiles\r\n }\r\n this.$api.getAuditmappinglist(payload).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res?.code == 200) {\r\n this.auditLoading = false\r\n sessionStorage.removeItem('retag')\r\n this.retagimage = []\r\n this.category.map((data: any) => {\r\n let filterData = res?.data?.result?.draftedData?.filter((x: any) => x.type === data.type)\r\n data.value = filterData[0]?.value && filterData[0]?.value.length > 0 ? filterData[0]?.value : []\r\n data.count = data?.value?.length\r\n sessionStorage.setItem(data?.type, JSON.stringify(data?.value && data?.value.length > 0 ? data?.value : []))\r\n\r\n })\r\n let customerData = res?.data?.result?.draftedData?.filter((x: any) => x.type === 'customer')\r\n console.log(\"🚀 ~ AuditRetagComponent ~ getmappingdata ~ customerData:\", customerData)\r\n\r\n this.auditmappingdata = customerData[0]?.value\r\n const jsonString = JSON.stringify(customerData[0]?.value);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n this.initial_data_loading()\r\n }\r\n },\r\n error: (err: any) => {\r\n\r\n },\r\n })\r\n }\r\n\r\n reviewdata() {\r\n this.submitvalue = false;\r\n var totalfile: any = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');\r\n if ('audit' in sessionStorage) {\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var auditdata = JSON.parse(decompressedData || '{}')\r\n if (auditdata.length > 0) {\r\n this.auditmappingdata = auditdata;\r\n this.customercount = this.auditmappingdata.length;\r\n }\r\n }\r\n if ('retag' in sessionStorage) {\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n this.retagimage = retagdata;\r\n this.auditmappingdata = [...this.auditmappingdata, ...this.retagimage]\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n sessionStorage.removeItem('retag')\r\n this.retagimage = [];\r\n }\r\n let stringifydata = sessionStorage.getItem('audit') || '{}'\r\n const decompressedData = LZString.decompress(stringifydata);\r\n var customer = JSON.parse(decompressedData || '{}')\r\n let storedData = [\r\n {\r\n type: \"customer\",\r\n value: customer ? customer : [],\r\n }\r\n ]\r\n\r\n this.category.map((data: any) => {\r\n let sessionvalue = JSON.parse(sessionStorage.getItem(data.type) || '{}');\r\n storedData.push({\r\n type: data.type,\r\n value: sessionvalue && sessionvalue.length > 0 ? sessionvalue : []\r\n })\r\n })\r\n console.log(\"🚀 ~ StartAuditComponent ~ Reviewdata ~ storedData:\", storedData)\r\n var inserobj: any = {\r\n\r\n storeId: totalfile?.filedetails?.storeId,\r\n auditId: totalfile?.auditId ? totalfile?.auditId : totalfile?.filedetails.auditId,\r\n fileDate: totalfile?.filedetails?.Date,\r\n totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,\r\n retagCount: 0,\r\n timeSpent: this.timePassed,\r\n retagImage: [],\r\n draftedData: storedData\r\n }\r\n this.$api.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.getmappingdata();\r\n this.router.navigate([\"/manage/tickets/mapping-list\",])\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toastr.getErrorToast(err?.error)\r\n },\r\n })\r\n }\r\n\r\n retagallowDrop(event: any) {\r\n event.preventDefault();\r\n }\r\n dragStart(event: any) {\r\n event.dataTransfer.setData(\"text/plain\", event.target.id);\r\n }\r\n\r\n dropretag(event: any) {\r\n event.preventDefault();\r\n const dropretagimage = event.dataTransfer.getData('text/plain');\r\n event.target.appendChild(document.getElementById(dropretagimage));\r\n const dropzone: any = dropretagimage;\r\n this.auditmappingdata.map((data: any) => {\r\n\r\n if (data.img_id == dropzone.id) {\r\n if (data.mappedid.length > 0) {\r\n var findone = this.auditmappingdata.filter((data: any) => data.img_name == dropretagimage)\r\n if (findone.length > 0) {\r\n data.count = data.count + findone[0].count\r\n data.mappedid = [...data.mappedid, ...findone[0].mappedid]\r\n }\r\n if ('duplicate' in sessionStorage) {\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n filedata = [...filedata, ...findone]\r\n sessionStorage.setItem('duplicate', JSON.stringify(filedata))\r\n } else {\r\n sessionStorage.setItem('duplicate', JSON.stringify(findone))\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n console.log(\"🚀 ~ StartAuditComponent ~ dropImage ~ filedata:\", filedata)\r\n\r\n }\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n data.count = count?.length\r\n })\r\n console.log(\"🚀 ~ AuditRetagComponent ~ dropretag ~ this.category:\", this.category)\r\n } else {\r\n data.count = data.count + 1,\r\n data.mappedid.push(dropretagimage)\r\n }\r\n }\r\n })\r\n }\r\n\r\n selectretagimage(res: any) {\r\n this.retagimage.map((data: any) => {\r\n if (data.img_id == res) {\r\n if (data.mappedid.length == 1) {\r\n data.selected = !data.selected\r\n }\r\n }\r\n })\r\n }\r\n\r\n selectgroupimage(res: any) {\r\n this.auditmappingdata.map((data: any) => {\r\n if (data.img_id == res) {\r\n if (data.mappedid.length == 1) {\r\n data.selected = !data.selected\r\n }\r\n }\r\n })\r\n }\r\n\r\n removeaudit(data: any) {\r\n const modalRef = this.modalService.open(RemoveAuditComponent, {\r\n size: 'lg',\r\n centered: true,\r\n backdrop: 'static',\r\n keyboard: false\r\n })\r\n modalRef.componentInstance.data = data;\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res && res?.reload) {\r\n this.initial_data_loading()\r\n }\r\n })\r\n\r\n }\r\n submitaudit() {\r\n const modalRef = this.modalService.open(AuditReportPopupComponent, {\r\n size: 'lg',\r\n centered: true,\r\n backdrop: 'static',\r\n keyboard: false\r\n })\r\n modalRef.componentInstance.selectedType = this.selectedType;\r\n modalRef.closed;\r\n }\r\n\r\n\r\n viewcategory(data: any) {\r\n const modalRef = this.modalService.open(ViewcategoryComponent, {\r\n size: 'lg',\r\n centered: true,\r\n backdrop: 'static',\r\n keyboard: false\r\n })\r\n modalRef.componentInstance.data = data\r\n modalRef.componentInstance.imageList = data,\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res && res?.reload) {\r\n this.initial_data_loading()\r\n }\r\n })\r\n }\r\n\r\n dropImage(event: any) {\r\n const htmltag = event.dataTransfer.getData('text/html');\r\n var Name = getTagNameFromHTML(htmltag);\r\n const dropZone = event.target;\r\n // console.log(Name)\r\n // debugger\r\n if (Name == 'customer' || Name == 'retag') {\r\n event.preventDefault();\r\n const draggedImageId = event.dataTransfer.getData('text/plain');\r\n const draggedImage = document.getElementById(draggedImageId);\r\n event.target.appendChild(draggedImage);\r\n this.auditmappingdata.map((data: any, index: number) => {\r\n\r\n if (data.img_id === dropZone.id) {\r\n let findone = [];\r\n const retagdata = JSON.parse(sessionStorage.getItem('retag') || '[]');\r\n this.retagimage = retagdata;\r\n findone = this.retagimage.filter((imgData: any) => imgData.img_id === draggedImageId);\r\n if (findone.length === 0) {\r\n findone = this.auditmappingdata.filter((imgData: any) => imgData.img_id === draggedImageId);\r\n }\r\n\r\n this.retagimage = this.retagimage.filter((imgData: any) => imgData.img_id !== draggedImageId);\r\n sessionStorage.setItem('retag', JSON.stringify(this.retagimage));\r\n\r\n console.log(\"🚀 ~ AuditRetagComponent ~ dropImage ~ findone:\", findone)\r\n if (findone.length > 0) {\r\n \r\n data.mappedid = [...data.mappedid, ...findone[0].mappedid];\r\n data.count = data.mappedid.length;\r\n console.log(\"🚀 ~ AuditRetagComponent ~ dropImage ~ data.mappedid:\", data.mappedid)\r\n if ('duplicate' in sessionStorage) {\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n filedata = [...filedata, ...findone]\r\n sessionStorage.setItem('duplicate', JSON.stringify(filedata))\r\n } else {\r\n sessionStorage.setItem('duplicate', JSON.stringify(findone))\r\n let filedata = JSON.parse(sessionStorage.getItem('duplicate') || '{}')\r\n console.log(\"🚀 ~ StartAuditComponent ~ dropImage ~ filedata:\", filedata)\r\n\r\n }\r\n } else {\r\n data.count += 1;\r\n data.mappedid.push(draggedImageId);\r\n }\r\n }\r\n })\r\n if (Name == 'customer') {\r\n console.log(this.auditmappingdata.findIndex(({ img_id }: { img_id: string }) => img_id == draggedImageId))\r\n this.auditmappingdata.splice(this.auditmappingdata.findIndex(({ img_id }: { img_id: string }) => img_id == draggedImageId), 1);\r\n this.auditmappingdata.map((data: any) => data.selected = false)\r\n }\r\n\r\n\r\n console.log(\"🚀 ~ AuditRetagComponent ~ dropImage ~ this.auditmappingdata:\", this.auditmappingdata)\r\n this.customercount = this.auditmappingdata?.length;\r\n const jsonString = JSON.stringify(this.auditmappingdata);\r\n const compressedData = LZString.compress(jsonString);\r\n sessionStorage.setItem('audit', compressedData)\r\n var retagdata = JSON.parse(sessionStorage.getItem('retag') || '{}')\r\n this.retagimage = retagdata;\r\n if (this.retagimage.length == 0) {\r\n this.submitvalue = false;\r\n }\r\n this.category.map((data: any) => {\r\n var count = JSON.parse(sessionStorage.getItem(data.type) || '{}')\r\n data.count = count?.length\r\n })\r\n }\r\n\r\n\r\n\r\n function getTagNameFromHTML(html: any) {\r\n var tempElement = document.createElement('div');\r\n tempElement.innerHTML = html;\r\n var firstChild: any = tempElement.firstChild;\r\n if (firstChild.hasAttribute('name')) {\r\n var namePropertyValue = firstChild.getAttribute('name');\r\n return namePropertyValue;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title\">\r\n <h3 class=\"flex-column\">\r\n <div class=\"card-label\">\r\n <span>{{filedetails?.storeId}}</span>\r\n <span class=\"mx-3 arrow-code\"> - </span>\r\n <span>{{filedetails?.Date}}</span>\r\n </div>\r\n </h3>\r\n <div class=\"rounded-3 ms-3 d-flex align-items-center bg-timer\">\r\n <span class=\"me-3 text-timer fw-semibold\">{{ formattedTime }}</span>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.16667 2.87071C9.16667 2.62023 9.26617 2.38001 9.44329 2.20289C9.62041 2.02577 9.86063 1.92627 10.1111 1.92627H13.8889C14.1394 1.92627 14.3796 2.02577 14.5567 2.20289C14.7338 2.38001 14.8333 2.62023 14.8333 2.87071C14.8333 3.1212 14.7338 3.36142 14.5567 3.53854C14.3796 3.71565 14.1394 3.81516 13.8889 3.81516H12.9444V5.07442L12.9432 5.12605C14.5396 5.30097 16.0528 5.92787 17.3053 6.93308L17.3141 6.92553L18.2585 5.98108C18.374 5.85676 18.5208 5.76588 18.6835 5.71801C18.8463 5.67014 19.019 5.66706 19.1833 5.70908C19.3477 5.75111 19.4977 5.83669 19.6175 5.9568C19.7373 6.07692 19.8225 6.22713 19.8641 6.3916C19.906 6.55578 19.903 6.72823 19.8554 6.89085C19.8077 7.05348 19.7172 7.20029 19.5933 7.3159L18.6489 8.26034L18.6413 8.26915C19.6403 9.51974 20.2658 11.027 20.446 12.6174C20.6261 14.2078 20.3536 15.8167 19.6597 17.2591C18.9658 18.7014 17.8788 19.9185 16.5237 20.7704C15.1686 21.6222 13.6006 22.0741 12 22.0741C10.3994 22.0741 8.83137 21.6222 7.47629 20.7704C6.12122 19.9185 5.03419 18.7014 4.3403 17.2591C3.64641 15.8167 3.37386 14.2078 3.55402 12.6174C3.73418 11.027 4.35973 9.51974 5.35867 8.26915L5.35111 8.26034L4.40667 7.3159C4.23964 7.1369 4.14865 6.90003 4.15287 6.65524C4.1571 6.41045 4.25622 6.17687 4.42934 6.00375C4.60246 5.83063 4.83604 5.73151 5.08083 5.72728C5.32562 5.72306 5.56249 5.81405 5.74149 5.98108L6.68593 6.92553L6.69474 6.93308C7.94681 5.92809 9.45963 5.3012 11.0556 5.12605V3.81516H10.1111C9.86063 3.81516 9.62041 3.71565 9.44329 3.53854C9.26617 3.36142 9.16667 3.1212 9.16667 2.87071ZM12 20.1855C13.7535 20.1854 15.4352 19.4886 16.675 18.2485C17.9148 17.0085 18.6113 15.3267 18.6111 13.5732C18.6109 11.8196 17.9142 10.138 16.6741 8.89813C15.4341 7.65831 13.7523 6.96188 11.9987 6.96204C10.2452 6.96221 8.56354 7.65896 7.32372 8.89902C6.0839 10.1391 5.38747 11.8209 5.38763 13.5744C5.3878 15.328 6.08455 17.0096 7.32461 18.2494C8.56467 19.4893 10.2465 20.1857 12 20.1855ZM12.4899 11.7485L14.1647 10.0737C14.2517 9.98343 14.3559 9.91143 14.4711 9.86188C14.5863 9.81233 14.7102 9.78622 14.8356 9.78507C14.9611 9.78392 15.0854 9.80776 15.2015 9.85519C15.3176 9.90262 15.4231 9.9727 15.5118 10.0613C15.6005 10.15 15.6707 10.2554 15.7182 10.3714C15.7658 10.4875 15.7897 10.6118 15.7887 10.7372C15.7877 10.8626 15.7617 10.9866 15.7122 11.1018C15.6628 11.2171 15.5909 11.3213 15.5007 11.4085L13.8259 13.0846C13.9003 13.3645 13.9095 13.6579 13.8526 13.942C13.7958 14.226 13.6745 14.4933 13.4981 14.7231C13.3217 14.9529 13.0949 15.1391 12.8352 15.2675C12.5754 15.3958 12.2897 15.4628 12 15.4633C11.7327 15.461 11.4688 15.4019 11.226 15.29C10.9832 15.1781 10.767 15.0159 10.5916 14.8141C10.4162 14.6123 10.2857 14.3755 10.2087 14.1195C10.1316 13.8635 10.1099 13.594 10.1448 13.329C10.1798 13.0639 10.2706 12.8093 10.4114 12.582C10.5522 12.3547 10.7396 12.1599 10.9613 12.0104C11.183 11.861 11.4339 11.7604 11.6974 11.7152C11.9609 11.6701 12.231 11.6814 12.4899 11.7485Z\"\r\n fill=\"black\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <a class=\"btn btn-sm btn-default btn-outline py-2 mx-2\" (click)=\"reviewdata()\"><span\r\n class=\"svg-icon svg-icon-primary svg-icon-2x\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M15.8337 10.0001H4.16699M4.16699 10.0001L10.0003 15.8334M4.16699 10.0001L10.0003 4.16675\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"ms-3\">Back to Review</span></a>\r\n <button class=\"btn btn-sm btn-primary py-2 mx-2\" [disabled]=\"submitvalue\"\r\n (click)=\"submitaudit()\">Submit\r\n <span class=\"svg-icon svg-icon-primary svg-icon-2x\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M4.16699 10.0001H15.8337M15.8337 10.0001L10.0003 4.16675M15.8337 10.0001L10.0003 15.8334\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-center flex-row\">\r\n <span class=\"card-label text-dark\">Total Files - <span>{{totalfile}}</span></span>\r\n \r\n </h3>\r\n <div class=\"card-toolbar \">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"me-3 text fw-semibold\">Unique Customers <span\r\n class=\" badge badge-light-primary\">{{auditmappingdata?.length ? auditmappingdata?.length :\r\n 0}}</span></span>\r\n <div *ngFor=\"let item of category\">\r\n <button class=\"btn btn-outline text w-semibold btn-sm py-2 butn-flag mx-2\" (click)=\"viewcategory(item)\" [disabled]=\"!item?.count\">View\r\n {{item?.name}}\r\n <span class=\" badge badge-light-primary\">{{item?.count}}</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"row\">\r\n <div *ngIf=\"auditLoading\" class=\"card mt-5\">\r\n <div class=\"card-body h-500px\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <h5 class=\"text-dark-600 fw-bold text-center mt-5\">Loading Audit file......</h5> -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"!auditLoading\" class=\"col-md-5\">\r\n <div class=\"card mt-5\">\r\n <div class=\"card-body h-1000px\">\r\n <div class=\"card-label fw-bold\">Images for Retagging</div>\r\n <div class=\"text-sub mt-2 fw-semibold\">Drag and Drop on correct customers</div>\r\n <div class=\"item\" *ngFor=\"let obj1 of retagimage\" (dragover)=\"retagallowDrop($event)\">\r\n <img draggable=\"true\" (dragstart)=\"dragStart($event)\" id=\"{{obj1.img_id}}\" [src]=\"obj1.img_path\"\r\n class=\"my-3 mx-4 img-ret\" (click)=\"selectretagimage(obj1.img_id)\" name=\"retag\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{obj1.img_name}}</div>\r\n <span *ngIf=\"obj1.selected\" class=\"notify-badge1 nwbg\"><i class=\"fa fa-check colorvalue\"\r\n aria-hidden=\"true\" style=\"font-size:15px;color:#00A3FF\"></i></span>\r\n <span class=\"notify-badge cursor-pointer\" (click)=\"removeaudit(obj1)\"\r\n *ngIf=\"obj1.count>1\">{{obj1.count}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!auditLoading\" class=\"col-md-7\">\r\n <div class=\"card mt-5\">\r\n <div class=\"card-body h-1000px\">\r\n <div class=\"card-label fw-bold\">Unique Customers <span class=\"card-label\">{{auditmappingdata?.length ?\r\n auditmappingdata?.length : 0}}</span></div>\r\n <div class=\"item\" *ngFor=\"let obj of auditmappingdata;let i=index\" style=\"padding: 10px;\">\r\n\r\n <img class=\"mx-3 mb-5 img\" [src]=\"obj.img_path\" id=\"{{obj.img_id}}\" alt=\"Image\" name=\"customer\"\r\n (dragover)=\"retagallowDrop($event)\" (drop)=\"dropImage($event)\" draggable=\"true\"\r\n (dragstart)=\"dragStart($event)\" (click)=\"selectgroupimage(obj.img_id )\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{obj.img_name}}</div>\r\n <span *ngIf=\"obj.selected\" class=\"notify-badge1\"><i class=\"fa fa-check\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i></span>\r\n\r\n <span class=\"notify-badge cursor-pointer\" (click)=\"removeaudit(obj)\"\r\n *ngIf=\"obj.count>1\">{{obj.count}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\nimport { FootfallDicviewComponent } from './components/footfall-dicview/footfall-dicview.component';\r\nimport { StartAuditComponent } from './components/start-audit/start-audit.component';\r\nimport { AuditMappingListComponent } from './components/audit-mapping-list/audit-mapping-list.component';\r\nimport { AuditRetagComponent } from './components/audit-retag/audit-retag.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageTicketsComponent\r\n },\r\n {\r\n path: 'list',\r\n component: FootfallDicviewComponent\r\n },\r\n {\r\n path:\"audit\",\r\n component:StartAuditComponent\r\n },\r\n {\r\n path:\"mapping-list\",\r\n component:AuditMappingListComponent\r\n },\r\n {\r\n path:'retag-mapping',\r\n component:AuditRetagComponent \r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageTicketsRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-audit-log',\r\n templateUrl: './audit-log.component.html',\r\n styleUrl: './audit-log.component.scss'\r\n})\r\nexport class AuditLogComponent {\r\n\r\n}\r\n","<p>audit-log works!</p>\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-filter-options',\r\n templateUrl: './filter-options.component.html',\r\n styleUrl: './filter-options.component.scss'\r\n})\r\nexport class FilterOptionsComponent {\r\n @Output() applyFilters = new EventEmitter<any>();\r\n @Output() closePanel = new EventEmitter<void>();\r\n\r\n // sample model\r\n status: string = '';\r\n condition: string = '';\r\n ticketValue: number | null = null;\r\n reviewer: string = '';\r\n\r\n apply() {\r\n const filters = {\r\n status: this.status,\r\n condition: this.condition,\r\n ticketValue: this.ticketValue,\r\n reviewer: this.reviewer\r\n };\r\n this.applyFilters.emit(filters); // send to parent\r\n }\r\n\r\n close() {\r\n this.closePanel.emit();\r\n }\r\n\r\n reset() {\r\n this.status = '';\r\n this.condition = '';\r\n this.ticketValue = null;\r\n this.reviewer = '';\r\n }\r\n}\r\n","<div class=\"filter-card\">\r\n <div class=\"filter-header\">\r\n <span>Filter Options</span>\r\n <button class=\"close-btn\" (click)=\"close()\">✕</button>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Status</label>\r\n <select [(ngModel)]=\"status\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>Open</option>\r\n <option>Closed</option>\r\n <option>In Progress</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Store accuracy (%) by condition</label>\r\n <div class=\"inline-row\">\r\n <select [(ngModel)]=\"condition\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option value=\">\">Greater than</option>\r\n <option value=\"<\">Lesser than</option>\r\n <option value=\">=\">Greater than or equal to</option>\r\n <option value=\"<=\">Lesser than or equal to</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"ticketValue\"\r\n placeholder=\"1 to 100%\"\r\n class=\"percent-input\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Reviewed by</label>\r\n <select [(ngModel)]=\"reviewer\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>drewlenskart.com</option>\r\n <option>user1lenskart.com</option>\r\n <option>user2lenskart.com</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"btn-row\">\r\n <button class=\"btn btn-reset\" (click)=\"reset()\">Reset</button>\r\n <button class=\"btn btn-apply\" (click)=\"apply()\">Apply</button>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoManageTicketsRoutingModule } from './tango-manage-tickets-routing.module';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\nimport { TicketsComponent } from './components/tickets/tickets.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { AddCsmModalComponent } from './components/add-csm-modal/add-csm-modal.component';\r\nimport { CommentModelComponent } from './components/comment-model/comment-model.component';\r\nimport { AuditMetricsComponent } from './components/audit-metrics/audit-metrics.component';\r\nimport { ReTriggerComponent } from './components/re-trigger/re-trigger.component';\r\nimport { AuditLogComponent } from './components/audit-log/audit-log.component';\r\nimport { CountComponent } from './components/count/count.component';\r\nimport { FootfallDicComponent } from './components/footfall-dic/footfall-dic.component';\r\nimport { ReactiveSelectComponent } from './components/reactive-select/reactive-select.component';\r\nimport { GroupSelectComponent } from './components/group-select/group-select.component';\r\nimport { FootfallDicviewComponent } from './components/footfall-dicview/footfall-dicview.component';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { AuditMappingListComponent } from './components/audit-mapping-list/audit-mapping-list.component';\r\nimport { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { StartAuditComponent } from './components/start-audit/start-audit.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ViewcategoryComponent } from './components/viewcategory/viewcategory.component';\r\nimport { RemoveAuditComponent } from './components/remove-audit/remove-audit.component';\r\nimport { TicketFootfallNewComponent } from './components/ticket-footfall-new/ticket-footfall-new.component';\r\nimport { FootfallPopupComponent } from './components/footfall-popup/footfall-popup.component';\r\nimport { FilterOptionsComponent } from './components/filter-options/filter-options.component';\r\nimport { AuditReportPopupComponent } from './components/audit-report-popup/audit-report-popup.component';\r\nimport { AuditRetagComponent } from './components/audit-retag/audit-retag.component';\r\nimport { TicketclosepopupComponent } from './components/ticketclosepopup/ticketclosepopup.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CustomSelectComponent } from './components/custom-select/custom-select.component';\r\nimport { TicketFilterPanelComponent } from './components/ticket-filter-panel/ticket-filter-panel.component';\r\n@NgModule({\r\n declarations: [\r\n TangoManageTicketsComponent,\r\n TicketsComponent, AddCsmModalComponent, CommentModelComponent, AuditMetricsComponent,\r\n ReTriggerComponent, AuditLogComponent, CountComponent, FootfallDicComponent,\r\n ReactiveSelectComponent,\r\n GroupSelectComponent,\r\n FootfallDicviewComponent,\r\n AuditMappingListComponent,\r\n StartAuditComponent,\r\n ViewcategoryComponent,\r\n RemoveAuditComponent,\r\n TicketFootfallNewComponent,\r\n FootfallPopupComponent,\r\n FilterOptionsComponent,\r\n AuditReportPopupComponent,\r\n AuditRetagComponent,\r\n TicketclosepopupComponent,\r\n CustomSelectComponent,\r\n TicketFilterPanelComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageTicketsRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonSharedModule,\r\n NgxDaterangepickerMd,\r\n NgbAccordionModule,\r\n NgxSpinnerModule,\r\n MatTooltipModule\r\n ]\r\n})\r\nexport class TangoManageTicketsModule { }\r\n","/*\r\n * Public API Surface of tango-manage-tickets\r\n */\r\n\r\nexport * from './lib/tango-manage-tickets.module';\r\n\r\nexport * from './lib/components/tango-manage-tickets/tango-manage-tickets.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3.TicketService","i2.TicketService","i3","i4","i4.TicketService","i5.ExcelService","i7","i8","i5","i1.TicketService","i3.ExcelService","i6.ExcelService","i9.ReactiveSelectComponent","i10.GroupSelectComponent","i4.ExcelService","i6","i8.AuditService","i9","i11.CustomSelectComponent","i12.TicketFilterPanelComponent","i5.TicketsComponent","i6.AuditMetricsComponent","i7.FootfallDicComponent","i8.TicketFootfallNewComponent","i1.ExcelService","i2.AuditService","i6.TimerService","i4.TimerService","i5.AuditService","i3.AuditService","i5.TimerService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAea,aAAa,CAAA;AAaJ,IAAA,IAAA;AAA0B,IAAA,EAAA;AAZ9C,IAAA,UAAU;AACV,IAAA,aAAa;AACb,IAAA,WAAW;AACX,IAAA,iBAAiB;AACjB,IAAA,eAAe;AACf,IAAA,iBAAiB;AACjB,IAAA,WAAW;AACX,IAAA,aAAa;AACb,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,eAAe,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;IAChD,WAAA,CAAoB,IAAgB,EAAU,EAAsB,EAAA;QAAhD,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAsB,IAAA,CAAA,EAAE,GAAF,EAAE;QAC9C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACpC,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AAChC,gBAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa;AACtC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB;AAC9C,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe;AAC1C,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;AACpC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB;AAC9C,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa;AACtC,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AACnC,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,MAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,SAAA,CAAW,EAAE,MAAM,CAAC;IACnE;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,0BAA0B,EAC/C,IAAI,EACJ,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC;IACH;AAEA,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,iBAAA,CAAmB,EAAE,IAAI,EAAE;AACpE,YAAA,YAAY,EAAE,aAAa;AAC5B,SAAA,CAAC;IACJ;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,eAAA,CAAiB,EAAE,IAAI,EAAE;AAClE,YAAA,YAAY,EAAE,aAAa;AAC5B,SAAA,CAAC;IACJ;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,kBAAA,CAAoB,EAAE,IAAI,CAAC;IAC7E;AAEA,IAAA,mBAAmB,CAAC,IAAS,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,wBAAA,CAA0B,EAC/C,IAAI,CACL;IACH;AAEA,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,iBAAA,CAAmB,EAAE,IAAI,CAAC;IAC5E;AAEA,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,mBAAA,CAAqB,EAC1C,IAAI,CACL;IACH;AAEA,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,eAAA,CAAiB,EAAE,IAAI,CAAC;IAC1E;AAEA,IAAA,iBAAiB,CAAC,IAAS,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,8BAAA,CAAgC,EACrD,IAAI,CACL;IACH;AAEA,IAAA,iBAAiB,CAAC,MAAW,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,KAAA,CAAO,EAAE,MAAM,CAAC;IAC/D;AAEA,IAAA,YAAY,CAAC,IAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,gBAAA,CAAkB,EAAE,IAAI,CAAC;IAC3E;AACA,IAAA,eAAe,CAAC,IAAQ,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,sBAAA,CAAwB,EAAC,IAAI,CAAC;IACzE;AACA,IAAA,qBAAqB,CAAC,IAAQ,EAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,wBAAwB,EAAC,IAAI,EAAC,EAAC,YAAY,EAAE,aAAa,EAAC,CAAC;IACvG;IACA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,QAAA,CAAU,CAAC;IACrD;IACA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,YAAA,CAAc,CAAC;IACzD;AACA,IAAA,cAAc,CAAC,IAAQ,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,mBAAA,CAAqB,EAAC,IAAI,CAAC;IACvE;AACA,IAAA,gBAAgB,CAAC,IAAQ,EAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,8BAAA,EAAiC,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;IAEtI;AACA,IAAA,YAAY,CAAC,IAAQ,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,aAAA,CAAe,EAAC,IAAI,CAAC;IAC/D;AACA,IAAA,iBAAiB,CAAC,IAAQ,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,kBAAA,CAAoB,EAAC,IAAI,CAAC;IAC1E;AACA,IAAA,WAAW,CAAC,IAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,YAAA,CAAc,EAAC,IAAI,CAAC;IACpE;AACC,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,wBAAA,CAA0B,EAC/C,IAAI,CACL;IACH;AACA,IAAA,qBAAqB,CAAC,IAAS,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,6BAAA,CAA+B,EACxD,IAAI,CACL;IACH;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,aAAa,0BAA0B,EAC/C,IAAI,EACJ,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC;IACH;AAGA,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,WAAW,0BAA0B,IAAI,EAAE,QAAQ,CAAA,SAAA,EAAY,IAAI,EAAE,OAAO,CAAA,WAAA,EAAc,IAAI,EAAE,SAAS,CAAA,QAAA,EAAW,IAAI,EAAE,MAAM,CAAA,UAAA,EAAa,IAAI,EAAE,QAAQ,eAAe,IAAI,EAAE,UAAU,CAAA,CAAE,CACrM;IACH;AACA,IAAA,uBAAuB,CAAC,IAAS,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,WAAW,CAAA,uBAAA,EAA0B,IAAI,EAAE,QAAQ,CAAA,SAAA,EAAY,IAAI,EAAE,OAAO,cAAc,IAAI,EAAE,SAAS,CAAA,QAAA,EAAW,IAAI,EAAE,MAAM,aAAa,IAAI,EAAE,QAAQ,CAAA,YAAA,EAAe,IAAI,EAAE,UAAU,CAAA,CAAE,EACpM,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC;IACH;IAEA,mBAAmB,CACjB,MAAW,EACX,QAAa,EACb,MAAW,EACX,SAAa,EACZ,cAA8B,EAAA;AAE9B,QAAA,IAAI,GAAG,GACR,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,gBAAA,CAAkB;AAC3C,YAAA,CAAA,SAAA,EAAY,MAAM,CAAA,CAAE;AACpB,YAAA,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE;AACvB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;YACnB,CAAA,WAAA,EAAc,SAAS,EAAE;AACzB,QAAA,IAAI,cAAc,EAAE;AACpB,YAAA,GAAG,IAAI,CAAA,gBAAA,EAAmB,cAAc,CAAA,CAAE;AAC3C,QAAA;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACzB;AACA,IAAA,eAAe,CACb,MAAW,EAAA;AAEX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,8BAAA,EAAiC,MAAM,CAAA,CAAE,CACnE;IACH;AAEA,IAAA,mBAAmB,CACjB,MAAW,EACX,QAAa,EACb,MAAW,EACX,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,QAAa,EACb,MAAW,EACX,SAAc,EAAA;AAEd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,sBAAA,EAAyB,MAAM,aAAa,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,aAAA,EAAgB,WAAW,CAAA,OAAA,EAAU,KAAK,CAAA,QAAA,EAAW,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,CACzN;IACH;IAEF,gBAAgB,CACd,MAAW,EACX,QAAa,EACb,MAAW,EACX,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,QAAa,EACb,MAAW,EACX,SAAc,EACd,SAAc,EACd,cAA8B,EAC9B,OAOC,EAAA;AAED,QAAA,IAAI,GAAG,GACL,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,aAAA,CAAe;AACxC,YAAA,CAAA,SAAA,EAAY,MAAM,CAAA,CAAE;AACpB,YAAA,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE;AACvB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE;AAC7B,YAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AACjB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE;AACvB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE;YACzB,CAAA,WAAA,EAAc,SAAS,EAAE;AAE3B,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,GAAG,IAAI,CAAA,gBAAA,EAAmB,cAAc,CAAA,CAAE;AAC3C,QAAA;AAED,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,IAAI,CAAA,gBAAA,EAAmB,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACjF,YAAA;AAED,YAAA,IAAI,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACtC,gBAAA,GAAG,IAAI,CAAA,oBAAA,EAAuB,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACzF,YAAA;AAED,YAAA,IAAI,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE;AACvC,gBAAA,GAAG,IAAI,CAAA,qBAAA,EAAwB,kBAAkB,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3F,YAAA;;YAGD,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5B,GAAG,IAAI,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAE;AAC3E,YAAA;YAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5B,GAAG,IAAI,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAE;AAC3E,YAAA;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,GAAG,IAAI,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA,CAAE;AACrE,YAAA;AACF,QAAA;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B;AAGE,IAAA,yBAAyB,CACvB,MAAW,EACX,QAAa,EACb,MAAW,EACX,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,QAAa,EACb,MAAW,EACX,SAAc,EAAA;AAEd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,iBAAiB,yBAAyB,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,aAAA,EAAgB,WAAW,CAAA,OAAA,EAAU,KAAK,WAAW,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,EACxN,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC;IACH;IAEF,sBAAsB,CACpB,MAAW,EACX,QAAa,EACb,MAAW,EACX,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,QAAa,EACb,MAAW,EACX,SAAc,EACd,SAAc,EACd,cAA8B,EAC9B,OAOC,EAAA;AAED,QAAA,IAAI,GAAG,GACL,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,aAAA,CAAe;AACxC,YAAA,CAAA,SAAA,EAAY,MAAM,CAAA,CAAE;AACpB,YAAA,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE;AACvB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE;AAC7B,YAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AACjB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE;AACvB,YAAA,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE;AACnB,YAAA,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE;YACzB,CAAA,WAAA,EAAc,SAAS,EAAE;AAE3B,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,GAAG,IAAI,CAAA,gBAAA,EAAmB,cAAc,CAAA,CAAE;AAC3C,QAAA;AAED,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,IAAI,CAAA,gBAAA,EAAmB,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACjF,YAAA;AAED,YAAA,IAAI,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACtC,gBAAA,GAAG,IAAI,CAAA,oBAAA,EAAuB,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACzF,YAAA;AAED,YAAA,IAAI,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE;AACvC,gBAAA,GAAG,IAAI,CAAA,qBAAA,EAAwB,kBAAkB,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3F,YAAA;YAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5B,GAAG,IAAI,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAE;AAC3E,YAAA;YAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5B,GAAG,IAAI,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,CAAE;AAC3E,YAAA;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,GAAG,IAAI,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA,CAAE;AACrE,YAAA;AACF,QAAA;QAED,MAAM,OAAO,GAAG;AACd,cAAE,EAAE,YAAY,EAAE,aAAuB;cACvC,EAAE;QAEN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;IACpC;AAGE,IAAA,aAAa,CACX,KAAU,EACV,QAAa,EACb,MAAW,EACX,UAAe,EACf,MAAW,EACX,MAAW,EACX,MAAW,EACX,KAAU,EAAA;AAEV,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU;AACxB,aAAA,GAAG,CAAC,SAAS,EAAE,KAAK;AACpB,aAAA,GAAG,CAAC,UAAU,EAAE,QAAQ;AACxB,aAAA,GAAG,CAAC,QAAQ,EAAE,MAAM;AACpB,aAAA,GAAG,CAAC,QAAQ,EAAE,MAAM;AACpB,aAAA,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACtB,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAC9C,QAAA;AACD,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtC,QAAA;AACD,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtC,QAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;IAC3E;AAEA,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;IAC3E;IAEA,kBAAkB,CAChB,MAAW,EACX,QAAa,EACb,MAAW,EACX,WAAgB,EAChB,QAAa,EACb,SAAc,EAAA;AAEd,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU;AACxB,aAAA,GAAG,CAAC,UAAU,EAAE,MAAM;AACtB,aAAA,GAAG,CAAC,UAAU,EAAE,QAAQ;AACxB,aAAA,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;AAEzB,QAAA,IAAI,WAAW,EAAE;YACf,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;AAChD,QAAA;AAED,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC1C,QAAA;AACD,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;AAC5C,QAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,kBAAA,CAAoB,EAAE;YAClE,MAAM;AACP,SAAA,CAAC;IACJ;AAEA,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,iBAAiB,gBAAgB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;IACjC;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,mBAAA,CAAqB,EAAE,IAAI,CAAC;IAC7E;AAEA,IAAA,oBAAoB,CAAC,IAAS,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,iBAAA,CAAmB,EAAE,IAAI,CAAC;IAC3E;AAEA,IAAA,wBAAwB,CAAC,IAAS,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,qBAAA,CAAuB,EAChD,IAAI,CACL;IACH;AAEF,IAAA,sBAAsB,CAAC,IAAQ,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,cAAA,CAAgB,EAAE,IAAI,CAAC;IACxE;AACA,IAAA,uBAAuB,CAAC,IAAQ,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,sBAAA,CAAwB,EAAE,IAAI,CAAC;IAChF;AACE,IAAA,WAAW,CAAC,IAAS,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,iBAAA,CAAmB,EAAE,IAAI,CAAC;IACvE;AAEA,IAAA,cAAc,CAAC,QAAa,EAAC,IAAQ,EAAC,SAAa,EAAA;QACjD,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ;AACnD,aAAA,GAAG,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAC,SAAS,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,gBAAgB,EAAE,EAAE,MAAM,EAAE,CAAC;IAC7E;AAEA,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,cAAA,CAAgB,EAAE,IAAI,CAAC;IACxE;AACA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,eAAA,CAAiB,EAAE,IAAI,CAAC;IACnE;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,oBAAA,CAAsB,EAC/C,IAAI,CACL;IACH;AAEA,IAAA,eAAe,CAAC,QAAa,EAAA;AAC3B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,gCAAgC,EAAE,EAAE,MAAM,EAAE,CAAC;IAGxF;AACQ,IAAA,YAAY;AAEpB,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEA,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;wGApeW,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCDY,oBAAoB,CAAA;AAWrB,IAAA,WAAA;AACD,IAAA,EAAA;AACC,IAAA,OAAA;AACA,IAAA,KAAA;AAbD,IAAA,QAAQ;IACjB,WAAW,GAAQ,EAAE;AACrB,IAAA,cAAc,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;AACnB,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,aAAa;AACb,IAAA,YAAY;IACZ,KAAK,GAAM,EAAE;IACb,QAAQ,GAAM,EAAE;AAEhB,IAAA,WAAA,CACU,WAA2B,EAC5B,EAAsB,EACrB,OAAsB,EACtB,KAAmB,EAAA;QAHnB,IAAA,CAAA,WAAW,GAAX,WAAW;QACZ,IAAA,CAAA,EAAE,GAAF,EAAE;QACD,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,KAAK,GAAL,KAAK;IACZ;IACH,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;oBACzB,IAAI,CAAC,YAAY,GAAG;wBAClB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAK,UAAU,EAAE;;;;;;qBAMjD;oBACD,IAAI,CAAC,WAAW,EAAE;AACnB,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACJ;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC;AACF,aAAA,iBAAiB,CAAC,IAAI,CAAC,YAAY;AACnC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AAClC,YAAA;AACH,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,GAAG,GAAG;YACR,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,YAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;SAChC;AACD,QAAA,IAAI,CAAC;aACF,eAAe,CAAC,GAAG;AACnB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;AACvC,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACzE,CAAC;AACD,YAAA,QAAQ,EAAE,MAAK,EAAE,CAAC;AACnB,SAAA,CAAC;IACN;AAEA,IAAA,WAAW,CAAC,WAAgB,EAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAChD;IACA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClC;wGA/EW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,2FCbjC,qyEA+BM,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDlBO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,qyEAAA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA;4KAKpB,QAAQ,EAAA,CAAA;sBAAhB;;;MEJU,qBAAqB,CAAA;AAIZ,IAAA,WAAA;AAAoC,IAAA,OAAA;AAC9C,IAAA,KAAA;AAJD,IAAA,QAAQ;IACjB,OAAO,GAAM,EAAE;AACE,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,WAAA,CAAoB,WAA0B,EAAU,OAAsB,EACpE,KAAmB,EAAA;QADT,IAAA,CAAA,WAAW,GAAX,WAAW;QAAyB,IAAA,CAAA,OAAO,GAAP,OAAO;QACrD,IAAA,CAAA,KAAK,GAAL,KAAK;IAEf;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;IACA,aAAa,GAAA;AACX,QAAA,IAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAC;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,0BAA0B,CAAC;AAC5D,QAAA;AACD,QAAA,IAAI,GAAG,GAAG;YACR,UAAU,EAAE,IAAI,CAAC,QAAQ;AACzB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,OAAO;SAE1B;AACC,QAAA,IAAI,CAAC;aACF,iBAAiB,CAAC,GAAG;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;AACvC,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACzE,CAAC;AACD,YAAA,QAAQ,EAAE,MAAK,EAAE,CAAC;AACnB,SAAA,CAAC;IACN;wGAtCW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,2FCVlC,yqDAuBM,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDbO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,yqDAAA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA;yIAKpB,QAAQ,EAAA,CAAA;sBAAhB;;;AEPH,MAAM,UAAU,GAAG,iFAAiF;AACpG,MAAM,eAAe,GAAG,OAAO;AAC/B,MAAM,QAAQ,GAAG,iBAAiB;AAClC,MAAM,aAAa,GAAG,MAAM;MAKf,YAAY,CAAA;AAGvB,IAAA,WAAA,GAAA,EAAgB;IAET,iBAAiB,CAAC,IAAW,EAAE,aAAqB,EAAA;QACzD,MAAM,SAAS,GAAmB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AAChE,QAAA,MAAM,QAAQ,GAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;AACvF,QAAA,MAAM,WAAW,GAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAClF,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC;IAClD;IAEO,eAAe,CAAC,MAAW,EAAE,QAAgB,EAAA;AAClD,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;QAE7B,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAE,eAAe,CAAC;IAC5D;IAEQ,cAAc,CAAC,MAAW,EAAE,QAAgB,EAAA;QAClD,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,eAAe,CAAC;IACpD;IAEO,aAAa,CAAC,MAAW,EAAE,QAAgB,EAAA;QAChD,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAE,aAAa,CAAC;IAC5D;wGAjCW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCGY,gBAAgB,CAAA;AA2CjB,IAAA,EAAA;AACA,IAAA,MAAA;AACA,IAAA,KAAA;AACD,IAAA,EAAA;AACC,IAAA,YAAA;AACA,IAAA,OAAA;AACA,IAAA,YAAA;IAhDV,IAAI,GAAG,OAAO;IACd,WAAW,GAAQ,EAAE;IACrB,WAAW,GAAQ,OAAO;;IAE1B,YAAY,GAAG,EAAE;IACjB,WAAW,GAAG,CAAC;IACf,UAAU,GAAG,CAAC;IACd,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC9B,QAAQ,GAAG,EAAE;AACI,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;IACzC,YAAY,GAAY,KAAK;IAC7B,cAAc,GAAQ,EAAE;IACxB,iBAAiB,GAAQ,EAAE;IAC3B,cAAc,GAAQ,EAAE;IACxB,iBAAiB,GAAQ,EAAE;IAC3B,SAAS,GAAQ,EAAE;AACnB,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,aAAa;AACb,IAAA,YAAY;IACZ,QAAQ,GAAQ,EAAE;IAClB,UAAU,GAAQ,EAAE;IACpB,SAAS,GAAQ,EAAE;AACnB,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,KAAK;IACL,KAAK,GAAW,EAAE;IAClB,MAAM,GAAW,CAAC;IAClB,MAAM,GAAQ,CAAC,CAAC;IAChB,aAAa,GAAQ,EAAE;IACvB,SAAS,GAAQ,EAAE;IACnB,cAAc,GAAQ,EAAE;IACxB,OAAO,GAAY,IAAI;IACvB,MAAM,GAAY,KAAK;IACvB,SAAS,GAAQ,KAAK;IACtB,YAAY,GAAQ,EAAE;IACtB,aAAa,GAAQ,EAAE;IACvB,aAAa,GAAQ,EAAE;AACvB,IAAA,WAAW;AACX,IAAA,eAAe;IACf,iBAAiB,GAAY,KAAK;AAClC,IAAA,WAAA,CACU,EAAqB,EACrB,MAAc,EACd,KAAqB,EACtB,EAAsB,EACrB,YAAsB,EACtB,OAAsB,EACtB,YAA0B,EAAA;QAN1B,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,KAAK,GAAL,KAAK;QACN,IAAA,CAAA,EAAE,GAAF,EAAE;QACD,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,YAAY,GAAZ,YAAY;IAClB;IAEJ,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;QACrB,IAAI,CAAC,KAAK,EAAE;cACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAC7C,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACjD,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC5C,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AAC5C,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACpD,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,gBAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,oBAAA,IAAI,IAAI,EAAE;AACR,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;wBACzB,IAAI,CAAC,YAAY,GAAG;AAClB,4BAAA,KAAK,EAAE,KAAK;AACZ,4BAAA,MAAM,EAAE,CAAC;AACT,4BAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;yBAC9B;wBACD,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,YAAY,EAAE;AACpB,oBAAA;gBACH,CAAC;AACF,aAAA,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,gBAAA,IAAI,CAAC,QAAQ,GAAG,cAAc;gBAC9B,IAAI,CAAC,UAAU,GAAG;AAChB,oBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;AACtC,oBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChC,oBAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,EAAE;AACxD,oBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;iBACrC;AACF,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,aAAa;AAE7B,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC5D,IAAI,CAAC,UAAU,GAAG;AAChB,wBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AAC5B,wBAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE;AACzC,wBAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE;AAC/C,wBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;qBACjC;AACF,gBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,UAAU,GAAG;AAChB,wBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AAC5B,wBAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE;AACzC,wBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;qBACjC;AACF,gBAAA;gBACD,IAAI,CAAC,aAAa,GAAG;AACnB,oBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE;AACvC,oBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE;iBACtC;gBACD,IAAI,CAAC,aAAa,GAAG;AACnB,oBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;AACpC,oBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;iBACrC;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACN;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACxB;IACA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC;AACF,aAAA,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5E,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI;oBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACtC,wBAAA,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO;AAC9B,wBAAA,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO;AAC9B,oBAAA,CAAC,CAAC;AACF,oBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE;wBACnC,IAAI,CAAC,WAAW,EAAE;AACnB,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;4BAChC,IAAI,CAAC,UAAU,GAAG;gCAChB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;gCACnD,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;6BAE5D;4BACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gCAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,4BAAA;AACF,wBAAA;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;4BAChE,IAAI,CAAC,UAAU,GAAG;gCAChB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;gCACnD,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;6BAGnD;4BACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gCAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,4BAAA;AACF,wBAAA;AAAM,6BAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;4BAC9B,IAAI,CAAC,UAAU,GAAG;gCAChB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;6BAGnD;4BACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gCAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,4BAAA;AACF,wBAAA;AACF,oBAAA;oBACD,IAAI,CAAC,QAAQ,EAAE;AAChB,gBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,QAAQ,EAAE;AAChB,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,SAAA,CAAC;IACN;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC;AACF,aAAA,WAAW,CAAC,IAAI,CAAC,YAAY;AAC7B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;gBACjC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAY,KAAI;AACtC,oBAAA,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ;AAC/B,oBAAA,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK;AAC5B,gBAAA,CAAC,CAAC;AACH,YAAA;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;gBACrE,IAAI,CAAC,UAAU,GAAG;oBAChB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;oBACnD,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC3D,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;iBAEtD;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,gBAAA;AACF,YAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACnE,IAAI,CAAC,UAAU,GAAG;oBAChB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;oBACnD,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;oBAClD,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;iBAEtD;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,gBAAA;AACF,YAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;gBAC1E,IAAI,CAAC,UAAU,GAAG;oBAChB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;oBACnD,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;oBACzD,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;iBAEnD;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,gBAAA;AACF,YAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG;oBAChB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;iBAEnD;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;AAC7E,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACN;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IACA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;IACjB;AAEA,IAAA,MAAM,CAAC,MAAc,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACvD,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,QAAA;QACD,IAAI,CAAC,QAAQ,EAAE;IACjB;IACA,UAAU,GAAA;AACR,QAAA,IAAI,GAAG,GAAwB;AAC7B,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACrC,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AACrD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AACrD,YAAA,MAAM,EAAE,IAAI;SACb;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;AACrC,YAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AAChC,QAAA;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AACjC,YAAA,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE;AACvE,QAAA;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACzD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACnE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AAClE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACtE,YAAA;AACF,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AAClE,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACpE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACpE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC7E,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAChC,gBAAA,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE;AACvE,YAAA;AACF,QAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC;iBACF,sBAAsB,CAAC,GAAG;AAC1B,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBACjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC;gBAExD,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC;iBACF,eAAe,CAAC,GAAG;AACnB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBAEjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC;gBAEjD,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC;iBACF,aAAa,CAAC,GAAG;AACjB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBAEjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;gBAE/C,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AACvC,YAAA,IAAI,CAAC;iBACF,sBAAsB,CAAC,GAAG;AAC1B,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBACjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC;gBACzD,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;IAIH;AAEA,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE;AACpE,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI;AAC5B,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE;AAChB,QAAA;IACH;AACA,IAAA,aAAa,CAAC,IAAY,EAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAErD;AACA,IAAA,YAAY,CAAC,UAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;IACjB;AAEA,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE;IACjB;AACA,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO;QACrC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;;AAEzE,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACvB,cAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,QAAQ;cAClD,EAAE;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC;IACA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAC1E,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AACpG,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,wBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;wBAC7B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS;wBACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACxC,4BAAA,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS;AAChC,4BAAA,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS;AAChC,wBAAA,CAAC,CAAC;AACH,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,oBAAA;gBACH;AACD,aAAA,CAAC;AACH,QAAA;IACH;IAEA,WAAW,CAAC,KAAU,EAAE,QAAa,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACrC,CAAC,GAAQ,KAAK,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxC;AAED,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO;;AAErC,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AACxB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,YAAA;AAAM,iBAAA;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjD,gBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACnC,gBAAA;AACF,YAAA;;AAED,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,CAAC;;AAErE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,CAAC;AACxE,QAAA;IACH;IAEA,eAAe,GAAA;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5D,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY;QACvD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YAC9B,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,KAAK,EAAE,MAAM,EAAE;AACjB,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC7B,gBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACtC,oBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AAChE,gBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,oBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE;AACpC,wBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AAChE,oBAAA;AACF,gBAAA;AAAC,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAClC,oBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,EAAE;AAC7C,wBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AAChE,oBAAA;AACF,gBAAA;gBACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;AAC9F,oBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzC,wBAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AACnE,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC5B,gBAAA;AACD,gBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE;AACxC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AACnE,gBAAA;AACD,gBAAA,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACtC,oBAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC;AACjE,gBAAA;AACH,YAAA,CAAC,CAAC;AACH,QAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,GAAG,GAAwB;AAC7B,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACrC,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AACrD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AACrD,YAAA,MAAM,EAAE,KAAK;SACd;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,gBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY;AACtC,gBAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AAChC,YAAA;AAAM,iBAAA;AACL,gBAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;AACrC,gBAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AAChC,YAAA;AACF,QAAA;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACzD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACnE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AAClE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACtE,YAAA;AACF,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AAClE,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACpE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC/B,gBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;AACpE,YAAA;AACD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAClC,gBAAA,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC7E,YAAA;AACF,QAAA;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAChC,YAAA,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE;AACvE,QAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAChC,YAAA,IAAI,CAAC;iBACF,mBAAmB,CAAC,GAAG;AACvB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ;wBAClC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,wBAAA;AAAM,6BAAA;4BACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;4BACrC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK;AACjC,4BAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,4BAAA;AAAM,iCAAA;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAE,4BAAA;AACnH,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,4BAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,4BAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACxB,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,oBAAA;gBACH,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC;iBACF,YAAY,CAAC,GAAG;AAChB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ;wBAClC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,wBAAA;AAAM,6BAAA;4BACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;4BACrC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK;AACjC,4BAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,4BAAA;AAAM,iCAAA;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAE,4BAAA;AACnH,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,4BAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,oBAAA;gBACH,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC;iBACF,UAAU,CAAC,GAAG;AACd,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ;wBACpC,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;wBACvC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK;AACjC,wBAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;4BAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,wBAAA;AAAM,6BAAA;4BAAE,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAE,wBAAA;AAAC,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACxI,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACpB,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,oBAAA;gBACH,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AACvC,YAAA,IAAI,CAAC;iBACF,kBAAkB,CAAC,GAAG;AACtB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;wBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ;wBACpC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,wBAAA;AAAM,6BAAA;4BACL,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;4BACvC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK;AACjC,4BAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,4BAAA;AAAM,iCAAA;gCAAE,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAE,4BAAA;AACnH,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,4BAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,4BAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,4BAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACxB,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,oBAAA;gBACH,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACzB,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAK,EAAG,CAAC;AACpB,aAAA,CAAC;AACL,QAAA;IACH;IAEA,YAAY,CAAC,OAAY,EAAE,QAAa,EAAA;AACtC,QAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,CAAC,EAAE;AACpD,YAAA,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO;AAChC,SAAA,CAAC;IACJ;AACA,IAAA,UAAU,CAAC,OAAY,EAAE,QAAa,EAAE,UAAe,EAAA;AACrD,QAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ;AACpD,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAC3C,YAAA,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO;AAChC,SAAA,CAAC;IACJ;AACA,IAAA,YAAY,CAAC,GAAQ,EAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7D,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;QAClD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AAChC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAS,EAAE,QAAa,EAAE,OAAY,EAAE,UAAe,EAAA;QAC7D,IAAI,IAAI,KAAK,KAAK,EAAE;AAClB,YAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ;AACpD,YAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAC3C,gBAAA,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO;AAChC,aAAA,CAAC;AACH,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ;AACpD,YAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,CAAC,EAAE;gBACpD,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;AAC5C,aAAA,CAAC;AACH,QAAA;IACH;AAEA,IAAA,aAAa,CAAC,QAAa,EAAE,OAAY,EAAE,UAAe,EAAA;AACxD,QAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ;AACpD,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC1C;AACA,IAAA,YAAY,CAAC,QAAa,EAAE,OAAY,EAAE,UAAe,EAAA;AACvD,QAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ;AACpD,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,EAAE;AAC/C,YAAA,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO;AAChC,SAAA,CAAC;IACJ;IACA,WAAW,CAAC,QAAa,EAAE,OAAY,EAAA;AACrC,QAAA,IAAI,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC;IACzC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU;AACvB,QAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,QAAQ;AACrB,QAAA;IACH;wGAxxBW,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mDCd7B,6ypCAkcM,EAAA,MAAA,EAAA,CAAA,8pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;4FDpbO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,6ypCAAA,EAAA,MAAA,EAAA,CAAA,8pEAAA,CAAA,EAAA;;;MEAZ,kBAAkB,CAAA;AAeV,IAAA,WAAA;AAAmC,IAAA,OAAA;IAbtD,QAAQ,GAAY,KAAK;IACzB,OAAO,GAAW,IAAI;IACtB,MAAM,GAAW,KAAK;IACtB,aAAa,GAAS,EAAE;IACxB,YAAY,GAAQ,OAAO;IAC3B,YAAY,GAAO,UAAU;AAC7B,IAAA,YAAY,GAAO,CAAC,UAAU,EAAC,SAAS,CAAC;IACzC,OAAO,GAAO,EAAE;IAChB,MAAM,GAAO,EAAE;AACE,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AAChC,IAAA,YAAY;IACrB,QAAQ,GAAQ,EAAE;IAElB,WAAA,CAAmB,WAA0B,EAAS,OAAqB,EAAA;QAAxD,IAAA,CAAA,WAAW,GAAX,WAAW;QAAwB,IAAA,CAAA,OAAO,GAAP,OAAO;IAE7D;AAGA,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,MACE,MAAM,GAAG,KAAK,CAAC,MAAqB;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACtB,QAAA;IACH;IAEF,QAAQ,GAAA;QACN,IAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,KAAI,SAAS,EAAC;YACjD,IAAI,CAAC,aAAa,GAAG,CAAC,OAAO,EAAC,SAAS,CAAC;AACzC,QAAA;aAAK,IAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,KAAI,OAAO,EAAC;AACrD,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC;AAC/B,QAAA;QACD,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,EAAC,CAAC,GAAO,KAAG;AACd,gBAAA,IAAG,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC1B,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AAClC,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,KAAS,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC3B;AAEA,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC5B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;IAChC;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;AAEA,IAAA,cAAc,CAAC,KAAS,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACrB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,GAAO;AACb,YAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ;AAC3C,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO;YACzC,SAAS,EAAE,IAAI,CAAC,YAAY;AAC5B,YAAA,QAAQ,EAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ;AAC5C,YAAA,WAAW,EAAE,IAAI,CAAC,YAAY,KAAK,UAAU,GAAG,OAAO,GAAG,MAAM;YAChE,UAAU,EAAE,IAAI,CAAC,YAAY,KAAI,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU;YACrH,QAAQ,EAAE,IAAI,CAAC,OAAO;AACtB,YAAA,UAAU,EAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;SACvC;QACD,IAAI,CAAC,YAAY,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE;AACvE,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9B;wGAnFa,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6JCV/B,6sGAoDM,EAAA,MAAA,EAAA,CAAA,qOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD1CO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,6sGAAA,EAAA,MAAA,EAAA,CAAA,qOAAA,CAAA,EAAA;8GAgBhB,YAAY,EAAA,CAAA;sBAApB;gBAQD,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MElB/B,cAAc,CAAA;AAQL,IAAA,OAAA;AAA8B,IAAA,KAAA;AAA2B,IAAA,KAAA;AAA6B,IAAA,EAAA;AANzF,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AAChC,IAAA,IAAI;IACb,OAAO,GAAO,IAAI;IAClB,MAAM,GAAK,KAAK;AAChB,IAAA,WAAW;AAEX,IAAA,WAAA,CAAoB,OAAqB,EAAS,KAAkB,EAAS,KAAoB,EAAS,EAAqB,EAAA;QAA3G,IAAA,CAAA,OAAO,GAAP,OAAO;QAAuB,IAAA,CAAA,KAAK,GAAL,KAAK;QAAsB,IAAA,CAAA,KAAK,GAAL,KAAK;QAAwB,IAAA,CAAA,EAAE,GAAF,EAAE;IAAqB;IACjI,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,MAAM,GAAO;AAChB,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ;AAC7B,YAAA,OAAO,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO;AAC1B,YAAA,SAAS,EAAC,IAAI,CAAC,IAAI,EAAE,SAAS;AAC9B,YAAA,MAAM,EAAG,KAAK;AACd,YAAA,UAAU,EAAG,IAAI,CAAC,IAAI,EAAE,YAAY;AACpC,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE;SACrB;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,YAAA,IAAI,EAAC,CAAC,GAAO,KAAG;AACd,gBAAA,IAAG,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAC;oBAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AACpC,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACpB,gBAAA;AAAI,qBAAA;AACH,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACrB,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAC,CAAC,GAAO,KAAG;AACb,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACxB,CAAC;AACF,SAAA,CAAC;IAEJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,MAAM,GAAO;AACd,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ;AAC7B,YAAA,OAAO,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO;AAC1B,YAAA,SAAS,EAAC,IAAI,CAAC,IAAI,EAAE,SAAS;AAC9B,YAAA,MAAM,EAAG,IAAI;AACb,YAAA,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE;SACrB;AACD,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,aAAa,GAAG,YAAY;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,YAAA,IAAI,EAAC,CAAC,GAAO,KAAG;AACd,gBAAA,IAAG,GAAG,EAAC;oBACL,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAC,IAAI,CAAC;AACnC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAC,CAAC,GAAO,KAAG;gBACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;YACvC,CAAC;AACF,SAAA,CAAC;IAEN;wGApEW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAX,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,2ECX3B,62FAsDA,EAAA,MAAA,EAAA,CAAA,gLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,oBAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA;;4FD3Ca,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,62FAAA,EAAA,MAAA,EAAA,CAAA,gLAAA,CAAA,EAAA;kKAOZ,IAAI,EAAA,CAAA;sBAAZ;;;MEMU,qBAAqB,CAAA;AAoCZ,IAAA,EAAA;AAA8B,IAAA,YAAA;AAA8B,IAAA,OAAA;AAA+B,IAAA,KAAA;AAA2B,IAAA,KAAA;IAnC1I,MAAM,GAAW,KAAK;IACtB,OAAO,GAAW,IAAI;IAEtB,UAAU,GAAO,EAAE;AACnB,IAAA,QAAQ,GAAO;AACb,QAAA,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,YAAY,EAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC;AACtF,QAAA,EAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,YAAY,EAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC;AACzF,QAAA,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,YAAY,EAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK;KACtF;AACyB,IAAA,WAAW;AACpB,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,YAAY;IACZ,aAAa,GAAQ,EAAE;IACvB,MAAM,GAAQ,CAAC;IACf,cAAc,GAAQ,EAAE;IACxB,cAAc,GAAQ,EAAE;IACxB,UAAU,GAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9B,IAAA,UAAU;IACV,KAAK,GAAO,EAAE;IACd,MAAM,GAAO,CAAC;AACd,IAAA,aAAa;IACb,KAAK,GAAG,KAAK;IACb,aAAa,GAAQ,EAAE;AACvB,IAAA,UAAU;IACV,WAAW,GAAO,EAAE;AAEpB,IAAA,UAAU,GAAO;AACf,QAAA,EAAE,WAAW,EAAE,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC,EAAC,EAAC,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC;AACjH,QAAA,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;AACtC,QAAA,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAC,EAAE,EAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,EAAC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAC,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAC,EAAC,EAAE,EAAC,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,EAAC,EAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAC,EAAE;KACvP;AAED,IAAA,UAAU;IACV,YAAY,GAAQ,SAAS;IAE7B,WAAA,CAAoB,EAAqB,EAAS,YAAqB,EAAS,OAAsB,EAAS,KAAkB,EAAS,KAAkB,EAAA;QAAxI,IAAA,CAAA,EAAE,GAAF,EAAE;QAA4B,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAkB,IAAA,CAAA,OAAO,GAAP,OAAO;QAAwB,IAAA,CAAA,KAAK,GAAL,KAAK;QAAsB,IAAA,CAAA,KAAK,GAAL,KAAK;IAE/I;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YAC5E,IAAG,IAAI,IAAE,IAAI,EAAC;AACZ,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;gBACxB,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA;AACH,QAAA,CAAC,CAAC;IACH;IAEA,WAAW,GAAA;AACV,QAAA,IAAI,IAAI,GAAO;AACb,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AAC7E,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACzE,gBAAgB,EAAG,IAAI,CAAC,cAAc;YACtC,eAAe,EAAG,IAAI,CAAC,aAAa;YACpC,cAAc,EAAG,IAAI,CAAC,cAAc;AACpC,YAAA,iBAAiB,EAAG,IAAI,CAAC,WAAW,KAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACnE,YAAA,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE;SACX;QACD,IAAG,IAAI,CAAC,aAAa,EAAC;AAAC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;AAAC,QAAA;aAAK,IAAG,IAAI,CAAC,UAAU,EAAC;AAAC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;AAAC,QAAA;QAC5H,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,YAAA,IAAI,EAAC,CAAC,GAAO,KAAI;AACf,gBAAA,IAAG,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAC;oBACxB,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;oBACnC,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAClC,oBAAA,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAC;AAC1B,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACnB,oBAAA;AACD,oBAAA,IAAG,IAAI,CAAC,UAAU,GAAG,EAAE,EAAC;wBACtB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,oBAAA;AAAI,yBAAA;wBACH,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/B,oBAAA;AACD,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACxB,gBAAA;AAAI,qBAAA;AACH,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACrB,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAC,CAAC,GAAO,KAAG;AACf,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAChB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;gBACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;YACxC;AACA,SAAA,CAAC;IACH;IAEA,eAAe,GAAA;AACb,QAAA,IAAG,IAAI,CAAC,UAAU,GAAG,EAAE,EAAC;YACtB,OAAO,IAAI,CAAC,UAAU;AACvB,QAAA;AAAI,aAAA;YACH,OAAO,IAAI,CAAC,KAAK;AAClB,QAAA;IACH;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,YAAA,IAAI,EAAC,CAAC,GAAO,KAAI;AACf,gBAAA,IAAG,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,EAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AACnC,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC,EAAE,EAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5F,MAAM,YAAY,GAAS,EAAE;AAC7B,oBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE;AACzB,oBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAS,KAAI;wBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC5B,4BAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACvB,4BAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,wBAAA;AACH,oBAAA,CAAC,CAAC;oBACF,MAAM,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;AACzF,oBAAA,aAAa,CAAC,MAAM,GAAG,YAAY;AACpC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAC,CAAC,GAAO,KAAI;YAElB,CAAC;AACJ,SAAA,CAAC;IACD;IAEC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,IAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAO,KAAK,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,CAAC;AAChH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAO,KAAK,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,CAAC;QAChH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAO,KAAK,GAAG,CAAC,WAAW,KAAI,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE;QACxF,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA,IAAA,YAAY,CAAC,UAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU;QACnC,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,QAAQ;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,GAAO;AACb,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AAC7E,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACzE,gBAAgB,EAAG,IAAI,CAAC,cAAc;YACtC,eAAe,EAAG,IAAI,CAAC,aAAa;YACpC,cAAc,EAAG,IAAI,CAAC,cAAc;AACpC,YAAA,iBAAiB,EAAG,IAAI,CAAC,WAAW,KAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACnE,YAAA,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE;SACX;QACD,IAAG,IAAI,CAAC,aAAa,EAAC;AAAC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;AAAC,QAAA;aAAK,IAAG,IAAI,CAAC,UAAU,EAAC;AAAC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;AAAC,QAAA;AAC5H,QAAA,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,YAAA,IAAI,EAAC,CAAC,GAAO,KAAI;AACf,gBAAA,IAAG,GAAG,EAAC;oBACH,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAC,cAAc,CAAC;AACjD,gBAAA;YACL,CAAC;AACD,YAAA,KAAK,EAAC,CAAC,GAAO,KAAG;gBACf,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;YACxC;AACA,SAAA,CAAC;IACJ;AAEA,IAAA,YAAY,CAAC,IAAQ,EAAA;QACpB,IAAG,IAAI,KAAK,KAAK,EAAC;AAChB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,QAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACxB,QAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,EAAE;IACnB;IAEA,UAAU,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;QACjC,IAAI,CAAC,WAAW,EAAE;IACnB;AAEA,IAAA,eAAe,CAAC,KAAS,EAAA;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAC;AACrD,YAAA,QAAQ,EAAC,IAAI;AACb,YAAA,IAAI,EAAC;AACN,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAE;AAC/B,YAAA,IAAI,EAAG,QAAQ;YACf,QAAQ,EAAC,KAAK,EAAE,QAAQ;YACxB,OAAO,EAAE,KAAK,EAAE,OAAO;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAC,KAAK,EAAE,QAAQ;AACxB,YAAA,SAAS,EAAE;SACZ;IACH;AACA,IAAA,cAAc,CAAC,KAAS,EAAA;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAC;AACrD,YAAA,QAAQ,EAAC,IAAI;AACb,YAAA,IAAI,EAAC;AACN,SAAA,CAAC;AACJ,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAE;AAC/B,YAAA,IAAI,EAAG,OAAO;YACd,QAAQ,EAAC,KAAK,EAAE,QAAQ;YACxB,OAAO,EAAE,KAAK,EAAE,OAAO;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAC,KAAK,EAAE,QAAQ;AACxB,YAAA,SAAS,EAAE;SACZ;IACD;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3D;AAEA,IAAA,aAAa,CAAC,KAAS,EAAA;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAC;AACzD,YAAA,QAAQ,EAAC,IAAI;;AAEd,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,YAAY,GAAE;AACvC,YAAA,IAAI,EAAG,OAAO;AACd,YAAA,IAAI,EAAE,KAAK;YACX,YAAY,EAAG,IAAI,CAAC;SACrB;QACD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACrC,YAAA,IAAI,GAAG,EAAE;AACH,gBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,oBAAA,IAAI,EAAC,CAAC,GAAO,KAAG;AACd,wBAAA,IAAG,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAC;4BACzB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;4BAC7C,IAAI,CAAC,WAAW,EAAE;AACnB,wBAAA;oBACH,CAAC;AACD,oBAAA,KAAK,EAAC,CAAC,GAAO,KAAG;wBACb,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;oBAC1C;AACD,iBAAA,CAAC;AACH,YAAA;AACL,QAAA,CAAC,CAAE;IACP;AAEA,IAAA,WAAW,CAAC,KAAS,EAAA;QACnB,IAAI,aAAa,GAAG,KAAK;QACzB,IAAG,aAAa,KAAK,QAAQ,EAAC;AAC5B,YAAA,OAAO,qBAAqB;AAC7B,QAAA;AAAK,aAAA,IAAG,aAAa,KAAK,UAAU,IAAI,aAAa,KAAK,cAAc,EAAC;AACxE,YAAA,OAAO,qBAAqB;AAC7B,QAAA;AAAI,aAAA;AACH,YAAA,OAAO,qBAAqB;AAC7B,QAAA;IACH;AAEA,IAAA,QAAQ,CAAC,KAAS,EAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE;IACpB;wGA5Qa,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qKCpBlC,+zrBAwVc,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;4FDpUD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,+zrBAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;8LAcH,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa;;;AE1B1B,MAAM,6BAA6B,GAAa;AAC9C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE,IAAI;CACZ;MAQY,uBAAuB,CAAA;AAgBd,IAAA,UAAA;AAAmC,IAAA,EAAA;AAd/C,IAAA,SAAS;AACT,IAAA,SAAS;AACR,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,KAAK;AACL,IAAA,IAAI;AACH,IAAA,UAAU,GAAG,IAAI,YAAY,EAAE;IAC/B,QAAQ,GAAY,KAAK;IACzB,QAAQ,GAA+B,IAAI;AAC3C,IAAA,UAAU;AACpB,IAAA,UAAU;IAGV,WAAA,CAAoB,UAAyB,EAAU,EAAqB,EAAA;QAAxD,IAAA,CAAA,UAAU,GAAV,UAAU;QAAyB,IAAA,CAAA,EAAE,GAAF,EAAE;IAEzD;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;QACrC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9C,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACxB,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAGA,IAAA,UAAU,CAAC,GAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAyB,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAElG;AACA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IAErB;AACA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AACA,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAE9B;AAEA,IAAA,QAAQ,CAAC,IAAyB,EAAA;QAChC,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;IACjC;AAGA,IAAA,OAAO,CAAC,KAAiB,EAAA;;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAqB;AACjD,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACtB,YAAA;AACF,QAAA;IACH;AAEA,IAAA,kBAAkB,CAAC,aAA0B,EAAA;AAC3C,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa;AACjD,QAAA,IAAI,aAAa,EAAE;YACjB,MAAM,kBAAkB,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC5E,YAAA,IAAI,kBAAkB,EAAE;AACtB,gBAAA,OAAO,IAAI;AACZ,YAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;AAC9C,YAAA;AACF,QAAA;AACD,QAAA,OAAO,KAAK;IACd;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;QAC9B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACvD;wGApFW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,6BAA6B,CAAC,0BCd5C,m7BAiBM,EAAA,MAAA,EAAA,CAAA,gwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDDO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,qBAAqB,EAAA,SAAA,EAGpB,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,m7BAAA,EAAA,MAAA,EAAA,CAAA,gwBAAA,CAAA,EAAA;+GAMjC,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACS,UAAU,EAAA,CAAA;sBAAnB;gBAiDD,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MElE/B,oBAAoB,CAAA;AAuBX,IAAA,EAAA;AAA+B,IAAA,WAAA;AArBnD,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;AAC1C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;IACH;AAES,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,KAAK;AACL,IAAA,OAAO;IACP,cAAc,GAAQ,EAAE;AACxB,IAAA,QAAQ;AACR,IAAA,KAAK;AACJ,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;IAC5C,cAAc,GAAQ,EAAE;AACxB,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,UAAU;IAGV,WAAA,CAAoB,EAAqB,EAAU,WAAyB,EAAA;QAAxD,IAAA,CAAA,EAAE,GAAF,EAAE;QAA6B,IAAA,CAAA,WAAW,GAAX,WAAW;IAAkB;IAChF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;QACrC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAG;AAC9C,YAAA,IAAG,CAAC,KAAK,IAAI,CAAC,UAAU,EAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACxB,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAEhC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAC1C,IAAI,CAAC,eAAe,EAAE;AACvB,QAAA;AACD,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;YAC5L,IAAI,CAAC,oBAAoB,EAAE;AAC5B,QAAA;IACH;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;QAClB,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,YAAiB,KAAI;AACjD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,YAAiB,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5H,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACvB,YAAA;AACH,QAAA,CAAC,CAAC;IAEJ;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACtD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY;IACxC;AAEA,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA;AAAM,aAAA;YACL,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAChD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1D;AACF,QAAA;QACD,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,QAAQ,CAAC,KAAU,EAAE,IAAS,EAAA;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAE;AAChC,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3G,YAAA;AACF,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAW,KAAI;AAC1C,gBAAA,IAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;AAC9C,oBAAA,OAAO,CAAC,UAAU,GAAG,KAAK;AAC3B,gBAAA;AACH,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;AAC1D,YAAA,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE;YACjC,OAAO,YAAY,CAAC,UAAU;AAC9B,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IAEvC;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAEvE,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AAC/C,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACzB,QAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;YAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AAC7C,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IACvC;AAGA,IAAA,kBAAkB,CAAC,MAAa,EAAA;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA;IACH;IAEA,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC;IAClE;wGAxIW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kVCPjC,o/FA2CM,EAAA,MAAA,EAAA,CAAA,guFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDpCO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,o/FAAA,EAAA,MAAA,EAAA,CAAA,guFAAA,CAAA,EAAA;+GAM5B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAQjC,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MEDU,oBAAoB,CAAA;AA4DrB,IAAA,EAAA;AACA,IAAA,aAAA;AACA,IAAA,EAAA;AACA,IAAA,MAAA;AACA,IAAA,KAAA;AACA,IAAA,YAAA;AACA,IAAA,YAAA;AACA,IAAA,EAAA;AAlEV,IAAA,WAAW;IACX,OAAO,GAAY,KAAK;IACxB,MAAM,GAAY,KAAK;IACvB,YAAY,GAAQ,EAAE;IACtB,aAAa,GAAQ,CAAC;IACtB,aAAa,GAAQ,EAAE;IACvB,cAAc,GAAQ,CAAC;IACvB,YAAY,GAAY,IAAI;AAC5B,IAAA,aAAa;AACb,IAAA,gBAAgB;AAChB,IAAA,IAAI;AACJ,IAAA,kBAAkB;AAClB,IAAA,eAAe,GAAQ;AACrB,QAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,QAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE;AACjD,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC9C,QAAA,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;AACjD,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;KACjC;AACD,IAAA,IAAI,GAAQ;AACV,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC;;AAGD,IAAA,YAAY,GAAQ;;AAElB,QAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACxC,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KACzC;AACD,IAAA,YAAY;AACZ,IAAA,UAAU;AAEV,IAAA,UAAU,GAAQ;AAChB,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,SAAS,EAAE,yDAAyD;AACpE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAC,CAAC;AACP,SAAA;AACD,QAAA,UAAU,EAAE;YACV,EAAE,GAAG,EAAE,iBAAiB,EAAE;YAC1B,EAAE,GAAG,EAAE,iBAAiB,EAAE;YAC1B,EAAE,GAAG,EAAE,iBAAiB,EAAE;AAC3B,SAAA;KACF;IACD,cAAc,GAAU,EAAE;IAC1B,WAAW,GAAY,KAAK;IAC5B,MAAM,GAAU,EAAE;AACD,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AAEzC,IAAA,WAAA,CACU,EAAsB,EACtB,aAA4B,EAC5B,EAAqB,EACrB,MAAc,EACd,KAAmB,EACnB,YAAsB,EACtB,YAA0B,EAC1B,EAAe,EAAA;QAPf,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,EAAE,GAAF,EAAE;IACT;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IACA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAExB,IAAI,CAAC,kBAAkB,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC9B,YAAA,cAAc,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;AACvC,YAAA,YAAY,EAAE,IAAI,WAAW,CAAC,SAAS,CAAC;AACxC,YAAA,WAAW,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AACjC,SAAA,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC5C,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;oBACzB,IAAI,CAAC,gBAAgB,GAAG;wBACtB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC7C,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,wBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;qBAC1C;AACD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAC9B,IAAI,CAAC,aAAa,EAAE;AACrB,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACJ;AACA,IAAA,sBAAsB;AACtB,IAAA,gBAAgB,CAAC,IAAQ,EAAA;AACvB,QAAA,IAAI,CAAC;aACF,mBAAmB,CAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI;AAEL,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;oBACzC,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AAChD,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AACjC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;YAClC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;YAC1C,CAAC;AACF,SAAA,CAAC;AACJ,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IACA,MAAM,GAAG,CAAC;IACV,KAAK,GAAG,EAAE;IACV,QAAQ,GAAQ,KAAK;AACrB,IAAA,gBAAgB;AAChB,IAAA,UAAU;IACV,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC9B,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC;AACF,aAAA,mBAAmB,CAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa;AAEnB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;oBACpB,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;oBAEzC,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAClC,oBAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;wBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpC,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC3B,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;AACF,SAAA,CAAC;IACN;IAEA,WAAW,GAAQ,CAAC;IACpB,QAAQ,GAAQ,EAAE;AAClB,IAAA,YAAY,CAAC,UAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;;QAEhC,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU;AACvB,QAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,QAAQ;AACrB,QAAA;IACH;IACA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC;AACF,aAAA,yBAAyB,CACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa;AAEnB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,4BAA4B,CAAC;YACtE,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB,uBAAuB,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAC9D;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,MAAc,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACvD,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,QAAA;QACD,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,UAAU;IAEV,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,iBAAiB,GAAQ,EAAE;AAC3B,IAAA,eAAe;AAEf,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACxD,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACxB,QAAA;QACD,IAAI,CAAC,SAAS,EAAE;IAClB;IACA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC;AACF,aAAA,kBAAkB,CACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc;AAEpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;wBAC7B,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;wBAC/B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AACvC,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,wBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACpB,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACpB,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,gBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;YACrB,CAAC;AACD,YAAA,QAAQ,EAAE,MAAK,EAAE,CAAC;AACnB,SAAA,CAAC;IACN;AACA,IAAA,mBAAmB;AAEnB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAChE;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACvB,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC7B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACxB,QAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAE3B,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;QACrC,IAAI,CAAC,sBAAsB;AAC3B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAE,EAAE;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;QAC1B,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,cAAc,GAAG,CAAC;IAClB,aAAa,GAAG,CAAC;IACjB,mBAAmB,GAAQ,EAAE;AAC7B,IAAA,YAAY;IAEZ,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;QAC3B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE;IACtB;IACA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACxB,QAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,UAAU;IACV,cAAc,GAAG,KAAK;IACtB,eAAe,GAAG,IAAI;IACd,kBAAkB,GAAQ,IAAI;IAEtC,qBAAqB,GAAG,KAAK;AAE7B,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,IAAI,CAAC,qBAAqB;YAAE;AAEhC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;QAC9B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,QAAA;AAED,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;AACA,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,aAAa,CAAC,IAAU,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE;AAC7C,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;AACrC,aAAA;AACF,SAAA,CAAC;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFF;IAEA,WAAW,GAAG,KAAK;IAEnB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;IACtC;AACA,IAAA,WAAW;AAEX,IAAA,YAAY,GAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAC7D,aAAa,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;;AAC3D,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;QAC5B,IAAI,CAAC,aAAa,EAAE;IACtB;IACA,gBAAgB,GAAQ,CAAC;IACzB,mBAAmB,GAAQ,CAAC;AAC5B,IAAA,oBAAoB,CAAC,UAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,wBAAwB,CAAC,QAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,kBAAkB;IAClB,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;gBAC/B,OAAO,IAAI,CAAC,kBAAkB;AAC/B,YAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,gBAAgB;AAC7B,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,kBAAkB;AAC/B,YAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,gBAAgB;AAC7B,YAAA;AACF,QAAA;IACH;IAEA,wBAAwB,GAAQ,CAAC;AACjC,IAAA,yBAAyB,CAAC,UAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,6BAA6B,CAAC,QAAgB,EAAA;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QAEvB,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;AAC9B,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAElD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,QAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;QAEjE,IAAI,IAAI,CAAC,WAAW,EAAE;;YAEpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CACtC;AACF,QAAA;AAAM,aAAA;;YAEL,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CACnC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC1C;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC;AAC1D,QAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACpD;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC9C,YAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW;AACjC,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAU,EAAE;IAE9B,2BAA2B,GAAU,EAAE;IACvC,8BAA8B,GAAU,EAAE;IAC1C,0BAA0B,GAAU,EAAE;IACtC,sBAAsB,GAAU,EAAE;AAClC,IAAA,WAAW;AACX,IAAA,mBAAmB;AACnB,IAAA,eAAe;AACf,IAAA,gBAAgB;AAEhB,IAAA,oBAAoB,CAAC,GAAQ,EAAA;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACvB,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAG,KAAK;AAEtB,IAAA,qBAAqB,CAAC,IAAS,EAAA;QAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AAClC,QAAA,OAAO,EAAE,GAAG,IAAI,EAAE;IACpB;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAE,QAAgB,EAAE,cAAoB,EAAA;AACtE,QAAA,IAAI,YAAiB;QAErB,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,QAAQ;YAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAC5D,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CACtD;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAC/C,CAAC,GAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACzC;oBACD,IAAI,CAAC,aAAa,EAAE;AAClB,wBAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC7D,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;wBACpC,MAAM,EAAE,cAAc,EAAE,MAAM;wBAC9B,QAAQ,EAAE,cAAc,EAAE,QAAQ;wBAClC,SAAS,EAAE,cAAc,EAAE,SAAS;wBACpC,QAAQ,EAAE,cAAc,EAAE,QAAQ;wBAClC,SAAS,EAAE,cAAc,EAAE,SAAS;wBACpC,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,qBAAA,CAAC;AACH,gBAAA;AACF,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAClD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACrC;AAED,oBAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,wBAAA,IAAI,CAAC,2BAA2B;AAC9B,4BAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACrC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CAChD;AACJ,oBAAA;AACF,gBAAA;AACF,YAAA;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;AACF,QAAA;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC3B,YAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;AAC/C,QAAA;aAAM,IAAI,QAAQ,KAAK,cAAc,EAAE;AACtC,YAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;AACnD,QAAA;aAAM,IAAG,QAAQ,KAAK,MAAM,EAAC;AAC5B,YAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;AAC3C,QAAA;QAED,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CACrC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC3C;gBACD,IAAI,CAAC,aAAa,EAAE;AAClB,oBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,gBAAA;AACF,YAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAClC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC3C;AACD,gBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,oBAAA,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9B,gBAAA;AACF,YAAA;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM;AACtD,QAAA;;AAGD,QAAA,MAAM,aAAa,GACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW;QAE5F,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACzB,QAAA;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,EAAE;IACvD;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,cAAc;AAExC,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAE,EAAE;AAE/B,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;;YAG7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACnC,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CACnC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC/B,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACvC,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;gBACzC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;oBAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACjC,4BAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;AAClC,4BAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,wBAAA,CAAC,CAAC;wBAEF,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACpD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CACzC;4BAED,IAAI,CAAC,QAAQ,EAAE;AACb,gCAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;oCACpC,MAAM,EAAE,QAAQ,CAAC,MAAM;oCACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oCAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;oCAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oCAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,oCAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAC7B,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC9B;AACF,iCAAA,CAAC;AACH,4BAAA;AACF,wBAAA;AACF,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;AACF,QAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;IACH;IAEA,wBAAwB,GAAA;AACtB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;AACpE,YAAA,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;AACxE,YAAA,IAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;YAC/D,IACE,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,QAAa,KACzC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CACjD;AAED,gBAAA,OAAO,KAAK;AACf,QAAA;AACD,QAAA,OAAO,IAAI;IACb;IACA,YAAY,GAAG,IAAI;AAEnB,IAAA,qBAAqB,CAAC,IAAS,EAAE,QAAgB,EAAE,cAAoB,EAAA;AACrE,QAAA,IAAI,YAAY;AAEhB,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;;gBAEd,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAC5D,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CACtD;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAC/C,CAAC,GAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACzC;wBACD,IAAI,CAAC,aAAa,EAAE;AAClB,4BAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;4BACpC,MAAM,EAAE,cAAc,EAAE,MAAM;4BAC9B,QAAQ,EAAE,cAAc,EAAE,QAAQ;4BAClC,SAAS,EAAE,cAAc,EAAE,SAAS;4BACpC,QAAQ,EAAE,cAAc,EAAE,QAAQ;4BAClC,SAAS,EAAE,cAAc,EAAE,SAAS;4BACpC,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,yBAAA,CAAC;AACH,oBAAA;AACF,gBAAA;AAAM,qBAAA;;AAEL,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAClD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACrC;;AAGD,wBAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,4BAAA,IAAI,CAAC,2BAA2B;AAC9B,gCAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACrC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CAChD;AACJ,wBAAA;AACF,oBAAA;AACF,gBAAA;;gBAGD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;gBACD;AAEF,YAAA,KAAK,cAAc;AACjB,gBAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;gBAClD;AAEF,YAAA,KAAK,UAAU;AACb,gBAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;gBAC9C;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;gBAC1C;AACC,YAAA;gBACD;AAEH;;AAGD,QAAA,YAAY,GAAG,YAAY,IAAI,EAAE;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3B,gBAAA,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;YAC/D,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;AACxC,kBAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;kBAC9D,EAAE;YAEN,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,IAAI,CAAC,8BAA8B,GAAG,OAAO;AAC9C,YAAA;iBAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;AAClC,gBAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO;AAC1C,YAAA;iBAAM,IAAG,QAAQ,KAAK,MAAM,EAAC;AAC5B,gBAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO;AACtC,YAAA;AACF,QAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,EAAE,MAAM,IAAI,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,IAAI,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,IAAI,CAAC;IAC5D;AAEA,IAAA,WAAW;AACX,IAAA,WAAW,CAAC,MAAA,GAAiB,UAAU,EAAE,WAAmB,WAAW,EAAA;;AAErE,QAAA,IAAI,YAAY;AAChB,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;AACd,gBAAA,YAAY,GAAG,IAAI,CAAC,2BAA2B;gBAC/C;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;gBAClD;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;gBAC9C;AACA,YAAA,KAAK,MAAM;AACX,gBAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;gBAC1C;AACF,YAAA;gBACE;AACH;AAED,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kCAAkC,CAAC;YAC5D;AACD,QAAA;;QAGD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;YAClC,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;AACrC,QAAA,CAAC,CAAC;;QAGF,MAAM,OAAO,GAAU,EAAE;AAEzB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,MAAM,aAAa,GAAQ;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;AACf,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;AAChC,gBAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AAEhD,gBAAA,cAAc,EACZ,QAAQ,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc;AAC1D,gBAAA,kBAAkB,EAChB,QAAQ,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,kBAAkB;AAChE,gBAAA,UAAU,EACV,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU;AAClD,gBAAA,eAAe,EACb,QAAQ,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,eAAe;aAC7D;YAED,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC3B,gBAAA,aAAa,CAAC,QAAQ,GAAG,eAAe;AACxC,gBAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;sBACjC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;YAED,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,aAAa,CAAC,YAAY,GAAG,eAAe;AAC5C,gBAAA,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC;sBACrC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;YACH,IAAG,QAAQ,KAAK,MAAM,EAAC;AACzB,gBAAA,aAAa,CAAC,IAAI,GAAG,eAAe;AACpC,gBAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;sBAC7B,IAAI,CAAC;sBACL,CAAC;AAEN,YAAA;YACK,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,gBAAA,aAAa,CAAC,eAAe,GAAG,eAAe;AAC/C,gBAAA,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;sBAClC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;AAED,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,QAAA;;AAED,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC;gBAC1D;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC;gBAC7D;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;gBACzD;AACA,YAAA,KAAK,MAAM;AACX,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;gBACrD;AACH;;AAGD,QAAA,IAAI,CAAC;AACF,aAAA,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,CACxB,GAAG,EAAE,OAAO,IAAI,6BAA6B,CAC9C;;;;AAID,oBAAA,IAAI,CAAC,cAAc,GAAG,CAAC;oBACvB,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,CAAC,MAAM,EAAE;AACd,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC;AACpD,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,MAAM,GAAG,GACP,GAAG,CAAC,KAAK,CAAC,KAAK;AACf,oBAAA,GAAG,CAAC,KAAK;oBACT,GAAG,EAAE,KAAK,EAAE,OAAO;AACnB,oBAAA,GAAG,CAAC,OAAO;AACX,oBAAA,eAAe;gBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,GAAG,GAAG,CAAC;AAEzD,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC7B,CAAC;AACF,SAAA,CAAC;IACN;IACA,UAAU,GAAQ,EAAE;AACpB,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM;QAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAC9B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/C;IACH;AACA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,kCAAkC,CAAC;IACxD;IACA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;;AAGrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE;IACtB;AACwB,IAAA,SAAS;AACjC,IAAA,UAAU;AACV,IAAA,SAAS;IACT,SAAS,CAAC,IAAS,EAAE,KAAU,EAAA;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACtD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,KAAK,KAAK,iBAAiB,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW;AAC9B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACxB,QAAA;IACH;IACA,MAAM,GAAA;;;AAGJ,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,KAAK,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAEtE,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAC9D,YAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAClE,YAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YAC1D,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,QAAa,KAAI;AAChD,gBAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAC9D,YAAA,CAAC,CAAC;AACH,QAAA;QACD,IAAI,CAAC,KAAK,EAAE;;IAGd;IACA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;;AAEhC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAE,EAAE;IACtB;IACA,WAAW,GAAQ,EAAE;IACrB,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;AAGrB,QAAA,IAAI,CAAC;AACF,aAAA,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACxE,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS;oBACvC,IAAI,CAAC,SAAS,EAAE;AACjB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACN;IACA,MAAM,GAAQ,EAAE;AAChB,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,SAAS,CAAC;IACpD;;;;;;;;;;;;;AAaA,IAAA,qBAAqB,CAAC,SAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,GAAG;AAC1B,QAAA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAClE,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;;AAEjB,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;IACJ;IACA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC1D;wGA9pCW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,gKCtBjC,m8rQA0vCc,EAAA,MAAA,EAAA,CAAA,29IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;4FDpuCD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,m8rQAAA,EAAA,MAAA,EAAA,CAAA,29IAAA,CAAA,EAAA;+QA8jCJ,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;;;MEzkCX,sBAAsB,CAAA;IACnC,OAAO,GAAK,EAAE;AACd,IAAA,MAAM,KAAG;AACT,IAAA,aAAa,KAAG;wGAHH,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0DCPnC,glHA4DM,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDrDO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,glHAAA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA;;;MEKnB,yBAAyB,CAAA;AAQjB,IAAA,WAAA;AANV,IAAA,WAAW;AACX,IAAA,WAAW;AACpB,IAAA,cAAc;AACd,IAAA,SAAS;AAGT,IAAA,WAAA,CAAmB,WAA2B,EAAA;QAA3B,IAAA,CAAA,WAAW,GAAX,WAAW;IAG9B;IAGA,QAAQ,GAAA;QACN,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,IAAI,CAAC,WAAW,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,IAAI,CAAC,WAAW,CAAC;AAC9E,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YACvG,OAAO,CAAC,GAAG,CAAC,kEAAkE,EAAE,IAAI,CAAC,cAAc,CAAC;AACrG,QAAA;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,CAAC,6DAA6D,EAAE,IAAI,CAAC,SAAS,CAAC;AAC3F,QAAA;IAIH;AACA,IAAA,MAAM,CAAC,IAAS,EAAA;QACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3C;wGAnCW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,gICRtC,g2KAmGM,EAAA,MAAA,EAAA,CAAA,sUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD3FO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,g2KAAA,EAAA,MAAA,EAAA,CAAA,sUAAA,CAAA,EAAA;qFAMvB,WAAW,EAAA,CAAA;sBAAnB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;;;MEHU,YAAY,CAAA;AAoBH,IAAA,IAAA;AAA0B,IAAA,EAAA;AAjB9C,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,eAAe;AACf,IAAA,aAAa;AACb,IAAA,YAAY;AAEZ,IAAA,QAAQ,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;AAC1C,IAAA,UAAU,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;AAC3C,IAAA,WAAW;AACX,IAAA,eAAe;AACf,IAAA,WAAW;AACX,IAAA,iBAAiB;AAEjB,IAAA,eAAe,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC;IAChD,WAAA,CAAoB,IAAgB,EAAU,EAAsB,EAAA;QAAhD,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAsB,IAAA,CAAA,EAAE,GAAF,EAAE;QAC9C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACpC,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,aAAa;AACrC,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa;AACtC,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW;AAClC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB;AAC/C,YAAA;YACD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAK,KAAG;AACxC,gBAAA,IAAG,CAAC,EAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7B,gBAAA;AACH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IAEJ;;AAIF,IAAA,eAAe,CAAC,OAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,qBAAqB,OAAO,EAAE,OAAO,CAAA,QAAA,EAAW,OAAO,EAAE,MAAM,CAAA,OAAA,EAAU,OAAO,EAAE,KAAK,CAAA,MAAA,EAAS,OAAO,EAAE,IAAI,CAAA,OAAA,EAAU,OAAO,EAAE,KAAK,eAAe,OAAO,EAAE,UAAU,CAAA,CAAE,CAAC;IACpN;AACA,IAAA,cAAc,CAAC,QAAY,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,CAAA,wCAAA,EAA2C,QAAQ,CAAA,CAAE,CAAC;IACjG;AAGA,IAAA,MAAM,CAAC,IAAS,EAAA;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,CAAA,8BAAA,EAAiC,IAAI,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,MAAM,CAAA,CAAE,EAAE,EAAC,YAAY,EAAE,aAAa,EAAC,CAAC;IAC/I;IAEA,YAAY,CAAC,MAAW,EAAC,IAAQ,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,iCAAiC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAA,CAAE,CAAC;IACpG;AAEA,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,CAAA,iBAAA,CAAmB,EAAE,IAAI,CAAC;IACtE;AACA,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,WAAA,CAAa,EAAE,IAAI,CAAC;IAC/D;AACA,IAAA,mBAAmB,CAAC,OAAW,EAAA;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,2BAAA,EAA8B,OAAO,EAAE,QAAQ,CAAA,SAAA,EAAY,OAAO,EAAE,OAAO,CAAA,SAAA,EAAY,OAAO,EAAE,OAAO,CAAA,CAAE,CAAC;IACpJ;AACA,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,oBAAA,CAAsB,EAAE,IAAI,CAAC;IAC9E;IAIA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,QAAA,CAAU,EAAE,EACnD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAa,KAAI;AACtB,YAAA,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,YAAA,OAAO,QAAQ;QACnB,CAAC,CAAC,EACE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC;AAEQ,IAAA,WAAW,CAAC,KAAwB,EAAA;QAC1C,OAAO,UAAU,CACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAClE;IACH;wGAvFa,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACLD;MASa,qBAAqB,CAAA;AAwBZ,IAAA,EAAA;AAA+B,IAAA,WAAA;AArBnD,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;AAC1C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;IACH;AAES,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,KAAK;AACL,IAAA,OAAO;IACP,cAAc,GAAQ,EAAE;AACxB,IAAA,QAAQ;AACR,IAAA,KAAK;AACJ,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;IAC5C,cAAc,GAAQ,EAAE;AACxB,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,UAAU;IAGV,WAAA,CAAoB,EAAqB,EAAU,WAAyB,EAAA;QAAxD,IAAA,CAAA,EAAE,GAAF,EAAE;QAA6B,IAAA,CAAA,WAAW,GAAX,WAAW;IAAkB;IAChF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;QACrC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAG;AAC9C,YAAA,IAAG,CAAC,KAAK,IAAI,CAAC,UAAU,EAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACxB,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAEhC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAC1C,IAAI,CAAC,eAAe,EAAE;AACvB,QAAA;AACD,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;YAC5L,IAAI,CAAC,oBAAoB,EAAE;AAC5B,QAAA;IACH;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;QAClB,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,YAAiB,KAAI;AACjD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,YAAiB,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5H,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACvB,YAAA;AACH,QAAA,CAAC,CAAC;IAEJ;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACtD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY;IACxC;AAEA,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA;AAAM,aAAA;YACL,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAChD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1D;AACF,QAAA;QACD,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,QAAQ,CAAC,KAAU,EAAE,IAAS,EAAA;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAE;AAChC,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3G,YAAA;AACF,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAW,KAAI;AAC1C,gBAAA,IAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC;AAC9C,oBAAA,OAAO,CAAC,UAAU,GAAG,KAAK;AAC3B,gBAAA;AACH,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;AAC1D,YAAA,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE;YACjC,OAAO,YAAY,CAAC,UAAU;AAC9B,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IAEvC;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAEvE,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AAC/C,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACzB,QAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;YAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AAC7C,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IACvC;AAGA,IAAA,kBAAkB,CAAC,MAAa,EAAA;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA;IACH;IAEA,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC;IAClE;IACA,WAAW,CAAC,IAAS,EAAE,KAAiB,EAAA;QACxC,KAAK,CAAC,eAAe,EAAE;;;QAIvB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd;AACD,QAAA;;AAGD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;AAGtB,QAAA,MAAM,SAAS,GAAQ;AACrB,YAAA,aAAa,EAAE;AACb,gBAAA,OAAO,EAAE;AACV;SACF;;AAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAChC;AACE,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;;QAGrB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AAGpC,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAExD,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAClD,QAAA;;QAGD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;IAC/C;wGA/KW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,6UCXlC,2vJAsIA,EAAA,MAAA,EAAA,CAAA,qzGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FD3Ha,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BAEE,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2vJAAA,EAAA,MAAA,EAAA,CAAA,qzGAAA,CAAA,EAAA;+GAK/C,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAQjC,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MEjBU,0BAA0B,CAAA;AA+EjB,IAAA,EAAA;AAAwB,IAAA,IAAA;AAAyB,IAAA,OAAA;AA9E1D,IAAA,KAAK,GAAG,IAAI,YAAY,EAAO;AAChC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;IACxC,cAAc,GAAkB,IAAI;AACtC,IAAA,QAAQ,GAAkB,IAAI,CAAC;AAC/B,IAAA,MAAM;AAEf,IAAA,eAAe,CAAC,KAAiB,EAAA;;AAG/B,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK;;QAGnC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;;AAGlB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;;QAGpE,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACrB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,UAAU,EAAE,IAAI;AAEhB,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,UAAU,EAAE,IAAI;AAEhB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE,IAAI;AAEb,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,UAAU,EAAE;AACb,aAAA,CAAC;YACJ,IAAI,CAAC,OAAO,EAAE;AACX,QAAA;IACH;AACE,IAAA,MAAM,GAAG,KAAK,CAAC;;IAGf,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;IACpB;;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;AAEA,IAAA,SAAS,GAAG,KAAK,CAAC;AAEpB,IAAA,aAAa,GAAU;QACrB,MAAM;QACN,aAAa;QACb,QAAQ;;;QAGR,SAAS;KACV;AAGC,IAAA,gBAAgB,GAAG;AACjB,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE;AACxC,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;AACvC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE;AACtD,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE;AACrD,QAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;KACvC;AAED,IAAA,UAAU;AAEV,IAAA,WAAA,CAAoB,EAAe,EAAS,IAAgB,EAAS,OAAqB,EAAA;QAAtE,IAAA,CAAA,EAAE,GAAF,EAAE;QAAsB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAqB,IAAA,CAAA,OAAO,GAAP,OAAO;QAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE,CAAC,EAAE,CAAC;YAEZ,iBAAiB,EAAE,CAAC,IAAwB,CAAC;AAC7C,YAAA,YAAY,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAA,UAAU,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3D,iBAAiB,EAAE,CAAC,IAAwB,CAAC;AAC7C,YAAA,YAAY,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAA,UAAU,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3D,cAAc,EAAE,CAAC,IAAwB,CAAC;AAC1C,YAAA,SAAS,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,IAAI,EAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAExD,UAAU,EAAE,CAAC,EAAE,CAAC;YACpB,UAAU,EAAE,CAAC,EAAE,CAAC;AACb,SAAA,CAAC;QACF,IAAI,CAAC,OAAO,EAAE;IAChB;IACF,UAAU,CAAC,KAAU,EAAE,WAAmB,EAAA;QACxC,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAEtC,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,GAAG,CAAC;QACxB,IAAI,KAAK,GAAG,GAAG;YAAE,KAAK,GAAG,GAAG;AAE5B,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzE;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO;IAClC;;;AAKA,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ;IACzD;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAQ,IAAI,CAAC,cAAc,KAAK,QAAQ;IAC1C;;AAGA,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;IAC1D;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAQ,IAAI,CAAC,cAAc,KAAK,SAAS;IAC3C;;AAGA,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO;IACrB;IACA,kBAAkB,GAAG,KAAK;AAC1B,IAAA,gBAAgB,CAAC,MAAc,EAAA;QAC7B,MAAM,QAAQ,GAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;AAC7D,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAClC;IAEA,cAAc,CAAC,KAAY,EAAE,MAAc,EAAA;AACzC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QACjD,MAAM,QAAQ,GAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;AAC7D,QAAA,IAAI,IAAc;QAElB,IAAI,QAAQ,CAAC,OAAO,EAAE;YACpB,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC;AACpE,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AAC1C,QAAA;QAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9C;AAEA,IAAA,oBAAoB,CAAC,KAAkB,EAAA;AACrC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB;IACpD;;IAGA,sBAAsB,GAAA;QACpB,MAAM,QAAQ,GAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;AAC7D,QAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM;IAC7E;;AAGA,IAAA,uBAAuB,CAAC,KAAY,EAAA;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QAEjD,IAAI,QAAQ,CAAC,OAAO,EAAE;;AAEpB,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;AAChE,QAAA;AAAM,aAAA;;YAEL,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC3C,QAAA;IACH;AACA,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;IAC3C;AAEE,IAAA,SAAS,CAAC,WAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,SAAS;IAC9D;AACF,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACzE,IAAI,CAAC,gBAAgB,EAAE;AACxB,QAAA;IACH;;IAEA,QAAQ,GAAU,EAAE;IAGpB,kBAAkB,GAAW,EAAE;;AAG/B,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;QAEjE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC,QAAQ;AACrB,QAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAG;AAC9B,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzC,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpD,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,kBAAkB;AAClB,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;QACjE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC,QAAQ;AACrB,QAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AACrC,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACzC,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpD,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;IACQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB;AACD,QAAA;AAED,QAAA,IAAI,IAAY;AAEhB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,GAAG,OAAO,CAAC;AAChB,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YAC3C,IAAI,GAAG,QAAQ;AAChB,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YAC5C,IAAI,GAAG,SAAS;AACjB,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB;AACD,QAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI;AACzB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AACnB,gBAAA;YACH,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YACpB;AACD,SAAA,CAAC;IACJ;;IAGA,oBAAoB,GAAG,KAAK;IAC5B,oBAAoB,GAAG,KAAK;;AAG5B,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;IAC/C;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;IAC/C;;AAIA,IAAA,sBAAsB,CAAC,KAAkB,EAAA;AACvC,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,oBAAoB;IACxD;AAEA,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChD;IAEA,gBAAgB,CAAC,KAAY,EAAE,KAAa,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QACjD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE7C,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,QAAA;AAAM,aAAA;YACL,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC;AAAE,gBAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,QAAA;QAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACtD;IAEA,uBAAuB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;IAE3D;AAEA,IAAA,mBAAmB,CAAC,KAAY,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QAEjD,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACzB,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AAClD,aAAA,CAAC;AACH,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC/C,QAAA;IACH;;AAIA,IAAA,sBAAsB,CAAC,KAAkB,EAAA;AACvC,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,oBAAoB;IACxD;AAEA,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChD;IAEA,gBAAgB,CAAC,KAAY,EAAE,KAAa,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QACjD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE7C,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,QAAA;AAAM,aAAA;YACL,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC;AAAE,gBAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,QAAA;QAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACtD;IAEA,uBAAuB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;IAE3D;AAEA,IAAA,mBAAmB,CAAC,KAAY,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;QAEjD,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACzB,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AAClD,aAAA,CAAC;AACH,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC/C,QAAA;IACH;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;AAEhB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;AAEhB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AAEb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;;AAGF,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;;AAG5B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,mBAAmB,EAAE;SACtB;;AAGD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;QAGxB,IAAI,CAAC,KAAK,EAAE;IACd;AAEQ,IAAA,WAAW,CACjB,SAA2B,EAC3B,IAAmB,EACnB,EAAiB,EAAA;;AAIjB,QAAA,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;;QAG3C,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,IAAI,EAAE,IAAI,IAAI;AAAE,gBAAA,OAAO,IAAI;AAC3B,YAAA,OAAO,CAAA,EAAG,IAAI,CAAA,IAAA,EAAO,EAAE,EAAE;AAC1B,QAAA;;AAGD,QAAA,MAAM,KAAK,GAA8B;AACvC,YAAA,EAAE,EAAE,GAAG;AACP,YAAA,EAAE,EAAE,GAAG;AACP,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,EAAE;SACZ;QAED,OAAO,CAAA,EAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA,CAAE,CAAC;IACtC;IAEE,OAAO,GAAA;AAEN,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;AAElC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;AAC7F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;AAC7F,QAAA,MAAM,QAAQ,GAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC;AAEpF,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,cAAc,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;AAEhC,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,aAAa,EAAE,QAAQ;AAEvB,YAAA,kBAAkB,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;AACxC,YAAA,mBAAmB,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;SAC1C;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;AAEF,IAAA,aAAa,GAAG;AACd,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE;KACX;;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK;IACrC;IAEA,cAAc,CAAC,IAAwC,EAAE,KAAiB,EAAA;QACxE,KAAK,CAAC,eAAe,EAAE;;QAGvB,IAAI,CAAC,QAAQ,EAAE;;AAGf,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACtD;AAEA,IAAA,cAAc,CAAC,IAAwC,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC;wGAhea,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,ySCXvC,y3ZAkYA,EAAA,MAAA,EAAA,CAAA,ksCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDvXa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,y3ZAAA,EAAA,MAAA,EAAA,CAAA,ksCAAA,CAAA,EAAA;oIAKxB,KAAK,EAAA,CAAA;sBAAd;gBACQ,WAAW,EAAA,CAAA;sBAApB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACM,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAED,eAAe,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AEQ3C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACjB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAMtB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;MAOlB,0BAA0B,CAAA;AAM3B,IAAA,YAAA;AACD,IAAA,EAAA;AACC,IAAA,OAAA;AACA,IAAA,EAAA;AACA,IAAA,YAAA;AACA,IAAA,EAAA;AACA,IAAA,EAAA;AACA,IAAA,MAAA;AACA,IAAA,YAAA;IAbV,WAAW,GAAQ,EAAE;IACrB,YAAY,GAAW,EAAE;IACzB,aAAa,GAAW,CAAC;AACR,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,WAAA,CACU,YAAsB,EACvB,EAAsB,EACrB,OAAsB,EACtB,EAAqB,EACrB,YAA0B,EAC1B,EAAgB,EAChB,EAAe,EACf,MAAc,EACd,YAA0B,EAAA;QAR1B,IAAA,CAAA,YAAY,GAAZ,YAAY;QACb,IAAA,CAAA,EAAE,GAAF,EAAE;QACD,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,YAAY,GAAZ,YAAY;IACnB;AACH,IAAA,aAAa;AACb,IAAA,gBAAgB;AAChB,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,gBAAgB;IAChB,SAAS,GAAQ,EAAE;IACnB,KAAK,GAAG,KAAK;IACb,iBAAiB,GAAQ,EAAE;IAC3B,SAAS,GAAG,IAAI;IAChB,YAAY,GAAQ,EAAE;IACtB,aAAa,GAAQ,EAAE;IACvB,gBAAgB,GAAQ,EAAE;AAC1B,IAAA,YAAY,GAAG,CAAC,CAAc,KAAI;QAChC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QACpC,OAAO,WAAW,GAAG,cAAc,GAAG,KAAK;AAC7C,IAAA,CAAC;AACqB,IAAA,OAAO;IAC7B,aAAa,GAAQ,CAAC;AACO,IAAA,cAAc;AACV,IAAA,kBAAkB;AACnD,IAAA,UAAU;IACV,QAAQ,GAAA;QACN,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU;QAC3B,cAAc,CAAC,KAAK,EAAE;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW;QACzC,IAAI,UAAU,GAAQ,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,IAAI,QAAQ,GAAQ,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAExC,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;oBACzB,IAAI,CAAC,gBAAgB,GAAG;wBACtB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC7C,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,wBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;qBAC1C;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;wBACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,4BAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC/B,wBAAA;6BAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACjC,4BAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC/B,wBAAA;AACF,oBAAA;AACD,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACxB,oBAAA,IAAI,OAAO,GAAG;AACZ,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;qBACrC;AACD,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;AAClD,oBAAA,MAAM,aAAa,GAAG;AACpB,wBAAA,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;AACzC,wBAAA,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;qBACxC;oBACD,IAAI,CAAC,iBAAiB,GAAG;AACvB,wBAAA,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;AACzC,wBAAA,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;qBACxC;oBACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC3C,wBAAA,IAAI,EAAE,CAAC,CAAM,KAAI;AACf,4BAAA,IAAI,CAAC,EAAE;gCACL,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM;AAC/B,4BAAA;wBACH,CAAC;AACF,qBAAA,CAAC;AACH,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACJ;AACA,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,YAAY;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,KAAK,OAAO,EAAE;YAC3C,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AAC9D,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC7B;AACD,YAAA;YAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AAC9D,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC7B;AACD,YAAA;AACF,QAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IAC1B;AAEQ,IAAA,mBAAmB,CAAC,OAAY,EAAA;AACtC,QAAA,MAAM,OAAO,GAAG,OAAO,EAAE,aAAa,IAAI,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QAEjC,MAAM,YAAY,GAAU,EAAE;AAE9B,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;;AAE9B,YAAA,IACE,MAAM,EAAE,UAAU,KAAK,WAAW;AAClC,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;AACrC,gBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAC5B;gBACA,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,YAAA;AAAM,iBAAA;;AAEL,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,YAAA;AACH,QAAA,CAAC,CAAC;;AAGF,QAAA,QACE,YAAY,CAAC,MAAM,GAAG,CAAC;AACvB,YAAA,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE9D;AACQ,IAAA,iBAAiB,CAAC,IAAS,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE;AACnC,QAAA,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAM,KACL,CAAC,CAAC,UAAU,KAAK,QAAQ;AACzB,aAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CACvD;IACH;IAEA,YAAY,GAAiC,EAAE;AAC/C,IAAA,SAAS;AACT,IAAA,OAAO;IACP,YAAY,GAAG,KAAK;IACpB,eAAe,GAAA;;QAEb,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI;;;;;;QAMlD,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACjE,YAAA,OAAO,YAAY;AACpB,QAAA;;QAGD,IAAI,YAAY,GAAQ,IAAI;QAC5B,IAAI,eAAe,GAAQ,IAAI;QAC/B,IAAI,eAAe,GAAQ,IAAI;AAE/B,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO;AAC9B,YAAA,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE;AAE7C,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE;gBACzC,IAAI,CAAC,CAAC,EAAE,MAAM;AAAE,oBAAA,SAAS;AAEzB,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE;AAC5B,oBAAA,YAAY,GAAG,CAAC,CAAC;AAClB,gBAAA;AAED,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACxB,oBAAA,eAAe,GAAG,CAAC,CAAC;AACrB,gBAAA;AAED,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvB,oBAAA,eAAe,GAAG,CAAC,CAAC;AACrB,gBAAA;AACF,YAAA;AACF,QAAA;;QAGD,IAAI,cAAc,GAAgC,IAAI;AAEtD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,KAAK,OAAO,EAAE;YAC3C,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBAC9D,cAAc,GAAG,SAAS;AAC3B,YAAA;iBAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBACrE,cAAc,GAAG,QAAQ;AAC1B,YAAA;AACF,QAAA;QAED,IAAI,WAAW,GAAQ,IAAI;;QAG3B,IAAI,CAAC,cAAc,EAAE;;AAEnB,YAAA,WAAW,GAAG,YAAY,IAAI,eAAe,IAAI,eAAe;AACjE,QAAA;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE;;AAEvC,YAAA,WAAW,GAAG,eAAe,IAAI,YAAY,IAAI,eAAe;AACjE,QAAA;aAAM,IAAI,cAAc,KAAK,QAAQ,EAAE;;YAEtC,WAAW,GAAG,eAAe;AAC9B,QAAA;;AAGD,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW;QAC5B,IAAI,WAAW,EAAE,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACtC,YAAA,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;AACnC,QAAA;AACD,QAAA,OAAO,YAAY;IACrB;IAEA,cAAc,GAAQ,KAAK;IAC3B,qBAAqB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACjE,YAAA,OAAO,IAAI;AACZ,QAAA;QAED,IAAI,eAAe,GAAQ,IAAI;QAC/B,IAAI,eAAe,GAAQ,IAAI;QAC/B,IAAI,YAAY,GAAQ,IAAI;AAC5B,QAAA,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO;AAC9B,YAAA,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE;AAE7C,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;;gBAE3B,IAAI,CAAC,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,MAAM,KAAK,QAAQ,EAAE;AACnD,oBAAA,IAAI,CAAC,cAAc,GAAG,gBAAgB,GAAG,IAAI;AAC7C,oBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,gBAAgB;;AAEnC,gBAAA;gBAED,IAAI,CAAC,EAAE,IAAI,KAAK,aAAa,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;AACzD,oBAAA,YAAY,GAAG,CAAC,CAAC;AAClB,gBAAA;gBAED,IAAI,CAAC,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;oBACrD,eAAe,GAAG,CAAC;;AAEpB,gBAAA;gBAED,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;AACpD,oBAAA,eAAe,GAAG,CAAC,CAAC;AACrB,gBAAA;AACF,YAAA;AACF,QAAA;AACD,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,YAAY;AACpB,QAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,eAAe,EAAE;AAC7C,YAAA,OAAO,eAAe;AACvB,QAAA;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,eAAe,EAAE;AAC7C,YAAA,OAAO,eAAe;AACvB,QAAA;;AAGD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,YAAY,GAAG,CAAC,IAAS,KAAa;QACpC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,KAAK;AACnD,IAAA,CAAC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE;YAC7C,IACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EACnC;gBACA,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;gBAClD,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC9C,gBAAA,IAAI,QAAQ,GAAG;AACb,oBAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,MAAM,CACzD,YAAY,CACb;AACD,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;iBACtE;AACD,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;AAC/B,oBAAA,IAAI,CAAC;AACF,yBAAA,gBAAgB,CAAC;AAChB,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACpC,wBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CACd,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAChC,YAAY,CACb,CAAC,MAAM,CAAC,YAAY,CAAC;qBACvB;AACA,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,yBAAA,SAAS,CAAC;AACT,wBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,4BAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;;gCAE3B,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa;AACjD,4BAAA;wBACH,CAAC;AACF,qBAAA,CAAC;AACL,gBAAA;AACF,YAAA;AACF,QAAA;IACH;AAEA,IAAA,mBAAmB,CAAC,MAAc,EAAA;AAChC,QAAA,MAAM,GAAG,GAAQ;AACf,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,aAAa,EAAE,qBAAqB;AACpC,YAAA,WAAW,EAAE,qBAAqB;AAClC,YAAA,MAAM,EAAE,iBAAiB;AACzB,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,iBAAiB,EAAE,qBAAqB;AACxC,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,uBAAuB,EAAE,oBAAoB;AAC7C,YAAA,MAAM,EAAE,kBAAkB;SAC3B;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;IAC3C;AAEA,IAAA,sBAAsB;AACtB,IAAA,gBAAgB,CAAC,IAAS,EAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC;aACF,mBAAmB,CAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,EACJ,IAAI,CAAC,cAAc;AAEpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;oBACzC,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AAChD,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AACjC,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;YAClC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;YAC1C,CAAC;AACF,SAAA,CAAC;AACJ,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IACA,MAAM,GAAG,CAAC;IACV,KAAK,GAAG,EAAE;IACV,QAAQ,GAAQ,KAAK;AACrB,IAAA,gBAAgB;AAChB,IAAA,UAAU;IACV,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI;IACd,MAAM,GAAG,KAAK;IACd,SAAS,GAAQ,OAAO;IACxB,aAAa,GAAQ,IAAI;IACzB,cAAc,GAAkB,IAAI;IACpC,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,KAAK,OAAO,EAAE;AAC3C,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAC9C,sBAAE;sBACA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAClD,0BAAE;0BACA,IAAI;AACX,QAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACzB,QAAA;IACH;IACQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE;;AAGlC,QAAA,MAAM,OAAO,GAAQ;AACnB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,mBAAmB,EAAE,EAAE;SACxB;;AAGD,QAAA,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE;AAC5B,YAAA,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;AAC1C,QAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,KAAK,OAAO,EAAE;AAC3C,YAAA,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI;AACxE,YAAA,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE;kBAC3C,CAAC,CAAC;kBACF,IAAI;AACR,YAAA,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE;kBAC3C,CAAC,CAAC;kBACF,IAAI;AACT,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;AAC3C,YAAA,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE;kBAC3C,CAAC,CAAC;kBACF,IAAI;AACT,QAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;AAC5C,YAAA,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE;kBAC3C,CAAC,CAAC;kBACF,IAAI;AACT,QAAA;;AAGD,QAAA,IAAI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE;AAChC,YAAA,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB;AAClD,QAAA;;AAGD,QAAA,IAAI,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE;YACjC,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,CAAC;AACrD,QAAA;AAED,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEzC,QAAA,IAAI,CAAC;aACF,gBAAgB,CACf,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAC/B,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,WAAW,EAChB,EAAE,EACF,CAAC,EACD,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,IAAI,CAAC,cAAc,EACnB,OAAO;AAER,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;oBACpB,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AAEzC,oBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/C,oBAAA;oBACD,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAClC,oBAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;wBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpC,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC3B,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;AACF,SAAA,CAAC;IACN;IACA,YAAY,GAAU,EAAE;AACxB,IAAA,cAAc,GAA2B;AACvC,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,oBAAoB,EAAE,mBAAmB;AACzC,QAAA,uBAAuB,EAAE,sBAAsB;AAC/C,QAAA,uBAAuB,EAAE,sBAAsB;AAC/C,QAAA,oBAAoB,EAAE,mBAAmB;AACzC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,QAAQ,EAAE,WAAW;KACtB;AACD,IAAA,aAAa,GAAa;QACxB,WAAW;QACX,MAAM;KACP;IACD,eAAe,GAAa,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC;AAEhE,IAAA,eAAe,CAAC,QAAa,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC3C,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;YACrC,GAAG;AACH,YAAA,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAC7D,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC5C,YAAA,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI;AAChE,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAC1B,QAAA,OAAO;AACJ,aAAA,OAAO,CAAC,UAAU,EAAE,KAAK;AACzB,aAAA,OAAO,CAAC,IAAI,EAAE,GAAG;AACjB,aAAA,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,UAAU;AAAE,YAAA,OAAO,OAAO;AAC7D,QAAA,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,cAAc;AAC9D,YAAA,OAAO,MAAM;QACf,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,QAAQ;AACzD,QAAA,OAAO,MAAM;IACf;IACA,WAAW,GAAQ,CAAC;IACpB,QAAQ,GAAQ,EAAE;AAClB,IAAA,YAAY,CAAC,UAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;;AAEhC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEzC,QAAA,IAAI,CAAC;aACF,gBAAgB,CACf,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAC/B,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,OAAO;AAER,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;oBACpB,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AACzC,oBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/C,oBAAA;oBACD,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAClC,oBAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;wBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpC,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC3B,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEzC,QAAA,IAAI,CAAC;aACF,gBAAgB,CACf,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAC/B,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAC7B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,OAAO;AAER,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;oBACpB,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;AACzC,oBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/C,oBAAA;oBACD,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAClC,oBAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;wBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpC,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC3B,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACtB,CAAC;AACF,SAAA,CAAC;IACN;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU;AACvB,QAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,QAAQ;AACrB,QAAA;IACH;IACA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IACpC;AACA,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;AAC3E,QAAA,IAAI,CAAC;AACF,aAAA,gBAAgB,CAAC;AAChB,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACpC,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,MAAM,CACrE,YAAY,CACb;SACF;AACA,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;;oBAE3B,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa;AACjD,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACN;AACA,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAc,KAAI;gBACrC,MAAM,WAAW,GACf,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrE,OAAO,WAAW,GAAG,cAAc,GAAG,KAAK;AAC7C,YAAA,CAAC;AACF,QAAA;IACH;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YAC9B,IAAI,MAAM,KAAK,aAAa,EAAE;AAC5B,gBAAA,IAAI,GAAG,GAAG;AACR,oBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACpC,oBAAA,UAAU,EAAE,KAAK,CACf,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAChC,YAAY,CACb,CAAC,MAAM,CAAC,YAAY,CAAC;AACtB,oBAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS;AACxC,oBAAA,UAAU,EAAE,oBAAoB;oBAChC,aAAa,EAAE,IAAI,CAAC,aAAa;AACjC,oBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;AACpC,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,QAAQ,EAAE,EAAE;iBACb;AACD,gBAAA,IAAI,CAAC;qBACF,uBAAuB,CAAC,GAAG;AAC3B,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;AAC5B,4BAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,6BAA6B,CAAC;AACtD,4BAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,4BAAA,MAAM,IAAI,GAAG;gCACX,UAAU,EAAE,IAAI,CAAC,aAAa;AAC9B,gCAAA,WAAW,EAAE;AACX,oCAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;AACpC,oCAAA,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACpC,oCAAA,IAAI,EAAE,KAAK,CACT,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAChC,YAAY,CACb,CAAC,MAAM,CAAC,YAAY,CAAC;AACtB,oCAAA,OAAO,EAAE,EAAE;AACX,oCAAA,MAAM,EAAE,EAAE;AACV,oCAAA,SAAS,EAAE,EAAE;AACd,iCAAA;AACD,gCAAA,OAAO,EAAE,EAAE;AACX,gCAAA,YAAY,EAAE;AACZ,oCAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS;AACzC,iCAAA;6BACF;AACD,4BAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1D,4BAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC;AAChD,4BAAA,IAAI,CAAC,MAAM,GAAG,cAAc;AAC5B,4BAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC;AACnD,wBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC;AAC9C,wBAAA;AACD,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;oBACzB,CAAC;AACD,oBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,wBAAA,MAAM,QAAQ,GACZ,GAAG,EAAE,KAAK,EAAE,OAAO;4BACnB,GAAG,EAAE,KAAK,EAAE,KAAK;AACjB,4BAAA,GAAG,EAAE,KAAK;AACV,4BAAA,GAAG,EAAE,OAAO;AACZ,4BAAA,sBAAsB;AACxB,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/B,wBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,wBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,wBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;oBAC5B,CAAC;AACF,iBAAA,CAAC;AACL,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;IACA,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC;aACF,sBAAsB,CACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS;AAEf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,4BAA4B,CAAC;YACtE,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,uBAAuB,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAC9D;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,MAAc,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACvD,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,QAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IACpC;IACA,MAAM,GAAG,YAAY;AACrB,IAAA,UAAU;IAEV,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG;AACV,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;SACvC;AACD,QAAA,IAAI,CAAC;aACF,iBAAiB,CAAC,KAAK;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;;AAE5B,oBAAA,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI;AAC1B,oBAAA,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,CACrC,CAAC,IAAS,KACR,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,UAAU;AAClC,wBAAA,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,QAAQ,CACrC;AACD,oBAAA,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,CACrC,CAAC,IAAS,KACR,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO;AAC/B,wBAAA,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,CACpC;AAED,oBAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACrC,yBAAyB,EACzB;AACE,4BAAA,QAAQ,EAAE,IAAI;AACd,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,QAAQ,EAAE,QAAQ;AACnB,yBAAA,CACF;wBACD,QAAQ,CAAC,iBAAiB,CAAC,WAAW;AACpC,4BAAA,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5B,QAAQ,CAAC,iBAAiB,CAAC,WAAW;AACpC,4BAAA,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AAC9B,4BAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;gCAC3B,IAAI,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO;gCACrC,IAAI,GAAG,IAAI,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oCACtC,IAAI,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAClC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,KAAK,aAAa,CAC3C,CAAC,CAAC,CAAC;AAEJ,oCAAA,IAAI,OAAO,GAAG;AACZ,wCAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,wCAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;AACtC,wCAAA,UAAU,EAAE,OAAO;AACnB,wCAAA,WAAW,EAAE,OAAO;qCACrB;AACD,oCAAA,IAAI,CAAC;yCACF,SAAS,CAAC,OAAO;AACjB,yCAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,yCAAA,SAAS,CAAC;AACT,wCAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,4CAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;gDAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE;AACxC,oDAAA,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AAClC,iDAAA,CAAC;AACH,4CAAA;wCACH,CAAC;AACF,qCAAA,CAAC;AACL,gCAAA;AACF,4BAAA;AAAM,iCAAA,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;AAC5B,gCAAA,MAAM,IAAI,GAAG;AACX,oCAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ;AACrC,oCAAA,WAAW,EAAE;AACX,wCAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;AACpC,wCAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,wCAAA,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;AAChC,wCAAA,OAAO,EAAE,EAAE;AACX,wCAAA,MAAM,EAAE,EAAE;AACV,wCAAA,SAAS,EAAE,EAAE;AACd,qCAAA;AACD,oCAAA,OAAO,EAAE,EAAE;AACX,oCAAA,YAAY,EAAE;AACZ,wCAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;AACtC,qCAAA;iCACF;AACD,gCAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gCAC1D,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AAEpD,gCAAA,IAAI,CAAC,MAAM,GAAG,cAAc;AAC5B,gCAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC;AACnD,4BAAA;AACH,wBAAA,CAAC,CAAC;AACH,oBAAA;AAAM,yBAAA;AACL,wBAAA,MAAM,IAAI,GAAG;AACX,4BAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ;AACrC,4BAAA,WAAW,EAAE;AACX,gCAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;AACpC,gCAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,gCAAA,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;AAChC,gCAAA,OAAO,EAAE,EAAE;AACX,gCAAA,MAAM,EAAE,EAAE;AACV,gCAAA,SAAS,EAAE,EAAE;AACd,6BAAA;AACD,4BAAA,OAAO,EAAE,EAAE;AACX,4BAAA,YAAY,EAAE;AACZ,gCAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;AACtC,6BAAA;yBACF;AACD,wBAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC1D,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AAEpD,wBAAA,IAAI,CAAC,MAAM,GAAG,cAAc;AAC5B,wBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC;AACnD,oBAAA;AACF,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;QAEJ;IACF;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,YAAY;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;QACnC,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IACA,WAAW,GAAG,KAAK;IACnB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;IACtC;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY;IACxC;AACA,IAAA,YAAY,GAAG,KAAK,CAAC;AACrB,IAAA,UAAU;AACA,IAAA,YAAY,GAAG,IAAI,YAAY,EAAO;IAChD,OAAO,GAAA;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE,CAAC,EAAE,CAAC;YACZ,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,aAAa,EAAE,CAAC,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,aAAa,EAAE,CAAC,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC,EAAE,CAAC;YACpB,UAAU,EAAE,CAAC,EAAE,CAAC;AACjB,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/C;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC3B;IACA,iBAAiB,GAAQ,EAAE;IAC3B,aAAa,GAAW,EAAE;IAC1B,cAAc,GAAW,CAAC;IAE1B,eAAe,GAAU,EAAE;AAC3B,IAAA,cAAc,GAAU,EAAE,CAAC;AAC3B,IAAA,WAAW,GAAG,KAAK,CAAC;AAEpB,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC1C;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACrE,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;AACtD,QAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI;AAElE,QAAA,IAAI,CAAC,WAAW;YACd,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM;AAC1D,gBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;IACnC;IAEA,cAAc,GAAG,KAAK;IACtB,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC5B,QAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC3B,QAAA;IACH;AACA,IAAA,eAAe;AACf,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAE,KAAK;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM;AAC1D,gBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;IACnC;AAEA,IAAA,aAAa,GAAQ;AACnB,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,SAAS,EAAE,UAAU;KACtB;IACD,MAAM,GAAQ,EAAE;AAChB,IAAA,QAAQ;AACR,IAAA,qBAAqB,CAAC,SAAc,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,GAAG;AAC1B,QAAA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAClE,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;;AAEjB,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;IACJ;AACA,IAAA,UAAU;;IAGV,0BAA0B,GAAqC,EAAE;;IAGjE,mBAAmB,CAAC,QAAgB,EAAE,WAAmB,EAAA;AACvD,QAAA,QACE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK;IAE7E;;AAGA,IAAA,yBAAyB,CACvB,QAAgB,EAChB,WAAmB,EACnB,KAAY,EAAA;AAEZ,QAAA,MAAM,OAAO,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO;AAE1D,QAAA,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC/C,QAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;AAEtD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACvB,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CACrD,CAAC,EAAE,KAAK,EAAE,KAAK,WAAW,CAC3B;AACF,QAAA;QACD,IAAI,CAAC,wBAAwB,EAAE;IACjC;;AAGA,IAAA,wBAAwB,CAAC,QAAa,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAA,MAAM,UAAU,GAAG,QAAQ,EAAE,cAAc,IAAI,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,EAAE;AAEhE,QAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;IACvE;;IAGA,2BAA2B,CAAC,QAAa,EAAE,KAAY,EAAA;AACrD,QAAA,MAAM,OAAO,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO;AAC1D,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;QAEhC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE,EAAE,MAAM,CACxD,CAAC,CAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SACnC;AAED,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CACxD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,CACrB;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC/C,QAAA;QAED,IAAI,CAAC,wBAAwB,EAAE;IACjC;;AAIA,IAAA,YAAY,CAAC,GAAQ,EAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC9D,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAClD,QAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI,EAAE,CAAC,CAAC;IACtC;IAEA,qBAAqB,GAAG,KAAK;IAC7B,uBAAuB,GAAkB,IAAI;IAC7C,gCAAgC,CAAC,MAAW,EAAE,QAAgB,EAAA;AAC5D,QAAA,IAAI,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,CAAC;QAEnD,IAAI,KAAK,GAAG,CAAC;AAEb,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE;;;;;;;;;;;;AAa1C,YAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE;YAEtB,IAAI,KAAK,CAAC,QAAQ,EAAE;;AAElB,gBAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC/B,oBAAA,KAAK,IAAI,QAAQ,CAAC,MAAM;AACzB,gBAAA;AACF,YAAA;AAAM,iBAAA;;AAEL,gBAAA,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;AACrE,YAAA;AACF,QAAA;AAED,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,uBAAuB,CAAC,IAAY,EAAA;;;QAGlC,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE;AACvE,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAClC,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACpC,QAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACpC,QAAA;;IAEH;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IAEA,QAAQ,GAAQ,EAAE;IAElB,kBAAkB,GAAG,KAAK;IAC1B,cAAc,GAAY,KAAK;IAC/B,eAAe,GAAY,KAAK;IAChC,cAAc,GAAG,CAAC;IAClB,aAAa,GAAG,CAAC;IACjB,kBAAkB,GAAQ,CAAC;IAC3B,WAAW,GAAW,EAAE;IACxB,UAAU,GAAW,EAAE;IACvB,YAAY,GAAQ,EAAE;AACtB,IAAA,kBAAkB;IAClB,aAAa,GAAQ,EAAE;IACvB,qBAAqB,GAAY,KAAK;IAEtC,gBAAgB,GAAW,EAAE;IAC7B,uBAAuB,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAChD,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,IAAI,CAAC,qBAAqB;YAAE;AAEhC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;QAC9B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,QAAA;AAED,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;;IAGnC;IACA,WAAW,GAAa,EAAE;AAC1B,IAAA,SAAS;AACT,IAAA,UAAU;AACV,IAAA,gBAAgB,CAAC,OAAc,EAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU;QAE/B,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,MAAW,KAAI;YACtC,MAAM,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;AACtD,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACnC,gBAAA,IACE,OAAO,EAAE,MAAM,KAAK,aAAa;oBACjC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5C;AACA,oBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,cAAc;AAC5C,gBAAA;AACD,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACpE,oBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;oBAC7B;AACD,gBAAA;;AAED,gBAAA,IACE,OAAO,CAAC,MAAM,KAAK,QAAQ;oBAC3B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACjD;oBACA,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC3B,gBAAA;AACD,gBAAA,IACE,CAAC,OAAO,EAAE,MAAM,KAAK,yBAAyB;AAC5C,oBAAA,OAAO,EAAE,MAAM,KAAK,uBAAuB;oBAC7C,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACtC;oBACA,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC3B,gBAAA;AAED,gBAAA,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;;AAEzC,gBAAA,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;;AAGnD,oBAAA,IACE,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ;wBAC3B,OAAO,EAAE,MAAM,KAAK,yBAAyB;AAC7C,wBAAA,OAAO,EAAE,MAAM,KAAK,uBAAuB;AAC7C,wBAAA,OAAO,EAAE,IAAI,KAAK,aAAa,EAC/B;wBACA,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,aAAa,IAAI,EAAE;;AAG9C,wBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC/B,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,CACvC;AACD,wBAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAO,KAAI;AAChC,4BAAA,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,IAAI,SAAS;AACpC,4BAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,4BAAA,OAAO,GAAG;wBACZ,CAAC,EAAE,EAAE,CAAC,CACP,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAE3C,wBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,oBAAA;oBAED,IAAI,IAAI,EAAE,UAAU,EAAE;AACpB,wBAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3B,oBAAA;AAAM,yBAAA,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE;wBACnC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,oBAAA;AACH,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;AACA,IAAA,YAAY;;AAEJ,IAAA,2BAA2B,CAAC,OAAY,EAAA;QAC9C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE;YAChD;AACD,QAAA;;AAED,QAAA,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK;AACf,cAAE;AACF,cAAE,OAAO,CAAC,IAAI,KAAK;AACnB,kBAAE;kBACA,IAAI;AACV,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO;AAEnB,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;;QAG3E,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAC1B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS;AAChC,QAAA;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAEvB,QAAA,MAAM,cAAc,GAClB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU;aAC1D,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC;QAE9D,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,YAAY;YAC9C,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,YAAY;QAChD,IAAI,cAAc,KAAK,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC7B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC9B,QAAA;IACH;IAEQ,mBAAmB,CAAC,OAAY,EAAE,UAAgC,EAAA;AACxE,QAAA,MAAM,OAAO,GAAG,OAAO,EAAE,aAAa,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAU,EAAE;AAE1B,QAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,EAAE;AAC/C,gBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,YAAA;AACD,YAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE;gBACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;AACnC,YAAA;AACF,QAAA;AAED,QAAA,MAAM,MAAM,GAAG,CAAC,IAAS,KAAI;AAC3B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AAClC,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC;AACjE,YAAA,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;AACxE,QAAA,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM;AAC3C,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;QAC7B,IAAI,IAAI,GAAG,CAAC,EAAE;AACb,QAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE;IAChE;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;IACxC;AAEQ,IAAA,aAAa,CAAC,IAAS,EAAA;QAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AACxE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACtD,QAAA;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AACzE,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACxD,QAAA;AAED,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,kBAAkB;AAClB,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,OAAO,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO;AAE1D,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE;AAE9C,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAY,KAAI;gBAChD,IAAI,IAAI,KAAK,WAAW;oBAAE;AAE1B,gBAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAClD,CAAC,CAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACnC;AAED,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,CAAC;gBAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAC9C,YAAA,CAAC,CAAC;;AAGF,YAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;YAEpC;iBACG,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,WAAW;AAC/C,iBAAA,OAAO,CAAC,CAAC,CAAM,KAAI;AAClB,gBAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM;gBAEzB,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,MAAM,CAChD,CAAC,CAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACnC;AAED,gBAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CACxD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,CACrB;AACH,YAAA,CAAC,CAAC;AACL,QAAA;AAAM,aAAA;;AAEL,YAAA,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAY,KAAI;gBAChD,IAAI,IAAI,KAAK,WAAW;oBAAE;AAC1B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;AAC9B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK;AACpC,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK;AACtC,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC7B,QAAA;;QAGD,IAAI,CAAC,wBAAwB,EAAE;IACjC;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,OAAO,EAAE;AACV,QAAA;QAED,MAAM,WAAW,GAAU,EAAE;QAC7B,MAAM,UAAU,GAAU,EAAE;;QAG5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YAC/C,MAAM,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;YACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAChD,QAAA,CAAC,CAAC;;AAGF,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACnC,YAAA,MAAM,OAAO,GAAG,OAAO,EAAE,aAAa,IAAI,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,UAAU;IACnB;IAEA,gBAAgB,GAAG,KAAK;IACxB,QAAQ,GAAG,KAAK;IAChB,aAAa,GAAG,KAAK;IACrB,WAAW,GAAA;AACT,QAAA,IAAI,GAAG,GAAG;YACR,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,GAAE,IAAI,CAAC,UAAU,EAAE,OAAO;YAChG,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS;AAC5G,YAAA,IAAI,EAAE,KAAK;SACZ;;AAED,QAAA,IAAI,CAAC;aACF,wBAAwB,CAAC,GAAG;AAC5B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;oBAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,CAAC;AAC7C,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,oBAAA;AACF,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,MAAM,QAAQ,GACZ,GAAG,EAAE,KAAK,EAAE,OAAO;oBACnB,GAAG,EAAE,KAAK,EAAE,KAAK;AACjB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,uBAAuB;AACzB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;YACjC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACF,SAAA,CAAC;IACN;AACyB,IAAA,UAAU;IACnC,UAAU,GAAA;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACvD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;AAEA,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,GAAG,cAAc;YAC5B;AACD,QAAA;AAED,QAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE;AACzC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,QAAA;AAAM,aAAA;YACL,IAAI,MAAM,KAAK,MAAM,EAAE;;AAErB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC7B,YAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,YAAA;AACF,QAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,uBAAuB,EAAE;YAC3C,IAAI,CAAC,eAAe,EAAE;AACvB,QAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IAC/B;IACA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC;AACF,aAAA,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;AACpC,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACN;IACA,aAAa,GAAA;AACX,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAChE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YAC9B,IAAI,MAAM,KAAK,aAAa,EAAE;AAC5B,gBAAA,IAAI,OAAO,GAAG;oBACZ,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO;oBACtD,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU;oBAC5D,QAAQ,EAAE,IAAI,CAAC,aAAa;oBAC5B,UAAU,EAAE,IAAI,CAAC,gBAAgB;iBAClC;AAED,gBAAA,IAAI,CAAC;qBACF,qBAAqB,CAAC,OAAO;AAC7B,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,4BAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,qBAAqB,CAAC;gCAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE;AACxC,oCAAA,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AAClC,iCAAA,CAAC;AACL,wBAAA;oBACH,CAAC;AACF,iBAAA,CAAC;AACL,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;IACA,QAAQ,GAAQ,EAAE;AAClB,IAAA,aAAa,CAAC,IAAU,EAAA;AACtB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc;AAEvC,QAAA,IAAI,CAAC;aACF,gBAAgB,CAAC,MAAM;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,EAAE;AACnC,wBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,wCAAwC,CAAC;AAChE,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;AAElD,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBAC/C,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAC1C,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,wBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,4BAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC1B,4BAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AAC1B,wBAAA;AAAM,6BAAA;AACL,4BAAA,MAAM,KAAK,GACT,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC7D,4BAAA,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;AAC9B,4BAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC9B,wBAAA;AACD,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;AAExB,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC7B,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG;oBAC1B,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAC9D;AACH,gBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;YAC9B,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACF,SAAA,CAAC;IACN;IACA,mBAAmB,GAAU,EAAE;;IAG/B,cAAc,GAAQ,EAAE;IACxB,eAAe,GAAQ,EAAE;;;;AAMzB,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,OAAO,EAAE;AACV,QAAA;QAED,MAAM,UAAU,GAAU,EAAE;;QAG5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YAC/C,MAAM,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;YAEnD;AACG,iBAAA,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC;AACxC,iBAAA,OAAO,CAAC,CAAC,OAAY,KAAI;AACxB,gBAAA,MAAM,OAAO,GAAG,OAAO,EAAE,aAAa,IAAI,EAAE;AAC5C,gBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAC7B,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;AAGF,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,QAAa,KAAK,QAAQ,EAAE,UAAU,KAAK,IAAI,CACjD;;AAGD,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACnE;AAED,QAAA,OAAO,cAAc;IACvB;IAEQ,wBAAwB,GAAA;QAC9B,MAAM,GAAG,GAAa,EAAE;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE;AAC9C,QAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU;;AAG1C,QAAA,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;aACpB,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW;AACrC,aAAA,OAAO,CAAC,CAAC,IAAY,KAAI;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAErD,YAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;AAAE,gBAAA,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAExD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AACzB,gBAAA,IACE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,oBAAA,IAAI,CAAC,EAAE;AACP,oBAAA,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,kBAAA;AACA,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,gBAAA;AAAM,qBAAA,IACL,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,oBAAA,IAAI,CAAC,EAAE;AACP,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EACxB;AACA,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,gBAAA;AACH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGJ;aACG,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,WAAW;AAC/C,aAAA,OAAO,CAAC,CAAC,MAAW,KAAI;AACvB,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM;YAC9B,MAAM,kBAAkB,GACtB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,EAAE;AAEjD,YAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,gBAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;AAClC,YAAA;AAED,YAAA,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACnD,gBAAA,IACE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,oBAAA,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1B,kBAAA;oBACA,IAAI,KAAK,CAAC,EAAE,EAAE;AACZ,wBAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACnB,oBAAA;yBAAM,IAAI,MAAM,CAAC,EAAE,EAAE;AACpB,wBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACpB,oBAAA;AACF,gBAAA;AACH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACxD;IAEA,kBAAkB,GAAQ,EAAE;IAC5B,QAAQ,GAA2B,EAAE;AACrC,IAAA,WAAW,CAAC,GAAW,EAAA;AACrB,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD;AAEA,IAAA,aAAa,CAAC,OAAc,EAAA;AAC1B,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YAC9B,MAAM,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;AAEtD,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACnC,gBAAA,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;;oBAEnD,IAAI,IAAI,EAAE,UAAU,EAAE;AACpB,wBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;AAC3B,wBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACvB,4BAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC3C,wBAAA;AACF,oBAAA;;AAGD,oBAAA,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE;wBAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;AACrC,oBAAA;AACH,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM;AAAE,YAAA,OAAO,EAAE;AAE/C,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACrD,QAAA;QAED,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aACvD,IAAI,CAAC,IAAI,CAAC;IACf;IACA,IAAI,GAAQ,UAAU;;AAEtB,IAAA,UAAU;;IAGV,WAAW,CAAC,IAAS,EAAE,KAAU,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO;AAEtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;;AAG3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG;AAC1B,cAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM;cACnC,EAAE;QAEN,IAAI,CAAC,wBAAwB,EAAE;IACjC;;AAGA,IAAA,qBAAqB,CAAC,IAAY,EAAE,EAAO,EAAE,KAAU,EAAA;AACrD,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;AAC/B,QAAA;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAC5C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK;AACnC,QAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAErC,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACrB,gBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACb,YAAA;AACF,QAAA;AAAM,aAAA;;YAEL,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3B,YAAA,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;AACZ,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACnB,YAAA;AACF,QAAA;;QAGD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM;;AAG7C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;QAE9D,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AAEA,IAAA,OAAO;AACiB,IAAA,SAAS;AACjC,IAAA,SAAS;IACT,QAAQ,GAAU,EAAE;IACpB,SAAS,CAAC,IAAS,EAAE,KAAW,EAAA;;AAE9B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACtD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;IACJ;AAEA,IAAA,mBAAmB;AACnB,IAAA,eAAe;AACf,IAAA,gBAAgB;AAChB,IAAA,WAAW;IAEX,2BAA2B,GAAU,EAAE;IACvC,8BAA8B,GAAU,EAAE;IAC1C,0BAA0B,GAAU,EAAE;IACtC,sBAAsB,GAAU,EAAE;AAClC,IAAA,WAAW,CAAC,MAAA,GAAiB,UAAU,EAAE,WAAmB,WAAW,EAAA;QACrE,IAAI,cAAc,GAChB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAC9C,cAAE;cACA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAClD,kBAAE;kBACA,IAAI;;AAEV,QAAA,IAAI,GAAG,GAAG;YACR,EAAE,EAAE,IAAI,CAAC,QAAQ;AACjB,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EACF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI;AAC7C,kBAAE;AACF,kBAAE,QAAQ;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SAC/D;AACD,QAAA,IAAI,CAAC;aACF,sBAAsB,CAAC,GAAG;AAC1B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;oBAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,CACrB,GACE,IAAI,CAAC,kBAAkB,EAAE;AACvB,0BAAE,IAAI,CAAC,kBAAkB,EAAE;0BACzB,IAAI,CAAC;8BACL,IAAI,CAAC;AACP,8BAAE,IACN,CAAA,CAAA,EACE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;wBACpD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CACtC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CACb;oBAED,IAAI,CAAC,MAAM,EAAE;oBACd,IAAI,IAAI,CAAC,QAAQ,EAAE;wBAChB,IAAI,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,CAAC;AAC7C,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,oBAAA;AAED,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAClB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,uBAAuB,CAAC;AAC/C,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,MAAM,QAAQ,GACZ,GAAG,EAAE,KAAK,EAAE,OAAO;oBACnB,GAAG,EAAE,KAAK,EAAE,KAAK;AACjB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,uBAAuB;AACzB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;YACjC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACF,SAAA,CAAC;IACN;IACA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;IAC9B;IACA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;IAClC;AAEA,IAAA,QAAQ,GAAW,CAAC,CAAC;IAErB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IACA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;QAC/C,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AACA,IAAA,iBAAiB,CAAC,IAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,MAAM,gBAAgB,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI;AAE/C,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;YACzC,IAAI,EACF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI;AAC7C,kBAAE;AACF,kBAAE,QAAQ;YACd,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,WAAW,EAAE,IAAI,CAAC,iBAAiB;SACpC;AAED,QAAA,IAAI,CAAC;aACF,oBAAoB,CAAC,GAAG;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;oBAC5B,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE;AACtC,oBAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAExB,oBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAChC,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;wBACxB;AACD,oBAAA;AAED,oBAAA,IAAI,aAA8B;AAClC,oBAAA,IAAI,gBAAgB,EAAE;AACpB,wBAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACvC,CAAC,CAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAC5C;AACF,oBAAA;oBAED,IAAI,CAAC,aAAa,EAAE;AAClB,wBAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACxC,oBAAA;AAED,oBAAA,IAAI,CAAC,cAAc,GAAG,CAAC,aAAa,CAAC;AACrC,oBAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAClC,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,oBAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACzB,gBAAA;YACH,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,gBAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;YAC1B,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACF,SAAA,CAAC;IACN;AACA,IAAA,kBAAkB,CAAC,QAAa,EAAA;QAC9B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;YAC9D,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAChE,QAAA;QACD,IAAI,CAAC,uBAAuB,EAAE;AAE9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC/D;AAEA,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE;QACvC,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAClE;IACH;AAEA,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE;QACvC,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAClE;IACH;AAEA,IAAA,UAAU,CAAC,QAAa,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE;QACvC,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CACjE;IACH;AAEA,IAAA,UAAU,CAAC,QAAa,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE;QACvC,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CACjE;IACH;IAEA,aAAa,CAAC,IAAS,EAAE,QAAa,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC1D;AACD,QAAA;AACD,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;;QAGhC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,CAAC,CAAM,KACL,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;AACxD,aAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CACvD;;QAGD,IAAI,CAAC,WAAW,EAAE;YAChB;AACD,QAAA;;QAGD,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,CAAM,KACL,EACE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;AACxD,aAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CACrD,CACJ;;AAGD,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;QAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;AAAE,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAG5B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK;IACpC;IAEA,QAAQ,GAAqD,SAAS;IACtE,SAAS,CACP,QAAa,EACb,IAAsD,EAAA;AAEtD,QAAA,OAAO,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,IAAI;IAC3E;IAEA,uBAAuB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACjE,YAAA,OAAO,IAAI;AACZ,QAAA;;AAGD,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO;AAC9B,YAAA,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE;;YAG7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAC5B,CAAC,CAAM,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,CAC7D;AAED,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,KAAK;AACb,YAAA;AACF,QAAA;AAED,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,qBAAqB,CAAC,OAAY,EAAA;QAChC,IAAI,CAAC,OAAO,EAAE,aAAa;AAAE,YAAA,OAAO,KAAK;AAEzC,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,aAAsB;QAE9C,MAAM,WAAW,GAAQ,EAAE;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KACnC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CACnC;QAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC1C,YAAA,QACE,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;QAE5E,CAAC,CAAC,CAAC,MAAM;AAET,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QAErD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAU,EAAE,CAAM,KAAI;YAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;QAC3C,CAAC,EAAE,EAAE,CAAC;QAEN,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC1C,YAAA,QACE,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;QAE5E,CAAC,CAAC,CAAC,MAAM;QAET,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;AAC7D,QAAA,MAAM,aAAa,GAAG,mBAAmB,GAAG,gBAAgB;AAE5D,QAAA,OAAO,aAAa,GAAG,CAAC,IAAI,aAAa,KAAK,aAAa;IAC7D;AAEA,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;;QAGrB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AAGpC,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAExD,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAClD,QAAA;;QAGD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;IAC/C;IAEA,kBAAkB,GAAA;QAChB,IAAI,cAAc,GAChB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAC9C,cAAE;cACA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAClD,kBAAE;kBACA,IAAI;AACV,QAAA,IAAI,GAAG,GAAG;AACR,YAAA,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO;YACtD,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU;YAC5D,IAAI,EACF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI;AAC7C,kBAAE;AACF,kBAAE,QAAQ;AACd,YAAA,IAAI,EAAE,KAAK;SACZ;AACD,QAAA,IAAI,CAAC;aACF,sBAAsB,CAAC,GAAG;AAC1B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;AAC5B,oBAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,4BAA4B,CAAC;AACrD,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,oBAAA,MAAM,GAAG,GAAG;AAClB,wBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AACtC,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,wBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO;wBACzC,IAAI,EACF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI;AAC7C,8BAAE;AACF,8BAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,CAAC,QAAQ;wBACxB,WAAW,EAAE,IAAI,CAAC,iBAAiB;qBACpC;AAED,oBAAA,IAAI,CAAC;yBACF,oBAAoB,CAAC,GAAG;AACxB,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,yBAAA,SAAS,CAAC;AACT,wBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,4BAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;gCAC5B,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE;gCACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gCACpC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gCAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5C,4BAAA;wBACH;AACC,qBAAA,CAAC;AACC,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;AAClD,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,MAAM,QAAQ,GACZ,GAAG,EAAE,KAAK,EAAE,OAAO;oBACnB,GAAG,EAAE,KAAK,EAAE,KAAK;AACjB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,sBAAsB;AACxB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;;AAE/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC5B,CAAC;AACF,SAAA,CAAC;IACN;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;IACrC;AACgC,IAAA,iBAAiB;IACjD,WAAW,GAAU,EAAE;IACvB,mBAAmB,GAAG,CAAC;IACvB,YAAY,GAAG,mBAAmB;AAClC,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACjD,YAAA,OAAO,IAAI;AACZ,QAAA;AAED,QAAA,IACE,IAAI,CAAC,mBAAmB,IAAI,IAAI;YAChC,IAAI,CAAC,mBAAmB,GAAG,CAAC;YAC5B,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EACnD;AACA,YAAA,OAAO,IAAI;AACZ,QAAA;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACnD;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB;AACpC,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;IAClD;AACA,IAAA,cAAc;AACd,IAAA,gBAAgB,CAAC,IAAS,EAAE,MAAW,EAAE,UAAkB,EAAE,KAAa,EAAA;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;QAGzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;AAC1B,QAAA;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,QAAA;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;YAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACvC,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,QAAA;;AAGD,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC;;QAGxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC7C,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;IACJ;IAEQ,eAAe,CAAC,UAAqC,EAAE,MAAW,EAAA;AACxE,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;;AAGd,QAAA,IAAI,MAAM,EAAE;YACV,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAChC,CAAC,IAAS,KACR,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;AAC/C,iBAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CACvC;AACF,QAAA;;QAGD,IACE,KAAK,GAAG,CAAC;AACT,YAAA,UAAU,IAAI,IAAI;AAClB,YAAA,UAAU,IAAI,CAAC;AACf,YAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EACpC;YACA,KAAK,GAAG,UAAU;AACnB,QAAA;;QAGD,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,KAAK,GAAG,CAAC;AACV,QAAA;;AAGD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;IAClC;;IAGA,oBAAoB,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE;AAEtC,QAAA,QACE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,IAAI,CACP,CAAC,CAAM,KACL,CAAC,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,QAAQ,CACjE;IAEL;;AAGA,IAAA,uBAAuB,CAAC,IAAS,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE;AACnC,QAAA,QACE,OAAO,CAAC,IAAI,CACV,CAAC,CAAM,KACL,CAAC,CAAC,UAAU,KAAK,SAAS;AAC1B,aAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CACvD,IAAI,IAAI;IAEb;;AAGA,IAAA,qBAAqB,CAAC,IAAS,EAAA;;AAE7B,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC/B,YAAA,OAAO,KAAK;AACb,QAAA;;QAGD,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;AACxD,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,KAAK;AACb,QAAA;;AAGD,QAAA,OAAO,IAAI;IACb;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC;YAAE;AAClC,QAAA,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,mBAAmB,KAAK;AAC3B,kBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG;AAC5B,kBAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;IACpC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC;YAAE;AAClC,QAAA,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG;AACrD,kBAAE;AACF,kBAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;IACpC;AACA,IAAA,UAAU;IACV,aAAa,CAAC,IAAS,EAAE,KAAU,EAAA;QACjC,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IACtB;IACA,aAAa,CAAC,IAAS,EAAE,KAAU,EAAA;QACjC,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IACtB;AACA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU;AAC1C,QAAA,OAAO,CAAC,EACN,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,iCAAiC,CACxC;IACH;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU;AAC1C,QAAA,OAAO,CAAC,EACN,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,iCAAiC,CACxC;IACH;;IAGA,cAAc,GAAA;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC/B,QAAA;aAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC/B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACvB,QAAA;IACH;AAEA,IAAA,YAAY,CAAC,IAA6B,EAAA;AACxC,QAAA,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE;AACpD,QAAA,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE;AAEpD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;;;;IAIvC;IAEA,kBAAkB,GAAG,KAAK;IAC1B,gBAAgB,GAAG,KAAK;AAExB,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB;AACnD,QAAA;AAAM,aAAA,IAAI,OAAO,EAAE,IAAI,KAAK,aAAa,EAAE;AAC1C,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAC/C,QAAA;IACH;AAEA,IAAA,WAAW;IACX,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,cAAc,CACb,IAAI,CAAC,aAAa,EAAE,MAAM,EAC1B,SAAS,EACT,IAAI,CAAC,YAAY,EAAE,QAAQ;AAE5B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;AAC5B,oBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI;AAC7B,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,OAAM,CAAC;AACnB,SAAA,CAAC;IACN;IACA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC;AACF,aAAA,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;AACpE,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;AAC5B,oBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI;AAC5B,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACzB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,OAAM,CAAC;AACnB,SAAA,CAAC;IACN;AACA,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IAC/B;IACA,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,KAAK,OAAO,EAAE;AAC3C,YAAA,IAAI,GAAG,GAAG;AACR,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;AACnC,gBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ;AACzC,gBAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;gBACtC,UAAU,EAAE,IAAI,CAAC,SAAS;aAC3B;AACD,YAAA,IAAI,CAAC;iBACF,aAAa,CAAC,GAAG;AACjB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;wBAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,CACrB,GAAG,EAAE,IAAI,EAAE;AACT,8BAAE,GAAG,EAAE,IAAI,EAAE;8BACX,8BAA8B,CACnC;wBACD,IAAI,CAAC,gBAAgB,EAAE;wBACvB,IAAI,CAAC,YAAY,EAAE;AACpB,oBAAA;gBACH,CAAC;AACF,aAAA,CAAC;YACJ;AACD,QAAA;AAED,QAAA,IAAI,GAAG,GAAG;AACR,YAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ;YACzC,UAAU,EACR,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK;AAC9C,kBAAE;AACF,kBAAE,QAAQ;AACd,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS;SACvC;AACD,QAAA,IAAI,CAAC;aACF,kBAAkB,CAAC,GAAG;AACtB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;oBAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,CACrB,GAAG,EAAE,IAAI,EAAE;AACT,0BAAE,GAAG,EAAE,IAAI,EAAE;0BACX,8BAA8B,CACnC;oBACD,IAAI,CAAC,gBAAgB,EAAE;oBACvB,IAAI,CAAC,YAAY,EAAE;AACpB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,uBAAuB,CAAC;AAC/C,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,MAAM,QAAQ,GACZ,GAAG,EAAE,KAAK,EAAE,OAAO;oBACnB,GAAG,EAAE,KAAK,EAAE,KAAK;AACjB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,sBAAsB;AACxB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;YACjC,CAAC;AACF,SAAA,CAAC;IACN;IACA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;IACA,gBAAgB,GAAG,KAAK;AAExB,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAChC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;IAChD;;IAIA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IAC/B;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;;AAE7B,QAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B;AACkC,IAAA,mBAAmB;IACrD,iBAAiB,GAAA;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAChE,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IACA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;;;IAG/B;IAEA,sBAAsB,GAAA;;;;;AAKpB,QAAA,IAAI,UAAe;AAEnB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;;AAE/B,YAAA,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAU,MAAM;gBACpD,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS;AAChD,aAAA,CAAC,CAAC;AACJ,QAAA;AAAM,aAAA;;AAEL,YAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAU,MAAM;gBACxD,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS;AAChD,aAAA,CAAC,CAAC;AACJ,QAAA;AAED,QAAA,MAAM,GAAG,GAAG;YACV,UAAU;AACV,YAAA,IAAI,EAAE,KAAK;SACZ;QAED,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AACjD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;;AAE3B,oBAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,6BAA6B,CAAC;AACtD,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,oBAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACzB,gBAAA;AAAM,qBAAA;;AAEN,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC;AAC7C,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC;YAClD,CAAC;AACF,SAAA,CAAC;IACJ;AACA,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,QACE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,KAAK,iBAAiB;IAE9E;IACA,kBAAkB,GAAQ,EAAE;;AAE5B,IAAA,aAAa,CAAC,GAAQ,EAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC9C;;IAGA,iBAAiB,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAM,KACjD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CACxB;IACH;;IAGA,4BAA4B,GAAA;AAC1B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC3C,QAAA,QACE,UAAU,CAAC,MAAM,GAAG,CAAC;AACrB,YAAA,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhE;IACA,aAAa,GAAG,IAAI;IAEZ,mBAAmB,GAAA;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;IAC3D;;IAEA,kBAAkB,CAAC,GAAQ,EAAE,KAAY,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YAAE;AAEhC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;AAC/C,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;AAE9B,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC;AAC5D,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACtD,CAAC,CAAM,KAAK,CAAC,KAAK,GAAG,CACtB;AACF,QAAA;QACD,IAAI,CAAC,mBAAmB,EAAE;IAC5B;;AAGA,IAAA,mBAAmB,CAAC,KAAY,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;AAC/C,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;AAE9B,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE;AAC3D,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC7B,QAAA;QACD,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IACA,eAAe,GAAG,KAAK;IACvB,sBAAsB,GAAU,EAAE;IAClC,eAAe,GAAe,IAAI;AAElC,IAAA,eAAe,CAAC,OAAY,EAAA;;AAE1B,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO;QAC9B,IAAI,CAAC,sBAAsB,GAAG,OAAO,EAAE,YAAY,IAAI,EAAE;AACzD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;IAC7B;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;IAC7B;AAEA,IAAA,eAAe;AACf,IAAA,UAAU,GAA2B,EAAE,CAAC;IAExC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC;AACF,aAAA,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;oBAC5B,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE;oBAEhE,MAAM,iBAAiB,GACrB,IAAI,CAAC,eAAe,EAAE,iBAAiB,IAAI,EAAE;AAE/C,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,oBAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AACtC,wBAAA,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE;4BAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;AAC3C,wBAAA;AACH,oBAAA,CAAC,CAAC;AACH,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACrB,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACtB,CAAC;AACF,SAAA,CAAC;IACN;IACA,mBAAmB,GAAA;;IAEnB;AAEA,IAAA,aAAa,CAAC,OAAY,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IACpC;IACA,SAAS,GAA4C,KAAK;;;;;;;;;;;;;;;;IAsB1D,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI;QAEzC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAY,KAAI;YAC5C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC5C,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;AAC9D,oBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,WAAW,EAAE;AAClD,oBAAA;AACF,gBAAA;AACH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AACQ,IAAA,aAAa,CAAC,IAAS,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE;QAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CACtB,CAAC,CAAM,KAAK,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ,CACpE;AAED,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS;AAE1B,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,WAAW,EAAE;QAE1C,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,UAAU;AAAE,YAAA,OAAO,QAAQ;AAC3E,QAAA,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ;AAAE,YAAA,OAAO,QAAQ;AAEvD,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,mBAAmB,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,MAAM,KAAK,QAAQ;AAC3D,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,MAAM,KAAK,QAAQ;AAC3D,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,MAAM,KAAK,SAAS;AAE7D,QAAA,OAAO,IAAI;IACb;;;;AAMA,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;IACpC;IAEA,YAAY,GAAU,EAAE;AAExB,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,EAAE;QAElD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC;AACD,QAAA;;QAGD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAS,KAAI;;AAE5C,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE;;YAG3D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;;YAG9C,IAAI,GAAG,KAAK,UAAU;AAAE,gBAAA,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,aAAa;YACrE,IAAI,GAAG,KAAK,UAAU;AACpB,gBAAA,QACE,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU;YAErE,IAAI,GAAG,KAAK,YAAY;gBACtB,OAAO,CAAC,KAAK,WAAW,IAAI,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;YAC9D,IAAI,GAAG,KAAK,UAAU;AAAE,gBAAA,OAAO,IAAI;;YAGnC,OAAO,CAAC,KAAK,GAAG;AAClB,QAAA,CAAC,CAAC;IACJ;wGA9zFW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,s2BCvCvC,iy7WA6qHc,EAAA,MAAA,EAAA,CAAA,+ohBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,qBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;4FDtoHD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,iy7WAAA,EAAA,MAAA,EAAA,CAAA,+ohBAAA,CAAA,EAAA;uSAoCb,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS;gBAES,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB;gBACM,kBAAkB,EAAA,CAAA;sBAAlD,SAAS;uBAAC,oBAAoB;gBAi6BrB,YAAY,EAAA,CAAA;sBAArB;gBA2hBwB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY;gBA0VC,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAmaU,iBAAiB,EAAA,CAAA;sBAAhD,SAAS;uBAAC,mBAAmB;gBA+T9B,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB;gBAUI,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB;;;MEjkFrB,2BAA2B,CAAA;AAMlB,IAAA,QAAA;AAAiC,IAAA,KAAA;AAA8B,IAAA,MAAA;AAAqB,IAAA,EAAA;AAA8B,IAAA,OAAA;IALtI,WAAW,GAAK,cAAc;AACb,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,KAAK;IACL,WAAA,CAAoB,QAAwB,EAAS,KAAqB,EAAS,MAAa,EAAQ,EAAqB,EAAS,OAAqB,EAAA;QAAvI,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAyB,IAAA,CAAA,KAAK,GAAL,KAAK;QAAyB,IAAA,CAAA,MAAM,GAAN,MAAM;QAAe,IAAA,CAAA,EAAE,GAAF,EAAE;QAA4B,IAAA,CAAA,OAAO,GAAP,OAAO;IAC7I;AACF,IAAA,UAAU;IACR,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACjB,QAAA,MAAM,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;AACtF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACzE,YAAA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAC/B,gBAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAE1B,YAAA;AAAK,iBAAA;gBACJ,IAAI,CAAC,uBAAuB,EAAE;AAC/B,YAAA;AACL,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,EAAE;QACX,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,uBAAuB,GAAA;AACrB,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE;;QAE5D,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;;AAEvD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;IACtF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,+CAA+C,CAAC;QAC7E,IAAI,WAAW,GAAS,EAAE;QAC1B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,EAAE;AAClD,YAAA,WAAW,GAAG;AACZ,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,IAAI;AAClB,iBAAA;aACF;AACF,QAAA;aAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,EAAE;AAC1D,YAAA,WAAW,GAAE;AACX,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,IAAI;AAClB,iBAAA;aACF;AACF,QAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC;IAC3C;AAGA,IAAA,YAAY,CAAC,KAAS,EAAA;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IACF,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;oBACzB,IAAI,CAAC,WAAW,EAAE;AACnB,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,GAAG,GAAE;AACP,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS;AAC7C,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;SACrC;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;AACxE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAG,GAAG,CAAC,IAAI,KAAI,GAAG,EAAC;oBACf,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;wGAzGa,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,gECVxC,6oIA0C+B,EAAA,MAAA,EAAA,CAAA,ytBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDhClB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,6oIAAA,EAAA,MAAA,EAAA,CAAA,ytBAAA,CAAA,EAAA;;;MEgBzB,wBAAwB,CAAA;AA4BzB,IAAA,EAAA;AACA,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,EAAA;AACA,IAAA,MAAA;AACA,IAAA,KAAA;AACA,IAAA,KAAA;AACA,IAAA,YAAA;AACA,IAAA,EAAA;IAnCV,KAAK,GAAG,KAAK;AACb,IAAA,UAAU;AACV,IAAA,IAAI;IACJ,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9B,IAAA,kBAAkB;AAClB,IAAA,eAAe,GAAQ;AACrB,QAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,QAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE;AACjD,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC9C,QAAA,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;AAC7C,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;KACrC;AACD,IAAA,IAAI,GAAQ;AACV,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC;;AAGD,IAAA,YAAY,GAAQ;;AAElB,QAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACxC,QAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KACzC;AAED,IAAA,UAAU;AACV,IAAA,WAAA,CACU,EAAsB,EACtB,aAA4B,EAC5B,QAAyB,EACzB,EAAqB,EACrB,MAAc,EACd,KAAqB,EACrB,KAAmB,EACnB,YAAsB,EACtB,EAAe,EAAA;QARf,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,EAAE,GAAF,EAAE;IACT;IAEH,cAAc,GAAU,EAAE;IAC1B,WAAW,GAAY,KAAK;IAC5B,MAAM,GAAU,EAAE;IAClB,iBAAiB,GAAQ,EAAE;AAC3B,IAAA,YAAY;AACZ,IAAA,YAAY;AACK,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;AACzC,IAAA,cAAc;IAEd,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAC1B,+CAA+C,CAChD;QACD,IAAI,WAAW,GAAU,EAAE;QAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,EAAE;AAClD,YAAA,WAAW,GAAG;AACZ,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,IAAI;AAClB,iBAAA;aACF;AACF,QAAA;aAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,EAAE;AAC1D,YAAA,WAAW,GAAG;AACZ,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,WAAW,EAAE,IAAI;AAClB,iBAAA;aACF;AACF,QAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC;IAC3C;AACA,IAAA,KAAK;IACL,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,MAAM,QAAQ,GAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;;;QAGrB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;AAExD,QAAA,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,cAAc,GAAG,WAAW;AAClC,QAAA;AAAM,aAAA;;YAEL,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACpD,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,YAAA;AACF,QAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACzB,QAAA;;AAGD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;QACnD,MAAM,QAAQ,GACZ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU;AACvC,YAAA,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;QAClC,MAAM,MAAM,GACV,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU;AACvC,YAAA,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;AAElC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM;;AAGnC,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;QAG3E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC9B,YAAA,cAAc,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;AACvC,YAAA,YAAY,EAAE,IAAI,WAAW,CAAC,SAAS,CAAC;AACxC,YAAA,WAAW,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAChC,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;AACnC,YAAA,MAAM,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;AAChC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAc,KAAI;YACrC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACpC,OAAO,WAAW,GAAG,cAAc,GAAG,KAAK;AAC7C,QAAA,CAAC;;QAGD,IAAI,CAAC,iBAAiB,GAAG;YACvB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;SACjD;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC5C,SAAA,CAAC;;AAGF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;IACzC;AAEA,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE;YAC7C,IACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EACnC;gBACA,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAC3C,KAAK,CAAC,SAAS,EACf,YAAY,CACb,CAAC,MAAM,CAAC,YAAY,CAAC;gBACtB,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACzC,KAAK,CAAC,OAAO,EACb,YAAY,CACb,CAAC,MAAM,CAAC,YAAY,CAAC;AAEtB,gBAAA,IAAI,CAAC;qBACF,GAAG,CAAC,UAAU;sBACb,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;AAC9C,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS;gBAC/D,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO;AAC3D,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;AAC1D,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CACjE,SAAS,CACV;AACF,gBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;AACxD,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAClE,cAAc,CACf;AACF,gBAAA;;AAGF,YAAA;AACF,QAAA;IACH;AAEA,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAc,KAAI;gBACrC,MAAM,WAAW,GACf,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrE,OAAO,WAAW,GAAG,cAAc,GAAG,KAAK;AAC7C,YAAA,CAAC;AACF,QAAA;IACH;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAc,KAAI;;AAErC,YAAA,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,cAAc,GAAG,KAAK;AAChE,QAAA,CAAC;IACH;IAEA,WAAW,GAAQ,EAAE;AACrB,IAAA,MAAM;IACN,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;AAGrB,QAAA,IAAI,CAAC;AACF,aAAA,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAC1D,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS;oBACvC,IAAI,CAAC,SAAS,EAAE;AACjB,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACtB,gBAAA;YACH,CAAC;AACF,SAAA,CAAC;IACN;IACA,MAAM,GAAQ,EAAE;AAChB,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,SAAS,CAAC;IACpD;IACA,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE;IAClB;IACA,iBAAiB,GAAQ,EAAE;AAC3B,IAAA,eAAe;IACf,aAAa,GAAQ,EAAE;IACvB,cAAc,GAAQ,CAAC;AACvB,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACxD,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACxB,QAAA;QACD,IAAI,CAAC,SAAS,EAAE;IAClB;IACA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC;AACF,aAAA,kBAAkB,CACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EAAE,QAAQ,EAC7B,IAAI,CAAC,cAAc,EAAE,MAAM,EAC3B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc;AAEpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;AAC3B,oBAAA,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;wBAC7B,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;wBAC/B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AACvC,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,wBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACpB,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACpB,gBAAA;AACD,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,gBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;YACrB,CAAC;AACD,YAAA,QAAQ,EAAE,MAAK,EAAE,CAAC;AACnB,SAAA,CAAC;IACN;AACA,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;AAC9B,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAElD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;;YAEd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,QAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO;AACpB,iBAAA,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;YAGnD,UAAU,CAAC,MAAK;gBACd,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;AACvD,gBAAA,IAAI,EAAE,EAAE;AACN,oBAAA,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC1D,gBAAA;YACH,CAAC,EAAE,GAAG,CAAC;AACR,QAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;QAEjE,IAAI,IAAI,CAAC,WAAW,EAAE;;YAEpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CACtC;AACF,QAAA;AAAM,aAAA;;YAEL,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CACnC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC1C;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC;AAC1D,QAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACpD;IACA,gBAAgB,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE;AACxC,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;QAClC,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;;AAGrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC1D;IACA,MAAM,GAAA;;;AAGJ,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,KAAK,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAEtE,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAC9D,YAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAClE,YAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YAC1D,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,QAAa,KAAI;AAChD,gBAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAQ,MAAM,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAC9D,YAAA,CAAC,CAAC;AACH,QAAA;QACD,IAAI,CAAC,KAAK,EAAE;;IAGd;IACA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;;AAEhC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACvB;AACA,IAAA,UAAU;IACV,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC9C,YAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW;AACjC,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAU,EAAE;IAE9B,2BAA2B,GAAU,EAAE;IACvC,8BAA8B,GAAU,EAAE;IAC1C,0BAA0B,GAAU,EAAE;AACtC,IAAA,mBAAmB;AACnB,IAAA,eAAe;AACf,IAAA,gBAAgB;AAChB,IAAA,WAAW;IACX,sBAAsB,GAAU,EAAE;AAElC,IAAA,oBAAoB,CAAC,GAAQ,EAAA;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACvB,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAG,KAAK;AAEtB,IAAA,qBAAqB,CAAC,IAAS,EAAA;QAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AAClC,QAAA,OAAO,EAAE,GAAG,IAAI,EAAE;IACpB;AAEA,IAAA,sBAAsB,CAAC,IAAS,EAAE,QAAgB,EAAE,cAAoB,EAAA;AACtE,QAAA,IAAI,YAAiB;QAErB,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,QAAQ;YAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAC5D,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CACtD;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAC/C,CAAC,GAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACzC;oBACD,IAAI,CAAC,aAAa,EAAE;AAClB,wBAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC7D,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;wBACpC,MAAM,EAAE,cAAc,EAAE,MAAM;wBAC9B,QAAQ,EAAE,cAAc,EAAE,QAAQ;wBAClC,SAAS,EAAE,cAAc,EAAE,SAAS;wBACpC,QAAQ,EAAE,cAAc,EAAE,QAAQ;wBAClC,SAAS,EAAE,cAAc,EAAE,SAAS;wBACpC,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,qBAAA,CAAC;AACH,gBAAA;AACF,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAClD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACrC;AAED,oBAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,wBAAA,IAAI,CAAC,2BAA2B;AAC9B,4BAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACrC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CAChD;AACJ,oBAAA;AACF,gBAAA;AACF,YAAA;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;AACF,QAAA;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC3B,YAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;AAC/C,QAAA;aAAM,IAAI,QAAQ,KAAK,cAAc,EAAE;AACtC,YAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;AACnD,QAAA;aAAM,IAAG,QAAQ,KAAK,MAAM,EAAC;AAC5B,YAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;AAC3C,QAAA;QAED,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CACrC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC3C;gBACD,IAAI,CAAC,aAAa,EAAE;AAClB,oBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,gBAAA;AACF,YAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAClC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC3C;AACD,gBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,oBAAA,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9B,gBAAA;AACF,YAAA;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM;YACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM;AACtD,QAAA;;AAGD,QAAA,MAAM,aAAa,GACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW;QAE5F,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACzB,QAAA;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,EAAE;IACvD;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,cAAc;AAExC,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAEhC,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;;YAG7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACnC,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CACnC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC/B,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBACtC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACvC,oBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;oBAClC,IACE,IAAI,CAAC,cAAc;AACnB,wBAAA,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC/B,EACD;AACA,wBAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;gBACzC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;oBAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACjC,4BAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;AAClC,4BAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,wBAAA,CAAC,CAAC;wBAEF,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACpD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CACzC;4BAED,IAAI,CAAC,QAAQ,EAAE;AACb,gCAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;oCACpC,MAAM,EAAE,QAAQ,CAAC,MAAM;oCACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oCAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;oCAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oCAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,oCAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAC7B,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC9B;AACF,iCAAA,CAAC;AACH,4BAAA;AACF,wBAAA;AACF,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;AACF,QAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;IACH;IAEA,wBAAwB,GAAA;AACtB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;AACpE,YAAA,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;AACxE,YAAA,IAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAO,KAAK;YAC/D,IACE,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,QAAa,KACzC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CACjD;AAED,gBAAA,OAAO,KAAK;AACf,QAAA;AACD,QAAA,OAAO,IAAI;IACb;IACA,YAAY,GAAG,IAAI;AAEnB,IAAA,qBAAqB,CAAC,IAAS,EAAE,QAAgB,EAAE,cAAoB,EAAA;AACrE,QAAA,IAAI,YAAY;AAEhB,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;;gBAEd,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAC5D,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CACtD;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAC/C,CAAC,GAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACzC;wBACD,IAAI,CAAC,aAAa,EAAE;AAClB,4BAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;4BACpC,MAAM,EAAE,cAAc,EAAE,MAAM;4BAC9B,QAAQ,EAAE,cAAc,EAAE,QAAQ;4BAClC,SAAS,EAAE,cAAc,EAAE,SAAS;4BACpC,QAAQ,EAAE,cAAc,EAAE,QAAQ;4BAClC,SAAS,EAAE,cAAc,EAAE,SAAS;4BACpC,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,yBAAA,CAAC;AACH,oBAAA;AACF,gBAAA;AAAM,qBAAA;;AAEL,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAClD,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACrC;;AAGD,wBAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,4BAAA,IAAI,CAAC,2BAA2B;AAC9B,gCAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACrC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,MAAM,CAChD;AACJ,wBAAA;AACF,oBAAA;AACF,gBAAA;;gBAGD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAC7D,CAAC,GAAW,EAAE,IAAS,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAClD,CAAC,CACF;gBACD;AAEF,YAAA,KAAK,cAAc;AACjB,gBAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;gBAClD;AAEF,YAAA,KAAK,UAAU;AACb,gBAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;gBAC9C;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;gBAC1C;AACF,YAAA;gBACE;AACH;;AAGD,QAAA,YAAY,GAAG,YAAY,IAAI,EAAE;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3B,gBAAA,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;YAC/D,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;AACxC,kBAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;kBAC9D,EAAE;YAEN,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,IAAI,CAAC,8BAA8B,GAAG,OAAO;AAC9C,YAAA;iBAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;AAClC,gBAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO;AAC1C,YAAA;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC9B,gBAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO;AACtC,YAAA;AACF,QAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,EAAE,MAAM,IAAI,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,IAAI,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,IAAI,CAAC;IAC5D;AAEA,IAAA,WAAW;AACX,IAAA,WAAW,CAAC,MAAA,GAAiB,UAAU,EAAE,WAAmB,WAAW,EAAA;;AAErE,QAAA,IAAI,YAAY;AAChB,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;AACd,gBAAA,YAAY,GAAG,IAAI,CAAC,2BAA2B;gBAC/C;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,YAAY,GAAG,IAAI,CAAC,8BAA8B;gBAClD;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,YAAY,GAAG,IAAI,CAAC,0BAA0B;gBAC9C;AACA,YAAA,KAAK,MAAM;AACX,gBAAA,YAAY,GAAG,IAAI,CAAC,sBAAsB;gBAC1C;AACF,YAAA;gBACE;AACH;AAED,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kCAAkC,CAAC;YAC5D;AACD,QAAA;;QAGD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;YAClC,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;AACrC,QAAA,CAAC,CAAC;;QAGF,MAAM,OAAO,GAAU,EAAE;AAEzB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC7C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAE7B,YAAA,MAAM,aAAa,GAAQ;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;AACf,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;AAChC,gBAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AAEhD,gBAAA,cAAc,EACZ,QAAQ,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc;AAC1D,gBAAA,kBAAkB,EAChB,QAAQ,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,kBAAkB;AAChE,gBAAA,UAAU,EACV,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU;AAClD,gBAAA,eAAe,EACb,QAAQ,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,eAAe;aAC7D;YAED,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC3B,gBAAA,aAAa,CAAC,QAAQ,GAAG,eAAe;AACxC,gBAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;sBACjC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;YAED,IAAI,QAAQ,KAAK,cAAc,EAAE;AAC/B,gBAAA,aAAa,CAAC,YAAY,GAAG,eAAe;AAC5C,gBAAA,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC;sBACrC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;YACC,IAAI,QAAQ,KAAK,MAAM,EAAE;AACzB,gBAAA,aAAa,CAAC,IAAI,GAAG,eAAe;AACpC,gBAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;sBAC7B,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;YACD,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,gBAAA,aAAa,CAAC,eAAe,GAAG,eAAe;AAC/C,gBAAA,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;sBAClC,IAAI,CAAC;sBACL,CAAC;AACN,YAAA;AAED,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5B,QAAA;;AAED,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC;gBAC1D;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC;gBAC7D;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;gBACzD;AACA,YAAA,KAAK,MAAM;AACX,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;gBACrD;AACH;;AAGD,QAAA,IAAI,CAAC;AACF,aAAA,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,eAAe,CACxB,GAAG,EAAE,OAAO,IAAI,6BAA6B,CAC9C;;;;AAID,oBAAA,IAAI,CAAC,cAAc,GAAG,CAAC;oBACvB,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,CAAC,MAAM,EAAE;AACd,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC;AACpD,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,MAAM,GAAG,GACP,GAAG,CAAC,KAAK,CAAC,KAAK;AACf,oBAAA,GAAG,CAAC,KAAK;oBACT,GAAG,EAAE,KAAK,EAAE,OAAO;AACnB,oBAAA,GAAG,CAAC,OAAO;AACX,oBAAA,eAAe;gBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,GAAG,GAAG,CAAC;AAEzD,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC7B,CAAC;AACF,SAAA,CAAC;IACN;IACA,UAAU,GAAQ,EAAE;AACpB,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM;QAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAC9B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/C;IACH;AACA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,kCAAkC,CAAC;IACxD;IAEA,WAAW,GAAG,KAAK;IAEnB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;IACtC;AACA,IAAA,WAAW;AAEX,IAAA,YAAY,GAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAC7D,aAAa,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;;AAC3D,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;QAC5B,IAAI,CAAC,aAAa,EAAE;IACtB;IACA,gBAAgB,GAAQ,CAAC;IACzB,mBAAmB,GAAQ,CAAC;AAC5B,IAAA,oBAAoB,CAAC,UAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,wBAAwB,CAAC,QAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,kBAAkB;IAClB,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;gBAC/B,OAAO,IAAI,CAAC,kBAAkB;AAC/B,YAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,gBAAgB;AAC7B,YAAA;AACF,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,kBAAkB;AAC/B,YAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,gBAAgB;AAC7B,YAAA;AACF,QAAA;IACH;IAEA,wBAAwB,GAAQ,CAAC;AACjC,IAAA,yBAAyB,CAAC,UAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,MAAM,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,6BAA6B,CAAC,QAAgB,EAAA;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QAEvB,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAChE;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACvB,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC7B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACxB,QAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAE3B,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE;AACpC,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAChC,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAC,EAAE;QACnB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,cAAc,GAAG,CAAC;IAClB,aAAa,GAAG,CAAC;IACjB,mBAAmB,GAAQ,EAAE;AAC7B,IAAA,YAAY;IAEZ,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;QAC3B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE;IACtB;IACA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACxB,QAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC3B,IAAI,CAAC,aAAa,EAAE;IACtB;AACA,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,UAAU;IACV,cAAc,GAAG,KAAK;IACtB,eAAe,GAAG,IAAI;IACd,kBAAkB,GAAQ,IAAI;IAEtC,qBAAqB,GAAG,KAAK;AAE7B,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,IAAI,CAAC,qBAAqB;YAAE;AAEhC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO;QAC9B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,QAAA;AAED,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;IACtE;AACA,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,aAAa,CAAC,IAAU,EAAA;QACtB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,kBAAkB;AAE7D,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,0BAA0B,CAAC;YACpD;AACD,QAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW;AAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc;AACvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK;AAC7D,QAAA,MAAM,cAAc,IAAI,IAAI,CAAC,cAAc;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC;AAC/C,QAAA,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;AAE7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM;AAC1C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc;QAClC,MAAM,KAAK,GACT,UAAU,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAEpE,QAAA,IAAI,CAAC;AACF,aAAA,aAAa,CACZ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,MAAM,EACN,KAAK;AAEN,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC3B,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,EAAE;AACnC,wBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,wBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB,wCAAwC,CACzC;AACF,oBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;wBAClD,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;AAC1C,wBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,4BAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC1B,4BAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AAC1B,wBAAA;AAAM,6BAAA;AACL,4BAAA,MAAM,KAAK,GACT,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC7D,4BAAA,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;AAC9B,4BAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC9B,wBAAA;AACD,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC7B,oBAAA;AACF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC7B,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAO,KAAI;AACjB,gBAAA,IAAG,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG;oBACzB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,GAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AACxF,gBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;YAC9B,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACzB,CAAC;AACF,SAAA,CAAC;IACN;AAEwB,IAAA,SAAS;AACjC,IAAA,UAAU;AACV,IAAA,SAAS;IACT,SAAS,CAAC,IAAS,EAAE,KAAU,EAAA;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACtD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,KAAK,KAAK,iBAAiB,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW;AAC9B,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACxB,QAAA;IACH;AAEA,IAAA,qBAAqB,CAAC,SAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,GAAG;AAC1B,QAAA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAClE,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;;AAEjB,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;IACJ;IACA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC1D;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;AAClE,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/D,QAAA;IACH;wGAxnCW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,oKCtBrC,wpjQA+mCc,EAAA,MAAA,EAAA,CAAA,i3QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,GAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;4FDzlCD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,wpjQAAA,EAAA,MAAA,EAAA,CAAA,i3QAAA,CAAA,EAAA;oTAqlCR,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;;;ME9lCX,oBAAoB,CAAA;AAMX,IAAA,YAAA;AAA+B,IAAA,WAAA;IAJnD,SAAS,GAAQ,EAAE;AACnB,IAAA,QAAQ;AACC,IAAA,IAAI;IAEb,WAAA,CAAoB,YAAsB,EAAS,WAA2B,EAAA;QAA1D,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAmB,IAAA,CAAA,WAAW,GAAX,WAAW;IAC9D;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AACpC,QAAA;IACH;AACA,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAwB,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC;QAC7C,IAAI,SAAS,GAAQ,EAAE;AACvB,QAAA,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAClC,QAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9B,QAAA,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAClC,SAAS,CAAC,QAAQ,GAAG,CAAC;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC;AAChB,aAAA,CAAC;AACF,QAAA,SAAS,CAAC,KAAK,GAAG,CAAC;AACnB,QAAA,SAAS,CAAC,QAAQ,GAAG,KAAK;AAC1B,QAAA,SAAS,CAAC,WAAW,GAAG,EAAE;AAC1B,QAAA,SAAS,CAAC,OAAO,GAAG,KAAK;QACzB,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACnD,IAAI,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjF,QAAA,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE;AACpB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YAC/D,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5E,YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ;AAC/B,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACrB,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA;AAAM,aAAA;AACL,YAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ;AACpC,YAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,QAAA;QAGD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAC,SAAS,CAAC;QACpC,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,YAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACtE,YAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,QAAQ,CAAC;AAC5E,YAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC;AAC9E,YAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAErB,YAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAElE,QAAA;AAGD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzC,QAAA;IACH;IACA,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1C;wGArEW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kFCTjC,+kEAqCM,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD5BO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,+kEAAA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA;8GAQnB,IAAI,EAAA,CAAA;sBAAZ;;;MELU,qBAAqB,CAAA;AAKb,IAAA,YAAA;AAA+B,IAAA,WAAA;IAJlD,QAAQ,GAAQ,EAAE;IAClB,SAAS,GAAQ,EAAE;IACnB,OAAO,GAAQ,CAAC;AACP,IAAA,IAAI;IACb,WAAA,CAAmB,YAAsB,EAAS,WAA2B,EAAA;QAA1D,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAmB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAoB;IAEjF,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;AAC1B,QAAA;AACD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9E,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC1B,QAAA;IACH;AACA,IAAA,WAAW,CAAC,IAAS,EAAA;AAEnB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC;AAChB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;QAC7E,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QACvD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,QAAA,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,YAAA,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;gBACjB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAC3E,GAAG,CAAC,KAAK,GAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;AACjC,YAAA;AACH,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC;YAC/B,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAwB,KAAK,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxH,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK;AAC9B,YAAA;YACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,YAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACpE,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAC7E,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,OAAO;AACzB,YAAA;AAAM,iBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzC,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAEpB,YAAA;AACF,QAAA;AAAM,aAAA;AAEN,QAAA;IAGH;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzC,QAAA;AAAM,aAAA;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAAG,QAAA;IACvD;wGArEW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,kFCRlC,ijEAqCM,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD7BO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,ijEAAA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA;8GAQnB,IAAI,EAAA,CAAA;sBAAZ;;;MELU,YAAY,CAAA;AAOH,IAAA,KAAA;IALZ,UAAU,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;AAC5C,IAAA,YAAY,GAAwB,IAAI,CAAC;AACzC,IAAA,iBAAiB,GAAQ,IAAI,CAAC;IAC9B,gBAAgB,GAAG,IAAI;AAE/B,IAAA,WAAA,CAAoB,KAAoB,EAAA;QAApB,IAAA,CAAA,KAAK,GAAL,KAAK;IAExB;IAEA,UAAU,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,WAAW,GAAG,CAAC;AACnB,YAAA,IAAI,SAAc;YAClB,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,gBAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACnE,gBAAA,WAAW,GAAG,SAAS,IAAI,CAAC,CAAC;AAC9B,YAAA;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAK;gBACxC,WAAW,IAAI,CAAC;AAChB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;gBACjC,SAAS,GAAG,WAAW;AACvB,gBAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,YAAA,CAAC,CAAC;AACH,QAAA;QACD,IAAI,CAAC,sBAAsB,EAAE;IAC/B;IAEA,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACzB,QAAA;IACH;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,QAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;IAC3B;IAEA,sBAAsB,GAAA;QACpB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtC,QAAA;AACD,QAAA,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;IAEC,UAAU,GAAA;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACzB,QAAA;;;;IAIH;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;IAE1B;AAEA,IAAA,UAAU,CAAC,OAAe,EAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACxC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;AACjD,QAAA,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE;QAEzB,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAE;IAChF;;AAGQ,IAAA,OAAO,CAAC,GAAW,EAAA;AACzB,QAAA,OAAO,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;IACxC;wGAlFW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCaY,mBAAmB,CAAA;AA8HpB,IAAA,KAAA;AACA,IAAA,YAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AAAwB,IAAA,EAAA;AACxB,IAAA,YAAA;AAAgC,IAAA,YAAA;AAChC,IAAA,cAAA;AAA2C,IAAA,KAAA;AAlIrD,IAAA,SAAS;AACT,IAAA,YAAY;IACZ,WAAW,GAAQ,EAAE;AACrB,IAAA,UAAU;IACV,KAAK,GAAQ,GAAG;IAChB,MAAM,GAAQ,EAAE;IAChB,YAAY,GAAG,IAAI;IACnB,SAAS,GAAY,KAAK;AAC1B,IAAA,OAAO;IACP,aAAa,GAAG,CAAC;IACjB,SAAS,GAAG,CAAC;IACb,aAAa,GAAG,CAAC;AACjB,IAAA,WAAW;IACX,EAAE,GAAQ,EAAE;IACZ,SAAS,GAAQ,EAAE;AACnB,IAAA,gBAAgB;IAChB,SAAS,GAAQ,CAAC;IAClB,YAAY,GAAG,IAAI;IACnB,KAAK,GAAG,KAAK;IACb,SAAS,GAAQ,uCAAuC;IACxD,QAAQ,GAAQ,EAAE;AAClB,IAAA,YAAY;IACZ,aAAa,GAAG,IAAI;IACpB,MAAM,GAAG,KAAK;IACd,OAAO,GAAQ,CAAC;IAChB,aAAa,GAAc,EAAE;AACF,IAAA,YAAY;AACZ,IAAA,YAAY;AACvC,IAAA,QAAQ;AACR,IAAA,YAAY;IACZ,SAAS,GAAY,KAAK;AACT,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;IACzC,OAAO,GAAY,KAAK;IACxB,QAAQ,GAAQ,EAAE;IAElB,QAAQ,GAAA;QACN,IAAI,YAAY,IAAI,cAAc,EAAE;AAClC,YAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACvE,YAAA,IAAI,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;gBACpC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;oBAChF,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,wBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1B,oBAAA;AACF,gBAAA;AACF,YAAA;AACF,QAAA;AAAM,aAAA;YACL,IAAI,MAAM,GAAQ,MAAM,CAAC,OAAO,CAAC,0EAA0E,CAAC;AAC5G,YAAA,IAAI,MAAM,EAAE;AAEV,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,YAAA;AAAM,iBAAA;AAEN,YAAA;AACF,QAAA;IACH;AAGA,IAAA,cAAc,CAAC,KAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,SAAS;YAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BpB,QAAA,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,WAAW,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,KAAI;YAC5C,IAAI,CAAC,CAAC,CAAC,GAAG;AAAE,gBAAA,OAAO,KAAK;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;;AAElC,YAAA,OAAO,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAA,GAAA,EAAM,MAAM,CAAC,WAAW,EAAE,EAAE;AAC1E,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO;YAAE;AACd,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACjF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACvE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC9B,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;AACnC,gBAAA;AAAM,qBAAA;oBACL,OAAO,GAAG,OAAO;AAClB,gBAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,EAAE;AAC/B,wBAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM;AAC5B,oBAAA;AACH,gBAAA,CAAC,CAAC;AACF,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA,EAAG,OAAO,EAAE,IAAI,CAAA,mBAAA,CAAqB,CAAC;AACnE,YAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA,+BAAA,EAAkC,OAAO,EAAE,IAAI,CAAA,CAAA,CAAG,CAAC;AAC9E,YAAA;AAEF,QAAA;IAEH;AAEA,IAAA,WAAA,CACU,KAAmB,EACnB,YAA0B,EAC1B,MAAoB,EACpB,MAAc,EAAU,EAAqB,EAC7C,YAAsB,EAAU,YAA0B,EAC1D,cAAiC,EAAU,KAAqB,EAAA;QALhE,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,EAAE,GAAF,EAAE;QAC1B,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAoB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAC5C,IAAA,CAAA,cAAc,GAAd,cAAc;QAA6B,IAAA,CAAA,KAAK,GAAL,KAAK;AAExD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9D;AACA,IAAA,OAAO,GAAG,IAAI,OAAO,EAAE;IACvB,UAAU,GAAG,KAAK;IAClB,UAAU,GAAW,CAAC;IACtB,YAAY,GAAwB,IAAI;IACxC,aAAa,GAAW,UAAU;IAElC,MAAM,GAAG,iBAAiB;IAC1B,UAAU,GAAG,KAAK;IAClB,SAAS,GAAmB,EAAE;IAE9B,QAAQ,GAAA;QAEN,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,WAAW,IAAI,YAAY,EAAE;AAC/B,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAChE,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG;AACnB,QAAA;QACD,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACpD,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;gBACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAClD,YAAA;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YACzB,IAAI,CAAC,QAAQ,EAAE;AAChB,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,QAAQ;YACZ,IAAI,YAAY,IAAI,cAAc,EAAE;AAClC,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;gBACnE,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA;AACF,QAAA;IACH;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACnE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;IAClE;IAEA,sBAAsB,GAAG,MAAW;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAChC,IAAA,CAAC;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACtE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAClE,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAChC;IAEA,oBAAoB,GAAA;QAClB,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACpD,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,MAAM;gBAC/F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AACjD,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC1B,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,YAAA;AACF,QAAA;QAGD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,QAAA,CAAC,CAAC;QACF,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpE,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;gBAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;gBACnD,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC;gBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,gBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AACnC,YAAA;AACF,QAAA;QACD,IAAI,YAAY,IAAI,cAAc,EAAE;AAClC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,UAAU;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,WAAW;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,YAAY;AACxC,QAAA;IACH;AACA,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAEtC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC7B,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC/B,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC7B,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;IACA,cAAc,GAAA;AAEZ,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACzG,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;oBAE3B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB;oBACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,IAAI,EAAE,IAAI,IAAI,cAAc,EAAE;AAEjC,wBAAA;AAAM,6BAAA;AACL,4BAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACtD,wBAAA;AACH,oBAAA,CAAC,CAAC;oBACF,IAAI,CAAC,oBAAoB,EAAE;AAE5B,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;AACA,IAAA,UAAU,CAAC,MAAY,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvE,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;AACrD,QAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,UAAU,CAAC;AAC9E,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE;AAChF,YAAA,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI;YACjC,KAAK,EAAE,QAAQ,EAAE,UAAU;AAC3B,YAAA,UAAU,EAAC;SACZ;AAGD,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,IAAI;oBAC7B,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;AAC5C,wBAAA;oBACH,CAAC,EAAE,GAAG,CAAC;AACP,oBAAA,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AACtB,wBAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACzE,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;wBAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;4BAE9B,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AAE3E,4BAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACxE,wBAAA,CAAC,CAAC;wBACF,IAAI,YAAY,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;wBAE9E,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7C,wBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,wBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;wBAG/C,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;wBACjC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI;wBAGlC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAE9B,4BAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,4BAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,wBAAA,CAAC,CAAC;wBAEF,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;4BAC9C,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;4BAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;4BAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,4BAAA,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACxD,4BAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;4BAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;4BAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,4BAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,wBAAA;AAED,wBAAA,IAAI,UAAU,GAAG;AACf,4BAAA,cAAc,EAAE;AACd,gCAAA,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS;AACjC,gCAAA,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvB,6BAAA;AACD,4BAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK;AACtC,4BAAA,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO;AAClC,4BAAA,aAAa,EAAE;AACb,gCAAA,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO;AAC3C,gCAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC7B,gCAAA,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;AACjC,gCAAA,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;AACtC;yBACF;AACD,wBAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAChE,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;wBACzB,IAAI,CAAC,QAAQ,EAAE;AAChB,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACvE,wBAAA,IAAI,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AACpC,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;4BACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO;4BACrC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;4BACjC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI;AAClC,4BAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;4BACrD,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,gCAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;AACrC,oCAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;oCACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM;AACnD,gCAAA;AACF,4BAAA;AACF,wBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,4BAAA,IAAI,CAAC,aAAa,GAAG,KAAK;4BAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI;4BAClC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO;4BACrC,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM;4BACzC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK;4BACjC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC3C,4BAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;AACtD,wBAAA;wBACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;wBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,wBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,wBAAA,IAAI,GAAG,GAAG;4BACR,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;AAErB,4BAAA,YAAY,EAAE;AACZ,gCAAA,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS;AACjC,gCAAA,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;AACvB,6BAAA;yBACF;AACD,wBAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzD,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;wBACxB,IAAI,CAAC,QAAQ,EAAE;AAChB,oBAAA;AAEF,gBAAA;qBAAM,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAClC,oBAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC;wBAC/B,IAAI,CAAC,UAAU,EAAE;AACjB,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACvB,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;wBACzB,IAAI,CAAC,MAAM,EAAE;AAAE,4BAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAAE,wBAAA;6BAAM,EAAA;AACzC,wBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,wBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvB,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACvB,oBAAA;AACF,gBAAA;YAEH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAElB,gBAAA,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE;AACtB,oBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;oBACvE,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE;AAC1D,wBAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,SAAS;AACrC,wBAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9D,wBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACpB,oBAAA;AACF,gBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC;AAC/C,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI;YACpC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACrC,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE;oBACtB,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA;AACH,YAAA,CAAC,CAAC;IACN;AACA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,KAAK,CAAC,cAAc,EAAE;IACxB;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;QAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;AAC5D,QAAA,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;QAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,KAAI;AACrD,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChC,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC;AAE1F,oBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1C,wBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,oBAAA;oBACD,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;wBACtE,IAAI,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC/F,IAAI,SAAS,GAAQ,EAAE;wBACvB,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM;wBAC1C,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;wBAC9C,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;wBAC9C,SAAS,CAAC,QAAQ,GAAG;AACnB,4BAAA;AACE,gCAAA,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM;AAC/B,gCAAA,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;AACnC,gCAAA,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;AAC5B;yBACF;wBAGD,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AAExC,wBAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9D,oBAAA;oBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,wBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,oBAAA,CAAC,CAAC;AACH,gBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAC3B,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;QAIF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAwB,KAAK,QAAQ,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;AACpI,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;IACjD;AAEA,IAAA,SAAS,CAAC,KAAgB,EAAA;AACxB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;IACtD;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACvE,QAAA,IAAI,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gEAAgE,CAAC;AAC5F,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;YAC7E,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,YAAA,IAAI,UAAU,GAAG;AACf,gBAAA;AACE,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,EAAE;AAChC;aACF;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,gBAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,QAAQ,GAAQ;AAClB,gBAAA,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE;gBACpD,aAAa,EAAE,QAAQ,GAAG,QAAQ,EAAE,MAAM,GAAG,CAAC;AAC9C,gBAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,gBAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC,OAAO;AACjF,gBAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACtC,gBAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;AAC5D,gBAAA,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,WAAW,EAAE;aACd;AAED,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAC3B,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;wBACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACvD,oBAAA;AAAC,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC5B,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO;AAC3B,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wBAC9E,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4BAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,4BAAA;AACH,wBAAA,CAAC,CAAC;AACH,oBAAA;gBACH,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;oBAClB,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAChF,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO;AAC3B,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wBAC9E,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4BAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gCAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACtB,4BAAA;AACH,wBAAA,CAAC,CAAC;AACH,oBAAA;gBACH;AACD,aAAA,CAAC;AACH,QAAA;IAEH;AAEA,IAAA,YAAY,CAAC,IAAS,EAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI;AACtC,QAAA,QAAQ,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI;YACzC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACrC,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE;oBACtB,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA;AACH,YAAA,CAAC,CAAC;IACN;AACA,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACvE,QAAA,IAAI,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mDAAmD,CAAC;AAC/E,QAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACzD,gBAAA,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AACvB,aAAA,CAAC;YACF,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;gBAG9B,IAAI,MAAM,KAAK,UAAU,EAAE;AACzB,oBAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;oBAC7E,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;oBAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,oBAAA,IAAI,UAAU,GAAG;AACf,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,EAAE;AAChC;qBACF;oBAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;wBACxE,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,4BAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,yBAAA,CAAC;AACJ,oBAAA,CAAC,CAAC;AAEF,oBAAA,IAAI,QAAQ,GAAQ;AAClB,wBAAA,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE;;AAEpD,wBAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,wBAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACtC,wBAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC,OAAO;AACjF,wBAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;wBAC5D,aAAa,EAAE,QAAQ,GAAG,QAAQ,EAAE,MAAM,GAAG,CAAC;AAC9C,wBAAA,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,wBAAA,UAAU,EAAE,EAAE;AACd,wBAAA,WAAW,EAAE;qBACd;oBACD,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,EAAE,EAAE;AAChD,wBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,4BAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gCAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,oCAAA,IAAI,CAAC,SAAS,GAAG,KAAK;oCACtB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AAC/C,gCAAA;AAAM,qCAAA;AACL,oCAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,wCAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK;AACzB,wCAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wCAC1D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4CAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gDAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,4CAAA;AACH,wCAAA,CAAC,CAAC;AACH,oCAAA;AACF,gCAAA;4BACH,CAAC;AACD,4BAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gCAClB,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAChF,oCAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAC7C,gCAAA;4BACH;AACD,yBAAA,CAAC;AACH,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,oBAAA;AAEF,gBAAA;qBAAM,IAAI,MAAM,KAAK,aAAa,EAAE;AACnC,oBAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;oBAE7E,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;oBAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,oBAAA,IAAI,UAAU,GAAG;AACf,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1D;qBACF;oBAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;wBACxE,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,4BAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,yBAAA,CAAC;AACJ,oBAAA,CAAC,CAAC;AACF,oBAAA,IAAI,QAAQ,GAAQ;AAClB,wBAAA,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE;wBACpD,aAAa,EAAE,QAAQ,GAAG,QAAQ,EAAE,MAAM,GAAG,CAAC;AAC9C,wBAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,wBAAA,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACvC,wBAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACtC,wBAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC,OAAO;AACjF,wBAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;AAC5D,wBAAA,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,wBAAA,UAAU,EAAE,EAAE;AACd,wBAAA,WAAW,EAAE;qBACd;oBACD,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,EAAE,EAAE;AAEhD,wBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,4BAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gCAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,oCAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,gCAAA;AAAM,qCAAA;AACL,oCAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,wCAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK;AACzB,wCAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wCAC1D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4CAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gDAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,4CAAA;AACH,wCAAA,CAAC,CAAC;AACH,oCAAA;AAEF,gCAAA;4BACH,CAAC;AACD,4BAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gCAClB,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAChF,oCAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAC7C,gCAAA;4BACH;AACD,yBAAA,CAAC;AACH,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,oBAAA;AACF,gBAAA;AAAM,qBAAA;AAEN,gBAAA;AACH,YAAA,CAAC,CAAC;AACF,YAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAK;AAC3B,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,YAAA,CAAC,CAAC;AACH,QAAA;IACH;IAEA,aAAa,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;;IAGlB;IACA,aAAa,GAAA;;;;;IAKb;wGA/uBW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAyB,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wWCnBhC,+6cA6Kc,EAAA,MAAA,EAAA,CAAA,6wGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD1JD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,+6cAAA,EAAA,MAAA,EAAA,CAAA,6wGAAA,CAAA,EAAA;oSA+BA,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBACE,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBAQzB,QAAQ,EAAA,CAAA;sBADP,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE;gBAwBjC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;ME9D/B,yBAAyB,CAAA;AAuBjB,IAAA,YAAA;AACV,IAAA,WAAA;AACC,IAAA,OAAA;AACD,IAAA,MAAA;AAAwB,IAAA,YAAA;AAAoC,IAAA,EAAA;AAC5D,IAAA,UAAA;AAAkC,IAAA,KAAA;AAA+B,IAAA,KAAA;IAzB1E,cAAc,GAAQ,CAAC;IACvB,kBAAkB,GAAQ,CAAC;IAC3B,kBAAkB,GAAQ,CAAC;AAC3B,IAAA,gBAAgB;AAChB,IAAA,aAAa;AACb,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,UAAU;IACV,IAAI,GAAY,KAAK;IACrB,UAAU,GAAY,KAAK;IAC3B,QAAQ,GAAQ,EAAE;AACT,IAAA,YAAY;AACM,IAAA,YAAY;AACtB,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;IACzC,UAAU,GAAW,CAAC;IACtB,YAAY,GAAwB,IAAI;IACxC,aAAa,GAAW,UAAU;IAClC,QAAQ,GAAQ,EAAE;AAClB,IAAA,cAAc;AACd,IAAA,SAAS;IACT,aAAa,GAAK,EAAE;AACpB,IAAA,WAAA,CAAmB,YAAsB,EAChC,WAA2B,EAC1B,OAAsB,EACvB,MAAc,EAAU,YAA0B,EAAU,EAAqB,EACjF,UAAwB,EAAU,KAAqB,EAAU,KAAmB,EAAA;QAJ1E,IAAA,CAAA,YAAY,GAAZ,YAAY;QACtB,IAAA,CAAA,WAAW,GAAX,WAAW;QACV,IAAA,CAAA,OAAO,GAAP,OAAO;QACR,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAwB,IAAA,CAAA,EAAE,GAAF,EAAE;QAC9D,IAAA,CAAA,UAAU,GAAV,UAAU;QAAwB,IAAA,CAAA,KAAK,GAAL,KAAK;QAA0B,IAAA,CAAA,KAAK,GAAL,KAAK;IAC3E;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACvE,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACvG,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;oBAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB;oBAGnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AACvE,wBAAA,IAAI,CAAC,KAAK,GAAG,UAAU;wBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM;AAClC,oBAAA,CAAC,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE,IAAI,CAAC,QAAQ,CAAC;oBACxF,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;oBAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,oBAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM;oBACzC,OAAO,CAAC,GAAG,CAAC,8DAA8D,EAAE,IAAI,CAAC,UAAU,CAAC;AAC5F,oBAAA,IAAI,KAAK,GAAG;AACV,wBAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO;AAC9C,wBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI;qBAC/C;AACD,oBAAA,IAAI,CAAC;AACF,yBAAA,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtD,yBAAA,SAAS,CAAC;AACT,wBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,4BAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE;AAC5B,gCAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,gCAAA,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI;AAC1B,gCAAA,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;gCACxI,IAAI,eAAe,IAAI,eAAe,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC9D,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;oCACtG,OAAO,CAAC,GAAG,CAAC,kEAAkE,EAAE,IAAI,CAAC,cAAc,CAAC;AACrG,gCAAA;gCACD,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAC,IAAI,CAAC,UAAU,EAAE,UAAU,IAAE,GAAG,CAAC;gCAC3F,IAAI,CAAC,SAAS,GAAE;oCACd,eAAe,EAAC,IAAI,CAAC,kBAAkB;AACvC,oCAAA,WAAW,EAAC,IAAI,CAAC,aAAa,GAAC;iCAChC;AACF,4BAAA;wBACH;AACD,qBAAA,CAAC;AAKL,gBAAA;YACH;AACD,SAAA,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACnE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;IAClE;IAEA,sBAAsB,GAAG,MAAW;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAChC,IAAA,CAAC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACtE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAClE,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAChC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QAE7E,IAAI,SAAS,GAAQ,EAAE;QACvB,IAAI,aAAa,GAAQ,EAAE;QAC3B,IAAI,aAAa,GAAQ,EAAE;QAE3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;YAChC,OAAO,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,KAAK;YACpD,OAAO,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,QAAQ;AACnC,YAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;YACpC,OAAO,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,KAAK;YACpD,OAAO,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,QAAQ;AACnC,YAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AAEpC,YAAA,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;gBACf,OAAO,CAAC,CAAC,QAAQ;gBACjB,OAAO,CAAC,CAAC,QAAQ;gBACjB,OAAO,CAAC,CAAC,OAAO;AAChB,gBAAA,IAAI,MAAM,GAAG,CAAC,CAAC,QAAQ;AACvB,gBAAA,CAAC,CAAC,QAAQ,GAAG,MAAM;AACnB,gBAAA,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM;AACvB,gBAAA,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI,EAAG,OAAO,EAAE,CAAC,QAAQ,CAAA,CAAC,CAAC,CAAC;AACvD,gBAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,YAAA;YACD,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC1C,OAAO,CAAC,CAAC,QAAQ;gBACjB,OAAO,CAAC,CAAC,QAAQ;gBACjB,OAAO,CAAC,CAAC,OAAO;AAChB,gBAAA,IAAI,MAAM,GAAG,CAAC,CAAC,QAAQ;AACvB,gBAAA,CAAC,CAAC,QAAQ,GAAG,MAAM;AACnB,gBAAA,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM;AACvB,gBAAA,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI,EAAG,OAAO,EAAE,CAAC,QAAQ,CAAA,CAAC,CAAC,CAAC;AACvD,gBAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,YAAA;AACH,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,GAAG,GAAQ;AACb,YAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,EAAE,OAAO;AAClF,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AACzC,YAAA,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACvC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;YAC3C,WAAW,EAAE,SAAS,EAAE,UAAU;YAClC,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,EAAE;YAChC,aAAa,EAAE,IAAI,CAAC,kBAAkB;YACtC,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,EAAE;YAC5C,aAAa,EAAE,IAAI,CAAC,kBAAkB;AACtC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE;YAClF,UAAU,EAAE,IAAI,CAAC,YAAY;YAC7B,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,EAAE;YAC5C,SAAS,EAAE,IAAI,CAAC;SACjB;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AAC7C,oBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,oBAAA,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;AACrC,oBAAA,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;AACjC,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC;AACvC,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAElC,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AAEjF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK;AACzB,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC1D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4BAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,4BAAA;AACH,wBAAA,CAAC,CAAC;AACH,oBAAA;AACF,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,MAAM,YAAY,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,IAAI,gCAAgC;AACjH,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;YACxC,CAAC;AAEF,SAAA,CAAC;IAEJ;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,OAAO,CAAC,GAAG,CAAC,wDAAwD,EAAE,SAAS,CAAC;QAChF,IAAI,aAAa,GAAQ,EAAE;QAC3B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,QAAA,QAAQ,CAAC,GAAG,CAAC,CAAC,YAAiB,KAAI;AACjC,YAAA,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE;;gBAE1B,IAAI,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,YAAY,EAAE,QAAQ,CAAC;AACxG,gBAAA,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE,aAAa,CAAC;gBACxF,IAAI,cAAc,GAAQ,EAAE;AAC5B,gBAAA,aAAa,CAAC,GAAG,CAAC,CAAC,OAAY,KAAI;oBACjC,cAAc,CAAC,IAAI,CACjB;AACE,wBAAA,IAAI,EAAE,CAAA,EAAG,SAAS,EAAE,WAAW,EAAE,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,EAAE,QAAQ,CAAA,CAAE;wBAC/F,QAAQ,EAAE,OAAO,EAAE,QAAQ;wBAC3B,UAAU,EAAE,OAAO,EAAE,QAAQ;AAC7B,wBAAA,WAAW,EAAE;AACd,qBAAA,CACF;AAEH,gBAAA,CAAC,CAAC;AACF,gBAAA,IAAI,MAAM,GAAQ;AAChB,oBAAA,IAAI,EAAE,CAAA,EAAG,SAAS,EAAE,WAAW,EAAE,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,YAAY,EAAE,QAAQ,CAAA,CAAE;AACpG,oBAAA,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AAC5C,oBAAA,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;oBAC1C,QAAQ,EAAE,YAAY,EAAE,QAAQ;AAChC,oBAAA,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;;AAE1C,oBAAA,aAAa,EAAE,UAAU;AACzB,oBAAA,YAAY,EAAE,WAAW;oBACzB,UAAU,EAAE,YAAY,EAAE,QAAQ;AAClC,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,aAAa,EAAE,EAAE;AACjB,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,MAAM,EAAE,iBAAiB;AACzB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,gBAAgB,EAAE;iBACnB;AACD,gBAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,MAAM,CAAC;AAC1E,gBAAA,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,MAAM,GAAQ;AAChB,oBAAA,IAAI,EAAE,CAAA,EAAG,SAAS,EAAE,WAAW,EAAE,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,YAAY,EAAE,QAAQ,CAAA,CAAE;AACpG,oBAAA,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AAC5C,oBAAA,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;oBAC1C,QAAQ,EAAE,YAAY,EAAE,QAAQ;AAChC,oBAAA,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AAC1C,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,aAAa,EAAE,UAAU;AACzB,oBAAA,YAAY,EAAE,WAAW;oBACzB,UAAU,EAAE,YAAY,EAAE,QAAQ;AAClC,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,aAAa,EAAE,EAAE;AACjB,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,MAAM,EAAE,iBAAiB;AACzB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,gBAAgB,EAAE;iBACnB;AACD,gBAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,MAAM,CAAC;AAC1E,gBAAA,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAA;AAGH,QAAA,CAAC,CAAC;QACF,IAAI,KAAK,GAAQ,EAAE;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC;AACZ,aAAA,CAAC;AACF,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAEvE,YAAA,UAAU,CAAC,GAAG,CAAC,CAAC,SAAc,KAAI;AAEhC,gBAAA,IAAI,QAAQ,GAAQ;AAClB,oBAAA,IAAI,EAAE,CAAA,EAAG,SAAS,EAAE,WAAW,EAAE,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,EAAE,QAAQ,CAAA,CAAE;AACjG,oBAAA,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AAC5C,oBAAA,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;oBAC1C,QAAQ,EAAE,SAAS,EAAE,QAAQ;AAC7B,oBAAA,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AAC1C,oBAAA,aAAa,EAAE,UAAU;oBACzB,YAAY,EAAE,IAAI,EAAE,IAAI;oBACxB,UAAU,EAAE,SAAS,EAAE,QAAQ;AAC/B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,aAAa,EAAE,EAAE;AACjB,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,MAAM,EAAE,iBAAiB;AACzB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,gBAAgB,EAAE;iBACnB;AACD,gBAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAGF,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;AAErD,QAAA,IAAI,GAAG,GAAQ;AACb,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;AAE1C,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAAE,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG;AACxF,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,aAAa,EAAE;SAChB;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,GAAG,CAAC;;AAEpE,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AAC1C,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,WAAW,EAAE;SACd;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,oBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAC9B,oBAAA,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;AACrC,oBAAA,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;AACjC,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC;AACvC,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,IAAI,GAAG,GAAQ;AACb,wBAAA,UAAU,EAAE;qBAEb;oBACD,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,SAAS;AAC5D,oBAAA,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzD,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AAEjF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,oBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;AAC1B,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK;AACzB,wBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC1D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;4BAC9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,gCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACjF,4BAAA;AACH,wBAAA,CAAC,CAAC;AACH,oBAAA;AACF,gBAAA;YAEH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,MAAM,YAAY,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,IAAI,gCAAgC;AACjH,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;YACxC,CAAC;AACF,SAAA,CAAC;IAEJ;IACA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;wGA3XW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAyB,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA1B,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,sNCftC,itMA8GM,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD/FO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,itMAAA,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA;oSAiBzB,YAAY,EAAA,CAAA;sBAApB;gBAC0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;;;MEbd,yBAAyB,CAAA;AAiCjB,IAAA,YAAA;AAAgC,IAAA,MAAA;AAAwB,IAAA,YAAA;AAAoC,IAAA,MAAA;AAA8B,IAAA,KAAA;AACnI,IAAA,EAAA;AAA+B,IAAA,YAAA;IAhCzC,SAAS,GAAG,CAAC;IACb,QAAQ,GAAG,CAAC;IACZ,IAAI,GAAG,CAAC;IACR,QAAQ,GAAG,CAAC;IACZ,YAAY,GAAQ,CAAC;IACrB,SAAS,GAAY,KAAK;IAC1B,YAAY,GAAY,KAAK;IAC7B,UAAU,GAAY,KAAK;IAC3B,SAAS,GAAQ,EAAE;IACnB,UAAU,GAAQ,EAAE;IACpB,WAAW,GAAY,IAAI;AAC3B,IAAA,gBAAgB;AAChB,IAAA,aAAa;IACb,YAAY,GAAG,IAAI;AACnB,IAAA,YAAY;IAEZ,SAAS,GAAQ,CAAC;IAClB,aAAa,GAAQ,CAAC;IACtB,YAAY,GAAQ,EAAE;AACtB,IAAA,WAAW;AACX,IAAA,WAAW;IACX,SAAS,GAAY,KAAK;AAC1B,IAAA,YAAY;AACK,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;IACzC,UAAU,GAAW,CAAC;IACtB,YAAY,GAAwB,IAAI;IACxC,aAAa,GAAW,UAAU;AAClC,IAAA,KAAK;IACL,QAAQ,GAAQ,EAAE;AACS,IAAA,YAAY;AAEvC,IAAA,WAAA,CAAmB,YAAsB,EAAU,MAAc,EAAU,YAA0B,EAAU,MAAoB,EAAU,KAAqB,EACxJ,EAAqB,EAAU,YAA0B,EAAA;QADhD,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAoB,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAwB,IAAA,CAAA,MAAM,GAAN,MAAM;QAAwB,IAAA,CAAA,KAAK,GAAL,KAAK;QACxI,IAAA,CAAA,EAAE,GAAF,EAAE;QAA6B,IAAA,CAAA,YAAY,GAAZ,YAAY;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9D;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE;;AAErB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACtB,QAAA;QACD,IAAI,CAAC,QAAQ,EAAE;IACjB;IACA,cAAc,GAAA;AAEZ,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACzG,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;oBAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB;;;oBAGnE,IAAI,CAAC,cAAc,EAAE;AAEtB,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;IACA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACnE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;IAElE;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACtE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAClE,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAChC;IAEA,sBAAsB,GAAG,MAAW;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAChC,IAAA,CAAC;IAED,oBAAoB,GAAA;QAClB,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AAEpD,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;gBACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAClD,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,YAAA;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,MAAM;AAChG,QAAA;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAClE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,QAAA,CAAC,CAAC;QACF,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC5B,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACvB,gBAAA;AACF,YAAA;AACF,QAAA;QACD,IAAI,YAAY,IAAI,cAAc,EAAE;AAClC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,UAAU;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,WAAW;AACtC,QAAA;IAEH;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,WAAW;QAC5C,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;AAClD,QAAA,IAAI,OAAO,GAAQ;AACjB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;YACtC,OAAO,EAAE,SAAS,EAAE,OAAO;YAC3B,KAAK,EAAE,SAAS,EAAE,UAAU;AAC3B,YAAA,UAAU,EAAC;SACb;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;oBAKzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;wBAC9B,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AACzF,wBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE;wBAChG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM;AAChC,wBAAA,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;AAE9G,oBAAA,CAAC,CAAC;oBACF,IAAI,YAAY,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;oBAE5F,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK;AAC9C,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,oBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAI/C,oBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpE,oBAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzB,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;wBAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;wBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;wBACnD,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC;wBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;wBAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,wBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,oBAAA;AACD,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;oBACpB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,oBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACvB,oBAAA;AACF,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;YAEpB;AACD,SAAA,CAAC;IACJ;IAEA,SAAS,GAAY,KAAK;IAE1B,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,YAAY,EAAE;IACrB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAChE,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,OAAO,GAAQ;AACjB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;YACtC,OAAO,EAAE,SAAS,EAAE,OAAO;YAC3B,KAAK,EAAE,SAAS,EAAE;SACnB;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;wBAC9B,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AACzF,wBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE;wBAChG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM;AAChC,wBAAA,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;AAE9G,oBAAA,CAAC,CAAC;oBACF,IAAI,YAAY,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;oBAE5F,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK;AAC9C,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,oBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,oBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACvB,oBAAA;oBAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAChD,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;YAEpB;AACD,SAAA,CAAC;IAEJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC;AACzF,QAAA;IACH;AAEA,IAAA,SAAS,CAAC,EAAO,EAAA;QACf,EAAE,CAAC,cAAc,EAAE;IACrB;AAEA,IAAA,IAAI,CAAC,EAAO,EAAA;AACV,QAAA,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD;AAEA,IAAA,YAAY,CAAC,EAAO,EAAA;QAClB,EAAE,CAAC,cAAc,EAAE;QACnB,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;AAC5D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,QAAA,IAAI,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,uDAAuD,EAAE,IAAI,EAAC,cAAc,CAAC;QACzF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;AAExF,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YAChE,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;YAEzH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,gBAAA,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;AACtB,oBAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,oBAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM;AAC9B,gBAAA;AAEH,YAAA,CAAC,CAAC;AACF,YAAA,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACvD,YAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YAClE,IAAI,MAAM,GAAQ,EAAE;YACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAC/B,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC;AACxC,YAAA;AAAM,iBAAA;gBACL,MAAM,GAAG,YAAY;AACtB,YAAA;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM;AACxB,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAGhE,IAAG,IAAI,KAAG,WAAW,EAAC;gBACpB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAY,KAAG;AACxC,oBAAA,IAAG,QAAQ,CAAC,KAAK,GAAC,CAAC,EAAC;AAClB,wBAAA,OAAO,CAAC,GAAG,CAAC,2DAA2D,EAAE,QAAQ,CAAC;wBAClF,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAQ,KAAG,IAAI,CAAC,MAAM,IAAE,cAAc,CAAC;wBACrF,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAC1C,oBAAA;AACH,gBAAA,CAAC,CAAC;AACH,YAAA;AAIF,QAAA;aAAM,IAAI,IAAI,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,IAAI,CAAC;AACrG,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YACpI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM;AAClD,YAAA,IAAI,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,IAAI,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,cAAc,CAAC;AAE9G,gBAAA,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;gBAC7I,IAAI,UAAU,IAAI,CAAC,EAAE;AACnB,oBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;AACzD,oBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;AACrD,oBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;AAC1D,gBAAA;AACD,gBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC3C,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE;AACzB,gBAAA,IAAI,GAAG,GAAG;AACR,oBAAA,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;AAC9B,oBAAA,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;AAC1B,oBAAA,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACvB;gBACD,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK;AAC5B,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK;AAC3B,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE;AAC5B,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrB,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBAClE,IAAI,MAAM,GAAQ,EAAE;gBACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC/B,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;AACpC,gBAAA;AAAM,qBAAA;oBACL,MAAM,GAAG,QAAQ;AAClB,gBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM;AACxB,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;gBAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,YAAA;AAAM,iBAAA;AAEL,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBAClE,IAAI,MAAM,GAAQ,EAAE;gBACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC/B,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC;AACrC,gBAAA;AAAM,qBAAA;oBACL,MAAM,GAAG,SAAS;AACnB,gBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM;AACxB,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,YAAA;AACF,QAAA;QAED,SAAS,kBAAkB,CAAC,IAAS,EAAA;YACnC,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,YAAA,WAAW,CAAC,SAAS,GAAG,IAAI;AAC5B,YAAA,IAAI,UAAU,GAAQ,WAAW,CAAC,UAAU;AAC5C,YAAA,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;gBACnC,IAAI,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;AACvD,gBAAA,OAAO,iBAAiB;AACzB,YAAA;AACD,YAAA,OAAO,IAAI;QACb;AACA,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhE,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAE5B,QAAA;IACH;AAEA,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC/E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,WAAW,CAAC;QAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM;AAClD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AAAE,QAAA;QACvD,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;QACzE,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC5B,QAAA;AACD,QAAA,IAAI,UAAU,GAAG;AACf,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1D;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,QAAQ,GAAQ;AAClB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACtC,YAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,EAAE,OAAO;AAClF,YAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;AAC5D,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG;SACjD;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAClF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,QAAA,IAAI,UAAU,GAAG;AACf,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,EAAE;AAChC;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,QAAQ,GAAQ;AAClB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AACzC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;AAC3C,YAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC,OAAO;AACjF,YAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;AAC5D,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG;SACjD;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjH,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAE5B,QAAA;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,+BAA+B,CAAC,CAAC;IACzD;IAEA,WAAW,GAAA;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE;AACjE,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;IAC7D;AAIA,IAAA,QAAQ,CAAC,CAAM,EAAA;QACb,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,CAAC,GAAG,KAAK,EAAE;YACb,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;AACjD,QAAA;IAEH;IACA,kBAAkB,GAAQ,CAAC;AAE3B,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,EAAE,IAAI,CAAC,kBAAkB;AACjC,QAAA;AACD,QAAA,OAAO,IAAI;IACb;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC;IAC7B;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;IAExE;AAEA,IAAA,WAAW,CAAC,QAAa,EAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACtC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC7B,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,IAAI,CAAC,WAAW,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC1E,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC7B,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,MAAM;QAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;IACjD;wGAtgBW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,iMChBtC,y0oBA0OA,EAAA,MAAA,EAAA,CAAA,spFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD1Na,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,y0oBAAA,EAAA,MAAA,EAAA,CAAA,spFAAA,CAAA,EAAA;4OAmCP,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;;;ME9Bd,mBAAmB,CAAA;AAyFX,IAAA,YAAA;AAAgC,IAAA,MAAA;AAAwB,IAAA,IAAA;AACjE,IAAA,MAAA;AAA8B,IAAA,KAAA;AAA+B,IAAA,YAAA;AAAoC,IAAA,EAAA;IAxF3G,SAAS,GAAG,CAAC;IACb,QAAQ,GAAG,CAAC;IACZ,IAAI,GAAG,CAAC;IACR,QAAQ,GAAG,CAAC;IACZ,SAAS,GAAQ,EAAE;IACnB,UAAU,GAAQ,EAAE;IACpB,WAAW,GAAY,IAAI;IAC3B,gBAAgB,GAAQ,EAAE;IAC1B,aAAa,GAAQ,CAAC;IACtB,SAAS,GAAQ,CAAC;IAClB,aAAa,GAAQ,CAAC;IACtB,YAAY,GAAQ,EAAE;IACtB,WAAW,GAAQ,EAAE;IACrB,YAAY,GAAG,KAAK;AACpB,IAAA,YAAY;AACK,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAE;IACzC,UAAU,GAAW,CAAC;IACtB,YAAY,GAAwB,IAAI;IACxC,aAAa,GAAW,UAAU;IAElC,SAAS,GAAY,KAAK;IAC1B,QAAQ,GAAQ,EAAE;AAElB,IAAA,cAAc,CAAC,KAAoB,EAAA;QACjC,IAAI,IAAI,CAAC,SAAS;YAAE;;;;;;;;;;;;;;;;;;;;;;;;;AA2BpB,QAAA,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,WAAW,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,KAAI;YAC5C,IAAI,CAAC,CAAC,CAAC,GAAG;AAAE,gBAAA,OAAO,KAAK;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;;AAElC,YAAA,OAAO,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAA,GAAA,EAAM,MAAM,CAAC,WAAW,EAAE,EAAE;AAC1E,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO;YAAE;AACd,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AACjF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACvE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC9B,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;AACnC,gBAAA;AAAM,qBAAA;oBACL,OAAO,GAAG,OAAO;AAClB,gBAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,EAAE;AAC/B,wBAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM;AAC5B,oBAAA;AACH,gBAAA,CAAC,CAAC;AACF,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA,EAAG,OAAO,EAAE,IAAI,CAAA,mBAAA,CAAqB,CAAC;AACnE,YAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA,+BAAA,EAAkC,OAAO,EAAE,IAAI,CAAA,CAAA,CAAG,CAAC;AAC9E,YAAA;AAEF,QAAA;IAEH;AACA,IAAA,WAAA,CAAmB,YAAsB,EAAU,MAAc,EAAU,IAAkB,EACnF,MAAoB,EAAU,KAAqB,EAAU,YAA0B,EAAU,EAAqB,EAAA;QAD7G,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAoB,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,IAAI,GAAJ,IAAI;QACrE,IAAA,CAAA,MAAM,GAAN,MAAM;QAAwB,IAAA,CAAA,KAAK,GAAL,KAAK;QAA0B,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAwB,IAAA,CAAA,EAAE,GAAF,EAAE;AAC3G,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9D;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACzB,QAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,QAAQ,EAAE;IACjB;IACA,cAAc,GAAA;AAEZ,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;oBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;oBAChE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB;oBACnE,IAAI,CAAC,oBAAoB,EAAE;AAE5B,gBAAA;YACH;AACD,SAAA,CAAC;IACJ;IACA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACnE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;IAClE;IAEA,sBAAsB,GAAG,MAAW;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AAChC,IAAA,CAAC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACtE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;QAClE,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAEhC;IAEA,oBAAoB,GAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3B,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACpD,YAAA,OAAO,CAAC,GAAG,CAAC,8DAA8D,EAAE,SAAS,CAAC;AACtF,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;gBACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAClD,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACvB,YAAA;AACF,QAAA;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,YAAA,OAAO,CAAC,GAAG,CAAC,0DAA0D,EAAE,KAAK,CAAC;AAC9E,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,QAAA,CAAC,CAAC;QACF,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACxB,YAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACrB,YAAA;AAEF,QAAA;QAED,IAAI,YAAY,IAAI,cAAc,EAAE;AAClC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACpE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,UAAU;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,WAAW;AAEtC,QAAA;IACH;IACA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AAC7E,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,WAAW;AAEzC,QAAA,IAAI,OAAO,GAAQ;AACjB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;YACtC,OAAO,EAAE,SAAS,EAAE,OAAO;YAC3B,KAAK,EAAE,SAAS,EAAE;SACnB;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,oBAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;wBAC9B,IAAI,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AACzF,wBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE;wBAChG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM;AAChC,wBAAA,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;AAE9G,oBAAA,CAAC,CAAC;oBACF,IAAI,YAAY,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC5F,oBAAA,OAAO,CAAC,GAAG,CAAC,2DAA2D,EAAE,YAAY,CAAC;oBAEtF,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK;AAC9C,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,oBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;oBAC/C,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;YAEpB,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QAC7E,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;YAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACpD,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;gBACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAClD,YAAA;AACF,QAAA;QACD,IAAI,OAAO,IAAI,cAAc,EAAE;AAC7B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YACtE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,YAAA,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACrB,QAAA;QACD,IAAI,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnD,QAAA,IAAI,UAAU,GAAG;AACf,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,EAAE;AAChC;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACxE,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG;AACjE,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,UAAU,CAAC;AAC9E,QAAA,IAAI,QAAQ,GAAQ;AAElB,YAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;AACxC,YAAA,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC,OAAO;AACjF,YAAA,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI;AACtC,YAAA,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC;AAC5D,YAAA,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE;SACd;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC1B,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,EAAE,CAAC;AACxD,gBAAA;YACH,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;YACvC,CAAC;AACF,SAAA,CAAC;IACJ;AAEA,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,KAAK,CAAC,cAAc,EAAE;IACxB;AACA,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;AAC/D,QAAA,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAQ,cAAc;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAEtC,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,EAAE;AAC9B,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC;AAC1F,oBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1C,wBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,oBAAA;oBACD,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;wBACtE,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;AACpC,wBAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9D,oBAAA;AAAM,yBAAA;AACL,wBAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5D,wBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACtE,wBAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,QAAQ,CAAC;AAE1E,oBAAA;oBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,wBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,wBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,oBAAA,CAAC,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,uDAAuD,EAAE,IAAI,CAAC,QAAQ,CAAC;AACpF,gBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AACzB,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;AACrC,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAC,GAAQ,EAAA;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAChC,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC/B,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,gBAAgB,CAAC,GAAQ,EAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACtC,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC/B,gBAAA;AACF,YAAA;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI;QACtC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACrC,YAAA,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE;gBACtB,IAAI,CAAC,oBAAoB,EAAE;AAC5B,YAAA;AACH,QAAA,CAAC,CAAC;IAEJ;IACA,WAAW,GAAA;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE;AACjE,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;QAC3D,QAAQ,CAAC,MAAM;IACjB;AAGA,IAAA,YAAY,CAAC,IAAS,EAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI;AACtC,QAAA,QAAQ,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI;YACzC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACrC,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE;oBACtB,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA;AACH,YAAA,CAAC,CAAC;IACN;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;AACvD,QAAA,IAAI,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;;;AAG7B,QAAA,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,EAAE;YACzC,KAAK,CAAC,cAAc,EAAE;YACtB,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;AAC5D,YAAA,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,KAAI;AAErD,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,EAAE;oBAC/B,IAAI,OAAO,GAAG,EAAE;AAChB,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACrE,oBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,oBAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC;AACrF,oBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,wBAAA,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC;AAC5F,oBAAA;oBAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC;AAC7F,oBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEhE,oBAAA,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,OAAO,CAAC;AACvE,oBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAEtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;wBACjC,OAAO,CAAC,GAAG,CAAC,uDAAuD,EAAE,IAAI,CAAC,QAAQ,CAAC;wBACnF,IAAI,WAAW,IAAI,cAAc,EAAE;AACjC,4BAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;4BACtE,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;AACpC,4BAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC9D,wBAAA;AAAM,6BAAA;AACL,4BAAA,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5D,4BAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACtE,4BAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,QAAQ,CAAC;AAE1E,wBAAA;AACF,oBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,KAAK,IAAI,CAAC;AACf,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,oBAAA;AACF,gBAAA;AACH,YAAA,CAAC,CAAC;YACF,IAAI,IAAI,IAAI,UAAU,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,cAAc,CAAC,CAAC;gBAC1G,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAsB,KAAK,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;AAC9H,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAChE,YAAA;YAGD,OAAO,CAAC,GAAG,CAAC,+DAA+D,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACnG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpD,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/C,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACzB,YAAA;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC9B,gBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjE,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM;AAC5B,YAAA,CAAC,CAAC;AACH,QAAA;QAID,SAAS,kBAAkB,CAAC,IAAS,EAAA;YACnC,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,YAAA,WAAW,CAAC,SAAS,GAAG,IAAI;AAC5B,YAAA,IAAI,UAAU,GAAQ,WAAW,CAAC,UAAU;AAC5C,YAAA,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;gBACnC,IAAI,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;AACvD,gBAAA,OAAO,iBAAiB;AACzB,YAAA;AACD,YAAA,OAAO,IAAI;QACb;IACF;wGA7dW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4HCjBhC,swUAgIM,EAAA,MAAA,EAAA,CAAA,o8EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD/GO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,swUAAA,EAAA,MAAA,EAAA,CAAA,o8EAAA,CAAA,EAAA;4OA6B3B,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AEhC5C,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAC,EAAE;AACP,QAAA,SAAS,EAAC;AACX,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAC,OAAO;AACZ,QAAA,SAAS,EAAC;AACX,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAC,cAAc;AACnB,QAAA,SAAS,EAAC;AACX,KAAA;AACA,IAAA;AACG,QAAA,IAAI,EAAC,eAAe;AACpB,QAAA,SAAS,EAAC;AACX,KAAA;CACJ;MAMY,+BAA+B,CAAA;wGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,wCAFhC,YAAY,CAAA,EAAA,CAAA;yGAEX,+BAA+B,EAAA,OAAA,EAAA,CAHhC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA;;4FAEX,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY;AACvB,iBAAA;;;MC5BY,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qDCP9B,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDMa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,6BAAA,EAAA;;;MEId,sBAAsB,CAAA;AACxB,IAAA,YAAY,GAAG,IAAI,YAAY,EAAO;AACrC,IAAA,UAAU,GAAK,IAAI,YAAY,EAAQ;;IAGjD,MAAM,GAAW,EAAE;IACnB,SAAS,GAAW,EAAE;IACtB,WAAW,GAAkB,IAAI;IACjC,QAAQ,GAAW,EAAE;IAErB,KAAK,GAAA;AACH,QAAA,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC;SAChB;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;wGA7BW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+HCPnC,opDAmDA,EAAA,MAAA,EAAA,CAAA,i1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD5Ca,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,opDAAA,EAAA,MAAA,EAAA,CAAA,i1CAAA,CAAA,EAAA;8BAKrB,YAAY,EAAA,CAAA;sBAArB;gBACU,UAAU,EAAA,CAAA;sBAAnB;;;ME0DU,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,iBA/BjC,2BAA2B;AAC3B,YAAA,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB;AACpF,YAAA,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB;YAC3E,uBAAuB;YACvB,oBAAoB;YACpB,wBAAwB;YACxB,yBAAyB;YACzB,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;YACpB,0BAA0B;YAC1B,sBAAsB;YACtB,sBAAsB;YACtB,yBAAyB;YACzB,mBAAmB;YACnB,yBAAyB;YACzB,qBAAqB;AACrB,YAAA,0BAA0B,aAG1B,YAAY;YACZ,+BAA+B;YAC/B,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB,CAAA,EAAA,CAAA;AAGP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAXjC,YAAY;YACZ,+BAA+B;YAC/B,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB,CAAA,EAAA,CAAA;;4FAGP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAjCpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,2BAA2B;AAC3B,wBAAA,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB;AACpF,wBAAA,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB;wBAC3E,uBAAuB;wBACvB,oBAAoB;wBACpB,wBAAwB;wBACxB,yBAAyB;wBACzB,mBAAmB;wBACnB,qBAAqB;wBACrB,oBAAoB;wBACpB,0BAA0B;wBAC1B,sBAAsB;wBACtB,sBAAsB;wBACtB,yBAAyB;wBACzB,mBAAmB;wBACnB,yBAAyB;wBACzB,qBAAqB;wBACrB,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,+BAA+B;wBAC/B,WAAW;wBACX,mBAAmB;wBACnB,kBAAkB;wBAClB,oBAAoB;wBACpB,kBAAkB;wBAClB,gBAAgB;wBAChB;AACD;AACF,iBAAA;;;AClED;;AAEG;;ACFH;;AAEG;;;;"}
|