@serve.zone/dcrouter 18.2.0 → 18.3.0

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.
Files changed (42) hide show
  1. package/deno.json +1 -1
  2. package/dist_serve/bundle.js +2254 -2315
  3. package/dist_ts/00_commitinfo_data.js +1 -1
  4. package/dist_ts/classes.dcrouter.d.ts +5 -3
  5. package/dist_ts/classes.dcrouter.js +1 -1
  6. package/dist_ts/db/documents/classes.cached.email.d.ts +17 -4
  7. package/dist_ts/db/documents/classes.cached.email.js +105 -8
  8. package/dist_ts/email/classes.accepted-email-spool.d.ts +1 -8
  9. package/dist_ts/email/classes.accepted-email-spool.js +3 -40
  10. package/dist_ts/email/helpers.email-log-traffic.d.ts +19 -0
  11. package/dist_ts/email/helpers.email-log-traffic.js +79 -0
  12. package/dist_ts/email/helpers.inbound-security.d.ts +8 -0
  13. package/dist_ts/email/helpers.inbound-security.js +36 -0
  14. package/dist_ts/email/index.d.ts +2 -0
  15. package/dist_ts/email/index.js +3 -1
  16. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +3 -0
  17. package/dist_ts/opsserver/handlers/email-ops.handler.js +84 -6
  18. package/dist_ts_interfaces/requests/email-ops.d.ts +41 -0
  19. package/dist_ts_migrations/index.js +47 -14
  20. package/dist_ts_web/00_commitinfo_data.js +1 -1
  21. package/dist_ts_web/appstate/email-ops.d.ts +12 -1
  22. package/dist_ts_web/appstate/email-ops.js +77 -4
  23. package/dist_ts_web/appstate/runtime.js +11 -3
  24. package/dist_ts_web/elements/email/ops-view-email-security.d.ts +2 -0
  25. package/dist_ts_web/elements/email/ops-view-email-security.js +58 -16
  26. package/dist_ts_web/elements/email/ops-view-emails.d.ts +7 -2
  27. package/dist_ts_web/elements/email/ops-view-emails.js +78 -4
  28. package/package.json +3 -3
  29. package/ts/00_commitinfo_data.ts +1 -1
  30. package/ts/classes.dcrouter.ts +6 -3
  31. package/ts/db/documents/classes.cached.email.ts +141 -7
  32. package/ts/email/classes.accepted-email-spool.ts +5 -52
  33. package/ts/email/helpers.email-log-traffic.ts +117 -0
  34. package/ts/email/helpers.inbound-security.ts +46 -0
  35. package/ts/email/index.ts +2 -0
  36. package/ts/opsserver/handlers/email-ops.handler.ts +116 -4
  37. package/ts_web/00_commitinfo_data.ts +1 -1
  38. package/ts_web/appstate/email-ops.ts +99 -3
  39. package/ts_web/appstate/runtime.ts +13 -2
  40. package/ts_web/elements/email/ops-view-email-security.ts +56 -16
  41. package/ts_web/elements/email/ops-view-emails.ts +74 -2
  42. package/ts_web/readme.md +7 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/dcrouter',
6
- version: '18.2.0',
6
+ version: '18.3.0',
7
7
  description: 'A multifaceted routing service handling mail and SMS delivery functions.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSwwRUFBMEU7Q0FDeEYsQ0FBQSJ9
@@ -2,10 +2,21 @@ import * as plugins from '../plugins.js';
2
2
  import * as interfaces from '../../dist_ts_interfaces/index.js';
3
3
  export interface IEmailOpsState {
4
4
  emails: interfaces.requests.IEmail[];
5
+ traffic: interfaces.requests.IEmailLogTraffic | null;
6
+ searchQuery: string;
7
+ securityFindings: interfaces.requests.IEmailSecurityFinding[];
8
+ securityFindingsLoading: boolean;
9
+ securityFindingsError: string | null;
5
10
  isLoading: boolean;
6
11
  error: string | null;
7
12
  lastUpdated: number;
13
+ lastSecurityUpdated: number;
8
14
  }
9
15
  export declare const emailOpsStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IEmailOpsState>;
10
- export declare const fetchAllEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, unknown>;
16
+ export interface IEmailOpsFetchOptions {
17
+ searchQuery?: string;
18
+ }
19
+ export declare function setActiveEmailSearchQuery(searchQueryArg: string): string;
20
+ export declare const fetchAllEmailsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, IEmailOpsFetchOptions | null>;
21
+ export declare const fetchEmailSecurityFindingsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IEmailOpsState, void>;
11
22
  export declare function fetchEmailDetailSnapshot(emailIdArg: string): Promise<interfaces.requests.IEmailDetail | null>;
@@ -5,36 +5,67 @@ import { getActionContext } from './login.js';
5
5
  import { captureRealtimeTicket, isRealtimeTicketCurrent } from './realtime.js';
6
6
  export const emailOpsStatePart = await appState.getStatePart('emailOps', {
7
7
  emails: [],
8
+ traffic: null,
9
+ searchQuery: '',
10
+ securityFindings: [],
11
+ securityFindingsLoading: false,
12
+ securityFindingsError: null,
8
13
  isLoading: false,
9
14
  error: null,
10
15
  lastUpdated: 0,
16
+ lastSecurityUpdated: 0,
11
17
  }, 'soft');
12
18
  // Email Operations Actions
13
19
  // ============================================================================
20
+ let activeSearchQuery = '';
21
+ let emailListRequestGeneration = 0;
22
+ let securityFindingsRequestGeneration = 0;
23
+ export function setActiveEmailSearchQuery(searchQueryArg) {
24
+ const nextSearchQuery = searchQueryArg.trim().slice(0, 200);
25
+ if (nextSearchQuery === activeSearchQuery)
26
+ return activeSearchQuery;
27
+ activeSearchQuery = nextSearchQuery;
28
+ emailListRequestGeneration++;
29
+ const currentState = emailOpsStatePart.getState();
30
+ emailOpsStatePart.setState({
31
+ ...currentState,
32
+ searchQuery: activeSearchQuery,
33
+ });
34
+ return activeSearchQuery;
35
+ }
14
36
  // Fetch All Emails Action
15
- export const fetchAllEmailsAction = emailOpsStatePart.createAction(async (statePartArg) => {
37
+ export const fetchAllEmailsAction = emailOpsStatePart.createAction(async (statePartArg, dataArg) => {
16
38
  const context = getActionContext();
17
39
  const currentState = statePartArg.getState();
18
40
  if (!context.identity)
19
41
  return currentState;
42
+ const searchQuery = dataArg?.searchQuery !== undefined
43
+ ? setActiveEmailSearchQuery(dataArg.searchQuery)
44
+ : activeSearchQuery;
45
+ const requestGeneration = ++emailListRequestGeneration;
20
46
  const ticket = captureRealtimeTicket(['emailQueue', 'smtpAttempts']);
21
47
  try {
22
48
  const request = new plugins.domtools.plugins.typedrequest.TypedRequest('/typedrequest', 'getAllEmails');
23
49
  const response = await request.fire({
24
50
  identity: context.identity,
51
+ ...(searchQuery ? { search: searchQuery } : {}),
25
52
  });
26
- if (!isRealtimeTicketCurrent(ticket))
53
+ if (requestGeneration !== emailListRequestGeneration
54
+ || !isRealtimeTicketCurrent(ticket))
27
55
  return statePartArg.getState();
28
56
  return {
29
57
  ...statePartArg.getState(),
30
58
  emails: response.emails,
59
+ traffic: response.traffic,
60
+ searchQuery,
31
61
  isLoading: false,
32
62
  error: null,
33
63
  lastUpdated: Date.now(),
34
64
  };
35
65
  }
36
66
  catch (error) {
37
- if (!isRealtimeTicketCurrent(ticket))
67
+ if (requestGeneration !== emailListRequestGeneration
68
+ || !isRealtimeTicketCurrent(ticket))
38
69
  return statePartArg.getState();
39
70
  return {
40
71
  ...statePartArg.getState(),
@@ -43,6 +74,48 @@ export const fetchAllEmailsAction = emailOpsStatePart.createAction(async (stateP
43
74
  };
44
75
  }
45
76
  });
77
+ export const fetchEmailSecurityFindingsAction = emailOpsStatePart.createAction(async (statePartArg) => {
78
+ const context = getActionContext();
79
+ const currentState = statePartArg.getState();
80
+ if (!context.identity)
81
+ return currentState;
82
+ const requestGeneration = ++securityFindingsRequestGeneration;
83
+ const ticket = captureRealtimeTicket(['emailQueue', 'smtpAttempts']);
84
+ statePartArg.setState({
85
+ ...currentState,
86
+ securityFindingsLoading: true,
87
+ securityFindingsError: null,
88
+ });
89
+ try {
90
+ const request = new plugins.domtools.plugins.typedrequest.TypedRequest('/typedrequest', 'getEmailSecurityFindings');
91
+ const response = await request.fire({
92
+ identity: context.identity,
93
+ limit: 200,
94
+ });
95
+ if (requestGeneration !== securityFindingsRequestGeneration
96
+ || !isRealtimeTicketCurrent(ticket))
97
+ return statePartArg.getState();
98
+ return {
99
+ ...statePartArg.getState(),
100
+ securityFindings: response.findings,
101
+ securityFindingsLoading: false,
102
+ securityFindingsError: null,
103
+ lastSecurityUpdated: Date.now(),
104
+ };
105
+ }
106
+ catch (error) {
107
+ if (requestGeneration !== securityFindingsRequestGeneration
108
+ || !isRealtimeTicketCurrent(ticket))
109
+ return statePartArg.getState();
110
+ return {
111
+ ...statePartArg.getState(),
112
+ securityFindingsLoading: false,
113
+ securityFindingsError: error instanceof Error
114
+ ? error.message
115
+ : 'Failed to fetch email security findings',
116
+ };
117
+ }
118
+ });
46
119
  // ============================================================================
47
120
  export async function fetchEmailDetailSnapshot(emailIdArg) {
48
121
  const context = getActionContext();
@@ -55,4 +128,4 @@ export async function fetchEmailDetailSnapshot(emailIdArg) {
55
128
  });
56
129
  return response.email;
57
130
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2FwcHN0YXRlL2VtYWlsLW9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssVUFBVSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMvRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQzFELFVBQVUsRUFDVjtJQUNFLE1BQU0sRUFBRSxFQUFFO0lBQ1YsU0FBUyxFQUFFLEtBQUs7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsQ0FBQztDQUNmLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFFRiwyQkFBMkI7QUFDM0IsK0VBQStFO0FBRS9FLDBCQUEwQjtBQUMxQixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBMkIsRUFBRTtJQUNqSCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25DLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUcsQ0FBQztJQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7UUFBRSxPQUFPLFlBQVksQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBRXJFLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FFcEUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQztZQUNsQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sWUFBWSxDQUFDLFFBQVEsRUFBRyxDQUFDO1FBRXRFLE9BQU87WUFDTCxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUc7WUFDM0IsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sWUFBWSxDQUFDLFFBQVEsRUFBRyxDQUFDO1FBQ3RFLE9BQU87WUFDTCxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUc7WUFDM0IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtTQUN6RSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLFVBQWtCO0lBRWxCLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUVwRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLE9BQU8sRUFBRSxVQUFVO0tBQ3BCLENBQUMsQ0FBQztJQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztBQUN4QixDQUFDIn0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2FwcHN0YXRlL2VtYWlsLW9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssVUFBVSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWUvRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQzFELFVBQVUsRUFDVjtJQUNFLE1BQU0sRUFBRSxFQUFFO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsRUFBRTtJQUNmLGdCQUFnQixFQUFFLEVBQUU7SUFDcEIsdUJBQXVCLEVBQUUsS0FBSztJQUM5QixxQkFBcUIsRUFBRSxJQUFJO0lBQzNCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLENBQUM7SUFDZCxtQkFBbUIsRUFBRSxDQUFDO0NBQ3ZCLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFFRiwyQkFBMkI7QUFDM0IsK0VBQStFO0FBRS9FLElBQUksaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBQzNCLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLElBQUksaUNBQWlDLEdBQUcsQ0FBQyxDQUFDO0FBTTFDLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxjQUFzQjtJQUM5RCxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1RCxJQUFJLGVBQWUs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
@@ -11,7 +11,7 @@ import { certificateStatePart, fetchCertificateOverviewAction } from './certific
11
11
  import { remoteIngressStatePart, fetchRemoteIngressAction } from './remoteingress.js';
12
12
  import { vpnStatePart, fetchVpnAction } from './vpn.js';
13
13
  import { emailDomainsStatePart, fetchEmailDomainsAction } from './email-domains.js';
14
- import { emailOpsStatePart, fetchAllEmailsAction } from './email-ops.js';
14
+ import { emailOpsStatePart, fetchAllEmailsAction, fetchEmailSecurityFindingsAction, } from './email-ops.js';
15
15
  import { domainsStatePart, fetchDnsRecordsForDomainAction, fetchDomainsAndProvidersAction, } from './domains.js';
16
16
  import { fetchHttpRedirectsAction, fetchMergedRoutesAction, routeManagementStatePart, } from './routes.js';
17
17
  import { opsRealtimeFreshness } from './realtime.js';
@@ -41,7 +41,15 @@ const refreshRealtimeGroup = async (groupArg) => {
41
41
  await emailDomainsStatePart.dispatchAction(fetchEmailDomainsAction, null);
42
42
  break;
43
43
  case 'emailOps':
44
- await emailOpsStatePart.dispatchAction(fetchAllEmailsAction, null);
44
+ if (uiStatePart.getState().activeView !== 'email') {
45
+ break;
46
+ }
47
+ if (uiStatePart.getState().activeSubview === 'security') {
48
+ await emailOpsStatePart.dispatchAction(fetchEmailSecurityFindingsAction, undefined);
49
+ }
50
+ else if (uiStatePart.getState().activeSubview === 'log') {
51
+ await emailOpsStatePart.dispatchAction(fetchAllEmailsAction, null);
52
+ }
45
53
  break;
46
54
  case 'dns': {
47
55
  const selectedDomainId = domainsStatePart.getState().selectedDomainId;
@@ -409,4 +417,4 @@ startAutoRefresh();
409
417
  if (loginStatePart.getState().isLoggedIn) {
410
418
  connectSocket();
411
419
  }
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9hcHBzdGF0ZS9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qix3QkFBd0IsR0FDekIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELCtFQUErRTtBQUMvRSxpREFBaUQ7QUFDakQsK0VBQStFO0FBRS9FLElBQUksWUFBWSxHQUEyQyxJQUFJLENBQUM7QUFDaEUsSUFBSSx3QkFBd0IsR0FBdUMsSUFBSSxDQUFDO0FBQ3hFLElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0FBQ2xDLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBVTdFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7QUFDbEUsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFdkMsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixZQUFZLEVBQUUsY0FBYztJQUM1QixVQUFVLEVBQUUsVUFBVTtJQUN0QixZQUFZLEVBQUUsVUFBVTtJQUN4QixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsWUFBWSxFQUFFLGNBQWM7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFFBQStCLEVBQWlCLEVBQUU7SUFDcEYsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLGNBQWM7WUFDakIsTUFBTSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLE1BQU0saUJBQWlCLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25FLE1BQU07UUFDUixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRyxDQUFDLGdCQUFnQixDQUFDO1lBQ3ZFLE1BQU0sZ0JBQWdCLENBQUMsY0FBYyxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxnQkFBZ0IsQ0FBQyxjQUFjLENBQ25DLDhCQUE4QixFQUM5QixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUMvQixDQUFDO1lBQ0osQ0FBQztZQUNELE1BQU07UUFDUixDQUFDO1FBQ0QsS0FBSyxRQUFRO1lBQ1gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNoQix3QkFBd0IsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO2dCQUN0RSx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDO2FBQ3hFLENBQUMsQ0FBQztZQUNILE1BQU07UUFDUixLQUFLLE9BQU87WUFDVixNQUFNLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RSxNQUFNO1FBQ1IsS0FBSyxjQUFjO1lBQ2pCLE1BQU0sb0JBQW9CLENBQUMsY0FBYyxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM3RixNQUFNLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RSxNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUFHLEtBQUssSUFBbUIsRUFBRTtJQUN2RCxJQUFJLDBCQUEwQjtRQUFFLE9BQU87SUFDdkMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLElBQUksQ0FBQztRQUNILE9BQU8sd0JBQXdCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNwRCx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQztvQkFDSCxNQUFNLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ25FLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7WUFBUyxDQUFDO1FBQ1QsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksd0JBQXdCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FDbEMsY0FBc0IsRUFDdEIsZ0JBQWdFLEVBQzFELEVBQUU7SUFDUixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDL0UsS0FBSyxNQUFNLFlBQVksSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNwQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLDRGQUE0RjtBQUM1RixJQUFJLGNBQWMsR0FBZ0MsRUFBRSxDQUFDO0FBQ3JELElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRTlCLFNBQVMsZUFBZTtJQUN0QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUcsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQzNELGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsc0JBQXNCO0lBQ3RCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBZSxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELDBEQUEwRDtBQUMxRCxZQUFZLENBQUMsZUFBZSxDQUMxQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQ3BELGNBQWMsRUFDZCxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDaEIsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FDRixDQUNGLENBQUM7QUFFRixZQUFZLENBQUMsZUFBZSxDQUMxQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBR3BELDZCQUE2QixFQUM3QixLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDaEIsMkJBQTJCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEUsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUMzQixTQUEwQyxFQUMxQyxhQUFxQixFQUNOLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDN0MsSUFBSSxDQUFDLFFBQVEsSUFBSSxhQUFhLEtBQUssZ0JBQWdCLElBQUksU0FBUyxLQUFLLFlBQVk7UUFBRSxPQUFPO0lBRTFGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FDMUMsc0JBQXNCLENBQ3ZCLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEMsUUFBUTtRQUNSLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxFQUFFO0tBQ3hDLENBQUMsQ0FBQztJQUNILElBQUksYUFBYSxLQUFLLGdCQUFnQixJQUFJLFNBQVMsS0FBSyxZQUFZO1FBQUUsT0FBTztJQUM3RSwyQkFBMkIsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUM7QUFFRixLQUFLLFVBQVUsYUFBYTtJQUMxQixJQUFJLFlBQVksSUFBSSxxQkFBcUIsSUFBSSxRQUFRLENBQUMsTUFBTTtRQUFFLE9BQU87SUFDckUscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQzdCLE1BQU0sVUFBVSxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7SUFDdEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQy9ELFlBQVksRUFDWixPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxFQUM1RCxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FDeEIsQ0FBQztRQUNGLElBQUksVUFBVSxLQUFLLGdCQUFnQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlFLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUN0Qix3QkFBd0IsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ25FLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixLQUFLLGVBQWUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyRCx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4Qyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELFlBQVksR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztZQUFTLENBQUM7UUFDVCxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCO0lBQzdCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztJQUM1QixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsMkJBQTJCO1FBQzdCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELHlEQUF5RDtBQUN6RCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7QUFFekIsZ0RBQWdEO0FBQ2hELEtBQUssVUFBVSw2QkFBNkI7SUFDMUMsSUFBSSxZQUFZO1FBQUUsT0FBTztJQUN6QixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLElBQUksQ0FBQztRQUNILE1BQU0sa0NBQWtDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO1lBQVMsQ0FBQztRQUNULFlBQVksR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsa0NBQWtDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1FBQUUsT0FBTztJQUM5QixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFHLENBQUMsVUFBVSxDQUFDO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxhQUFhLENBQUM7SUFFN0QsSUFBSSxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELE1BQU0sZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FFNUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFekMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDbEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsSUFBSTtnQkFDWCxHQUFHLEVBQUUsSUFBSTtnQkFDVCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxPQUFPLEVBQUUsV0FBVyxLQUFLLFNBQVMsSUFBSSxjQUFjLEtBQUssVUFBVTtnQkFDbkUsTUFBTSxFQUFFLElBQUk7Z0JBQ1osR0FBRyxFQUFFLElBQUk7YUFDVjtTQUNGLENBQUMsQ0FBQztRQUVILDBDQUEwQztRQUMxQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUcsQ0FBQztRQUNyRCxjQUFjLENBQUMsUUFBUSxDQUFDO1lBQ3RCLEdBQUcsaUJBQWlCO1lBQ3BCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGlCQUFpQixDQUFDLFdBQVc7WUFDN0UsVUFBVSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksaUJBQWlCLENBQUMsVUFBVTtZQUMxRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRO1lBQ3BFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLGlCQUFpQixDQUFDLGVBQWU7WUFDdkYsV0FBVyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsV0FBVztZQUM3RSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRO1lBQ3BFLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsbUNBQW1DO1FBQ25DLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEUsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNqRCxNQUFNLGVBQWUsR0FBNkIsRUFBRSxDQUFDO1lBRXJELHFGQUFxRjtZQUNyRixPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakgsQ0FBQyxDQUFDLENBQUM7WUFFSCxvRUFBb0U7WUFDcEUsTUFBTSxXQUFXLEdBQXNDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRyxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUM5QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ2pDLFlBQVksRUFBRSxRQUFRO2dCQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBZTtnQkFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFZO2dCQUN4QixhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDeEIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBRUosZ0JBQWdCLENBQUMsUUFBUSxDQUFDO2dCQUN4QixHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRztnQkFDL0IsV0FBVztnQkFDWCxlQUFlO2dCQUNmLGNBQWMsRUFBRTtvQkFDZCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQzNDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRztpQkFDOUM7Z0JBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ25ELE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25FLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUTtvQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVc7b0JBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDO29CQUMxQixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztpQkFDN0IsQ0FBQyxDQUFDO2dCQUNILE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7Z0JBQzlCLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6SCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFO2dCQUM1QyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksRUFBRTtnQkFDbEQseUJBQXlCLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixJQUFJLEVBQUU7Z0JBQ2xFLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyx3QkFBd0IsSUFBSSxFQUFFO2dCQUNoRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksQ0FBQztnQkFDakQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQztnQkFDekMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtnQkFDaEMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUk7Z0JBQ3BELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO2dCQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDdkIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1lBRUgsNEJBQTRCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDN0MsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUM5RCxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUM1RCxHQUFHLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzthQUNoRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDL0Isb0JBQW9CLENBQUMsZ0JBQWdCLEVBQUUsaUNBQWlDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ25GLE1BQU0sdUJBQXVCLENBQUMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxJQUFJLFdBQVcsS0FBSyxTQUFTLElBQUksY0FBYyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ25FLG9CQUFvQixDQUFDLGNBQWMsRUFBRSw2QkFBNkIsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDN0UsTUFBTSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxjQUFjLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDcEUsb0JBQW9CLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNqRixNQUFNLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxtREFBbUQ7UUFDbkQsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLGNBQWMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxRCxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzVELE1BQU0sWUFBWSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELHdFQUF3RTtRQUN4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVGLE1BQU0sY0FBYyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtJQUNyRixNQUFNLDZCQUE2QixFQUFFLENBQUM7SUFDdEMsZ0dBQWdHO0lBQ2hHLE9BQU8sWUFBWSxDQUFDLFFBQVEsRUFBRyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBRUgsbUdBQW1HO0FBQ25HLElBQUksY0FBYyxHQUFtRSxJQUFJLENBQUM7QUFFMUYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7SUFDNUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRyxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUcsQ0FBQztJQUU5QyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pELHlEQUF5RDtRQUN6RCxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxjQUFjLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixDQUFDO1lBQ3BELE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1lBQ25DLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsY0FBYyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLDZCQUE2QjtBQUM3QixJQUFJLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxXQUFXLENBQUM7QUFDOUQsSUFBSSx1QkFBdUIsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFHLENBQUMsZUFBZSxDQUFDO0FBQ3RFLElBQUksa0JBQWtCLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRyxDQUFDLFVBQVUsQ0FBQztBQUUvRCxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQzVGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ25CLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxtQkFBbUI7UUFDekMsS0FBSyxDQUFDLGVBQWUsS0FBSyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3RELG1CQUFtQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDeEMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUNoRCxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVMLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtJQUNsRSxJQUFJLFVBQVUsS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztRQUNoQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5CLHNEQUFzRDtRQUN0RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsYUFBYSxFQUFFLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSCxxREFBcUQ7QUFDckQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNqRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JCLENBQUM7U0FBTSxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqRCxhQUFhLEVBQUUsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSCxnQkFBZ0I7QUFDaEIsZ0JBQWdCLEVBQUUsQ0FBQztBQUVuQixzRUFBc0U7QUFDdEUsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsYUFBYSxFQUFFLENBQUM7QUFDbEIsQ0FBQyJ9
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9hcHBzdGF0ZS9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdDQUFnQyxHQUNqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qix3QkFBd0IsR0FDekIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELCtFQUErRTtBQUMvRSxpREFBaUQ7QUFDakQsK0VBQStFO0FBRS9FLElBQUksWUFBWSxHQUEyQyxJQUFJLENBQUM7QUFDaEUsSUFBSSx3QkFBd0IsR0FBdUMsSUFBSSxDQUFDO0FBQ3hFLElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0FBQ2xDLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBVTdFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7QUFDbEUsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFdkMsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixZQUFZLEVBQUUsY0FBYztJQUM1QixVQUFVLEVBQUUsVUFBVTtJQUN0QixZQUFZLEVBQUUsVUFBVTtJQUN4QixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsWUFBWSxFQUFFLGNBQWM7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFFBQStCLEVBQWlCLEVBQUU7SUFDcEYsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLGNBQWM7WUFDakIsTUFBTSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRyxDQUFDLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDbkQsTUFBTTtZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3pELE1BQU0saUJBQWlCLENBQUMsY0FBYyxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7aUJBQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFHLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUMzRCxNQUFNLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNYLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDdkUsTUFBTSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQixNQUFNLGdCQUFnQixDQUFDLGNBQWMsQ0FDbkMsOEJBQThCLEVBQzlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQy9CLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTTtRQUNSLENBQUM7UUFDRCxLQUFLLFFBQVE7WUFDWCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUM7Z0JBQ3RFLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUM7YUFDeEUsQ0FBQyxDQUFDO1lBQ0gsTUFBTTtRQUNSLEtBQUssT0FBTztZQUNWLE1BQU0sc0JBQXNCLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLE1BQU07UUFDUixLQUFLLGNBQWM7WUFDakIsTUFBTSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEYsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNwQixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzdGLE1BQU0sb0JBQW9CLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pFLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxJQUFtQixFQUFFO0lBQ3ZELElBQUksMEJBQTBCO1FBQUUsT0FBTztJQUN2QywwQkFBMEIsR0FBRyxJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3BELHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDO29CQUNILE1BQU0sb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztZQUFTLENBQUM7UUFDVCwwQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSwyQkFBMkIsR0FBRyxDQUNsQyxjQUFzQixFQUN0QixnQkFBZ0UsRUFDMUQsRUFBRTtJQUNSLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRSxLQUFLLE1BQU0sWUFBWSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsNEZBQTRGO0FBQzVGLElBQUksY0FBYyxHQUFnQyxFQUFFLENBQUM7QUFDckQsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFFOUIsU0FBUyxlQUFlO0lBQ3RCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUMxQixJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDeEMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRyxDQUFDO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDM0QsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNwQixzQkFBc0I7SUFDdEIsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFlLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsMERBQTBEO0FBQzFELFlBQVksQ0FBQyxlQUFlLENBQzFCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDcEQsY0FBYyxFQUNkLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNoQixjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2QixpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUNGLENBQ0YsQ0FBQztBQUVGLFlBQVksQ0FBQyxlQUFlLENBQzFCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FHcEQsNkJBQTZCLEVBQzdCLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNoQiwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FDRixDQUNGLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQzNCLFNBQTBDLEVBQzFDLGFBQXFCLEVBQ04sRUFBRTtJQUNqQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUM3QyxJQUFJLENBQUMsUUFBUSxJQUFJLGFBQWEsS0FBSyxnQkFBZ0IsSUFBSSxTQUFTLEtBQUssWUFBWTtRQUFFLE9BQU87SUFFMUYsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUMxQyxzQkFBc0IsQ0FDdkIsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQztRQUNsQyxRQUFRO1FBQ1IsR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUU7S0FDeEMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxhQUFhLEtBQUssZ0JBQWdCLElBQUksU0FBUyxLQUFLLFlBQVk7UUFBRSxPQUFPO0lBQzdFLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQztBQUVGLEtBQUssVUFBVSxhQUFhO0lBQzFCLElBQUksWUFBWSxJQUFJLHFCQUFxQixJQUFJLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTztJQUNyRSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDN0IsTUFBTSxVQUFVLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQztJQUN0QyxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FDL0QsWUFBWSxFQUNaLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLDBCQUEwQixFQUFFLEVBQzVELEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUN4QixDQUFDO1FBQ0YsSUFBSSxVQUFVLEtBQUssZ0JBQWdCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUUsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFFRCxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzNCLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEUsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELHdCQUF3QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO1lBQVMsQ0FBQztRQUNULHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0I7SUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQix3QkFBd0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4Qyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzVCLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDcEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyQkFBMkI7UUFDN0IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQseURBQXlEO0FBQ3pELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztBQUV6QixnREFBZ0Q7QUFDaEQsS0FBSyxVQUFVLDZCQUE2QjtJQUMxQyxJQUFJLFlBQVk7UUFBRSxPQUFPO0lBQ3pCLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxrQ0FBa0MsRUFBRSxDQUFDO0lBQzdDLENBQUM7WUFBUyxDQUFDO1FBQ1QsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxrQ0FBa0M7SUFDL0MsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7UUFBRSxPQUFPO0lBQzlCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRyxDQUFDLGFBQWEsQ0FBQztJQUU3RCxJQUFJLENBQUM7UUFDSCxpREFBaUQ7UUFDakQsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUU1RSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUV6QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sZUFBZSxDQUFDLElBQUksQ0FBQztZQUNsRCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJQUFJO2dCQUNYLEdBQUcsRUFBRSxJQUFJO2dCQUNULFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRSxXQUFXLEtBQUssU0FBUyxJQUFJLGNBQWMsS0FBSyxVQUFVO2dCQUNuRSxNQUFNLEVBQUUsSUFBSTtnQkFDWixHQUFHLEVBQUUsSUFBSTthQUNWO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMENBQTBDO1FBQzFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRyxDQUFDO1FBQ3JELGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDdEIsR0FBRyxpQkFBaUI7WUFDcEIsV0FBVyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsV0FBVztZQUM3RSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxVQUFVO1lBQzFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFFBQVE7WUFDcEUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksaUJBQWlCLENBQUMsZUFBZTtZQUN2RixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxXQUFXO1lBQzdFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFFBQVE7WUFDcEUsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7UUFFSCxtQ0FBbUM7UUFDbkMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2pELE1BQU0sZUFBZSxHQUE2QixFQUFFLENBQUM7WUFFckQscUZBQXFGO1lBQ3JGLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqSCxDQUFDLENBQUMsQ0FBQztZQUVILG9FQUFvRTtZQUNwRSxNQUFNLFdBQVcsR0FBc0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pHLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFlO2dCQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQVk7Z0JBQ3hCLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN4QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7YUFDdEMsQ0FBQyxDQUFDLENBQUM7WUFFSixnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFHO2dCQUMvQixXQUFXO2dCQUNYLGVBQWU7Z0JBQ2YsY0FBYyxFQUFFO29CQUNkLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtvQkFDM0MsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHO2lCQUM5QztnQkFDRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDakYsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbkUsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRO29CQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVztvQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUM7b0JBQzFCLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUM3QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTtnQkFDOUIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pILGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUU7Z0JBQzVDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFO2dCQUNsRCx5QkFBeUIsRUFBRSxPQUFPLENBQUMseUJBQXlCLElBQUksRUFBRTtnQkFDbEUsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixJQUFJLEVBQUU7Z0JBQ2hFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDO2dCQUNqRCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDO2dCQUN6QyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFO2dCQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSTtnQkFDcEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLElBQUk7Z0JBQ2xELFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN2QixTQUFTLEVBQUUsS0FBSztnQkFDaEIsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM3QyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQzlELEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2FBQ2hGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQixvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDbkYsTUFBTSx1QkFBdUIsQ0FBQyxjQUFjLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxjQUFjLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDbkUsb0JBQW9CLENBQUMsY0FBYyxFQUFFLDZCQUE2QixFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUM3RSxNQUFNLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCx5RUFBeUU7UUFDekUsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLGNBQWMsS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUNwRSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsZ0NBQWdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2pGLE1BQU0sc0JBQXNCLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxJQUFJLFdBQVcsS0FBSyxTQUFTLElBQUksY0FBYyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFELG9CQUFvQixDQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDNUQsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsd0VBQXdFO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUYsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO0lBQ3JGLE1BQU0sNkJBQTZCLEVBQUUsQ0FBQztJQUN0QyxnR0FBZ0c7SUFDaEcsT0FBTyxZQUFZLENBQUMsUUFBUSxFQUFHLENBQUM7QUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxtR0FBbUc7QUFDbkcsSUFBSSxjQUFjLEdBQW1FLElBQUksQ0FBQztBQUUxRixNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtJQUM1QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFHLENBQUM7SUFDeEMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRyxDQUFDO0lBRTlDLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakQseURBQXlEO1FBQ3pELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUNELGNBQWMsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUM7WUFDcEQsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixPQUFPLEVBQUUsU0FBUztZQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLGVBQWU7WUFDbkMsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsNkJBQTZCO0FBQzdCLElBQUksbUJBQW1CLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRyxDQUFDLFdBQVcsQ0FBQztBQUM5RCxJQUFJLHVCQUF1QixHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxlQUFlLENBQUM7QUFDdEUsSUFBSSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFHLENBQUMsVUFBVSxDQUFDO0FBRS9ELFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7S0FDNUYsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDbkIsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLG1CQUFtQjtRQUN6QyxLQUFLLENBQUMsZUFBZSxLQUFLLHVCQUF1QixFQUFFLENBQUM7UUFDdEQsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUN4Qyx1QkFBdUIsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQ2hELGdCQUFnQixFQUFFLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUwsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO0lBQ2xFLElBQUksVUFBVSxLQUFLLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBQ2hDLGdCQUFnQixFQUFFLENBQUM7UUFFbkIsc0RBQXNEO1FBQ3RELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixhQUFhLEVBQUUsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLGdCQUFnQixFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILHFEQUFxRDtBQUNyRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2pELElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pELGFBQWEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILGdCQUFnQjtBQUNoQixnQkFBZ0IsRUFBRSxDQUFDO0FBRW5CLHNFQUFzRTtBQUN0RSxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxQyxhQUFhLEVBQUUsQ0FBQztBQUNsQixDQUFDIn0=
@@ -7,7 +7,9 @@ declare global {
7
7
  }
8
8
  export declare class OpsViewEmailSecurity extends DeesElement {
9
9
  accessor statsState: appstate.IStatsState;
10
+ accessor emailOpsState: appstate.IEmailOpsState;
10
11
  constructor();
12
+ connectedCallback(): Promise<void>;
11
13
  static styles: import("@design.estate/dees-element").CSSResult[];
12
14
  render(): TemplateResult;
13
15
  private showEditSecurityDialog;
@@ -45,12 +45,17 @@ let OpsViewEmailSecurity = (() => {
45
45
  let _statsState_decorators;
46
46
  let _statsState_initializers = [];
47
47
  let _statsState_extraInitializers = [];
48
+ let _emailOpsState_decorators;
49
+ let _emailOpsState_initializers = [];
50
+ let _emailOpsState_extraInitializers = [];
48
51
  var OpsViewEmailSecurity = class extends _classSuper {
49
52
  static { _classThis = this; }
50
53
  static {
51
54
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
52
55
  _statsState_decorators = [state()];
56
+ _emailOpsState_decorators = [state()];
53
57
  __esDecorate(this, null, _statsState_decorators, { kind: "accessor", name: "statsState", static: false, private: false, access: { has: obj => "statsState" in obj, get: obj => obj.statsState, set: (obj, value) => { obj.statsState = value; } }, metadata: _metadata }, _statsState_initializers, _statsState_extraInitializers);
58
+ __esDecorate(this, null, _emailOpsState_decorators, { kind: "accessor", name: "emailOpsState", static: false, private: false, access: { has: obj => "emailOpsState" in obj, get: obj => obj.emailOpsState, set: (obj, value) => { obj.emailOpsState = value; } }, metadata: _metadata }, _emailOpsState_initializers, _emailOpsState_extraInitializers);
54
59
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
55
60
  OpsViewEmailSecurity = _classThis = _classDescriptor.value;
56
61
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -58,15 +63,28 @@ let OpsViewEmailSecurity = (() => {
58
63
  #statsState_accessor_storage = __runInitializers(this, _statsState_initializers, appstate.statsStatePart.getState());
59
64
  get statsState() { return this.#statsState_accessor_storage; }
60
65
  set statsState(value) { this.#statsState_accessor_storage = value; }
66
+ #emailOpsState_accessor_storage = (__runInitializers(this, _statsState_extraInitializers), __runInitializers(this, _emailOpsState_initializers, appstate.emailOpsStatePart.getState()));
67
+ get emailOpsState() { return this.#emailOpsState_accessor_storage; }
68
+ set emailOpsState(value) { this.#emailOpsState_accessor_storage = value; }
61
69
  constructor() {
62
70
  super();
63
- __runInitializers(this, _statsState_extraInitializers);
71
+ __runInitializers(this, _emailOpsState_extraInitializers);
64
72
  const sub = appstate.statsStatePart
65
- .select((s) => s)
73
+ .select()
66
74
  .subscribe((s) => {
67
75
  this.statsState = s;
68
76
  });
69
77
  this.rxSubscriptions.push(sub);
78
+ const emailOpsSub = appstate.emailOpsStatePart
79
+ .select()
80
+ .subscribe((s) => {
81
+ this.emailOpsState = s;
82
+ });
83
+ this.rxSubscriptions.push(emailOpsSub);
84
+ }
85
+ async connectedCallback() {
86
+ await super.connectedCallback();
87
+ await appstate.emailOpsStatePart.dispatchAction(appstate.fetchEmailSecurityFindingsAction, undefined);
70
88
  }
71
89
  static styles = [
72
90
  cssManager.defaultStyles,
@@ -77,18 +95,15 @@ let OpsViewEmailSecurity = (() => {
77
95
  flex-direction: column;
78
96
  gap: 24px;
79
97
  }
98
+
99
+ .findingsError {
100
+ color: ${cssManager.bdTheme('#b91c1c', '#fca5a5')};
101
+ }
80
102
  `,
81
103
  ];
82
104
  render() {
83
105
  const metrics = this.statsState.securityMetrics;
84
- if (!metrics) {
85
- return html `
86
- <div class="loadingMessage">
87
- <p>Loading security metrics...</p>
88
- </div>
89
- `;
90
- }
91
- const tiles = [
106
+ const tiles = metrics ? [
92
107
  {
93
108
  id: 'malware',
94
109
  title: 'Malware Detection',
@@ -125,15 +140,19 @@ let OpsViewEmailSecurity = (() => {
125
140
  color: '#f59e0b',
126
141
  description: 'Spam emails blocked',
127
142
  },
128
- ];
143
+ ] : [];
129
144
  return html `
130
145
  <dees-heading level="3">Email Security</dees-heading>
131
146
 
132
147
  <div class="securityContainer">
133
- <dees-statsgrid
134
- .tiles=${tiles}
135
- .minTileWidth=${200}
136
- ></dees-statsgrid>
148
+ ${metrics ? html `
149
+ <dees-statsgrid
150
+ .tiles=${tiles}
151
+ .minTileWidth=${200}
152
+ ></dees-statsgrid>
153
+ ` : html `
154
+ <p class="loadingMessage">Loading security metrics...</p>
155
+ `}
137
156
 
138
157
  <dees-settings
139
158
  .heading=${'Security Configuration'}
@@ -145,6 +164,29 @@ let OpsViewEmailSecurity = (() => {
145
164
  ]}
146
165
  .actions=${[{ name: 'Edit', action: () => this.showEditSecurityDialog() }]}
147
166
  ></dees-settings>
167
+
168
+ <dees-table
169
+ .heading1=${'Email Security Findings'}
170
+ .heading2=${this.emailOpsState.securityFindingsLoading
171
+ ? 'Loading retained findings...'
172
+ : this.emailOpsState.securityFindingsError
173
+ ? 'Could not load retained findings'
174
+ : `Last 30 days · ${this.emailOpsState.securityFindings.length} findings`}
175
+ .data=${this.emailOpsState.securityFindings}
176
+ .searchable=${false}
177
+ .rowKey=${'id'}
178
+ .displayFunction=${(finding) => ({
179
+ 'Time': new Date(finding.timestamp).toLocaleString(),
180
+ 'From': finding.from,
181
+ 'To': finding.to,
182
+ 'Title': finding.subject || '(no title)',
183
+ 'Security issue': `${finding.disposition === 'rejected' ? 'Rejected' : 'Flagged'} — ${finding.failureSummary}`,
184
+ })}
185
+ ></dees-table>
186
+
187
+ ${this.emailOpsState.securityFindingsError ? html `
188
+ <p class="findingsError">${this.emailOpsState.securityFindingsError}</p>
189
+ ` : html ``}
148
190
  </div>
149
191
  `;
150
192
  }
@@ -175,4 +217,4 @@ let OpsViewEmailSecurity = (() => {
175
217
  return OpsViewEmailSecurity = _classThis;
176
218
  })();
177
219
  export { OpsViewEmailSecurity };
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZW1haWwtc2VjdXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZW1haWwvb3BzLXZpZXctZW1haWwtc2VjdXJpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixLQUFLLEVBQ0wsR0FBRyxFQUNILFVBQVUsR0FFWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDQyxXQUFXOzs7O29DQUFuQixTQUFRLFdBQVc7Ozs7c0NBQ2xELEtBQUssRUFBRTtZQUNSLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBNkQ7WUFGbEYsNktBdUhDOzs7O1FBckhDLGlGQUE0QyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRyxFQUFDO1FBQWhGLElBQVMsVUFBVSxnREFBNkQ7UUFBaEYsSUFBUyxVQUFVLHNEQUE2RDtRQUVoRjtZQUNFLEtBQUssRUFBRSxDQUFDOztZQUNSLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjO2lCQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDaEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FB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
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZW1haWwtc2VjdXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZW1haWwvb3BzLXZpZXctZW1haWwtc2VjdXJpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixLQUFLLEVBQ0wsR0FBRyxFQUNILFVBQVUsR0FFWCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQVNqRCxvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7O29DQUFuQixTQUFRLFdBQVc7Ozs7c0NBQ2xELEtBQUssRUFBRTt5Q0FHUCxLQUFLLEVBQUU7WUFGUixtTEFBUyxVQUFVLDZCQUFWLFVBQVUsK0ZBQTZEO1lBR2hGLDRMQUFTLGFBQWEsNkJBQWIsYUFBYSxxR0FBbUU7WUFMM0YsNktBK0pDOzs7O1FBN0pDLGlGQUE0QyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRyxFQUFDO1FBQWhGLElBQVMsVUFBVSxnREFBNkQ7UUFBaEYsSUFBUyxVQUFVLHNEQUE2RDtRQUdoRixnSkFBa0QsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRyxHQUFDO1FBQXpGLElBQVMsYUFBYSxtREFBbUU7UUFBekYsSUFBUyxhQUFhLHlEQUFtRTtRQUV6RjtZQUNFLEtBQUssRUFBRSxDQUFDOztZQUNSLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjO2lCQUNoQyxNQUFNLEVBQUU7aUJBQ1IsU0FBUyxDQUFDLENBQUMsQ0FBQyxF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
@@ -1,4 +1,4 @@
1
- import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
1
+ import { DeesElement } from '@design.estate/dees-element';
2
2
  import * as interfaces from '../../../dist_ts_interfaces/index.js';
3
3
  declare global {
4
4
  interface HTMLElementTagNameMap {
@@ -10,14 +10,19 @@ export declare class OpsViewEmails extends DeesElement {
10
10
  accessor selectedEmail: interfaces.requests.IEmailDetail | null;
11
11
  accessor currentView: 'list' | 'detail';
12
12
  accessor isLoading: boolean;
13
+ accessor traffic: interfaces.requests.IEmailLogTraffic | null;
14
+ accessor searchQuery: string;
13
15
  private stateSubscription;
14
16
  private lastEmailOpsUpdate;
15
17
  private detailRequestGeneration;
18
+ private searchDebounceTimer;
16
19
  connectedCallback(): Promise<void>;
17
20
  disconnectedCallback(): Promise<void>;
18
21
  static styles: import("@design.estate/dees-element").CSSResult[];
19
- render(): TemplateResult<1>;
22
+ render(): import("@design.estate/dees-element").TemplateResult<1>;
20
23
  private refreshEmailDetail;
21
24
  private handleEmailClick;
25
+ private handleSearchChange;
26
+ private getEmailTrafficSeries;
22
27
  private handleBack;
23
28
  }