@dan-uni/dan-any 0.8.7 → 0.9.1

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.
@@ -13386,6 +13386,48 @@
13386
13386
  module1.exports = exports1["default"];
13387
13387
  module1.exports["default"] = exports1["default"];
13388
13388
  },
13389
+ "../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isJSON.js": function(module1, exports1, __webpack_require__) {
13390
+ "use strict";
13391
+ Object.defineProperty(exports1, "__esModule", {
13392
+ value: true
13393
+ });
13394
+ exports1["default"] = isJSON;
13395
+ var _assertString = _interopRequireDefault(__webpack_require__("../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/assertString.js"));
13396
+ var _includesArray = _interopRequireDefault(__webpack_require__("../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/includesArray.js"));
13397
+ var _merge = _interopRequireDefault(__webpack_require__("../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/merge.js"));
13398
+ function _interopRequireDefault(e) {
13399
+ return e && e.__esModule ? e : {
13400
+ default: e
13401
+ };
13402
+ }
13403
+ function _typeof(o) {
13404
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
13405
+ return typeof o;
13406
+ } : function(o) {
13407
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
13408
+ }, _typeof(o);
13409
+ }
13410
+ var default_json_options = {
13411
+ allow_primitives: false
13412
+ };
13413
+ function isJSON(str, options) {
13414
+ (0, _assertString.default)(str);
13415
+ try {
13416
+ options = (0, _merge.default)(options, default_json_options);
13417
+ var primitives = [];
13418
+ if (options.allow_primitives) primitives = [
13419
+ null,
13420
+ false,
13421
+ true
13422
+ ];
13423
+ var obj = JSON.parse(str);
13424
+ return (0, _includesArray.default)(primitives, obj) || !!obj && 'object' === _typeof(obj);
13425
+ } catch (e) {}
13426
+ return false;
13427
+ }
13428
+ module1.exports = exports1["default"];
13429
+ module1.exports["default"] = exports1["default"];
13430
+ },
13389
13431
  "../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/assertString.js": function(module1, exports1) {
13390
13432
  "use strict";
13391
13433
  Object.defineProperty(exports1, "__esModule", {
@@ -13418,6 +13460,21 @@
13418
13460
  module1.exports = exports1["default"];
13419
13461
  module1.exports["default"] = exports1["default"];
13420
13462
  },
13463
+ "../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/includesArray.js": function(module1, exports1) {
13464
+ "use strict";
13465
+ Object.defineProperty(exports1, "__esModule", {
13466
+ value: true
13467
+ });
13468
+ exports1["default"] = void 0;
13469
+ var includes = function(arr, val) {
13470
+ return arr.some(function(arrVal) {
13471
+ return val === arrVal;
13472
+ });
13473
+ };
13474
+ exports1["default"] = includes;
13475
+ module1.exports = exports1["default"];
13476
+ module1.exports["default"] = exports1["default"];
13477
+ },
13421
13478
  "../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/merge.js": function(module1, exports1) {
13422
13479
  "use strict";
13423
13480
  Object.defineProperty(exports1, "__esModule", {
@@ -14193,203 +14250,550 @@ and limitations under the License.
14193
14250
  UniDM: ()=>UniDM
14194
14251
  });
14195
14252
  __webpack_require__("../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/ReflectLite.js");
14196
- const defaultOptions = {
14197
- preserveOrder: false,
14198
- attributeNamePrefix: '@_',
14199
- attributesGroupName: false,
14200
- textNodeName: '#text',
14201
- ignoreAttributes: true,
14202
- removeNSPrefix: false,
14203
- allowBooleanAttributes: false,
14204
- parseTagValue: true,
14205
- parseAttributeValue: false,
14206
- trimValues: true,
14207
- cdataPropName: false,
14208
- numberParseOptions: {
14209
- hex: true,
14210
- leadingZeros: true,
14211
- eNotation: true
14212
- },
14213
- tagValueProcessor: function(tagName, val) {
14214
- return val;
14215
- },
14216
- attributeValueProcessor: function(attrName, val) {
14217
- return val;
14218
- },
14219
- stopNodes: [],
14220
- alwaysCreateTextNode: false,
14221
- isArray: ()=>false,
14222
- commentPropName: false,
14223
- unpairedTags: [],
14224
- processEntities: true,
14225
- htmlEntities: false,
14226
- ignoreDeclaration: false,
14227
- ignorePiTags: false,
14228
- transformTagName: false,
14229
- transformAttributeName: false,
14230
- updateTag: function(tagName, jPath, attrs) {
14231
- return tagName;
14232
- },
14233
- captureMetaData: false
14234
- };
14235
- const buildOptions = function(options) {
14236
- return Object.assign({}, defaultOptions, options);
14237
- };
14238
- const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
14239
- const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
14240
- const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';
14241
- const regexName = new RegExp('^' + nameRegexp + '$');
14242
- function getAllMatches(string, regex) {
14243
- const matches = [];
14244
- let match = regex.exec(string);
14245
- while(match){
14246
- const allmatches = [];
14247
- allmatches.startIndex = regex.lastIndex - match[0].length;
14248
- const len = match.length;
14249
- for(let index = 0; index < len; index++)allmatches.push(match[index]);
14250
- matches.push(allmatches);
14251
- match = regex.exec(string);
14252
- }
14253
- return matches;
14253
+ var isJSON = __webpack_require__("../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isJSON.js");
14254
+ var isJSON_default = /*#__PURE__*/ __webpack_require__.n(isJSON);
14255
+ function IsJSON_isJSON(value) {
14256
+ return 'string' == typeof value && isJSON_default()(value);
14254
14257
  }
14255
- const isName = function(string) {
14256
- const match = regexName.exec(string);
14257
- return null != match;
14258
- };
14259
- function isExist(v) {
14260
- return void 0 !== v;
14258
+ function isObject(value) {
14259
+ return null != value && ('object' == typeof value || 'function' == typeof value) && !Array.isArray(value);
14261
14260
  }
14262
- let METADATA_SYMBOL;
14263
- METADATA_SYMBOL = "function" != typeof Symbol ? "@@xmlMetadata" : Symbol("XML Node Metadata");
14264
- class XmlNode {
14265
- constructor(tagname){
14266
- this.tagname = tagname;
14267
- this.child = [];
14268
- this[":@"] = {};
14269
- }
14270
- add(key, val) {
14271
- if ("__proto__" === key) key = "#__proto__";
14272
- this.child.push({
14273
- [key]: val
14274
- });
14261
+ var defaultContainer = new (function() {
14262
+ function class_1() {
14263
+ this.instances = [];
14275
14264
  }
14276
- addChild(node, startIndex) {
14277
- if ("__proto__" === node.tagname) node.tagname = "#__proto__";
14278
- if (node[":@"] && Object.keys(node[":@"]).length > 0) this.child.push({
14279
- [node.tagname]: node.child,
14280
- [":@"]: node[":@"]
14281
- });
14282
- else this.child.push({
14283
- [node.tagname]: node.child
14265
+ class_1.prototype.get = function(someClass) {
14266
+ var instance = this.instances.find(function(instance) {
14267
+ return instance.type === someClass;
14284
14268
  });
14285
- if (void 0 !== startIndex) this.child[this.child.length - 1][METADATA_SYMBOL] = {
14286
- startIndex
14287
- };
14288
- }
14289
- static getMetaDataSymbol() {
14290
- return METADATA_SYMBOL;
14291
- }
14292
- }
14293
- function readDocType(xmlData, i) {
14294
- const entities = {};
14295
- if ('O' === xmlData[i + 3] && 'C' === xmlData[i + 4] && 'T' === xmlData[i + 5] && 'Y' === xmlData[i + 6] && 'P' === xmlData[i + 7] && 'E' === xmlData[i + 8]) {
14296
- i += 9;
14297
- let angleBracketsCount = 1;
14298
- let hasBody = false, comment = false;
14299
- for(; i < xmlData.length; i++)if ('<' !== xmlData[i] || comment) if ('>' === xmlData[i]) {
14300
- if (comment) {
14301
- if ("-" === xmlData[i - 1] && "-" === xmlData[i - 2]) {
14302
- comment = false;
14303
- angleBracketsCount--;
14304
- }
14305
- } else angleBracketsCount--;
14306
- if (0 === angleBracketsCount) break;
14307
- } else if ('[' === xmlData[i]) hasBody = true;
14308
- else xmlData[i];
14309
- else {
14310
- if (hasBody && hasSeq(xmlData, "!ENTITY", i)) {
14311
- i += 7;
14312
- let entityName, val;
14313
- [entityName, val, i] = readEntityExp(xmlData, i + 1);
14314
- if (-1 === val.indexOf("&")) entities[entityName] = {
14315
- regx: RegExp(`&${entityName};`, "g"),
14316
- val: val
14317
- };
14318
- } else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) {
14319
- i += 8;
14320
- const { index } = readElementExp(xmlData, i + 1);
14321
- i = index;
14322
- } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) i += 8;
14323
- else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) {
14324
- i += 9;
14325
- const { index } = readNotationExp(xmlData, i + 1);
14326
- i = index;
14327
- } else if (hasSeq(xmlData, "!--", i)) comment = true;
14328
- else throw new Error("Invalid DOCTYPE");
14329
- angleBracketsCount++;
14269
+ if (!instance) {
14270
+ instance = {
14271
+ type: someClass,
14272
+ object: new someClass()
14273
+ };
14274
+ this.instances.push(instance);
14330
14275
  }
14331
- if (0 !== angleBracketsCount) throw new Error("Unclosed DOCTYPE");
14332
- } else throw new Error("Invalid Tag instead of DOCTYPE");
14333
- return {
14334
- entities,
14335
- i
14276
+ return instance.object;
14336
14277
  };
14337
- }
14338
- const skipWhitespace = (data, index)=>{
14339
- while(index < data.length && /\s/.test(data[index]))index++;
14340
- return index;
14341
- };
14342
- function readEntityExp(xmlData, i) {
14343
- i = skipWhitespace(xmlData, i);
14344
- let entityName = "";
14345
- while(i < xmlData.length && !/\s/.test(xmlData[i]) && '"' !== xmlData[i] && "'" !== xmlData[i]){
14346
- entityName += xmlData[i];
14347
- i++;
14278
+ return class_1;
14279
+ }())();
14280
+ var userContainer;
14281
+ var userContainerOptions;
14282
+ function container_getFromContainer(someClass) {
14283
+ if (userContainer) try {
14284
+ var instance = userContainer.get(someClass);
14285
+ if (instance) return instance;
14286
+ if (!userContainerOptions || !userContainerOptions.fallback) return instance;
14287
+ } catch (error) {
14288
+ if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;
14348
14289
  }
14349
- validateEntityName(entityName);
14350
- i = skipWhitespace(xmlData, i);
14351
- if ("SYSTEM" === xmlData.substring(i, i + 6).toUpperCase()) throw new Error("External entities are not supported");
14352
- if ("%" === xmlData[i]) throw new Error("Parameter entities are not supported");
14353
- let entityValue = "";
14354
- [i, entityValue] = readIdentifierVal(xmlData, i, "entity");
14355
- i--;
14356
- return [
14357
- entityName,
14358
- entityValue,
14359
- i
14360
- ];
14290
+ return defaultContainer.get(someClass);
14361
14291
  }
14362
- function readNotationExp(xmlData, i) {
14363
- i = skipWhitespace(xmlData, i);
14364
- let notationName = "";
14365
- while(i < xmlData.length && !/\s/.test(xmlData[i])){
14366
- notationName += xmlData[i];
14367
- i++;
14368
- }
14369
- validateEntityName(notationName);
14370
- i = skipWhitespace(xmlData, i);
14371
- const identifierType = xmlData.substring(i, i + 6).toUpperCase();
14372
- if ("SYSTEM" !== identifierType && "PUBLIC" !== identifierType) throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`);
14373
- i += identifierType.length;
14374
- i = skipWhitespace(xmlData, i);
14375
- let publicIdentifier = null;
14376
- let systemIdentifier = null;
14377
- if ("PUBLIC" === identifierType) {
14378
- [i, publicIdentifier] = readIdentifierVal(xmlData, i, "publicIdentifier");
14379
- i = skipWhitespace(xmlData, i);
14380
- if ('"' === xmlData[i] || "'" === xmlData[i]) [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14381
- } else if ("SYSTEM" === identifierType) {
14382
- [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14383
- if (!systemIdentifier) throw new Error("Missing mandatory system identifier for SYSTEM notation");
14292
+ var ConstraintMetadata_ConstraintMetadata = function() {
14293
+ function ConstraintMetadata(target, name, async) {
14294
+ if (void 0 === async) async = false;
14295
+ this.target = target;
14296
+ this.name = name;
14297
+ this.async = async;
14384
14298
  }
14385
- return {
14386
- notationName,
14387
- publicIdentifier,
14388
- systemIdentifier,
14389
- index: --i
14390
- };
14391
- }
14392
- function readIdentifierVal(xmlData, i, type) {
14299
+ Object.defineProperty(ConstraintMetadata.prototype, "instance", {
14300
+ get: function() {
14301
+ return container_getFromContainer(this.target);
14302
+ },
14303
+ enumerable: false,
14304
+ configurable: true
14305
+ });
14306
+ return ConstraintMetadata;
14307
+ }();
14308
+ var ValidationMetadata_ValidationMetadata = function() {
14309
+ function ValidationMetadata(args) {
14310
+ this.groups = [];
14311
+ this.each = false;
14312
+ this.context = void 0;
14313
+ this.type = args.type;
14314
+ this.name = args.name;
14315
+ this.target = args.target;
14316
+ this.propertyName = args.propertyName;
14317
+ this.constraints = null == args ? void 0 : args.constraints;
14318
+ this.constraintCls = args.constraintCls;
14319
+ this.validationTypeOptions = args.validationTypeOptions;
14320
+ if (args.validationOptions) {
14321
+ this.message = args.validationOptions.message;
14322
+ this.groups = args.validationOptions.groups;
14323
+ this.always = args.validationOptions.always;
14324
+ this.each = args.validationOptions.each;
14325
+ this.context = args.validationOptions.context;
14326
+ }
14327
+ }
14328
+ return ValidationMetadata;
14329
+ }();
14330
+ var ValidationTypes_ValidationTypes = function() {
14331
+ function ValidationTypes() {}
14332
+ ValidationTypes.isValid = function(type) {
14333
+ var _this = this;
14334
+ return 'isValid' !== type && 'getMessage' !== type && -1 !== Object.keys(this).map(function(key) {
14335
+ return _this[key];
14336
+ }).indexOf(type);
14337
+ };
14338
+ ValidationTypes.CUSTOM_VALIDATION = 'customValidation';
14339
+ ValidationTypes.NESTED_VALIDATION = 'nestedValidation';
14340
+ ValidationTypes.PROMISE_VALIDATION = 'promiseValidation';
14341
+ ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation';
14342
+ ValidationTypes.WHITELIST = 'whitelistValidation';
14343
+ ValidationTypes.IS_DEFINED = 'isDefined';
14344
+ return ValidationTypes;
14345
+ }();
14346
+ var ValidationSchemaToMetadataTransformer_ValidationSchemaToMetadataTransformer = function() {
14347
+ function ValidationSchemaToMetadataTransformer() {}
14348
+ ValidationSchemaToMetadataTransformer.prototype.transform = function(schema) {
14349
+ var metadatas = [];
14350
+ Object.keys(schema.properties).forEach(function(property) {
14351
+ schema.properties[property].forEach(function(validation) {
14352
+ var validationOptions = {
14353
+ message: validation.message,
14354
+ groups: validation.groups,
14355
+ always: validation.always,
14356
+ each: validation.each
14357
+ };
14358
+ var args = {
14359
+ type: validation.type,
14360
+ name: validation.name,
14361
+ target: schema.name,
14362
+ propertyName: property,
14363
+ constraints: validation.constraints,
14364
+ validationTypeOptions: validation.options,
14365
+ validationOptions: validationOptions
14366
+ };
14367
+ metadatas.push(new ValidationMetadata_ValidationMetadata(args));
14368
+ });
14369
+ });
14370
+ return metadatas;
14371
+ };
14372
+ return ValidationSchemaToMetadataTransformer;
14373
+ }();
14374
+ function getGlobal() {
14375
+ if ('undefined' != typeof globalThis) return globalThis;
14376
+ if (void 0 !== __webpack_require__.g) return __webpack_require__.g;
14377
+ if ('undefined' != typeof window) return window;
14378
+ if ('undefined' != typeof self) return self;
14379
+ }
14380
+ var __values = function(o) {
14381
+ var s = "function" == typeof Symbol && Symbol.iterator, m = s && o[s], i = 0;
14382
+ if (m) return m.call(o);
14383
+ if (o && "number" == typeof o.length) return {
14384
+ next: function() {
14385
+ if (o && i >= o.length) o = void 0;
14386
+ return {
14387
+ value: o && o[i++],
14388
+ done: !o
14389
+ };
14390
+ }
14391
+ };
14392
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14393
+ };
14394
+ var __read = function(o, n) {
14395
+ var m = "function" == typeof Symbol && o[Symbol.iterator];
14396
+ if (!m) return o;
14397
+ var i = m.call(o), r, ar = [], e;
14398
+ try {
14399
+ while((void 0 === n || n-- > 0) && !(r = i.next()).done)ar.push(r.value);
14400
+ } catch (error) {
14401
+ e = {
14402
+ error: error
14403
+ };
14404
+ } finally{
14405
+ try {
14406
+ if (r && !r.done && (m = i["return"])) m.call(i);
14407
+ } finally{
14408
+ if (e) throw e.error;
14409
+ }
14410
+ }
14411
+ return ar;
14412
+ };
14413
+ var __spreadArray = function(to, from, pack) {
14414
+ if (pack || 2 === arguments.length) {
14415
+ for(var i = 0, l = from.length, ar; i < l; i++)if (ar || !(i in from)) {
14416
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
14417
+ ar[i] = from[i];
14418
+ }
14419
+ }
14420
+ return to.concat(ar || Array.prototype.slice.call(from));
14421
+ };
14422
+ var MetadataStorage_MetadataStorage = function() {
14423
+ function MetadataStorage() {
14424
+ this.validationMetadatas = new Map();
14425
+ this.constraintMetadatas = new Map();
14426
+ }
14427
+ Object.defineProperty(MetadataStorage.prototype, "hasValidationMetaData", {
14428
+ get: function() {
14429
+ return !!this.validationMetadatas.size;
14430
+ },
14431
+ enumerable: false,
14432
+ configurable: true
14433
+ });
14434
+ MetadataStorage.prototype.addValidationSchema = function(schema) {
14435
+ var _this = this;
14436
+ var validationMetadatas = new ValidationSchemaToMetadataTransformer_ValidationSchemaToMetadataTransformer().transform(schema);
14437
+ validationMetadatas.forEach(function(validationMetadata) {
14438
+ return _this.addValidationMetadata(validationMetadata);
14439
+ });
14440
+ };
14441
+ MetadataStorage.prototype.addValidationMetadata = function(metadata) {
14442
+ var existingMetadata = this.validationMetadatas.get(metadata.target);
14443
+ if (existingMetadata) existingMetadata.push(metadata);
14444
+ else this.validationMetadatas.set(metadata.target, [
14445
+ metadata
14446
+ ]);
14447
+ };
14448
+ MetadataStorage.prototype.addConstraintMetadata = function(metadata) {
14449
+ var existingMetadata = this.constraintMetadatas.get(metadata.target);
14450
+ if (existingMetadata) existingMetadata.push(metadata);
14451
+ else this.constraintMetadatas.set(metadata.target, [
14452
+ metadata
14453
+ ]);
14454
+ };
14455
+ MetadataStorage.prototype.groupByPropertyName = function(metadata) {
14456
+ var grouped = {};
14457
+ metadata.forEach(function(metadata) {
14458
+ if (!grouped[metadata.propertyName]) grouped[metadata.propertyName] = [];
14459
+ grouped[metadata.propertyName].push(metadata);
14460
+ });
14461
+ return grouped;
14462
+ };
14463
+ MetadataStorage.prototype.getTargetValidationMetadatas = function(targetConstructor, targetSchema, always, strictGroups, groups) {
14464
+ var e_1, _a;
14465
+ var includeMetadataBecauseOfAlwaysOption = function(metadata) {
14466
+ if (void 0 !== metadata.always) return metadata.always;
14467
+ if (metadata.groups && metadata.groups.length) return false;
14468
+ return always;
14469
+ };
14470
+ var excludeMetadataBecauseOfStrictGroupsOption = function(metadata) {
14471
+ if (strictGroups) {
14472
+ if (!groups || !groups.length) {
14473
+ if (metadata.groups && metadata.groups.length) return true;
14474
+ }
14475
+ }
14476
+ return false;
14477
+ };
14478
+ var filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];
14479
+ var originalMetadatas = filteredForOriginalMetadatasSearch.filter(function(metadata) {
14480
+ if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;
14481
+ if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
14482
+ if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
14483
+ if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
14484
+ return -1 !== groups.indexOf(group);
14485
+ });
14486
+ return true;
14487
+ });
14488
+ var filteredForInheritedMetadatasSearch = [];
14489
+ try {
14490
+ for(var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()){
14491
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
14492
+ if (targetConstructor.prototype instanceof key) filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, __spreadArray([], __read(value), false));
14493
+ }
14494
+ } catch (e_1_1) {
14495
+ e_1 = {
14496
+ error: e_1_1
14497
+ };
14498
+ } finally{
14499
+ try {
14500
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
14501
+ } finally{
14502
+ if (e_1) throw e_1.error;
14503
+ }
14504
+ }
14505
+ var inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function(metadata) {
14506
+ if ('string' == typeof metadata.target) return false;
14507
+ if (metadata.target === targetConstructor) return false;
14508
+ if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) return false;
14509
+ if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
14510
+ if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
14511
+ if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
14512
+ return -1 !== groups.indexOf(group);
14513
+ });
14514
+ return true;
14515
+ });
14516
+ var uniqueInheritedMetadatas = inheritedMetadatas.filter(function(inheritedMetadata) {
14517
+ return !originalMetadatas.find(function(originalMetadata) {
14518
+ return originalMetadata.propertyName === inheritedMetadata.propertyName && originalMetadata.type === inheritedMetadata.type;
14519
+ });
14520
+ });
14521
+ return originalMetadatas.concat(uniqueInheritedMetadatas);
14522
+ };
14523
+ MetadataStorage.prototype.getTargetValidatorConstraints = function(target) {
14524
+ return this.constraintMetadatas.get(target) || [];
14525
+ };
14526
+ return MetadataStorage;
14527
+ }();
14528
+ function MetadataStorage_getMetadataStorage() {
14529
+ var global = getGlobal();
14530
+ if (!global.classValidatorMetadataStorage) global.classValidatorMetadataStorage = new MetadataStorage_MetadataStorage();
14531
+ return global.classValidatorMetadataStorage;
14532
+ }
14533
+ function registerDecorator(options) {
14534
+ var constraintCls;
14535
+ if (options.validator instanceof Function) {
14536
+ constraintCls = options.validator;
14537
+ var constraintClasses = container_getFromContainer(MetadataStorage_MetadataStorage).getTargetValidatorConstraints(options.validator);
14538
+ if (constraintClasses.length > 1) throw "More than one implementation of ValidatorConstraintInterface found for validator on: ".concat(options.target.name, ":").concat(options.propertyName);
14539
+ } else {
14540
+ var validator_1 = options.validator;
14541
+ constraintCls = function() {
14542
+ function CustomConstraint() {}
14543
+ CustomConstraint.prototype.validate = function(value, validationArguments) {
14544
+ return validator_1.validate(value, validationArguments);
14545
+ };
14546
+ CustomConstraint.prototype.defaultMessage = function(validationArguments) {
14547
+ if (validator_1.defaultMessage) return validator_1.defaultMessage(validationArguments);
14548
+ return '';
14549
+ };
14550
+ return CustomConstraint;
14551
+ }();
14552
+ MetadataStorage_getMetadataStorage().addConstraintMetadata(new ConstraintMetadata_ConstraintMetadata(constraintCls, options.name, options.async));
14553
+ }
14554
+ var validationMetadataArgs = {
14555
+ type: options.name && ValidationTypes_ValidationTypes.isValid(options.name) ? options.name : ValidationTypes_ValidationTypes.CUSTOM_VALIDATION,
14556
+ name: options.name,
14557
+ target: options.target,
14558
+ propertyName: options.propertyName,
14559
+ validationOptions: options.options,
14560
+ constraintCls: constraintCls,
14561
+ constraints: options.constraints
14562
+ };
14563
+ MetadataStorage_getMetadataStorage().addValidationMetadata(new ValidationMetadata_ValidationMetadata(validationMetadataArgs));
14564
+ }
14565
+ function ValidateBy_buildMessage(impl, validationOptions) {
14566
+ return function(validationArguments) {
14567
+ var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';
14568
+ return impl(eachPrefix, validationArguments);
14569
+ };
14570
+ }
14571
+ function ValidateBy_ValidateBy(options, validationOptions) {
14572
+ return function(object, propertyName) {
14573
+ registerDecorator({
14574
+ name: options.name,
14575
+ target: object.constructor,
14576
+ propertyName: propertyName,
14577
+ options: validationOptions,
14578
+ constraints: options.constraints,
14579
+ validator: options.validator
14580
+ });
14581
+ };
14582
+ }
14583
+ var IS_STRING = 'isString';
14584
+ function isString(value) {
14585
+ return value instanceof String || 'string' == typeof value;
14586
+ }
14587
+ function IsString(validationOptions) {
14588
+ return ValidateBy_ValidateBy({
14589
+ name: IS_STRING,
14590
+ validator: {
14591
+ validate: function(value, args) {
14592
+ return isString(value);
14593
+ },
14594
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
14595
+ return eachPrefix + '$property must be a string';
14596
+ }, validationOptions)
14597
+ }
14598
+ }, validationOptions);
14599
+ }
14600
+ const defaultOptions = {
14601
+ preserveOrder: false,
14602
+ attributeNamePrefix: '@_',
14603
+ attributesGroupName: false,
14604
+ textNodeName: '#text',
14605
+ ignoreAttributes: true,
14606
+ removeNSPrefix: false,
14607
+ allowBooleanAttributes: false,
14608
+ parseTagValue: true,
14609
+ parseAttributeValue: false,
14610
+ trimValues: true,
14611
+ cdataPropName: false,
14612
+ numberParseOptions: {
14613
+ hex: true,
14614
+ leadingZeros: true,
14615
+ eNotation: true
14616
+ },
14617
+ tagValueProcessor: function(tagName, val) {
14618
+ return val;
14619
+ },
14620
+ attributeValueProcessor: function(attrName, val) {
14621
+ return val;
14622
+ },
14623
+ stopNodes: [],
14624
+ alwaysCreateTextNode: false,
14625
+ isArray: ()=>false,
14626
+ commentPropName: false,
14627
+ unpairedTags: [],
14628
+ processEntities: true,
14629
+ htmlEntities: false,
14630
+ ignoreDeclaration: false,
14631
+ ignorePiTags: false,
14632
+ transformTagName: false,
14633
+ transformAttributeName: false,
14634
+ updateTag: function(tagName, jPath, attrs) {
14635
+ return tagName;
14636
+ },
14637
+ captureMetaData: false
14638
+ };
14639
+ const buildOptions = function(options) {
14640
+ return Object.assign({}, defaultOptions, options);
14641
+ };
14642
+ const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
14643
+ const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
14644
+ const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';
14645
+ const regexName = new RegExp('^' + nameRegexp + '$');
14646
+ function getAllMatches(string, regex) {
14647
+ const matches = [];
14648
+ let match = regex.exec(string);
14649
+ while(match){
14650
+ const allmatches = [];
14651
+ allmatches.startIndex = regex.lastIndex - match[0].length;
14652
+ const len = match.length;
14653
+ for(let index = 0; index < len; index++)allmatches.push(match[index]);
14654
+ matches.push(allmatches);
14655
+ match = regex.exec(string);
14656
+ }
14657
+ return matches;
14658
+ }
14659
+ const isName = function(string) {
14660
+ const match = regexName.exec(string);
14661
+ return null != match;
14662
+ };
14663
+ function isExist(v) {
14664
+ return void 0 !== v;
14665
+ }
14666
+ let METADATA_SYMBOL;
14667
+ METADATA_SYMBOL = "function" != typeof Symbol ? "@@xmlMetadata" : Symbol("XML Node Metadata");
14668
+ class XmlNode {
14669
+ constructor(tagname){
14670
+ this.tagname = tagname;
14671
+ this.child = [];
14672
+ this[":@"] = {};
14673
+ }
14674
+ add(key, val) {
14675
+ if ("__proto__" === key) key = "#__proto__";
14676
+ this.child.push({
14677
+ [key]: val
14678
+ });
14679
+ }
14680
+ addChild(node, startIndex) {
14681
+ if ("__proto__" === node.tagname) node.tagname = "#__proto__";
14682
+ if (node[":@"] && Object.keys(node[":@"]).length > 0) this.child.push({
14683
+ [node.tagname]: node.child,
14684
+ [":@"]: node[":@"]
14685
+ });
14686
+ else this.child.push({
14687
+ [node.tagname]: node.child
14688
+ });
14689
+ if (void 0 !== startIndex) this.child[this.child.length - 1][METADATA_SYMBOL] = {
14690
+ startIndex
14691
+ };
14692
+ }
14693
+ static getMetaDataSymbol() {
14694
+ return METADATA_SYMBOL;
14695
+ }
14696
+ }
14697
+ function readDocType(xmlData, i) {
14698
+ const entities = {};
14699
+ if ('O' === xmlData[i + 3] && 'C' === xmlData[i + 4] && 'T' === xmlData[i + 5] && 'Y' === xmlData[i + 6] && 'P' === xmlData[i + 7] && 'E' === xmlData[i + 8]) {
14700
+ i += 9;
14701
+ let angleBracketsCount = 1;
14702
+ let hasBody = false, comment = false;
14703
+ for(; i < xmlData.length; i++)if ('<' !== xmlData[i] || comment) if ('>' === xmlData[i]) {
14704
+ if (comment) {
14705
+ if ("-" === xmlData[i - 1] && "-" === xmlData[i - 2]) {
14706
+ comment = false;
14707
+ angleBracketsCount--;
14708
+ }
14709
+ } else angleBracketsCount--;
14710
+ if (0 === angleBracketsCount) break;
14711
+ } else if ('[' === xmlData[i]) hasBody = true;
14712
+ else xmlData[i];
14713
+ else {
14714
+ if (hasBody && hasSeq(xmlData, "!ENTITY", i)) {
14715
+ i += 7;
14716
+ let entityName, val;
14717
+ [entityName, val, i] = readEntityExp(xmlData, i + 1);
14718
+ if (-1 === val.indexOf("&")) entities[entityName] = {
14719
+ regx: RegExp(`&${entityName};`, "g"),
14720
+ val: val
14721
+ };
14722
+ } else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) {
14723
+ i += 8;
14724
+ const { index } = readElementExp(xmlData, i + 1);
14725
+ i = index;
14726
+ } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) i += 8;
14727
+ else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) {
14728
+ i += 9;
14729
+ const { index } = readNotationExp(xmlData, i + 1);
14730
+ i = index;
14731
+ } else if (hasSeq(xmlData, "!--", i)) comment = true;
14732
+ else throw new Error("Invalid DOCTYPE");
14733
+ angleBracketsCount++;
14734
+ }
14735
+ if (0 !== angleBracketsCount) throw new Error("Unclosed DOCTYPE");
14736
+ } else throw new Error("Invalid Tag instead of DOCTYPE");
14737
+ return {
14738
+ entities,
14739
+ i
14740
+ };
14741
+ }
14742
+ const skipWhitespace = (data, index)=>{
14743
+ while(index < data.length && /\s/.test(data[index]))index++;
14744
+ return index;
14745
+ };
14746
+ function readEntityExp(xmlData, i) {
14747
+ i = skipWhitespace(xmlData, i);
14748
+ let entityName = "";
14749
+ while(i < xmlData.length && !/\s/.test(xmlData[i]) && '"' !== xmlData[i] && "'" !== xmlData[i]){
14750
+ entityName += xmlData[i];
14751
+ i++;
14752
+ }
14753
+ validateEntityName(entityName);
14754
+ i = skipWhitespace(xmlData, i);
14755
+ if ("SYSTEM" === xmlData.substring(i, i + 6).toUpperCase()) throw new Error("External entities are not supported");
14756
+ if ("%" === xmlData[i]) throw new Error("Parameter entities are not supported");
14757
+ let entityValue = "";
14758
+ [i, entityValue] = readIdentifierVal(xmlData, i, "entity");
14759
+ i--;
14760
+ return [
14761
+ entityName,
14762
+ entityValue,
14763
+ i
14764
+ ];
14765
+ }
14766
+ function readNotationExp(xmlData, i) {
14767
+ i = skipWhitespace(xmlData, i);
14768
+ let notationName = "";
14769
+ while(i < xmlData.length && !/\s/.test(xmlData[i])){
14770
+ notationName += xmlData[i];
14771
+ i++;
14772
+ }
14773
+ validateEntityName(notationName);
14774
+ i = skipWhitespace(xmlData, i);
14775
+ const identifierType = xmlData.substring(i, i + 6).toUpperCase();
14776
+ if ("SYSTEM" !== identifierType && "PUBLIC" !== identifierType) throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`);
14777
+ i += identifierType.length;
14778
+ i = skipWhitespace(xmlData, i);
14779
+ let publicIdentifier = null;
14780
+ let systemIdentifier = null;
14781
+ if ("PUBLIC" === identifierType) {
14782
+ [i, publicIdentifier] = readIdentifierVal(xmlData, i, "publicIdentifier");
14783
+ i = skipWhitespace(xmlData, i);
14784
+ if ('"' === xmlData[i] || "'" === xmlData[i]) [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14785
+ } else if ("SYSTEM" === identifierType) {
14786
+ [i, systemIdentifier] = readIdentifierVal(xmlData, i, "systemIdentifier");
14787
+ if (!systemIdentifier) throw new Error("Missing mandatory system identifier for SYSTEM notation");
14788
+ }
14789
+ return {
14790
+ notationName,
14791
+ publicIdentifier,
14792
+ systemIdentifier,
14793
+ index: --i
14794
+ };
14795
+ }
14796
+ function readIdentifierVal(xmlData, i, type) {
14393
14797
  let identifierVal = "";
14394
14798
  const startChar = xmlData[i];
14395
14799
  if ('"' !== startChar && "'" !== startChar) throw new Error(`Expected quoted string, found "${startChar}"`);
@@ -15944,12 +16348,12 @@ and limitations under the License.
15944
16348
  break;
15945
16349
  }
15946
16350
  }
15947
- function isObject(arg) {
16351
+ function guard_isObject(arg) {
15948
16352
  return null !== arg && "object" == typeof arg && !Array.isArray(arg);
15949
16353
  }
15950
16354
  function isReflectList(arg, field) {
15951
16355
  var _a, _b, _c, _d;
15952
- if (isObject(arg) && unsafeLocal in arg && "add" in arg && "field" in arg && "function" == typeof arg.field) {
16356
+ if (guard_isObject(arg) && unsafeLocal in arg && "add" in arg && "field" in arg && "function" == typeof arg.field) {
15953
16357
  if (void 0 !== field) {
15954
16358
  const a = field;
15955
16359
  const b = arg.field();
@@ -15961,7 +16365,7 @@ and limitations under the License.
15961
16365
  }
15962
16366
  function isReflectMap(arg, field) {
15963
16367
  var _a, _b, _c, _d;
15964
- if (isObject(arg) && unsafeLocal in arg && "has" in arg && "field" in arg && "function" == typeof arg.field) {
16368
+ if (guard_isObject(arg) && unsafeLocal in arg && "has" in arg && "field" in arg && "function" == typeof arg.field) {
15965
16369
  if (void 0 !== field) {
15966
16370
  const a = field, b = arg.field();
15967
16371
  return a.mapKey === b.mapKey && a.mapKind == b.mapKind && a.scalar === b.scalar && (null == (_a = a.message) ? void 0 : _a.typeName) === (null == (_b = b.message) ? void 0 : _b.typeName) && (null == (_c = a.enum) ? void 0 : _c.typeName) === (null == (_d = b.enum) ? void 0 : _d.typeName);
@@ -15971,7 +16375,7 @@ and limitations under the License.
15971
16375
  return false;
15972
16376
  }
15973
16377
  function isReflectMessage(arg, messageDesc) {
15974
- return isObject(arg) && unsafeLocal in arg && "desc" in arg && isObject(arg.desc) && "message" === arg.desc.kind && (void 0 === messageDesc || arg.desc.typeName == messageDesc.typeName);
16378
+ return guard_isObject(arg) && unsafeLocal in arg && "desc" in arg && guard_isObject(arg.desc) && "message" === arg.desc.kind && (void 0 === messageDesc || arg.desc.typeName == messageDesc.typeName);
15975
16379
  }
15976
16380
  const symbol = Symbol.for("@bufbuild/protobuf/text-encoding");
15977
16381
  function getTextEncoding() {
@@ -16496,7 +16900,7 @@ and limitations under the License.
16496
16900
  return value;
16497
16901
  }
16498
16902
  function initMap(field, value) {
16499
- if (isObject(value)) {
16903
+ if (guard_isObject(value)) {
16500
16904
  if (field.scalar == descriptors_ScalarType.BYTES) return convertObjectValues(value, toU8Arr);
16501
16905
  if ("message" == field.mapKind) return convertObjectValues(value, (val)=>toMessage(field, val));
16502
16906
  }
@@ -16511,7 +16915,7 @@ and limitations under the License.
16511
16915
  }
16512
16916
  function toMessage(field, value) {
16513
16917
  if ("message" == field.fieldKind && !field.oneof && isWrapperDesc(field.message)) return initScalar(field.message.fields[0], value);
16514
- if (isObject(value)) {
16918
+ if (guard_isObject(value)) {
16515
16919
  if ("google.protobuf.Struct" == field.message.typeName && "google.protobuf.Value" !== field.parent.typeName) return value;
16516
16920
  if (!is_message_isMessage(value, field.message)) return create(field.message, value);
16517
16921
  }
@@ -16787,7 +17191,7 @@ and limitations under the License.
16787
17191
  $typeName: field.message.typeName,
16788
17192
  value: longToReflect(field.message.fields[0], value)
16789
17193
  };
16790
- else if ("google.protobuf.Struct" == field.message.typeName && "google.protobuf.Value" != field.parent.typeName && isObject(value)) value = wktStructToReflect(value);
17194
+ else if ("google.protobuf.Struct" == field.message.typeName && "google.protobuf.Value" != field.parent.typeName && guard_isObject(value)) value = wktStructToReflect(value);
16791
17195
  }
16792
17196
  return new ReflectMessageImpl(field.message, value, check);
16793
17197
  }
@@ -16881,7 +17285,7 @@ and limitations under the License.
16881
17285
  $typeName: "google.protobuf.Struct",
16882
17286
  fields: {}
16883
17287
  };
16884
- if (isObject(json)) for (const [k, v] of Object.entries(json))struct.fields[k] = wktValueToReflect(v);
17288
+ if (guard_isObject(json)) for (const [k, v] of Object.entries(json))struct.fields[k] = wktValueToReflect(v);
16885
17289
  return struct;
16886
17290
  }
16887
17291
  function wktStructToLocal(val) {
@@ -20485,7 +20889,7 @@ and limitations under the License.
20485
20889
  function timestamp_timestampMs(timestamp) {
20486
20890
  return 1000 * Number(timestamp.seconds) + Math.round(timestamp.nanos / 1000000);
20487
20891
  }
20488
- var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.8.7","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
20892
+ var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.1","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
20489
20893
  const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
20490
20894
  const DmSegMobileReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 30);
20491
20895
  const DmWebViewReplySchema = /*@__PURE__*/ message_messageDesc(file_bili_dm, 39);
@@ -20499,7 +20903,7 @@ and limitations under the License.
20499
20903
  TransformationType[TransformationType["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN";
20500
20904
  TransformationType[TransformationType["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS";
20501
20905
  })(transformation_type_enum_TransformationType || (transformation_type_enum_TransformationType = {}));
20502
- var MetadataStorage_MetadataStorage = function() {
20906
+ var esm5_MetadataStorage_MetadataStorage = function() {
20503
20907
  function MetadataStorage() {
20504
20908
  this._typeMetadatas = new Map();
20505
20909
  this._transformMetadatas = new Map();
@@ -20648,8 +21052,8 @@ and limitations under the License.
20648
21052
  };
20649
21053
  return MetadataStorage;
20650
21054
  }();
20651
- var defaultMetadataStorage = new MetadataStorage_MetadataStorage();
20652
- function getGlobal() {
21055
+ var defaultMetadataStorage = new esm5_MetadataStorage_MetadataStorage();
21056
+ function get_global_util_getGlobal() {
20653
21057
  if ('undefined' != typeof globalThis) return globalThis;
20654
21058
  if (void 0 !== __webpack_require__.g) return __webpack_require__.g;
20655
21059
  if ('undefined' != typeof window) return window;
@@ -20659,7 +21063,7 @@ and limitations under the License.
20659
21063
  return null !== p && 'object' == typeof p && 'function' == typeof p.then;
20660
21064
  }
20661
21065
  var Buffer = __webpack_require__("../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js")["Buffer"];
20662
- var __spreadArray = function(to, from, pack) {
21066
+ var TransformOperationExecutor_spreadArray = function(to, from, pack) {
20663
21067
  if (pack || 2 === arguments.length) {
20664
21068
  for(var i = 0, l = from.length, ar; i < l; i++)if (ar || !(i in from)) {
20665
21069
  if (!ar) ar = Array.prototype.slice.call(from, 0, i);
@@ -20721,7 +21125,7 @@ and limitations under the License.
20721
21125
  if (value instanceof Date) return new Date(value.valueOf());
20722
21126
  if (null == value) return value;
20723
21127
  return new Date(value);
20724
- } else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {
21128
+ } else if (!!get_global_util_getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {
20725
21129
  if (null == value) return value;
20726
21130
  return Buffer.from(value);
20727
21131
  } else {
@@ -20890,7 +21294,7 @@ and limitations under the License.
20890
21294
  if (this.options.ignoreDecorators && this.options.excludeExtraneousValues && target) {
20891
21295
  var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);
20892
21296
  var excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);
20893
- keys = __spreadArray(__spreadArray([], exposedProperties, true), excludedProperties, true);
21297
+ keys = TransformOperationExecutor_spreadArray(TransformOperationExecutor_spreadArray([], exposedProperties, true), excludedProperties, true);
20894
21298
  }
20895
21299
  if (!this.options.ignoreDecorators && target) {
20896
21300
  var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);
@@ -20903,405 +21307,180 @@ and limitations under the License.
20903
21307
  var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);
20904
21308
  if (excludedProperties_1.length > 0) keys = keys.filter(function(key) {
20905
21309
  return !excludedProperties_1.includes(key);
20906
- });
20907
- if (void 0 !== this.options.version) keys = keys.filter(function(key) {
20908
- var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
20909
- if (!exposeMetadata || !exposeMetadata.options) return true;
20910
- return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);
20911
- });
20912
- keys = this.options.groups && this.options.groups.length ? keys.filter(function(key) {
20913
- var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
20914
- if (!exposeMetadata || !exposeMetadata.options) return true;
20915
- return _this.checkGroups(exposeMetadata.options.groups);
20916
- }) : keys.filter(function(key) {
20917
- var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
20918
- return !exposeMetadata || !exposeMetadata.options || !exposeMetadata.options.groups || !exposeMetadata.options.groups.length;
20919
- });
20920
- }
20921
- if (this.options.excludePrefixes && this.options.excludePrefixes.length) keys = keys.filter(function(key) {
20922
- return _this.options.excludePrefixes.every(function(prefix) {
20923
- return key.substr(0, prefix.length) !== prefix;
20924
- });
20925
- });
20926
- keys = keys.filter(function(key, index, self1) {
20927
- return self1.indexOf(key) === index;
20928
- });
20929
- return keys;
20930
- };
20931
- TransformOperationExecutor.prototype.checkVersion = function(since, until) {
20932
- var decision = true;
20933
- if (decision && since) decision = this.options.version >= since;
20934
- if (decision && until) decision = this.options.version < until;
20935
- return decision;
20936
- };
20937
- TransformOperationExecutor.prototype.checkGroups = function(groups) {
20938
- if (!groups) return true;
20939
- return this.options.groups.some(function(optionGroup) {
20940
- return groups.includes(optionGroup);
20941
- });
20942
- };
20943
- return TransformOperationExecutor;
20944
- }();
20945
- var default_options_constant_defaultOptions = {
20946
- enableCircularCheck: false,
20947
- enableImplicitConversion: false,
20948
- excludeExtraneousValues: false,
20949
- excludePrefixes: void 0,
20950
- exposeDefaultValues: false,
20951
- exposeUnsetFields: true,
20952
- groups: void 0,
20953
- ignoreDecorators: false,
20954
- strategy: void 0,
20955
- targetMaps: void 0,
20956
- version: void 0
20957
- };
20958
- var __assign = function() {
20959
- __assign = Object.assign || function(t) {
20960
- for(var s, i = 1, n = arguments.length; i < n; i++){
20961
- s = arguments[i];
20962
- for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
20963
- }
20964
- return t;
20965
- };
20966
- return __assign.apply(this, arguments);
20967
- };
20968
- var ClassTransformer_ClassTransformer = function() {
20969
- function ClassTransformer() {}
20970
- ClassTransformer.prototype.instanceToPlain = function(object, options) {
20971
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, default_options_constant_defaultOptions), options));
20972
- return executor.transform(void 0, object, void 0, void 0, void 0, void 0);
20973
- };
20974
- ClassTransformer.prototype.classToPlainFromExist = function(object, plainObject, options) {
20975
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, default_options_constant_defaultOptions), options));
20976
- return executor.transform(plainObject, object, void 0, void 0, void 0, void 0);
20977
- };
20978
- ClassTransformer.prototype.plainToInstance = function(cls, plain, options) {
20979
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
20980
- return executor.transform(void 0, plain, cls, void 0, void 0, void 0);
20981
- };
20982
- ClassTransformer.prototype.plainToClassFromExist = function(clsObject, plain, options) {
20983
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
20984
- return executor.transform(clsObject, plain, void 0, void 0, void 0, void 0);
20985
- };
20986
- ClassTransformer.prototype.instanceToInstance = function(object, options) {
20987
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
20988
- return executor.transform(void 0, object, void 0, void 0, void 0, void 0);
20989
- };
20990
- ClassTransformer.prototype.classToClassFromExist = function(object, fromObject, options) {
20991
- var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
20992
- return executor.transform(fromObject, object, void 0, void 0, void 0, void 0);
20993
- };
20994
- ClassTransformer.prototype.serialize = function(object, options) {
20995
- return JSON.stringify(this.instanceToPlain(object, options));
20996
- };
20997
- ClassTransformer.prototype.deserialize = function(cls, json, options) {
20998
- var jsonObject = JSON.parse(json);
20999
- return this.plainToInstance(cls, jsonObject, options);
21000
- };
21001
- ClassTransformer.prototype.deserializeArray = function(cls, json, options) {
21002
- var jsonObject = JSON.parse(json);
21003
- return this.plainToInstance(cls, jsonObject, options);
21004
- };
21005
- return ClassTransformer;
21006
- }();
21007
- var classTransformer = new ClassTransformer_ClassTransformer();
21008
- function plainToInstance(cls, plain, options) {
21009
- return classTransformer.plainToInstance(cls, plain, options);
21010
- }
21011
- function Expose(options) {
21012
- if (void 0 === options) options = {};
21013
- return function(object, propertyName) {
21014
- defaultMetadataStorage.addExposeMetadata({
21015
- target: object instanceof Function ? object : object.constructor,
21016
- propertyName: propertyName,
21017
- options: options
21018
- });
21019
- };
21020
- }
21021
- var ValidationError_ValidationError = function() {
21022
- function ValidationError() {}
21023
- ValidationError.prototype.toString = function(shouldDecorate, hasParent, parentPath, showConstraintMessages) {
21024
- var _this = this;
21025
- if (void 0 === shouldDecorate) shouldDecorate = false;
21026
- if (void 0 === hasParent) hasParent = false;
21027
- if (void 0 === parentPath) parentPath = "";
21028
- if (void 0 === showConstraintMessages) showConstraintMessages = false;
21029
- var boldStart = shouldDecorate ? "\u001B[1m" : "";
21030
- var boldEnd = shouldDecorate ? "\u001B[22m" : "";
21031
- var constraintsToString = function() {
21032
- var _a;
21033
- return (showConstraintMessages ? Object.values : Object.keys)(null != (_a = _this.constraints) ? _a : {}).join(", ");
21034
- };
21035
- var propConstraintFailed = function(propertyName) {
21036
- return " - property ".concat(boldStart).concat(parentPath).concat(propertyName).concat(boldEnd, " has failed the following constraints: ").concat(boldStart).concat(constraintsToString()).concat(boldEnd, " \n");
21037
- };
21038
- if (!hasParent) return "An instance of ".concat(boldStart).concat(this.target ? this.target.constructor.name : 'an object').concat(boldEnd, " has failed the validation:\n") + (this.constraints ? propConstraintFailed(this.property) : "") + (this.children ? this.children.map(function(childError) {
21039
- return childError.toString(shouldDecorate, true, _this.property, showConstraintMessages);
21040
- }).join("") : "");
21041
- var formattedProperty_1 = Number.isInteger(+this.property) ? "[".concat(this.property, "]") : "".concat(parentPath ? "." : "").concat(this.property);
21042
- if (this.constraints) return propConstraintFailed(formattedProperty_1);
21043
- return this.children ? this.children.map(function(childError) {
21044
- return childError.toString(shouldDecorate, true, "".concat(parentPath).concat(formattedProperty_1), showConstraintMessages);
21045
- }).join("") : "";
21046
- };
21047
- return ValidationError;
21048
- }();
21049
- var ValidationTypes_ValidationTypes = function() {
21050
- function ValidationTypes() {}
21051
- ValidationTypes.isValid = function(type) {
21052
- var _this = this;
21053
- return 'isValid' !== type && 'getMessage' !== type && -1 !== Object.keys(this).map(function(key) {
21054
- return _this[key];
21055
- }).indexOf(type);
21056
- };
21057
- ValidationTypes.CUSTOM_VALIDATION = 'customValidation';
21058
- ValidationTypes.NESTED_VALIDATION = 'nestedValidation';
21059
- ValidationTypes.PROMISE_VALIDATION = 'promiseValidation';
21060
- ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation';
21061
- ValidationTypes.WHITELIST = 'whitelistValidation';
21062
- ValidationTypes.IS_DEFINED = 'isDefined';
21063
- return ValidationTypes;
21064
- }();
21065
- function constraintToString(constraint) {
21066
- if (Array.isArray(constraint)) return constraint.join(', ');
21067
- if ('symbol' == typeof constraint) constraint = constraint.description;
21068
- return "".concat(constraint);
21069
- }
21070
- var ValidationUtils_ValidationUtils = function() {
21071
- function ValidationUtils() {}
21072
- ValidationUtils.replaceMessageSpecialTokens = function(message, validationArguments) {
21073
- var messageString;
21074
- if (message instanceof Function) messageString = message(validationArguments);
21075
- else if ('string' == typeof message) messageString = message;
21076
- if (messageString && Array.isArray(validationArguments.constraints)) validationArguments.constraints.forEach(function(constraint, index) {
21077
- messageString = messageString.replace(new RegExp("\\$constraint".concat(index + 1), 'g'), constraintToString(constraint));
21078
- });
21079
- if (messageString && void 0 !== validationArguments.value && null !== validationArguments.value && [
21080
- 'string',
21081
- 'boolean',
21082
- 'number'
21083
- ].includes(typeof validationArguments.value)) messageString = messageString.replace(/\$value/g, validationArguments.value);
21084
- if (messageString) messageString = messageString.replace(/\$property/g, validationArguments.property);
21085
- if (messageString) messageString = messageString.replace(/\$target/g, validationArguments.targetName);
21086
- return messageString;
21087
- };
21088
- return ValidationUtils;
21089
- }();
21090
- function is_promise_util_isPromise(p) {
21091
- return null !== p && 'object' == typeof p && 'function' == typeof p.then;
21092
- }
21093
- function convertToArray(val) {
21094
- if (val instanceof Map) return Array.from(val.values());
21095
- return Array.isArray(val) ? val : Array.from(val);
21096
- }
21097
- var ValidationMetadata_ValidationMetadata = function() {
21098
- function ValidationMetadata(args) {
21099
- this.groups = [];
21100
- this.each = false;
21101
- this.context = void 0;
21102
- this.type = args.type;
21103
- this.name = args.name;
21104
- this.target = args.target;
21105
- this.propertyName = args.propertyName;
21106
- this.constraints = null == args ? void 0 : args.constraints;
21107
- this.constraintCls = args.constraintCls;
21108
- this.validationTypeOptions = args.validationTypeOptions;
21109
- if (args.validationOptions) {
21110
- this.message = args.validationOptions.message;
21111
- this.groups = args.validationOptions.groups;
21112
- this.always = args.validationOptions.always;
21113
- this.each = args.validationOptions.each;
21114
- this.context = args.validationOptions.context;
21310
+ });
21311
+ if (void 0 !== this.options.version) keys = keys.filter(function(key) {
21312
+ var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
21313
+ if (!exposeMetadata || !exposeMetadata.options) return true;
21314
+ return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);
21315
+ });
21316
+ keys = this.options.groups && this.options.groups.length ? keys.filter(function(key) {
21317
+ var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
21318
+ if (!exposeMetadata || !exposeMetadata.options) return true;
21319
+ return _this.checkGroups(exposeMetadata.options.groups);
21320
+ }) : keys.filter(function(key) {
21321
+ var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);
21322
+ return !exposeMetadata || !exposeMetadata.options || !exposeMetadata.options.groups || !exposeMetadata.options.groups.length;
21323
+ });
21115
21324
  }
21116
- }
21117
- return ValidationMetadata;
21118
- }();
21119
- var ValidationSchemaToMetadataTransformer_ValidationSchemaToMetadataTransformer = function() {
21120
- function ValidationSchemaToMetadataTransformer() {}
21121
- ValidationSchemaToMetadataTransformer.prototype.transform = function(schema) {
21122
- var metadatas = [];
21123
- Object.keys(schema.properties).forEach(function(property) {
21124
- schema.properties[property].forEach(function(validation) {
21125
- var validationOptions = {
21126
- message: validation.message,
21127
- groups: validation.groups,
21128
- always: validation.always,
21129
- each: validation.each
21130
- };
21131
- var args = {
21132
- type: validation.type,
21133
- name: validation.name,
21134
- target: schema.name,
21135
- propertyName: property,
21136
- constraints: validation.constraints,
21137
- validationTypeOptions: validation.options,
21138
- validationOptions: validationOptions
21139
- };
21140
- metadatas.push(new ValidationMetadata_ValidationMetadata(args));
21325
+ if (this.options.excludePrefixes && this.options.excludePrefixes.length) keys = keys.filter(function(key) {
21326
+ return _this.options.excludePrefixes.every(function(prefix) {
21327
+ return key.substr(0, prefix.length) !== prefix;
21141
21328
  });
21142
21329
  });
21143
- return metadatas;
21330
+ keys = keys.filter(function(key, index, self1) {
21331
+ return self1.indexOf(key) === index;
21332
+ });
21333
+ return keys;
21144
21334
  };
21145
- return ValidationSchemaToMetadataTransformer;
21146
- }();
21147
- function get_global_util_getGlobal() {
21148
- if ('undefined' != typeof globalThis) return globalThis;
21149
- if (void 0 !== __webpack_require__.g) return __webpack_require__.g;
21150
- if ('undefined' != typeof window) return window;
21151
- if ('undefined' != typeof self) return self;
21152
- }
21153
- var __values = function(o) {
21154
- var s = "function" == typeof Symbol && Symbol.iterator, m = s && o[s], i = 0;
21155
- if (m) return m.call(o);
21156
- if (o && "number" == typeof o.length) return {
21157
- next: function() {
21158
- if (o && i >= o.length) o = void 0;
21159
- return {
21160
- value: o && o[i++],
21161
- done: !o
21162
- };
21163
- }
21335
+ TransformOperationExecutor.prototype.checkVersion = function(since, until) {
21336
+ var decision = true;
21337
+ if (decision && since) decision = this.options.version >= since;
21338
+ if (decision && until) decision = this.options.version < until;
21339
+ return decision;
21164
21340
  };
21165
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
21166
- };
21167
- var __read = function(o, n) {
21168
- var m = "function" == typeof Symbol && o[Symbol.iterator];
21169
- if (!m) return o;
21170
- var i = m.call(o), r, ar = [], e;
21171
- try {
21172
- while((void 0 === n || n-- > 0) && !(r = i.next()).done)ar.push(r.value);
21173
- } catch (error) {
21174
- e = {
21175
- error: error
21176
- };
21177
- } finally{
21178
- try {
21179
- if (r && !r.done && (m = i["return"])) m.call(i);
21180
- } finally{
21181
- if (e) throw e.error;
21182
- }
21183
- }
21184
- return ar;
21341
+ TransformOperationExecutor.prototype.checkGroups = function(groups) {
21342
+ if (!groups) return true;
21343
+ return this.options.groups.some(function(optionGroup) {
21344
+ return groups.includes(optionGroup);
21345
+ });
21346
+ };
21347
+ return TransformOperationExecutor;
21348
+ }();
21349
+ var default_options_constant_defaultOptions = {
21350
+ enableCircularCheck: false,
21351
+ enableImplicitConversion: false,
21352
+ excludeExtraneousValues: false,
21353
+ excludePrefixes: void 0,
21354
+ exposeDefaultValues: false,
21355
+ exposeUnsetFields: true,
21356
+ groups: void 0,
21357
+ ignoreDecorators: false,
21358
+ strategy: void 0,
21359
+ targetMaps: void 0,
21360
+ version: void 0
21185
21361
  };
21186
- var MetadataStorage_spreadArray = function(to, from, pack) {
21187
- if (pack || 2 === arguments.length) {
21188
- for(var i = 0, l = from.length, ar; i < l; i++)if (ar || !(i in from)) {
21189
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21190
- ar[i] = from[i];
21362
+ var __assign = function() {
21363
+ __assign = Object.assign || function(t) {
21364
+ for(var s, i = 1, n = arguments.length; i < n; i++){
21365
+ s = arguments[i];
21366
+ for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
21191
21367
  }
21192
- }
21193
- return to.concat(ar || Array.prototype.slice.call(from));
21368
+ return t;
21369
+ };
21370
+ return __assign.apply(this, arguments);
21194
21371
  };
21195
- var metadata_MetadataStorage_MetadataStorage = function() {
21196
- function MetadataStorage() {
21197
- this.validationMetadatas = new Map();
21198
- this.constraintMetadatas = new Map();
21199
- }
21200
- Object.defineProperty(MetadataStorage.prototype, "hasValidationMetaData", {
21201
- get: function() {
21202
- return !!this.validationMetadatas.size;
21203
- },
21204
- enumerable: false,
21205
- configurable: true
21206
- });
21207
- MetadataStorage.prototype.addValidationSchema = function(schema) {
21208
- var _this = this;
21209
- var validationMetadatas = new ValidationSchemaToMetadataTransformer_ValidationSchemaToMetadataTransformer().transform(schema);
21210
- validationMetadatas.forEach(function(validationMetadata) {
21211
- return _this.addValidationMetadata(validationMetadata);
21212
- });
21372
+ var ClassTransformer_ClassTransformer = function() {
21373
+ function ClassTransformer() {}
21374
+ ClassTransformer.prototype.instanceToPlain = function(object, options) {
21375
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, default_options_constant_defaultOptions), options));
21376
+ return executor.transform(void 0, object, void 0, void 0, void 0, void 0);
21213
21377
  };
21214
- MetadataStorage.prototype.addValidationMetadata = function(metadata) {
21215
- var existingMetadata = this.validationMetadatas.get(metadata.target);
21216
- if (existingMetadata) existingMetadata.push(metadata);
21217
- else this.validationMetadatas.set(metadata.target, [
21218
- metadata
21219
- ]);
21378
+ ClassTransformer.prototype.classToPlainFromExist = function(object, plainObject, options) {
21379
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, default_options_constant_defaultOptions), options));
21380
+ return executor.transform(plainObject, object, void 0, void 0, void 0, void 0);
21220
21381
  };
21221
- MetadataStorage.prototype.addConstraintMetadata = function(metadata) {
21222
- var existingMetadata = this.constraintMetadatas.get(metadata.target);
21223
- if (existingMetadata) existingMetadata.push(metadata);
21224
- else this.constraintMetadatas.set(metadata.target, [
21225
- metadata
21226
- ]);
21382
+ ClassTransformer.prototype.plainToInstance = function(cls, plain, options) {
21383
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
21384
+ return executor.transform(void 0, plain, cls, void 0, void 0, void 0);
21227
21385
  };
21228
- MetadataStorage.prototype.groupByPropertyName = function(metadata) {
21229
- var grouped = {};
21230
- metadata.forEach(function(metadata) {
21231
- if (!grouped[metadata.propertyName]) grouped[metadata.propertyName] = [];
21232
- grouped[metadata.propertyName].push(metadata);
21233
- });
21234
- return grouped;
21386
+ ClassTransformer.prototype.plainToClassFromExist = function(clsObject, plain, options) {
21387
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
21388
+ return executor.transform(clsObject, plain, void 0, void 0, void 0, void 0);
21235
21389
  };
21236
- MetadataStorage.prototype.getTargetValidationMetadatas = function(targetConstructor, targetSchema, always, strictGroups, groups) {
21237
- var e_1, _a;
21238
- var includeMetadataBecauseOfAlwaysOption = function(metadata) {
21239
- if (void 0 !== metadata.always) return metadata.always;
21240
- if (metadata.groups && metadata.groups.length) return false;
21241
- return always;
21242
- };
21243
- var excludeMetadataBecauseOfStrictGroupsOption = function(metadata) {
21244
- if (strictGroups) {
21245
- if (!groups || !groups.length) {
21246
- if (metadata.groups && metadata.groups.length) return true;
21247
- }
21248
- }
21249
- return false;
21250
- };
21251
- var filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];
21252
- var originalMetadatas = filteredForOriginalMetadatasSearch.filter(function(metadata) {
21253
- if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;
21254
- if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
21255
- if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
21256
- if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
21257
- return -1 !== groups.indexOf(group);
21258
- });
21259
- return true;
21260
- });
21261
- var filteredForInheritedMetadatasSearch = [];
21262
- try {
21263
- for(var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()){
21264
- var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
21265
- if (targetConstructor.prototype instanceof key) filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, MetadataStorage_spreadArray([], __read(value), false));
21266
- }
21267
- } catch (e_1_1) {
21268
- e_1 = {
21269
- error: e_1_1
21270
- };
21271
- } finally{
21272
- try {
21273
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
21274
- } finally{
21275
- if (e_1) throw e_1.error;
21276
- }
21277
- }
21278
- var inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function(metadata) {
21279
- if ('string' == typeof metadata.target) return false;
21280
- if (metadata.target === targetConstructor) return false;
21281
- if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) return false;
21282
- if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
21283
- if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
21284
- if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
21285
- return -1 !== groups.indexOf(group);
21286
- });
21287
- return true;
21288
- });
21289
- var uniqueInheritedMetadatas = inheritedMetadatas.filter(function(inheritedMetadata) {
21290
- return !originalMetadatas.find(function(originalMetadata) {
21291
- return originalMetadata.propertyName === inheritedMetadata.propertyName && originalMetadata.type === inheritedMetadata.type;
21292
- });
21390
+ ClassTransformer.prototype.instanceToInstance = function(object, options) {
21391
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
21392
+ return executor.transform(void 0, object, void 0, void 0, void 0, void 0);
21393
+ };
21394
+ ClassTransformer.prototype.classToClassFromExist = function(object, fromObject, options) {
21395
+ var executor = new TransformOperationExecutor_TransformOperationExecutor(transformation_type_enum_TransformationType.CLASS_TO_CLASS, __assign(__assign({}, default_options_constant_defaultOptions), options));
21396
+ return executor.transform(fromObject, object, void 0, void 0, void 0, void 0);
21397
+ };
21398
+ ClassTransformer.prototype.serialize = function(object, options) {
21399
+ return JSON.stringify(this.instanceToPlain(object, options));
21400
+ };
21401
+ ClassTransformer.prototype.deserialize = function(cls, json, options) {
21402
+ var jsonObject = JSON.parse(json);
21403
+ return this.plainToInstance(cls, jsonObject, options);
21404
+ };
21405
+ ClassTransformer.prototype.deserializeArray = function(cls, json, options) {
21406
+ var jsonObject = JSON.parse(json);
21407
+ return this.plainToInstance(cls, jsonObject, options);
21408
+ };
21409
+ return ClassTransformer;
21410
+ }();
21411
+ var classTransformer = new ClassTransformer_ClassTransformer();
21412
+ function plainToInstance(cls, plain, options) {
21413
+ return classTransformer.plainToInstance(cls, plain, options);
21414
+ }
21415
+ function Expose(options) {
21416
+ if (void 0 === options) options = {};
21417
+ return function(object, propertyName) {
21418
+ defaultMetadataStorage.addExposeMetadata({
21419
+ target: object instanceof Function ? object : object.constructor,
21420
+ propertyName: propertyName,
21421
+ options: options
21293
21422
  });
21294
- return originalMetadatas.concat(uniqueInheritedMetadatas);
21295
21423
  };
21296
- MetadataStorage.prototype.getTargetValidatorConstraints = function(target) {
21297
- return this.constraintMetadatas.get(target) || [];
21424
+ }
21425
+ var ValidationError_ValidationError = function() {
21426
+ function ValidationError() {}
21427
+ ValidationError.prototype.toString = function(shouldDecorate, hasParent, parentPath, showConstraintMessages) {
21428
+ var _this = this;
21429
+ if (void 0 === shouldDecorate) shouldDecorate = false;
21430
+ if (void 0 === hasParent) hasParent = false;
21431
+ if (void 0 === parentPath) parentPath = "";
21432
+ if (void 0 === showConstraintMessages) showConstraintMessages = false;
21433
+ var boldStart = shouldDecorate ? "\u001B[1m" : "";
21434
+ var boldEnd = shouldDecorate ? "\u001B[22m" : "";
21435
+ var constraintsToString = function() {
21436
+ var _a;
21437
+ return (showConstraintMessages ? Object.values : Object.keys)(null != (_a = _this.constraints) ? _a : {}).join(", ");
21438
+ };
21439
+ var propConstraintFailed = function(propertyName) {
21440
+ return " - property ".concat(boldStart).concat(parentPath).concat(propertyName).concat(boldEnd, " has failed the following constraints: ").concat(boldStart).concat(constraintsToString()).concat(boldEnd, " \n");
21441
+ };
21442
+ if (!hasParent) return "An instance of ".concat(boldStart).concat(this.target ? this.target.constructor.name : 'an object').concat(boldEnd, " has failed the validation:\n") + (this.constraints ? propConstraintFailed(this.property) : "") + (this.children ? this.children.map(function(childError) {
21443
+ return childError.toString(shouldDecorate, true, _this.property, showConstraintMessages);
21444
+ }).join("") : "");
21445
+ var formattedProperty_1 = Number.isInteger(+this.property) ? "[".concat(this.property, "]") : "".concat(parentPath ? "." : "").concat(this.property);
21446
+ if (this.constraints) return propConstraintFailed(formattedProperty_1);
21447
+ return this.children ? this.children.map(function(childError) {
21448
+ return childError.toString(shouldDecorate, true, "".concat(parentPath).concat(formattedProperty_1), showConstraintMessages);
21449
+ }).join("") : "";
21298
21450
  };
21299
- return MetadataStorage;
21451
+ return ValidationError;
21300
21452
  }();
21301
- function MetadataStorage_getMetadataStorage() {
21302
- var global = get_global_util_getGlobal();
21303
- if (!global.classValidatorMetadataStorage) global.classValidatorMetadataStorage = new metadata_MetadataStorage_MetadataStorage();
21304
- return global.classValidatorMetadataStorage;
21453
+ function constraintToString(constraint) {
21454
+ if (Array.isArray(constraint)) return constraint.join(', ');
21455
+ if ('symbol' == typeof constraint) constraint = constraint.description;
21456
+ return "".concat(constraint);
21457
+ }
21458
+ var ValidationUtils_ValidationUtils = function() {
21459
+ function ValidationUtils() {}
21460
+ ValidationUtils.replaceMessageSpecialTokens = function(message, validationArguments) {
21461
+ var messageString;
21462
+ if (message instanceof Function) messageString = message(validationArguments);
21463
+ else if ('string' == typeof message) messageString = message;
21464
+ if (messageString && Array.isArray(validationArguments.constraints)) validationArguments.constraints.forEach(function(constraint, index) {
21465
+ messageString = messageString.replace(new RegExp("\\$constraint".concat(index + 1), 'g'), constraintToString(constraint));
21466
+ });
21467
+ if (messageString && void 0 !== validationArguments.value && null !== validationArguments.value && [
21468
+ 'string',
21469
+ 'boolean',
21470
+ 'number'
21471
+ ].includes(typeof validationArguments.value)) messageString = messageString.replace(/\$value/g, validationArguments.value);
21472
+ if (messageString) messageString = messageString.replace(/\$property/g, validationArguments.property);
21473
+ if (messageString) messageString = messageString.replace(/\$target/g, validationArguments.targetName);
21474
+ return messageString;
21475
+ };
21476
+ return ValidationUtils;
21477
+ }();
21478
+ function is_promise_util_isPromise(p) {
21479
+ return null !== p && 'object' == typeof p && 'function' == typeof p.then;
21480
+ }
21481
+ function convertToArray(val) {
21482
+ if (val instanceof Map) return Array.from(val.values());
21483
+ return Array.isArray(val) ? val : Array.from(val);
21305
21484
  }
21306
21485
  var ValidationExecutor_read = function(o, n) {
21307
21486
  var m = "function" == typeof Symbol && o[Symbol.iterator];
@@ -21741,107 +21920,10 @@ and limitations under the License.
21741
21920
  };
21742
21921
  return Validator;
21743
21922
  }();
21744
- var defaultContainer = new (function() {
21745
- function class_1() {
21746
- this.instances = [];
21747
- }
21748
- class_1.prototype.get = function(someClass) {
21749
- var instance = this.instances.find(function(instance) {
21750
- return instance.type === someClass;
21751
- });
21752
- if (!instance) {
21753
- instance = {
21754
- type: someClass,
21755
- object: new someClass()
21756
- };
21757
- this.instances.push(instance);
21758
- }
21759
- return instance.object;
21760
- };
21761
- return class_1;
21762
- }())();
21763
- var userContainer;
21764
- var userContainerOptions;
21765
- function container_getFromContainer(someClass) {
21766
- if (userContainer) try {
21767
- var instance = userContainer.get(someClass);
21768
- if (instance) return instance;
21769
- if (!userContainerOptions || !userContainerOptions.fallback) return instance;
21770
- } catch (error) {
21771
- if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;
21772
- }
21773
- return defaultContainer.get(someClass);
21774
- }
21775
21923
  function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {
21776
21924
  if ('string' == typeof schemaNameOrObject) return container_getFromContainer(Validator_Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);
21777
21925
  return container_getFromContainer(Validator_Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions);
21778
21926
  }
21779
- var ConstraintMetadata_ConstraintMetadata = function() {
21780
- function ConstraintMetadata(target, name, async) {
21781
- if (void 0 === async) async = false;
21782
- this.target = target;
21783
- this.name = name;
21784
- this.async = async;
21785
- }
21786
- Object.defineProperty(ConstraintMetadata.prototype, "instance", {
21787
- get: function() {
21788
- return container_getFromContainer(this.target);
21789
- },
21790
- enumerable: false,
21791
- configurable: true
21792
- });
21793
- return ConstraintMetadata;
21794
- }();
21795
- function registerDecorator(options) {
21796
- var constraintCls;
21797
- if (options.validator instanceof Function) {
21798
- constraintCls = options.validator;
21799
- var constraintClasses = container_getFromContainer(metadata_MetadataStorage_MetadataStorage).getTargetValidatorConstraints(options.validator);
21800
- if (constraintClasses.length > 1) throw "More than one implementation of ValidatorConstraintInterface found for validator on: ".concat(options.target.name, ":").concat(options.propertyName);
21801
- } else {
21802
- var validator_1 = options.validator;
21803
- constraintCls = function() {
21804
- function CustomConstraint() {}
21805
- CustomConstraint.prototype.validate = function(value, validationArguments) {
21806
- return validator_1.validate(value, validationArguments);
21807
- };
21808
- CustomConstraint.prototype.defaultMessage = function(validationArguments) {
21809
- if (validator_1.defaultMessage) return validator_1.defaultMessage(validationArguments);
21810
- return '';
21811
- };
21812
- return CustomConstraint;
21813
- }();
21814
- MetadataStorage_getMetadataStorage().addConstraintMetadata(new ConstraintMetadata_ConstraintMetadata(constraintCls, options.name, options.async));
21815
- }
21816
- var validationMetadataArgs = {
21817
- type: options.name && ValidationTypes_ValidationTypes.isValid(options.name) ? options.name : ValidationTypes_ValidationTypes.CUSTOM_VALIDATION,
21818
- name: options.name,
21819
- target: options.target,
21820
- propertyName: options.propertyName,
21821
- validationOptions: options.options,
21822
- constraintCls: constraintCls,
21823
- constraints: options.constraints
21824
- };
21825
- MetadataStorage_getMetadataStorage().addValidationMetadata(new ValidationMetadata_ValidationMetadata(validationMetadataArgs));
21826
- }
21827
- function buildMessage(impl, validationOptions) {
21828
- return function(validationArguments) {
21829
- var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';
21830
- return impl(eachPrefix, validationArguments);
21831
- };
21832
- }
21833
- function ValidateBy(options, validationOptions) {
21834
- return function(object, propertyName) {
21835
- registerDecorator({
21836
- name: options.name,
21837
- target: object.constructor,
21838
- propertyName: propertyName,
21839
- options: validationOptions,
21840
- constraints: options.constraints,
21841
- validator: options.validator
21842
- });
21843
- };
21844
- }
21845
21927
  var isEmail = __webpack_require__("../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isEmail.js");
21846
21928
  var isEmail_default = /*#__PURE__*/ __webpack_require__.n(isEmail);
21847
21929
  var IS_EMAIL = 'isEmail';
@@ -21849,7 +21931,7 @@ and limitations under the License.
21849
21931
  return 'string' == typeof value && isEmail_default()(value, options);
21850
21932
  }
21851
21933
  function IsEmail(options, validationOptions) {
21852
- return ValidateBy({
21934
+ return ValidateBy_ValidateBy({
21853
21935
  name: IS_EMAIL,
21854
21936
  constraints: [
21855
21937
  options
@@ -21858,41 +21940,24 @@ and limitations under the License.
21858
21940
  validate: function(value, args) {
21859
21941
  return IsEmail_isEmail(value, null == args ? void 0 : args.constraints[0]);
21860
21942
  },
21861
- defaultMessage: buildMessage(function(eachPrefix) {
21943
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
21862
21944
  return eachPrefix + '$property must be an email';
21863
21945
  }, validationOptions)
21864
21946
  }
21865
21947
  }, validationOptions);
21866
21948
  }
21867
- var IS_STRING = 'isString';
21868
- function isString(value) {
21869
- return value instanceof String || 'string' == typeof value;
21870
- }
21871
- function IsString(validationOptions) {
21872
- return ValidateBy({
21873
- name: IS_STRING,
21874
- validator: {
21875
- validate: function(value, args) {
21876
- return isString(value);
21877
- },
21878
- defaultMessage: buildMessage(function(eachPrefix) {
21879
- return eachPrefix + '$property must be a string';
21880
- }, validationOptions)
21881
- }
21882
- }, validationOptions);
21883
- }
21884
21949
  var IS_NOT_EMPTY = 'isNotEmpty';
21885
21950
  function isNotEmpty(value) {
21886
21951
  return '' !== value && null != value;
21887
21952
  }
21888
21953
  function IsNotEmpty(validationOptions) {
21889
- return ValidateBy({
21954
+ return ValidateBy_ValidateBy({
21890
21955
  name: IS_NOT_EMPTY,
21891
21956
  validator: {
21892
21957
  validate: function(value, args) {
21893
21958
  return isNotEmpty(value);
21894
21959
  },
21895
- defaultMessage: buildMessage(function(eachPrefix) {
21960
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
21896
21961
  return eachPrefix + '$property should not be empty';
21897
21962
  }, validationOptions)
21898
21963
  }
@@ -21903,7 +21968,7 @@ and limitations under the License.
21903
21968
  return 'number' == typeof num && 'number' == typeof min && num >= min;
21904
21969
  }
21905
21970
  function Min(minValue, validationOptions) {
21906
- return ValidateBy({
21971
+ return ValidateBy_ValidateBy({
21907
21972
  name: Min_MIN,
21908
21973
  constraints: [
21909
21974
  minValue
@@ -21912,7 +21977,7 @@ and limitations under the License.
21912
21977
  validate: function(value, args) {
21913
21978
  return Min_min(value, null == args ? void 0 : args.constraints[0]);
21914
21979
  },
21915
- defaultMessage: buildMessage(function(eachPrefix) {
21980
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
21916
21981
  return eachPrefix + '$property must not be less than $constraint1';
21917
21982
  }, validationOptions)
21918
21983
  }
@@ -21933,7 +21998,7 @@ and limitations under the License.
21933
21998
  }
21934
21999
  function IsNumber(options, validationOptions) {
21935
22000
  if (void 0 === options) options = {};
21936
- return ValidateBy({
22001
+ return ValidateBy_ValidateBy({
21937
22002
  name: IS_NUMBER,
21938
22003
  constraints: [
21939
22004
  options
@@ -21942,7 +22007,7 @@ and limitations under the License.
21942
22007
  validate: function(value, args) {
21943
22008
  return isNumber(value, null == args ? void 0 : args.constraints[0]);
21944
22009
  },
21945
- defaultMessage: buildMessage(function(eachPrefix) {
22010
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
21946
22011
  return eachPrefix + '$property must be a number conforming to the specified constraints';
21947
22012
  }, validationOptions)
21948
22013
  }
@@ -21985,7 +22050,7 @@ and limitations under the License.
21985
22050
  });
21986
22051
  }
21987
22052
  function IsEnum(entity, validationOptions) {
21988
- return ValidateBy({
22053
+ return ValidateBy_ValidateBy({
21989
22054
  name: IS_ENUM,
21990
22055
  constraints: [
21991
22056
  entity,
@@ -21995,7 +22060,7 @@ and limitations under the License.
21995
22060
  validate: function(value, args) {
21996
22061
  return isEnum(value, null == args ? void 0 : args.constraints[0]);
21997
22062
  },
21998
- defaultMessage: buildMessage(function(eachPrefix) {
22063
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
21999
22064
  return eachPrefix + '$property must be one of the following values: $constraint2';
22000
22065
  }, validationOptions)
22001
22066
  }
@@ -22006,7 +22071,7 @@ and limitations under the License.
22006
22071
  return 'number' == typeof num && 'number' == typeof max && num <= max;
22007
22072
  }
22008
22073
  function Max(maxValue, validationOptions) {
22009
- return ValidateBy({
22074
+ return ValidateBy_ValidateBy({
22010
22075
  name: Max_MAX,
22011
22076
  constraints: [
22012
22077
  maxValue
@@ -22015,7 +22080,7 @@ and limitations under the License.
22015
22080
  validate: function(value, args) {
22016
22081
  return Max_max(value, null == args ? void 0 : args.constraints[0]);
22017
22082
  },
22018
- defaultMessage: buildMessage(function(eachPrefix) {
22083
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
22019
22084
  return eachPrefix + '$property must not be greater than $constraint1';
22020
22085
  }, validationOptions)
22021
22086
  }
@@ -22026,13 +22091,13 @@ and limitations under the License.
22026
22091
  return value instanceof Date && !isNaN(value.getTime());
22027
22092
  }
22028
22093
  function IsDate(validationOptions) {
22029
- return ValidateBy({
22094
+ return ValidateBy_ValidateBy({
22030
22095
  name: IS_DATE,
22031
22096
  validator: {
22032
22097
  validate: function(value, args) {
22033
22098
  return isDate(value);
22034
22099
  },
22035
- defaultMessage: buildMessage(function(eachPrefix) {
22100
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
22036
22101
  return eachPrefix + '$property must be a Date instance';
22037
22102
  }, validationOptions)
22038
22103
  }
@@ -22043,13 +22108,13 @@ and limitations under the License.
22043
22108
  return 'number' == typeof val && Number.isInteger(val);
22044
22109
  }
22045
22110
  function IsInt(validationOptions) {
22046
- return ValidateBy({
22111
+ return ValidateBy_ValidateBy({
22047
22112
  name: IS_INT,
22048
22113
  validator: {
22049
22114
  validate: function(value, args) {
22050
22115
  return isInt(value);
22051
22116
  },
22052
- defaultMessage: buildMessage(function(eachPrefix) {
22117
+ defaultMessage: ValidateBy_buildMessage(function(eachPrefix) {
22053
22118
  return eachPrefix + '$property must be an integer number';
22054
22119
  }, validationOptions)
22055
22120
  }
@@ -23220,6 +23285,7 @@ and limitations under the License.
23220
23285
  const def = new UniDM();
23221
23286
  if (void 0 === this.options.dmid || true === this.options.dmid) this.options.dmid = createDMID;
23222
23287
  this.content = String(this.content);
23288
+ this.ctime = UniDM.transCtime(this.ctime);
23223
23289
  if (!this.SOID) this.SOID = def.SOID;
23224
23290
  if (!this.progress) this.progress = def.progress;
23225
23291
  if (!this.mode) this.mode = def.mode;
@@ -24108,11 +24174,95 @@ and limitations under the License.
24108
24174
  minify() {
24109
24175
  return this.dans.map((d)=>d.minify());
24110
24176
  }
24177
+ static import(file, options) {
24178
+ const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
24179
+ const parseJSON = (json)=>{
24180
+ try {
24181
+ if (Array.isArray(json) && json.every((d)=>d.SOID)) return {
24182
+ pool: new UniPool(json, options),
24183
+ fmt: 'danuni.json'
24184
+ };
24185
+ if (json.danmuku && json.danmuku.every((d)=>d.text)) return {
24186
+ pool: this.fromArtplayer(json, json.danuni?.data ?? '', void 0, options),
24187
+ fmt: 'artplayer.json'
24188
+ };
24189
+ if (json.count && json.comments && json.comments.every((d)=>d.m)) return {
24190
+ pool: this.fromDDPlay(json, json.danuni?.data ?? '', options),
24191
+ fmt: 'ddplay.json'
24192
+ };
24193
+ else if (json?.code == 0 && json.data && json.data.every((d)=>Array.isArray(d))) return {
24194
+ pool: this.fromDplayer(json, json.danuni?.data ?? '', void 0, options),
24195
+ fmt: 'dplayer.json'
24196
+ };
24197
+ } catch {}
24198
+ };
24199
+ const parseStr = (file)=>{
24200
+ try {
24201
+ if (IsJSON_isJSON(file)) {
24202
+ const json = src_JSON.parse(file);
24203
+ return parseJSON(json);
24204
+ }
24205
+ } catch {}
24206
+ try {
24207
+ const xmlParser = new XMLParser({
24208
+ ignoreAttributes: false
24209
+ });
24210
+ const xml = xmlParser.parse(file);
24211
+ if (xml?.i?.d) return {
24212
+ pool: this.fromBiliXML(file, options),
24213
+ fmt: 'bili.xml'
24214
+ };
24215
+ } catch {}
24216
+ try {
24217
+ return {
24218
+ pool: this.fromASS(file, options),
24219
+ fmt: 'common.ass'
24220
+ };
24221
+ } catch {}
24222
+ };
24223
+ let errmesg;
24224
+ if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
24225
+ try {
24226
+ return {
24227
+ pool: this.fromPb(file),
24228
+ fmt: 'danuni.pb.bin'
24229
+ };
24230
+ } catch {}
24231
+ try {
24232
+ return {
24233
+ pool: this.fromBiliGrpc(file),
24234
+ fmt: 'bili.pb.bin'
24235
+ };
24236
+ } catch {}
24237
+ try {
24238
+ return {
24239
+ pool: this.fromBiliCommandGrpc(file),
24240
+ fmt: 'bili.cmd.pb.bin'
24241
+ };
24242
+ } catch {}
24243
+ try {
24244
+ const fileStr = new TextDecoder().decode(file);
24245
+ const prStr = parseStr(fileStr);
24246
+ if (prStr) return prStr;
24247
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
24248
+ } catch {}
24249
+ } else {
24250
+ const prJSON = parseJSON(file);
24251
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
24252
+ return prJSON;
24253
+ }
24254
+ else if (isString(file)) {
24255
+ const prStr = parseStr(file);
24256
+ if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
24257
+ return prStr;
24258
+ }
24259
+ throw new Error(errmesg ?? err);
24260
+ }
24111
24261
  convert2(format, continue_on_error = false) {
24112
24262
  switch(format){
24113
24263
  case 'danuni.json':
24114
24264
  return this.dans;
24115
- case 'danuni.bin':
24265
+ case 'danuni.pb.bin':
24116
24266
  return this.toPb();
24117
24267
  case 'bili.xml':
24118
24268
  return this.toBiliXML();
@@ -24138,7 +24288,9 @@ and limitations under the License.
24138
24288
  mode: d.mode,
24139
24289
  ctime: timestampDate(d.ctime || timestampNow()),
24140
24290
  pool: d.pool,
24141
- attr: d.attr
24291
+ attr: d.attr,
24292
+ extra: void 0,
24293
+ extraStr: d.extra
24142
24294
  }, options)), options);
24143
24295
  }
24144
24296
  toPb() {
@@ -24245,7 +24397,10 @@ and limitations under the License.
24245
24397
  toDplayer() {
24246
24398
  return {
24247
24399
  code: 0,
24248
- danuni: DanUniConvertTipTemplate,
24400
+ danuni: {
24401
+ ...DanUniConvertTipTemplate,
24402
+ data: this.dans[0].SOID.split('@')[0]
24403
+ },
24249
24404
  data: this.dans.map((dan)=>{
24250
24405
  const d = dan.toDplayer();
24251
24406
  return [
@@ -24271,7 +24426,10 @@ and limitations under the License.
24271
24426
  }
24272
24427
  toArtplayer() {
24273
24428
  return {
24274
- danuni: DanUniConvertTipTemplate,
24429
+ danuni: {
24430
+ ...DanUniConvertTipTemplate,
24431
+ data: this.dans[0].SOID.split('@')[0]
24432
+ },
24275
24433
  danmuku: this.dans.map((dan)=>{
24276
24434
  const d = dan.toArtplayer();
24277
24435
  return {
@@ -24301,8 +24459,12 @@ and limitations under the License.
24301
24459
  });
24302
24460
  }
24303
24461
  toDDplay() {
24462
+ const episodeId = this.dans[0].SOID.split('@')[0].replaceAll(`def_${platform_PlatformDanmakuOnlySource.DanDanPlay}+`, '');
24304
24463
  return {
24305
- danuni: DanUniConvertTipTemplate,
24464
+ danuni: {
24465
+ ...DanUniConvertTipTemplate,
24466
+ data: episodeId
24467
+ },
24306
24468
  count: this.dans.length,
24307
24469
  comments: this.dans.map((dan)=>{
24308
24470
  const d = dan.toDDplay();
@@ -24314,8 +24476,8 @@ and limitations under the License.
24314
24476
  })
24315
24477
  };
24316
24478
  }
24317
- static fromASS(ass) {
24318
- return parseAssRawField(ass);
24479
+ static fromASS(ass, options) {
24480
+ return parseAssRawField(ass, options);
24319
24481
  }
24320
24482
  toASS(canvasCtx, options = {
24321
24483
  substyle: {}
@@ -24400,8 +24562,8 @@ and limitations under the License.
24400
24562
  };
24401
24563
  });
24402
24564
  }
24403
- function DanmakuList2UniPool(d) {
24404
- return new UniPool(d.map((d)=>UniDM.create(d.extra)));
24565
+ function DanmakuList2UniPool(d, options) {
24566
+ return new UniPool(d.map((d)=>UniDM.create(d.extra)), options);
24405
24567
  }
24406
24568
  const lang_assign = (source, ...targets)=>{
24407
24569
  for (const target of targets)for (const key of Object.keys(target))source[key] = target[key];
@@ -24762,10 +24924,10 @@ and limitations under the License.
24762
24924
  }, options.raw);
24763
24925
  return content;
24764
24926
  }
24765
- function parseAssRawField(ass) {
24927
+ function parseAssRawField(ass, options) {
24766
24928
  const raw = deRaw(ass);
24767
24929
  if (!raw) return UniPool.create();
24768
- return DanmakuList2UniPool(raw.list);
24930
+ return DanmakuList2UniPool(raw.list, options);
24769
24931
  }
24770
24932
  const src_JSON_0 = json_bigint_default()({
24771
24933
  useNativeBigInt: true
@@ -25073,11 +25235,95 @@ and limitations under the License.
25073
25235
  minify() {
25074
25236
  return this.dans.map((d)=>d.minify());
25075
25237
  }
25238
+ static import(file, options) {
25239
+ const err = "\u65E0\u6CD5\u8BC6\u522B\u8BE5\u6587\u4EF6\uFF0C\u8BF7\u624B\u52A8\u6307\u5B9A\u683C\u5F0F\uFF01";
25240
+ const parseJSON = (json)=>{
25241
+ try {
25242
+ if (Array.isArray(json) && json.every((d)=>d.SOID)) return {
25243
+ pool: new src_UniPool(json, options),
25244
+ fmt: 'danuni.json'
25245
+ };
25246
+ if (json.danmuku && json.danmuku.every((d)=>d.text)) return {
25247
+ pool: this.fromArtplayer(json, json.danuni?.data ?? '', void 0, options),
25248
+ fmt: 'artplayer.json'
25249
+ };
25250
+ if (json.count && json.comments && json.comments.every((d)=>d.m)) return {
25251
+ pool: this.fromDDPlay(json, json.danuni?.data ?? '', options),
25252
+ fmt: 'ddplay.json'
25253
+ };
25254
+ else if (json?.code == 0 && json.data && json.data.every((d)=>Array.isArray(d))) return {
25255
+ pool: this.fromDplayer(json, json.danuni?.data ?? '', void 0, options),
25256
+ fmt: 'dplayer.json'
25257
+ };
25258
+ } catch {}
25259
+ };
25260
+ const parseStr = (file)=>{
25261
+ try {
25262
+ if (IsJSON_isJSON(file)) {
25263
+ const json = src_JSON_0.parse(file);
25264
+ return parseJSON(json);
25265
+ }
25266
+ } catch {}
25267
+ try {
25268
+ const xmlParser = new XMLParser({
25269
+ ignoreAttributes: false
25270
+ });
25271
+ const xml = xmlParser.parse(file);
25272
+ if (xml?.i?.d) return {
25273
+ pool: this.fromBiliXML(file, options),
25274
+ fmt: 'bili.xml'
25275
+ };
25276
+ } catch {}
25277
+ try {
25278
+ return {
25279
+ pool: this.fromASS(file, options),
25280
+ fmt: 'common.ass'
25281
+ };
25282
+ } catch {}
25283
+ };
25284
+ let errmesg;
25285
+ if (isObject(file)) if (file instanceof ArrayBuffer || file instanceof Uint8Array) {
25286
+ try {
25287
+ return {
25288
+ pool: this.fromPb(file),
25289
+ fmt: 'danuni.pb.bin'
25290
+ };
25291
+ } catch {}
25292
+ try {
25293
+ return {
25294
+ pool: this.fromBiliGrpc(file),
25295
+ fmt: 'bili.pb.bin'
25296
+ };
25297
+ } catch {}
25298
+ try {
25299
+ return {
25300
+ pool: this.fromBiliCommandGrpc(file),
25301
+ fmt: 'bili.cmd.pb.bin'
25302
+ };
25303
+ } catch {}
25304
+ try {
25305
+ const fileStr = new TextDecoder().decode(file);
25306
+ const prStr = parseStr(fileStr);
25307
+ if (prStr) return prStr;
25308
+ errmesg = `${err}(\u{5B9A}\u{4F4D}: bin->string)`;
25309
+ } catch {}
25310
+ } else {
25311
+ const prJSON = parseJSON(file);
25312
+ if (!prJSON) throw new Error(`${err}(\u{5B9A}\u{4F4D}: json)`);
25313
+ return prJSON;
25314
+ }
25315
+ else if (isString(file)) {
25316
+ const prStr = parseStr(file);
25317
+ if (!prStr) throw new Error(`${err}(\u{5B9A}\u{4F4D}: string)`);
25318
+ return prStr;
25319
+ }
25320
+ throw new Error(errmesg ?? err);
25321
+ }
25076
25322
  convert2(format, continue_on_error = false) {
25077
25323
  switch(format){
25078
25324
  case 'danuni.json':
25079
25325
  return this.dans;
25080
- case 'danuni.bin':
25326
+ case 'danuni.pb.bin':
25081
25327
  return this.toPb();
25082
25328
  case 'bili.xml':
25083
25329
  return this.toBiliXML();
@@ -25103,7 +25349,9 @@ and limitations under the License.
25103
25349
  mode: d.mode,
25104
25350
  ctime: timestampDate(d.ctime || timestampNow()),
25105
25351
  pool: d.pool,
25106
- attr: d.attr
25352
+ attr: d.attr,
25353
+ extra: void 0,
25354
+ extraStr: d.extra
25107
25355
  }, options)), options);
25108
25356
  }
25109
25357
  toPb() {
@@ -25210,7 +25458,10 @@ and limitations under the License.
25210
25458
  toDplayer() {
25211
25459
  return {
25212
25460
  code: 0,
25213
- danuni: src_DanUniConvertTipTemplate,
25461
+ danuni: {
25462
+ ...src_DanUniConvertTipTemplate,
25463
+ data: this.dans[0].SOID.split('@')[0]
25464
+ },
25214
25465
  data: this.dans.map((dan)=>{
25215
25466
  const d = dan.toDplayer();
25216
25467
  return [
@@ -25236,7 +25487,10 @@ and limitations under the License.
25236
25487
  }
25237
25488
  toArtplayer() {
25238
25489
  return {
25239
- danuni: src_DanUniConvertTipTemplate,
25490
+ danuni: {
25491
+ ...src_DanUniConvertTipTemplate,
25492
+ data: this.dans[0].SOID.split('@')[0]
25493
+ },
25240
25494
  danmuku: this.dans.map((dan)=>{
25241
25495
  const d = dan.toArtplayer();
25242
25496
  return {
@@ -25266,8 +25520,12 @@ and limitations under the License.
25266
25520
  });
25267
25521
  }
25268
25522
  toDDplay() {
25523
+ const episodeId = this.dans[0].SOID.split('@')[0].replaceAll(`def_${platform_PlatformDanmakuOnlySource.DanDanPlay}+`, '');
25269
25524
  return {
25270
- danuni: src_DanUniConvertTipTemplate,
25525
+ danuni: {
25526
+ ...src_DanUniConvertTipTemplate,
25527
+ data: episodeId
25528
+ },
25271
25529
  count: this.dans.length,
25272
25530
  comments: this.dans.map((dan)=>{
25273
25531
  const d = dan.toDDplay();
@@ -25279,8 +25537,8 @@ and limitations under the License.
25279
25537
  })
25280
25538
  };
25281
25539
  }
25282
- static fromASS(ass) {
25283
- return parseAssRawField(ass);
25540
+ static fromASS(ass, options) {
25541
+ return parseAssRawField(ass, options);
25284
25542
  }
25285
25543
  toASS(canvasCtx, options = {
25286
25544
  substyle: {}