@simpleangularcontrols/sac-common 13.0.0-rc.12 → 13.0.0-rc.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/controls/input/input.d.ts +4 -4
  2. package/controls/input/input.d.ts.map +1 -1
  3. package/controls/input/inputarea.d.ts +6 -6
  4. package/controls/input/inputarea.d.ts.map +1 -1
  5. package/controls/input/inputpassword.d.ts +8 -8
  6. package/controls/input/inputpassword.d.ts.map +1 -1
  7. package/controls/multilanguage/multilanguageinput.d.ts +3 -3
  8. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  9. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
  10. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  11. package/esm2020/controls/input/input.mjs +6 -6
  12. package/esm2020/controls/input/inputarea.mjs +17 -12
  13. package/esm2020/controls/input/inputpassword.mjs +10 -10
  14. package/esm2020/controls/multilanguage/multilanguageinput.mjs +5 -5
  15. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +6 -6
  16. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
  17. package/esm2020/services/sac-localisation.service.mjs +21 -20
  18. package/esm2020/services/sac-validationkey.service.mjs +5 -5
  19. package/esm2020/validation/mintextlength.validator.mjs +5 -0
  20. package/esm2020/validation/mintextlength.validator.ngfactory.mjs +3 -0
  21. package/esm2020/validation/mintextlength.validator.ngsummary.mjs +3 -0
  22. package/esm2020/validation/validation.mjs +68 -63
  23. package/fesm2015/simpleangularcontrols-sac-common.mjs +1099 -1086
  24. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  25. package/fesm2020/simpleangularcontrols-sac-common.mjs +1102 -1089
  26. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  27. package/interfaces/ISacValidationKeyService.d.ts +2 -2
  28. package/interfaces/ISacValidationKeyService.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/services/sac-localisation.service.d.ts +10 -10
  31. package/services/sac-localisation.service.d.ts.map +1 -1
  32. package/services/sac-validationkey.service.d.ts +2 -2
  33. package/services/sac-validationkey.service.d.ts.map +1 -1
  34. package/simpleangularcontrols-sac-common-13.0.0-rc.13.tgz +0 -0
  35. package/validation/mintextlength.validator.d.ts +3 -0
  36. package/validation/mintextlength.validator.d.ts.map +1 -0
  37. package/validation/mintextlength.validator.ngfactory.d.ts +2 -0
  38. package/validation/mintextlength.validator.ngfactory.d.ts.map +1 -0
  39. package/validation/mintextlength.validator.ngsummary.d.ts +2 -0
  40. package/validation/mintextlength.validator.ngsummary.d.ts.map +1 -0
  41. package/validation/validation.d.ts +56 -56
  42. package/validation/validation.d.ts.map +1 -1
  43. package/esm2020/validation/minlength.validator.mjs +0 -3
  44. package/esm2020/validation/minlength.validator.ngfactory.mjs +0 -3
  45. package/esm2020/validation/minlength.validator.ngsummary.mjs +0 -3
  46. package/simpleangularcontrols-sac-common-13.0.0-rc.12.tgz +0 -0
  47. package/validation/minlength.validator.d.ts +0 -3
  48. package/validation/minlength.validator.d.ts.map +0 -1
  49. package/validation/minlength.validator.ngfactory.d.ts +0 -2
  50. package/validation/minlength.validator.ngfactory.d.ts.map +0 -1
  51. package/validation/minlength.validator.ngsummary.d.ts +0 -2
  52. package/validation/minlength.validator.ngsummary.d.ts.map +0 -1
@@ -1,123 +1,128 @@
1
- function cov_2htktrox8d(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs";var hash="cb94a843218a35066202334fa8eea0f0e8911c17";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs",statementMap:{"0":{start:{line:32,column:8},end:{line:32,column:111}},"1":{start:{line:42,column:8},end:{line:42,column:78}},"2":{start:{line:54,column:8},end:{line:54,column:96}},"3":{start:{line:64,column:8},end:{line:64,column:88}},"4":{start:{line:75,column:8},end:{line:75,column:86}},"5":{start:{line:86,column:8},end:{line:86,column:88}},"6":{start:{line:96,column:8},end:{line:96,column:75}},"7":{start:{line:107,column:8},end:{line:107,column:90}},"8":{start:{line:118,column:8},end:{line:118,column:86}},"9":{start:{line:129,column:8},end:{line:129,column:86}},"10":{start:{line:140,column:8},end:{line:140,column:86}},"11":{start:{line:151,column:8},end:{line:151,column:86}},"12":{start:{line:161,column:8},end:{line:161,column:81}},"13":{start:{line:172,column:8},end:{line:172,column:88}},"14":{start:{line:183,column:8},end:{line:183,column:98}},"15":{start:{line:194,column:8},end:{line:194,column:102}},"16":{start:{line:205,column:8},end:{line:205,column:105}},"17":{start:{line:211,column:15},end:{line:211,column:33}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:31,column:4},end:{line:31,column:5}},loc:{start:{line:31,column:138},end:{line:33,column:5}},line:31},"1":{name:"(anonymous_1)",decl:{start:{line:41,column:4},end:{line:41,column:5}},loc:{start:{line:41,column:65},end:{line:43,column:5}},line:41},"2":{name:"(anonymous_2)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:78},end:{line:55,column:5}},line:53},"3":{name:"(anonymous_3)",decl:{start:{line:63,column:4},end:{line:63,column:5}},loc:{start:{line:63,column:75},end:{line:65,column:5}},line:63},"4":{name:"(anonymous_4)",decl:{start:{line:74,column:4},end:{line:74,column:5}},loc:{start:{line:74,column:73},end:{line:76,column:5}},line:74},"5":{name:"(anonymous_5)",decl:{start:{line:85,column:4},end:{line:85,column:5}},loc:{start:{line:85,column:75},end:{line:87,column:5}},line:85},"6":{name:"(anonymous_6)",decl:{start:{line:95,column:4},end:{line:95,column:5}},loc:{start:{line:95,column:62},end:{line:97,column:5}},line:95},"7":{name:"(anonymous_7)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:77},end:{line:108,column:5}},line:106},"8":{name:"(anonymous_8)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:73},end:{line:119,column:5}},line:117},"9":{name:"(anonymous_9)",decl:{start:{line:128,column:4},end:{line:128,column:5}},loc:{start:{line:128,column:73},end:{line:130,column:5}},line:128},"10":{name:"(anonymous_10)",decl:{start:{line:139,column:4},end:{line:139,column:5}},loc:{start:{line:139,column:73},end:{line:141,column:5}},line:139},"11":{name:"(anonymous_11)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:73},end:{line:152,column:5}},line:150},"12":{name:"(anonymous_12)",decl:{start:{line:160,column:4},end:{line:160,column:5}},loc:{start:{line:160,column:68},end:{line:162,column:5}},line:160},"13":{name:"(anonymous_13)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:75},end:{line:173,column:5}},line:171},"14":{name:"(anonymous_14)",decl:{start:{line:182,column:4},end:{line:182,column:5}},loc:{start:{line:182,column:80},end:{line:184,column:5}},line:182},"15":{name:"(anonymous_15)",decl:{start:{line:193,column:4},end:{line:193,column:5}},loc:{start:{line:193,column:89},end:{line:195,column:5}},line:193},"16":{name:"(anonymous_16)",decl:{start:{line:204,column:4},end:{line:204,column:5}},loc:{start:{line:204,column:92},end:{line:206,column:5}},line:204}},branchMap:{"0":{loc:{start:{line:31,column:96},end:{line:31,column:112}},type:"default-arg",locations:[{start:{line:31,column:108},end:{line:31,column:112}}],line:31},"1":{loc:{start:{line:31,column:114},end:{line:31,column:136}},type:"default-arg",locations:[{start:{line:31,column:127},end:{line:31,column:136}}],line:31}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"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",sourcesContent:["import * as moment_ from 'moment';\r\n\r\nimport { ValidatorFn } from '@angular/forms';\r\nimport { LanguageModel } from '../models/languagemodel';\r\nimport { emailValidator } from './email.validator';\r\nimport { equalsValueValidator } from './equals.validator';\r\nimport { isValidDateValidator } from './invaliddate.validator';\r\nimport { maxDateValidator } from './maxdate.validator';\r\nimport { maxTimeValidator } from './maxtime.validator';\r\nimport { maxValueValidator } from './maxvalue.validator';\r\nimport { minDateValidator } from './mindate.validator';\r\nimport { minFilesValidator } from './minfiles.validator';\r\nimport { minLengthValidator } from './minlength.validator';\r\nimport { minTimeValidator } from './mintime.validator';\r\nimport { minValueValidator } from './minvalue.validator';\r\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\r\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\r\nimport { notEqualsValueValidator } from './notequals.validator';\r\nimport { patternValidator } from './pattern.validator';\r\nimport { requiredValidator } from './required.validator';\r\nimport { CreateValidationError } from './validationerrorcreator';\r\n\r\n/**\r\n * Klasse mit Standard Validatoren\r\n */\r\nexport class Validation {\r\n /**\r\n * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerp\xFCfte Item, als auch die ErrorMessage (gem\xE4ss von errorType, FieldName und Parameters).\r\n * @param errorType Typ den Fehler\r\n * @param errorMessageKey Error Message Key\r\n * @param errorMessageValidationSummaryKey Error Message Key f\xFCr Validation Summary\r\n * @param fieldName Label oder Name des Feldes\r\n * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden k\xF6nnen\r\n */\r\n static GetValidationErrorItem(\r\n errorType: string,\r\n errorMessageKey: string,\r\n errorMessageValidationSummaryKey: string,\r\n fieldName: string = null,\r\n parameters: Map<string, any> = new Map<string, any>()\r\n ): any {\r\n return CreateValidationError(\r\n errorType,\r\n errorMessageKey,\r\n errorMessageValidationSummaryKey,\r\n parameters\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Required State\r\n * @param control Control das Validiert wird\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static required(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return requiredValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator validate if value is the requiredValue\r\n * @param requiredValue Value that control should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n\r\n */\r\n public static equals(\r\n requiredValue: any,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return equalsValueValidator(\r\n requiredValue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minValue(\r\n minvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minValueValidator(\r\n minvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static pattern(\r\n pattern: string,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return patternValidator(\r\n pattern,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Max Value\r\n * @param control Control das Validiert werden soll\r\n * @param maxvalue Max. Wert\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxValue(\r\n maxvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxValueValidator(\r\n maxvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert Feld auf E-Mail Adresse\r\n * @param control Control das Valdiert werden soll\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static email(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return emailValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert auf die L\xE4nge des Wertes im Control\r\n * @param control Control das Validiert werden soll\r\n * @param minlength Min. L\xE4nge des Wertes\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minLength(\r\n minlength: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minLengthValidator(\r\n minlength,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum neuer als minDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minDate Min. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minDate(\r\n minDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minDateValidator(\r\n minDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum \xE4lter als maxDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxDate max. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxDate(\r\n maxDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxDateValidator(\r\n maxDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit sp\xE4ter als minTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minTime(\r\n minTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary: string\r\n ): ValidatorFn {\r\n return minTimeValidator(\r\n minTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit fr\xFCher als maxTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxTime(\r\n maxTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxTimeValidator(\r\n maxTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die beim Control angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static isValidDate(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return isValidDateValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr min. Anzahl von Uploads\r\n * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben\r\n * @param minFiles Min. Anzahl Files die hochgeladen werden m\xFCssen\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minFiles(\r\n minFiles: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minFilesValidator(\r\n minFiles,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator validate if value is not the invalidValue\r\n * @param invalidValue Value that control doesn't should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n */\r\n public static notequals(\r\n invalidValue: any,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return notEqualsValueValidator(\r\n invalidValue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequired(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob min. ein Wert erfasst wurde\r\n * @param control Control das Validatiert werden soll\r\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequiredAny(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredAnyValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"cb94a843218a35066202334fa8eea0f0e8911c17"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_2htktrox8d=function(){return actualCoverage;};}return actualCoverage;}cov_2htktrox8d();import*as moment_ from'moment';import{emailValidator}from'./email.validator';import{equalsValueValidator}from'./equals.validator';import{isValidDateValidator}from'./invaliddate.validator';import{maxDateValidator}from'./maxdate.validator';import{maxTimeValidator}from'./maxtime.validator';import{maxValueValidator}from'./maxvalue.validator';import{minDateValidator}from'./mindate.validator';import{minFilesValidator}from'./minfiles.validator';import{minLengthValidator}from'./minlength.validator';import{minTimeValidator}from'./mintime.validator';import{minValueValidator}from'./minvalue.validator';import{multilanguageRequiredValidator}from'./multilanguagerequired.validator';import{multilanguageRequiredAnyValidator}from'./multilanguagerequiredany.validator';import{notEqualsValueValidator}from'./notequals.validator';import{patternValidator}from'./pattern.validator';import{requiredValidator}from'./required.validator';import{CreateValidationError}from'./validationerrorcreator';/**
1
+ function cov_2htktrox8d(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs";var hash="4de13542acdc33aea65f44dc41719c20dbf197fd";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs",statementMap:{"0":{start:{line:23,column:15},end:{line:23,column:33}},"1":{start:{line:40,column:8},end:{line:40,column:111}},"2":{start:{line:50,column:8},end:{line:50,column:75}},"3":{start:{line:62,column:8},end:{line:62,column:96}},"4":{start:{line:72,column:8},end:{line:72,column:81}},"5":{start:{line:83,column:8},end:{line:83,column:86}},"6":{start:{line:94,column:8},end:{line:94,column:86}},"7":{start:{line:105,column:8},end:{line:105,column:88}},"8":{start:{line:116,column:8},end:{line:116,column:86}},"9":{start:{line:127,column:8},end:{line:127,column:88}},"10":{start:{line:138,column:8},end:{line:138,column:98}},"11":{start:{line:149,column:8},end:{line:149,column:86}},"12":{start:{line:159,column:8},end:{line:159,column:88}},"13":{start:{line:170,column:8},end:{line:170,column:102}},"14":{start:{line:181,column:8},end:{line:181,column:105}},"15":{start:{line:192,column:8},end:{line:192,column:98}},"16":{start:{line:203,column:8},end:{line:203,column:86}},"17":{start:{line:213,column:8},end:{line:213,column:78}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:39,column:4},end:{line:39,column:5}},loc:{start:{line:39,column:138},end:{line:41,column:5}},line:39},"1":{name:"(anonymous_1)",decl:{start:{line:49,column:4},end:{line:49,column:5}},loc:{start:{line:49,column:62},end:{line:51,column:5}},line:49},"2":{name:"(anonymous_2)",decl:{start:{line:61,column:4},end:{line:61,column:5}},loc:{start:{line:61,column:78},end:{line:63,column:5}},line:61},"3":{name:"(anonymous_3)",decl:{start:{line:71,column:4},end:{line:71,column:5}},loc:{start:{line:71,column:68},end:{line:73,column:5}},line:71},"4":{name:"(anonymous_4)",decl:{start:{line:82,column:4},end:{line:82,column:5}},loc:{start:{line:82,column:73},end:{line:84,column:5}},line:82},"5":{name:"(anonymous_5)",decl:{start:{line:93,column:4},end:{line:93,column:5}},loc:{start:{line:93,column:73},end:{line:95,column:5}},line:93},"6":{name:"(anonymous_6)",decl:{start:{line:104,column:4},end:{line:104,column:5}},loc:{start:{line:104,column:75},end:{line:106,column:5}},line:104},"7":{name:"(anonymous_7)",decl:{start:{line:115,column:4},end:{line:115,column:5}},loc:{start:{line:115,column:73},end:{line:117,column:5}},line:115},"8":{name:"(anonymous_8)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:75},end:{line:128,column:5}},line:126},"9":{name:"(anonymous_9)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:85},end:{line:139,column:5}},line:137},"10":{name:"(anonymous_10)",decl:{start:{line:148,column:4},end:{line:148,column:5}},loc:{start:{line:148,column:73},end:{line:150,column:5}},line:148},"11":{name:"(anonymous_11)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:75},end:{line:160,column:5}},line:158},"12":{name:"(anonymous_12)",decl:{start:{line:169,column:4},end:{line:169,column:5}},loc:{start:{line:169,column:89},end:{line:171,column:5}},line:169},"13":{name:"(anonymous_13)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:92},end:{line:182,column:5}},line:180},"14":{name:"(anonymous_14)",decl:{start:{line:191,column:4},end:{line:191,column:5}},loc:{start:{line:191,column:80},end:{line:193,column:5}},line:191},"15":{name:"(anonymous_15)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:73},end:{line:204,column:5}},line:202},"16":{name:"(anonymous_16)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:65},end:{line:214,column:5}},line:212}},branchMap:{"0":{loc:{start:{line:39,column:96},end:{line:39,column:112}},type:"default-arg",locations:[{start:{line:39,column:108},end:{line:39,column:112}}],line:39},"1":{loc:{start:{line:39,column:114},end:{line:39,column:136}},type:"default-arg",locations:[{start:{line:39,column:127},end:{line:39,column:136}}],line:39}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"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",sourcesContent:["import { LanguageModel } from '../models/languagemodel';\r\nimport { emailValidator } from './email.validator';\r\nimport { equalsValueValidator } from './equals.validator';\r\nimport { isValidDateValidator } from './invaliddate.validator';\r\nimport { maxDateValidator } from './maxdate.validator';\r\nimport { maxTimeValidator } from './maxtime.validator';\r\nimport { maxValueValidator } from './maxvalue.validator';\r\nimport { minDateValidator } from './mindate.validator';\r\nimport { minFilesValidator } from './minfiles.validator';\r\nimport { minTextLengthValidator } from './mintextlength.validator';\r\nimport { minTimeValidator } from './mintime.validator';\r\nimport { minValueValidator } from './minvalue.validator';\r\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\r\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\r\nimport { notEqualsValueValidator } from './notequals.validator';\r\nimport { patternValidator } from './pattern.validator';\r\nimport { requiredValidator } from './required.validator';\r\nimport { CreateValidationError } from './validationerrorcreator';\r\nimport { ValidatorFn } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\n\r\n// #region Variables\r\n\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n\r\n// #endregion Variables\r\n\r\n// #region Exported Classes\r\n\r\n/**\r\n * Klasse mit Standard Validatoren\r\n */\r\nexport class Validation {\r\n // #region Public Static Methods\r\n\r\n /**\r\n * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerp\xFCfte Item, als auch die ErrorMessage (gem\xE4ss von errorType, FieldName und Parameters).\r\n * @param errorType Typ den Fehler\r\n * @param errorMessageKey Error Message Key\r\n * @param errorMessageValidationSummaryKey Error Message Key f\xFCr Validation Summary\r\n * @param fieldName Label oder Name des Feldes\r\n * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden k\xF6nnen\r\n */\r\n public static GetValidationErrorItem(\r\n errorType: string,\r\n errorMessageKey: string,\r\n errorMessageValidationSummaryKey: string,\r\n fieldName: string = null,\r\n parameters: Map<string, any> = new Map<string, any>()\r\n ): any {\r\n return CreateValidationError(errorType, errorMessageKey, errorMessageValidationSummaryKey, parameters);\r\n }\r\n\r\n /**\r\n * Validiert Feld auf E-Mail Adresse\r\n * @param control Control das Valdiert werden soll\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static email(validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return emailValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator validate if value is the requiredValue\r\n * @param requiredValue Value that control should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n\r\n */\r\n public static equals(requiredValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return equalsValueValidator(requiredValue, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die beim Control angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static isValidDate(validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return isValidDateValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum \xE4lter als maxDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxDate max. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static maxDate(maxDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return maxDateValidator(maxDate, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit fr\xFCher als maxTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static maxTime(maxTime: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return maxTimeValidator(maxTime, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Max Value\r\n * @param control Control das Validiert werden soll\r\n * @param maxvalue Max. Wert\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static maxValue(maxvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return maxValueValidator(maxvalue, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum neuer als minDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minDate Min. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static minDate(minDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return minDateValidator(minDate, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr min. Anzahl von Uploads\r\n * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben\r\n * @param minFiles Min. Anzahl Files die hochgeladen werden m\xFCssen\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static minFiles(minFiles: number, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return minFilesValidator(minFiles, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert auf die L\xE4nge des Wertes im Control\r\n * @param control Control das Validiert werden soll\r\n * @param mintextlength Min. L\xE4nge des Wertes\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static minTextLength(mintextlength: number, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return minTextLengthValidator(mintextlength, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit sp\xE4ter als minTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static minTime(minTime: Date, validationMessage: string, validationMessageSummary: string): ValidatorFn {\r\n return minTimeValidator(minTime, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static minValue(minvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return minValueValidator(minvalue, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static multilanguageRequired(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredValidator(languages, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob min. ein Wert erfasst wurde\r\n * @param control Control das Validatiert werden soll\r\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static multilanguageRequiredAny(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredAnyValidator(languages, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator validate if value is not the invalidValue\r\n * @param invalidValue Value that control doesn't should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n */\r\n public static notequals(invalidValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return notEqualsValueValidator(invalidValue, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static pattern(pattern: string, validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return patternValidator(pattern, validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Required State\r\n * @param control Control das Validiert wird\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n public static required(validationMessage: string, validationMessageSummary): ValidatorFn {\r\n return requiredValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n // #endregion Public Static Methods\r\n}\r\n\r\n// #endregion Exported Classes\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"4de13542acdc33aea65f44dc41719c20dbf197fd"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_2htktrox8d=function(){return actualCoverage;};}return actualCoverage;}cov_2htktrox8d();import{emailValidator}from'./email.validator';import{equalsValueValidator}from'./equals.validator';import{isValidDateValidator}from'./invaliddate.validator';import{maxDateValidator}from'./maxdate.validator';import{maxTimeValidator}from'./maxtime.validator';import{maxValueValidator}from'./maxvalue.validator';import{minDateValidator}from'./mindate.validator';import{minFilesValidator}from'./minfiles.validator';import{minTextLengthValidator}from'./mintextlength.validator';import{minTimeValidator}from'./mintime.validator';import{minValueValidator}from'./minvalue.validator';import{multilanguageRequiredValidator}from'./multilanguagerequired.validator';import{multilanguageRequiredAnyValidator}from'./multilanguagerequiredany.validator';import{notEqualsValueValidator}from'./notequals.validator';import{patternValidator}from'./pattern.validator';import{requiredValidator}from'./required.validator';import{CreateValidationError}from'./validationerrorcreator';import*as moment_ from'moment';// #region Variables
3
+ /**
4
+ * Moment
5
+ */const moment=(cov_2htktrox8d().s[0]++,moment_['default']);// #endregion Variables
6
+ // #region Exported Classes
7
+ /**
3
8
  * Klasse mit Standard Validatoren
4
- */export class Validation{/**
9
+ */export class Validation{// #region Public Static Methods
10
+ /**
5
11
  * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerpüfte Item, als auch die ErrorMessage (gemäss von errorType, FieldName und Parameters).
6
12
  * @param errorType Typ den Fehler
7
13
  * @param errorMessageKey Error Message Key
8
14
  * @param errorMessageValidationSummaryKey Error Message Key für Validation Summary
9
15
  * @param fieldName Label oder Name des Feldes
10
16
  * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden können
11
- */static GetValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey,fieldName=(cov_2htktrox8d().b[0][0]++,null),parameters=(cov_2htktrox8d().b[1][0]++,new Map())){cov_2htktrox8d().f[0]++;cov_2htktrox8d().s[0]++;return CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters);}/**
12
- * Validator für Required State
13
- * @param control Control das Validiert wird
17
+ */static GetValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey,fieldName=(cov_2htktrox8d().b[0][0]++,null),parameters=(cov_2htktrox8d().b[1][0]++,new Map())){cov_2htktrox8d().f[0]++;cov_2htktrox8d().s[1]++;return CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters);}/**
18
+ * Validiert Feld auf E-Mail Adresse
19
+ * @param control Control das Valdiert werden soll
14
20
  * @param fieldName Label des Controls
15
21
  * @param validationMessage Validierungsmeldung die
16
22
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
17
- */static required(validationMessage,validationMessageSummary){cov_2htktrox8d().f[1]++;cov_2htktrox8d().s[1]++;return requiredValidator(validationMessage,validationMessageSummary);}/**
18
- * Validator validate if value is the requiredValue
19
- * @param requiredValue Value that control should have
20
- * @param control Control to be validate
21
- * @param fieldName Label of control
22
- * @param validationMessage validation message near the control
23
- * @param validationMessageSummary validation inside the validation summary
24
-
25
- */static equals(requiredValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[2]++;cov_2htktrox8d().s[2]++;return equalsValueValidator(requiredValue,validationMessage,validationMessageSummary);}/**
23
+ */static email(validationMessage,validationMessageSummary){cov_2htktrox8d().f[1]++;cov_2htktrox8d().s[2]++;return emailValidator(validationMessage,validationMessageSummary);}/**
24
+ * Validator validate if value is the requiredValue
25
+ * @param requiredValue Value that control should have
26
+ * @param control Control to be validate
27
+ * @param fieldName Label of control
28
+ * @param validationMessage validation message near the control
29
+ * @param validationMessageSummary validation inside the validation summary
30
+
31
+ */static equals(requiredValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[2]++;cov_2htktrox8d().s[3]++;return equalsValueValidator(requiredValue,validationMessage,validationMessageSummary);}/**
26
32
  * Validator der prüft ob der Wert ein Datum ist.
27
33
  * @param control Control mit IDateTimeControl Interface implementierung
28
34
  * @param fieldName Label des Controls
29
- * @param validationMessage Validierungsmeldung die
30
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
31
- */static minValue(minvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[3]++;cov_2htktrox8d().s[3]++;return minValueValidator(minvalue,validationMessage,validationMessageSummary);}/**
32
- * Validierung mit einem RegEx Pattern
33
- * @param control Control das validiert werden soll.
34
- * @param pattern RegEx Pattern
35
- * @param fieldName Label des Controls
36
- * @param validationMessage Validierungsmeldung die
35
+ * @param validationMessage Validierungsmeldung die beim Control angezeigt wird
37
36
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
38
- */static pattern(pattern,validationMessage,validationMessageSummary){cov_2htktrox8d().f[4]++;cov_2htktrox8d().s[4]++;return patternValidator(pattern,validationMessage,validationMessageSummary);}/**
39
- * Validator für Max Value
40
- * @param control Control das Validiert werden soll
41
- * @param maxvalue Max. Wert
37
+ */static isValidDate(validationMessage,validationMessageSummary){cov_2htktrox8d().f[3]++;cov_2htktrox8d().s[4]++;return isValidDateValidator(validationMessage,validationMessageSummary);}/**
38
+ * Validiert ob das Datum älter als maxDate ist
39
+ * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
40
+ * @param maxDate max. Datum
42
41
  * @param fieldName Label des Controls
43
42
  * @param validationMessage Validierungsmeldung die
44
43
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
45
- */static maxValue(maxvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[5]++;cov_2htktrox8d().s[5]++;return maxValueValidator(maxvalue,validationMessage,validationMessageSummary);}/**
46
- * Validiert Feld auf E-Mail Adresse
47
- * @param control Control das Valdiert werden soll
44
+ */static maxDate(maxDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[4]++;cov_2htktrox8d().s[5]++;return maxDateValidator(maxDate,validationMessage,validationMessageSummary);}/**
45
+ * Validiert ob die Zeit früher als maxTime ist.
46
+ * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
47
+ * @param maxTime Min. Zeit
48
48
  * @param fieldName Label des Controls
49
49
  * @param validationMessage Validierungsmeldung die
50
50
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
51
- */static email(validationMessage,validationMessageSummary){cov_2htktrox8d().f[6]++;cov_2htktrox8d().s[6]++;return emailValidator(validationMessage,validationMessageSummary);}/**
52
- * Validiert auf die Länge des Wertes im Control
51
+ */static maxTime(maxTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[5]++;cov_2htktrox8d().s[6]++;return maxTimeValidator(maxTime,validationMessage,validationMessageSummary);}/**
52
+ * Validator für Max Value
53
53
  * @param control Control das Validiert werden soll
54
- * @param minlength Min. Länge des Wertes
54
+ * @param maxvalue Max. Wert
55
55
  * @param fieldName Label des Controls
56
56
  * @param validationMessage Validierungsmeldung die
57
57
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
58
- */static minLength(minlength,validationMessage,validationMessageSummary){cov_2htktrox8d().f[7]++;cov_2htktrox8d().s[7]++;return minLengthValidator(minlength,validationMessage,validationMessageSummary);}/**
58
+ */static maxValue(maxvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[6]++;cov_2htktrox8d().s[7]++;return maxValueValidator(maxvalue,validationMessage,validationMessageSummary);}/**
59
59
  * Validiert ob das Datum neuer als minDate ist
60
60
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
61
61
  * @param minDate Min. Datum
62
62
  * @param fieldName Label des Controls
63
63
  * @param validationMessage Validierungsmeldung die
64
64
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
65
- */static minDate(minDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[8]++;cov_2htktrox8d().s[8]++;return minDateValidator(minDate,validationMessage,validationMessageSummary);}/**
66
- * Validiert ob das Datum älter als maxDate ist
67
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
68
- * @param maxDate max. Datum
65
+ */static minDate(minDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[7]++;cov_2htktrox8d().s[8]++;return minDateValidator(minDate,validationMessage,validationMessageSummary);}/**
66
+ * Validator für min. Anzahl von Uploads
67
+ * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben
68
+ * @param minFiles Min. Anzahl Files die hochgeladen werden müssen
69
+ * @param fieldName Label des Controls
70
+ * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
71
+ * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
72
+ */static minFiles(minFiles,validationMessage,validationMessageSummary){cov_2htktrox8d().f[8]++;cov_2htktrox8d().s[9]++;return minFilesValidator(minFiles,validationMessage,validationMessageSummary);}/**
73
+ * Validiert auf die Länge des Wertes im Control
74
+ * @param control Control das Validiert werden soll
75
+ * @param mintextlength Min. Länge des Wertes
69
76
  * @param fieldName Label des Controls
70
77
  * @param validationMessage Validierungsmeldung die
71
78
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
72
- */static maxDate(maxDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[9]++;cov_2htktrox8d().s[9]++;return maxDateValidator(maxDate,validationMessage,validationMessageSummary);}/**
79
+ */static minTextLength(mintextlength,validationMessage,validationMessageSummary){cov_2htktrox8d().f[9]++;cov_2htktrox8d().s[10]++;return minTextLengthValidator(mintextlength,validationMessage,validationMessageSummary);}/**
73
80
  * Validiert ob die Zeit später als minTime ist.
74
81
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
75
82
  * @param minTime Min. Zeit
76
83
  * @param fieldName Label des Controls
77
84
  * @param validationMessage Validierungsmeldung die
78
85
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
79
- */static minTime(minTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[10]++;cov_2htktrox8d().s[10]++;return minTimeValidator(minTime,validationMessage,validationMessageSummary);}/**
80
- * Validiert ob die Zeit früher als maxTime ist.
81
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
82
- * @param maxTime Min. Zeit
86
+ */static minTime(minTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[10]++;cov_2htktrox8d().s[11]++;return minTimeValidator(minTime,validationMessage,validationMessageSummary);}/**
87
+ * Validator der prüft ob der Wert ein Datum ist.
88
+ * @param control Control mit IDateTimeControl Interface implementierung
83
89
  * @param fieldName Label des Controls
84
90
  * @param validationMessage Validierungsmeldung die
85
91
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
86
- */static maxTime(maxTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[11]++;cov_2htktrox8d().s[11]++;return maxTimeValidator(maxTime,validationMessage,validationMessageSummary);}/**
87
- * Validator der prüft ob der Wert ein Datum ist.
88
- * @param control Control mit IDateTimeControl Interface implementierung
92
+ */static minValue(minvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[11]++;cov_2htktrox8d().s[12]++;return minValueValidator(minvalue,validationMessage,validationMessageSummary);}/**
93
+ * Validierung mit einem RegEx Pattern
94
+ * @param control Control das validiert werden soll.
95
+ * @param pattern RegEx Pattern
89
96
  * @param fieldName Label des Controls
90
- * @param validationMessage Validierungsmeldung die beim Control angezeigt wird
97
+ * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
91
98
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
92
- */static isValidDate(validationMessage,validationMessageSummary){cov_2htktrox8d().f[12]++;cov_2htktrox8d().s[12]++;return isValidDateValidator(validationMessage,validationMessageSummary);}/**
93
- * Validator für min. Anzahl von Uploads
94
- * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben
95
- * @param minFiles Min. Anzahl Files die hochgeladen werden müssen
99
+ */static multilanguageRequired(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[12]++;cov_2htktrox8d().s[13]++;return multilanguageRequiredValidator(languages,validationMessage,validationMessageSummary);}/**
100
+ * Validator für MultiLanguage Control, welcher überprüft ob min. ein Wert erfasst wurde
101
+ * @param control Control das Validatiert werden soll
102
+ * @param languages Sprachen die im Control erfasst werden können.
96
103
  * @param fieldName Label des Controls
97
104
  * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
98
105
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
99
- */static minFiles(minFiles,validationMessage,validationMessageSummary){cov_2htktrox8d().f[13]++;cov_2htktrox8d().s[13]++;return minFilesValidator(minFiles,validationMessage,validationMessageSummary);}/**
106
+ */static multilanguageRequiredAny(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[13]++;cov_2htktrox8d().s[14]++;return multilanguageRequiredAnyValidator(languages,validationMessage,validationMessageSummary);}/**
100
107
  * Validator validate if value is not the invalidValue
101
108
  * @param invalidValue Value that control doesn't should have
102
109
  * @param control Control to be validate
103
110
  * @param fieldName Label of control
104
111
  * @param validationMessage validation message near the control
105
112
  * @param validationMessageSummary validation inside the validation summary
106
- */static notequals(invalidValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[14]++;cov_2htktrox8d().s[14]++;return notEqualsValueValidator(invalidValue,validationMessage,validationMessageSummary);}/**
113
+ */static notequals(invalidValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[14]++;cov_2htktrox8d().s[15]++;return notEqualsValueValidator(invalidValue,validationMessage,validationMessageSummary);}/**
107
114
  * Validierung mit einem RegEx Pattern
108
115
  * @param control Control das validiert werden soll.
109
116
  * @param pattern RegEx Pattern
110
117
  * @param fieldName Label des Controls
111
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
118
+ * @param validationMessage Validierungsmeldung die
112
119
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
113
- */static multilanguageRequired(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[15]++;cov_2htktrox8d().s[15]++;return multilanguageRequiredValidator(languages,validationMessage,validationMessageSummary);}/**
114
- * Validator für MultiLanguage Control, welcher überprüft ob min. ein Wert erfasst wurde
115
- * @param control Control das Validatiert werden soll
116
- * @param languages Sprachen die im Control erfasst werden können.
120
+ */static pattern(pattern,validationMessage,validationMessageSummary){cov_2htktrox8d().f[15]++;cov_2htktrox8d().s[16]++;return patternValidator(pattern,validationMessage,validationMessageSummary);}/**
121
+ * Validator für Required State
122
+ * @param control Control das Validiert wird
117
123
  * @param fieldName Label des Controls
118
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
124
+ * @param validationMessage Validierungsmeldung die
119
125
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
120
- */static multilanguageRequiredAny(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[16]++;cov_2htktrox8d().s[16]++;return multilanguageRequiredAnyValidator(languages,validationMessage,validationMessageSummary);}}/**
121
- * Moment
122
- */const moment=(cov_2htktrox8d().s[17]++,moment_['default']);//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUlsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENB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dCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbmxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbm90ZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcblxyXG4vKipcclxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cclxuICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXHJcbiAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICovXHJcbiAgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXHJcbiAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxyXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXHJcbiAgKTogYW55IHtcclxuICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgIGVycm9yVHlwZSxcclxuICAgICAgZXJyb3JNZXNzYWdlS2V5LFxyXG4gICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSxcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVkKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyB0aGUgcmVxdWlyZWRWYWx1ZVxyXG4gICAqIEBwYXJhbSByZXF1aXJlZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBzaG91bGQgaGF2ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcclxuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoXHJcbiAgICByZXF1aXJlZFZhbHVlOiBhbnksXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICByZXF1aXJlZFZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblZhbHVlKFxyXG4gICAgbWludmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pbnZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXHJcbiAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgcGF0dGVybihcclxuICAgIHBhdHRlcm46IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihcclxuICAgICAgcGF0dGVybixcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFZhbHVlKFxyXG4gICAgbWF4dmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWlubGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkxlbmd0aChcclxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgICAgIG1pbmxlbmd0aCxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkRhdGUoXHJcbiAgICBtaW5EYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtaW5EYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heERhdGUoXHJcbiAgICBtYXhEYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtYXhEYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblRpbWUoXHJcbiAgICBtaW5UaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pblRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWF4VGltZShcclxuICAgIG1heFRpbWU6IERhdGUsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heFRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5GaWxlcyhcclxuICAgIG1pbkZpbGVzOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKFxyXG4gICAgICBtaW5GaWxlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBub3QgdGhlIGludmFsaWRWYWx1ZVxyXG4gICAqIEBwYXJhbSBpbnZhbGlkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIGRvZXNuJ3Qgc2hvdWxkIGhhdmVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBub3RlcXVhbHMoXHJcbiAgICBpbnZhbGlkVmFsdWU6IGFueSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIGludmFsaWRWYWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKFxyXG4gICAgICBsYW5ndWFnZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbiJdfQ==
123
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmh0a3Ryb3g4ZCIsImFjdHVhbENvdmVyYWdlIiwibW9tZW50XyIsImVtYWlsVmFsaWRhdG9yIiwiZXF1YWxzVmFsdWVWYWxpZGF0b3IiLCJpc1ZhbGlkRGF0ZVZhbGlkYXRvciIsIm1heERhdGVWYWxpZGF0b3IiLCJtYXhUaW1lVmFsaWRhdG9yIiwibWF4VmFsdWVWYWxpZGF0b3IiLCJtaW5EYXRlVmFsaWRhdG9yIiwibWluRmlsZXNWYWxpZGF0b3IiLCJtaW5MZW5ndGhWYWxpZGF0b3IiLCJtaW5UaW1lVmFsaWRhdG9yIiwibWluVmFsdWVWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IiLCJub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciIsInBhdHRlcm5WYWxpZGF0b3IiLCJyZXF1aXJlZFZhbGlkYXRvciIsIkNyZWF0ZVZhbGlkYXRpb25FcnJvciIsIlZhbGlkYXRpb24iLCJHZXRWYWxpZGF0aW9uRXJyb3JJdGVtIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlS2V5IiwiZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkiLCJmaWVsZE5hbWUiLCJiIiwicGFyYW1ldGVycyIsIk1hcCIsImYiLCJzIiwicmVxdWlyZWQiLCJ2YWxpZGF0aW9uTWVzc2FnZSIsInZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSIsImVxdWFscyIsInJlcXVpcmVkVmFsdWUiLCJtaW5WYWx1ZSIsIm1pbnZhbHVlIiwicGF0dGVybiIsIm1heFZhbHVlIiwibWF4dmFsdWUiLCJlbWFpbCIsIm1pbkxlbmd0aCIsIm1pbmxlbmd0aCIsIm1pbkRhdGUiLCJtYXhEYXRlIiwibWluVGltZSIsIm1heFRpbWUiLCJpc1ZhbGlkRGF0ZSIsIm1pbkZpbGVzIiwibm90ZXF1YWxzIiwiaW52YWxpZFZhbHVlIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkIiwibGFuZ3VhZ2VzIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55IiwibW9tZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvdmFsaWRhdGlvbi92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbmxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbm90ZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcblxyXG4vKipcclxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cclxuICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXHJcbiAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICovXHJcbiAgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXHJcbiAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxyXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXHJcbiAgKTogYW55IHtcclxuICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgIGVycm9yVHlwZSxcclxuICAgICAgZXJyb3JNZXNzYWdlS2V5LFxyXG4gICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSxcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVkKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyB0aGUgcmVxdWlyZWRWYWx1ZVxyXG4gICAqIEBwYXJhbSByZXF1aXJlZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBzaG91bGQgaGF2ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcclxuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoXHJcbiAgICByZXF1aXJlZFZhbHVlOiBhbnksXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICByZXF1aXJlZFZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblZhbHVlKFxyXG4gICAgbWludmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pbnZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXHJcbiAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgcGF0dGVybihcclxuICAgIHBhdHRlcm46IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihcclxuICAgICAgcGF0dGVybixcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFZhbHVlKFxyXG4gICAgbWF4dmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWlubGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkxlbmd0aChcclxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgICAgIG1pbmxlbmd0aCxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkRhdGUoXHJcbiAgICBtaW5EYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtaW5EYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heERhdGUoXHJcbiAgICBtYXhEYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtYXhEYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblRpbWUoXHJcbiAgICBtaW5UaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pblRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWF4VGltZShcclxuICAgIG1heFRpbWU6IERhdGUsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heFRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5GaWxlcyhcclxuICAgIG1pbkZpbGVzOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKFxyXG4gICAgICBtaW5GaWxlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBub3QgdGhlIGludmFsaWRWYWx1ZVxyXG4gICAqIEBwYXJhbSBpbnZhbGlkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIGRvZXNuJ3Qgc2hvdWxkIGhhdmVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBub3RlcXVhbHMoXHJcbiAgICBpbnZhbGlkVmFsdWU6IGFueSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIGludmFsaWRWYWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKFxyXG4gICAgICBsYW5ndWFnZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbiJdLCJtYXBwaW5ncyI6InV0cEJBa0JTO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQWxCVCxNQUFPLEdBQUssQ0FBQUUsT0FBTyxLQUFNLFFBQVEsQ0FJakMsT0FBU0MsY0FBYyxLQUFRLG1CQUFtQixDQUNsRCxPQUFTQyxvQkFBb0IsS0FBUSxvQkFBb0IsQ0FDekQsT0FBU0Msb0JBQW9CLEtBQVEseUJBQXlCLENBQzlELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsaUJBQWlCLEtBQVEsc0JBQXNCLENBQ3hELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0Msa0JBQWtCLEtBQVEsdUJBQXVCLENBQzFELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0MsOEJBQThCLEtBQVEsbUNBQW1DLENBQ2xGLE9BQVNDLGlDQUFpQyxLQUFRLHNDQUFzQyxDQUN4RixPQUFTQyx1QkFBdUIsS0FBUSx1QkFBdUIsQ0FDL0QsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGlCQUFpQixLQUFRLHNCQUFzQixD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
126
+ */static required(validationMessage,validationMessageSummary){cov_2htktrox8d().f[16]++;cov_2htktrox8d().s[17]++;return requiredValidator(validationMessage,validationMessageSummary);}}// #endregion Exported Classes
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsb0JBQW9CO0FBRXBCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWxDLHVCQUF1QjtBQUV2QiwyQkFBMkI7QUFFM0I7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUNuQixnQ0FBZ0M7SUFFaEM7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDaEMsU0FBaUIsRUFDakIsZUFBdUIsRUFDdkIsZ0NBQXdDLEVBQ3hDLFlBQW9CLElBQUksRUFDeEIsYUFBK0IsSUFBSSxHQUFHLEVBQWU7UUFFckQsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUF5QixFQUFFLHdCQUF3QjtRQUNuRSxPQUFPLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7Ozs7S0FRQztJQUNNLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBa0IsRUFBRSxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDeEYsT0FBTyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFhLEVBQUUsaUJBQXlCLEVBQUUsd0JBQXdCO1FBQ3BGLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWEsRUFBRSxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDcEYsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDeEYsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBYSxFQUFFLGlCQUF5QixFQUFFLHdCQUF3QjtRQUNwRixPQUFPLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLGlCQUF5QixFQUFFLHdCQUF3QjtRQUN4RixPQUFPLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFxQixFQUFFLGlCQUF5QixFQUFFLHdCQUF3QjtRQUNsRyxPQUFPLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFhLEVBQUUsaUJBQXlCLEVBQUUsd0JBQWdDO1FBQzVGLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDeEYsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDL0IsU0FBMEIsRUFDMUIsaUJBQXlCLEVBQ3pCLHdCQUF3QjtRQUV4QixPQUFPLDhCQUE4QixDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUNsQyxTQUEwQixFQUMxQixpQkFBeUIsRUFDekIsd0JBQXdCO1FBRXhCLE9BQU8saUNBQWlDLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQWlCLEVBQUUsaUJBQXlCLEVBQUUsd0JBQXdCO1FBQzFGLE9BQU8sdUJBQXVCLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWUsRUFBRSxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDdEYsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBeUIsRUFBRSx3QkFBd0I7UUFDdEUsT0FBTyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FHSjtBQUVELDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbGFuZ3VhZ2Vtb2RlbCc7XHJcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBlcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IGlzVmFsaWREYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnZhbGlkZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHRpbWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4VmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHZhbHVlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL21pbmZpbGVzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblRleHRMZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbnRleHRsZW5ndGgudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5WYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWludmFsdWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWQudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL25vdGVxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBwYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSAnLi9wYXR0ZXJuLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5cclxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcclxuXHJcbi8qKlxyXG4gKiBNb21lbnRcclxuICovXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuXHJcbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXHJcblxyXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcclxuXHJcbi8qKlxyXG4gKiBLbGFzc2UgbWl0IFN0YW5kYXJkIFZhbGlkYXRvcmVuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBTdGF0aWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIE1ldGhvZGUgaXN0IHZvbiBqZWRlbSBWYWxpZGF0b3IgYXVmZ2VydWZlbi4gRGllIHNldHp0IHNvd29obCBkZW4gZXJyb3JUeXBlIGRlcyBnZXJww7xmdGUgSXRlbSwgYWxzIGF1Y2ggZGllIEVycm9yTWVzc2FnZSAoZ2Vtw6RzcyB2b24gZXJyb3JUeXBlLCBGaWVsZE5hbWUgdW5kIFBhcmFtZXRlcnMpLlxyXG4gICAgICogQHBhcmFtIGVycm9yVHlwZSBUeXAgZGVuIEZlaGxlclxyXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5IEVycm9yIE1lc3NhZ2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lICBMYWJlbCBvZGVyIE5hbWUgZGVzIEZlbGRlc1xyXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0VmFsaWRhdGlvbkVycm9ySXRlbShcclxuICAgICAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcclxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleTogc3RyaW5nLFxyXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxyXG4gICAgKTogYW55IHtcclxuICAgICAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlS2V5LCBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSwgcGFyYW1ldGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgRmVsZCBhdWYgRS1NYWlsIEFkcmVzc2VcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gZW1haWxWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIHRoZSByZXF1aXJlZFZhbHVlXHJcbiAgICogQHBhcmFtIHJlcXVpcmVkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIHNob3VsZCBoYXZlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCB0byBiZSB2YWxpZGF0ZVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgdmFsaWRhdGlvbiBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxyXG5cclxuICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBlcXVhbHNWYWx1ZVZhbGlkYXRvcihyZXF1aXJlZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBkZXIgcHLDvGZ0IG9iIGRlciBXZXJ0IGVpbiBEYXR1bSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgYmVpbSBDb250cm9sIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGFzIERhdHVtIMOkbHRlciBhbHMgbWF4RGF0ZSBpc3RcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heERhdGVWYWxpZGF0b3IobWF4RGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNaW4uIFplaXRcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWF4VGltZShtYXhUaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IobWF4VGltZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBNYXggVmFsdWVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAgICogQHBhcmFtIG1heHZhbHVlIE1heC4gV2VydFxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heFZhbHVlVmFsaWRhdG9yKG1heHZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWluRGF0ZSBNaW4uIERhdHVtXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pbkRhdGUobWluRGF0ZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIGbDvHIgbWluLiBBbnphaGwgdm9uIFVwbG9hZHNcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsLiBDb250cm9sIG11c3MgSVVwbG9hZENvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pbkZpbGVzKG1pbkZpbGVzOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gbWluRmlsZXNWYWxpZGF0b3IobWluRmlsZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRpZXJ0IGF1ZiBkaWUgTMOkbmdlIGRlcyBXZXJ0ZXMgaW0gQ29udHJvbFxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gbWludGV4dGxlbmd0aCBNaW4uIEzDpG5nZSBkZXMgV2VydGVzXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pblRleHRMZW5ndGgobWludGV4dGxlbmd0aDogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1pblRleHRMZW5ndGhWYWxpZGF0b3IobWludGV4dGxlbmd0aCwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgc3DDpHRlciBhbHMgbWluVGltZSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWluVGltZShtaW5UaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnk6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBkZXIgcHLDvGZ0IG9iIGRlciBXZXJ0IGVpbiBEYXR1bSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtaW5WYWx1ZVZhbGlkYXRvcihtaW52YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcclxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBtaW4uIGVpbiBXZXJ0IGVyZmFzc3Qgd3VyZGVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2VzIFNwcmFjaGVuIGRpZSBpbSBDb250cm9sIGVyZmFzc3Qgd2VyZGVuIGvDtm5uZW4uXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxyXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxyXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvcihsYW5ndWFnZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXHJcbiAgICAgKiBAcGFyYW0gaW52YWxpZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBkb2Vzbid0IHNob3VsZCBoYXZlXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbm90ZXF1YWxzKGludmFsaWRWYWx1ZTogYW55LCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yKGludmFsaWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBwYXR0ZXJuKHBhdHRlcm46IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBwYXR0ZXJuVmFsaWRhdG9yKHBhdHRlcm4sIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIGbDvHIgUmVxdWlyZWQgU3RhdGVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZWRWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXHJcbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmh0a3Ryb3g4ZCIsImFjdHVhbENvdmVyYWdlIiwiZW1haWxWYWxpZGF0b3IiLCJlcXVhbHNWYWx1ZVZhbGlkYXRvciIsImlzVmFsaWREYXRlVmFsaWRhdG9yIiwibWF4RGF0ZVZhbGlkYXRvciIsIm1heFRpbWVWYWxpZGF0b3IiLCJtYXhWYWx1ZVZhbGlkYXRvciIsIm1pbkRhdGVWYWxpZGF0b3IiLCJtaW5GaWxlc1ZhbGlkYXRvciIsIm1pblRleHRMZW5ndGhWYWxpZGF0b3IiLCJtaW5UaW1lVmFsaWRhdG9yIiwibWluVmFsdWVWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IiLCJub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciIsInBhdHRlcm5WYWxpZGF0b3IiLCJyZXF1aXJlZFZhbGlkYXRvciIsIkNyZWF0ZVZhbGlkYXRpb25FcnJvciIsIm1vbWVudF8iLCJtb21lbnQiLCJzIiwiVmFsaWRhdGlvbiIsIkdldFZhbGlkYXRpb25FcnJvckl0ZW0iLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2VLZXkiLCJlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSIsImZpZWxkTmFtZSIsImIiLCJwYXJhbWV0ZXJzIiwiTWFwIiwiZiIsImVtYWlsIiwidmFsaWRhdGlvbk1lc3NhZ2UiLCJ2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkiLCJlcXVhbHMiLCJyZXF1aXJlZFZhbHVlIiwiaXNWYWxpZERhdGUiLCJtYXhEYXRlIiwibWF4VGltZSIsIm1heFZhbHVlIiwibWF4dmFsdWUiLCJtaW5EYXRlIiwibWluRmlsZXMiLCJtaW5UZXh0TGVuZ3RoIiwibWludGV4dGxlbmd0aCIsIm1pblRpbWUiLCJtaW5WYWx1ZSIsIm1pbnZhbHVlIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkIiwibGFuZ3VhZ2VzIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55Iiwibm90ZXF1YWxzIiwiaW52YWxpZFZhbHVlIiwicGF0dGVybiIsInJlcXVpcmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvdmFsaWRhdGlvbi92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbGFuZ3VhZ2Vtb2RlbCc7XHJcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBlcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IGlzVmFsaWREYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnZhbGlkZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHRpbWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4VmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHZhbHVlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL21pbmZpbGVzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblRleHRMZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbnRleHRsZW5ndGgudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5WYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWludmFsdWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWQudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL25vdGVxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBwYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSAnLi9wYXR0ZXJuLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5cclxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcclxuXHJcbi8qKlxyXG4gKiBNb21lbnRcclxuICovXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcclxuXHJcbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXHJcblxyXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcclxuXHJcbi8qKlxyXG4gKiBLbGFzc2UgbWl0IFN0YW5kYXJkIFZhbGlkYXRvcmVuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBTdGF0aWMgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGllIE1ldGhvZGUgaXN0IHZvbiBqZWRlbSBWYWxpZGF0b3IgYXVmZ2VydWZlbi4gRGllIHNldHp0IHNvd29obCBkZW4gZXJyb3JUeXBlIGRlcyBnZXJww7xmdGUgSXRlbSwgYWxzIGF1Y2ggZGllIEVycm9yTWVzc2FnZSAoZ2Vtw6RzcyB2b24gZXJyb3JUeXBlLCBGaWVsZE5hbWUgdW5kIFBhcmFtZXRlcnMpLlxyXG4gICAgICogQHBhcmFtIGVycm9yVHlwZSBUeXAgZGVuIEZlaGxlclxyXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5IEVycm9yIE1lc3NhZ2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lICBMYWJlbCBvZGVyIE5hbWUgZGVzIEZlbGRlc1xyXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0VmFsaWRhdGlvbkVycm9ySXRlbShcclxuICAgICAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcclxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleTogc3RyaW5nLFxyXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxyXG4gICAgKTogYW55IHtcclxuICAgICAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlS2V5LCBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSwgcGFyYW1ldGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgRmVsZCBhdWYgRS1NYWlsIEFkcmVzc2VcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gZW1haWxWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIHRoZSByZXF1aXJlZFZhbHVlXHJcbiAgICogQHBhcmFtIHJlcXVpcmVkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIHNob3VsZCBoYXZlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCB0byBiZSB2YWxpZGF0ZVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgdmFsaWRhdGlvbiBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxyXG5cclxuICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBlcXVhbHNWYWx1ZVZhbGlkYXRvcihyZXF1aXJlZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBkZXIgcHLDvGZ0IG9iIGRlciBXZXJ0IGVpbiBEYXR1bSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgYmVpbSBDb250cm9sIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGFzIERhdHVtIMOkbHRlciBhbHMgbWF4RGF0ZSBpc3RcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heERhdGVWYWxpZGF0b3IobWF4RGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNaW4uIFplaXRcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWF4VGltZShtYXhUaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IobWF4VGltZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBNYXggVmFsdWVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAgICogQHBhcmFtIG1heHZhbHVlIE1heC4gV2VydFxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1heFZhbHVlVmFsaWRhdG9yKG1heHZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWluRGF0ZSBNaW4uIERhdHVtXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pbkRhdGUobWluRGF0ZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIGbDvHIgbWluLiBBbnphaGwgdm9uIFVwbG9hZHNcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsLiBDb250cm9sIG11c3MgSVVwbG9hZENvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pbkZpbGVzKG1pbkZpbGVzOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gbWluRmlsZXNWYWxpZGF0b3IobWluRmlsZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRpZXJ0IGF1ZiBkaWUgTMOkbmdlIGRlcyBXZXJ0ZXMgaW0gQ29udHJvbFxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gbWludGV4dGxlbmd0aCBNaW4uIEzDpG5nZSBkZXMgV2VydGVzXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1pblRleHRMZW5ndGgobWludGV4dGxlbmd0aDogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG1pblRleHRMZW5ndGhWYWxpZGF0b3IobWludGV4dGxlbmd0aCwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgc3DDpHRlciBhbHMgbWluVGltZSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWluVGltZShtaW5UaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnk6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBkZXIgcHLDvGZ0IG9iIGRlciBXZXJ0IGVpbiBEYXR1bSBpc3QuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtaW5WYWx1ZVZhbGlkYXRvcihtaW52YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcclxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBtaW4uIGVpbiBXZXJ0IGVyZmFzc3Qgd3VyZGVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2VzIFNwcmFjaGVuIGRpZSBpbSBDb250cm9sIGVyZmFzc3Qgd2VyZGVuIGvDtm5uZW4uXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxyXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxyXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvcihsYW5ndWFnZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXHJcbiAgICAgKiBAcGFyYW0gaW52YWxpZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBkb2Vzbid0IHNob3VsZCBoYXZlXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbm90ZXF1YWxzKGludmFsaWRWYWx1ZTogYW55LCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yKGludmFsaWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBwYXR0ZXJuKHBhdHRlcm46IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBwYXR0ZXJuVmFsaWRhdG9yKHBhdHRlcm4sIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIGbDvHIgUmVxdWlyZWQgU3RhdGVcclxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3aXJkXHJcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZWRWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXHJcbiJdLCJtYXBwaW5ncyI6IjJvcEJBZ0JTO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQWZULE9BQVNFLGNBQWMsS0FBUSxtQkFBbUIsQ0FDbEQsT0FBU0Msb0JBQW9CLEtBQVEsb0JBQW9CLENBQ3pELE9BQVNDLG9CQUFvQixLQUFRLHlCQUF5QixDQUM5RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGlCQUFpQixLQUFRLHNCQUFzQixDQUN4RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsaUJBQWlCLEtBQVEsc0JBQXNCLENBQ3hELE9BQVNDLHNCQUFzQixLQUFRLDJCQUEyQixDQUNsRSxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsaUJBQWlCLEtBQVEsc0JBQXNCLENBQ3hELE9BQVNDLDhCQUE4QixLQUFRLG1DQUFtQyxDQUNsRixPQUFTQyxpQ0FBaUMsS0FBUSxzQ0FBc0MsQ0FDeEYsT0FBU0MsdUJBQXVCLEtBQVEsdUJBQXVCLENBQy9ELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0MscUJBQXFCLEtBQVEsMEJBQTBCLENBRWhFLE1BQU8sR0FBSyxDQUFBQyxPQUFPLEtBQU0sUUFBUSxDQUVqQztBQUVBOztHQUdBLEtBQU0sQ0FBQUMsTUFBTSxFQUFBcEIsY0FBQSxHQUFBcUIsQ0FB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