@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
@@ -33,4 +33,4 @@ cov_xwehkaz3b=function(){return actualCoverage;};}return actualCoverage;}cov_xwe
33
33
  /**
34
34
  * Die Methode wird das cklickaction Emitter aktivieren
35
35
  */callaction(event){cov_xwehkaz3b().f[5]++;cov_xwehkaz3b().s[15]++;if(!this._isdisabled){cov_xwehkaz3b().b[4][0]++;cov_xwehkaz3b().s[16]++;this.clicked.emit();cov_xwehkaz3b().s[17]++;if(this.contextmenu!==null){cov_xwehkaz3b().b[5][0]++;cov_xwehkaz3b().s[18]++;this.contextmenu.close();}else{cov_xwehkaz3b().b[5][1]++;}}else{cov_xwehkaz3b().b[4][1]++;}cov_xwehkaz3b().s[19]++;event.stopPropagation();}}cov_xwehkaz3b().s[20]++;SacContextmenuItemButtonCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacContextmenuItemButtonCommon,deps:[],target:i0.ɵɵFactoryTarget.Directive});cov_xwehkaz3b().s[21]++;SacContextmenuItemButtonCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacContextmenuItemButtonCommon,inputs:{cssclass:"cssclass",icon:"icon",iconstyle:"iconstyle",image:"image",name:"name",text:"text",isdisabled:"isdisabled",isicondisabled:"isicondisabled"},outputs:{clicked:"clicked"},usesInheritance:true,ngImport:i0});cov_xwehkaz3b().s[22]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacContextmenuItemButtonCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_xwehkaz3b().f[6]++;cov_xwehkaz3b().s[23]++;return[];},propDecorators:{clicked:[{type:Output}],cssclass:[{type:Input}],icon:[{type:Input}],iconstyle:[{type:Input}],image:[{type:Input}],name:[{type:Input}],text:[{type:Input}],isdisabled:[{type:Input}],isicondisabled:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnVpdGVtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnVpdGVtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXZFOztHQUVHO0FBRUgsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUF3QjtJQXVEeEUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7T0FFRztJQUNIO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUE5RFoscUJBQXFCO1FBRXJCOztXQUVHO1FBQ08sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFdkM7O1dBRUc7UUFDTyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUUzQzs7V0FFRztRQUVJLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU5RDs7V0FFRztRQUVJLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFRN0I7O1dBRUc7UUFFSSxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBUTlCOztXQUVHO1FBRUksU0FBSSxHQUFXLEVBQUUsQ0FBQztJQWlCekIsQ0FBQztJQUVELDBCQUEwQjtJQUUxQixxQ0FBcUM7SUFFckM7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csVUFBVSxDQUFDLENBQW1CO1FBQ3JDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQVksQ0FBQztTQUNuQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGNBQWMsQ0FBQyxDQUFtQjtRQUN6QyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFZLENBQUM7U0FDdkM7YUFBTTtZQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEMseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQWlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM1QjtTQUNKO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7OzJIQTVIUSw4QkFBOEI7K0dBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUQxQyxTQUFTOzBFQWtCQyxPQUFPO3NCQURiLE1BQU07Z0JBT0EsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUs7Z0JBNkJLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBb0JLLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51aXRlbSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgQ29udGV4dCBNZW51IEJ1dHRvbiBJdGVtXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0NvbnRleHRtZW51SXRlbUJ1dHRvbkNvbW1vbiBleHRlbmRzIFNhY0NvbnRleHRtZW51SXRlbUNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW0gaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIENvbHVtbiBpbiBNZW7DvCBpc3QgZGVha3RpdmllcnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2lzaWNvbmRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3ZW5uIGF1ZiBkZW4gQnV0dG9uIGdla2xpY2t0IHdpcmRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogY3NzIGNsYXNzIGZvciBidXR0b24gc3R5bGluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNzc2NsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEljb24gZsO8ciBNZW7DvFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElucHV0IFByb3BlcnR5IGbDvHIgU3R5bGluZyBkZXMgQnV0dG9ucy4gRGVmaW5pZXJ0IGRpZSBDc3MgS2xhc3NlbiBkZXMgQnV0dG9uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25zdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBJbWFnZSBmw7xyIE1lbsO8LiBXaXJkIGJlbsO2dGlndCB3ZW5uIGRhcyBJY29uIGbDvHIgZGVuIEJ1dHRvbiBlaW4gRmlsZSB1bmQgbmljaHQgZWluIEljb24gRm9udCBpc3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgYnV0dG9uLiB1c2VkIGZvciBnZW5lcmF0ZSBpZCBhbmQgbmFtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmw7xyIE1lbsO8IEl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2Rpc2FibGVkKHY6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB2ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzZGlzYWJsZWQgPSB2IGFzIGJvb2xlYW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc2Rpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWNvbiBDb2x1bW4gaW4gTWVuw7wgaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2ljb25kaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzaWNvbmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEljb24gQ29sdW1uIGluIE1lbsO8IGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2ljb25kaXNhYmxlZCh2OiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aGlzLl9pc2ljb25kaXNhYmxlZCA9IHYgYXMgYm9vbGVhbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzaWNvbmRpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgd2lyZCBkYXMgY2tsaWNrYWN0aW9uIEVtaXR0ZXIgYWt0aXZpZXJlblxuICAgICAqL1xuICAgIHB1YmxpYyBjYWxsYWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5faXNkaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dG1lbnUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRtZW51LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl19
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfeHdlaGthejNiIiwiYWN0dWFsQ292ZXJhZ2UiLCJTYWNDb250ZXh0bWVudUl0ZW1Db21tb24iLCJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJJbnB1dCIsIk91dHB1dCIsIlNhY0NvbnRleHRtZW51SXRlbUJ1dHRvbkNvbW1vbiIsImNvbnN0cnVjdG9yIiwiZiIsInMiLCJfaXNkaXNhYmxlZCIsIl9pc2ljb25kaXNhYmxlZCIsImNsaWNrZWQiLCJjc3NjbGFzcyIsImljb25zdHlsZSIsIm5hbWUiLCJpc2Rpc2FibGVkIiwidiIsImIiLCJ1bmRlZmluZWQiLCJpc2ljb25kaXNhYmxlZCIsImNhbGxhY3Rpb24iLCJldmVudCIsImVtaXQiLCJjb250ZXh0bWVudSIsImNsb3NlIiwic3RvcFByb3BhZ2F0aW9uIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJpY29uIiwiaW1hZ2UiLCJ0ZXh0Iiwib3V0cHV0cyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL2NvbnRleHRtZW51L2NvbnRleHRtZW51aXRlbWJ1dHRvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51aXRlbSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgQ29udGV4dCBNZW51IEJ1dHRvbiBJdGVtXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0NvbnRleHRtZW51SXRlbUJ1dHRvbkNvbW1vbiBleHRlbmRzIFNhY0NvbnRleHRtZW51SXRlbUNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW0gaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIENvbHVtbiBpbiBNZW7DvCBpc3QgZGVha3RpdmllcnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2lzaWNvbmRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3ZW5uIGF1ZiBkZW4gQnV0dG9uIGdla2xpY2t0IHdpcmRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogY3NzIGNsYXNzIGZvciBidXR0b24gc3R5bGluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNzc2NsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEljb24gZsO8ciBNZW7DvFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElucHV0IFByb3BlcnR5IGbDvHIgU3R5bGluZyBkZXMgQnV0dG9ucy4gRGVmaW5pZXJ0IGRpZSBDc3MgS2xhc3NlbiBkZXMgQnV0dG9uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25zdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBJbWFnZSBmw7xyIE1lbsO8LiBXaXJkIGJlbsO2dGlndCB3ZW5uIGRhcyBJY29uIGbDvHIgZGVuIEJ1dHRvbiBlaW4gRmlsZSB1bmQgbmljaHQgZWluIEljb24gRm9udCBpc3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgYnV0dG9uLiB1c2VkIGZvciBnZW5lcmF0ZSBpZCBhbmQgbmFtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmw7xyIE1lbsO8IEl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2Rpc2FibGVkKHY6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB2ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzZGlzYWJsZWQgPSB2IGFzIGJvb2xlYW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc2Rpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWNvbiBDb2x1bW4gaW4gTWVuw7wgaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2ljb25kaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzaWNvbmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEljb24gQ29sdW1uIGluIE1lbsO8IGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2ljb25kaXNhYmxlZCh2OiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aGlzLl9pc2ljb25kaXNhYmxlZCA9IHYgYXMgYm9vbGVhbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzaWNvbmRpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgd2lyZCBkYXMgY2tsaWNrYWN0aW9uIEVtaXR0ZXIgYWt0aXZpZXJlblxuICAgICAqL1xuICAgIHB1YmxpYyBjYWxsYWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5faXNkaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dG1lbnUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRtZW51LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl0sIm1hcHBpbmdzIjoiaTVTQVVJO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQVZKLE9BQVNFLHdCQUF3QixLQUFRLG1CQUFtQixDQUM1RCxPQUFTQyxTQUFTLENBQUVDLFlBQVksQ0FBRUMsS0FBSyxDQUFFQyxNQUFNLEtBQVEsZUFBZSxDLGlDQUV0RTs7R0FJQSxNQUFNLE1BQU8sQ0FBQUMsOEJBQStCLFFBQVEsQ0FBQUwsd0JBQXdCLENBdUR4RTtBQUVBO0FBRUE7O09BR0FNLFlBQUEsRUFBQVIsYUFBQSxHQUFBUyxDQUFBLE1BQUFULGFBQUEsR0FBQVUsQ0FBQSxNQUNJLEtBQUssRUFBRSxDQTlEWDtBQUVBOztXQUFBVixhQUFBLEdBQUFVLENBQUEsTUFHVSxLQUFBQyxXQUFXLENBQVksS0FBSyxDQUV0Qzs7V0FBQVgsYUFBQSxHQUFBVSxDQUFBLE1BR1UsS0FBQUUsZUFBZSxDQUFZLEtBQUssQ0FFMUM7O1dBQUFaLGFBQUEsR0FBQVUsQ0FBQSxNQUlPLEtBQUFHLE9BQU8sQ0FBdUIsR0FBSSxDQUFBVCxZQUFZLEVBQVEsQ0FFN0Q7O1dBQUFKLGFBQUEsR0FBQVUsQ0FBQSxNQUlPLEtBQUFJLFFBQVEsQ0FBVyxFQUFFLENBUTVCOztXQUFBZCxhQUFBLEdBQUFVLENBQUEsTUFJTyxLQUFBSyxTQUFTLENBQVcsRUFBRSxDQVE3Qjs7V0FBQWYsYUFBQSxHQUFBVSxDQUFBLE1BSU8sS0FBQU0sSUFBSSxDQUFXLEVBQUUsQ0FpQnhCLENBRUE7QUFFQTtBQUVBOztPQUdBLEdBQVcsQ0FBQUMsVUFBVUEsQ0FBQSxFQUFBakIsYUFBQSxHQUFBUyxDQUFBLE1BQUFULGFBQUEsR0FBQVUsQ0FBQSxNQUNqQixNQUFPLEtBQUksQ0FBQ0MsV0FBVyxDQUMzQixDQUVBOztPQUdBLEdBQ1csQ0FBQU0sVUFBVUEsQ0FBQ0MsQ0FBbUIsRUFBQWxCLGFBQUEsR0FBQVMsQ0FBQSxNQUFBVCxhQUFBLEdBQUFVLENBQUEsTUFDckMsR0FBSSxDQUFBVixhQUFBLEdBQUFtQixDQUFBLFNBQUFELENBQUMsR0FBSyxJQUFJLElBQUFsQixhQUFBLEdBQUFtQixDQUFBLFNBQUlELENBQUMsR0FBS0UsU0FBUyxJQUFBcEIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFJLE1BQU8sQ0FBQUQsQ0FBQyxHQUFLLFNBQVMsRUFBRSxDQUFBbEIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFBbkIsYUFBQSxHQUFBVSxDQUFBLE1BQ3pELElBQUksQ0FBQ0MsV0FBVyxDQUFHTyxDQUFZLEMsQ0FDbEMsSUFBTSxDQUFBbEIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFBbkIsYUFBQSxHQUFBVSxDQUFBLE9BQ0gsSUFBSSxDQUFDQyxXQUFXLENBQUdPLENBQUMsR0FBSyxNQUFNLEMsQ0FFdkMsQ0FFQTs7T0FHQSxHQUFXLENBQUFHLGNBQWNBLENBQUEsRUFBQXJCLGFBQUEsR0FBQVMsQ0FBQSxNQUFBVCxhQUFBLEdBQUFVLENBQUEsT0FDckIsTUFBTyxLQUFJLENBQUNFLGVBQWUsQ0FDL0IsQ0FFQTs7T0FHQSxHQUNXLENBQUFTLGNBQWNBLENBQUNILENBQW1CLEVBQUFsQixhQUFBLEdBQUFTLENBQUEsTUFBQVQsYUFBQSxHQUFBVSxDQUFBLE9BQ3pDLEdBQUksQ0FBQVYsYUFBQSxHQUFBbUIsQ0FBQSxTQUFBRCxDQUFDLEdBQUssSUFBSSxJQUFBbEIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFJRCxDQUFDLEdBQUtFLFNBQVMsSUFBQXBCLGFBQUEsR0FBQW1CLENBQUEsU0FBSSxNQUFPLENBQUFELENBQUMsR0FBSyxTQUFTLEVBQUUsQ0FBQWxCLGFBQUEsR0FBQW1CLENBQUEsU0FBQW5CLGFBQUEsR0FBQVUsQ0FBQSxPQUN6RCxJQUFJLENBQUNFLGVBQWUsQ0FBR00sQ0FBWSxDLENBQ3RDLElBQU0sQ0FBQWxCLGFBQUEsR0FBQW1CLENBQUEsU0FBQW5CLGFBQUEsR0FBQVUsQ0FBQSxPQUNILElBQUksQ0FBQ0UsZUFBZSxDQUFHTSxDQUFDLEdBQUssTUFBTSxDLENBRTNDLENBRUE7QUFFQTtBQUVBOztPQUdPSSxVQUFVQSxDQUFDQyxLQUFpQixFQUFBdkIsYUFBQSxHQUFBUyxDQUFBLE1BQUFULGFBQUEsR0FBQVUsQ0FBQSxPQUMvQixHQUFJLENBQUMsSUFBSSxDQUFDQyxXQUFXLENBQUUsQ0FBQVgsYUFBQSxHQUFBbUIsQ0FBQSxTQUFBbkIsYUFBQSxHQUFBVSxDQUFBLE9BQ25CLElBQUksQ0FBQ0csT0FBTyxDQUFDVyxJQUFJLEVBQUUsQ0FBQ3hCLGFBQUEsR0FBQVUsQ0FBQSxPQUVwQixHQUFJLElBQUksQ0FBQ2UsV0FBVyxHQUFLLElBQUksQ0FBRSxDQUFBekIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFBbkIsYUFBQSxHQUFBVSxDQUFBLE9BQzNCLElBQUksQ0FBQ2UsV0FBVyxDQUFDQyxLQUFLLEVBQUUsQyxDQUMzQixLQUFBMUIsYUFBQSxHQUFBbUIsQ0FBQSxVLENBQ0osS0FBQW5CLGFBQUEsR0FBQW1CLENBQUEsVUFBQW5CLGFBQUEsR0FBQVUsQ0FBQSxPQUNEYSxLQUFLLENBQUNJLGVBQWUsRUFBRSxDQUMzQixDLDBJQTVIU3BCLDhCQUE4QixDQUFBcUIsSUFBQSxJQUFBQyxNQUFBLENBQUFDLEVBQUEsQ0FBQUMsZUFBQSxDQUFBNUIsU0FBQSxHQUFBSCxhQUFBLEdBQUFVLENBQUEsTyx1R0FBOUJILDhCQUE4QixDQUFBeUIsTUFBQSxFQUFBbEIsUUFBQSxZQUFBbUIsSUFBQSxRQUFBbEIsU0FBQSxhQUFBbUIsS0FBQSxTQUFBbEIsSUFBQSxRQUFBbUIsSUFBQSxRQUFBbEIsVUFBQSxjQUFBSSxjQUFBLG1CQUFBZSxPQUFBLEVBQUF2QixPQUFBLFlBQUF3QixlQUFBLE1BQUFDLFFBQUEsQ0FBQVIsRUFBQSxHQUFBOUIsYUFBQSxHQUFBVSxDQUFBLE8sbUZBQTlCSCw4QkFBOEIsQ0FBQWdDLFVBQUEsRyxLQUQxQ3BDLFMsdUdBa0JVVSxPQUFPLEcsS0FEYlAsTSxHQU9NUSxRQUFRLEcsS0FEZFQsSyxHQU9NNEIsSUFBSSxHLEtBRFY1QixLLEdBT01VLFNBQVMsRyxLQURmVixLLEdBT002QixLQUFLLEcsS0FEWDdCLEssR0FPTVcsSUFBSSxHLEtBRFZYLEssR0FPTThCLElBQUksRyxLQURWOUIsSyxHQTZCVVksVUFBVSxHLEtBRHBCWixLLEdBb0JVZ0IsY0FBYyxHLEtBRHhCaEIsSyIsImlnbm9yZUxpc3QiOltdfQ==
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfeHdlaGthejNiIiwiYWN0dWFsQ292ZXJhZ2UiLCJTYWNDb250ZXh0bWVudUl0ZW1Db21tb24iLCJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJJbnB1dCIsIk91dHB1dCIsIlNhY0NvbnRleHRtZW51SXRlbUJ1dHRvbkNvbW1vbiIsImNvbnN0cnVjdG9yIiwiZiIsInMiLCJfaXNkaXNhYmxlZCIsIl9pc2ljb25kaXNhYmxlZCIsImNsaWNrZWQiLCJjc3NjbGFzcyIsImljb25zdHlsZSIsIm5hbWUiLCJpc2Rpc2FibGVkIiwidiIsImIiLCJ1bmRlZmluZWQiLCJpc2ljb25kaXNhYmxlZCIsImNhbGxhY3Rpb24iLCJldmVudCIsImVtaXQiLCJjb250ZXh0bWVudSIsImNsb3NlIiwic3RvcFByb3BhZ2F0aW9uIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJpY29uIiwiaW1hZ2UiLCJ0ZXh0Iiwib3V0cHV0cyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL2NvbnRleHRtZW51L2NvbnRleHRtZW51aXRlbWJ1dHRvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICcuL2NvbnRleHRtZW51aXRlbSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgQ29udGV4dCBNZW51IEJ1dHRvbiBJdGVtXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0NvbnRleHRtZW51SXRlbUJ1dHRvbkNvbW1vbiBleHRlbmRzIFNhY0NvbnRleHRtZW51SXRlbUNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW0gaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pc2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIENvbHVtbiBpbiBNZW7DvCBpc3QgZGVha3RpdmllcnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2lzaWNvbmRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3ZW5uIGF1ZiBkZW4gQnV0dG9uIGdla2xpY2t0IHdpcmRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogY3NzIGNsYXNzIGZvciBidXR0b24gc3R5bGluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNzc2NsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEljb24gZsO8ciBNZW7DvFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElucHV0IFByb3BlcnR5IGbDvHIgU3R5bGluZyBkZXMgQnV0dG9ucy4gRGVmaW5pZXJ0IGRpZSBDc3MgS2xhc3NlbiBkZXMgQnV0dG9uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25zdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBJbWFnZSBmw7xyIE1lbsO8LiBXaXJkIGJlbsO2dGlndCB3ZW5uIGRhcyBJY29uIGbDvHIgZGVuIEJ1dHRvbiBlaW4gRmlsZSB1bmQgbmljaHQgZWluIEljb24gRm9udCBpc3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgYnV0dG9uLiB1c2VkIGZvciBnZW5lcmF0ZSBpZCBhbmQgbmFtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmw7xyIE1lbsO8IEl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtIGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2Rpc2FibGVkKHY6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB2ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzZGlzYWJsZWQgPSB2IGFzIGJvb2xlYW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc2Rpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWNvbiBDb2x1bW4gaW4gTWVuw7wgaXN0IGRlYWt0aXZpZXJ0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2ljb25kaXNhYmxlZCgpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzaWNvbmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEljb24gQ29sdW1uIGluIE1lbsO8IGlzdCBkZWFrdGl2aWVydFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc2ljb25kaXNhYmxlZCh2OiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aGlzLl9pc2ljb25kaXNhYmxlZCA9IHYgYXMgYm9vbGVhbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzaWNvbmRpc2FibGVkID0gdiA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgd2lyZCBkYXMgY2tsaWNrYWN0aW9uIEVtaXR0ZXIgYWt0aXZpZXJlblxuICAgICAqL1xuICAgIHB1YmxpYyBjYWxsYWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5faXNkaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dG1lbnUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRtZW51LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl0sIm1hcHBpbmdzIjoiaTVTQVVJO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQVZKLE9BQVNFLHdCQUF3QixLQUFRLG1CQUFtQixDQUM1RCxPQUFTQyxTQUFTLENBQUVDLFlBQVksQ0FBRUMsS0FBSyxDQUFFQyxNQUFNLEtBQVEsZUFBZSxDLGlDQUV0RTs7R0FJQSxNQUFNLE1BQU8sQ0FBQUMsOEJBQStCLFFBQVEsQ0FBQUwsd0JBQXdCLENBdUR4RTtBQUVBO0FBRUE7O09BR0FNLFlBQUEsRUFBQVIsYUFBQSxHQUFBUyxDQUFBLEtBQUFULENBQUEsZ0JBQUFVLENBQUEsTUFDSSxLQUFLLEVBQUUsQ0E5RFg7QUFFQTs7V0FBQVYsYUFBQSxHQUFBVSxDQUFBLE1BR1UsS0FBQUMsV0FBVyxDQUFZLEtBQUssQ0FFdEM7O1dBQUFYLGFBQUEsR0FBQVUsQ0FBQSxNQUdVLEtBQUFFLGVBQWUsQ0FBWSxLQUFLLENBRTFDOztXQUFBWixhQUFBLEdBQUFVLENBQUEsTUFJTyxLQUFBRyxPQUFPLENBQXVCLEdBQUksQ0FBQVQsWUFBWSxFQUFRLENBRTdEOztXQUFBSixhQUFBLEdBQUFVLENBQUEsTUFJTyxLQUFBSSxRQUFRLENBQVcsRUFBRSxDQVE1Qjs7V0FBQWQsYUFBQSxHQUFBVSxDQUFBLE1BSU8sS0FBQUssU0FBUyxDQUFXLEVBQUUsQ0FRN0I7O1dBQUFmLGFBQUEsR0FBQVUsQ0FBQSxNQUlPLEtBQUFNLElBQUksQ0FBVyxFQUFFLENBaUJ4QixDQUVBO0FBRUE7QUFFQTs7T0FHQSxHQUFXLENBQUFDLFVBQVVBLENBQUEsRUFBQWpCLGFBQUEsR0FBQVMsQ0FBQSxLQUFBVCxDQUFBLGdCQUFBVSxDQUFBLE1BQ2pCLE1BQU8sS0FBSSxDQUFDQyxXQUFXLENBQzNCLENBRUE7O09BR0EsR0FDVyxDQUFBTSxVQUFVQSxDQUFDQyxDQUFtQixFQUFBbEIsYUFBQSxHQUFBUyxDQUFBLEtBQUFULENBQUEsZ0JBQUFVLENBQUEsTUFDckMsR0FBSSxDQUFBVixhQUFBLEdBQUFtQixDQUFBLFNBQUFELENBQUMsR0FBSyxJQUFJLElBQUFsQixhQUFBLEdBQUFtQixDQUFBLFNBQUlELENBQUMsR0FBS0UsU0FBUyxJQUFBcEIsYUFBQSxHQUFBbUIsQ0FBQSxTQUFJLE1BQU8sQ0FBQUQsQ0FBQyxHQUFLLFNBQVMsRUFBRSxDQUFBbEIsYUFBQSxHQUFBbUIsQ0FBQSxRQUFBbkIsQ0FBQSxnQkFBQVUsQ0FBQSxNQUN6RCxJQUFJLENBQUNDLFdBQVcsQ0FBR08sQ0FBWSxDLENBQ2xDLElBQU0sQ0FBQWxCLGFBQUEsR0FBQW1CLENBQUEsUUFBQW5CLENBQUEsZ0JBQUFVLENBQUEsT0FDSCxJQUFJLENBQUNDLFdBQVcsQ0FBR08sQ0FBQyxHQUFLLE1BQU0sQyxDQUV2QyxDQUVBOztPQUdBLEdBQVcsQ0FBQUcsY0FBY0EsQ0FBQSxFQUFBckIsYUFBQSxHQUFBUyxDQUFBLEtBQUFULENBQUEsZ0JBQUFVLENBQUEsT0FDckIsTUFBTyxLQUFJLENBQUNFLGVBQWUsQ0FDL0IsQ0FFQTs7T0FHQSxHQUNXLENBQUFTLGNBQWNBLENBQUNILENBQW1CLEVBQUFsQixhQUFBLEdBQUFTLENBQUEsS0FBQVQsQ0FBQSxnQkFBQVUsQ0FBQSxPQUN6QyxHQUFJLENBQUFWLGFBQUEsR0FBQW1CLENBQUEsU0FBQUQsQ0FBQyxHQUFLLElBQUksSUFBQWxCLGFBQUEsR0FBQW1CLENBQUEsU0FBSUQsQ0FBQyxHQUFLRSxTQUFTLElBQUFwQixhQUFBLEdBQUFtQixDQUFBLFNBQUksTUFBTyxDQUFBRCxDQUFDLEdBQUssU0FBUyxFQUFFLENBQUFsQixhQUFBLEdBQUFtQixDQUFBLFFBQUFuQixDQUFBLGdCQUFBVSxDQUFBLE9BQ3pELElBQUksQ0FBQ0UsZUFBZSxDQUFHTSxDQUFZLEMsQ0FDdEMsSUFBTSxDQUFBbEIsYUFBQSxHQUFBbUIsQ0FBQSxRQUFBbkIsQ0FBQSxnQkFBQVUsQ0FBQSxPQUNILElBQUksQ0FBQ0UsZUFBZSxDQUFHTSxDQUFDLEdBQUssTUFBTSxDLENBRTNDLENBRUE7QUFFQTtBQUVBOztPQUdPSSxVQUFVQSxDQUFDQyxLQUFpQixFQUFBdkIsYUFBQSxHQUFBUyxDQUFBLEtBQUFULENBQUEsZ0JBQUFVLENBQUEsT0FDL0IsR0FBSSxDQUFDLElBQUksQ0FBQ0MsV0FBVyxDQUFFLENBQUFYLGFBQUEsR0FBQW1CLENBQUEsUUFBQW5CLENBQUEsZ0JBQUFVLENBQUEsT0FDbkIsSUFBSSxDQUFDRyxPQUFPLENBQUNXLElBQUksRUFBRSxDQUFDeEIsYUFBQSxHQUFBVSxDQUFBLE9BRXBCLEdBQUksSUFBSSxDQUFDZSxXQUFXLEdBQUssSUFBSSxDQUFFLENBQUF6QixhQUFBLEdBQUFtQixDQUFBLFFBQUFuQixDQUFBLGdCQUFBVSxDQUFBLE9BQzNCLElBQUksQ0FBQ2UsV0FBVyxDQUFDQyxLQUFLLEVBQUUsQyxDQUMzQixLQUFBMUIsYUFBQSxHQUFBbUIsQ0FBQSxVLENBQ0osS0FBQW5CLGFBQUEsR0FBQW1CLENBQUEsVUFBQW5CLGFBQUEsR0FBQVUsQ0FBQSxPQUNEYSxLQUFLLENBQUNJLGVBQWUsRUFBRSxDQUMzQixDLDBJQTVIU3BCLDhCQUE4QixDQUFBcUIsSUFBQSxJQUFBQyxNQUFBLENBQUFDLEVBQUEsQ0FBQUMsZUFBQSxDQUFBNUIsU0FBQSxHQUFBSCxhQUFBLEdBQUFVLENBQUEsTyx1R0FBOUJILDhCQUE4QixDQUFBeUIsTUFBQSxFQUFBbEIsUUFBQSxZQUFBbUIsSUFBQSxRQUFBbEIsU0FBQSxhQUFBbUIsS0FBQSxTQUFBbEIsSUFBQSxRQUFBbUIsSUFBQSxRQUFBbEIsVUFBQSxjQUFBSSxjQUFBLG1CQUFBZSxPQUFBLEVBQUF2QixPQUFBLFlBQUF3QixlQUFBLE1BQUFDLFFBQUEsQ0FBQVIsRUFBQSxHQUFBOUIsYUFBQSxHQUFBVSxDQUFBLE8sbUZBQTlCSCw4QkFBOEIsQ0FBQWdDLFVBQUEsRyxLQUQxQ3BDLFMsdUdBa0JVVSxPQUFPLEcsS0FEYlAsTSxHQU9NUSxRQUFRLEcsS0FEZFQsSyxHQU9NNEIsSUFBSSxHLEtBRFY1QixLLEdBT01VLFNBQVMsRyxLQURmVixLLEdBT002QixLQUFLLEcsS0FEWDdCLEssR0FPTVcsSUFBSSxHLEtBRFZYLEssR0FPTThCLElBQUksRyxLQURWOUIsSyxHQTZCVVksVUFBVSxHLEtBRHBCWixLLEdBb0JVZ0IsY0FBYyxHLEtBRHhCaEIsSyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -52,4 +52,4 @@ cov_zhc5f9exw=function(){return actualCoverage;};}return actualCoverage;}cov_zhc
52
52
  this.onTouch();cov_zhc5f9exw().s[33]++;if(this._showselector){cov_zhc5f9exw().b[6][0]++;cov_zhc5f9exw().s[34]++;this._showselector=false;}else{cov_zhc5f9exw().b[6][1]++;cov_zhc5f9exw().s[35]++;this._showselector=true;}}/**
53
53
  * Validator
54
54
  */validateData(c){cov_zhc5f9exw().f[9]++;let error=(cov_zhc5f9exw().s[36]++,null);cov_zhc5f9exw().s[37]++;error=super.validateData(c);cov_zhc5f9exw().s[38]++;if((cov_zhc5f9exw().b[8][0]++,error===null)&&(cov_zhc5f9exw().b[8][1]++,c.value!==null)&&(cov_zhc5f9exw().b[8][2]++,c.value!==undefined)&&(cov_zhc5f9exw().b[8][3]++,c.value!=='')&&(cov_zhc5f9exw().b[8][4]++,this._mindate!==undefined)&&(cov_zhc5f9exw().b[8][5]++,this._mindate!==null)){cov_zhc5f9exw().b[7][0]++;cov_zhc5f9exw().s[39]++;error=Validation.minDate(this._mindate,this.validationmessagemindate,this.validationmessagesummarymindate)(c);}else{cov_zhc5f9exw().b[7][1]++;}cov_zhc5f9exw().s[40]++;if((cov_zhc5f9exw().b[10][0]++,error===null)&&(cov_zhc5f9exw().b[10][1]++,c.value!==null)&&(cov_zhc5f9exw().b[10][2]++,c.value!==undefined)&&(cov_zhc5f9exw().b[10][3]++,c.value!=='')&&(cov_zhc5f9exw().b[10][4]++,this._maxdate!==undefined)&&(cov_zhc5f9exw().b[10][5]++,this._maxdate!==null)){cov_zhc5f9exw().b[9][0]++;cov_zhc5f9exw().s[41]++;error=Validation.maxDate(this._maxdate,this.validationmessagemaxdate,this.validationmessagesummarymaxdate)(c);}else{cov_zhc5f9exw().b[9][1]++;}cov_zhc5f9exw().s[42]++;return error;}}cov_zhc5f9exw().s[43]++;SacDateCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDateCommon,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});cov_zhc5f9exw().s[44]++;SacDateCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacDateCommon,inputs:{validationmessagemaxdate:"validationmessagemaxdate",validationmessagemindate:"validationmessagemindate",validationmessagesummarymaxdate:"validationmessagesummarymaxdate",validationmessagesummarymindate:"validationmessagesummarymindate",maxdate:"maxdate",mindate:"mindate"},host:{listeners:{"document:click":"onClick($event.target)"}},usesInheritance:true,ngImport:i0});cov_zhc5f9exw().s[45]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDateCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_zhc5f9exw().f[10]++;cov_zhc5f9exw().s[46]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{validationmessagemaxdate:[{type:Input}],validationmessagemindate:[{type:Input}],validationmessagesummarymaxdate:[{type:Input}],validationmessagesummarymindate:[{type:Input}],maxdate:[{type:Input}],mindate:[{type:Input}],onClick:[{type:HostListener,args:['document:click',['$event.target']]}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL2RhdGV0aW1lL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBZ0IsYUFBYyxTQUFRLHNCQUFzQjtJQXlFOUQsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNJLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0IsRUFDaEMsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUF0RnBDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNhLGVBQVUsR0FBVyxZQUFZLENBQUM7UUFFbEQ7O1dBRUc7UUFDYSxjQUFTLEdBQUc7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLE1BQU0sRUFBRTtnQkFDSixFQUFFLEVBQUU7b0JBQ0EsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUN2QixJQUFJLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsRUFBRTtvQkFDTixTQUFTLEVBQUUsQ0FBQztpQkFDZjtnQkFDRCxFQUFFLEVBQUU7b0JBQ0EsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUN2QixJQUFJLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsRUFBRTtvQkFDTixTQUFTLEVBQUUsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUN2QixJQUFJLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsSUFBSTtpQkFDWDthQUNKO1lBQ0QsZUFBZSxFQUFFLEdBQUc7WUFDcEIsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUM7UUFFRjs7V0FFRztRQUNJLGFBQVEsR0FBUyxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFDSSxhQUFRLEdBQVMsSUFBSSxDQUFDO1FBRTdCOztXQUVHO1FBQ0ksV0FBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuQzs7V0FFRztRQUNhLDZCQUF3QixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUVwRzs7V0FFRztRQUNhLDZCQUF3QixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUVwRzs7V0FFRztRQUNhLG9DQUErQixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQztRQUVsSDs7V0FFRztRQUNhLG9DQUErQixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQztJQW9CbEgsQ0FBQztJQUVELDBCQUEwQjtJQUUxQixxQ0FBcUM7SUFFckM7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csT0FBTyxDQUFDLENBQXVCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoRDthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLE9BQU8sQ0FBQyxDQUF1QjtRQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEQ7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVELHdDQUF3QztJQUV4Qyx5QkFBeUI7SUFFekI7O09BRUc7SUFDSSx1QkFBdUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLHlCQUF5QixDQUFDLENBQWlCO1FBQzlDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLENBQU07UUFDcEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25EO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBS0ksT0FBTyxDQUFDLGFBQWE7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUYsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsQ0FBa0I7UUFDbEMsSUFBSSxLQUFLLEdBQTRCLElBQUksQ0FBQztRQUUxQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5QixJQUNJLEtBQUssS0FBSyxJQUFJO1lBQ2QsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJO1lBQ2hCLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUztZQUNyQixDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQ3hCO1lBQ0UsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsK0JBQStCLENBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDUjtRQUVELElBQ0ksS0FBSyxLQUFLLElBQUk7WUFDZCxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDaEIsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTO1lBQ3JCLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztZQUMzQixJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFDeEI7WUFDRSxLQUFLLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FDdEIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsd0JBQXdCLEVBQzdCLElBQUksQ0FBQywrQkFBK0IsQ0FDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNSO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7MEdBM09pQixhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUzswTEF5RFUsd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUtVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFLVSwrQkFBK0I7c0JBQTlDLEtBQUs7Z0JBS1UsK0JBQStCO3NCQUE5QyxLQUFLO2dCQXFDSyxPQUFPO3NCQURqQixLQUFLO2dCQWVLLE9BQU87c0JBRGpCLEtBQUs7Z0JBaURDLE9BQU87c0JBSmIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBLb21wb25lbnRlIGbDvHIgU2FjRGF0ZUNvbW1vbi4gRXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0RhdGVDb21tb24gZXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBkZXMgRGF0dW1zXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IERBVEVGT1JNQVQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZJztcblxuICAgIC8qKlxuICAgICAqIE1hc2tlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYXNrRGF0ZSA9IHtcbiAgICAgICAgbWFzazogdGhpcy5EQVRFRk9STUFULFxuICAgICAgICBibG9ja3M6IHtcbiAgICAgICAgICAgIEREOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE1NOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFlZWVk6IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgICAgICAgIHRvOiA5OTk5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXG4gICAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9tYXhkYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9taW5kYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBtb2R1bGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1heERhdGUgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWluRGF0ZSBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBNYXhEYXRlIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhEYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1pbkRhdGUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgIENoYW5nZSBEZWN0ZWN0aW9uIFNlcnZpZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IsIGVsZW1lbnRSZWYsIGNkUmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBmb3IgZGF0ZSBzZWxlY3RvciBidXR0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEljb25TZWxlY3RvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5EYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1heGRhdGUodjogc3RyaW5nIHwgRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkRBVEVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgPSBzdXBlci5nZXREYXRlKGRhdGUpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNaW4gRGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtaW5kYXRlKHY6IHN0cmluZyB8IERhdGUgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5EQVRFRk9STUFUXSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlID0gc3VwZXIuZ2V0RGF0ZShkYXRlKS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGF0dW0tRm9ybWF0IHZvbSBTdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuREFURUZPUk1BVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBEYXR1bSAtIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQge1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXRlIFNlbGVjdG9yXG4gICAgICovXG4gICAgcHVibGljIGRhdGVzZWxlY3QodjogYW55KSB7XG4gICAgICAgIGlmICh2LmRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdHJpbmcoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubW9tZW50KHYuZGF0ZSkudXRjKCkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb3N0TGlzdGVuZXJcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIC8qKlxuICAgICAqIENsaWNrIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucGlja2VyY29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlQ29udGFpbmVyID0gdGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZVJlZmVyZW5jZSA9IHRoaXMucGlja2VyYnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZUNvbnRhaW5lciAmJiAhY2xpY2tlZEluc2lkZVJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBaZWlndCBEYXRlIFNlbGVjdG9yIGFuXG4gICAgICovXG4gICAgcHVibGljIHNob3dEYXRlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIC8vIFRvdWNoIEV2ZW50IGF1c2zDtnNlblxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcblxuICAgICAgICBpZiAodGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgZXJyb3IgPSBzdXBlci52YWxpZGF0ZURhdGEoYyk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5EYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5kYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tYXhEYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTYWNCYXNlRGF0ZVRpbWVDb250cm9sIiwiVmFsaWRhdGlvbiIsIkRpcmVjdGl2ZSIsIkhvc3RMaXN0ZW5lciIsIklucHV0IiwiSU1hc2siLCJtb21lbnRfIiwiU2FjRGF0ZUNvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiY292X3poYzVmOWV4dyIsImYiLCJzIiwiREFURUZPUk1BVCIsImltYXNrRGF0ZSIsIm1hc2siLCJibG9ja3MiLCJERCIsIk1hc2tlZFJhbmdlIiwiZnJvbSIsInRvIiwibWF4TGVuZ3RoIiwiTU0iLCJZWVlZIiwicGxhY2Vob2xkZXJDaGFyIiwiYXV0b2ZpeCIsImxhenkiLCJvdmVyd3JpdGUiLCJfbWF4ZGF0ZSIsIl9taW5kYXRlIiwibW9tZW50IiwidmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JNYXhEYXRlIiwidmFsaWRhdGlvbm1lc3NhZ2VtaW5kYXRlIiwiVmFsaWRhdGlvbkVycm9yTWluRGF0ZSIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heGRhdGUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluRGF0ZSIsIkljb25TZWxlY3RvciIsImljb25TZXJ2aWNlIiwiRGF0ZUNvbXBvbmVudFNlbGVjdG9ySWNvbiIsIm1heGRhdGUiLCJ2IiwiZGF0ZSIsImlzVmFsaWQiLCJiIiwiZ2V0RGF0ZSIsInRvRGF0ZSIsIm1pbmRhdGUiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJkYXRlc2VsZWN0Iiwic2V0VmFsdWVTdHJpbmciLCJ2YWx1ZSIsInV0YyIsIl9zaG93c2VsZWN0b3IiLCJvbkNsaWNrIiwidGFyZ2V0RWxlbWVudCIsInBpY2tlcmNvbnRhaW5lciIsImNsaWNrZWRJbnNpZGVDb250YWluZXIiLCJuYXRpdmVFbGVtZW50IiwiY29udGFpbnMiLCJjbGlja2VkSW5zaWRlUmVmZXJlbmNlIiwicGlja2VyYnV0dG9uIiwic2hvd0RhdGVTZWxlY3RvciIsIm9uVG91Y2giLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJtaW5EYXRlIiwibWF4RGF0ZSIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsImhvc3QiLCJsaXN0ZW5lcnMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9kYXRldGltZS9kYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBLb21wb25lbnRlIGbDvHIgU2FjRGF0ZUNvbW1vbi4gRXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0RhdGVDb21tb24gZXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBkZXMgRGF0dW1zXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IERBVEVGT1JNQVQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZJztcblxuICAgIC8qKlxuICAgICAqIE1hc2tlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYXNrRGF0ZSA9IHtcbiAgICAgICAgbWFzazogdGhpcy5EQVRFRk9STUFULFxuICAgICAgICBibG9ja3M6IHtcbiAgICAgICAgICAgIEREOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE1NOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFlZWVk6IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgICAgICAgIHRvOiA5OTk5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXG4gICAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9tYXhkYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9taW5kYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBtb2R1bGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1heERhdGUgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWluRGF0ZSBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBNYXhEYXRlIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhEYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1pbkRhdGUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgIENoYW5nZSBEZWN0ZWN0aW9uIFNlcnZpZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IsIGVsZW1lbnRSZWYsIGNkUmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBmb3IgZGF0ZSBzZWxlY3RvciBidXR0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEljb25TZWxlY3RvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5EYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1heGRhdGUodjogc3RyaW5nIHwgRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkRBVEVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgPSBzdXBlci5nZXREYXRlKGRhdGUpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNaW4gRGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtaW5kYXRlKHY6IHN0cmluZyB8IERhdGUgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5EQVRFRk9STUFUXSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlID0gc3VwZXIuZ2V0RGF0ZShkYXRlKS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGF0dW0tRm9ybWF0IHZvbSBTdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuREFURUZPUk1BVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBEYXR1bSAtIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQge1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXRlIFNlbGVjdG9yXG4gICAgICovXG4gICAgcHVibGljIGRhdGVzZWxlY3QodjogYW55KSB7XG4gICAgICAgIGlmICh2LmRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdHJpbmcoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubW9tZW50KHYuZGF0ZSkudXRjKCkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb3N0TGlzdGVuZXJcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIC8qKlxuICAgICAqIENsaWNrIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucGlja2VyY29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlQ29udGFpbmVyID0gdGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZVJlZmVyZW5jZSA9IHRoaXMucGlja2VyYnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZUNvbnRhaW5lciAmJiAhY2xpY2tlZEluc2lkZVJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBaZWlndCBEYXRlIFNlbGVjdG9yIGFuXG4gICAgICovXG4gICAgcHVibGljIHNob3dEYXRlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIC8vIFRvdWNoIEV2ZW50IGF1c2zDtnNlblxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcblxuICAgICAgICBpZiAodGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgZXJyb3IgPSBzdXBlci52YWxpZGF0ZURhdGEoYyk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5EYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5kYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tYXhEYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6Ijt5RkFBQSxPQUFTQSxzQkFBc0IsS0FBUSxrQ0FBa0MsQ0FD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
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTYWNCYXNlRGF0ZVRpbWVDb250cm9sIiwiVmFsaWRhdGlvbiIsIkRpcmVjdGl2ZSIsIkhvc3RMaXN0ZW5lciIsIklucHV0IiwiSU1hc2siLCJtb21lbnRfIiwiU2FjRGF0ZUNvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiY292X3poYzVmOWV4dyIsImYiLCJzIiwiREFURUZPUk1BVCIsImltYXNrRGF0ZSIsIm1hc2siLCJibG9ja3MiLCJERCIsIk1hc2tlZFJhbmdlIiwiZnJvbSIsInRvIiwibWF4TGVuZ3RoIiwiTU0iLCJZWVlZIiwicGxhY2Vob2xkZXJDaGFyIiwiYXV0b2ZpeCIsImxhenkiLCJvdmVyd3JpdGUiLCJfbWF4ZGF0ZSIsIl9taW5kYXRlIiwibW9tZW50IiwidmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JNYXhEYXRlIiwidmFsaWRhdGlvbm1lc3NhZ2VtaW5kYXRlIiwiVmFsaWRhdGlvbkVycm9yTWluRGF0ZSIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heGRhdGUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluRGF0ZSIsIkljb25TZWxlY3RvciIsImljb25TZXJ2aWNlIiwiRGF0ZUNvbXBvbmVudFNlbGVjdG9ySWNvbiIsIm1heGRhdGUiLCJ2IiwiZGF0ZSIsImlzVmFsaWQiLCJiIiwiZ2V0RGF0ZSIsInRvRGF0ZSIsIm1pbmRhdGUiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJkYXRlc2VsZWN0Iiwic2V0VmFsdWVTdHJpbmciLCJ2YWx1ZSIsInV0YyIsIl9zaG93c2VsZWN0b3IiLCJvbkNsaWNrIiwidGFyZ2V0RWxlbWVudCIsInBpY2tlcmNvbnRhaW5lciIsImNsaWNrZWRJbnNpZGVDb250YWluZXIiLCJuYXRpdmVFbGVtZW50IiwiY29udGFpbnMiLCJjbGlja2VkSW5zaWRlUmVmZXJlbmNlIiwicGlja2VyYnV0dG9uIiwic2hvd0RhdGVTZWxlY3RvciIsIm9uVG91Y2giLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJtaW5EYXRlIiwibWF4RGF0ZSIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsImhvc3QiLCJsaXN0ZW5lcnMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9kYXRldGltZS9kYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBLb21wb25lbnRlIGbDvHIgU2FjRGF0ZUNvbW1vbi4gRXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0RhdGVDb21tb24gZXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBkZXMgRGF0dW1zXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IERBVEVGT1JNQVQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZJztcblxuICAgIC8qKlxuICAgICAqIE1hc2tlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYXNrRGF0ZSA9IHtcbiAgICAgICAgbWFzazogdGhpcy5EQVRFRk9STUFULFxuICAgICAgICBibG9ja3M6IHtcbiAgICAgICAgICAgIEREOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE1NOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFlZWVk6IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgICAgICAgIHRvOiA5OTk5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXG4gICAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9tYXhkYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgcHVibGljIF9taW5kYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBtb2R1bGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1heERhdGUgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWluRGF0ZSBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBNYXhEYXRlIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhEYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1pbkRhdGUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgIENoYW5nZSBEZWN0ZWN0aW9uIFNlcnZpZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IsIGVsZW1lbnRSZWYsIGNkUmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBmb3IgZGF0ZSBzZWxlY3RvciBidXR0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEljb25TZWxlY3RvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5EYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1heGRhdGUodjogc3RyaW5nIHwgRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkRBVEVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgPSBzdXBlci5nZXREYXRlKGRhdGUpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNaW4gRGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtaW5kYXRlKHY6IHN0cmluZyB8IERhdGUgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5EQVRFRk9STUFUXSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlID0gc3VwZXIuZ2V0RGF0ZShkYXRlKS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGF0dW0tRm9ybWF0IHZvbSBTdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuREFURUZPUk1BVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBEYXR1bSAtIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQge1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXRlIFNlbGVjdG9yXG4gICAgICovXG4gICAgcHVibGljIGRhdGVzZWxlY3QodjogYW55KSB7XG4gICAgICAgIGlmICh2LmRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdHJpbmcoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubW9tZW50KHYuZGF0ZSkudXRjKCkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb3N0TGlzdGVuZXJcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIC8qKlxuICAgICAqIENsaWNrIEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucGlja2VyY29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlQ29udGFpbmVyID0gdGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZVJlZmVyZW5jZSA9IHRoaXMucGlja2VyYnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZUNvbnRhaW5lciAmJiAhY2xpY2tlZEluc2lkZVJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBaZWlndCBEYXRlIFNlbGVjdG9yIGFuXG4gICAgICovXG4gICAgcHVibGljIHNob3dEYXRlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIC8vIFRvdWNoIEV2ZW50IGF1c2zDtnNlblxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcblxuICAgICAgICBpZiAodGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgZXJyb3IgPSBzdXBlci52YWxpZGF0ZURhdGEoYyk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5EYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbmRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW5kYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tYXhEYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuX21heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1heGRhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXhkYXRlXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6Ijt5RkFBQSxPQUFTQSxzQkFBc0IsS0FBUSxrQ0FBa0MsQ0FD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
@@ -124,4 +124,4 @@ cov_wkox2g4tn().s[148]++;if(this._selectedValue!==null){cov_wkox2g4tn().b[32][0]
124
124
  */if(this._selectedValue===null){cov_wkox2g4tn().b[38][0]++;cov_wkox2g4tn().s[169]++;if(this._initialValue===null){cov_wkox2g4tn().b[39][0]++;cov_wkox2g4tn().s[170]++;this._selectedValue=moment();/**
125
125
  * clean seconds and miliseconds for initial values
126
126
  */cov_wkox2g4tn().s[171]++;this._selectedValue.second(0);cov_wkox2g4tn().s[172]++;this._selectedValue.millisecond(0);}else{cov_wkox2g4tn().b[39][1]++;cov_wkox2g4tn().s[173]++;this._selectedValue=this._initialValue;}}else{cov_wkox2g4tn().b[38][1]++;}}}cov_wkox2g4tn().s[174]++;SacDateSelectorCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDateSelectorCommon,deps:[{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_wkox2g4tn().s[175]++;SacDateSelectorCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacDateSelectorCommon,inputs:{autoapplyselection:"autoapplyselection",dateselection:"dateselection",e2eidentifier:"e2eidentifier",month:"month",name:"name",timeselection:"timeselection",year:"year",initialvalue:"initialvalue"},outputs:{selectdate:"selectdate"},ngImport:i0});cov_wkox2g4tn().s[176]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDateSelectorCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_wkox2g4tn().f[27]++;cov_wkox2g4tn().s[177]++;return[{type:i0.Injector}];},propDecorators:{autoapplyselection:[{type:Input}],dateselection:[{type:Input}],e2eidentifier:[{type:Input}],month:[{type:Input}],name:[{type:Input}],selectdate:[{type:Output}],timeselection:[{type:Input}],year:[{type:Input}],initialvalue:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29udHJvbHMvZGF0ZXRpbWUvZGF0ZXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7QUFFbEMsa0JBQWtCO0FBRWxCOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0I7SUFpQ2xCLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7Ozs7O09BUUc7SUFDSCxZQUNJLFdBQW1CLEVBQ25CLElBQVUsRUFDVixTQUFrQixFQUNsQixVQUFtQixFQUNuQixTQUFrQixFQUNsQixLQUFjO1FBbkRsQixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSSxTQUFJLEdBQVMsU0FBUyxDQUFDO1FBRTlCOztXQUVHO1FBQ0ksZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFaEM7O1dBRUc7UUFDSSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRWxDOztXQUVHO1FBQ0ksY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVsQzs7V0FFRztRQUNJLFVBQUssR0FBWSxLQUFLLENBQUM7UUFFOUI7O1dBRUc7UUFDSSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBdUIvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFH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Q3RDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQzthQUM1QztTQUNKO0lBQ0wsQ0FBQzs7a0hBbGdCUSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTOytGQTRCQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBWUMsYUFBYTtzQkFEbkIsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsTUFBTTtnQkFPQSxhQUFhO3NCQURuQixLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFpQ0ssWUFBWTtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XG5pbXBvcnQgeyBTQUNJQ09OX1NFUlZJQ0UsIFNhY0RlZmF1bHRJY29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vLyAjcmVnaW9uIENsYXNzZXNcblxuLyoqXG4gKkJhc2lzIEtvbXBvbmVudGUgZsO8ciBEYXRlU2VsZWN0b3JJdGVtXG4gKi9cbmNsYXNzIERhdGVTZWxlY3Rvckl0ZW0ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogRGF0dW1cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0ZTogRGF0ZSA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXlUZXh0IFByb3BlcnR5OyBkZWZhdWx0IFdlcnQgLSAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5dGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5LCBkaWUgemVpZ3QsIG9iIGRhcyBFbGVtZW50IGFrdHVlbGwgaXN0OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc2N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHksIGRpZSB6ZWlndCwgb2IgZGFzIENvbnRyb2wgZW5hYmxlZCBpc3Q7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzZW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBQcm9wZXJ0eSwgZGllIHplaWd0LCBvYiBkYXMgRWxlbWVudCBuZXUgaXN0OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc25ldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBQcm9wZXJ0eSwgZGllIHplaWd0LCBvYiBkYXMgRWxlbWVudCBzZWxla3RpZXJ0IGlzdDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogS29uc3RydWt0b3JcbiAgICAgKiBAcGFyYW0gZGlzcGxheXRleHQgQW56ZWlnZXRleHRcbiAgICAgKiBAcGFyYW0gZGF0ZSBEYXR1bVxuICAgICAqIEBwYXJhbSBpc2VuYWJsZWQgRWxlbWVudCBpc3QgYWt0aXZcbiAgICAgKiBAcGFyYW0gaXNzZWxlY3RlZCBFbGVtZW50IGlzdCBzZWxla3RpZXJ0XG4gICAgICogQHBhcmFtIGlzY3VycmVudCBFbGVtZW50IGlzdCBha3R1ZWxsZXMgRWxlbWVudFxuICAgICAqIEBwYXJhbSBpc25ldyBFbGVtZW50IGlzdCBuZXVcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGlzcGxheXRleHQ6IHN0cmluZyxcbiAgICAgICAgZGF0ZTogRGF0ZSxcbiAgICAgICAgaXNlbmFibGVkOiBib29sZWFuLFxuICAgICAgICBpc3NlbGVjdGVkOiBib29sZWFuLFxuICAgICAgICBpc2N1cnJlbnQ6IGJvb2xlYW4sXG4gICAgICAgIGlzbmV3OiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheXRleHQgPSBkaXNwbGF5dGV4dDtcbiAgICAgICAgdGhpcy5kYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5pc2VuYWJsZWQgPSBpc2VuYWJsZWQ7XG4gICAgICAgIHRoaXMuaXNjdXJyZW50ID0gaXNjdXJyZW50O1xuICAgICAgICB0aGlzLmlzc2VsZWN0ZWQgPSBpc3NlbGVjdGVkO1xuICAgICAgICB0aGlzLmlzbmV3ID0gaXNuZXc7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cblxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogTW9tZW50XG4gKi9cbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuLy8gI2VuZHJlZ2lvbiBWYXJpYWJsZXNcblxuLy8gI3JlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG5cbi8qKlxuICpCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjRGF0ZVNlbGVjdG9yXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0RhdGVTZWxlY3RvckNvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBVcnNwcsO8bmdsaWNoZXMgRGF0dW1cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbml0aWFsVmFsdWU6IE1vbWVudCB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBa3R1ZWxsIGdld8OkaGx0ZXMgRGF0dW1cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZFZhbHVlOiBNb21lbnQgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQW5mYW5nIGRlcyBLYWxlbmRlcnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGJlZ2luT2ZDYWxlbmRhcjogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIGljb24gc2VydmljZSB0byByZXNvbHZlIGljb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBQcm9wZXJ0eSBmw7xyIGF1dG9tYXRpc2NoZSBTZWxla3RpZXJ1bmc7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b2FwcGx5c2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBcnJheSB2b24gRGF0ZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0ZXM6IERhdGVTZWxlY3Rvckl0ZW1bXVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBEYXR1bSBTZWxlY3RvclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGVzZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbmF0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9udGg6IG51bWJlciA9IDQ7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBPdXRwdXQgRXZlbnQgYmVpbSBEYXR1bSBTZWxla3RpZXJlblxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaW1lIFNlbGVjdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGltZXNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSmFoclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHllYXI6IG51bWJlciA9IDIwMTg7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5pY29uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNJQ09OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0SWNvblNlcnZpY2UoKSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEdldCBpY29uIHRvIHN3aXRjaCB0byBuZXh0IG1vbnRoXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uTW9udGhOZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkRhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aE5leHRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBpY29uIHRvIHN3aXRjaCB0byBwcmV2aW91cyBtb250aFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaWNvbk1vbnRoUHJldigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5EYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnB1dCBmw7xyIHVyc3Byw7xuZ2xpY2hlcyBEYXR1bVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpbml0aWFsdmFsdWUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsVmFsdWUudG9EYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpbml0aWFsdmFsdWUodjogRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlID0gbW9tZW50KHYpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2FsZW5kYXIobW9tZW50KCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2FsZW5kYXIodGhpcy5faW5pdGlhbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFNlbGVrdGllcnVuZyDDvGJlcm5laG1lblxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBseVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXNlbGVjdGlvbiA9PT0gZmFsc2UgJiYgdGhpcy5fc2VsZWN0ZWRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5ob3VyKDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGUoMCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLnNlY29uZCgwKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWlsbGlzZWNvbmQoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRlc2VsZWN0aW9uID09PSBmYWxzZSAmJiB0aGlzLl9zZWxlY3RlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wVmFsdWU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5sb2NhbCgpO1xuICAgICAgICAgICAgdGVtcFZhbHVlLmRhdGUoMSk7XG4gICAgICAgICAgICB0ZW1wVmFsdWUubW9udGgoMCk7XG4gICAgICAgICAgICB0ZW1wVmFsdWUueWVhcigxOTAwKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSB0ZW1wVmFsdWUudXRjKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCAmJiB0aGlzLl9pbml0aWFsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZGF0ZS5lbWl0KHsgZGF0ZTogdGhpcy5faW5pdGlhbFZhbHVlLmxvY2FsKCkgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGRhdGUuZW1pdCh7XG4gICAgICAgICAgICBkYXRlOiB0aGlzLl9zZWxlY3RlZFZhbHVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNb2R1cyDDpG5kZXJuXG4gICAgICovXG4gICAgcHVibGljIGNoYW5nZU1vZGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJlZ2luT2ZDYWxlbmRhciA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5iZWdpbk9mQ2FsZW5kYXIgPSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iZWdpbk9mQ2FsZW5kYXIgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0RGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZsO8ciBTdHVuZGVuIFVocnplaXRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SG91cnMoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2VydCBhdXMgSW5pdCBWYWx1ZSBsZXNlblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsVmFsdWUuaG91cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVmFsdWUuaG91cigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGbDvHIgTWludXRlbiBVaHJ6ZWl0XG4gICAgICovXG4gICAgcHVibGljIGdldE1pbnV0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2VydCBhdXMgSW5pdCBWYWx1ZSBsZXNlblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsVmFsdWUubWludXRlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVmFsdWUubWludXRlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVm9yaGVyaWdlciBNb25hdFxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aEJhY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGggPSB0aGlzLm1vbnRoIC0gMTtcblxuICAgICAgICBpZiAodGhpcy5tb250aCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMubW9udGggPSAxMTtcbiAgICAgICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciAtIDE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREYXRlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE7DpGNoc3RlciBNb25hdFxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aE5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGggPSB0aGlzLm1vbnRoICsgMTtcblxuICAgICAgICBpZiAodGhpcy5tb250aCA+IDExKSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoID0gMDtcbiAgICAgICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREYXRlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbml0IEluaXRpYWwgRGF0ZSBpZiBFbXB0eVxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWx2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREYXRlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVrdGllcnVuZyByZXNldHRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RkYXRlLmVtaXQoe1xuICAgICAgICAgICAgZGF0ZTogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgZGFzIHNlbGVrdGllcnRlIERhdHVtXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdERhdGUodjogRGF0ZVNlbGVjdG9ySXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAodi5pc2VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXMuZm9yRWFjaCgoZGF0ZSkgPT4gZGF0ZS5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlzbmV3KS5mb3JFYWNoKChpdG0pID0+IChpdG0uaXNuZXcgPSBmYWxzZSkpKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXMuZm9yRWFjaCgoZGF0ZSkgPT5cbiAgICAgICAgICAgICAgICBkYXRlLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuaXNzZWxlY3RlZCkuZm9yRWFjaCgoaXRtKSA9PiAoaXRtLmlzc2VsZWN0ZWQgPSBmYWxzZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdi5pc25ldyA9IHRydWU7XG4gICAgICAgICAgICB2Lmlzc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCBkYXRlVmFsdWU6IE1vbWVudCA9IG1vbWVudCh2LmRhdGUpO1xuXG4gICAgICAgICAgICAvLyDDnGJlcm5laG1lbiBkZXIgWmVpdCBhdXMgZGVtIGJlc3RlaGVuZGVuIFdlcnRcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUuaG91cih0aGlzLl9pbml0aWFsVmFsdWUuaG91cigpKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVZhbHVlLm1pbnV0ZSh0aGlzLl9pbml0aWFsVmFsdWUubWludXRlKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlLmhvdXIodGhpcy5fc2VsZWN0ZWRWYWx1ZS5ob3VyKCkpO1xuICAgICAgICAgICAgICAgIGRhdGVWYWx1ZS5taW51dGUodGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGUoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNla3VuZGVuIHVuIE1pbGlzZWt1bmRlbiBDbGVhblxuICAgICAgICAgICAgZGF0ZVZhbHVlLnNlY29uZCgwKTtcbiAgICAgICAgICAgIGRhdGVWYWx1ZS5taWxsaXNlY29uZCgwKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSBkYXRlVmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmF1dG9hcHBseXNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmw7xyIFN0dW5kZW4gVWhyemVpdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRIb3Vycyh2OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICh2ID49IDI0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlbGVjdCBWYWx1ZSBzZXR6ZW4gZmFsbHMgbGVlclxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRWYWx1ZSgpO1xuXG4gICAgICAgIGlmICh2ID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIoMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIodik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZsO8ciBNaW51dGVuIFVocnplaXRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWludXRlcyh2OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICh2ID49IDYwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2VsZWN0IFZhbHVlIHNldHplbiBmYWxscyBsZWVyXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFZhbHVlKCk7XG5cbiAgICAgICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWludXRlcygwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWludXRlcyh2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF1c3dhaGwgYXVmIGFrdHVlbGxlIFplaXQgc3RlbGxlblxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRUb2RheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IG1vbWVudCgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWt1bmRlbiB1biBNaWxpc2VrdW5kZW4gQ2xlYW5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbGxpc2Vjb25kKDApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBLYWxlbmRlciBEYXRlbiBpbml0aWFsaXNpZXJlbiBmYWxscyBLYWxlbmRlciBhbmdlemVpZ3RcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmRhdGVzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdENhbGVuZGFyKHRoaXMuX3NlbGVjdGVkVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0b2FwcGx5c2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogVXJzcHLDvG5nbGljaGVyIEthbGVuZGVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0Q2FsZW5kYXIodjogTW9tZW50KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNb25hdCB1bmQgSmFociBzZXR6ZW5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubW9udGggPSB2Lm1vbnRoKCk7XG4gICAgICAgIHRoaXMueWVhciA9IHYueWVhcigpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEYXRlbiBmw7xyIEthbGVuZGVyIGluaXRpYWxpc2VyZW5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBEYXR1bVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdERhdGVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50TW9udGggPSBtb21lbnQobmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCAxKSk7XG4gICAgICAgIGNvbnN0IGxhc3RNb250aCA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpKTtcbiAgICAgICAgbGFzdE1vbnRoLmFkZCh7IG1vbnRoczogLTEgfSk7XG4gICAgICAgIGNvbnN0IG5leHRNb250aHMgPSBtb21lbnQobmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCAxKSk7XG4gICAgICAgIG5leHRNb250aHMuYWRkKHsgbW9udGhzOiAxIH0pO1xuXG4gICAgICAgIGNvbnN0IHdlZWtkYXlCZWdpbjogbnVtYmVyID0gY3VycmVudE1vbnRoLndlZWtkYXkoKTtcbiAgICAgICAgY29uc3Qgd2Vla2RheUVuZDogbnVtYmVyID0gbW9tZW50KFxuICAgICAgICAgICAgbmV3IERhdGUoY3VycmVudE1vbnRoLnllYXIoKSwgY3VycmVudE1vbnRoLm1vbnRoKCksIGN1cnJlbnRNb250aC5kYXlzSW5Nb250aCgpKVxuICAgICAgICApLndlZWtkYXkoKTtcbiAgICAgICAgLy8gQ2xlYXIgQXJyYXlcbiAgICAgICAgY29uc3QgZGF5c0luQ2FsZW5kYXI6IERhdGVTZWxlY3Rvckl0ZW1bXSA9IFtdO1xuICAgICAgICB0aGlzLmRhdGVzID0gW107XG5cbiAgICAgICAgaWYgKHdlZWtkYXlCZWdpbiAhPT0gdGhpcy5iZWdpbk9mQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RNb250aERheSA9IGxhc3RNb250aC5kYXlzSW5Nb250aCgpO1xuICAgICAgICAgICAgY29uc3QgbGFzdE1vbnRoRGF0ZSA9IG5ldyBEYXRlKGxhc3RNb250aC55ZWFyKCksIGxhc3RNb250aC5tb250aCgpLCBsYXN0TW9udGhEYXkpO1xuICAgICAgICAgICAgY29uc3QgbGFzdE1vbnRoV2Vla2RheSA9IG1vbWVudChsYXN0TW9udGhEYXRlKS53ZWVrZGF5KCk7XG5cbiAgICAgICAgICAgIGxldCBkYXlzSW5MYXN0TW9udGggPSA3IC0gKCg3ICsgdGhpcy5iZWdpbk9mQ2FsZW5kYXIgLSBsYXN0TW9udGhXZWVrZGF5KSAlIDcpO1xuICAgICAgICAgICAgaWYgKGRheXNJbkxhc3RNb250aCA9PT0gNykge1xuICAgICAgICAgICAgICAgIGRheXNJbkxhc3RNb250aCA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGRheSA9IGxhc3RNb250aERheTsgZGF5ID49IGxhc3RNb250aERheSAtIGRheXNJbkxhc3RNb250aDsgZGF5LS0pIHtcbiAgICAgICAgICAgICAgICBkYXlzSW5DYWxlbmRhci5zcGxpY2UoXG4gICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlU2VsZWN0b3JJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZShsYXN0TW9udGgueWVhcigpLCBsYXN0TW9udGgubW9udGgoKSwgZGF5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIGFsbCBEYXlzIGluIE1vbnRoXG4gICAgICAgIGZvciAobGV0IGRheWlubW9udGggPSAxOyBkYXlpbm1vbnRoIDw9IGN1cnJlbnRNb250aC5kYXlzSW5Nb250aCgpOyBkYXlpbm1vbnRoKyspIHtcbiAgICAgICAgICAgIGxldCBpc1NlbGVjdGVkRGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGlzTmV3RGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50RGF0ZTogYm9vbGVhbiA9XG4gICAgICAgICAgICAgICAgbW9tZW50KCkubW9udGgoKSA9PT0gdGhpcy5tb250aCAmJiBtb21lbnQoKS55ZWFyKCkgPT09IHRoaXMueWVhciAmJiBtb21lbnQoKS5kYXRlKCkgPT09IGRheWlubW9udGg7XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWwgV2VydCBzZXR6ZW4sIGZhbGxzIHZvcmhhbmRlblxuICAgICAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWREYXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlLm1vbnRoKCkgPT09IHRoaXMubW9udGggJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlLnllYXIoKSA9PT0gdGhpcy55ZWFyICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZS5kYXRlKCkgPT09IGRheWlubW9udGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlbGVjdGVkIERhdGUgV2VydCBzZXR6ZW4sIGZhbGxzIFdlcnQgZ2VzZXR6dFxuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpc05ld0RhdGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLm1vbnRoKCkgPT09IHRoaXMubW9udGggJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS55ZWFyKCkgPT09IHRoaXMueWVhciAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLmRhdGUoKSA9PT0gZGF5aW5tb250aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF5c0luQ2FsZW5kYXIucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgRGF0ZVNlbGVjdG9ySXRlbShcbiAgICAgICAgICAgICAgICAgICAgZGF5aW5tb250aC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBtb21lbnQoW3RoaXMueWVhciwgdGhpcy5tb250aCwgZGF5aW5tb250aF0pLnRvRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNDdXJyZW50RGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNOZXdEYXRlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbmRPZkNhbGVuZGVyOiBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLmJlZ2luT2ZDYWxlbmRhciA9PT0gMCkge1xuICAgICAgICAgICAgZW5kT2ZDYWxlbmRlciA9IDY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbmRPZkNhbGVuZGVyID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3ZWVrZGF5RW5kICE9PSBlbmRPZkNhbGVuZGVyKSB7XG4gICAgICAgICAgICBsZXQgY291bnRNaXNzaW5nRGF5czogbnVtYmVyO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5iZWdpbk9mQ2FsZW5kYXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb3VudE1pc3NpbmdEYXlzID0gZW5kT2ZDYWxlbmRlciAtIHdlZWtkYXlFbmQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50TWlzc2luZ0RheXMgPSA3IC0gd2Vla2RheUVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gY291bnRNaXNzaW5nRGF5czsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZGF5c0luQ2FsZW5kYXIucHVzaChcbiAgICAgICAgICAgICAgICAgICAgbmV3IERhdGVTZWxlY3Rvckl0ZW0oXG4gICAgICAgICAgICAgICAgICAgICAgICBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZShuZXh0TW9udGhzLnllYXIoKSwgbmV4dE1vbnRocy5tb250aCgpLCBpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGRheXNJbkNhbGVuZGFyLmxlbmd0aCAvIDc7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGRheSA9IDA7IGRheSA8IDc7IGRheSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRheSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVzW2luZGV4XSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXNbaW5kZXhdLnB1c2goZGF5c0luQ2FsZW5kYXJbaW5kZXggKiA3ICsgZGF5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZWxlY3RlZFZhbHVlKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2VsZWN0IFZhbHVlIHNldHplbiBmYWxscyBsZWVyXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSBtb21lbnQoKTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBjbGVhbiBzZWNvbmRzIGFuZCBtaWxpc2Vjb25kcyBmb3IgaW5pdGlhbCB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLnNlY29uZCgwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbGxpc2Vjb25kKDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gdGhpcy5faW5pdGlhbFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXX0=
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQUNJQ09OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0SWNvblNlcnZpY2UiLCJjcmVhdGVHdWlkIiwiRGlyZWN0aXZlIiwiRXZlbnRFbWl0dGVyIiwiSW5wdXQiLCJPdXRwdXQiLCJtb21lbnRfIiwiRGF0ZVNlbGVjdG9ySXRlbSIsImNvbnN0cnVjdG9yIiwiZGlzcGxheXRleHQiLCJkYXRlIiwiaXNlbmFibGVkIiwiaXNzZWxlY3RlZCIsImlzY3VycmVudCIsImlzbmV3IiwiY292X3drb3gyZzR0biIsImYiLCJzIiwidW5kZWZpbmVkIiwibW9tZW50IiwiU2FjRGF0ZVNlbGVjdG9yQ29tbW9uIiwiaW5qZWN0b3IiLCJiZWdpbk9mQ2FsZW5kYXIiLCJhdXRvYXBwbHlzZWxlY3Rpb24iLCJkYXRlcyIsImRhdGVzZWxlY3Rpb24iLCJlMmVpZGVudGlmaWVyIiwibW9udGgiLCJuYW1lIiwic2VsZWN0ZGF0ZSIsInRpbWVzZWxlY3Rpb24iLCJ5ZWFyIiwiaWNvblNlcnZpY2UiLCJnZXQiLCJpY29uTW9udGhOZXh0IiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24iLCJpY29uTW9udGhQcmV2IiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoUHJldkljb24iLCJpbml0aWFsdmFsdWUiLCJfaW5pdGlhbFZhbHVlIiwidG9EYXRlIiwidiIsImIiLCJfc2VsZWN0ZWRWYWx1ZSIsImluaXRDYWxlbmRhciIsImFwcGx5U2VsZWN0aW9uIiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsIm1pbGxpc2Vjb25kIiwidGVtcFZhbHVlIiwibG9jYWwiLCJ1dGMiLCJlbWl0IiwiY2hhbmdlTW9kZSIsImluaXREYXRlcyIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsIm1pbnV0ZXMiLCJtb250aEJhY2siLCJtb250aE5leHQiLCJuZ09uSW5pdCIsInJlc2V0U2VsZWN0aW9uIiwic2VsZWN0RGF0ZSIsImZvckVhY2giLCJmaWx0ZXIiLCJpdG0iLCJkYXRlVmFsdWUiLCJzZXRIb3VycyIsImluaXRTZWxlY3RlZFZhbHVlIiwic2V0TWludXRlcyIsInNldFRvZGF5IiwiY3VycmVudE1vbnRoIiwiRGF0ZSIsImxhc3RNb250aCIsImFkZCIsIm1vbnRocyIsIm5leHRNb250aHMiLCJ3ZWVrZGF5QmVnaW4iLCJ3ZWVrZGF5Iiwid2Vla2RheUVuZCIsImRheXNJbk1vbnRoIiwiZGF5c0luQ2FsZW5kYXIiLCJsYXN0TW9udGhEYXkiLCJsYXN0TW9udGhEYXRlIiwibGFzdE1vbnRoV2Vla2RheSIsImRheXNJbkxhc3RNb250aCIsImRheSIsInNwbGljZSIsInRvU3RyaW5nIiwiZGF5aW5tb250aCIsImlzU2VsZWN0ZWREYXRlIiwiaXNOZXdEYXRlIiwiaXNDdXJyZW50RGF0ZSIsInB1c2giLCJlbmRPZkNhbGVuZGVyIiwiY291bnRNaXNzaW5nRGF5cyIsImkiLCJpbmRleCIsImxlbmd0aCIsImRlcHMiLCJ0b2tlbiIsImkwIiwiSW5qZWN0b3IiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsIm91dHB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9kYXRldGltZS9kYXRlc2VsZWN0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IElTYWNJY29uU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY0ljb25TZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0lDT05fU0VSVklDRSwgU2FjRGVmYXVsdEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8vICNyZWdpb24gQ2xhc3Nlc1xuXG4vKipcbiAqQmFzaXMgS29tcG9uZW50ZSBmw7xyIERhdGVTZWxlY3Rvckl0ZW1cbiAqL1xuY2xhc3MgRGF0ZVNlbGVjdG9ySXRlbSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBEYXR1bVxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRlOiBEYXRlID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheVRleHQgUHJvcGVydHk7IGRlZmF1bHQgV2VydCAtICcnXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXl0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHksIGRpZSB6ZWlndCwgb2IgZGFzIEVsZW1lbnQgYWt0dWVsbCBpc3Q7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzY3VycmVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBQcm9wZXJ0eSwgZGllIHplaWd0LCBvYiBkYXMgQ29udHJvbCBlbmFibGVkIGlzdDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5LCBkaWUgemVpZ3QsIG9iIGRhcyBFbGVtZW50IG5ldSBpc3Q7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzbmV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5LCBkaWUgemVpZ3QsIG9iIGRhcyBFbGVtZW50IHNlbGVrdGllcnQgaXN0OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc3NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEBwYXJhbSBkaXNwbGF5dGV4dCBBbnplaWdldGV4dFxuICAgICAqIEBwYXJhbSBkYXRlIERhdHVtXG4gICAgICogQHBhcmFtIGlzZW5hYmxlZCBFbGVtZW50IGlzdCBha3RpdlxuICAgICAqIEBwYXJhbSBpc3NlbGVjdGVkIEVsZW1lbnQgaXN0IHNlbGVrdGllcnRcbiAgICAgKiBAcGFyYW0gaXNjdXJyZW50IEVsZW1lbnQgaXN0IGFrdHVlbGxlcyBFbGVtZW50XG4gICAgICogQHBhcmFtIGlzbmV3IEVsZW1lbnQgaXN0IG5ldVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkaXNwbGF5dGV4dDogc3RyaW5nLFxuICAgICAgICBkYXRlOiBEYXRlLFxuICAgICAgICBpc2VuYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgIGlzc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgICAgIGlzY3VycmVudDogYm9vbGVhbixcbiAgICAgICAgaXNuZXc6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5dGV4dCA9IGRpc3BsYXl0ZXh0O1xuICAgICAgICB0aGlzLmRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmlzZW5hYmxlZCA9IGlzZW5hYmxlZDtcbiAgICAgICAgdGhpcy5pc2N1cnJlbnQgPSBpc2N1cnJlbnQ7XG4gICAgICAgIHRoaXMuaXNzZWxlY3RlZCA9IGlzc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuaXNuZXcgPSBpc25ldztcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuXG4vLyAjZW5kcmVnaW9uIENsYXNzZXNcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBNb21lbnRcbiAqL1xuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKkJhc2lzIEtvbXBvbmVudGUgZsO8ciBTYWNEYXRlU2VsZWN0b3JcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjRGF0ZVNlbGVjdG9yQ29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIFVyc3Byw7xuZ2xpY2hlcyBEYXR1bVxuICAgICAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxWYWx1ZTogTW9tZW50IHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEFrdHVlbGwgZ2V3w6RobHRlcyBEYXR1bVxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkVmFsdWU6IE1vbWVudCB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBbmZhbmcgZGVzIEthbGVuZGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgYmVnaW5PZkNhbGVuZGFyOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBzZXJ2aWNlIHRvIHJlc29sdmUgaWNvbnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGbDvHIgYXV0b21hdGlzY2hlIFNlbGVrdGllcnVuZzsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvYXBwbHlzZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IHZvbiBEYXRlblxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRlczogRGF0ZVNlbGVjdG9ySXRlbVtdW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIERhdHVtIFNlbGVjdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0ZXNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTW9uYXRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb250aDogbnVtYmVyID0gNDtcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIE91dHB1dCBFdmVudCBiZWltIERhdHVtIFNlbGVrdGllcmVuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIFRpbWUgU2VsZWN0b3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aW1lc2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBKYWhyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgeWVhcjogbnVtYmVyID0gMjAxODtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0IGljb24gdG8gc3dpdGNoIHRvIG5leHQgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25Nb250aE5leHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGljb24gdG8gc3dpdGNoIHRvIHByZXZpb3VzIG1vbnRoXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uTW9udGhQcmV2KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkRhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aFByZXZJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElucHV0IGbDvHIgdXJzcHLDvG5nbGljaGVzIERhdHVtXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGluaXRpYWx2YWx1ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGluaXRpYWx2YWx1ZSh2OiBEYXRlIHwgbnVsbCkge1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUgPSBtb21lbnQodik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRDYWxlbmRhcihtb21lbnQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRDYWxlbmRhcih0aGlzLl9pbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogU2VsZWt0aWVydW5nIMO8YmVybmVobWVuXG4gICAgICovXG4gICAgcHVibGljIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lc2VsZWN0aW9uID09PSBmYWxzZSAmJiB0aGlzLl9zZWxlY3RlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIoMCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbnV0ZSgwKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taWxsaXNlY29uZCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRhdGVzZWxlY3Rpb24gPT09IGZhbHNlICYmIHRoaXMuX3NlbGVjdGVkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBWYWx1ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLl9zZWxlY3RlZFZhbHVlLmxvY2FsKCk7XG4gICAgICAgICAgICB0ZW1wVmFsdWUuZGF0ZSgxKTtcbiAgICAgICAgICAgIHRlbXBWYWx1ZS5tb250aCgwKTtcbiAgICAgICAgICAgIHRlbXBWYWx1ZS55ZWFyKDE5MDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IHRlbXBWYWx1ZS51dGMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlID09PSBudWxsICYmIHRoaXMuX2luaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RkYXRlLmVtaXQoeyBkYXRlOiB0aGlzLl9pbml0aWFsVmFsdWUubG9jYWwoKSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZGF0ZS5lbWl0KHtcbiAgICAgICAgICAgIGRhdGU6IHRoaXMuX3NlbGVjdGVkVmFsdWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1vZHVzIMOkbmRlcm5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmVnaW5PZkNhbGVuZGFyID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luT2ZDYWxlbmRhciA9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luT2ZDYWxlbmRhciA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREYXRlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmw7xyIFN0dW5kZW4gVWhyemVpdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIb3VycygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZXJ0IGF1cyBJbml0IFZhbHVlIGxlc2VuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9pbml0aWFsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS5ob3VyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5ob3VyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZsO8ciBNaW51dGVuIFVocnplaXRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TWludXRlcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZXJ0IGF1cyBJbml0IFZhbHVlIGxlc2VuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9pbml0aWFsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS5taW51dGVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWb3JoZXJpZ2VyIE1vbmF0XG4gICAgICovXG4gICAgcHVibGljIG1vbnRoQmFjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5tb250aCA9IDExO1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTsOkY2hzdGVyIE1vbmF0XG4gICAgICovXG4gICAgcHVibGljIG1vbnRoTmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggKyAxO1xuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoID4gMTEpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGggPSAwO1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluaXQgSW5pdGlhbCBEYXRlIGlmIEVtcHR5XG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWt0aWVydW5nIHJlc2V0dGVuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGRhdGUuZW1pdCh7XG4gICAgICAgICAgICBkYXRlOiBudWxsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBkYXMgc2VsZWt0aWVydGUgRGF0dW1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZSh2OiBEYXRlU2VsZWN0b3JJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh2LmlzZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlcy5mb3JFYWNoKChkYXRlKSA9PiBkYXRlLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuaXNuZXcpLmZvckVhY2goKGl0bSkgPT4gKGl0bS5pc25ldyA9IGZhbHNlKSkpO1xuICAgICAgICAgICAgdGhpcy5kYXRlcy5mb3JFYWNoKChkYXRlKSA9PlxuICAgICAgICAgICAgICAgIGRhdGUuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5pc3NlbGVjdGVkKS5mb3JFYWNoKChpdG0pID0+IChpdG0uaXNzZWxlY3RlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2LmlzbmV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHYuaXNzZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGVWYWx1ZTogTW9tZW50ID0gbW9tZW50KHYuZGF0ZSk7XG5cbiAgICAgICAgICAgIC8vIMOcYmVybmVobWVuIGRlciBaZWl0IGF1cyBkZW0gYmVzdGVoZW5kZW4gV2VydFxuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVWYWx1ZS5ob3VyKHRoaXMuX2luaXRpYWxWYWx1ZS5ob3VyKCkpO1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUubWludXRlKHRoaXMuX2luaXRpYWxWYWx1ZS5taW51dGUoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUuaG91cih0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIoKSk7XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlLm1pbnV0ZSh0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbnV0ZSgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2VrdW5kZW4gdW4gTWlsaXNla3VuZGVuIENsZWFuXG4gICAgICAgICAgICBkYXRlVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgZGF0ZVZhbHVlLm1pbGxpc2Vjb25kKDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IGRhdGVWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b2FwcGx5c2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGbDvHIgU3R1bmRlbiBVaHJ6ZWl0XG4gICAgICovXG4gICAgcHVibGljIHNldEhvdXJzKHY6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHYgPj0gMjQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogU2VsZWN0IFZhbHVlIHNldHplbiBmYWxscyBsZWVyXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFZhbHVlKCk7XG5cbiAgICAgICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuaG91cigwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuaG91cih2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmw7xyIE1pbnV0ZW4gVWhyemVpdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNaW51dGVzKHY6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHYgPj0gNjApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWxlY3QgVmFsdWUgc2V0emVuIGZhbGxzIGxlZXJcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdGVkVmFsdWUoKTtcblxuICAgICAgICBpZiAodiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKHYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXVzd2FobCBhdWYgYWt0dWVsbGUgWmVpdCBzdGVsbGVuXG4gICAgICovXG4gICAgcHVibGljIHNldFRvZGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gbW9tZW50KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNla3VuZGVuIHVuIE1pbGlzZWt1bmRlbiBDbGVhblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5zZWNvbmQoMCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWlsbGlzZWNvbmQoMCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEthbGVuZGVyIERhdGVuIGluaXRpYWxpc2llcmVuIGZhbGxzIEthbGVuZGVyIGFuZ2V6ZWlndFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuZGF0ZXNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2FsZW5kYXIodGhpcy5fc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdXRvYXBwbHlzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZWxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBVcnNwcsO8bmdsaWNoZXIgS2FsZW5kZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRDYWxlbmRhcih2OiBNb21lbnQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1vbmF0IHVuZCBKYWhyIHNldHplblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tb250aCA9IHYubW9udGgoKTtcbiAgICAgICAgdGhpcy55ZWFyID0gdi55ZWFyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERhdGVuIGbDvHIgS2FsZW5kZXIgaW5pdGlhbGlzZXJlblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbml0RGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIERhdHVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0RGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpKTtcbiAgICAgICAgY29uc3QgbGFzdE1vbnRoID0gbW9tZW50KG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgMSkpO1xuICAgICAgICBsYXN0TW9udGguYWRkKHsgbW9udGhzOiAtMSB9KTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRocyA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpKTtcbiAgICAgICAgbmV4dE1vbnRocy5hZGQoeyBtb250aHM6IDEgfSk7XG5cbiAgICAgICAgY29uc3Qgd2Vla2RheUJlZ2luOiBudW1iZXIgPSBjdXJyZW50TW9udGgud2Vla2RheSgpO1xuICAgICAgICBjb25zdCB3ZWVrZGF5RW5kOiBudW1iZXIgPSBtb21lbnQoXG4gICAgICAgICAgICBuZXcgRGF0ZShjdXJyZW50TW9udGgueWVhcigpLCBjdXJyZW50TW9udGgubW9udGgoKSwgY3VycmVudE1vbnRoLmRheXNJbk1vbnRoKCkpXG4gICAgICAgICkud2Vla2RheSgpO1xuICAgICAgICAvLyBDbGVhciBBcnJheVxuICAgICAgICBjb25zdCBkYXlzSW5DYWxlbmRhcjogRGF0ZVNlbGVjdG9ySXRlbVtdID0gW107XG4gICAgICAgIHRoaXMuZGF0ZXMgPSBbXTtcblxuICAgICAgICBpZiAod2Vla2RheUJlZ2luICE9PSB0aGlzLmJlZ2luT2ZDYWxlbmRhcikge1xuICAgICAgICAgICAgY29uc3QgbGFzdE1vbnRoRGF5ID0gbGFzdE1vbnRoLmRheXNJbk1vbnRoKCk7XG4gICAgICAgICAgICBjb25zdCBsYXN0TW9udGhEYXRlID0gbmV3IERhdGUobGFzdE1vbnRoLnllYXIoKSwgbGFzdE1vbnRoLm1vbnRoKCksIGxhc3RNb250aERheSk7XG4gICAgICAgICAgICBjb25zdCBsYXN0TW9udGhXZWVrZGF5ID0gbW9tZW50KGxhc3RNb250aERhdGUpLndlZWtkYXkoKTtcblxuICAgICAgICAgICAgbGV0IGRheXNJbkxhc3RNb250aCA9IDcgLSAoKDcgKyB0aGlzLmJlZ2luT2ZDYWxlbmRhciAtIGxhc3RNb250aFdlZWtkYXkpICUgNyk7XG4gICAgICAgICAgICBpZiAoZGF5c0luTGFzdE1vbnRoID09PSA3KSB7XG4gICAgICAgICAgICAgICAgZGF5c0luTGFzdE1vbnRoID0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gbGFzdE1vbnRoRGF5OyBkYXkgPj0gbGFzdE1vbnRoRGF5IC0gZGF5c0luTGFzdE1vbnRoOyBkYXktLSkge1xuICAgICAgICAgICAgICAgIGRheXNJbkNhbGVuZGFyLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgbmV3IERhdGVTZWxlY3Rvckl0ZW0oXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGxhc3RNb250aC55ZWFyKCksIGxhc3RNb250aC5tb250aCgpLCBkYXkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgYWxsIERheXMgaW4gTW9udGhcbiAgICAgICAgZm9yIChsZXQgZGF5aW5tb250aCA9IDE7IGRheWlubW9udGggPD0gY3VycmVudE1vbnRoLmRheXNJbk1vbnRoKCk7IGRheWlubW9udGgrKykge1xuICAgICAgICAgICAgbGV0IGlzU2VsZWN0ZWREYXRlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgaXNOZXdEYXRlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBpc0N1cnJlbnREYXRlOiBib29sZWFuID1cbiAgICAgICAgICAgICAgICBtb21lbnQoKS5tb250aCgpID09PSB0aGlzLm1vbnRoICYmIG1vbWVudCgpLnllYXIoKSA9PT0gdGhpcy55ZWFyICYmIG1vbWVudCgpLmRhdGUoKSA9PT0gZGF5aW5tb250aDtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbCBXZXJ0IHNldHplbiwgZmFsbHMgdm9yaGFuZGVuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZERhdGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUubW9udGgoKSA9PT0gdGhpcy5tb250aCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUueWVhcigpID09PSB0aGlzLnllYXIgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlLmRhdGUoKSA9PT0gZGF5aW5tb250aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2VsZWN0ZWQgRGF0ZSBXZXJ0IHNldHplbiwgZmFsbHMgV2VydCBnZXNldHp0XG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlzTmV3RGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubW9udGgoKSA9PT0gdGhpcy5tb250aCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLnllYXIoKSA9PT0gdGhpcy55ZWFyICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuZGF0ZSgpID09PSBkYXlpbm1vbnRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXlzSW5DYWxlbmRhci5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBEYXRlU2VsZWN0b3JJdGVtKFxuICAgICAgICAgICAgICAgICAgICBkYXlpbm1vbnRoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudChbdGhpcy55ZWFyLCB0aGlzLm1vbnRoLCBkYXlpbm1vbnRoXSkudG9EYXRlKCksXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWREYXRlLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBpc05ld0RhdGVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVuZE9mQ2FsZW5kZXI6IG51bWJlcjtcbiAgICAgICAgaWYgKHRoaXMuYmVnaW5PZkNhbGVuZGFyID09PSAwKSB7XG4gICAgICAgICAgICBlbmRPZkNhbGVuZGVyID0gNjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVuZE9mQ2FsZW5kZXIgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdlZWtkYXlFbmQgIT09IGVuZE9mQ2FsZW5kZXIpIHtcbiAgICAgICAgICAgIGxldCBjb3VudE1pc3NpbmdEYXlzOiBudW1iZXI7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJlZ2luT2ZDYWxlbmRhciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvdW50TWlzc2luZ0RheXMgPSBlbmRPZkNhbGVuZGVyIC0gd2Vla2RheUVuZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY291bnRNaXNzaW5nRGF5cyA9IDcgLSB3ZWVrZGF5RW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBjb3VudE1pc3NpbmdEYXlzOyBpKyspIHtcbiAgICAgICAgICAgICAgICBkYXlzSW5DYWxlbmRhci5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZVNlbGVjdG9ySXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKG5leHRNb250aHMueWVhcigpLCBuZXh0TW9udGhzLm1vbnRoKCksIGkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF5c0luQ2FsZW5kYXIubGVuZ3RoIC8gNzsgaW5kZXgrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gMDsgZGF5IDwgNzsgZGF5KyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF5ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXNbaW5kZXhdID0gW107XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlc1tpbmRleF0ucHVzaChkYXlzSW5DYWxlbmRhcltpbmRleCAqIDcgKyBkYXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlbGVjdGVkVmFsdWUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWxlY3QgVmFsdWUgc2V0emVuIGZhbGxzIGxlZXJcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IG1vbWVudCgpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGNsZWFuIHNlY29uZHMgYW5kIG1pbGlzZWNvbmRzIGZvciBpbml0aWFsIHZhbHVlc1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWlsbGlzZWNvbmQoMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSB0aGlzLl9pbml0aWFsVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuXG4vLyAjZW5kcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcbiJdLCJtYXBwaW5ncyI6Ijt5RkFFQSxPQUFTQSxlQUFlLENBQUVDLHFCQUFxQixLQUFRLGdCQUFnQixDQUN2RSxPQUFTQyxVQUFVLEtBQVEsc0JBQXNCLENBQ2pELE9BQVNDLFNBQVMsQ0FBRUMsWUFBWSxDQUFZQyxLQUFLLENBQVVDLE1BQU0sS0FBUSxlQUFlLENBQ3hGLE1BQU8sR0FBSyxDQUFBQyxPQUFPLEtBQU0sUUFBUSxDLGlDQUVq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
127
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQUNJQ09OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0SWNvblNlcnZpY2UiLCJjcmVhdGVHdWlkIiwiRGlyZWN0aXZlIiwiRXZlbnRFbWl0dGVyIiwiSW5wdXQiLCJPdXRwdXQiLCJtb21lbnRfIiwiRGF0ZVNlbGVjdG9ySXRlbSIsImNvbnN0cnVjdG9yIiwiZGlzcGxheXRleHQiLCJkYXRlIiwiaXNlbmFibGVkIiwiaXNzZWxlY3RlZCIsImlzY3VycmVudCIsImlzbmV3IiwiY292X3drb3gyZzR0biIsImYiLCJzIiwidW5kZWZpbmVkIiwibW9tZW50IiwiU2FjRGF0ZVNlbGVjdG9yQ29tbW9uIiwiaW5qZWN0b3IiLCJiZWdpbk9mQ2FsZW5kYXIiLCJhdXRvYXBwbHlzZWxlY3Rpb24iLCJkYXRlcyIsImRhdGVzZWxlY3Rpb24iLCJlMmVpZGVudGlmaWVyIiwibW9udGgiLCJuYW1lIiwic2VsZWN0ZGF0ZSIsInRpbWVzZWxlY3Rpb24iLCJ5ZWFyIiwiaWNvblNlcnZpY2UiLCJnZXQiLCJpY29uTW9udGhOZXh0IiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24iLCJpY29uTW9udGhQcmV2IiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoUHJldkljb24iLCJpbml0aWFsdmFsdWUiLCJfaW5pdGlhbFZhbHVlIiwidG9EYXRlIiwidiIsImIiLCJfc2VsZWN0ZWRWYWx1ZSIsImluaXRDYWxlbmRhciIsImFwcGx5U2VsZWN0aW9uIiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsIm1pbGxpc2Vjb25kIiwidGVtcFZhbHVlIiwibG9jYWwiLCJ1dGMiLCJlbWl0IiwiY2hhbmdlTW9kZSIsImluaXREYXRlcyIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsIm1pbnV0ZXMiLCJtb250aEJhY2siLCJtb250aE5leHQiLCJuZ09uSW5pdCIsInJlc2V0U2VsZWN0aW9uIiwic2VsZWN0RGF0ZSIsImZvckVhY2giLCJmaWx0ZXIiLCJpdG0iLCJkYXRlVmFsdWUiLCJzZXRIb3VycyIsImluaXRTZWxlY3RlZFZhbHVlIiwic2V0TWludXRlcyIsInNldFRvZGF5IiwiY3VycmVudE1vbnRoIiwiRGF0ZSIsImxhc3RNb250aCIsImFkZCIsIm1vbnRocyIsIm5leHRNb250aHMiLCJ3ZWVrZGF5QmVnaW4iLCJ3ZWVrZGF5Iiwid2Vla2RheUVuZCIsImRheXNJbk1vbnRoIiwiZGF5c0luQ2FsZW5kYXIiLCJsYXN0TW9udGhEYXkiLCJsYXN0TW9udGhEYXRlIiwibGFzdE1vbnRoV2Vla2RheSIsImRheXNJbkxhc3RNb250aCIsImRheSIsInNwbGljZSIsInRvU3RyaW5nIiwiZGF5aW5tb250aCIsImlzU2VsZWN0ZWREYXRlIiwiaXNOZXdEYXRlIiwiaXNDdXJyZW50RGF0ZSIsInB1c2giLCJlbmRPZkNhbGVuZGVyIiwiY291bnRNaXNzaW5nRGF5cyIsImkiLCJpbmRleCIsImxlbmd0aCIsImRlcHMiLCJ0b2tlbiIsImkwIiwiSW5qZWN0b3IiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsIm91dHB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9kYXRldGltZS9kYXRlc2VsZWN0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IElTYWNJY29uU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY0ljb25TZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0lDT05fU0VSVklDRSwgU2FjRGVmYXVsdEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8vICNyZWdpb24gQ2xhc3Nlc1xuXG4vKipcbiAqQmFzaXMgS29tcG9uZW50ZSBmw7xyIERhdGVTZWxlY3Rvckl0ZW1cbiAqL1xuY2xhc3MgRGF0ZVNlbGVjdG9ySXRlbSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBEYXR1bVxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRlOiBEYXRlID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheVRleHQgUHJvcGVydHk7IGRlZmF1bHQgV2VydCAtICcnXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXl0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHksIGRpZSB6ZWlndCwgb2IgZGFzIEVsZW1lbnQgYWt0dWVsbCBpc3Q7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzY3VycmVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBQcm9wZXJ0eSwgZGllIHplaWd0LCBvYiBkYXMgQ29udHJvbCBlbmFibGVkIGlzdDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5LCBkaWUgemVpZ3QsIG9iIGRhcyBFbGVtZW50IG5ldSBpc3Q7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzbmV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5LCBkaWUgemVpZ3QsIG9iIGRhcyBFbGVtZW50IHNlbGVrdGllcnQgaXN0OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc3NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEBwYXJhbSBkaXNwbGF5dGV4dCBBbnplaWdldGV4dFxuICAgICAqIEBwYXJhbSBkYXRlIERhdHVtXG4gICAgICogQHBhcmFtIGlzZW5hYmxlZCBFbGVtZW50IGlzdCBha3RpdlxuICAgICAqIEBwYXJhbSBpc3NlbGVjdGVkIEVsZW1lbnQgaXN0IHNlbGVrdGllcnRcbiAgICAgKiBAcGFyYW0gaXNjdXJyZW50IEVsZW1lbnQgaXN0IGFrdHVlbGxlcyBFbGVtZW50XG4gICAgICogQHBhcmFtIGlzbmV3IEVsZW1lbnQgaXN0IG5ldVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkaXNwbGF5dGV4dDogc3RyaW5nLFxuICAgICAgICBkYXRlOiBEYXRlLFxuICAgICAgICBpc2VuYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgIGlzc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgICAgIGlzY3VycmVudDogYm9vbGVhbixcbiAgICAgICAgaXNuZXc6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5dGV4dCA9IGRpc3BsYXl0ZXh0O1xuICAgICAgICB0aGlzLmRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmlzZW5hYmxlZCA9IGlzZW5hYmxlZDtcbiAgICAgICAgdGhpcy5pc2N1cnJlbnQgPSBpc2N1cnJlbnQ7XG4gICAgICAgIHRoaXMuaXNzZWxlY3RlZCA9IGlzc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuaXNuZXcgPSBpc25ldztcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuXG4vLyAjZW5kcmVnaW9uIENsYXNzZXNcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBNb21lbnRcbiAqL1xuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKkJhc2lzIEtvbXBvbmVudGUgZsO8ciBTYWNEYXRlU2VsZWN0b3JcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjRGF0ZVNlbGVjdG9yQ29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIFVyc3Byw7xuZ2xpY2hlcyBEYXR1bVxuICAgICAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxWYWx1ZTogTW9tZW50IHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEFrdHVlbGwgZ2V3w6RobHRlcyBEYXR1bVxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkVmFsdWU6IE1vbWVudCB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBbmZhbmcgZGVzIEthbGVuZGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgYmVnaW5PZkNhbGVuZGFyOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBzZXJ2aWNlIHRvIHJlc29sdmUgaWNvbnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGbDvHIgYXV0b21hdGlzY2hlIFNlbGVrdGllcnVuZzsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvYXBwbHlzZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IHZvbiBEYXRlblxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRlczogRGF0ZVNlbGVjdG9ySXRlbVtdW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIERhdHVtIFNlbGVjdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0ZXNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTW9uYXRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb250aDogbnVtYmVyID0gNDtcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIE91dHB1dCBFdmVudCBiZWltIERhdHVtIFNlbGVrdGllcmVuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIFRpbWUgU2VsZWN0b3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aW1lc2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBKYWhyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgeWVhcjogbnVtYmVyID0gMjAxODtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0IGljb24gdG8gc3dpdGNoIHRvIG5leHQgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25Nb250aE5leHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGljb24gdG8gc3dpdGNoIHRvIHByZXZpb3VzIG1vbnRoXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uTW9udGhQcmV2KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkRhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aFByZXZJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElucHV0IGbDvHIgdXJzcHLDvG5nbGljaGVzIERhdHVtXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGluaXRpYWx2YWx1ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGluaXRpYWx2YWx1ZSh2OiBEYXRlIHwgbnVsbCkge1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUgPSBtb21lbnQodik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRDYWxlbmRhcihtb21lbnQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRDYWxlbmRhcih0aGlzLl9pbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogU2VsZWt0aWVydW5nIMO8YmVybmVobWVuXG4gICAgICovXG4gICAgcHVibGljIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lc2VsZWN0aW9uID09PSBmYWxzZSAmJiB0aGlzLl9zZWxlY3RlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIoMCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbnV0ZSgwKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taWxsaXNlY29uZCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRhdGVzZWxlY3Rpb24gPT09IGZhbHNlICYmIHRoaXMuX3NlbGVjdGVkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBWYWx1ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLl9zZWxlY3RlZFZhbHVlLmxvY2FsKCk7XG4gICAgICAgICAgICB0ZW1wVmFsdWUuZGF0ZSgxKTtcbiAgICAgICAgICAgIHRlbXBWYWx1ZS5tb250aCgwKTtcbiAgICAgICAgICAgIHRlbXBWYWx1ZS55ZWFyKDE5MDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IHRlbXBWYWx1ZS51dGMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlID09PSBudWxsICYmIHRoaXMuX2luaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RkYXRlLmVtaXQoeyBkYXRlOiB0aGlzLl9pbml0aWFsVmFsdWUubG9jYWwoKSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZGF0ZS5lbWl0KHtcbiAgICAgICAgICAgIGRhdGU6IHRoaXMuX3NlbGVjdGVkVmFsdWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1vZHVzIMOkbmRlcm5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmVnaW5PZkNhbGVuZGFyID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luT2ZDYWxlbmRhciA9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJlZ2luT2ZDYWxlbmRhciA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXREYXRlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmw7xyIFN0dW5kZW4gVWhyemVpdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIb3VycygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZXJ0IGF1cyBJbml0IFZhbHVlIGxlc2VuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9pbml0aWFsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS5ob3VyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5ob3VyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZsO8ciBNaW51dGVuIFVocnplaXRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TWludXRlcygpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZXJ0IGF1cyBJbml0IFZhbHVlIGxlc2VuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9pbml0aWFsVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxWYWx1ZS5taW51dGVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWb3JoZXJpZ2VyIE1vbmF0XG4gICAgICovXG4gICAgcHVibGljIG1vbnRoQmFjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5tb250aCA9IDExO1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTsOkY2hzdGVyIE1vbmF0XG4gICAgICovXG4gICAgcHVibGljIG1vbnRoTmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggKyAxO1xuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoID4gMTEpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGggPSAwO1xuICAgICAgICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluaXQgSW5pdGlhbCBEYXRlIGlmIEVtcHR5XG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdERhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWt0aWVydW5nIHJlc2V0dGVuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGRhdGUuZW1pdCh7XG4gICAgICAgICAgICBkYXRlOiBudWxsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBkYXMgc2VsZWt0aWVydGUgRGF0dW1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZSh2OiBEYXRlU2VsZWN0b3JJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh2LmlzZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlcy5mb3JFYWNoKChkYXRlKSA9PiBkYXRlLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuaXNuZXcpLmZvckVhY2goKGl0bSkgPT4gKGl0bS5pc25ldyA9IGZhbHNlKSkpO1xuICAgICAgICAgICAgdGhpcy5kYXRlcy5mb3JFYWNoKChkYXRlKSA9PlxuICAgICAgICAgICAgICAgIGRhdGUuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5pc3NlbGVjdGVkKS5mb3JFYWNoKChpdG0pID0+IChpdG0uaXNzZWxlY3RlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2LmlzbmV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHYuaXNzZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGVWYWx1ZTogTW9tZW50ID0gbW9tZW50KHYuZGF0ZSk7XG5cbiAgICAgICAgICAgIC8vIMOcYmVybmVobWVuIGRlciBaZWl0IGF1cyBkZW0gYmVzdGVoZW5kZW4gV2VydFxuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVWYWx1ZS5ob3VyKHRoaXMuX2luaXRpYWxWYWx1ZS5ob3VyKCkpO1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUubWludXRlKHRoaXMuX2luaXRpYWxWYWx1ZS5taW51dGUoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlVmFsdWUuaG91cih0aGlzLl9zZWxlY3RlZFZhbHVlLmhvdXIoKSk7XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlLm1pbnV0ZSh0aGlzLl9zZWxlY3RlZFZhbHVlLm1pbnV0ZSgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2VrdW5kZW4gdW4gTWlsaXNla3VuZGVuIENsZWFuXG4gICAgICAgICAgICBkYXRlVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgZGF0ZVZhbHVlLm1pbGxpc2Vjb25kKDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IGRhdGVWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b2FwcGx5c2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGbDvHIgU3R1bmRlbiBVaHJ6ZWl0XG4gICAgICovXG4gICAgcHVibGljIHNldEhvdXJzKHY6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHYgPj0gMjQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogU2VsZWN0IFZhbHVlIHNldHplbiBmYWxscyBsZWVyXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmluaXRTZWxlY3RlZFZhbHVlKCk7XG5cbiAgICAgICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuaG91cigwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuaG91cih2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmw7xyIE1pbnV0ZW4gVWhyemVpdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNaW51dGVzKHY6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHYgPj0gNjApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWxlY3QgVmFsdWUgc2V0emVuIGZhbGxzIGxlZXJcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdGVkVmFsdWUoKTtcblxuICAgICAgICBpZiAodiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5taW51dGVzKHYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXVzd2FobCBhdWYgYWt0dWVsbGUgWmVpdCBzdGVsbGVuXG4gICAgICovXG4gICAgcHVibGljIHNldFRvZGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gbW9tZW50KCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNla3VuZGVuIHVuIE1pbGlzZWt1bmRlbiBDbGVhblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZS5zZWNvbmQoMCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWlsbGlzZWNvbmQoMCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEthbGVuZGVyIERhdGVuIGluaXRpYWxpc2llcmVuIGZhbGxzIEthbGVuZGVyIGFuZ2V6ZWlndFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuZGF0ZXNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2FsZW5kYXIodGhpcy5fc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdXRvYXBwbHlzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZWxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBVcnNwcsO8bmdsaWNoZXIgS2FsZW5kZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRDYWxlbmRhcih2OiBNb21lbnQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1vbmF0IHVuZCBKYWhyIHNldHplblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tb250aCA9IHYubW9udGgoKTtcbiAgICAgICAgdGhpcy55ZWFyID0gdi55ZWFyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERhdGVuIGbDvHIgS2FsZW5kZXIgaW5pdGlhbGlzZXJlblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbml0RGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIERhdHVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0RGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpKTtcbiAgICAgICAgY29uc3QgbGFzdE1vbnRoID0gbW9tZW50KG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgMSkpO1xuICAgICAgICBsYXN0TW9udGguYWRkKHsgbW9udGhzOiAtMSB9KTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRocyA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIDEpKTtcbiAgICAgICAgbmV4dE1vbnRocy5hZGQoeyBtb250aHM6IDEgfSk7XG5cbiAgICAgICAgY29uc3Qgd2Vla2RheUJlZ2luOiBudW1iZXIgPSBjdXJyZW50TW9udGgud2Vla2RheSgpO1xuICAgICAgICBjb25zdCB3ZWVrZGF5RW5kOiBudW1iZXIgPSBtb21lbnQoXG4gICAgICAgICAgICBuZXcgRGF0ZShjdXJyZW50TW9udGgueWVhcigpLCBjdXJyZW50TW9udGgubW9udGgoKSwgY3VycmVudE1vbnRoLmRheXNJbk1vbnRoKCkpXG4gICAgICAgICkud2Vla2RheSgpO1xuICAgICAgICAvLyBDbGVhciBBcnJheVxuICAgICAgICBjb25zdCBkYXlzSW5DYWxlbmRhcjogRGF0ZVNlbGVjdG9ySXRlbVtdID0gW107XG4gICAgICAgIHRoaXMuZGF0ZXMgPSBbXTtcblxuICAgICAgICBpZiAod2Vla2RheUJlZ2luICE9PSB0aGlzLmJlZ2luT2ZDYWxlbmRhcikge1xuICAgICAgICAgICAgY29uc3QgbGFzdE1vbnRoRGF5ID0gbGFzdE1vbnRoLmRheXNJbk1vbnRoKCk7XG4gICAgICAgICAgICBjb25zdCBsYXN0TW9udGhEYXRlID0gbmV3IERhdGUobGFzdE1vbnRoLnllYXIoKSwgbGFzdE1vbnRoLm1vbnRoKCksIGxhc3RNb250aERheSk7XG4gICAgICAgICAgICBjb25zdCBsYXN0TW9udGhXZWVrZGF5ID0gbW9tZW50KGxhc3RNb250aERhdGUpLndlZWtkYXkoKTtcblxuICAgICAgICAgICAgbGV0IGRheXNJbkxhc3RNb250aCA9IDcgLSAoKDcgKyB0aGlzLmJlZ2luT2ZDYWxlbmRhciAtIGxhc3RNb250aFdlZWtkYXkpICUgNyk7XG4gICAgICAgICAgICBpZiAoZGF5c0luTGFzdE1vbnRoID09PSA3KSB7XG4gICAgICAgICAgICAgICAgZGF5c0luTGFzdE1vbnRoID0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gbGFzdE1vbnRoRGF5OyBkYXkgPj0gbGFzdE1vbnRoRGF5IC0gZGF5c0luTGFzdE1vbnRoOyBkYXktLSkge1xuICAgICAgICAgICAgICAgIGRheXNJbkNhbGVuZGFyLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgbmV3IERhdGVTZWxlY3Rvckl0ZW0oXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGxhc3RNb250aC55ZWFyKCksIGxhc3RNb250aC5tb250aCgpLCBkYXkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgYWxsIERheXMgaW4gTW9udGhcbiAgICAgICAgZm9yIChsZXQgZGF5aW5tb250aCA9IDE7IGRheWlubW9udGggPD0gY3VycmVudE1vbnRoLmRheXNJbk1vbnRoKCk7IGRheWlubW9udGgrKykge1xuICAgICAgICAgICAgbGV0IGlzU2VsZWN0ZWREYXRlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgaXNOZXdEYXRlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBpc0N1cnJlbnREYXRlOiBib29sZWFuID1cbiAgICAgICAgICAgICAgICBtb21lbnQoKS5tb250aCgpID09PSB0aGlzLm1vbnRoICYmIG1vbWVudCgpLnllYXIoKSA9PT0gdGhpcy55ZWFyICYmIG1vbWVudCgpLmRhdGUoKSA9PT0gZGF5aW5tb250aDtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbCBXZXJ0IHNldHplbiwgZmFsbHMgdm9yaGFuZGVuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZERhdGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUubW9udGgoKSA9PT0gdGhpcy5tb250aCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWUueWVhcigpID09PSB0aGlzLnllYXIgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlLmRhdGUoKSA9PT0gZGF5aW5tb250aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2VsZWN0ZWQgRGF0ZSBXZXJ0IHNldHplbiwgZmFsbHMgV2VydCBnZXNldHp0XG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlzTmV3RGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubW9udGgoKSA9PT0gdGhpcy5tb250aCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlLnllYXIoKSA9PT0gdGhpcy55ZWFyICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuZGF0ZSgpID09PSBkYXlpbm1vbnRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXlzSW5DYWxlbmRhci5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBEYXRlU2VsZWN0b3JJdGVtKFxuICAgICAgICAgICAgICAgICAgICBkYXlpbm1vbnRoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudChbdGhpcy55ZWFyLCB0aGlzLm1vbnRoLCBkYXlpbm1vbnRoXSkudG9EYXRlKCksXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWREYXRlLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBpc05ld0RhdGVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVuZE9mQ2FsZW5kZXI6IG51bWJlcjtcbiAgICAgICAgaWYgKHRoaXMuYmVnaW5PZkNhbGVuZGFyID09PSAwKSB7XG4gICAgICAgICAgICBlbmRPZkNhbGVuZGVyID0gNjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVuZE9mQ2FsZW5kZXIgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdlZWtkYXlFbmQgIT09IGVuZE9mQ2FsZW5kZXIpIHtcbiAgICAgICAgICAgIGxldCBjb3VudE1pc3NpbmdEYXlzOiBudW1iZXI7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJlZ2luT2ZDYWxlbmRhciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvdW50TWlzc2luZ0RheXMgPSBlbmRPZkNhbGVuZGVyIC0gd2Vla2RheUVuZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY291bnRNaXNzaW5nRGF5cyA9IDcgLSB3ZWVrZGF5RW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBjb3VudE1pc3NpbmdEYXlzOyBpKyspIHtcbiAgICAgICAgICAgICAgICBkYXlzSW5DYWxlbmRhci5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZVNlbGVjdG9ySXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgIGkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKG5leHRNb250aHMueWVhcigpLCBuZXh0TW9udGhzLm1vbnRoKCksIGkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF5c0luQ2FsZW5kYXIubGVuZ3RoIC8gNzsgaW5kZXgrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gMDsgZGF5IDwgNzsgZGF5KyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF5ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXNbaW5kZXhdID0gW107XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlc1tpbmRleF0ucHVzaChkYXlzSW5DYWxlbmRhcltpbmRleCAqIDcgKyBkYXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlbGVjdGVkVmFsdWUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZWxlY3QgVmFsdWUgc2V0emVuIGZhbGxzIGxlZXJcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdGlhbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZSA9IG1vbWVudCgpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGNsZWFuIHNlY29uZHMgYW5kIG1pbGlzZWNvbmRzIGZvciBpbml0aWFsIHZhbHVlc1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUuc2Vjb25kKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUubWlsbGlzZWNvbmQoMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSB0aGlzLl9pbml0aWFsVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuXG4vLyAjZW5kcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcbiJdLCJtYXBwaW5ncyI6Ijt5RkFFQSxPQUFTQSxlQUFlLENBQUVDLHFCQUFxQixLQUFRLGdCQUFnQixDQUN2RSxPQUFTQyxVQUFVLEtBQVEsc0JBQXNCLENBQ2pELE9BQVNDLFNBQVMsQ0FBRUMsWUFBWSxDQUFZQyxLQUFLLENBQVVDLE1BQU0sS0FBUSxlQUFlLENBQ3hGLE1BQU8sR0FBSyxDQUFBQyxPQUFPLEtBQU0sUUFBUSxDLGlDQUVq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