@cqa-lib/cqa-ui 1.1.94 → 1.1.95
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/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +12 -3
- package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +10 -3
- package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +98 -6
- package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +12 -3
- package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +12 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +138 -13
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +134 -11
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/basic-step/basic-step.component.d.ts +3 -1
- package/lib/execution-screen/condition-step/condition-step.component.d.ts +1 -0
- package/lib/execution-screen/db-verification-step/db-verification-step.component.d.ts +35 -3
- package/lib/execution-screen/loop-step/loop-step.component.d.ts +3 -1
- package/lib/execution-screen/step-group/step-group.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ export declare class BasicStepComponent extends BaseStepComponent implements OnI
|
|
|
24
24
|
isLive: boolean;
|
|
25
25
|
nestedSteps?: ExecutionStepConfig[];
|
|
26
26
|
hasChild?: boolean;
|
|
27
|
+
isLoading?: boolean;
|
|
27
28
|
onExpandHandler?: (step: ExecutionStepConfig) => void;
|
|
28
29
|
getConditionBranchesHandler?: (step: ExecutionStepConfig) => ConditionBranch[];
|
|
29
30
|
onConditionBranchClickHandler?: (step: any, branch: any) => void;
|
|
@@ -70,6 +71,7 @@ export declare class BasicStepComponent extends BaseStepComponent implements OnI
|
|
|
70
71
|
get showViewMoreButton(): boolean;
|
|
71
72
|
toggle(): void;
|
|
72
73
|
toggleHeader(): void;
|
|
74
|
+
isStepLoading(): boolean;
|
|
73
75
|
static ɵfac: i0.ɵɵFactoryDeclaration<BasicStepComponent, never>;
|
|
74
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BasicStepComponent, "cqa-basic-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "subSteps": "subSteps"; "selfHealAnalysis": "selfHealAnalysis"; "selfHealed": "selfHealed"; "selfHealDuration": "selfHealDuration"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "isLive": "isLive"; "nestedSteps": "nestedSteps"; "hasChild": "hasChild"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; }, never, never>;
|
|
76
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BasicStepComponent, "cqa-basic-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "subSteps": "subSteps"; "selfHealAnalysis": "selfHealAnalysis"; "selfHealed": "selfHealed"; "selfHealDuration": "selfHealDuration"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "isLive": "isLive"; "nestedSteps": "nestedSteps"; "hasChild": "hasChild"; "isLoading": "isLoading"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; }, never, never>;
|
|
75
77
|
}
|
|
@@ -67,6 +67,7 @@ export declare class ConditionStepComponent extends BaseStepComponent implements
|
|
|
67
67
|
getExecutedBranch(): ConditionBranch | null;
|
|
68
68
|
getUnexecutedBranches(): ConditionBranch[];
|
|
69
69
|
getSubStepIndex(subSteps: any[], subStep: any): number;
|
|
70
|
+
isStepLoading(): boolean;
|
|
70
71
|
onViewMoreFailedStepClick(expanded: boolean): void;
|
|
71
72
|
getSubStepsForFailedStep(): SubStep[];
|
|
72
73
|
onMakeCurrentBaseline(event: makeCurrentBaselineEvent): void;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
|
|
2
2
|
import { BaseStepComponent } from '../base-step.component';
|
|
3
|
-
import { DbVerificationStepConfig, DbTestResult, DbQueryResult, DbAssertionResult, StepStatus, TimingBreakdown } from '../execution-step.models';
|
|
3
|
+
import { DbVerificationStepConfig, DbTestResult, DbQueryResult, DbAssertionResult, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction } from '../execution-step.models';
|
|
4
4
|
import { DynamicTableColumn } from '../../table/dynamic-table/dynamic-table.component';
|
|
5
5
|
import { EmptyStateConfig } from '../../empty-state/empty-state-config.interface';
|
|
6
|
+
import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class DbVerificationStepComponent extends BaseStepComponent implements OnInit, OnChanges {
|
|
8
9
|
id: string;
|
|
@@ -18,6 +19,26 @@ export declare class DbVerificationStepComponent extends BaseStepComponent imple
|
|
|
18
19
|
name: string;
|
|
19
20
|
dbType: string;
|
|
20
21
|
};
|
|
22
|
+
failureDetails?: FailureDetails;
|
|
23
|
+
reasoning?: string[];
|
|
24
|
+
confidence?: string;
|
|
25
|
+
isUploadingBaseline: {};
|
|
26
|
+
isMakingCurrentBaseline: {};
|
|
27
|
+
selfHealAnalysis?: SelfHealAnalysisData;
|
|
28
|
+
getSelfHealLoadingStatesHandler?: () => {
|
|
29
|
+
isLoadingAccept: boolean;
|
|
30
|
+
isLoadingModifyAccept: boolean;
|
|
31
|
+
};
|
|
32
|
+
isLive: boolean;
|
|
33
|
+
showFailedStepDetails: boolean;
|
|
34
|
+
makeCurrentBaseline: EventEmitter<makeCurrentBaselineEvent>;
|
|
35
|
+
uploadBaseline: EventEmitter<uploadBaselineEvent>;
|
|
36
|
+
analyze: EventEmitter<void>;
|
|
37
|
+
viewFullLogs: EventEmitter<void>;
|
|
38
|
+
selfHealAction: EventEmitter<{
|
|
39
|
+
type: SelfHealAction;
|
|
40
|
+
healedLocator: string;
|
|
41
|
+
}>;
|
|
21
42
|
config: DbVerificationStepConfig;
|
|
22
43
|
verificationFilter: 'all' | 'failed' | 'passed';
|
|
23
44
|
filterSegments: {
|
|
@@ -64,6 +85,17 @@ export declare class DbVerificationStepComponent extends BaseStepComponent imple
|
|
|
64
85
|
copyEnvironment(): void;
|
|
65
86
|
getFailureMessage(): string | null;
|
|
66
87
|
formatVerificationType(type: string): string;
|
|
88
|
+
onViewMoreFailedStepClick(expanded: boolean): void;
|
|
89
|
+
getSubStepsForFailedStep(): SubStep[];
|
|
90
|
+
get showViewMoreButton(): boolean;
|
|
91
|
+
onMakeCurrentBaseline(event: makeCurrentBaselineEvent): void;
|
|
92
|
+
onUploadBaseline(event: uploadBaselineEvent): void;
|
|
93
|
+
onAnalyze(): void;
|
|
94
|
+
onViewFullLogs(): void;
|
|
95
|
+
onSelfHealAction(event: {
|
|
96
|
+
type: SelfHealAction;
|
|
97
|
+
healedLocator: string;
|
|
98
|
+
}): void;
|
|
67
99
|
static ɵfac: i0.ɵɵFactoryDeclaration<DbVerificationStepComponent, never>;
|
|
68
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DbVerificationStepComponent, "cqa-db-verification-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "dbTestResult": "dbTestResult"; "dbConfig": "dbConfig"; }, {}, never, never>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbVerificationStepComponent, "cqa-db-verification-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "dbTestResult": "dbTestResult"; "dbConfig": "dbConfig"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "selfHealAnalysis": "selfHealAnalysis"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "isLive": "isLive"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; }, never, never>;
|
|
69
101
|
}
|
|
@@ -20,6 +20,7 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
20
20
|
showViewAllIterations?: boolean;
|
|
21
21
|
hasChild?: boolean;
|
|
22
22
|
isLive: boolean;
|
|
23
|
+
isLoading?: boolean;
|
|
23
24
|
onExpandHandler?: (step: ExecutionStepConfig) => void;
|
|
24
25
|
getConditionBranchesHandler?: (step: ExecutionStepConfig) => ConditionBranch[];
|
|
25
26
|
onConditionBranchClickHandler?: (step: any, branch: any) => void;
|
|
@@ -117,6 +118,7 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
117
118
|
getLoopSelectedIterationId(step: ExecutionStepConfig): string | undefined;
|
|
118
119
|
getLoopDefaultIteration(step: ExecutionStepConfig): 'first' | 'last' | undefined;
|
|
119
120
|
getLoopShowViewAllIterations(step: ExecutionStepConfig): boolean | undefined;
|
|
121
|
+
isStepLoading(): boolean;
|
|
120
122
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoopStepComponent, never>;
|
|
121
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoopStepComponent, "cqa-loop-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "loopType": "loopType"; "iterations": "iterations"; "selectedIterationId": "selectedIterationId"; "defaultIteration": "defaultIteration"; "nestedSteps": "nestedSteps"; "showViewAllIterations": "showViewAllIterations"; "hasChild": "hasChild"; "isLive": "isLive"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "selfHealAnalysis": "selfHealAnalysis"; "iterationData": "iterationData"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; "onExpand": "onExpand"; "onViewAllIterations": "onViewAllIterations"; "onIterationChange": "onIterationChange"; }, never, never>;
|
|
123
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoopStepComponent, "cqa-loop-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "loopType": "loopType"; "iterations": "iterations"; "selectedIterationId": "selectedIterationId"; "defaultIteration": "defaultIteration"; "nestedSteps": "nestedSteps"; "showViewAllIterations": "showViewAllIterations"; "hasChild": "hasChild"; "isLive": "isLive"; "isLoading": "isLoading"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "selfHealAnalysis": "selfHealAnalysis"; "iterationData": "iterationData"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; "onExpand": "onExpand"; "onViewAllIterations": "onViewAllIterations"; "onIterationChange": "onIterationChange"; }, never, never>;
|
|
122
124
|
}
|
|
@@ -15,6 +15,7 @@ export declare class StepGroupComponent extends BaseStepComponent implements OnI
|
|
|
15
15
|
groupName: string;
|
|
16
16
|
steps: ExecutionStepConfig[];
|
|
17
17
|
hasChild?: boolean;
|
|
18
|
+
isLoading?: boolean;
|
|
18
19
|
onExpandHandler?: (step: ExecutionStepConfig) => void;
|
|
19
20
|
getConditionBranchesHandler?: (step: ExecutionStepConfig) => ConditionBranch[];
|
|
20
21
|
onConditionBranchClickHandler?: (step: any, branch: any) => void;
|
|
@@ -66,6 +67,7 @@ export declare class StepGroupComponent extends BaseStepComponent implements OnI
|
|
|
66
67
|
getLoopSelectedIterationId(step: ExecutionStepConfig): string | undefined;
|
|
67
68
|
getLoopDefaultIteration(step: ExecutionStepConfig): 'first' | 'last' | undefined;
|
|
68
69
|
getLoopShowViewAllIterations(step: ExecutionStepConfig): boolean | undefined;
|
|
70
|
+
isStepLoading(): boolean;
|
|
69
71
|
static ɵfac: i0.ɵɵFactoryDeclaration<StepGroupComponent, never>;
|
|
70
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StepGroupComponent, "cqa-step-group", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "groupName": "groupName"; "steps": "steps"; "hasChild": "hasChild"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "isLive": "isLive"; }, { "onExpand": "onExpand"; }, never, never>;
|
|
72
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepGroupComponent, "cqa-step-group", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "groupName": "groupName"; "steps": "steps"; "hasChild": "hasChild"; "isLoading": "isLoading"; "onExpandHandler": "onExpandHandler"; "getConditionBranchesHandler": "getConditionBranchesHandler"; "onConditionBranchClickHandler": "onConditionBranchClickHandler"; "isStepLoadingHandler": "isStepLoadingHandler"; "isStepExpandedHandler": "isStepExpandedHandler"; "convertMsToSecondsHandler": "convertMsToSecondsHandler"; "formatFailureDetailsHandler": "formatFailureDetailsHandler"; "getSelfHealAnalysisHandler": "getSelfHealAnalysisHandler"; "onMakeCurrentBaselineHandler": "onMakeCurrentBaselineHandler"; "onUploadBaselineHandler": "onUploadBaselineHandler"; "onAnalyzeHandler": "onAnalyzeHandler"; "onViewFullLogsHandler": "onViewFullLogsHandler"; "onSelfHealActionHandler": "onSelfHealActionHandler"; "getLoopIterationsHandler": "getLoopIterationsHandler"; "getApiAssertionsHandler": "getApiAssertionsHandler"; "formatActionsHandler": "formatActionsHandler"; "onViewAllIterationsHandler": "onViewAllIterationsHandler"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "isLive": "isLive"; }, { "onExpand": "onExpand"; }, never, never>;
|
|
71
73
|
}
|