@regulaforensics/cordova-plugin-document-reader-api 9.7.693-beta → 9.7.694-rc

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/example/README.md CHANGED
@@ -9,7 +9,6 @@
9
9
  ```bash
10
10
  $ cd example
11
11
  $ npm install
12
- $ npx jetify
13
12
  $ cordova prepare
14
13
  ```
15
14
 
@@ -13,8 +13,8 @@
13
13
  "author": "Regula Forensics Inc.",
14
14
  "license": "commercial",
15
15
  "dependencies": {
16
- "@regulaforensics/cordova-plugin-document-reader-api": "9.7.693-beta",
17
- "@regulaforensics/cordova-plugin-document-reader-core-fullauthrfid": "9.7.2973-rc",
16
+ "@regulaforensics/cordova-plugin-document-reader-api": "9.7.694-rc",
17
+ "@regulaforensics/cordova-plugin-document-reader-core-fullauthrfid": "9.7.2989-rc",
18
18
  "cordova-android": "15.0.0",
19
19
  "cordova-ios": "8.1.1",
20
20
  "cordova-plugin-camera": "8.0.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regulaforensics/cordova-plugin-document-reader-api",
3
- "version": "9.7.693-beta",
3
+ "version": "9.7.694-rc",
4
4
  "description": "Cordova plugin for reading and validation of identification documents (API framework)",
5
5
  "cordova": {
6
6
  "id": "@regulaforensics/cordova-plugin-document-reader-api",
package/plugin.xml CHANGED
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0' encoding='utf-8'?>
2
- <plugin id="@regulaforensics/cordova-plugin-document-reader-api" version="9.7.693-beta" xmlns="http://apache.org/cordova/ns/plugins/1.0">
2
+ <plugin id="@regulaforensics/cordova-plugin-document-reader-api" version="9.7.694-rc" xmlns="http://apache.org/cordova/ns/plugins/1.0">
3
3
  <name>DocumentReaderApi</name>
4
4
  <description>Cordova plugin Document reader api</description>
5
5
  <license>commercial</license>
@@ -16,6 +16,7 @@ import com.regula.documentreader.api.enums.CustomizationScaleType
16
16
  import com.regula.documentreader.api.enums.CustomizationTiming
17
17
  import com.regula.documentreader.api.enums.LogLevel
18
18
  import com.regula.documentreader.api.params.AuthenticityParams
19
+ import com.regula.documentreader.api.params.AuthenticityPropertiesParams
19
20
  import com.regula.documentreader.api.params.Functionality
20
21
  import com.regula.documentreader.api.params.ImageQA
21
22
  import com.regula.documentreader.api.params.LivenessParams
@@ -718,10 +719,15 @@ fun setAuthenticityParams(input: AuthenticityParams, opts: JSONObject) = opts.fo
718
719
  "checkPhotoComparison" -> input.checkPhotoComparison = v as Boolean
719
720
  "checkLetterScreen" -> input.checkLetterScreen = v as Boolean
720
721
  "checkSecurityText" -> input.checkSecurityText = v as Boolean
722
+ "checkProperties" -> input.checkProperties = v as Boolean
721
723
  "livenessParams" -> {
722
724
  if (input.livenessParams == null) input.livenessParams = LivenessParams.defaultParams()
723
725
  setLivenessParams(input.livenessParams!!, v as JSONObject)
724
726
  }
727
+ "propertiesParams" -> {
728
+ if (input.propertiesParams == null) input.propertiesParams = AuthenticityPropertiesParams.defaultParams()
729
+ setAuthenticityPropertiesParams(input.propertiesParams!!, v as JSONObject)
730
+ }
725
731
  }
726
732
  }
727
733
 
@@ -729,7 +735,7 @@ fun getAuthenticityParams(input: AuthenticityParams?) = input?.let {
729
735
  mapOf(
730
736
  "useLivenessCheck" to it.useLivenessCheck,
731
737
  "checkUVLuminiscence" to it.checkUVLuminiscence,
732
- "checkIRB900" to input.checkIRB900,
738
+ "checkIRB900" to it.checkIRB900,
733
739
  "checkImagePatterns" to it.checkImagePatterns,
734
740
  "checkFibers" to it.checkFibers,
735
741
  "checkExtMRZ" to it.checkExtMRZ,
@@ -742,7 +748,9 @@ fun getAuthenticityParams(input: AuthenticityParams?) = input?.let {
742
748
  "checkPhotoComparison" to it.checkPhotoComparison,
743
749
  "checkLetterScreen" to it.checkLetterScreen,
744
750
  "checkSecurityText" to it.checkSecurityText,
745
- "livenessParams" to getLivenessParams(it.livenessParams)
751
+ "checkProperties" to it.checkProperties,
752
+ "livenessParams" to getLivenessParams(it.livenessParams),
753
+ "propertiesParams" to getAuthenticityPropertiesParams(it.propertiesParams),
746
754
  ).toJson()
747
755
  }
748
756
 
@@ -761,14 +769,26 @@ fun setLivenessParams(input: LivenessParams, opts: JSONObject) = opts.forEach {
761
769
 
762
770
  fun getLivenessParams(input: LivenessParams?) = input?.let {
763
771
  mapOf(
764
- "checkOVI" to input.checkOVI,
765
- "checkMLI" to input.checkMLI,
766
- "checkHolo" to input.checkHolo,
767
- "checkED" to input.checkED,
768
- "checkBlackAndWhiteCopy" to input.checkBlackAndWhiteCopy,
769
- "checkDynaprint" to input.checkDynaprint,
770
- "checkGeometry" to input.checkGeometry,
771
- "checkBarcodeBackground" to input.checkBarcodeBackground,
772
+ "checkOVI" to it.checkOVI,
773
+ "checkMLI" to it.checkMLI,
774
+ "checkHolo" to it.checkHolo,
775
+ "checkED" to it.checkED,
776
+ "checkBlackAndWhiteCopy" to it.checkBlackAndWhiteCopy,
777
+ "checkDynaprint" to it.checkDynaprint,
778
+ "checkGeometry" to it.checkGeometry,
779
+ "checkBarcodeBackground" to it.checkBarcodeBackground,
780
+ ).toJson()
781
+ }
782
+
783
+ fun setAuthenticityPropertiesParams(input: AuthenticityPropertiesParams, opts: JSONObject) = opts.forEach { k, v ->
784
+ when (k) {
785
+ "checkHoldersSignature" -> input.checkHoldersSignature = v as Boolean
786
+ }
787
+ }
788
+
789
+ fun getAuthenticityPropertiesParams(input: AuthenticityPropertiesParams?) = input?.let {
790
+ mapOf(
791
+ "checkHoldersSignature" to it.checkHoldersSignature,
772
792
  ).toJson()
773
793
  }
774
794
 
@@ -27,6 +27,7 @@ import com.regula.documentreader.api.enums.eRFID_DataFile_Type
27
27
  import com.regula.documentreader.api.enums.eRPRM_Lights
28
28
  import com.regula.documentreader.api.listener.NetworkInterceptorListener
29
29
  import com.regula.documentreader.api.params.AuthenticityParams
30
+ import com.regula.documentreader.api.params.AuthenticityPropertiesParams
30
31
  import com.regula.documentreader.api.params.BackendProcessingConfig
31
32
  import com.regula.documentreader.api.params.BleDeviceConfig
32
33
  import com.regula.documentreader.api.params.Bsi
@@ -378,6 +379,7 @@ fun faceApiParamsFromJSON(input: JSONObject?) = input?.let {
378
379
  result.search = faceApiSearchParamsFromJSON(it.getJSONObjectOrNull("searchParams"))
379
380
  result.proxy = it.getStringOrNull("proxy")
380
381
  result.proxyUserPwd = it.getStringOrNull("proxyPassword")
382
+ result.livenessTransactionId = it.getStringOrNull("livenessTransactionId")
381
383
  result.proxyType = it.getIntOrNull("proxyType")
382
384
 
383
385
  result
@@ -392,6 +394,7 @@ fun generateFaceApiParams(input: FaceApiParams?) = input?.let {
392
394
  "serviceTimeout" to it.serviceTimeout,
393
395
  "proxy" to it.proxy,
394
396
  "proxyPassword" to it.proxyUserPwd,
397
+ "livenessTransactionId" to it.livenessTransactionId,
395
398
  "proxyType" to it.proxyType
396
399
  ).toJson()
397
400
  }
@@ -464,6 +467,14 @@ fun livenessParamsFromJSON(input: JSONObject): LivenessParams {
464
467
 
465
468
  fun generateLivenessParams(input: LivenessParams?) = getLivenessParams(input)
466
469
 
470
+ fun authenticityPropertiesParamsFromJSON(input: JSONObject): AuthenticityPropertiesParams {
471
+ val result = AuthenticityPropertiesParams.defaultParams()
472
+ setAuthenticityPropertiesParams(result, input)
473
+ return result
474
+ }
475
+
476
+ fun generateAuthenticityPropertiesParams(input: AuthenticityPropertiesParams?) = getAuthenticityPropertiesParams(input)
477
+
467
478
  fun eDLDataGroupsFromJSON(input: JSONObject): EDLDataGroups {
468
479
  val result = EDLDataGroups()
469
480
  setDataGroups(result, input)
@@ -582,7 +593,7 @@ fun generateImageInputData(input: ImageInputData?) = input?.let {
582
593
  ).toJson()
583
594
  }
584
595
 
585
- fun pkdCertificateFromJSON(input: JSONObject?) = input?.let {
596
+ fun pkdCertificateFromJSON(input: JSONObject?): PKDCertificate? = input?.let {
586
597
  var resourceType = 0
587
598
  var binaryData = ByteArray(0)
588
599
 
@@ -237,7 +237,7 @@ internal object Convert {
237
237
  BitmapDrawable(context.resources, Bitmap.createScaledBitmap(bitmap, width, height, false))
238
238
  }
239
239
 
240
- fun Drawable?.toBase64() = this?.let {
240
+ fun Drawable?.toBase64(): String? = this?.let {
241
241
  if (this is BitmapDrawable) if (bitmap != null) return bitmap.toBase64()
242
242
  val bitmap: Bitmap = if (intrinsicWidth <= 0 || intrinsicHeight <= 0) Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888) else Bitmap.createBitmap(intrinsicWidth, intrinsicHeight, Bitmap.Config.ARGB_8888)
243
243
  val canvas = Canvas(bitmap)
@@ -19,6 +19,7 @@
19
19
  +(void)setImageQA:(RGLImageQA*)result input:(NSDictionary*)input;
20
20
  +(void)setAuthenticityParams:(RGLAuthenticityParams*)result input:(NSDictionary*)input;
21
21
  +(void)setLivenessParams:(RGLLivenessParams*)result input:(NSDictionary*)input;
22
+ +(void)setAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams*)result input:(NSDictionary*)input;
22
23
 
23
24
  +(NSDictionary*)getFunctionality:(RGLFunctionality*)functionality;
24
25
  +(NSDictionary*)getProcessParams:(RGLProcessParams*)processParams;
@@ -29,6 +30,7 @@
29
30
  +(NSDictionary*)getImageQA:(RGLImageQA*)input;
30
31
  +(NSDictionary*)getAuthenticityParams:(RGLAuthenticityParams*)input;
31
32
  +(NSDictionary*)getLivenessParams:(RGLLivenessParams*)input;
33
+ +(NSDictionary*)getAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams*)input;
32
34
 
33
35
  +(RGLImageQualityCheckType)imageQualityCheckTypeWithNumber:(NSNumber*)value;
34
36
  +(NSNumber*)generateDocReaderAction:(RGLDocReaderAction)action;
@@ -998,10 +998,6 @@
998
998
  +(void)setAuthenticityParams:(RGLAuthenticityParams*)result input:(NSDictionary*)input {
999
999
  if([input valueForKey:@"useLivenessCheck"] != nil)
1000
1000
  result.useLivenessCheck = [input valueForKey:@"useLivenessCheck"];
1001
- if([input valueForKey:@"livenessParams"] != nil) {
1002
- if(result.livenessParams == nil) result.livenessParams = [RGLLivenessParams defaultParams];
1003
- [self setLivenessParams:result.livenessParams input:[input valueForKey:@"livenessParams"]];
1004
- }
1005
1001
  if([input valueForKey:@"checkUVLuminiscence"] != nil)
1006
1002
  result.checkUVLuminiscence = [input valueForKey:@"checkUVLuminiscence"];
1007
1003
  if([input valueForKey:@"checkIRB900"] != nil)
@@ -1029,6 +1025,15 @@
1029
1025
  if([input valueForKey:@"checkLetterScreen"] != nil)
1030
1026
  result.checkLetterScreen = [input valueForKey:@"checkLetterScreen"];
1031
1027
  if(input[@"checkSecurityText"]) result.checkSecurityText = input[@"checkSecurityText"];
1028
+ if(input[@"checkProperties"]) result.checkProperties = input[@"checkProperties"];
1029
+ if(input[@"livenessParams"]) {
1030
+ if(!result.livenessParams) result.livenessParams = [RGLLivenessParams defaultParams];
1031
+ [self setLivenessParams:result.livenessParams input:input[@"livenessParams"]];
1032
+ }
1033
+ if(input[@"propertiesParams"]) {
1034
+ if(!result.propertiesParams) result.propertiesParams = [RGLAuthenticityPropertiesParams defaultParams];
1035
+ [self setAuthenticityPropertiesParams:result.propertiesParams input:input[@"propertiesParams"]];
1036
+ }
1032
1037
  }
1033
1038
 
1034
1039
  +(NSDictionary*)getAuthenticityParams:(RGLAuthenticityParams*)input {
@@ -1036,7 +1041,6 @@
1036
1041
  NSMutableDictionary *result = [NSMutableDictionary new];
1037
1042
 
1038
1043
  result[@"useLivenessCheck"] = input.useLivenessCheck;
1039
- result[@"livenessParams"] = [self getLivenessParams:input.livenessParams];
1040
1044
  result[@"checkUVLuminiscence"] = input.checkUVLuminiscence;
1041
1045
  result[@"checkIRB900"] = input.checkIRB900;
1042
1046
  result[@"checkImagePatterns"] = input.checkImagePatterns;
@@ -1051,6 +1055,9 @@
1051
1055
  result[@"checkPhotoComparison"] = input.checkPhotoComparison;
1052
1056
  result[@"checkLetterScreen"] = input.checkLetterScreen;
1053
1057
  result[@"checkSecurityText"] = input.checkSecurityText;
1058
+ result[@"checkProperties"] = input.checkProperties;
1059
+ result[@"livenessParams"] = [self getLivenessParams:input.livenessParams];
1060
+ result[@"propertiesParams"] = [self getAuthenticityPropertiesParams:input.propertiesParams];
1054
1061
 
1055
1062
  return result;
1056
1063
  }
@@ -1086,6 +1093,19 @@
1086
1093
  return result;
1087
1094
  }
1088
1095
 
1096
+ +(void)setAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams*)result input:(NSDictionary*)input {
1097
+ if(input[@"checkHoldersSignature"]) result.checkHoldersSignature = input[@"checkHoldersSignature"];
1098
+ }
1099
+
1100
+ +(NSDictionary*)getAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams*)input {
1101
+ if(input == nil) return nil;
1102
+ NSMutableDictionary *result = [NSMutableDictionary new];
1103
+
1104
+ result[@"checkHoldersSignature"] = input.checkHoldersSignature;
1105
+
1106
+ return result;
1107
+ }
1108
+
1089
1109
  +(void)setColors:(NSMutableDictionary*)result input:(NSDictionary*)input {
1090
1110
  if([input valueForKey:@"rfidProcessingScreenBackground"] != nil)
1091
1111
  result[@(RFIDProcessingScreenBackground)] = [self colorWithInt:[input valueForKey:@"rfidProcessingScreenBackground"]];
@@ -41,6 +41,8 @@
41
41
  +(NSDictionary* _Nullable)generateAuthenticityParams:(RGLAuthenticityParams* _Nullable)input;
42
42
  +(RGLLivenessParams* _Nullable)livenessParamsFromJson:(NSDictionary* _Nullable)input;
43
43
  +(NSDictionary* _Nullable)generateLivenessParams:(RGLLivenessParams* _Nullable)input;
44
+ +(RGLAuthenticityPropertiesParams* _Nullable)authenticityPropertiesParamsFromJson:(NSDictionary* _Nullable)input;
45
+ +(NSDictionary* _Nullable)generateAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams* _Nullable)input;
44
46
  +(RGLGlaresCheckParams* _Nullable)glaresCheckParamsFromJson:(NSDictionary* _Nullable)input;
45
47
  +(NSDictionary* _Nullable)generateGlaresCheckParams:(RGLGlaresCheckParams* _Nullable)input;
46
48
  +(RGLImageQA* _Nullable)imageQAFromJson:(NSDictionary* _Nullable)input;
@@ -366,6 +366,16 @@ static NSMutableArray* weakReferencesHolder;
366
366
  return [RGLWConfig getLivenessParams:input];
367
367
  }
368
368
 
369
+ +(RGLAuthenticityPropertiesParams*)authenticityPropertiesParamsFromJson:(NSDictionary*)input {
370
+ RGLAuthenticityPropertiesParams *result = [RGLAuthenticityPropertiesParams defaultParams];
371
+ [RGLWConfig setAuthenticityPropertiesParams:result input:input];
372
+ return result;
373
+ }
374
+
375
+ +(NSDictionary*)generateAuthenticityPropertiesParams:(RGLAuthenticityPropertiesParams*)input {
376
+ return [RGLWConfig getAuthenticityPropertiesParams:input];
377
+ }
378
+
369
379
  +(RGLeDLDataGroup*)eDLDataGroupsFromJson:(NSDictionary*)input {
370
380
  RGLeDLDataGroup *result = [RGLeDLDataGroup new];
371
381
  [RGLWConfig setDataGroups :result dict:input];
@@ -590,6 +600,7 @@ static NSMutableArray* weakReferencesHolder;
590
600
  result.proxyPassword = [input valueForKey:@"proxyPassword"];
591
601
  if([input valueForKey:@"proxyType"] != nil)
592
602
  result.proxyType = [input valueForKey:@"proxyType"];
603
+ if(input[@"livenessTransactionId"]) result.livenessTransactionId = input[@"livenessTransactionId"];
593
604
 
594
605
  return result;
595
606
  }
@@ -606,6 +617,7 @@ static NSMutableArray* weakReferencesHolder;
606
617
  result[@"proxy"] = input.proxy;
607
618
  result[@"proxyPassword"] = input.proxyPassword;
608
619
  result[@"proxyType"] = input.proxyType;
620
+ result[@"livenessTransactionId"] = input.livenessTransactionId;
609
621
 
610
622
  return result;
611
623
  }
@@ -1360,6 +1360,7 @@ class FaceApiParams {
1360
1360
  result.proxy = jsonObject["proxy"]
1361
1361
  result.proxyPassword = jsonObject["proxyPassword"]
1362
1362
  result.proxyType = jsonObject["proxyType"]
1363
+ result.livenessTransactionId = jsonObject["livenessTransactionId"]
1363
1364
 
1364
1365
  return result
1365
1366
  }
@@ -1409,6 +1410,17 @@ class LivenessParams {
1409
1410
  }
1410
1411
  }
1411
1412
 
1413
+ class AuthenticityPropertiesParams {
1414
+ static fromJson(jsonObject) {
1415
+ if (jsonObject == null) return null
1416
+ const result = new AuthenticityPropertiesParams()
1417
+
1418
+ result.checkHoldersSignature = jsonObject["checkHoldersSignature"]
1419
+
1420
+ return result
1421
+ }
1422
+ }
1423
+
1412
1424
  class AuthenticityParams {
1413
1425
  static fromJson(jsonObject) {
1414
1426
  if (jsonObject == null) return null
@@ -1430,6 +1442,8 @@ class AuthenticityParams {
1430
1442
  result.checkPhotoComparison = jsonObject["checkPhotoComparison"]
1431
1443
  result.checkLetterScreen = jsonObject["checkLetterScreen"]
1432
1444
  result.checkSecurityText = jsonObject["checkSecurityText"]
1445
+ result.checkProperties = jsonObject["checkProperties"]
1446
+ result.propertiesParams = AuthenticityPropertiesParams.fromJson(jsonObject["propertiesParams"])
1433
1447
 
1434
1448
  return result
1435
1449
  }
@@ -2210,6 +2224,8 @@ const eRPRM_Authenticity = {
2210
2224
  OVI: 1024,
2211
2225
  LIVENESS: 2097152,
2212
2226
  OCR: 4194304,
2227
+ ENCRYPTED_IPI: 16777216,
2228
+ AUTHENTICITY_PROPERTY: 0x02000000,
2213
2229
  }
2214
2230
 
2215
2231
  const CustomizationColor = {
@@ -3021,7 +3037,6 @@ const eCheckDiagnose = {
3021
3037
  CHD_DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED: 239,
3022
3038
  DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED: 240,
3023
3039
  DOC_LIVENESS_INVALID_BARCODE_BACKGROUND: 241,
3024
- DOC_LIVENESS_VIRTUAL_CAMERA_DETECTED: 242,
3025
3040
  ICAO_IDB_BASE_32_ERROR: 243,
3026
3041
  ICAO_IDB_ZIPPED_ERROR: 244,
3027
3042
  ICAO_IDB_MESSAGE_ZONE_EMPTY: 245,
@@ -3029,6 +3044,10 @@ const eCheckDiagnose = {
3029
3044
  ICAO_IDB_SIGNATURE_MUST_NOT_BE_PRESENT: 247,
3030
3045
  ICAO_IDB_CERTIFICATE_MUST_NOT_BE_PRESENT: 248,
3031
3046
  INCORRECT_OBJECT_COLOR: 250,
3047
+ DOC_LIVENESS_VIRTUAL_CAMERA_DETECTED: 242,
3048
+ CHD_PROPERTY_NO_SIGNATURE: 260,
3049
+ CHD_PROPERTY_TEXT_AS_SIGNATURE: 261,
3050
+ CHD_PROPERTY_FINGERPRINT_AS_SIGNATURE: 262,
3032
3051
  }
3033
3052
 
3034
3053
  const eMDLIntentToRetain = {
@@ -3444,6 +3463,7 @@ const eRPRM_SecurityFeatureType = {
3444
3463
  SECURITY_FEATURE_TYPE_PORTRAIT_COMPARISON_BARCODEVSGHOST: 59,
3445
3464
  SECURITY_FEATURE_TYPE_PORTRAIT_COMPARISON_GHOSTVSLIVE: 60,
3446
3465
  SECURITY_FEATURE_TYPE_PORTRAIT_COMPARISON_EXTVSGHOST: 61,
3466
+ SECURITY_FEATURE_TYPE_SIGNATURE_PRESENCE: 62,
3447
3467
  }
3448
3468
 
3449
3469
  const OnlineMode = {
@@ -4567,7 +4587,9 @@ const eVisualFieldType = {
4567
4587
  FT_JURISDICTION_SPECIFIC_DATA: 703,
4568
4588
  FT_DATA_DATE_OF_EXPIRY: 704,
4569
4589
  FT_CONSUL: 705,
4570
- FT_CANTON_REFERENCE: 706,
4590
+ FT_DLCLASSCODE_B3_FROM: 706,
4591
+ FT_DLCLASSCODE_B3_TO: 707,
4592
+ FT_DLCLASSCODE_B3_NOTES: 708,
4571
4593
  }
4572
4594
 
4573
4595
  const DocReaderOrientation = {
@@ -5060,6 +5082,7 @@ DocumentReaderPlugin.FaceApiParams = FaceApiParams
5060
5082
  DocumentReaderPlugin.BackendProcessingConfig = BackendProcessingConfig
5061
5083
  DocumentReaderPlugin.Bsi = Bsi
5062
5084
  DocumentReaderPlugin.LivenessParams = LivenessParams
5085
+ DocumentReaderPlugin.AuthenticityPropertiesParams = AuthenticityPropertiesParams
5063
5086
  DocumentReaderPlugin.AuthenticityParams = AuthenticityParams
5064
5087
  DocumentReaderPlugin.ProcessParams = ProcessParams
5065
5088
  DocumentReaderPlugin.Font = Font