@mikashboks/capture-intelligence-core 0.1.21 → 0.1.24
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/dist/cjs/capture-normalization.d.ts +2 -1
- package/dist/cjs/capture-normalization.d.ts.map +1 -1
- package/dist/cjs/capture-normalization.js +42 -11
- package/dist/cjs/capture-normalization.js.map +1 -1
- package/dist/cjs/document-classifier.d.ts +2 -1
- package/dist/cjs/document-classifier.d.ts.map +1 -1
- package/dist/cjs/document-classifier.js +239 -27
- package/dist/cjs/document-classifier.js.map +1 -1
- package/dist/cjs/document-placement.d.ts +1 -0
- package/dist/cjs/document-placement.d.ts.map +1 -1
- package/dist/cjs/document-placement.js +16 -6
- package/dist/cjs/document-placement.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/metrics.d.ts.map +1 -1
- package/dist/cjs/metrics.js +19 -4
- package/dist/cjs/metrics.js.map +1 -1
- package/dist/cjs/quality-checks.d.ts +1 -1
- package/dist/cjs/quality-checks.d.ts.map +1 -1
- package/dist/cjs/quality-checks.js +41 -6
- package/dist/cjs/quality-checks.js.map +1 -1
- package/dist/cjs/types.d.ts +37 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/capture-normalization.d.ts +2 -1
- package/dist/esm/capture-normalization.d.ts.map +1 -1
- package/dist/esm/capture-normalization.js +42 -11
- package/dist/esm/capture-normalization.js.map +1 -1
- package/dist/esm/document-classifier.d.ts +2 -1
- package/dist/esm/document-classifier.d.ts.map +1 -1
- package/dist/esm/document-classifier.js +238 -27
- package/dist/esm/document-classifier.js.map +1 -1
- package/dist/esm/document-placement.d.ts +1 -0
- package/dist/esm/document-placement.d.ts.map +1 -1
- package/dist/esm/document-placement.js +15 -5
- package/dist/esm/document-placement.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metrics.d.ts.map +1 -1
- package/dist/esm/metrics.js +20 -5
- package/dist/esm/metrics.js.map +1 -1
- package/dist/esm/quality-checks.d.ts +1 -1
- package/dist/esm/quality-checks.d.ts.map +1 -1
- package/dist/esm/quality-checks.js +41 -6
- package/dist/esm/quality-checks.js.map +1 -1
- package/dist/esm/types.d.ts +37 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { getDocumentReviewProfile } from './document-classifier.js';
|
|
2
2
|
const CARD_CAPTURE_FRAME_ASPECT_RATIO = 1.585;
|
|
3
3
|
const ADDRESS_DOCUMENT_CAPTURE_FRAME_ASPECT_RATIO = 0.72;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE = Object.freeze({
|
|
5
|
+
minAreaRatio: 0.04,
|
|
6
|
+
nearFullFrameAreaRatio: 0.9,
|
|
7
|
+
maxAreaRatio: 0.92,
|
|
8
|
+
});
|
|
7
9
|
const CAPTURE_NORMALIZATION_MIN_ASPECT_RATIO = 0.35;
|
|
8
10
|
const CAPTURE_NORMALIZATION_MAX_ASPECT_RATIO = 2.4;
|
|
11
|
+
// Crop diagnostics must flag `nearly_full_frame` strictly before
|
|
12
|
+
// `maxAreaRatio` stops allowing the crop. Without this enforced margin the
|
|
13
|
+
// page profile (nearFullFrame 0.98, max 0.99) left a ~0.97–0.98 window where
|
|
14
|
+
// a degenerate frame-border quad produced `unsafeReason: null` and could
|
|
15
|
+
// masquerade as a trusted applied crop.
|
|
16
|
+
const CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN = 0.02;
|
|
9
17
|
function clamp(value, min, max) {
|
|
10
18
|
return Math.min(max, Math.max(min, value));
|
|
11
19
|
}
|
|
@@ -18,7 +26,29 @@ const NO_CLAMPED_EDGES = {
|
|
|
18
26
|
right: false,
|
|
19
27
|
bottom: false,
|
|
20
28
|
};
|
|
21
|
-
function
|
|
29
|
+
function resolveCaptureNormalizationAreaRange(documentType) {
|
|
30
|
+
const configured = getDocumentReviewProfile(documentType).captureAreaRange ??
|
|
31
|
+
DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE;
|
|
32
|
+
const minAreaRatio = Number.isFinite(configured.minAreaRatio)
|
|
33
|
+
? configured.minAreaRatio
|
|
34
|
+
: DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE.minAreaRatio;
|
|
35
|
+
const maxAreaRatio = Number.isFinite(configured.maxAreaRatio)
|
|
36
|
+
? configured.maxAreaRatio
|
|
37
|
+
: DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE.maxAreaRatio;
|
|
38
|
+
const resolvedMaxAreaRatio = Math.max(minAreaRatio, maxAreaRatio);
|
|
39
|
+
const nearFullFrameAreaRatio = Number.isFinite(configured.nearFullFrameAreaRatio)
|
|
40
|
+
? configured.nearFullFrameAreaRatio
|
|
41
|
+
: DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE.nearFullFrameAreaRatio;
|
|
42
|
+
return {
|
|
43
|
+
minAreaRatio,
|
|
44
|
+
// Enforce the nearly-full-frame margin below the hard max (see
|
|
45
|
+
// CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN) so the profile values
|
|
46
|
+
// cannot open an unflagged window just under maxAreaRatio.
|
|
47
|
+
nearFullFrameAreaRatio: clamp(Math.min(nearFullFrameAreaRatio, resolvedMaxAreaRatio - CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN), minAreaRatio, resolvedMaxAreaRatio),
|
|
48
|
+
maxAreaRatio: resolvedMaxAreaRatio,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function getCropDiagnostics(crop, imageSize, paddingRatio, clampedEdges = NO_CLAMPED_EDGES, areaRange = DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE) {
|
|
22
52
|
const sourceArea = Math.max(1, imageSize.width * imageSize.height);
|
|
23
53
|
const cropArea = crop.width * crop.height;
|
|
24
54
|
const areaRatio = cropArea / sourceArea;
|
|
@@ -28,17 +58,17 @@ function getCropDiagnostics(crop, imageSize, paddingRatio, clampedEdges = NO_CLA
|
|
|
28
58
|
if (clamped) {
|
|
29
59
|
unsafeReason = 'clamped_edge';
|
|
30
60
|
}
|
|
31
|
-
else if (areaRatio <
|
|
61
|
+
else if (areaRatio < areaRange.minAreaRatio) {
|
|
32
62
|
unsafeReason = 'too_small';
|
|
33
63
|
}
|
|
34
|
-
else if (areaRatio >
|
|
64
|
+
else if (areaRatio > areaRange.maxAreaRatio) {
|
|
35
65
|
unsafeReason = 'too_large';
|
|
36
66
|
}
|
|
37
67
|
else if (aspectRatio < CAPTURE_NORMALIZATION_MIN_ASPECT_RATIO ||
|
|
38
68
|
aspectRatio > CAPTURE_NORMALIZATION_MAX_ASPECT_RATIO) {
|
|
39
69
|
unsafeReason = 'bad_aspect';
|
|
40
70
|
}
|
|
41
|
-
else if (areaRatio >=
|
|
71
|
+
else if (areaRatio >= areaRange.nearFullFrameAreaRatio) {
|
|
42
72
|
unsafeReason = 'nearly_full_frame';
|
|
43
73
|
}
|
|
44
74
|
return {
|
|
@@ -58,12 +88,13 @@ function fullImageCrop(imageSize) {
|
|
|
58
88
|
height: Math.max(1, Math.round(imageSize.height)),
|
|
59
89
|
};
|
|
60
90
|
}
|
|
61
|
-
export function mapPreviewRectToImageCropWithDiagnostics({ imageSize, previewSize, previewRect, resizeMode = 'cover', paddingRatio = 0.04, }) {
|
|
91
|
+
export function mapPreviewRectToImageCropWithDiagnostics({ imageSize, previewSize, previewRect, documentType, resizeMode = 'cover', paddingRatio = 0.04, }) {
|
|
92
|
+
const areaRange = resolveCaptureNormalizationAreaRange(documentType);
|
|
62
93
|
if (!hasPositiveSize(imageSize) || !hasPositiveSize(previewSize)) {
|
|
63
94
|
const crop = fullImageCrop(imageSize);
|
|
64
95
|
return {
|
|
65
96
|
crop,
|
|
66
|
-
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio),
|
|
97
|
+
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio, NO_CLAMPED_EDGES, areaRange),
|
|
67
98
|
};
|
|
68
99
|
}
|
|
69
100
|
const imageWidth = imageSize.width;
|
|
@@ -75,7 +106,7 @@ export function mapPreviewRectToImageCropWithDiagnostics({ imageSize, previewSiz
|
|
|
75
106
|
const crop = fullImageCrop(imageSize);
|
|
76
107
|
return {
|
|
77
108
|
crop,
|
|
78
|
-
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio),
|
|
109
|
+
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio, NO_CLAMPED_EDGES, areaRange),
|
|
79
110
|
};
|
|
80
111
|
}
|
|
81
112
|
const renderedWidth = imageWidth * scale;
|
|
@@ -121,7 +152,7 @@ export function mapPreviewRectToImageCropWithDiagnostics({ imageSize, previewSiz
|
|
|
121
152
|
};
|
|
122
153
|
return {
|
|
123
154
|
crop,
|
|
124
|
-
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio, clampedEdges),
|
|
155
|
+
diagnostics: getCropDiagnostics(crop, imageSize, paddingRatio, clampedEdges, areaRange),
|
|
125
156
|
};
|
|
126
157
|
}
|
|
127
158
|
export function mapPreviewRectToImageCrop(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-normalization.js","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"capture-normalization.js","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* DOM-free: operates on raw greyscale (Uint8Array) and RGBA (Uint8ClampedArray)
|
|
5
5
|
* pixel data. No Canvas, no HTMLImageElement.
|
|
6
6
|
*/
|
|
7
|
-
import type { DocumentLikelihoodResult, DocumentReviewProfile } from './types.js';
|
|
7
|
+
import type { CaptureGeometryProfile, DocumentLikelihoodResult, DocumentReviewProfile } from './types.js';
|
|
8
|
+
export declare function getDocumentCaptureGeometryProfile(documentType: string | null | undefined): CaptureGeometryProfile;
|
|
8
9
|
export declare function getDocumentReviewProfile(documentType: string | null | undefined): DocumentReviewProfile;
|
|
9
10
|
/**
|
|
10
11
|
* Determine whether a greyscale + RGBA image looks like a document.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-classifier.d.ts","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"document-classifier.d.ts","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAiKpB,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,sBAAsB,CAuCxB;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,qBAAqB,CAkEvB;AAID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,wBAAwB,CAmR1B"}
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
function normalizeDocType(docType) {
|
|
9
9
|
if (!docType)
|
|
10
10
|
return null;
|
|
11
|
-
const raw = String(docType)
|
|
11
|
+
const raw = String(docType)
|
|
12
|
+
.trim()
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.replace(/[\s-]+/g, '_');
|
|
12
15
|
switch (raw) {
|
|
13
16
|
case 'national_id':
|
|
14
17
|
case 'national_id_card':
|
|
@@ -77,7 +80,113 @@ function normalizeDocType(docType) {
|
|
|
77
80
|
return raw;
|
|
78
81
|
}
|
|
79
82
|
}
|
|
83
|
+
/* -- Card-family document types ------------------------------------------- */
|
|
84
|
+
/**
|
|
85
|
+
* Normalized document types that resolve to the standard card-shaped review
|
|
86
|
+
* profile (1.585 aspect). This is the single source of truth for "card
|
|
87
|
+
* family": both the review-profile lookup and the card-family classifier
|
|
88
|
+
* floor key off this set, so the floor can never silently widen to the
|
|
89
|
+
* default/unknown-type profile.
|
|
90
|
+
*/
|
|
91
|
+
const CARD_FAMILY_DOCUMENT_TYPES = new Set([
|
|
92
|
+
'id_card',
|
|
93
|
+
'voter_id',
|
|
94
|
+
'voter_card',
|
|
95
|
+
'drivers_license',
|
|
96
|
+
'driving_license',
|
|
97
|
+
'driving_licence',
|
|
98
|
+
'market_association',
|
|
99
|
+
'ghana_card',
|
|
100
|
+
'ife_card',
|
|
101
|
+
'ine_card',
|
|
102
|
+
'residence_permit',
|
|
103
|
+
'work_permit',
|
|
104
|
+
'visa',
|
|
105
|
+
]);
|
|
80
106
|
/* -- Per-document-type aspect ratio profiles ------------------------------ */
|
|
107
|
+
// All profile/range constants are returned to callers BY REFERENCE (and
|
|
108
|
+
// shared with resolveCaptureNormalizationAreaRange), so they are frozen:
|
|
109
|
+
// a consumer mutation must throw (strict mode) instead of silently
|
|
110
|
+
// poisoning every later call.
|
|
111
|
+
const CARD_CAPTURE_AREA_RANGE = Object.freeze({
|
|
112
|
+
minAreaRatio: 0.04,
|
|
113
|
+
nearFullFrameAreaRatio: 0.9,
|
|
114
|
+
maxAreaRatio: 0.92,
|
|
115
|
+
});
|
|
116
|
+
const PASSPORT_CAPTURE_AREA_RANGE = Object.freeze({
|
|
117
|
+
minAreaRatio: 0.04,
|
|
118
|
+
nearFullFrameAreaRatio: 0.96,
|
|
119
|
+
maxAreaRatio: 0.985,
|
|
120
|
+
});
|
|
121
|
+
const PAGE_CAPTURE_AREA_RANGE = Object.freeze({
|
|
122
|
+
minAreaRatio: 0.04,
|
|
123
|
+
nearFullFrameAreaRatio: 0.98,
|
|
124
|
+
maxAreaRatio: 0.99,
|
|
125
|
+
});
|
|
126
|
+
const CARD_CAPTURE_GEOMETRY_PROFILE = Object.freeze({
|
|
127
|
+
centerMax: 0.32,
|
|
128
|
+
aspectMin: 1.15,
|
|
129
|
+
aspectMax: 1.95,
|
|
130
|
+
safeInsetMinRatio: 0.02,
|
|
131
|
+
tiltSkewMaxRatio: 0.22,
|
|
132
|
+
scannerMaxWidthDiffRatio: 0.45,
|
|
133
|
+
scannerMaxHeightDiffRatio: 0.45,
|
|
134
|
+
});
|
|
135
|
+
const PASSPORT_CAPTURE_GEOMETRY_PROFILE = Object.freeze({
|
|
136
|
+
centerMax: 0.3,
|
|
137
|
+
aspectMin: 1.05,
|
|
138
|
+
aspectMax: 1.8,
|
|
139
|
+
useNormalizedAspect: true,
|
|
140
|
+
safeInsetMinRatio: 0.02,
|
|
141
|
+
tiltSkewMaxRatio: 0.26,
|
|
142
|
+
scannerMaxWidthDiffRatio: 0.5,
|
|
143
|
+
scannerMaxHeightDiffRatio: 0.5,
|
|
144
|
+
});
|
|
145
|
+
const PAGE_CAPTURE_GEOMETRY_PROFILE = Object.freeze({
|
|
146
|
+
centerMax: 0.32,
|
|
147
|
+
aspectMin: 0.5,
|
|
148
|
+
aspectMax: 2.05,
|
|
149
|
+
useNormalizedAspect: true,
|
|
150
|
+
safeInsetMinRatio: 0.02,
|
|
151
|
+
tiltSkewMaxRatio: 0.3,
|
|
152
|
+
scannerMaxWidthDiffRatio: 0.55,
|
|
153
|
+
scannerMaxHeightDiffRatio: 0.55,
|
|
154
|
+
});
|
|
155
|
+
export function getDocumentCaptureGeometryProfile(documentType) {
|
|
156
|
+
const normalizedType = normalizeDocType(documentType);
|
|
157
|
+
if (normalizedType === 'passport') {
|
|
158
|
+
return PASSPORT_CAPTURE_GEOMETRY_PROFILE;
|
|
159
|
+
}
|
|
160
|
+
if (normalizedType === 'address_proof' ||
|
|
161
|
+
normalizedType === 'a4_proof' ||
|
|
162
|
+
normalizedType === 'a4' ||
|
|
163
|
+
normalizedType === 'utility_bill' ||
|
|
164
|
+
normalizedType === 'proof_of_address' ||
|
|
165
|
+
normalizedType === 'bank_statement' ||
|
|
166
|
+
normalizedType === 'business_registration' ||
|
|
167
|
+
normalizedType === 'business_document' ||
|
|
168
|
+
normalizedType === 'business_license' ||
|
|
169
|
+
normalizedType === 'operating_license' ||
|
|
170
|
+
normalizedType === 'proof_of_business' ||
|
|
171
|
+
normalizedType === 'proof_of_registration' ||
|
|
172
|
+
normalizedType === 'proof_of_ownership' ||
|
|
173
|
+
normalizedType === 'proof_of_business_tax_id' ||
|
|
174
|
+
normalizedType === 'business_tax_id' ||
|
|
175
|
+
normalizedType === 'tax_certificate' ||
|
|
176
|
+
normalizedType === 'tin_certificate' ||
|
|
177
|
+
normalizedType === 'corporate_tax_certificate' ||
|
|
178
|
+
normalizedType === 'business_utility_bill' ||
|
|
179
|
+
normalizedType === 'mobile_money' ||
|
|
180
|
+
normalizedType === 'address_document' ||
|
|
181
|
+
normalizedType === 'readable_document' ||
|
|
182
|
+
normalizedType === 'readable_text_document' ||
|
|
183
|
+
normalizedType === 'text_document' ||
|
|
184
|
+
normalizedType === 'document_page' ||
|
|
185
|
+
normalizedType === 'tax_id') {
|
|
186
|
+
return PAGE_CAPTURE_GEOMETRY_PROFILE;
|
|
187
|
+
}
|
|
188
|
+
return CARD_CAPTURE_GEOMETRY_PROFILE;
|
|
189
|
+
}
|
|
81
190
|
export function getDocumentReviewProfile(documentType) {
|
|
82
191
|
const normalizedType = normalizeDocType(documentType);
|
|
83
192
|
// Passports -- biodata/photo page is landscape (~1.42:1).
|
|
@@ -86,49 +195,57 @@ export function getDocumentReviewProfile(documentType) {
|
|
|
86
195
|
aspectTargets: [1.42],
|
|
87
196
|
threshold: 58,
|
|
88
197
|
expectedOrientation: 'landscape',
|
|
198
|
+
captureAreaRange: PASSPORT_CAPTURE_AREA_RANGE,
|
|
89
199
|
};
|
|
90
200
|
}
|
|
91
201
|
// ID card, voter ID, driver's licence -- standard card-shaped documents
|
|
92
|
-
if (normalizedType
|
|
93
|
-
normalizedType === 'voter_id' ||
|
|
94
|
-
normalizedType === 'voter_card' ||
|
|
95
|
-
normalizedType === 'drivers_license' ||
|
|
96
|
-
normalizedType === 'driving_license' ||
|
|
97
|
-
normalizedType === 'driving_licence' ||
|
|
98
|
-
normalizedType === 'market_association' ||
|
|
99
|
-
normalizedType === 'ghana_card' ||
|
|
100
|
-
normalizedType === 'ife_card' ||
|
|
101
|
-
normalizedType === 'ine_card' ||
|
|
102
|
-
normalizedType === 'residence_permit' ||
|
|
103
|
-
normalizedType === 'work_permit' ||
|
|
104
|
-
normalizedType === 'visa') {
|
|
202
|
+
if (normalizedType !== null && CARD_FAMILY_DOCUMENT_TYPES.has(normalizedType)) {
|
|
105
203
|
return {
|
|
106
204
|
aspectTargets: [1.585],
|
|
107
205
|
threshold: 62,
|
|
108
206
|
expectedOrientation: 'landscape',
|
|
207
|
+
captureAreaRange: CARD_CAPTURE_AREA_RANGE,
|
|
109
208
|
};
|
|
110
209
|
}
|
|
111
210
|
// Address proof / utility bills -- A4/letter shaped documents
|
|
112
211
|
if (normalizedType === 'address_proof' ||
|
|
212
|
+
normalizedType === 'a4_proof' ||
|
|
213
|
+
normalizedType === 'a4' ||
|
|
113
214
|
normalizedType === 'utility_bill' ||
|
|
114
215
|
normalizedType === 'proof_of_address' ||
|
|
115
216
|
normalizedType === 'bank_statement' ||
|
|
116
217
|
normalizedType === 'business_registration' ||
|
|
218
|
+
normalizedType === 'business_document' ||
|
|
219
|
+
normalizedType === 'business_license' ||
|
|
117
220
|
normalizedType === 'operating_license' ||
|
|
221
|
+
normalizedType === 'proof_of_business' ||
|
|
222
|
+
normalizedType === 'proof_of_registration' ||
|
|
223
|
+
normalizedType === 'proof_of_ownership' ||
|
|
118
224
|
normalizedType === 'proof_of_business_tax_id' ||
|
|
225
|
+
normalizedType === 'business_tax_id' ||
|
|
226
|
+
normalizedType === 'tax_certificate' ||
|
|
227
|
+
normalizedType === 'tin_certificate' ||
|
|
228
|
+
normalizedType === 'corporate_tax_certificate' ||
|
|
229
|
+
normalizedType === 'business_utility_bill' ||
|
|
119
230
|
normalizedType === 'mobile_money' ||
|
|
120
231
|
normalizedType === 'address_document' ||
|
|
232
|
+
normalizedType === 'readable_document' ||
|
|
233
|
+
normalizedType === 'readable_text_document' ||
|
|
234
|
+
normalizedType === 'text_document' ||
|
|
235
|
+
normalizedType === 'document_page' ||
|
|
121
236
|
normalizedType === 'tax_id') {
|
|
122
237
|
return {
|
|
123
238
|
aspectTargets: [1.414, 1.294],
|
|
124
239
|
threshold: 55,
|
|
125
240
|
expectedOrientation: 'either',
|
|
241
|
+
captureAreaRange: PAGE_CAPTURE_AREA_RANGE,
|
|
126
242
|
};
|
|
127
243
|
}
|
|
128
244
|
return {
|
|
129
245
|
aspectTargets: [1.585, 1.42],
|
|
130
246
|
threshold: 60,
|
|
131
247
|
expectedOrientation: 'either',
|
|
248
|
+
captureAreaRange: CARD_CAPTURE_AREA_RANGE,
|
|
132
249
|
};
|
|
133
250
|
}
|
|
134
251
|
/* -- 5-signal document likelihood classifier ------------------------------ */
|
|
@@ -153,6 +270,8 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
153
270
|
let edgePixels = 0;
|
|
154
271
|
let hEdgeSum = 0;
|
|
155
272
|
let vEdgeSum = 0;
|
|
273
|
+
const zoneEdgeCounts = new Array(9).fill(0);
|
|
274
|
+
const zonePixelCounts = new Array(9).fill(0);
|
|
156
275
|
for (let ey = 1; ey < h - 1; ey++) {
|
|
157
276
|
for (let ex = 1; ex < w - 1; ex++) {
|
|
158
277
|
const gx = -grey[(ey - 1) * w + (ex - 1)] +
|
|
@@ -172,10 +291,18 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
172
291
|
edgeMap[ey * w + ex] = 1;
|
|
173
292
|
edgePixels++;
|
|
174
293
|
}
|
|
294
|
+
const zoneX = Math.min(2, Math.floor((ex * 3) / w));
|
|
295
|
+
const zoneY = Math.min(2, Math.floor((ey * 3) / h));
|
|
296
|
+
const zoneIndex = zoneY * 3 + zoneX;
|
|
297
|
+
zonePixelCounts[zoneIndex]++;
|
|
298
|
+
if (mag > 30)
|
|
299
|
+
zoneEdgeCounts[zoneIndex]++;
|
|
175
300
|
hEdgeSum += Math.abs(gy);
|
|
176
301
|
vEdgeSum += Math.abs(gx);
|
|
177
302
|
}
|
|
178
303
|
}
|
|
304
|
+
const zoneEdgeDensities = zoneEdgeCounts.map((count, index) => zonePixelCounts[index] > 0 ? count / zonePixelCounts[index] : 0);
|
|
305
|
+
const zoneEdgeDensityRange = Math.max(...zoneEdgeDensities) - Math.min(...zoneEdgeDensities);
|
|
179
306
|
// 1. Edge density (widened for worn/faded Sierra Leone national IDs)
|
|
180
307
|
const edgeDensity = totalPixels > 0 ? edgePixels / totalPixels : 0;
|
|
181
308
|
if (isPassport) {
|
|
@@ -212,19 +339,26 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
212
339
|
// 3. Color channel variance
|
|
213
340
|
let rSum = 0, gSum = 0, bSum = 0;
|
|
214
341
|
let rSq = 0, gSq = 0, bSq = 0;
|
|
342
|
+
let chromaDeltaSum = 0;
|
|
215
343
|
const px = imgData.length / 4;
|
|
216
344
|
for (let ci = 0; ci < imgData.length; ci += 4) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
345
|
+
const r = imgData[ci];
|
|
346
|
+
const g = imgData[ci + 1];
|
|
347
|
+
const b = imgData[ci + 2];
|
|
348
|
+
rSum += r;
|
|
349
|
+
gSum += g;
|
|
350
|
+
bSum += b;
|
|
351
|
+
rSq += r * r;
|
|
352
|
+
gSq += g * g;
|
|
353
|
+
bSq += b * b;
|
|
354
|
+
chromaDeltaSum += Math.max(r, g, b) - Math.min(r, g, b);
|
|
223
355
|
}
|
|
224
356
|
const rVar = rSq / px - (rSum / px) * (rSum / px);
|
|
225
357
|
const gVar = gSq / px - (gSum / px) * (gSum / px);
|
|
226
358
|
const bVar = bSq / px - (bSum / px) * (bSum / px);
|
|
227
359
|
const avgVar = (rVar + gVar + bVar) / 3;
|
|
360
|
+
const channelVarianceRange = Math.max(rVar, gVar, bVar) - Math.min(rVar, gVar, bVar);
|
|
361
|
+
const avgChromaDelta = px > 0 ? chromaDeltaSum / px : 0;
|
|
228
362
|
if (avgVar >= 400 && avgVar <= 4000)
|
|
229
363
|
score += 20;
|
|
230
364
|
else if (avgVar >= 200 && avgVar <= 5500)
|
|
@@ -234,7 +368,25 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
234
368
|
const gridW = Math.floor(w / 3);
|
|
235
369
|
const gridH = Math.floor(h / 3);
|
|
236
370
|
let centerEdges = 0, centerTotal = 0;
|
|
237
|
-
|
|
371
|
+
// A pixel at or above this grey level counts as a blown-out highlight.
|
|
372
|
+
const glareSaturationLevel = 250;
|
|
373
|
+
// Minimum fraction of the center region that must be blown out to call it
|
|
374
|
+
// glare. Tuned so a holographic / laminated ID (e.g. the Sierra Leone national
|
|
375
|
+
// ID) keeps its scattered near-white sparkle below the bar, while a real
|
|
376
|
+
// specular hotspot that obscures text trips it. The previous single-pixel
|
|
377
|
+
// `maxBrightness > 245` rule false-flagged reflective IDs, which permanently
|
|
378
|
+
// zeroed the live auto-capture stable counter and stopped the green capture
|
|
379
|
+
// lock from ever forming. This LIVE rule is deliberately lenient; the review
|
|
380
|
+
// stage (runDocumentQualityChecks in quality-checks.ts) applies STRICTER
|
|
381
|
+
// thresholds to the raw measurements exposed on the result
|
|
382
|
+
// (centerSaturatedRatio, max row/col saturated fractions, center mean
|
|
383
|
+
// brightness), so thin specular streaks and washed-out centers that pass
|
|
384
|
+
// the live gate still fail the review `glare_free` check.
|
|
385
|
+
const glareSaturatedAreaRatioMin = 0.02;
|
|
386
|
+
let centerSaturatedCount = 0;
|
|
387
|
+
let centerBrightnessSum = 0;
|
|
388
|
+
const centerRowSaturatedCounts = new Array(h).fill(0);
|
|
389
|
+
const centerColSaturatedCounts = new Array(w).fill(0);
|
|
238
390
|
for (let ry = 1; ry < h - 1; ry++) {
|
|
239
391
|
const rowZone = ry < gridH ? 0 : ry >= gridH * 2 ? 2 : 1;
|
|
240
392
|
if (rowZone !== 1)
|
|
@@ -245,14 +397,25 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
245
397
|
continue;
|
|
246
398
|
centerEdges += edgeMap[ry * w + rx];
|
|
247
399
|
centerTotal++;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
if (
|
|
251
|
-
|
|
400
|
+
centerBrightnessSum += grey[ry * w + rx];
|
|
401
|
+
// Count fully blown-out pixels for glare-cluster detection (below).
|
|
402
|
+
if (grey[ry * w + rx] >= glareSaturationLevel) {
|
|
403
|
+
centerSaturatedCount++;
|
|
404
|
+
centerRowSaturatedCounts[ry]++;
|
|
405
|
+
centerColSaturatedCounts[rx]++;
|
|
406
|
+
}
|
|
252
407
|
}
|
|
253
408
|
}
|
|
254
409
|
const centerDensity = centerTotal > 0 ? centerEdges / centerTotal : 0;
|
|
255
|
-
const
|
|
410
|
+
const centerSaturatedRatio = centerTotal > 0 ? centerSaturatedCount / centerTotal : 0;
|
|
411
|
+
const centerMeanBrightness = centerTotal > 0 ? centerBrightnessSum / centerTotal : 0;
|
|
412
|
+
const centerRegionWidth = Math.max(1, gridW);
|
|
413
|
+
const centerRegionHeight = Math.max(1, gridH);
|
|
414
|
+
const maxSaturatedRowFraction = Math.max(...centerRowSaturatedCounts) / centerRegionWidth;
|
|
415
|
+
const maxSaturatedColFraction = Math.max(...centerColSaturatedCounts) / centerRegionHeight;
|
|
416
|
+
const hasGlare = centerSaturatedRatio >= glareSaturatedAreaRatioMin ||
|
|
417
|
+
maxSaturatedRowFraction >= 0.45 ||
|
|
418
|
+
maxSaturatedColFraction >= 0.45;
|
|
256
419
|
if (isPassport) {
|
|
257
420
|
if (centerDensity >= 0.06 && centerDensity <= 0.34)
|
|
258
421
|
score += 15;
|
|
@@ -271,9 +434,10 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
271
434
|
}
|
|
272
435
|
// 5. Horizontal-edge dominance (text signature)
|
|
273
436
|
const edgeTotal = hEdgeSum + vEdgeSum;
|
|
437
|
+
const horizontalEdgeRatio = edgeTotal > 0 ? hEdgeSum / edgeTotal : 0.5;
|
|
274
438
|
let hasTextSignature = false;
|
|
275
439
|
if (edgeTotal > 0) {
|
|
276
|
-
const hRatio =
|
|
440
|
+
const hRatio = horizontalEdgeRatio;
|
|
277
441
|
const vRatio = vEdgeSum / edgeTotal;
|
|
278
442
|
if (isPassport) {
|
|
279
443
|
// Passport pages can be captured with note text or page header rotated
|
|
@@ -314,10 +478,57 @@ export function checkDocumentLikelihood(grey, imgData, w, h, documentType) {
|
|
|
314
478
|
(hasTextSignature || centerDensity >= 0.12)) {
|
|
315
479
|
score = Math.max(score, reviewProfile.threshold + 2);
|
|
316
480
|
}
|
|
481
|
+
// Card analog of the passport floor above. Security-printed national IDs
|
|
482
|
+
// (e.g. the Sierra Leone national ID's guilloche + hologram face) carry
|
|
483
|
+
// dense, direction-less fine texture across the WHOLE card, so the band
|
|
484
|
+
// scoring above penalises them twice (`edgeDensity > 0.3` and
|
|
485
|
+
// `centerDensity > 0.2`) and real IDs plateau at 10–20 vs the 60+
|
|
486
|
+
// threshold — every classifier-backed rescue stays inert and detection
|
|
487
|
+
// rides on bare quad geometry. When the crop is strongly card-shaped AND
|
|
488
|
+
// its texture sits in exactly that penalised dense band, floor the score
|
|
489
|
+
// just over the threshold. The conditions keep the floor scoped to the
|
|
490
|
+
// double-penalty case: sparse-texture documents already score well through
|
|
491
|
+
// the normal bands, direction-dominant content (text rows or stripe
|
|
492
|
+
// patterns pull the horizontal-edge ratio away from the ~0.5 isotropy of a
|
|
493
|
+
// guilloche) keeps its honest band score, and true noise (edge density
|
|
494
|
+
// above 0.6) stays excluded. Layout evidence must be real EDGE structure
|
|
495
|
+
// (zone edge-density variation between panels/strips and texture):
|
|
496
|
+
// brightness variation alone is excluded because an ordinary top-to-bottom
|
|
497
|
+
// lighting gradient produces a large zone-brightness range with zero edge
|
|
498
|
+
// evidence. Frames with a blown-out center (`hasGlare`) are excluded too —
|
|
499
|
+
// a specular blob both corrupts the texture measurements and means the
|
|
500
|
+
// capture should be retaken, not rescued. The explicit card-family type
|
|
501
|
+
// check scopes the floor to known card documents; the default/unknown-type
|
|
502
|
+
// profile (which also leads with a 1.585 aspect target) and A4/page
|
|
503
|
+
// profiles keep their stricter band scoring, and passports use the floor
|
|
504
|
+
// above.
|
|
505
|
+
const isCardFamilyDocumentType = normalizedType !== null && CARD_FAMILY_DOCUMENT_TYPES.has(normalizedType);
|
|
506
|
+
const hasCardLayoutVariation = zoneEdgeDensityRange >= 0.08;
|
|
507
|
+
const hasCardColorLayoutEvidence = avgChromaDelta >= 10 && channelVarianceRange >= 80 && zoneEdgeDensityRange >= 0.04;
|
|
508
|
+
let cardFloorApplied = false;
|
|
509
|
+
if (isCardFamilyDocumentType &&
|
|
510
|
+
!hasTextSignature &&
|
|
511
|
+
!hasGlare &&
|
|
512
|
+
(hasCardLayoutVariation || hasCardColorLayoutEvidence) &&
|
|
513
|
+
horizontalEdgeRatio >= 0.44 &&
|
|
514
|
+
horizontalEdgeRatio <= 0.54 &&
|
|
515
|
+
bestAspectDiff < 0.16 &&
|
|
516
|
+
edgeDensity > 0.28 &&
|
|
517
|
+
edgeDensity <= 0.6 &&
|
|
518
|
+
centerDensity >= 0.12) {
|
|
519
|
+
cardFloorApplied = score < reviewProfile.threshold + 2;
|
|
520
|
+
score = Math.max(score, reviewProfile.threshold + 2);
|
|
521
|
+
}
|
|
317
522
|
return {
|
|
318
523
|
isLikelyDoc: score >= reviewProfile.threshold,
|
|
319
524
|
confidence: score,
|
|
320
525
|
glareDetected: hasGlare,
|
|
526
|
+
centerSaturatedRatio,
|
|
527
|
+
maxSaturatedRowFraction,
|
|
528
|
+
maxSaturatedColFraction,
|
|
529
|
+
centerMeanBrightness,
|
|
530
|
+
cardFloorApplied,
|
|
531
|
+
textSignatureHRatio: horizontalEdgeRatio,
|
|
321
532
|
};
|
|
322
533
|
}
|
|
323
534
|
//# sourceMappingURL=document-classifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-classifier.js","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-classifier.js","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,+EAA+E;AAE/E,SAAS,gBAAgB,CAAC,OAAkC;IAC1D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;SACxB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB,CAAC;QACxB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,8BAA8B,CAAC;QACpC,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB,CAAC;QAC7B,KAAK,8BAA8B,CAAC;QACpC,KAAK,mCAAmC;YACtC,OAAO,SAAS,CAAC;QACnB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC;QACrB,KAAK,2BAA2B;YAC9B,OAAO,UAAU,CAAC;QACpB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,iBAAiB,CAAC;QACvB,KAAK,4BAA4B,CAAC;QAClC,KAAK,6BAA6B,CAAC;QACnC,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,iCAAiC,CAAC;QACvC,KAAK,kCAAkC;YACrC,OAAO,iBAAiB,CAAC;QAC3B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,8BAA8B;YACjC,OAAO,oBAAoB,CAAC;QAC9B,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB,CAAC;QAC7B,KAAK,mBAAmB,CAAC;QACzB,KAAK,wBAAwB;YAC3B,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB,KAAK,kBAAkB,CAAC;QACxB,KAAK,uBAAuB,CAAC;QAC7B,KAAK,mBAAmB,CAAC;QACzB,KAAK,wBAAwB;YAC3B,OAAO,UAAU,CAAC;QACpB,KAAK,uBAAuB;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO,aAAa,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB,KAAK,sBAAsB;YACzB,OAAO,UAAU,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,eAAe,CAAC;QACzB,KAAK,wBAAwB;YAC3B,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC9D,SAAS;IACT,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,YAAY;IACZ,UAAU;IACV,UAAU;IACV,kBAAkB;IAClB,aAAa;IACb,MAAM;CACP,CAAC,CAAC;AAEH,+EAA+E;AAE/E,wEAAwE;AACxE,yEAAyE;AACzE,mEAAmE;AACnE,8BAA8B;AAE9B,MAAM,uBAAuB,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,GAAG;IAC3B,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAqB,MAAM,CAAC,MAAM,CAAC;IAClE,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,KAAK;CACpB,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAqB,MAAM,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,IAAI;IAClB,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC1E,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,wBAAwB,EAAE,IAAI;IAC9B,yBAAyB,EAAE,IAAI;CAChC,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC9E,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,wBAAwB,EAAE,GAAG;IAC7B,yBAAyB,EAAE,GAAG;CAC/B,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC1E,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,GAAG;IACrB,wBAAwB,EAAE,IAAI;IAC9B,yBAAyB,EAAE,IAAI;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC,CAC/C,YAAuC;IAEvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEtD,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED,IACE,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,UAAU;QAC7B,cAAc,KAAK,IAAI;QACvB,cAAc,KAAK,cAAc;QACjC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,gBAAgB;QACnC,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,oBAAoB;QACvC,cAAc,KAAK,0BAA0B;QAC7C,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,2BAA2B;QAC9C,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,cAAc;QACjC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,wBAAwB;QAC3C,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,QAAQ,EAC3B,CAAC;QACD,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,OAAO,6BAA6B,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,YAAuC;IAEvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEtD,0DAA0D;IAC1D,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO;YACL,aAAa,EAAE,CAAC,IAAI,CAAC;YACrB,SAAS,EAAE,EAAE;YACb,mBAAmB,EAAE,WAAW;YAChC,gBAAgB,EAAE,2BAA2B;SAC9C,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,IAAI,cAAc,KAAK,IAAI,IAAI,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9E,OAAO;YACL,aAAa,EAAE,CAAC,KAAK,CAAC;YACtB,SAAS,EAAE,EAAE;YACb,mBAAmB,EAAE,WAAW;YAChC,gBAAgB,EAAE,uBAAuB;SAC1C,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,IACE,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,UAAU;QAC7B,cAAc,KAAK,IAAI;QACvB,cAAc,KAAK,cAAc;QACjC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,gBAAgB;QACnC,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,oBAAoB;QACvC,cAAc,KAAK,0BAA0B;QAC7C,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,iBAAiB;QACpC,cAAc,KAAK,2BAA2B;QAC9C,cAAc,KAAK,uBAAuB;QAC1C,cAAc,KAAK,cAAc;QACjC,cAAc,KAAK,kBAAkB;QACrC,cAAc,KAAK,mBAAmB;QACtC,cAAc,KAAK,wBAAwB;QAC3C,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,eAAe;QAClC,cAAc,KAAK,QAAQ,EAC3B,CAAC;QACD,OAAO;YACL,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YAC7B,SAAS,EAAE,EAAE;YACb,mBAAmB,EAAE,QAAQ;YAC7B,gBAAgB,EAAE,uBAAuB;SAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;QAC5B,SAAS,EAAE,EAAE;QACb,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAgB,EAChB,OAA0B,EAC1B,CAAS,EACT,CAAS,EACT,YAA4B;IAE5B,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,cAAc,KAAK,UAAU,CAAC;IACjD,MAAM,aAAa,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,cAAc,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAErD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAClC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,GACN,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7B,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,EAAE,GACN,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9B,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7B,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;gBACb,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACzB,UAAU,EAAE,CAAC;YACf,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;YACpC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,GAAG,GAAG,EAAE;gBAAE,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC5D,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAE7F,qEAAqE;IACrE,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,UAAU,EAAE,CAAC;QACf,0EAA0E;QAC1E,iEAAiE;QACjE,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;aACvD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;aAC5D,IAAI,WAAW,GAAG,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;aACvD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;QACjE,8EAA8E;aACzE,IAAI,WAAW,GAAG,GAAG;YAAE,KAAK,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,0EAA0E;IAC1E,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC9C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QACpF,cAAc,GAAG,IAAI,CAAC,GAAG,CACvB,cAAc,EACd,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,GAAG,GAAG;QAAE,KAAK,IAAI,EAAE,CAAC;SACjC,IAAI,cAAc,GAAG,IAAI;QAAE,KAAK,IAAI,EAAE,CAAC;SACvC,IAAI,cAAc,GAAG,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;IAE3C,4BAA4B;IAC5B,IAAI,IAAI,GAAG,CAAC,EACV,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,CAAC,CAAC;IACX,IAAI,GAAG,GAAG,CAAC,EACT,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,CAAC,CAAC;IACV,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,CAAC;QACV,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI;QAAE,KAAK,IAAI,EAAE,CAAC;SAC5C,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI;QAAE,KAAK,IAAI,EAAE,CAAC;IACtD,sFAAsF;IAEtF,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,EACjB,WAAW,GAAG,CAAC,CAAC;IAClB,uEAAuE;IACvE,MAAM,oBAAoB,GAAG,GAAG,CAAC;IACjC,0EAA0E;IAC1E,+EAA+E;IAC/E,yEAAyE;IACzE,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,2DAA2D;IAC3D,sEAAsE;IACtE,yEAAyE;IACzE,0DAA0D;IAC1D,MAAM,0BAA0B,GAAG,IAAI,CAAC;IACxC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,KAAK,CAAC;YAAE,SAAS;QAC5B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,KAAK,CAAC;gBAAE,SAAS;YAC5B,WAAW,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,WAAW,EAAE,CAAC;YACd,mBAAmB,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACzC,oEAAoE;YACpE,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC;gBAC9C,oBAAoB,EAAE,CAAC;gBACvB,wBAAwB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,wBAAwB,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,oBAAoB,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,oBAAoB,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,GAAG,iBAAiB,CAAC;IAC1F,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,GAAG,kBAAkB,CAAC;IAC3F,MAAM,QAAQ,GACZ,oBAAoB,IAAI,0BAA0B;QAClD,uBAAuB,IAAI,IAAI;QAC/B,uBAAuB,IAAI,IAAI,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;YAAE,KAAK,IAAI,EAAE,CAAC;aAC3D,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,CAAC;aAC/D,IAAI,aAAa,GAAG,GAAG;YAAE,KAAK,IAAI,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,GAAG;YAAE,KAAK,IAAI,EAAE,CAAC;aAC1D,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,CAAC;aAC/D,IAAI,aAAa,GAAG,GAAG;YAAE,KAAK,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,gDAAgD;IAChD,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtC,MAAM,mBAAmB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,uEAAuE;YACvE,sEAAsE;YACtE,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACrC,KAAK,IAAI,EAAE,CAAC;gBACZ,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC5C,KAAK,IAAI,CAAC,CAAC;gBACX,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,KAAK,IAAI,EAAE,CAAC;gBACZ,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,KAAK,IAAI,CAAC,CAAC;gBACX,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,MAAM,GAAG,IAAI;gBAAE,KAAK,IAAI,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,mEAAmE;IACnE,IAAI,cAAc,GAAG,GAAG,IAAI,WAAW,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAC7D,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;IAED,IACE,UAAU;QACV,cAAc,GAAG,IAAI;QACrB,WAAW,IAAI,IAAI;QACnB,WAAW,IAAI,IAAI;QACnB,aAAa,IAAI,IAAI;QACrB,CAAC,gBAAgB,IAAI,aAAa,IAAI,IAAI,CAAC,EAC3C,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,kEAAkE;IAClE,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,oEAAoE;IACpE,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,oEAAoE;IACpE,yEAAyE;IACzE,SAAS;IACT,MAAM,wBAAwB,GAC5B,cAAc,KAAK,IAAI,IAAI,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5E,MAAM,sBAAsB,GAAG,oBAAoB,IAAI,IAAI,CAAC;IAC5D,MAAM,0BAA0B,GAC9B,cAAc,IAAI,EAAE,IAAI,oBAAoB,IAAI,EAAE,IAAI,oBAAoB,IAAI,IAAI,CAAC;IACrF,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IACE,wBAAwB;QACxB,CAAC,gBAAgB;QACjB,CAAC,QAAQ;QACT,CAAC,sBAAsB,IAAI,0BAA0B,CAAC;QACtD,mBAAmB,IAAI,IAAI;QAC3B,mBAAmB,IAAI,IAAI;QAC3B,cAAc,GAAG,IAAI;QACrB,WAAW,GAAG,IAAI;QAClB,WAAW,IAAI,GAAG;QAClB,aAAa,IAAI,IAAI,EACrB,CAAC;QACD,gBAAgB,GAAG,KAAK,GAAG,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;QACvD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,WAAW,EAAE,KAAK,IAAI,aAAa,CAAC,SAAS;QAC7C,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,QAAQ;QACvB,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,oBAAoB;QACpB,gBAAgB;QAChB,mBAAmB,EAAE,mBAAmB;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -14,6 +14,7 @@ export interface DocumentPlacementDecision {
|
|
|
14
14
|
guidance: string;
|
|
15
15
|
}
|
|
16
16
|
export declare const CAPTURE_READY_AREA_MIN_BY_SHAPE: Record<CapturePlacementShape, number>;
|
|
17
|
+
export declare const RELAXED_CAPTURE_READY_AREA_MIN_BY_SHAPE: Record<CapturePlacementShape, number>;
|
|
17
18
|
export declare const CAPTURE_READY_AREA_MAX_BY_SHAPE: Record<CapturePlacementShape, number>;
|
|
18
19
|
export declare const CAPTURE_READY_CENTER_MAX_BY_SHAPE: Record<CapturePlacementShape, number>;
|
|
19
20
|
export declare const CAPTURE_READY_SAFE_INSET_MIN = 0.02;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-placement.d.ts","sourceRoot":"","sources":["../../src/document-placement.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,IAAI,CAAC;AAET,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAInF,CAAC;AAEF,eAAO,MAAM,4BAA4B,OAAO,CAAC;AA0BjD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,GAC5B,yBAAyB,CAyB3B"}
|
|
1
|
+
{"version":3,"file":"document-placement.d.ts","sourceRoot":"","sources":["../../src/document-placement.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,IAAI,CAAC;AAET,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAOF,eAAO,MAAM,uCAAuC,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIzF,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAInF,CAAC;AAEF,eAAO,MAAM,4BAA4B,OAAO,CAAC;AA0BjD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,GAC5B,yBAAyB,CAyB3B"}
|