@simpleangularcontrols/sac-common 13.0.0-rc.20 → 13.0.0-rc.21

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 (119) hide show
  1. package/controls/grid/gridcolumnbase.d.ts +5 -1
  2. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  3. package/controls/treeview/treeview.d.ts +2 -2
  4. package/controls/treeview/treeview.d.ts.map +1 -1
  5. package/esm2020/common/basedatetimecontrol.mjs +1 -1
  6. package/esm2020/common/baseinputcontrol.mjs +1 -1
  7. package/esm2020/common/baselistcontrol.mjs +1 -1
  8. package/esm2020/common/basemodelcontrol.mjs +1 -1
  9. package/esm2020/common/baseselectcontrol.mjs +1 -1
  10. package/esm2020/common/baseuploadcontrol.mjs +1 -1
  11. package/esm2020/components/browser/browser.mjs +1 -1
  12. package/esm2020/components/browser/models/browserfiledeleterequest.mjs +1 -1
  13. package/esm2020/components/browser/models/browserfilerenamerequest.mjs +1 -1
  14. package/esm2020/components/browser/models/browserfilesaverequest.mjs +1 -1
  15. package/esm2020/components/browser/models/browsernodedeleterequest.mjs +1 -1
  16. package/esm2020/components/browser/models/browsernodenewrequest.mjs +1 -1
  17. package/esm2020/components/browser/models/browsernoderenamerequest.mjs +1 -1
  18. package/esm2020/components/browser/models/browsernoderequest.mjs +1 -1
  19. package/esm2020/controls/buttons/button.mjs +1 -1
  20. package/esm2020/controls/checkbox/checkbox.mjs +1 -1
  21. package/esm2020/controls/checkbox/radiobutton.mjs +1 -1
  22. package/esm2020/controls/checkbox/radiobuttons.mjs +1 -1
  23. package/esm2020/controls/confirm/confirm.button.mjs +1 -1
  24. package/esm2020/controls/confirm/confirm.mjs +1 -1
  25. package/esm2020/controls/confirm/confirm.service.mjs +1 -1
  26. package/esm2020/controls/contextmenu/contextmenu.mjs +1 -1
  27. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +1 -1
  28. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +1 -1
  29. package/esm2020/controls/contextmenu/contextmenuitem.mjs +1 -1
  30. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +1 -1
  31. package/esm2020/controls/datetime/date.mjs +1 -1
  32. package/esm2020/controls/datetime/dateselector.mjs +1 -1
  33. package/esm2020/controls/datetime/datetime.mjs +1 -1
  34. package/esm2020/controls/datetime/time.mjs +1 -1
  35. package/esm2020/controls/dialog/dialog.mjs +1 -1
  36. package/esm2020/controls/form/form.mjs +1 -1
  37. package/esm2020/controls/grid/grid.mjs +1 -1
  38. package/esm2020/controls/grid/gridbutton.mjs +1 -1
  39. package/esm2020/controls/grid/gridcolumn.mjs +1 -1
  40. package/esm2020/controls/grid/gridcolumnaction.mjs +1 -1
  41. package/esm2020/controls/grid/gridcolumnbase.mjs +16 -14
  42. package/esm2020/controls/grid/model.mjs +1 -1
  43. package/esm2020/controls/grid/paging.mjs +1 -1
  44. package/esm2020/controls/input/input.mjs +1 -1
  45. package/esm2020/controls/input/inputarea.mjs +1 -1
  46. package/esm2020/controls/input/inputcurrency.mjs +1 -1
  47. package/esm2020/controls/input/inputdecimal.mjs +1 -1
  48. package/esm2020/controls/input/inputemail.mjs +1 -1
  49. package/esm2020/controls/input/inputinteger.mjs +1 -1
  50. package/esm2020/controls/input/inputpassword.mjs +1 -1
  51. package/esm2020/controls/input/inputsearch.mjs +1 -1
  52. package/esm2020/controls/layout/formlayout.mjs +1 -1
  53. package/esm2020/controls/list/buildvaluestring.mjs +1 -1
  54. package/esm2020/controls/list/dropdown.mjs +1 -1
  55. package/esm2020/controls/list/dropdownoptions.mjs +1 -1
  56. package/esm2020/controls/list/list.module.ngfactory.mjs +1 -1
  57. package/esm2020/controls/list/listbox.mjs +1 -1
  58. package/esm2020/controls/multilanguage/multilanguageinput.mjs +1 -1
  59. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +1 -1
  60. package/esm2020/controls/static/formcontainer.mjs +1 -1
  61. package/esm2020/controls/static/staticlabel.mjs +1 -1
  62. package/esm2020/controls/tabs/tab.mjs +1 -1
  63. package/esm2020/controls/tabs/tabitem.mjs +1 -1
  64. package/esm2020/controls/tinymce/tinymce.mjs +1 -1
  65. package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +1 -1
  66. package/esm2020/controls/tooltip/tooltip.mjs +1 -1
  67. package/esm2020/controls/treeview/treeview.mjs +6 -6
  68. package/esm2020/controls/upload/dropzonemultiple.mjs +1 -1
  69. package/esm2020/controls/upload/dropzonesingle.mjs +1 -1
  70. package/esm2020/controls/upload/uploadmultiple.mjs +1 -1
  71. package/esm2020/controls/upload/uploadsingle.mjs +1 -1
  72. package/esm2020/controls/validation/validationsummary.mjs +1 -1
  73. package/esm2020/controls/wizard/wizard.mjs +1 -1
  74. package/esm2020/controls/wizard/wizarditem.mjs +1 -1
  75. package/esm2020/enums/ControlHeight.mjs +1 -1
  76. package/esm2020/enums/IconType.mjs +1 -1
  77. package/esm2020/models/languagemodel.mjs +1 -1
  78. package/esm2020/services/sac-configuration.service.mjs +1 -1
  79. package/esm2020/services/sac-filebrowser.service.mjs +1 -1
  80. package/esm2020/services/sac-icon.service.mjs +1 -1
  81. package/esm2020/services/sac-language.service.mjs +1 -1
  82. package/esm2020/services/sac-localisation.service.mjs +1 -1
  83. package/esm2020/services/sac-validationkey.service.mjs +1 -1
  84. package/esm2020/utilities/convertion.mjs +1 -1
  85. package/esm2020/utilities/datatypes.mjs +1 -1
  86. package/esm2020/utilities/enums.mjs +1 -1
  87. package/esm2020/utilities/guid.mjs +1 -1
  88. package/esm2020/utilities/interpolation.mjs +1 -1
  89. package/esm2020/utilities/popuphelper.mjs +1 -1
  90. package/esm2020/utilities/positioning.mjs +1 -1
  91. package/esm2020/utilities/testingattribute.pipe.mjs +1 -1
  92. package/esm2020/utilities/utilities.module.ngfactory.mjs +1 -1
  93. package/esm2020/validation/email.validator.mjs +1 -1
  94. package/esm2020/validation/equals.validator.mjs +1 -1
  95. package/esm2020/validation/invaliddate.validator.mjs +1 -1
  96. package/esm2020/validation/isDateValid.mjs +1 -1
  97. package/esm2020/validation/maxdate.validator.mjs +1 -1
  98. package/esm2020/validation/maxtime.validator.mjs +1 -1
  99. package/esm2020/validation/maxvalue.validator.mjs +1 -1
  100. package/esm2020/validation/mindate.validator.mjs +1 -1
  101. package/esm2020/validation/minfiles.validator.mjs +1 -1
  102. package/esm2020/validation/mintextlength.validator.mjs +1 -1
  103. package/esm2020/validation/mintime.validator.mjs +1 -1
  104. package/esm2020/validation/minvalue.validator.mjs +1 -1
  105. package/esm2020/validation/multilanguagerequired.validator.mjs +1 -1
  106. package/esm2020/validation/multilanguagerequiredany.validator.mjs +1 -1
  107. package/esm2020/validation/notequals.validator.mjs +1 -1
  108. package/esm2020/validation/pattern.validator.mjs +1 -1
  109. package/esm2020/validation/required.validator.mjs +1 -1
  110. package/esm2020/validation/validation.mjs +1 -1
  111. package/esm2020/validation/validationerrorcreator.mjs +1 -1
  112. package/esm2020/validation/validationerroritem.mjs +1 -1
  113. package/fesm2015/simpleangularcontrols-sac-common.mjs +670 -668
  114. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  115. package/fesm2020/simpleangularcontrols-sac-common.mjs +670 -668
  116. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  117. package/package.json +1 -1
  118. package/simpleangularcontrols-sac-common-13.0.0-rc.21.tgz +0 -0
  119. package/simpleangularcontrols-sac-common-13.0.0-rc.20.tgz +0 -0
@@ -148,4 +148,4 @@ cov_11ofelmjl4().s[132]++;if(!this.labelSizeMd){cov_11ofelmjl4().b[33][0]++;cov_
148
148
  cov_11ofelmjl4().s[136]++;if(!this.labelSizeLg){cov_11ofelmjl4().b[35][0]++;cov_11ofelmjl4().s[137]++;if(this.formlayout?.labelSizeLg){cov_11ofelmjl4().b[36][0]++;cov_11ofelmjl4().s[138]++;this.labelSizeLg=this.formlayout.labelSizeLg;}else{cov_11ofelmjl4().b[36][1]++;cov_11ofelmjl4().s[139]++;this.labelSizeLg=this.configurationService.LabelSizeLg;}}else{cov_11ofelmjl4().b[35][1]++;}// set size extra large
149
149
  cov_11ofelmjl4().s[140]++;if(!this.labelSizeXl){cov_11ofelmjl4().b[37][0]++;cov_11ofelmjl4().s[141]++;if(this.formlayout?.labelSizeXl){cov_11ofelmjl4().b[38][0]++;cov_11ofelmjl4().s[142]++;this.labelSizeXl=this.formlayout.labelSizeXl;}else{cov_11ofelmjl4().b[38][1]++;cov_11ofelmjl4().s[143]++;this.labelSizeXl=this.configurationService.LabelSizeXl;}}else{cov_11ofelmjl4().b[37][1]++;}// set size extra extra large
150
150
  cov_11ofelmjl4().s[144]++;if(!this.labelSizeXxl){cov_11ofelmjl4().b[39][0]++;cov_11ofelmjl4().s[145]++;if(this.formlayout?.labelSizeXxl){cov_11ofelmjl4().b[40][0]++;cov_11ofelmjl4().s[146]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_11ofelmjl4().b[40][1]++;cov_11ofelmjl4().s[147]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_11ofelmjl4().b[39][1]++;}}setLabelSplitMode(){cov_11ofelmjl4().f[41]++;cov_11ofelmjl4().s[148]++;if(!this.splitlabelandhelptext){cov_11ofelmjl4().b[41][0]++;cov_11ofelmjl4().s[149]++;if(this.formlayout?.splitlabelandhelptext){cov_11ofelmjl4().b[42][0]++;cov_11ofelmjl4().s[150]++;this.splitlabelandhelptext=this.formlayout.splitlabelandhelptext;}else{cov_11ofelmjl4().b[42][1]++;cov_11ofelmjl4().s[151]++;this.splitlabelandhelptext=this.configurationService.SplitLabelAndHelptext;}}else{cov_11ofelmjl4().b[41][1]++;}}}cov_11ofelmjl4().s[152]++;SacBaseModelControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_11ofelmjl4().s[153]++;SacBaseModelControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseModelControl,inputs:{componentHeight:"componentHeight",disabled:"disabled",disablelabel:"disablelabel",e2eidentifier:"e2eidentifier",helptext:"helptext",helptextmode:"helptextmode",inlineError:"inlineError",isAdaptiveLabel:"isAdaptiveLabel",labelSizeLg:"labelSizeLg",labelSizeMd:"labelSizeMd",labelSizeSm:"labelSizeSm",labelSizeXl:"labelSizeXl",labelSizeXs:"labelSizeXs",labelSizeXxl:"labelSizeXxl",name:"name",splitlabelandhelptext:"splitlabelandhelptext",inlineerrorenabled:"inlineerrorenabled",label:"label",value:"value"},ngImport:i0});cov_11ofelmjl4().s[154]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_11ofelmjl4().f[42]++;cov_11ofelmjl4().s[155]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{componentHeight:[{type:Input}],disabled:[{type:Input}],disablelabel:[{type:Input}],e2eidentifier:[{type:Input}],helptext:[{type:Input}],helptextmode:[{type:Input}],inlineError:[{type:Input}],isAdaptiveLabel:[{type:Input}],labelSizeLg:[{type:Input}],labelSizeMd:[{type:Input}],labelSizeSm:[{type:Input}],labelSizeXl:[{type:Input}],labelSizeXs:[{type:Input}],labelSizeXxl:[{type:Input}],name:[{type:Input}],splitlabelandhelptext:[{type:Input}],inlineerrorenabled:[{type:Input}],label:[{type:Input}],value:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBWSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUlILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUE2S3JDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQW9CLFVBQStCLEVBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyTHhGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLHdCQUFtQixHQUFtQixJQUFJLENBQUM7UUFFbkQ7O1dBRUc7UUFDSyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBTzVCOztXQUVHO1FBQ08sV0FBTSxHQUFZ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RHJCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFLVSxZQUFZO3NCQUEzQixLQUFLO2dCQU1DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFNQyxZQUFZO3NCQURsQixLQUFLO2dCQU1VLFdBQVc7c0JBQTFCLEtBQUs7Z0JBS1UsZUFBZTtzQkFBOUIsS0FBSztnQkFNQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsS0FBSztnQkFNVSxJQUFJO3NCQUFuQixLQUFLO2dCQWdCQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBK0RLLGtCQUFrQjtzQkFENUIsS0FBSztnQkFvRGMsS0FBSztzQkFBeEIsS0FBSztnQkEwQ0ssS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcbmltcG9ydCB7IENvbnRyb2xIZWlnaHQgfSBmcm9tICcuLi9lbnVtcy9Db250cm9sSGVpZ2h0JztcbmltcG9ydCB7IElTYWNDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNJY29uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ljb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNMYWJlbFNpemVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTGFiZWxTaXplcyc7XG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xuaW1wb3J0IHsgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pYWJzdHJhY3Rjb250cm9sbGFiZWwnO1xuaW1wb3J0IHtcbiAgICBTQUNJQ09OX1NFUlZJQ0UsXG4gICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxuICAgIFNhY0RlZmF1bHRJY29uU2VydmljZSxcbiAgICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXG59IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSwgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTQUNMT0NBTElTQVRJT05fU0VSVklDRSwgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JJdGVtIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5nQ29udHJvbCxcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VNb2RlbENvbnRyb2wuIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZWVycm9yZW5hYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGxvYWRpbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNhY01vZGVsIEZvcm0gaXN0IGRpc2FibGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZEZvcm06IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5lIFZhcmlhYmxlLCBkaWUgZGVuIFdlcnQgZGVzIENvbnRyb2xzIGjDpGx0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogVkFMVUUgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBsYXlvdXQgaW5zdGFuY2UgaWYgZXhpc3RzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBuZ0NvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIENvbnRyb2xIZWlnaHQ6IHR5cGVvZiBDb250cm9sSGVpZ2h0ID0gQ29udHJvbEhlaWdodDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YW5kYXJkIGhlaWdodCBvZiB0aGUgY29tcG9uZW50c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbXBvbmVudEhlaWdodDogQ29udHJvbEhlaWdodCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBMYWJlbCBpbSBUZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhlbHB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3I6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGF0IHRoZSBsYWJlbHMgYXJlIGRpc3BsYXllZCBhcyBhZGFwdGl2ZSBsYWJlbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlVG91Y2hcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmZvcm1sYXlvdXQgPSBmb3JtbGF5b3V0O1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcbiAgICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xuXG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDSUNPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5HZW5lcmljSGVscHRleHRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvciBtZXNzYWdlcyBpbmxpbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWt0aXZpZXJ0IG9kZXIgRGVha3RpdmllcnQgZGllIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpbmxpbmVlcnJvcmVuYWJsZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIFdlcnQgd2VubiBGb3JtIGludmFsaWQgb2RlciBuaWNodCBpbnZhbGlkIGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBpbmxpbmUgZXJyb3IgbWVzc2FnZXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBjb250cm9sLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYWxsIGxhYmVsIHNpemVzLiBUaGVzZSB2YWx1ZXMgY2FuIHRoZW4gYmUgdHJhbnNmZXJyZWQgdG8gY29ycmVzcG9uZGluZyBDU1MgY2xhc3NlcyB1c2luZyBhIHBpcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsU2l6ZXMoKTogSVNhY0xhYmVsU2l6ZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXG4gICAgICAgICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhzOiB0aGlzLmxhYmVsU2l6ZVhzLFxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXG4gICAgICAgICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxuICAgICAgICAgICAgbGFiZWxTaXplTGc6IHRoaXMubGFiZWxTaXplTGcsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgdG91Y2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdWNoZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBNZXRob2RlIGbDvHIgTmdNb2RlbCBCaW5kaW5nIGluIEh0bWwgTWFya3VwXG4gICAgICogSW5wdXQgd2lyZCBiZW7DtnRpZ3QsIGRhbWl0IGRlciBXZXJ0IGF1Y2ggw7xiZXIgZGFzIE1hcmt1cCBnZXNldHp0IHdlcmRlbiBrYW5uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRXJyb3IgYW5oYW5kIHZvbiBnZWdlYmVuZW4gS3JpdGVyaWVuXG4gICAgICovXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLm5nQ29udHJvbC5lcnJvcnM7XG5cbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoZXJyb3JzKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xuXG4gICAgICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvckl0ZW0ucGFyYW1ldGVycy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1trXSA9IHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIHJlY2VpdmUgZm9ybSB2aWEgZm9ybWNvbnRyb2xuYW1lIG9yIGZvcm1jb250cm9sIGluc3RhbmNlXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuVXBkYXRlTGFiZWxUb0NvbnRyb2woKTtcblxuICAgICAgICAvLyBzZXQgbGFiZWwgc2l6ZXMgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldExhYmVsU2l6ZXMoKTtcblxuICAgICAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gc2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRJc0FkYXB0aXZlTGFiZWwoKTtcblxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcbiAgICAgICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcblxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNwbGl0TW9kZSgpO1xuXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIHRvdWNoZWQgPSB0cnVlXG4gICAgICovXG4gICAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIGltIENvbnRyb2wgbWl0YmVrb21tZW4ga8O2bm5lblxuICAgICAqIFp1ciDDhG5kZXJ1bmdzaW5mbyBkaWUgTWV0aG9kZSBwcm9wYWdhdGVDaGFuZ2UgYXVmcnVmZW4uXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIG1pdGJla29tbWVuLCB3ZW5uIGRhcyBDb250cm9sIGFrdGl2aWVydCAoRm9jdXMpIHdpcmQuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSByZWdpc3RyaWVydCDDhG5kZXJ1bmdlbiBiZWkgZGVyIFZhbGlkaWVydW5nXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkYXMgQ29udHJvbCBhdWYgRGlzYWJsZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkRm9ybSA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBkaWUgZGVuIFdlcnQgZGVzIElucHV0cyBzZXR6dFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYWx1ZSh2OiBWQUxVRSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgTWV0aG9kZVxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMudmFsaWRhdGVEYXRhKGMpO1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWJzdHJha3RlIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgenVtIHNjaHJlaWJlbiB2b24gV2VydGVuIGF1cyBkZW0gTW9kZWwgaW4gZGFzIENvbnRyb2xcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVkFMVUUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcbiAgICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGluIGRlbiBrb3JyZWt0ZW4gVHlwIGtvbnZlcnRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHJldHVybnMgV2VydCBpbSBrb3JyZWt0ZW4gVHlwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIENvbnZlcnRJbnB1dFZhbHVlKHZhbHVlOiBWQUxVRSk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIEdldERlY2ltYWxTeW1ib2woKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gU2V0IFByb3BlcnRpZXMgYXQgQ2xhc3MgSW5pdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XG5cbiAgICAvKipcbiAgICAgKiBBa3R1YWxpc2llcnQgZGVuIE5nTW9kZWwgV2VydCB1bmQgZGllIEfDvGx0aWdrZWl0IGRlcyBWYWxpZGF0b3JzIGRlcyBDb250cm9sc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb21wb25lbnQgaGVpZ2h0IGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRIZWlnaHQoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBtb2RlIGZvciBoZWxwdGV4dC4gQ2FuIGJlIHRvb2x0aXAgb3IgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldElzQWRhcHRpdmVMYWJlbCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWRhcHRpdmVMYWJlbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaXNBZGFwdGl2ZUxhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IHRoaXMuZm9ybWxheW91dC5pc0FkYXB0aXZlTGFiZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldExhYmVsU2l6ZXMoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplU20pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVTbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIG1lZGl1bVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZU1kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZUxnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVMZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTGc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBleHRyYSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWHhsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYeGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYeGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExhYmVsU3BsaXRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuZm9ybWxheW91dC5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5TcGxpdExhYmVsQW5kSGVscHRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTFvZmVsbWpsNCIsImFjdHVhbENvdmVyYWdlIiwiQ29udHJvbEhlaWdodCIsIlNBQ0lDT05fU0VSVklDRSIsIlNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSIsIlNhY0RlZmF1bHRJY29uU2VydmljZSIsIlNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSIsIlNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJjb252ZXJ0VG9Cb29sZWFuIiwiY3JlYXRlR3VpZCIsIkRpcmVjdGl2ZSIsIkhvc3QiLCJJbnB1dCIsIkZvcm1Db250cm9sTmFtZSIsIkZvcm1Hcm91cERpcmVjdGl2ZSIsIk5nQ29udHJvbCIsIk9ic2VydmFibGUiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImUyZWlkZW50aWZpZXIiLCJoZWxwdGV4dCIsImlubGluZUVycm9yIiwiaXNBZGFwdGl2ZUxhYmVsIiwibGFiZWxTaXplTGciLCJsYWJlbFNpemVNZCIsImxhYmVsU2l6ZVNtIiwibGFiZWxTaXplWGwiLCJsYWJlbFNpemVYcyIsImxhYmVsU2l6ZVh4bCIsIm5hbWUiLCJwcm9wYWdhdGVDaGFuZ2UiLCJwcm9wYWdhdGVUb3VjaCIsInNwbGl0bGFiZWxhbmRoZWxwdGV4dCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiZ2V0IiwibG5nUmVzb3VyY2VTZXJ2aWNlIiwiY29uZmlndXJhdGlvblNlcnZpY2UiLCJpY29uU2VydmljZSIsIkhlbHB0ZXh0VG9vbHRpcEljb24iLCJHZW5lcmljSGVscHRleHRJY29uIiwiZGlydHkiLCJiIiwibmdDb250cm9sIiwidW5kZWZpbmVkIiwiaW5saW5lZXJyb3JlbmFibGVkIiwidmFsdWUiLCJpbnZhbGlkIiwiaXNkaXNhYmxlZCIsImlzaW5saW5lZXJyb3JlbmFibGVkIiwiSXNJbmxpbmVFcnJvckVuYWJsZWQiLCJJbmxpbmVFcnJvckVuYWJsZWQiLCJsYWJlbCIsInYiLCJVcGRhdGVMYWJlbFRvQ29udHJvbCIsImxhYmVsU2l6ZXMiLCJ0b3VjaGVkIiwiQ29udmVydElucHV0VmFsdWUiLCJHZXRFcnJvck1lc3NhZ2UiLCJlcnJvcnMiLCJvYnNlcnZlciIsIm5leHQiLCJjb21wbGV0ZSIsImxlbmd0aCIsImtleXMiLCJPYmplY3QiLCJlcnJvckl0ZW0iLCJwYXJhbWV0ZXJzIiwiZm9yRWFjaCIsImsiLCJmaWVsZE5hbWUiLCJHZXRTdHJpbmciLCJlcnJvck1lc3NhZ2VLZXkiLCJuZ09uSW5pdCIsImZvcm1Db250cm9sIiwiZm9ybSIsImdldENvbnRyb2wiLCJjb250cm9sIiwic2V0TGFiZWxTaXplcyIsInNldENvbXBvbmVudEhlaWdodCIsInNldElzQWRhcHRpdmVMYWJlbCIsInNldEhlbHBUZXh0TW9kZSIsInNldExhYmVsU3BsaXRNb2RlIiwiT25DbGFzc0luaXQiLCJvblRvdWNoIiwicmVnaXN0ZXJPbkNoYW5nZSIsImZuIiwib2JqIiwicmVnaXN0ZXJPblRvdWNoZWQiLCJyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlIiwiX29uQ2hhbmdlIiwic2V0RGlzYWJsZWRTdGF0ZSIsImlzRGlzYWJsZWQiLCJzZXRWYWx1ZSIsInZhbGlkYXRlIiwiYyIsImVycm9yIiwidmFsaWRhdGVEYXRhIiwid3JpdGVWYWx1ZSIsIkdldERlY2ltYWxTeW1ib2wiLCJVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5IiwidXBkYXRlVmFsdWVBbmRWYWxpZGl0eSIsIm9ubHlTZWxmIiwiY29udHJvbGxhYmVsIiwiQ29tcG9uZW50SGVpZ2h0IiwiaGVscHRleHRtb2RlIiwiSGVscHRleHRNb2RlIiwiTGFiZWxTaXplWHMiLCJMYWJlbFNpemVTbSIsIkxhYmVsU2l6ZU1kIiwiTGFiZWxTaXplTGciLCJMYWJlbFNpemVYbCIsIkxhYmVsU2l6ZVh4bCIsIlNwbGl0TGFiZWxBbmRIZWxwdGV4dCIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImhvc3QiLCJpMCIsIkluamVjdG9yIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZW1vZGVsY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGlydHk7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgdG91Y2hlZDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIG5nQ29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbEhlaWdodCBlbnVtIGZvciB1c2UgaW4gSFRNTCBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgQ29udHJvbEhlaWdodDogdHlwZW9mIENvbnRyb2xIZWlnaHQgPSBDb250cm9sSGVpZ2h0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgc3RhbmRhcmQgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnRzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29tcG9uZW50SGVpZ2h0OiBDb250cm9sSGVpZ2h0IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEZWFrdGl2aWVydCBkYXMgSW5wdXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIExhYmVsIGltIFRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVsYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTW9kZSBmb3IgZGlzcGxheSBoZWxwdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlbHB0ZXh0bW9kZTogJ3Rvb2x0aXAnIHwgJ3RleHQnIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhhdCBlcnJvciBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIHVuZGVyIHRoZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmVFcnJvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0FkYXB0aXZlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZSBzaXplIGZvciBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTGc6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBtZWRpdW0gZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZU1kOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgY29sdW1uIHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBkZXMgQ29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlQ2hhbmdlXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVUb3VjaFwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVUb3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBEZXRhY2ggbGFiZWwgdGV4dCBhbmQgdG9vbHRpcCBmcm9tIGVhY2ggb3RoZXIgaW4gTGFiZWwgc28gdGhhdCBsYWJlbCBhbmQgdG9vbHRpcCBjYW4gYmUgYWxpZ25lZCBkaWZmZXJlbnRseS4gVGhpcyBpcyBpbiBCb290c3RyYXAgMyBub3Qgc3VwcG9ydGVkIVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwbGl0bGFiZWxhbmRoZWxwdGV4dDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuZm9ybWxheW91dCA9IGZvcm1sYXlvdXQ7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKCkpO1xuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICAgICAgICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UoKSk7XG5cbiAgICAgICAgdGhpcy5pY29uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNJQ09OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0SWNvblNlcnZpY2UoKSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEdldCBJY29uIGZvciBIZWxwdGV4dCBUb29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldCBIZWxwdGV4dFRvb2x0aXBJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkdlbmVyaWNIZWxwdGV4dEljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgZGlydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0aGlzLm5nQ29udHJvbC5kaXJ0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IGVycm9yIG1lc3NhZ2VzIGlubGluZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBa3RpdmllcnQgb2RlciBEZWFrdGl2aWVydCBkaWUgSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gV2VydCB3ZW5uIEZvcm0gaW52YWxpZCBvZGVyIG5pY2h0IGludmFsaWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkYXMgQ29udHJvbCBkaXNhYmxlZCBpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2lubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQgIT09IG51bGwgJiYgdGhpcy5mb3JtbGF5b3V0LklzSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtbGF5b3V0Py5Jc0lubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNldCBsYWJlbCh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2O1xuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbGwgbGFiZWwgc2l6ZXMuIFRoZXNlIHZhbHVlcyBjYW4gdGhlbiBiZSB0cmFuc2ZlcnJlZCB0byBjb3JyZXNwb25kaW5nIENTUyBjbGFzc2VzIHVzaW5nIGEgcGlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWxTaXplcygpOiBJU2FjTGFiZWxTaXplcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbFNpemVTbTogdGhpcy5sYWJlbFNpemVTbSxcbiAgICAgICAgICAgIGxhYmVsU2l6ZU1kOiB0aGlzLmxhYmVsU2l6ZU1kLFxuICAgICAgICAgICAgbGFiZWxTaXplWHM6IHRoaXMubGFiZWxTaXplWHMsXG4gICAgICAgICAgICBsYWJlbFNpemVYbDogdGhpcy5sYWJlbFNpemVYbCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVh4bDogdGhpcy5sYWJlbFNpemVYeGwsXG4gICAgICAgICAgICBsYWJlbFNpemVMZzogdGhpcy5sYWJlbFNpemVMZyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXG4gICAgICovXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKiBJbnB1dCB3aXJkIGJlbsO2dGlndCwgZGFtaXQgZGVyIFdlcnQgYXVjaCDDvGJlciBkYXMgTWFya3VwIGdlc2V0enQgd2VyZGVuIGthbm4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IFZBTFVFKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBlcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xuXG4gICAgICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xuXG4gICAgICAgIC8vIHNldCBTcGxpdE1vZGUgZm9yIExhYmVsc1xuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XG5cbiAgICAgICAgdGhpcy5PbkNsYXNzSW5pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub3VjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gaW0gQ29udHJvbCBtaXRiZWtvbW1lbiBrw7ZubmVuXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gbWl0YmVrb21tZW4sIHdlbm4gZGFzIENvbnRyb2wgYWt0aXZpZXJ0IChGb2N1cykgd2lyZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHJlZ2lzdHJpZXJ0IMOEbmRlcnVuZ2VuIGJlaSBkZXIgVmFsaWRpZXJ1bmdcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGRpZSBkZW4gV2VydCBkZXMgSW5wdXRzIHNldHp0XG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFrdGUgVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBWQUxVRSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gT3ZlcndyaXRlbiBpbiBQYXJlbnQgQ2xhc3Nlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcmV0dXJucyBXZXJ0IGltIGtvcnJla3RlbiBUeXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGVjaW1hbCBTeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIHByaXZhdGUgVXBkYXRlTGFiZWxUb0NvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmZvcm1sYXlvdXQuY29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRIZWxwVGV4dE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5mb3JtbGF5b3V0LmhlbHB0ZXh0bW9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkhlbHB0ZXh0TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBZGFwdGl2ZUxhYmVsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBsYWJlbCBzaXplcyBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TGFiZWxTaXplcygpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLlNwbGl0TGFiZWxBbmRIZWxwdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI4NHVEQWlOSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0FoTkosT0FBU0UsYUFBYSxLQUFRLHdCQUF3QixDQU90RCxPQUNJQyxlQUFlLENBQ2ZDLHdCQUF3QixDQUN4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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTFvZmVsbWpsNCIsImFjdHVhbENvdmVyYWdlIiwiQ29udHJvbEhlaWdodCIsIlNBQ0lDT05fU0VSVklDRSIsIlNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSIsIlNhY0RlZmF1bHRJY29uU2VydmljZSIsIlNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSIsIlNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJjb252ZXJ0VG9Cb29sZWFuIiwiY3JlYXRlR3VpZCIsIkRpcmVjdGl2ZSIsIkhvc3QiLCJJbnB1dCIsIkZvcm1Db250cm9sTmFtZSIsIkZvcm1Hcm91cERpcmVjdGl2ZSIsIk5nQ29udHJvbCIsIk9ic2VydmFibGUiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImUyZWlkZW50aWZpZXIiLCJoZWxwdGV4dCIsImlubGluZUVycm9yIiwiaXNBZGFwdGl2ZUxhYmVsIiwibGFiZWxTaXplTGciLCJsYWJlbFNpemVNZCIsImxhYmVsU2l6ZVNtIiwibGFiZWxTaXplWGwiLCJsYWJlbFNpemVYcyIsImxhYmVsU2l6ZVh4bCIsIm5hbWUiLCJwcm9wYWdhdGVDaGFuZ2UiLCJwcm9wYWdhdGVUb3VjaCIsInNwbGl0bGFiZWxhbmRoZWxwdGV4dCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiZ2V0IiwibG5nUmVzb3VyY2VTZXJ2aWNlIiwiY29uZmlndXJhdGlvblNlcnZpY2UiLCJpY29uU2VydmljZSIsIkhlbHB0ZXh0VG9vbHRpcEljb24iLCJHZW5lcmljSGVscHRleHRJY29uIiwiZGlydHkiLCJiIiwibmdDb250cm9sIiwidW5kZWZpbmVkIiwiaW5saW5lZXJyb3JlbmFibGVkIiwidmFsdWUiLCJpbnZhbGlkIiwiaXNkaXNhYmxlZCIsImlzaW5saW5lZXJyb3JlbmFibGVkIiwiSXNJbmxpbmVFcnJvckVuYWJsZWQiLCJJbmxpbmVFcnJvckVuYWJsZWQiLCJsYWJlbCIsInYiLCJVcGRhdGVMYWJlbFRvQ29udHJvbCIsImxhYmVsU2l6ZXMiLCJ0b3VjaGVkIiwiQ29udmVydElucHV0VmFsdWUiLCJHZXRFcnJvck1lc3NhZ2UiLCJlcnJvcnMiLCJvYnNlcnZlciIsIm5leHQiLCJjb21wbGV0ZSIsImxlbmd0aCIsImtleXMiLCJPYmplY3QiLCJlcnJvckl0ZW0iLCJwYXJhbWV0ZXJzIiwiZm9yRWFjaCIsImsiLCJmaWVsZE5hbWUiLCJHZXRTdHJpbmciLCJlcnJvck1lc3NhZ2VLZXkiLCJuZ09uSW5pdCIsImZvcm1Db250cm9sIiwiZm9ybSIsImdldENvbnRyb2wiLCJjb250cm9sIiwic2V0TGFiZWxTaXplcyIsInNldENvbXBvbmVudEhlaWdodCIsInNldElzQWRhcHRpdmVMYWJlbCIsInNldEhlbHBUZXh0TW9kZSIsInNldExhYmVsU3BsaXRNb2RlIiwiT25DbGFzc0luaXQiLCJvblRvdWNoIiwicmVnaXN0ZXJPbkNoYW5nZSIsImZuIiwib2JqIiwicmVnaXN0ZXJPblRvdWNoZWQiLCJyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlIiwiX29uQ2hhbmdlIiwic2V0RGlzYWJsZWRTdGF0ZSIsImlzRGlzYWJsZWQiLCJzZXRWYWx1ZSIsInZhbGlkYXRlIiwiYyIsImVycm9yIiwidmFsaWRhdGVEYXRhIiwid3JpdGVWYWx1ZSIsIkdldERlY2ltYWxTeW1ib2wiLCJVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5IiwidXBkYXRlVmFsdWVBbmRWYWxpZGl0eSIsIm9ubHlTZWxmIiwiY29udHJvbGxhYmVsIiwiQ29tcG9uZW50SGVpZ2h0IiwiaGVscHRleHRtb2RlIiwiSGVscHRleHRNb2RlIiwiTGFiZWxTaXplWHMiLCJMYWJlbFNpemVTbSIsIkxhYmVsU2l6ZU1kIiwiTGFiZWxTaXplTGciLCJMYWJlbFNpemVYbCIsIkxhYmVsU2l6ZVh4bCIsIlNwbGl0TGFiZWxBbmRIZWxwdGV4dCIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImhvc3QiLCJpMCIsIkluamVjdG9yIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZW1vZGVsY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGlydHk7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgdG91Y2hlZDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIG5nQ29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbEhlaWdodCBlbnVtIGZvciB1c2UgaW4gSFRNTCBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgQ29udHJvbEhlaWdodDogdHlwZW9mIENvbnRyb2xIZWlnaHQgPSBDb250cm9sSGVpZ2h0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgc3RhbmRhcmQgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnRzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29tcG9uZW50SGVpZ2h0OiBDb250cm9sSGVpZ2h0IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEZWFrdGl2aWVydCBkYXMgSW5wdXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIExhYmVsIGltIFRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVsYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTW9kZSBmb3IgZGlzcGxheSBoZWxwdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlbHB0ZXh0bW9kZTogJ3Rvb2x0aXAnIHwgJ3RleHQnIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhhdCBlcnJvciBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIHVuZGVyIHRoZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmVFcnJvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0FkYXB0aXZlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZSBzaXplIGZvciBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTGc6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBtZWRpdW0gZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZU1kOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgY29sdW1uIHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBkZXMgQ29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlQ2hhbmdlXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVUb3VjaFwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVUb3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBEZXRhY2ggbGFiZWwgdGV4dCBhbmQgdG9vbHRpcCBmcm9tIGVhY2ggb3RoZXIgaW4gTGFiZWwgc28gdGhhdCBsYWJlbCBhbmQgdG9vbHRpcCBjYW4gYmUgYWxpZ25lZCBkaWZmZXJlbnRseS4gVGhpcyBpcyBpbiBCb290c3RyYXAgMyBub3Qgc3VwcG9ydGVkIVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwbGl0bGFiZWxhbmRoZWxwdGV4dDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuZm9ybWxheW91dCA9IGZvcm1sYXlvdXQ7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKCkpO1xuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICAgICAgICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UoKSk7XG5cbiAgICAgICAgdGhpcy5pY29uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNJQ09OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0SWNvblNlcnZpY2UoKSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEdldCBJY29uIGZvciBIZWxwdGV4dCBUb29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldCBIZWxwdGV4dFRvb2x0aXBJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkdlbmVyaWNIZWxwdGV4dEljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgZGlydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0aGlzLm5nQ29udHJvbC5kaXJ0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IGVycm9yIG1lc3NhZ2VzIGlubGluZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBa3RpdmllcnQgb2RlciBEZWFrdGl2aWVydCBkaWUgSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gV2VydCB3ZW5uIEZvcm0gaW52YWxpZCBvZGVyIG5pY2h0IGludmFsaWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkYXMgQ29udHJvbCBkaXNhYmxlZCBpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2lubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQgIT09IG51bGwgJiYgdGhpcy5mb3JtbGF5b3V0LklzSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtbGF5b3V0Py5Jc0lubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNldCBsYWJlbCh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2O1xuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbGwgbGFiZWwgc2l6ZXMuIFRoZXNlIHZhbHVlcyBjYW4gdGhlbiBiZSB0cmFuc2ZlcnJlZCB0byBjb3JyZXNwb25kaW5nIENTUyBjbGFzc2VzIHVzaW5nIGEgcGlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWxTaXplcygpOiBJU2FjTGFiZWxTaXplcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbFNpemVTbTogdGhpcy5sYWJlbFNpemVTbSxcbiAgICAgICAgICAgIGxhYmVsU2l6ZU1kOiB0aGlzLmxhYmVsU2l6ZU1kLFxuICAgICAgICAgICAgbGFiZWxTaXplWHM6IHRoaXMubGFiZWxTaXplWHMsXG4gICAgICAgICAgICBsYWJlbFNpemVYbDogdGhpcy5sYWJlbFNpemVYbCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVh4bDogdGhpcy5sYWJlbFNpemVYeGwsXG4gICAgICAgICAgICBsYWJlbFNpemVMZzogdGhpcy5sYWJlbFNpemVMZyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXG4gICAgICovXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKiBJbnB1dCB3aXJkIGJlbsO2dGlndCwgZGFtaXQgZGVyIFdlcnQgYXVjaCDDvGJlciBkYXMgTWFya3VwIGdlc2V0enQgd2VyZGVuIGthbm4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IFZBTFVFKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBlcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xuXG4gICAgICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xuXG4gICAgICAgIC8vIHNldCBTcGxpdE1vZGUgZm9yIExhYmVsc1xuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XG5cbiAgICAgICAgdGhpcy5PbkNsYXNzSW5pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub3VjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gaW0gQ29udHJvbCBtaXRiZWtvbW1lbiBrw7ZubmVuXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gbWl0YmVrb21tZW4sIHdlbm4gZGFzIENvbnRyb2wgYWt0aXZpZXJ0IChGb2N1cykgd2lyZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHJlZ2lzdHJpZXJ0IMOEbmRlcnVuZ2VuIGJlaSBkZXIgVmFsaWRpZXJ1bmdcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGRpZSBkZW4gV2VydCBkZXMgSW5wdXRzIHNldHp0XG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFrdGUgVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBWQUxVRSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gT3ZlcndyaXRlbiBpbiBQYXJlbnQgQ2xhc3Nlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcmV0dXJucyBXZXJ0IGltIGtvcnJla3RlbiBUeXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGVjaW1hbCBTeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIHByaXZhdGUgVXBkYXRlTGFiZWxUb0NvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmZvcm1sYXlvdXQuY29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRIZWxwVGV4dE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5mb3JtbGF5b3V0LmhlbHB0ZXh0bW9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkhlbHB0ZXh0TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBZGFwdGl2ZUxhYmVsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBsYWJlbCBzaXplcyBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TGFiZWxTaXplcygpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLlNwbGl0TGFiZWxBbmRIZWxwdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI4NHVEQWlOSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0FoTkosT0FBU0UsYUFBYSxLQUFRLHdCQUF3QixDQU90RCxPQUNJQyxlQUFlLENBQ2ZDLHdCQUF3QixDQUN4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
@@ -6,4 +6,4 @@ cov_bo14l1za0=function(){return actualCoverage;};}return actualCoverage;}cov_bo1
6
6
  */cov_bo14l1za0().s[1]++;this.grouplabel='label';/**
7
7
  * Definiert die Collection der Items im Group Element
8
8
  */cov_bo14l1za0().s[2]++;this.groupitems='';}}cov_bo14l1za0().s[3]++;SacBaseSelectControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseSelectControl,deps:null,target:i0.ɵɵFactoryTarget.Directive});cov_bo14l1za0().s[4]++;SacBaseSelectControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseSelectControl,inputs:{grouplabel:"grouplabel",groupitems:"groupitems"},usesInheritance:true,ngImport:i0});cov_bo14l1za0().s[5]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseSelectControl,decorators:[{type:Directive}],propDecorators:{grouplabel:[{type:Input}],groupitems:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXNlbGVjdGNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXNlbGVjdGNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXZEOztHQUVHO0FBRUgsTUFBTSxPQUFnQixvQkFBNEIsU0FBUSxrQkFBeUI7SUFEbkY7O1FBR0U7O1dBRUc7UUFDTSxlQUFVLEdBQVcsT0FBTyxDQUFDO1FBRXRDOztXQUVHO1FBQ00sZUFBVSxHQUFXLEVBQUUsQ0FBQztLQUVsQzs7aUhBWnFCLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVM7OEJBTUMsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQmFzZUxpc3RDb250cm9sIH0gZnJvbSAnLi9iYXNlbGlzdGNvbnRyb2wnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VTZWxlY3RDb250cm9sLiBFeHRlbmRlcyBTYWNCYXNlTGlzdENvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZVNlbGVjdENvbnRyb2w8VkFMVUU+IGV4dGVuZHMgU2FjQmFzZUxpc3RDb250cm9sPFZBTFVFPiB7XG5cbiAgLyoqXG4gICAqIERlZmluaWVydCBkYXMgTGFiZWwgZsO8ciBkYXMgR3JvdXAgRWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBsYWJlbDogc3RyaW5nID0gJ2xhYmVsJztcblxuICAvKipcbiAgICogRGVmaW5pZXJ0IGRpZSBDb2xsZWN0aW9uIGRlciBJdGVtcyBpbSBHcm91cCBFbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBncm91cGl0ZW1zOiBzdHJpbmcgPSAnJztcblxufVxuIl19
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfYm8xNGwxemEwIiwiYWN0dWFsQ292ZXJhZ2UiLCJJbnB1dCIsIkRpcmVjdGl2ZSIsIlNhY0Jhc2VMaXN0Q29udHJvbCIsIlNhY0Jhc2VTZWxlY3RDb250cm9sIiwiY29uc3RydWN0b3IiLCJmIiwicyIsImdyb3VwbGFiZWwiLCJncm91cGl0ZW1zIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXNlbGVjdGNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQmFzZUxpc3RDb250cm9sIH0gZnJvbSAnLi9iYXNlbGlzdGNvbnRyb2wnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VTZWxlY3RDb250cm9sLiBFeHRlbmRlcyBTYWNCYXNlTGlzdENvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZVNlbGVjdENvbnRyb2w8VkFMVUU+IGV4dGVuZHMgU2FjQmFzZUxpc3RDb250cm9sPFZBTFVFPiB7XG5cbiAgLyoqXG4gICAqIERlZmluaWVydCBkYXMgTGFiZWwgZsO8ciBkYXMgR3JvdXAgRWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBsYWJlbDogc3RyaW5nID0gJ2xhYmVsJztcblxuICAvKipcbiAgICogRGVmaW5pZXJ0IGRpZSBDb2xsZWN0aW9uIGRlciBJdGVtcyBpbSBHcm91cCBFbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBncm91cGl0ZW1zOiBzdHJpbmcgPSAnJztcblxufVxuIl0sIm1hcHBpbmdzIjoiZ3hFQWdCSztBQUFBQSxhQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGFBQUEsR0FoQkwsT0FBU0UsS0FBSyxDQUFFQyxTQUFTLEtBQVEsZUFBZSxDQUNoRCxPQUFTQyxrQkFBa0IsS0FBUSxtQkFBbUIsQyxpQ0FFdEQ7O0dBSUEsTUFBTSxNQUFnQixDQUFBQyxvQkFBNEIsUUFBUSxDQUFBRCxrQkFBeUIsQ0FEbkZFLFlBQUEsRUFBQU4sYUFBQSxHQUFBTyxDQUFBLE1BQUFQLGFBQUEsR0FBQVEsQ0FBQSxNLG9CQUdFOztXQUFBUixhQUFBLEdBQUFRLENBQUEsTUFHUyxLQUFBQyxVQUFVLENBQVcsT0FBTyxDQUVyQzs7V0FBQVQsYUFBQSxHQUFBUSxDQUFBLE1BR1MsS0FBQUUsVUFBVSxDQUFXLEVBQUUsQyxnSUFWWkwsb0JBQW9CLENBQUFNLElBQUEsTUFBQUMsTUFBQSxDQUFBQyxFQUFBLENBQUFDLGVBQUEsQ0FBQVgsU0FBQSxHQUFBSCxhQUFBLEdBQUFRLENBQUEsTSw2RkFBcEJILG9CQUFvQixDQUFBVSxNQUFBLEVBQUFOLFVBQUEsY0FBQUMsVUFBQSxlQUFBTSxlQUFBLE1BQUFDLFFBQUEsQ0FBQUosRUFBQSxHQUFBYixhQUFBLEdBQUFRLENBQUEsTSxtRkFBcEJILG9CQUFvQixDQUFBYSxVQUFBLEcsS0FEekNmLFMsbUJBTVVNLFVBQVUsRyxLQUFsQlAsSyxHQUtRUSxVQUFVLEcsS0FBbEJSLEsiLCJpZ25vcmVMaXN0IjpbXX0=
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfYm8xNGwxemEwIiwiYWN0dWFsQ292ZXJhZ2UiLCJJbnB1dCIsIkRpcmVjdGl2ZSIsIlNhY0Jhc2VMaXN0Q29udHJvbCIsIlNhY0Jhc2VTZWxlY3RDb250cm9sIiwiY29uc3RydWN0b3IiLCJmIiwicyIsImdyb3VwbGFiZWwiLCJncm91cGl0ZW1zIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXNlbGVjdGNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQmFzZUxpc3RDb250cm9sIH0gZnJvbSAnLi9iYXNlbGlzdGNvbnRyb2wnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VTZWxlY3RDb250cm9sLiBFeHRlbmRlcyBTYWNCYXNlTGlzdENvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZVNlbGVjdENvbnRyb2w8VkFMVUU+IGV4dGVuZHMgU2FjQmFzZUxpc3RDb250cm9sPFZBTFVFPiB7XG5cbiAgLyoqXG4gICAqIERlZmluaWVydCBkYXMgTGFiZWwgZsO8ciBkYXMgR3JvdXAgRWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBsYWJlbDogc3RyaW5nID0gJ2xhYmVsJztcblxuICAvKipcbiAgICogRGVmaW5pZXJ0IGRpZSBDb2xsZWN0aW9uIGRlciBJdGVtcyBpbSBHcm91cCBFbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBncm91cGl0ZW1zOiBzdHJpbmcgPSAnJztcblxufVxuIl0sIm1hcHBpbmdzIjoiZ3hFQWdCSztBQUFBQSxhQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGFBQUEsR0FoQkwsT0FBU0UsS0FBSyxDQUFFQyxTQUFTLEtBQVEsZUFBZSxDQUNoRCxPQUFTQyxrQkFBa0IsS0FBUSxtQkFBbUIsQyxpQ0FFdEQ7O0dBSUEsTUFBTSxNQUFnQixDQUFBQyxvQkFBNEIsUUFBUSxDQUFBRCxrQkFBeUIsQ0FEbkZFLFlBQUEsRUFBQU4sYUFBQSxHQUFBTyxDQUFBLEtBQUFQLENBQUEsZ0JBQUFRLENBQUEsTSxvQkFHRTs7V0FBQVIsYUFBQSxHQUFBUSxDQUFBLE1BR1MsS0FBQUMsVUFBVSxDQUFXLE9BQU8sQ0FFckM7O1dBQUFULGFBQUEsR0FBQVEsQ0FBQSxNQUdTLEtBQUFFLFVBQVUsQ0FBVyxFQUFFLEMsZ0lBVlpMLG9CQUFvQixDQUFBTSxJQUFBLE1BQUFDLE1BQUEsQ0FBQUMsRUFBQSxDQUFBQyxlQUFBLENBQUFYLFNBQUEsR0FBQUgsYUFBQSxHQUFBUSxDQUFBLE0sNkZBQXBCSCxvQkFBb0IsQ0FBQVUsTUFBQSxFQUFBTixVQUFBLGNBQUFDLFVBQUEsZUFBQU0sZUFBQSxNQUFBQyxRQUFBLENBQUFKLEVBQUEsR0FBQWIsYUFBQSxHQUFBUSxDQUFBLE0sbUZBQXBCSCxvQkFBb0IsQ0FBQWEsVUFBQSxHLEtBRHpDZixTLG1CQU1VTSxVQUFVLEcsS0FBbEJQLEssR0FLUVEsVUFBVSxHLEtBQWxCUixLIiwiaWdub3JlTGlzdCI6W119