ngx-histaff-alpha 0.1.0 → 0.1.2

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.
@@ -4,6 +4,8 @@ export var EnumStyleButtonClass;
4
4
  EnumStyleButtonClass["ADD"] = "headerButtonAdd";
5
5
  EnumStyleButtonClass["EDIT"] = "headerButtonEdit";
6
6
  EnumStyleButtonClass["SAVE"] = "headerButtonSave";
7
+ EnumStyleButtonClass["SEND"] = "headerButtonSend";
8
+ EnumStyleButtonClass["SAVE_PASSWORD"] = "headerButtonSavePassword";
7
9
  EnumStyleButtonClass["HEADER_SAVE"] = "topButtonSave";
8
10
  EnumStyleButtonClass["CANCEL"] = "headerButtonCancel";
9
11
  EnumStyleButtonClass["NONE_HEADER_CANCEL"] = "noneHeaderButtonCancel";
@@ -41,4 +43,4 @@ export var EnumStyleButtonClass;
41
43
  EnumStyleButtonClass["RECRUIT"] = "headerButtonRecruit";
42
44
  EnumStyleButtonClass["INFORMATION"] = "headerButtonInformation";
43
45
  })(EnumStyleButtonClass || (EnumStyleButtonClass = {}));
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bVN0eWxlQnV0dG9uQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9lbnVtL0VudW1TdHlsZUJ1dHRvbkNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQXlDWDtBQXpDRCxXQUFZLG9CQUFvQjtJQUM5QixxREFBNkIsQ0FBQTtJQUM3QiwrQ0FBdUIsQ0FBQTtJQUN2QixpREFBeUIsQ0FBQTtJQUN6QixpREFBeUIsQ0FBQTtJQUN6QixxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QixxRUFBNkMsQ0FBQTtJQUM3Qyx5REFBaUMsQ0FBQTtJQUNqQyw2REFBcUMsQ0FBQTtJQUNyQyxnRUFBd0MsQ0FBQTtJQUN4QyxxRUFBNkMsQ0FBQTtJQUM3QyxxREFBNkIsQ0FBQTtJQUM3QixtREFBMkIsQ0FBQTtJQUMzQix3REFBZ0MsQ0FBQTtJQUNoQyx5REFBaUMsQ0FBQTtJQUNqQyxxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3Qix1RUFBK0MsQ0FBQTtJQUMvQywyRUFBbUQsQ0FBQTtJQUNuRCxxREFBNkIsQ0FBQTtJQUM3QixnRUFBd0MsQ0FBQTtJQUN4QywwREFBa0MsQ0FBQTtJQUNsQyxzRUFBOEMsQ0FBQTtJQUM5QyxtRkFBMkQsQ0FBQTtJQUMzRCxpREFBeUIsQ0FBQTtJQUN6QixxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QixrRUFBMEMsQ0FBQTtJQUMxQyxxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QiwrQ0FBdUIsQ0FBQTtJQUN2Qix1REFBK0IsQ0FBQTtJQUMvQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyx5REFBaUMsQ0FBQTtJQUNqQyx1REFBK0IsQ0FBQTtJQUMvQixtRkFBMkQsQ0FBQTtJQUMzRCxxREFBNkIsQ0FBQTtJQUM3Qix1REFBK0IsQ0FBQTtJQUMvQiwrREFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBekNXLG9CQUFvQixLQUFwQixvQkFBb0IsUUF5Qy9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRW51bVN0eWxlQnV0dG9uQ2xhc3Mge1xyXG4gIEhFQURFUl9WSUVXID0gJ3RvcEJ1dHRvblNhdmUnLFxyXG4gIEFERCA9ICdoZWFkZXJCdXR0b25BZGQnLFxyXG4gIEVESVQgPSAnaGVhZGVyQnV0dG9uRWRpdCcsXHJcbiAgU0FWRSA9ICdoZWFkZXJCdXR0b25TYXZlJyxcclxuICBIRUFERVJfU0FWRSA9ICd0b3BCdXR0b25TYXZlJyxcclxuICBDQU5DRUwgPSAnaGVhZGVyQnV0dG9uQ2FuY2VsJyxcclxuICBOT05FX0hFQURFUl9DQU5DRUwgPSAnbm9uZUhlYWRlckJ1dHRvbkNhbmNlbCcsXHJcbiAgQUNUSVZBVEUgPSAnaGVhZGVyQnV0dG9uQWN0aXZhdGUnLFxyXG4gIElOQUNUSVZBVEUgPSAnaGVhZGVyQnV0dG9uSW5BY3RpdmF0ZScsXHJcbiAgQUNUSVZBVEVfQUxMID0gJ2hlYWRlckJ1dHRvbkFjdGl2YXRlQWxsJyxcclxuICBJTl9BQ1RJVkFURV9BTEwgPSAnaGVhZGVyQnV0dG9uSW5BY3RpdmF0ZUFsbCcsXHJcbiAgREVMRVRFID0gJ2hlYWRlckJ1dHRvbkRlbGV0ZScsXHJcbiAgUFJJTlQgPSAnaGVhZGVyQnV0dG9uUHJpbnQnLFxyXG4gIFBSSU5UXzJDID0gJ2hlYWRlckJ1dHRvblByaW50MmMnLFxyXG4gIERPV05MT0FEID0gJ2hlYWRlckJ1dHRvbkRvd25sb2FkJyxcclxuICBVUExPQUQgPSAnaGVhZGVyQnV0dG9uVXBsb2FkJyxcclxuICBTRUFSQ0ggPSAnaGVhZGVyQnV0dG9uU2VhcmNoJyxcclxuICBHRVRTSElGVERFRkFVTFQgPSAnaGVhZGVyQnV0dG9uR2V0U2hpZnREZWZhdWx0JyxcclxuICBERUNMQVJFSU5TQVJJU0lORyA9ICdoZWFkZXJCdXR0b25EZWNsYXJlSW5zQXJpc2luZycsXHJcbiAgSEFORExFID0gJ2hlYWRlckJ1dHRvbkhhbmRsZScsXHJcbiAgSEVBREVSX0hBTkRMRSA9ICdoZWFkZXJCdXR0b25IYW5kbGVSZWFsJyxcclxuICBIRUFERVJfUkVTRVQgPSAnaGVhZGVyQnV0dG9uUmVzZXQnLFxyXG4gIEhFQURFUl9TWU5DSFJPTk9VUyA9ICdoZWFkZXJCdXR0b25TeW5jaHJvbm91cycsXHJcbiAgSEVBREVSX1VQRVJNSVNTSU9OX0RFTEVURSA9ICdoZWFkZXJCdXR0b25VcGVybWlzc2lvbkRlbGV0ZScsXHJcbiAgTE9DSyA9ICdoZWFkZXJCdXR0b25Mb2NrJyxcclxuICBVTkxPQ0sgPSAnaGVhZGVyQnV0dG9uVW5Mb2NrJyxcclxuICBBUFBST1ZJTkcgPSAnaGVhZGVyQXBwcm92aW5nJyxcclxuICBQRU5ESU5HX0FQUFJPVkUgPSAnaGVhZGVyUGVuZGluZ0FwcHJvdmluZycsXHJcbiAgVU5BUFBST1ZFID0gJ2hlYWRlclVuYXBwcm92ZScsXHJcbiAgQ0FMQ1VMQVRFID0gJ2hlYWRlckNhbGN1bGF0ZScsXHJcbiAgVVBEQVRFID0gJ2hlYWRlclVwZGF0ZScsXHJcbiAgQ09ORklSTSA9ICdoZWFkZXJCdXR0b25Db25maXJtJyxcclxuICBVTkNPTkZJUk0gPSAnaGVhZGVyQnV0dG9uVW5Db25maXJtJyxcclxuICBMSVFVSURBVEUgPSAnaGVhZGVyQnV0dG9uTGlxdWlkYXRlJyxcclxuICBUUkFOU0ZFUiA9ICdoZWFkZXJCdXR0b25UcmFuc2ZlcicsXHJcbiAgQ0xPTklORyA9ICdoZWFkZXJCdXR0b25DbG9uaW5nJyxcclxuICBQT1NJVElPTl9UUkFOU0ZFUl9TQVZFID0gJ2hlYWRlckJ1dHRvblBvc2l0aW9uVHJhbnNmZXJTYXZlJyxcclxuICBSRVZFUlQgPSAnaGVhZGVyQnV0dG9uUmV2ZXJ0JyxcclxuICBSRUNSVUlUID0gJ2hlYWRlckJ1dHRvblJlY3J1aXQnLFxyXG4gIElORk9STUFUSU9OID0gJ2hlYWRlckJ1dHRvbkluZm9ybWF0aW9uJyxcclxufSJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bVN0eWxlQnV0dG9uQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9lbnVtL0VudW1TdHlsZUJ1dHRvbkNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQTJDWDtBQTNDRCxXQUFZLG9CQUFvQjtJQUM5QixxREFBNkIsQ0FBQTtJQUM3QiwrQ0FBdUIsQ0FBQTtJQUN2QixpREFBeUIsQ0FBQTtJQUN6QixpREFBeUIsQ0FBQTtJQUN6QixpREFBeUIsQ0FBQTtJQUN6QixrRUFBMEMsQ0FBQTtJQUMxQyxxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QixxRUFBNkMsQ0FBQTtJQUM3Qyx5REFBaUMsQ0FBQTtJQUNqQyw2REFBcUMsQ0FBQTtJQUNyQyxnRUFBd0MsQ0FBQTtJQUN4QyxxRUFBNkMsQ0FBQTtJQUM3QyxxREFBNkIsQ0FBQTtJQUM3QixtREFBMkIsQ0FBQTtJQUMzQix3REFBZ0MsQ0FBQTtJQUNoQyx5REFBaUMsQ0FBQTtJQUNqQyxxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3Qix1RUFBK0MsQ0FBQTtJQUMvQywyRUFBbUQsQ0FBQTtJQUNuRCxxREFBNkIsQ0FBQTtJQUM3QixnRUFBd0MsQ0FBQTtJQUN4QywwREFBa0MsQ0FBQTtJQUNsQyxzRUFBOEMsQ0FBQTtJQUM5QyxtRkFBMkQsQ0FBQTtJQUMzRCxpREFBeUIsQ0FBQTtJQUN6QixxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QixrRUFBMEMsQ0FBQTtJQUMxQyxxREFBNkIsQ0FBQTtJQUM3QixxREFBNkIsQ0FBQTtJQUM3QiwrQ0FBdUIsQ0FBQTtJQUN2Qix1REFBK0IsQ0FBQTtJQUMvQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyx5REFBaUMsQ0FBQTtJQUNqQyx1REFBK0IsQ0FBQTtJQUMvQixtRkFBMkQsQ0FBQTtJQUMzRCxxREFBNkIsQ0FBQTtJQUM3Qix1REFBK0IsQ0FBQTtJQUMvQiwrREFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBM0NXLG9CQUFvQixLQUFwQixvQkFBb0IsUUEyQy9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRW51bVN0eWxlQnV0dG9uQ2xhc3Mge1xyXG4gIEhFQURFUl9WSUVXID0gJ3RvcEJ1dHRvblNhdmUnLFxyXG4gIEFERCA9ICdoZWFkZXJCdXR0b25BZGQnLFxyXG4gIEVESVQgPSAnaGVhZGVyQnV0dG9uRWRpdCcsXHJcbiAgU0FWRSA9ICdoZWFkZXJCdXR0b25TYXZlJyxcclxuICBTRU5EID0gJ2hlYWRlckJ1dHRvblNlbmQnLFxyXG4gIFNBVkVfUEFTU1dPUkQgPSAnaGVhZGVyQnV0dG9uU2F2ZVBhc3N3b3JkJyxcclxuICBIRUFERVJfU0FWRSA9ICd0b3BCdXR0b25TYXZlJyxcclxuICBDQU5DRUwgPSAnaGVhZGVyQnV0dG9uQ2FuY2VsJyxcclxuICBOT05FX0hFQURFUl9DQU5DRUwgPSAnbm9uZUhlYWRlckJ1dHRvbkNhbmNlbCcsXHJcbiAgQUNUSVZBVEUgPSAnaGVhZGVyQnV0dG9uQWN0aXZhdGUnLFxyXG4gIElOQUNUSVZBVEUgPSAnaGVhZGVyQnV0dG9uSW5BY3RpdmF0ZScsXHJcbiAgQUNUSVZBVEVfQUxMID0gJ2hlYWRlckJ1dHRvbkFjdGl2YXRlQWxsJyxcclxuICBJTl9BQ1RJVkFURV9BTEwgPSAnaGVhZGVyQnV0dG9uSW5BY3RpdmF0ZUFsbCcsXHJcbiAgREVMRVRFID0gJ2hlYWRlckJ1dHRvbkRlbGV0ZScsXHJcbiAgUFJJTlQgPSAnaGVhZGVyQnV0dG9uUHJpbnQnLFxyXG4gIFBSSU5UXzJDID0gJ2hlYWRlckJ1dHRvblByaW50MmMnLFxyXG4gIERPV05MT0FEID0gJ2hlYWRlckJ1dHRvbkRvd25sb2FkJyxcclxuICBVUExPQUQgPSAnaGVhZGVyQnV0dG9uVXBsb2FkJyxcclxuICBTRUFSQ0ggPSAnaGVhZGVyQnV0dG9uU2VhcmNoJyxcclxuICBHRVRTSElGVERFRkFVTFQgPSAnaGVhZGVyQnV0dG9uR2V0U2hpZnREZWZhdWx0JyxcclxuICBERUNMQVJFSU5TQVJJU0lORyA9ICdoZWFkZXJCdXR0b25EZWNsYXJlSW5zQXJpc2luZycsXHJcbiAgSEFORExFID0gJ2hlYWRlckJ1dHRvbkhhbmRsZScsXHJcbiAgSEVBREVSX0hBTkRMRSA9ICdoZWFkZXJCdXR0b25IYW5kbGVSZWFsJyxcclxuICBIRUFERVJfUkVTRVQgPSAnaGVhZGVyQnV0dG9uUmVzZXQnLFxyXG4gIEhFQURFUl9TWU5DSFJPTk9VUyA9ICdoZWFkZXJCdXR0b25TeW5jaHJvbm91cycsXHJcbiAgSEVBREVSX1VQRVJNSVNTSU9OX0RFTEVURSA9ICdoZWFkZXJCdXR0b25VcGVybWlzc2lvbkRlbGV0ZScsXHJcbiAgTE9DSyA9ICdoZWFkZXJCdXR0b25Mb2NrJyxcclxuICBVTkxPQ0sgPSAnaGVhZGVyQnV0dG9uVW5Mb2NrJyxcclxuICBBUFBST1ZJTkcgPSAnaGVhZGVyQXBwcm92aW5nJyxcclxuICBQRU5ESU5HX0FQUFJPVkUgPSAnaGVhZGVyUGVuZGluZ0FwcHJvdmluZycsXHJcbiAgVU5BUFBST1ZFID0gJ2hlYWRlclVuYXBwcm92ZScsXHJcbiAgQ0FMQ1VMQVRFID0gJ2hlYWRlckNhbGN1bGF0ZScsXHJcbiAgVVBEQVRFID0gJ2hlYWRlclVwZGF0ZScsXHJcbiAgQ09ORklSTSA9ICdoZWFkZXJCdXR0b25Db25maXJtJyxcclxuICBVTkNPTkZJUk0gPSAnaGVhZGVyQnV0dG9uVW5Db25maXJtJyxcclxuICBMSVFVSURBVEUgPSAnaGVhZGVyQnV0dG9uTGlxdWlkYXRlJyxcclxuICBUUkFOU0ZFUiA9ICdoZWFkZXJCdXR0b25UcmFuc2ZlcicsXHJcbiAgQ0xPTklORyA9ICdoZWFkZXJCdXR0b25DbG9uaW5nJyxcclxuICBQT1NJVElPTl9UUkFOU0ZFUl9TQVZFID0gJ2hlYWRlckJ1dHRvblBvc2l0aW9uVHJhbnNmZXJTYXZlJyxcclxuICBSRVZFUlQgPSAnaGVhZGVyQnV0dG9uUmV2ZXJ0JyxcclxuICBSRUNSVUlUID0gJ2hlYWRlckJ1dHRvblJlY3J1aXQnLFxyXG4gIElORk9STUFUSU9OID0gJ2hlYWRlckJ1dHRvbkluZm9ybWF0aW9uJyxcclxufSJdfQ==
@@ -20,6 +20,45 @@ import * as i5 from "../../alert/alert.service";
20
20
  import * as i6 from "../core-button-group-service";
21
21
  import * as i7 from "@angular/common";
22
22
  export const CORE_VNS_BUTTONS = [
23
+ /**********************
24
+ PORTAL_GROUP (dừng phát triển)
25
+ ***********************/
26
+ {
27
+ code: EnumCoreButtonVNSCode.CANCEL,
28
+ styleClass: EnumStyleButtonClass.CANCEL,
29
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_CANCEL,
30
+ isHeader: false
31
+ },
32
+ {
33
+ code: EnumCoreButtonVNSCode.SAVE,
34
+ styleClass: EnumStyleButtonClass.SAVE,
35
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SAVE,
36
+ isHeader: false
37
+ },
38
+ {
39
+ code: EnumCoreButtonVNSCode.SEND,
40
+ styleClass: EnumStyleButtonClass.SEND,
41
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SEND,
42
+ isHeader: false
43
+ },
44
+ {
45
+ code: EnumCoreButtonVNSCode.EDIT,
46
+ styleClass: EnumStyleButtonClass.EDIT,
47
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_EDIT,
48
+ isHeader: false
49
+ },
50
+ {
51
+ code: EnumCoreButtonVNSCode.SAVE_PASSWORD,
52
+ styleClass: EnumStyleButtonClass.SAVE_PASSWORD,
53
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SAVE,
54
+ isHeader: false
55
+ },
56
+ {
57
+ code: EnumCoreButtonVNSCode.CREATE,
58
+ styleClass: EnumStyleButtonClass.ADD,
59
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_ADD,
60
+ isHeader: false
61
+ },
23
62
  /**********************
24
63
  HEADER_GROUP
25
64
  ***********************/
@@ -512,4 +551,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
512
551
  }], buttonClick: [{
513
552
  type: Output
514
553
  }] } });
515
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxh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RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4vSUNvcmVCdXR0b25WTlMnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tICcuL0VudW1Db3JlQnV0dG9uVk5TQ29kZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudW1JY29uQ2xhc3MgfSBmcm9tICcuLi8uLi8uLi9lbnVtL0VudW1JY29uQ2xhc3MnO1xyXG5pbXBvcnQgeyBFbnVtU3R5bGVCdXR0b25DbGFzcyB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bVN0eWxlQnV0dG9uQ2xhc3MnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zLCBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hcEF2YXRhclRvU2VydmVyUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9tYXAtYXZhdGFyLXRvLXNlcnZlci5waXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25WbnNDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi12bnMvY29yZS1idXR0b24tdm5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDT1JFX1ZOU19CVVRUT05TOiBJQ29yZUJ1dHRvblZOU1tdID0gW1xyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIEhFQURFUl9HUk9VUFxyXG4gICoqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfVklFV19BQlNUUkFDVCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1ZJRVcsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5FRElULFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEVBREVSX1ZJRVdfQUJTVFJBQ1QsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZSxcclxuICAgIGhpZGRlbjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9FRElULFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfRURJVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkVESVQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9FRElULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfU0FWRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1NBVkUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9TQVZFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ0FOQ0VMLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfQ0FOQ0VMLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEVBREVSX1NBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fQ0FOQ0VMLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ09QWSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NPUFksXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DT1BZLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQUNUSVZBVEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0NIRUNLLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQUNUSVZBVEUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9BQ1RJVkFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0lOQUNUSVZBVEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1VOQ0hFQ0ssXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5JTkFDVElWQVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSU5BQ1RJVkFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RFTEVURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0RFTEVURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkRFTEVURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0RFTEVURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5ULFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfUFJJTlQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5QUklOVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1BSSU5ULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlRfMkNfOTgsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9QUklOVF8yQyxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBSSU5UXzJDLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fUFJJTlRfMkNfOTgsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9QUklOVF8yQyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1BSSU5UXzJDLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuUFJJTlRfMkMsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9QUklOVF8yQyxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UXzJDXzIwMDgsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9QUklOVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBSSU5ULFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fUFJJTlRfMkNfMjAwOCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RPV05MT0FELFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfRE9XTkxPQUQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ET1dOTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0VYUE9SVF9FWENFTF9URU1QTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VQTE9BRCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VQTE9BRCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVQTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0lNUE9SVF9FWENFTF9URU1QTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0VYUE9SVEVYRUwsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0RPV05MT0FEX0VYRUwsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ET1dOTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0VYUE9SVF9UT19FWENFTCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1AsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9EUk9QLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQURELFxyXG4gICAgY2FwdGlvbjogJycsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9ERUNMQVJFSU5TQVJJU0lORyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0ZJTEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ERUNMQVJFSU5TQVJJU0lORyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0RFQ0xBUkVfSU5TX0FSSVNJTkcsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9HRVRTSElGVERFRkFVTFQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5HRVRTSElGVERFRkFVTFQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0dSSURfRk9STV9CVVRUT05fR0VUX1NISUZUX0RFRkFVTFQsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9JTkZPUk1BVElPTixcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLklORk9STUFUSU9OLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9HUklEX0ZPUk1fQlVUVE9OX0lORk9STUFUSU9OLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfSU5GT1JNQVRJT04sXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9MT0NLLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuTE9DSyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9MT0NLLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfTE9DSyxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VOTE9DSyxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVOTE9DSyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9fVU5MT0NLLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfVU5MT0NLLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ09ORklSTSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkNPTkZJUk0sXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fQ09ORklSTSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NPTkZJUk0sXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VTkNPTkZJUk0sXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5VTkNPTkZJUk0sXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fVU5DT05GSVJNLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfVU5DT05GSVJNLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfU1dBUCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkVESVQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9TV0FQLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fU1dBUCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0FQUFJPVkUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5BUFBST1ZJTkcsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9BUFBST1ZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VOQVBQUk9WRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVOQVBQUk9WRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VOQVBQUk9WRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1VOQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0NBTENVTEFURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkNBTENVTEFURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NBTENVTEFURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0NBTENVTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VQREFURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVQREFURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VQREFURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1VQREFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBFTkRJTkdfQVBQUk9WRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0hBTkRMRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkhFQURFUl9IQU5ETEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0hFQURFUl9IQU5ETEUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9IRUFERVJfSEFORExFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUkVTRVQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfUkVTRVQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0hFQURFUl9SRVNFVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0hFQURFUl9SRVNFVCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NZTkNIUk9OT1VTLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEVBREVSX1NZTkNIUk9OT1VTLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkNVU1RPTV9IRUFERVJfU1lOQ0hST05PVVMsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9IRUFERVJfU1lOQ0hST05PVVMsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VUEVSTUlTU0lPTl9ERUxFVEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfVVBFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkNVU1RPTV9IRUFERVJfVVBFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEVBREVSX1BFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuTElRVUlEQVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfTElRVUlEQVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIC8vIENSRUFURSBsdcO0biBsdcO0biDEkeG7qW5nIHNhdSBjw7luZ1xyXG4gIHsgLy8gPD09IHRoZSBsYXN0IGlzIEhFQURFUl9DUkVBVEVcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ1JFQVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfQURELFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQURELFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fQ1JFQVRFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIE5PTkVfSEVBREVSX0dST1VQXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DQU5DRUwsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9TQVZFLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9TQVZFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfSEFORExFLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEFORExFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEFORExFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfU0VBUkNILFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuU0VBUkNILFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1NFQVJDSCxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0RFTEVURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fREVMRVRFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfQ09ORklSTSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fTk9ORV9IRUFERVJfQ09ORklSTSxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0lNUE9SVF9PUFRJT04sXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX05PTkVfSEVBREVSX0lNUFJPVF9PUFRJT04sXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9VUERBVEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX05PTkVfSEVBREVSX1VQREFURSxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fTk9ORV9IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfVFJBTlNGRVIsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5UUkFOU0ZFUixcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fVFJBTlNGRVIsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fVFJBTlNGRVIsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9DTE9OSU5HLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQ0xPTklORyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fQ0xPTklORyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DTE9OSU5HLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfUE9TSVRJT05fVFJBTlNGRVJfU0FWRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBPU0lUSU9OX1RSQU5TRkVSX1NBVkUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1BPU0lUSU9OX1RSQU5TRkVSLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1BPU0lUSU9OX1RSQU5TRkVSX1NBVkUsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9SRVZFUlQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5SRVZFUlQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1JFVkVSVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9SRVZFUlQsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9SRUNSVUlULFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuUkVDUlVJVCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fUkVDUlVJVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9SRUNSVUlULFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuXHJcbl07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tZ3JvdXAtdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVCdXR0b25WbnNDb21wb25lbnQsXHJcbiAgICBNYXBBdmF0YXJUb1NlcnZlclBpcGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVCdXR0b25Hcm91cFZuc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGluc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGZvckhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd25JdGVtcyE6IEVudW1Db3JlQnV0dG9uVk5TQ29kZVtdO1xyXG4gIEBJbnB1dCgpIHNob3dDYXB0aW9uITogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG4gIGJ1dHRvbnM6IElDb3JlQnV0dG9uVk5TW10gPSBbXTtcclxuXHJcbiAgaXNSb290VXNlciE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNBZG1pblVzZXIhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGZ1bmN0aW9uITogSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zIHwgdW5kZWZpbmVkO1xyXG4gIGN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUhOiBib29sZWFuO1xyXG5cclxuXHJcbiAgLyogQuG7mSBiYSBjw6FjIG7DunQgZMaw4bubaSDEkcOieSBj4bqnbiDhuqluL2hp4buHbiB0aGVvIHTDrG5oIGh14buRbmcgKi9cclxuICBoZWFkZXJFZGl0ITogSUNvcmVCdXR0b25WTlNbXTtcclxuICBoZWFkZXJTYXZlITogSUNvcmVCdXR0b25WTlNbXTtcclxuICBoZWFkZXJDYW5jZWwhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIC8qKiogKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUJ1dHRvbkdyb3VwU2VydmljZTogQ29yZUJ1dHRvbkdyb3VwU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMucHVzaCh7XHJcbiAgICAgIGluc3RhbmNlTnVtYmVyOiB0aGlzLmluc3RhbmNlTnVtYmVyLFxyXG4gICAgICBtdXN0QmVIaWRkZW4kOiBuZXcgQmVoYXZpb3JTdWJqZWN0PEVudW1Db3JlQnV0dG9uVk5TQ29kZVtdPihbXSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSb290VXNlciA9IHg/LmlzUm9vdDtcclxuICAgICAgICB0aGlzLmlzQWRtaW5Vc2VyID0geD8uaXNBZG1pbjtcclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGU6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICghIWVbJ3Nob3duSXRlbXMnXT8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gdGhpcy5zaG93bkl0ZW1zLmluY2x1ZGVzKHguY29kZSkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50RnVuY3Rpb24kLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIHRoaXMuZnVuY3Rpb24gPSB4O1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50RnVuY3Rpb25Bc3NpZ21lbnREb25lID0gdHJ1ZTtcclxuICAgICAgICAgIGlmICghIXRoaXMuZm9ySGVhZGVyKSB7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuaXNSb290VXNlciB8fCAhIXRoaXMuaXNBZG1pblVzZXIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICEhIXguaGlkZGVuKS5maWx0ZXIoYnV0dG9uID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghIXRoaXMuZnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZnVuY3Rpb24hLmFjdGlvbkNvZGVzIS5pbmRleE9mKGJ1dHRvbi5jb2RlKSA+PSAwICYmIGJ1dHRvbi5pc0hlYWRlclxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIS5wZXJtaXNzaW9uQWN0aW9ucy5maWx0ZXIocGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhLmZ1bmN0aW9uSWQgPT09IHRoaXMuZnVuY3Rpb24/LmlkXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBhbGxvd2VkQWN0aW9uQ29kZXMgfSA9IGZ1bmN0aW9uRmlsdGVyWzBdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiAhISF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBhbGxvd2VkQWN0aW9uQ29kZXMhLmluZGV4T2YoYnV0dG9uLmNvZGUpID49IDAgJiYgYnV0dG9uLmlzSGVhZGVyXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBbXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFRvIGJlIGltcHJvdmVkXHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLnNob3duSXRlbXMpIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICEhIXguaXNIZWFkZXIpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiB0aGlzLnNob3duSXRlbXMuaW5jbHVkZXMoeC5jb2RlKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIC8qXHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIGZpbHRlclswXS5tdXN0QmVIaWRkZW4kLnN1YnNjcmliZShtYmggPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMubWFwKGIgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChtYmguaW5jbHVkZXMoYi5jb2RlKSkge1xyXG4gICAgICAgICAgICAgICAgYi5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBiLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybihcIktow7RuZyB0w6xtIHRo4bqleSBpbnN0YW5jZSBudW1iZXIgY+G7p2EgbmjDs20gbsO6dFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICovXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN3YXBUcmlvRWRpdFNhdmVDYW5jZWwoZWRpdEFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5oZWFkZXJFZGl0ID0gdGhpcy5idXR0b25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9FRElUKTtcclxuICAgIHRoaXMuaGVhZGVyU2F2ZSA9IHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfU0FWRSk7XHJcbiAgICB0aGlzLmhlYWRlckNhbmNlbCA9IHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ0FOQ0VMKTtcclxuICAgIGlmIChlZGl0QWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyRWRpdFswXS5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmhlYWRlclNhdmVbMF0uaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaGVhZGVyQ2FuY2VsWzBdLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oZWFkZXJFZGl0WzBdLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmhlYWRlclNhdmVbMF0uaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJDYW5jZWxbMF0uaGlkZGVuID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soZTogSUNvcmVCdXR0b25WTlMpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYnV0dG9uLWdyb3VwIG9uQnV0dG9uQ2xpY2tcIiwgZSlcclxuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChlKTtcclxuICB9XHJcblxyXG4gIG9uTWFwcGVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAoISF0aGlzLmZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICcvcm9vdCcsXHJcbiAgICAgICAgICAnYWN0aW9uLW1hcHBlcicsXHJcbiAgICAgICAgXVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlJPT1RfTUFQUEVSX1VQREFURV9GVU5DVElPTl9JRF9GT1JfVEhFX01FTlVfSVRFTSksIGFsZXJ0T3B0aW9ucylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgY29uc3QgbmV3SW5zdGFuY2VzID0gdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlTnVtYmVyICE9PSB0aGlzLmluc3RhbmNlTnVtYmVyKTtcclxuICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMgPSBuZXdJbnN0YW5jZXM7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1idXR0b24tZ3JvdXAtdm5zLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNldHRpbmctdHJpZ2dlciBkLWZsZXggZC1mbGV4LWNlbnRlclwiICpuZ0lmPVwiISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyXCIgKGNsaWNrKT1cIm9uTWFwcGVyQ2xpY2soKVwiXHJcbiAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1VJX0JVVFRPTl9HUk9VUF9TRVRUSU5HX0FERF9SRU1PVkVfQUNUSU9OX0lURU1fRk9SX1RISVNfU0NSRUVOJyB8IHRyYW5zbGF0ZSA6IGxhbmdcIiBwb3NpdGlvbj1cImxlZnRcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItc2V0dGluZ3NcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCIgKm5nSWY9XCIhIWlzUm9vdFVzZXIgJiYgISFmb3JIZWFkZXJcIj48L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnV0dG9uLmhpZGRlblwiPlxyXG4gICAgICAgICAgICA8Y29yZS1idXR0b24tdm5zIFtzaG93Q2FwdGlvbl09XCJzaG93Q2FwdGlvblwiIFtkYXRhXT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbaW5zdGFuY2VOdW1iZXJdPVwiaW5zdGFuY2VOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiPjwvY29yZS1idXR0b24tdm5zPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgIDxzcGFuICpuZ0lmPVwiISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyICYmICEhIWJ1dHRvbnMubGVuZ3RoXCI+e3sgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA/XHJcbiAgICAgICAgKCdVSV9CVVRUT05fR1JPVVBfTk9fSVRFTV9BVkFJTEFCTEVfWUVUJyB8IHRyYW5zbGF0ZSA6IGxhbmcpIDogJycgfX08L3NwYW4+XHJcbjwvZGl2PiJdfQ==
554
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxh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Q0YsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnREFBZ0QsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQ3hIO0lBQ0gsQ0FBQztJQUVRLFdBQVc7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ3ZELENBQUM7OEdBN0pVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGtTQ3ZheEMsc2dDQWtCTSwrekJENFlGLFlBQVksZ1FBQ1osc0JBQXNCLGdKQUV0QixhQUFhLGtEQUNiLGdCQUFnQjs7MkZBS1AsMkJBQTJCO2tCQWJ2QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO3FPQU1RLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSAnLi9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4vRW51bUNvcmVCdXR0b25WTlNDb2RlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwU2VydmljZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW51bUljb25DbGFzcyB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bUljb25DbGFzcyc7XHJcbmltcG9ydCB7IEVudW1TdHlsZUJ1dHRvbkNsYXNzIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtU3R5bGVCdXR0b25DbGFzcyc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJRnVuY3Rpb25XaXRoRnVsbEFjdGlvbnMsIFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL21hcC1hdmF0YXItdG8tc2VydmVyLnBpcGUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPUkVfVk5TX0JVVFRPTlM6IElDb3JlQnV0dG9uVk5TW10gPSBbXHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqXHJcbiAgUE9SVEFMX0dST1VQIChk4burbmcgcGjDoXQgdHJp4buDbilcclxuICAqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkNBTkNFTCxcclxuICAgIHN0eWxlQ2xhc3MgOiAgRW51bVN0eWxlQnV0dG9uQ2xhc3MuQ0FOQ0VMLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX0NBTkNFTCxcclxuICAgIGlzSGVhZGVyIDogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TQVZFLFxyXG4gICAgc3R5bGVDbGFzcyA6ICBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1NBVkUsXHJcbiAgICBpc0hlYWRlciA6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuU0VORCxcclxuICAgIHN0eWxlQ2xhc3MgOiAgRW51bVN0eWxlQnV0dG9uQ2xhc3MuU0VORCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9TRU5ELFxyXG4gICAgaXNIZWFkZXIgOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkVESVQsXHJcbiAgICBzdHlsZUNsYXNzIDogIEVudW1TdHlsZUJ1dHRvbkNsYXNzLkVESVQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fRURJVCxcclxuICAgIGlzSGVhZGVyIDogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TQVZFX1BBU1NXT1JELFxyXG4gICAgc3R5bGVDbGFzcyA6ICBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFX1BBU1NXT1JELFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1NBVkUsXHJcbiAgICBpc0hlYWRlciA6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuQ1JFQVRFLFxyXG4gICAgc3R5bGVDbGFzcyA6ICBFbnVtU3R5bGVCdXR0b25DbGFzcy5BREQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fQURELFxyXG4gICAgaXNIZWFkZXIgOiBmYWxzZVxyXG4gIH0sXHJcblxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIEhFQURFUl9HUk9VUFxyXG4gICoqKioqKioqKioqKioqKioqKioqKioqL1xyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfVklFV19BQlNUUkFDVCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1ZJRVcsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5FRElULFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEVBREVSX1ZJRVdfQUJTVFJBQ1QsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZSxcclxuICAgIGhpZGRlbjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9FRElULFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfRURJVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkVESVQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9FRElULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfU0FWRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1NBVkUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9TQVZFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ0FOQ0VMLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfQ0FOQ0VMLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEVBREVSX1NBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fQ0FOQ0VMLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ09QWSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NPUFksXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DT1BZLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQUNUSVZBVEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0NIRUNLLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQUNUSVZBVEUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9BQ1RJVkFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0lOQUNUSVZBVEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1VOQ0hFQ0ssXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5JTkFDVElWQVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSU5BQ1RJVkFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RFTEVURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0RFTEVURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkRFTEVURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0RFTEVURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5ULFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfUFJJTlQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5QUklOVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1BSSU5ULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlRfMkNfOTgsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9QUklOVF8yQyxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBSSU5UXzJDLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fUFJJTlRfMkNfOTgsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9QUklOVF8yQyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1BSSU5UXzJDLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuUFJJTlRfMkMsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9QUklOVF8yQyxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UXzJDXzIwMDgsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9QUklOVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBSSU5ULFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fUFJJTlRfMkNfMjAwOCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RPV05MT0FELFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfRE9XTkxPQUQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ET1dOTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0VYUE9SVF9FWENFTF9URU1QTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VQTE9BRCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VQTE9BRCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVQTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0lNUE9SVF9FWENFTF9URU1QTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0VYUE9SVEVYRUwsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0RPV05MT0FEX0VYRUwsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ET1dOTE9BRCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0VYUE9SVF9UT19FWENFTCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1AsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9EUk9QLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQURELFxyXG4gICAgY2FwdGlvbjogJycsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9ERUNMQVJFSU5TQVJJU0lORyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0ZJTEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5ERUNMQVJFSU5TQVJJU0lORyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0RFQ0xBUkVfSU5TX0FSSVNJTkcsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9HRVRTSElGVERFRkFVTFQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5HRVRTSElGVERFRkFVTFQsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0dSSURfRk9STV9CVVRUT05fR0VUX1NISUZUX0RFRkFVTFQsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9JTkZPUk1BVElPTixcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLklORk9STUFUSU9OLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9HUklEX0ZPUk1fQlVUVE9OX0lORk9STUFUSU9OLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfSU5GT1JNQVRJT04sXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9MT0NLLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuTE9DSyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9MT0NLLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfTE9DSyxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VOTE9DSyxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVOTE9DSyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9fVU5MT0NLLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfVU5MT0NLLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ09ORklSTSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkNPTkZJUk0sXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fQ09ORklSTSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NPTkZJUk0sXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VTkNPTkZJUk0sXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5VTkNPTkZJUk0sXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fVU5DT05GSVJNLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfVU5DT05GSVJNLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfU1dBUCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkVESVQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9TV0FQLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fU1dBUCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0FQUFJPVkUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5BUFBST1ZJTkcsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkVBVEhFUl9BUFBST1ZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VOQVBQUk9WRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVOQVBQUk9WRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VOQVBQUk9WRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1VOQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0NBTENVTEFURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkNBTENVTEFURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX0NBTENVTEFURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0NBTENVTEFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1VQREFURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlVQREFURSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1VQREFURSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1VQREFURSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBFTkRJTkdfQVBQUk9WRSxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5GRUFUSEVSX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX1BFTkRJTkdfQVBQUk9WRSxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0hBTkRMRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLkhFQURFUl9IQU5ETEUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0hFQURFUl9IQU5ETEUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9IRUFERVJfSEFORExFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUkVTRVQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfUkVTRVQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX0hFQURFUl9SRVNFVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0hFQURFUl9SRVNFVCxcclxuICAgIGlzSGVhZGVyOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NZTkNIUk9OT1VTLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEVBREVSX1NZTkNIUk9OT1VTLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkNVU1RPTV9IRUFERVJfU1lOQ0hST05PVVMsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9IRUFERVJfU1lOQ0hST05PVVMsXHJcbiAgICBpc0hlYWRlcjogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VUEVSTUlTU0lPTl9ERUxFVEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5IRUFERVJfVVBFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkNVU1RPTV9IRUFERVJfVVBFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEVBREVSX1BFUk1JU1NJT05fREVMRVRFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuTElRVUlEQVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfTElRVUlEQVRFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG4gIC8vIENSRUFURSBsdcO0biBsdcO0biDEkeG7qW5nIHNhdSBjw7luZ1xyXG4gIHsgLy8gPD09IHRoZSBsYXN0IGlzIEhFQURFUl9DUkVBVEVcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ1JFQVRFLFxyXG4gICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZFQVRIRVJfQURELFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQURELFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fQ1JFQVRFLFxyXG4gICAgaXNIZWFkZXI6IHRydWVcclxuICB9LFxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKioqKlxyXG4gIE5PTkVfSEVBREVSX0dST1VQXHJcbiAgKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DQU5DRUwsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9TQVZFLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuU0FWRSxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9TQVZFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfSEFORExFLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuSEFORExFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9CVVRUT05fSEFORExFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfU0VBUkNILFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuU0VBUkNILFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1NFQVJDSCxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0RFTEVURSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fREVMRVRFLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfQ09ORklSTSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fTk9ORV9IRUFERVJfQ09ORklSTSxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0lNUE9SVF9PUFRJT04sXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX05PTkVfSEVBREVSX0lNUFJPVF9PUFRJT04sXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9VUERBVEUsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5TQVZFLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX05PTkVfSEVBREVSX1VQREFURSxcclxuICAgIGlzSGVhZGVyOiBmYWxzZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgY29kZTogRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVCxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlNBVkUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fTk9ORV9IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNULFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfVFJBTlNGRVIsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5UUkFOU0ZFUixcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fVFJBTlNGRVIsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VESVRfRk9STV9CVVRUT05fVFJBTlNGRVIsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9DTE9OSU5HLFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuQ0xPTklORyxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fQ0xPTklORyxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9DTE9OSU5HLFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuICB7XHJcbiAgICBjb2RlOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfUE9TSVRJT05fVFJBTlNGRVJfU0FWRSxcclxuICAgIHN0eWxlQ2xhc3M6IEVudW1TdHlsZUJ1dHRvbkNsYXNzLlBPU0lUSU9OX1RSQU5TRkVSX1NBVkUsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1BPU0lUSU9OX1RSQU5TRkVSLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FRElUX0ZPUk1fQlVUVE9OX1BPU0lUSU9OX1RSQU5TRkVSX1NBVkUsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9SRVZFUlQsXHJcbiAgICBzdHlsZUNsYXNzOiBFbnVtU3R5bGVCdXR0b25DbGFzcy5SRVZFUlQsXHJcbiAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuQ1VTVE9NX1JFVkVSVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9SRVZFUlQsXHJcbiAgICBpc0hlYWRlcjogZmFsc2VcclxuICB9LFxyXG4gIHtcclxuICAgIGNvZGU6IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9SRUNSVUlULFxyXG4gICAgc3R5bGVDbGFzczogRW51bVN0eWxlQnV0dG9uQ2xhc3MuUkVDUlVJVCxcclxuICAgIGljb25DbGFzczogRW51bUljb25DbGFzcy5DVVNUT01fUkVDUlVJVCxcclxuICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRURJVF9GT1JNX0JVVFRPTl9SRUNSVUlULFxyXG4gICAgaXNIZWFkZXI6IGZhbHNlXHJcbiAgfSxcclxuXHJcblxyXG5dO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtYnV0dG9uLWdyb3VwLXZucycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb3JlQnV0dG9uVm5zQ29tcG9uZW50LFxyXG4gICAgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBmb3JIZWFkZXIhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3duSXRlbXMhOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGVbXTtcclxuICBASW5wdXQoKSBzaG93Q2FwdGlvbiE6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUJ1dHRvblZOUz4oKTtcclxuICBidXR0b25zOiBJQ29yZUJ1dHRvblZOU1tdID0gW107XHJcblxyXG4gIGlzUm9vdFVzZXIhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGlzQWRtaW5Vc2VyITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBmdW5jdGlvbiE6IElGdW5jdGlvbldpdGhGdWxsQWN0aW9ucyB8IHVuZGVmaW5lZDtcclxuICBjdXJyZW50RnVuY3Rpb25Bc3NpZ21lbnREb25lITogYm9vbGVhbjtcclxuXHJcblxyXG4gIC8qIELhu5kgYmEgY8OhYyBuw7p0IGTGsOG7m2kgxJHDonkgY+G6p24g4bqpbi9oaeG7h24gdGhlbyB0w6xuaCBodeG7kW5nICovXHJcbiAgaGVhZGVyRWRpdCE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgaGVhZGVyU2F2ZSE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgaGVhZGVyQ2FuY2VsITogSUNvcmVCdXR0b25WTlNbXTtcclxuICAvKioqICovXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVCdXR0b25Hcm91cFNlcnZpY2U6IENvcmVCdXR0b25Hcm91cFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLnB1c2goe1xyXG4gICAgICBpbnN0YW5jZU51bWJlcjogdGhpcy5pbnN0YW5jZU51bWJlcixcclxuICAgICAgbXVzdEJlSGlkZGVuJDogbmV3IEJlaGF2aW9yU3ViamVjdDxFbnVtQ29yZUJ1dHRvblZOU0NvZGVbXT4oW10pXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmlzUm9vdFVzZXIgPSB4Py5pc1Jvb3Q7XHJcbiAgICAgICAgdGhpcy5pc0FkbWluVXNlciA9IHg/LmlzQWRtaW47XHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhlOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoISFlWydzaG93bkl0ZW1zJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+IHRoaXMuc2hvd25JdGVtcy5pbmNsdWRlcyh4LmNvZGUpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uID0geDtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoISF0aGlzLmZvckhlYWRlcikge1xyXG4gICAgICAgICAgICBpZiAoISF0aGlzLmlzUm9vdFVzZXIgfHwgISF0aGlzLmlzQWRtaW5Vc2VyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiAhISF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uIS5hY3Rpb25Db2RlcyEuaW5kZXhPZihidXR0b24uY29kZSkgPj0gMCAmJiBidXR0b24uaXNIZWFkZXJcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uRmlsdGVyID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZSEucGVybWlzc2lvbkFjdGlvbnMuZmlsdGVyKHBhID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwYS5mdW5jdGlvbklkID09PSB0aGlzLmZ1bmN0aW9uPy5pZFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChmdW5jdGlvbkZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgYWxsb3dlZEFjdGlvbkNvZGVzIH0gPSBmdW5jdGlvbkZpbHRlclswXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gISEheC5oaWRkZW4pLmZpbHRlcihidXR0b24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb3dlZEFjdGlvbkNvZGVzIS5pbmRleE9mKGJ1dHRvbi5jb2RlKSA+PSAwICYmIGJ1dHRvbi5pc0hlYWRlclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gW107XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBUbyBiZSBpbXByb3ZlZFxyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5zaG93bkl0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiAhISF4LmlzSGVhZGVyKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gdGhpcy5zaG93bkl0ZW1zLmluY2x1ZGVzKHguY29kZSkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICAvKlxyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgPT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgICBpZiAoISFmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICBmaWx0ZXJbMF0ubXVzdEJlSGlkZGVuJC5zdWJzY3JpYmUobWJoID0+IHtcclxuICAgICAgICAgICAgdGhpcy5idXR0b25zLm1hcChiID0+IHtcclxuICAgICAgICAgICAgICBpZiAobWJoLmluY2x1ZGVzKGIuY29kZSkpIHtcclxuICAgICAgICAgICAgICAgIGIuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4oXCJLaMO0bmcgdMOsbSB0aOG6pXkgaW5zdGFuY2UgbnVtYmVyIGPhu6dhIG5ow7NtIG7DunRcIiwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAqL1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzd2FwVHJpb0VkaXRTYXZlQ2FuY2VsKGVkaXRBY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyRWRpdCA9IHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRURJVCk7XHJcbiAgICB0aGlzLmhlYWRlclNhdmUgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NBVkUpO1xyXG4gICAgdGhpcy5oZWFkZXJDYW5jZWwgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0NBTkNFTCk7XHJcbiAgICBpZiAoZWRpdEFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmhlYWRlckVkaXRbMF0uaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmhlYWRlckNhbmNlbFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyRWRpdFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGVhZGVyQ2FuY2VsWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImJ1dHRvbi1ncm91cCBvbkJ1dHRvbkNsaWNrXCIsIGUpXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbk1hcHBlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5mdW5jdGlvbikge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICBbXHJcbiAgICAgICAgICAnL3Jvb3QnLFxyXG4gICAgICAgICAgJ2FjdGlvbi1tYXBwZXInLFxyXG4gICAgICAgIF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5ST09UX01BUFBFUl9VUERBVEVfRlVOQ1RJT05fSURfRk9SX1RIRV9NRU5VX0lURU0pLCBhbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICAgIGNvbnN0IG5ld0luc3RhbmNlcyA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciAhPT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzID0gbmV3SW5zdGFuY2VzO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLWdyb3VwLXZucy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5nLXRyaWdnZXIgZC1mbGV4IGQtZmxleC1jZW50ZXJcIiAqbmdJZj1cIiEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlclwiIChjbGljayk9XCJvbk1hcHBlckNsaWNrKClcIlxyXG4gICAgICAgIFthcHBUb29sdGlwXT1cIidVSV9CVVRUT05fR1JPVVBfU0VUVElOR19BRERfUkVNT1ZFX0FDVElPTl9JVEVNX0ZPUl9USElTX1NDUkVFTicgfCB0cmFuc2xhdGUgOiBsYW5nXCIgcG9zaXRpb249XCJsZWZ0XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXNldHRpbmdzXCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiICpuZ0lmPVwiISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyXCI+PC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1dHRvbi5oaWRkZW5cIj5cclxuICAgICAgICAgICAgPGNvcmUtYnV0dG9uLXZucyBbc2hvd0NhcHRpb25dPVwic2hvd0NhcHRpb25cIiBbZGF0YV09XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgW2luc3RhbmNlTnVtYmVyXT1cImluc3RhbmNlTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIj48L2NvcmUtYnV0dG9uLXZucz5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICA8c3BhbiAqbmdJZj1cIiEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlciAmJiAhISFidXR0b25zLmxlbmd0aFwiPnt7IGN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUgP1xyXG4gICAgICAgICgnVUlfQlVUVE9OX0dST1VQX05PX0lURU1fQVZBSUxBQkxFX1lFVCcgfCB0cmFuc2xhdGUgOiBsYW5nKSA6ICcnIH19PC9zcGFuPlxyXG48L2Rpdj4iXX0=
@@ -239,10 +239,10 @@ export class CoreNavigationTrackerComponent {
239
239
  }
240
240
  console.groupEnd();
241
241
  this.routingService.navigating$.next(false);
242
- this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
243
- this.urlService.currentRouteUrl$.next(routerEvent.url);
244
242
  switch (this.appConfigService.APP_TYPE) {
245
243
  case "WEBAPP":
244
+ this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
245
+ this.urlService.currentRouteUrl$.next(routerEvent.url);
246
246
  // this.layoutService.leftbarReduced$.next(true); // if we want auto-reduce the menu, uncomment this line
247
247
  setTimeout(() => {
248
248
  const leftBar = getComputedStyle(document.documentElement).getPropertyValue('--size-left-bar-current-width').replace('px', '');
@@ -299,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
299
299
  type: Component,
300
300
  args: [{ selector: 'core-navigation-tracker', standalone: true, imports: [], template: "" }]
301
301
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.RoutingService }, { type: i4.LayoutService }, { type: i5.HubConnectionService }, { type: i6.UserActivityService }, { type: i7.UrlService }, { type: i8.NavigatorService }, { type: i9.AlertService }, { type: i10.DialogService }, { type: i11.MultiLanguageService }, { type: i12.AppService }, { type: i13.AppConfigService }] });
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDekksT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFZaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQXVCN0UsTUFBTSxPQUFPLDhCQUE4QjtJQW1DekMsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsY0FBOEIsRUFDL0IsYUFBNEIsRUFDM0Isb0JBQTBDLEVBQzFDLG1CQUF3QyxFQUN4QyxVQUFzQixFQUN0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RSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7OEdBN1dVLDhCQUE4QjtrR0FBOUIsOEJBQThCLG1GQ3pDM0MsRUFBQTs7MkZEeUNhLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIsIFJvdXRlckV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnVtU2lnbmFsUlR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtL0VudW1TaWduYWxSVHlwZSc7XHJcbmltcG9ydCB7IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lIdWJDb25uZWN0aW9uQWN0aXZpdHknO1xyXG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHViLWNvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJUm91dGluZ0hpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS1yb3V0aW5nLWhpc3RvcnkvY29yZS1yb3V0aW5nLWhpc3RvcnkvY29yZS1yb3V0aW5nLWhpc3RvcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXJsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VybC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IElOYXZpZ2F0b3JJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JTmF2aWdhdG9ySXRlbSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IElBdXRoRGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSUF1dGhEYXRhJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMb2dVc2VyQWN0aXZpdHkge1xyXG4gIGNsaWVudENvZGU6IHN0cmluZztcclxuICBhcHBUeXBlOiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgc2lkPzogc3RyaW5nO1xyXG4gIGxvZ2luVGltZT86IERhdGU7XHJcbiAgYWNjZXNzVGltZTogRGF0ZTtcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTmF2aWdhdGlvblRyYWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBuYXZpZ2F0aW5nITogYm9vbGVhbjtcclxuICB1cmwhOiBzdHJpbmc7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIGFwcENvbmZpZzogYW55ID0ge1xyXG4gICAgc2hvd0xheW91dDogJ2ZhbHNlJ1xyXG4gIH07XHJcblxyXG4gIGFwcEluaXRpYWxpemluZyE6IGJvb2xlYW47XHJcbiAgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc3VibWl0dGluZyE6IGJvb2xlYW47XHJcbiAgbWVudU9wZW4hOiBib29sZWFuO1xyXG4gIGxlZnRiYXJSZWR1Y2VkITogYm9vbGVhbjtcclxuICBrZXl3b3JkITogc3RyaW5nO1xyXG4gIHNpZCE6IHN0cmluZztcclxuICB1c2VybmFtZSE6IHN0cmluZztcclxuICBleHBpcmVzQXQhOiBzdHJpbmc7XHJcbiAgYXZhdGFyITogc3RyaW5nO1xyXG5cclxuXHJcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICByb3V0aW5nSGlzdG9yeTogSVJvdXRpbmdIaXN0b3J5SXRlbVtdID0gW107XHJcblxyXG4gIHBlbmRpbmdVcmwhOiBzdHJpbmc7XHJcbiAgbGFzdENsaWNrZWRNZW51SXRlbSE6IElOYXZpZ2F0b3JJdGVtIHwgbnVsbDtcclxuICBsYXN0Q2xpY2tlZE1lbnVJdGVtU3RyaW5nITogc3RyaW5nO1xyXG5cclxuICBkaWFsb2dJbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh1YkNvbm5lY3Rpb25TZXJ2aWNlOiBIdWJDb25uZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlckFjdGl2aXR5U2VydmljZTogVXNlckFjdGl2aXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgdXJsU2VydmljZTogVXJsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5waXBlKFxyXG4gICAgICAgIGZpbHRlcih4ID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIC8vICEhdGhpcy5kaWFsb2dTZXJ2aWNlLmJ1c3lcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgICAmJiB4Py5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlciAmJiAhIXg/LmNvbmZpcm1lZFxyXG4gICAgICAgICAgICAmJiAhIXRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQudmFsdWVcclxuICAgICAgICAgICAgJiYgKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlkID09PSAnOGMyNDY4M2QtN2Q1Mi00ZjVhLTgwOTAtMzFjNzc3ZTg4NjlkJyB8fCB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pZCA9PT0gJ2JkM2U0YWQ0LTExZmMtNDc2Ni05MjI0LTRmOTkwMmYzYTYyMycpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgICcvcm9vdCcsXHJcbiAgICAgICAgICAgICd1cmwtbWFwcGVyJyxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICB7IHN0YXRlOiB7IHVybDogdGhpcy5wZW5kaW5nVXJsLCBsYXN0Q2xpY2tlZE1lbnVJdGVtOiB0aGlzLmxhc3RDbGlja2VkTWVudUl0ZW0sIGxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmc6IHRoaXMubGFzdENsaWNrZWRNZW51SXRlbVN0cmluZyB9IH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVzZXRTZXJ2aWNlKCk7XHJcblxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY2xpY2tlZEl0ZW0kLnBpcGUoZmlsdGVyKHMgPT4gISFzKSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMubGFzdENsaWNrZWRNZW51SXRlbSA9IHhcclxuICAgICAgICB0aGlzLmxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmcgPSBgWyR7eD8uaWR9XT0+JHt0aGlzLm1scy50cmFucyh4IS5jb2RlKX09Pigke3g/LnVybH0pYFxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnVybFNlcnZpY2UuY3VycmVudFJvdXRlVXJsJC5uZXh0KHRoaXMucm91dGVyLnVybCk7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5zdWJzY3JpYmUoeCA9PiB0aGlzLnJvdXRpbmdIaXN0b3J5ID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgocm91dGVyRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1JvdXRlckV2ZW50KHJvdXRlckV2ZW50IGFzIFJvdXRlckV2ZW50KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoeCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29uZmlybURpYWxvZyQudmFsdWUpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuICEhIVsnLyddLmluY2x1ZGVzKHgpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWdub3JlZFBhdGhzID0gdGhpcy5yb3V0aW5nU2VydmljZS5pZ25vcmVkUGF0aHMkLnZhbHVlO1xyXG4gICAgICAgICAgY29uc3QgZnVsbEZ1bmN0aW9ucyA9IHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQudmFsdWUuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gISEhaWdub3JlZFBhdGhzLmluY2x1ZGVzKGYucGF0aClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSBmdWxsRnVuY3Rpb25zLmZpbHRlcihmID0+IHtcclxuICAgICAgICAgICAgaWYgKGYucGF0aEZ1bGxNYXRjaCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBmLnBhdGggPT09IHg7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHguaW5kZXhPZihmLnBhdGgpID09PSAwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZnVuY3Rpb25GaWx0ZXJcIiwgaWdub3JlZFBhdGhzKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBmdW5jdGlvbkZpbHRlcilcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZnVuY3Rpb25GaWx0ZXJcIiwgaWdub3JlZFBhdGhzLmluY2x1ZGVzKFwiL2Ntcy9zeXN0ZW0vdXBlcm1pc3Npb24vMFwiKSlcclxuXHJcbiAgICAgICAgICBpZiAoeC5pbmRleE9mKCcvcm9vdCcpICE9PSAwICYmICEhIWZ1bmN0aW9uRmlsdGVyLmxlbmd0aCAmJiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoeCkgJiYgISF0aGlzLm5hdmlnYXRvclNlcnZpY2UuY2xpY2tlZEl0ZW0kLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc1Jvb3QpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZU51bWJlcjogdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlcixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1lZDogZmFsc2VcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY3JlYXRlTmV3KFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX1RJVExFLFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5ZRVMsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LklHTk9SRSxcclxuICAgICAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5ST09UX0NVUlJFTlRfVVJMX0RPRVNfTk9UX0VYSVNUX0lOX0FQUF9GVU5DVElPTl9QQVRIX0RPX1lPVV9XQU5UX1RPX01BUCxcclxuICAgICAgICAgICAgICAgIFt4XVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChmdW5jdGlvbkZpbHRlci5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50RnVuY3Rpb24kLm5leHQoZnVuY3Rpb25GaWx0ZXJbMF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIC8vIHRyeSB0byBzZXQgY3VycmVudCBmdW5jdGlvbiBpbW1lZGlhdGVseSB3aGVuIHVzZXIgaGFzIHByZXNzZWQgRjVcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICBjb25zdCBpZ25vcmVkUGF0aHMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQudmFsdWU7XHJcbiAgICAgIGNvbnN0IGZ1bGxGdW5jdGlvbnMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmZ1bGxGdW5jdGlvbnMkLnZhbHVlLmZpbHRlcihmID0+IHtcclxuICAgICAgICByZXR1cm4gISEhaWdub3JlZFBhdGhzLmluY2x1ZGVzKGYucGF0aClcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGZ1bmN0aW9uRmlsdGVyID0gZnVsbEZ1bmN0aW9ucy5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYucGF0aEZ1bGxNYXRjaCkge1xyXG4gICAgICAgICAgcmV0dXJuIGYucGF0aCA9PT0gdXJsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdXJsLmluZGV4T2YoZi5wYXRoKSA9PT0gMFxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgaWYgKCEhZnVuY3Rpb25GaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICB2YXIgZnVuY3Rpb25GaWx0ZXJMaW5rczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXIubWFwKHggPT4ge1xyXG4gICAgICAgICAgICAgIGZ1bmN0aW9uRmlsdGVyTGlua3MucHVzaCh4LnBhdGggKyBcIiAoXCIgKyAoeC5wYXRoRnVsbE1hdGNoID8gXCJ0xrDGoW5nIOG7qW5nIHRvw6BuIHBo4bqnblwiIDogXCJ0xrDGoW5nIOG7qW5nIHBo4bqnbiBiw6puIHRyw6FpXCIpICsgXCIpXCIpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBOaGnhu4F1IGjGoW4gMDEgY2jhu6ljIG7Eg25nIGPDuW5nIMSRYW5nIHTGsMahbmcg4bupbmcgduG7m2kgxJFp4buBdSBoxrDhu5tuZyAke3VybH06XFxuJHtKU09OLnN0cmluZ2lmeShmdW5jdGlvbkZpbHRlckxpbmtzLCBudWxsLCAyKX1gLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIE7hur91IGtow7RuZyBwaOG6o2kgSVNfUk9PVCBjxaluZyBraMO0bmcgcGjhuqNpIElTX0FETUlOIHRow6wgxJFp4buBdSBoxrDhu5tuZyB24buBIHRyYW5nIGNo4bunXHJcbiAgICAgICAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzUm9vdCAmJiAhdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNBZG1pbikgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIEtp4buDbSB0cmEgeGVtIGPDsyBxdXnhu4FuIHbhu5tpIEZ1bmN0aW9uIGhp4buHbiB04bqhaSBoYXkga2jDtG5nXHJcbiAgICAgICAgICBjb25zdCB0cnlGaW5kID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ucGVybWlzc2lvbkFjdGlvbnMuZmlsdGVyKHggPT4geC5mdW5jdGlvbklkID09PSBmdW5jdGlvbkZpbHRlclswXS5pZClcclxuICAgICAgICAgIC8vIE7hur91IGtow7RuZyB0w6xtIHRo4bqleSB2w6Aga2jDtG5nIHBo4bqjaSBJU19ST09UIGPFqW5nIGtow7RuZyBwaOG6o2kgSVNfQURNSU4gdGjDrCDEkcawYSByYSB0aMO0bmcgYsOhbyB2w6AgxJFp4buBdSBoxrDhu5tuZyB24buBIHRyYW5nIGNo4bunXHJcbiAgICAgICAgICBpZiAoIXRyeUZpbmQ/Lmxlbmd0aCAmJiAhdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNSb290ICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0FkbWluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGZ1bmN0aW9uRmlsdGVyWzBdLnBhdGggKyBcIiBcIiArXHJcbiAgICAgICAgICAgICAgdGhpcy5tbHMudHJhbnMoJ0NPUkUuUEVSTUlTU0lPTi5USEVfUEFUSF9JU19OT1RfUEVSTUlUVEVEJyksXHJcbiAgICAgICAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJylcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRGdW5jdGlvbiQubmV4dChmdW5jdGlvbkZpbHRlclswXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGVja1JvdXRlckV2ZW50KHJvdXRlckV2ZW50OiBSb3V0ZXJFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGlvblVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgLy8gU2tpcCBuYXZpZ2F0aW5nIGVmZmVjdCB3aGVuIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0cyB3aXRoIC9jbXMvcHJvZmlsZS9idXNpbmVzcy9zdGFmZnByb2ZpbGVcclxuICAgICAgaWYgKHJvdXRlckV2ZW50LnVybC5pbmRleE9mKFwiL2Ntcy9wcm9maWxlL2J1c2luZXNzL3N0YWZmcHJvZmlsZVwiKSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGluZyQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgdGhpcy51cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0ZpcnN0TG9naW4gJiYgdGhpcy51cmwgIT09ICcvY21zL2NoYW5nZS1wYXNzd29yZCcpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NtcycsICdjaGFuZ2UtcGFzc3dvcmQnLCBidG9hKCh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIGFzIElBdXRoRGF0YSkucmVmcmVzaFRva2VuLnVzZXIpXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG5ld1JvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC52YWx1ZTtcclxuICAgICAgbmV3Um91dGluZ0hpc3RvcnkucHVzaCh7IGZ1bGxVcmw6IHRoaXMudXJsIH0pO1xyXG4gICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KG5ld1JvdXRpbmdIaXN0b3J5KTtcclxuXHJcbiAgICAgIGNvbnN0IHVzZXJBY3Rpdml0eSA9IHRoaXMudXNlckFjdGl2aXR5U2VydmljZS51c2VyQWN0aXZpdHkkLnZhbHVlO1xyXG4gICAgICBjb25zdCBhdXRoID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1VzZXJBY3Rpdml0eSA9IHVzZXJBY3Rpdml0eS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCAhPT0gYXV0aD8uaWQpXHJcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLmh1YkNvbm5lY3Rpb24kLnZhbHVlO1xyXG4gICAgICBuZXdVc2VyQWN0aXZpdHkucHVzaCh7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgdXNlcm5hbWU6IGF1dGg/LnVzZXJOYW1lISxcclxuICAgICAgICBwYXRobmFtZTogdGhpcy51cmwsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIGh1YkNvbm5lY3Rpb25JZDogY29ubmVjdGlvbj8uY29ubmVjdGlvbklkISxcclxuICAgICAgICBhY2Nlc3NUaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGFjY2Vzc01vbWVudCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnN0IGFjY2Vzc1RpbWUgPSBhY2Nlc3NNb21lbnQuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgY29uc3QgYWN0aXZpdHk6IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgPSB7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZLFxyXG4gICAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIG1lc3NhZ2U6IGAke2F1dGg/LnVzZXJOYW1lfSBuYXZpZ2F0ZWQgdG8gJHtsb2NhdGlvbi5wYXRobmFtZX1gLFxyXG4gICAgICAgIGxvZ2luVGltZTogdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGF1dGg/LnVzZXJOYW1lLFxyXG4gICAgICAgICAgcGF0aG5hbWU6IHRoaXMudXJsLFxyXG4gICAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIsXHJcbiAgICAgICAgICBodWJDb25uZWN0aW9uSWQ6IGNvbm5lY3Rpb24/LmNvbm5lY3Rpb25JZCEsXHJcbiAgICAgICAgICBhY2Nlc3NUaW1lLFxyXG4gICAgICAgICAgdXNlckFjdGl2aXR5OiBuZXdVc2VyQWN0aXZpdHksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLyogaWYgbG9nIG5lZWRlZFxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgY29uc3QgbG9nUGF5bG9hZDogSUxvZ1VzZXJBY3Rpdml0eSA9IHtcclxuICAgICAgICBjbGllbnRDb2RlOiAnVk5TJyxcclxuICAgICAgICBhcHBUeXBlOiAnV0VCQVBQJyxcclxuICAgICAgICB1c2VybmFtZTogYXV0aD8udXNlck5hbWUsXHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSxcclxuICAgICAgICBsb2dpblRpbWU6IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSA/IG5ldyBEYXRlKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgYWNjZXNzVGltZTogYWNjZXNzTW9tZW50LFxyXG4gICAgICAgIHBhdGg6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxyXG4gICAgICAgIHBhdGhuYW1lOiAnJ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignbG9jYWxob3N0JykgPCAwICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJy53ZWIuYXBwJykgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3RGdWxsVXJsKFwiaHR0cHM6Ly9ibG9nLnRhbmxlaWNhLmNvbS9hcGkvTG9nVXNlckFjdGl2aXR5L0NyZWF0ZVwiLCBsb2dQYXlsb2FkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhdGlvbkVuZCBhY3Rpdml0eVwiLCBhY3Rpdml0eSlcclxuICAgICAgaWYgKCEhY29ubmVjdGlvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcclxuICAgICAgcm91dGVyRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XHJcbiAgICAgIHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5ncm91cChcInJvdXRlckV2ZW50LnVybFwiKVxyXG4gICAgICBjb25zb2xlLmxvZyhyb3V0ZXJFdmVudC51cmwpXHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC52YWx1ZS5maWx0ZXIoeCA9PiB4LnBhdGggPT09IHJvdXRlckV2ZW50LnVybCk7XHJcbiAgICAgIGlmIChmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZyA9PT0gXCJ2aVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS52aSlcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFuZyA9PT0gXCJlblwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS5lbilcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50U2NyZWVuQ2FwdGlvbiQubmV4dChmaWx0ZXJbMF0udmkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudFNjcmVlbkNhcHRpb24kLm5leHQoJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKVxyXG5cclxuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5uYXZpZ2F0aW5nJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgc3dpdGNoICh0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUpIHtcclxuICAgICAgICBjYXNlIFwiV0VCQVBQXCI6XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KHRydWUpOyAvLyBpZiB3ZSB3YW50IGF1dG8tcmVkdWNlIHRoZSBtZW51LCB1bmNvbW1lbnQgdGhpcyBsaW5lXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbGVmdEJhciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNpemUtbGVmdC1iYXItY3VycmVudC13aWR0aCcpLnJlcGxhY2UoJ3B4JywgJycpO1xyXG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdEJhckN1cnJlbnRXaWR0aCQubmV4dChOdW1iZXIobGVmdEJhcikpXHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5jb250ZW50Q29udGFpbmVyV2lkdGgkLm5leHQod2luZG93LmlubmVyV2lkdGggLSBOdW1iZXIobGVmdEJhcikpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jb250ZW50LWNvbnRhaW5lci13aWR0aCcsIHdpbmRvdy5pbm5lcldpZHRoIC0gTnVtYmVyKGxlZnRCYXIpICsgJ3B4JylcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tSb3V0ZXJFdmVudFwiLCByb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgICAgIGlmICghcm91dGVyRXZlbnQudXJsLmVuZHNXaXRoKCctZWRpdCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFjdGl2aXR5SGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF1dGggPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlO1xyXG4gICAgaWYgKCFhdXRoPy5pc0FkbWluKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5odWJDb25uZWN0aW9uJC52YWx1ZTtcclxuICAgIGNvbnN0IGFjdGl2aXR5OiBJSHViQ29ubmVjdGlvbkFjdGl2aXR5ID0ge1xyXG4gICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lISxcclxuICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZX0hJU1RPUllfUkVTRVQsXHJcbiAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgIGF2YXRhcjogYXV0aD8uYXZhdGFyISxcclxuICAgICAgbWVzc2FnZTogYCR7YXV0aD8udXNlck5hbWV9IGhhcyByZXNldCBhY3Rpdml0eSBoaXN0b3J5YCxcclxuICAgICAgbG9naW5UaW1lOiB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5sb2dpblRpbWUhLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIWNvbm5lY3Rpb24pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCIiXX0=
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDekksT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFZaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQXVCN0UsTUFBTSxPQUFPLDhCQUE4QjtJQW1DekMsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsY0FBOEIsRUFDL0IsYUFBNEIsRUFDM0Isb0JBQTBDLEVBQzFDLG1CQUF3QyxFQUN4QyxVQUFzQixFQUN0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QUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs4R0EvV1UsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbUZDekMzQyxFQUFBOzsyRkR5Q2EsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciwgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudW1TaWduYWxSVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bVNpZ25hbFJUeXBlJztcclxuaW1wb3J0IHsgSUh1YkNvbm5lY3Rpb25BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSUh1YkNvbm5lY3Rpb25BY3Rpdml0eSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odWItY29ubmVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckFjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IElSb3V0aW5nSGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlLXJvdXRpbmctaGlzdG9yeS9jb3JlLXJvdXRpbmctaGlzdG9yeS9jb3JlLXJvdXRpbmctaGlzdG9yeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcmxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXJsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSU5hdmlnYXRvckl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lOYXZpZ2F0b3JJdGVtJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUF1dGhEYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JQXV0aERhdGEnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ1VzZXJBY3Rpdml0eSB7XHJcbiAgY2xpZW50Q29kZTogc3RyaW5nO1xyXG4gIGFwcFR5cGU6IHN0cmluZztcclxuICB1c2VybmFtZT86IHN0cmluZztcclxuICBzaWQ/OiBzdHJpbmc7XHJcbiAgbG9naW5UaW1lPzogRGF0ZTtcclxuICBhY2Nlc3NUaW1lOiBEYXRlO1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBwYXRobmFtZT86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLW5hdmlnYXRpb24tdHJhY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVOYXZpZ2F0aW9uVHJhY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIG5hdmlnYXRpbmchOiBib29sZWFuO1xyXG4gIHVybCE6IHN0cmluZztcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgYXBwQ29uZmlnOiBhbnkgPSB7XHJcbiAgICBzaG93TGF5b3V0OiAnZmFsc2UnXHJcbiAgfTtcclxuXHJcbiAgYXBwSW5pdGlhbGl6aW5nITogYm9vbGVhbjtcclxuICBsb2FkaW5nITogYm9vbGVhbjtcclxuICBzdWJtaXR0aW5nITogYm9vbGVhbjtcclxuICBtZW51T3BlbiE6IGJvb2xlYW47XHJcbiAgbGVmdGJhclJlZHVjZWQhOiBib29sZWFuO1xyXG4gIGtleXdvcmQhOiBzdHJpbmc7XHJcbiAgc2lkITogc3RyaW5nO1xyXG4gIHVzZXJuYW1lITogc3RyaW5nO1xyXG4gIGV4cGlyZXNBdCE6IHN0cmluZztcclxuICBhdmF0YXIhOiBzdHJpbmc7XHJcblxyXG5cclxuICB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHJvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSBbXTtcclxuXHJcbiAgcGVuZGluZ1VybCE6IHN0cmluZztcclxuICBsYXN0Q2xpY2tlZE1lbnVJdGVtITogSU5hdmlnYXRvckl0ZW0gfCBudWxsO1xyXG4gIGxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmchOiBzdHJpbmc7XHJcblxyXG4gIGRpYWxvZ0luc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgaHViQ29ubmVjdGlvblNlcnZpY2U6IEh1YkNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgLy8gISF0aGlzLmRpYWxvZ1NlcnZpY2UuYnVzeVxyXG4gICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICYmIHg/Lmluc3RhbmNlTnVtYmVyID09PSB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyICYmICEheD8uY29uZmlybWVkXHJcbiAgICAgICAgICAgICYmICEhdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC52YWx1ZVxyXG4gICAgICAgICAgICAmJiAodGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaWQgPT09ICc4YzI0NjgzZC03ZDUyLTRmNWEtODA5MC0zMWM3NzdlODg2OWQnIHx8IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlkID09PSAnYmQzZTRhZDQtMTFmYy00NzY2LTkyMjQtNGY5OTAyZjNhNjIzJylcclxuICAgICAgICAgIClcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAgJy9yb290JyxcclxuICAgICAgICAgICAgJ3VybC1tYXBwZXInLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIHsgc3RhdGU6IHsgdXJsOiB0aGlzLnBlbmRpbmdVcmwsIGxhc3RDbGlja2VkTWVudUl0ZW06IHRoaXMubGFzdENsaWNrZWRNZW51SXRlbSwgbGFzdENsaWNrZWRNZW51SXRlbVN0cmluZzogdGhpcy5sYXN0Q2xpY2tlZE1lbnVJdGVtU3RyaW5nIH0gfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZXNldFNlcnZpY2UoKTtcclxuXHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQucGlwZShmaWx0ZXIocyA9PiAhIXMpKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXN0Q2xpY2tlZE1lbnVJdGVtID0geFxyXG4gICAgICAgIHRoaXMubGFzdENsaWNrZWRNZW51SXRlbVN0cmluZyA9IGBbJHt4Py5pZH1dPT4ke3RoaXMubWxzLnRyYW5zKHghLmNvZGUpfT0+KCR7eD8udXJsfSlgXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQodGhpcy5yb3V0ZXIudXJsKTtcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2Uucm91dGluZ0hpc3RvcnkkLnN1YnNjcmliZSh4ID0+IHRoaXMucm91dGluZ0hpc3RvcnkgPSB4KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyb3V0ZXJFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUm91dGVyRXZlbnQocm91dGVyRXZlbnQgYXMgUm91dGVyRXZlbnQpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+IHtcclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb25maXJtRGlhbG9nJC52YWx1ZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gISEhWycvJ10uaW5jbHVkZXMoeClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpZ25vcmVkUGF0aHMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQudmFsdWU7XHJcbiAgICAgICAgICBjb25zdCBmdWxsRnVuY3Rpb25zID0gdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC52YWx1ZS5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoZi5wYXRoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBmdW5jdGlvbkZpbHRlciA9IGZ1bGxGdW5jdGlvbnMuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZi5wYXRoRnVsbE1hdGNoKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGYucGF0aCA9PT0geDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4geC5pbmRleE9mKGYucGF0aCkgPT09IDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBpZ25vcmVkUGF0aHMpXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImZ1bmN0aW9uRmlsdGVyXCIsIGZ1bmN0aW9uRmlsdGVyKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBpZ25vcmVkUGF0aHMuaW5jbHVkZXMoXCIvY21zL3N5c3RlbS91cGVybWlzc2lvbi8wXCIpKVxyXG5cclxuICAgICAgICAgIGlmICh4LmluZGV4T2YoJy9yb290JykgIT09IDAgJiYgISEhZnVuY3Rpb25GaWx0ZXIubGVuZ3RoICYmICEhIWlnbm9yZWRQYXRocy5pbmNsdWRlcyh4KSAmJiAhIXRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQudmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzUm9vdCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5uZXh0KHtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlTnVtYmVyOiB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybWVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jcmVhdGVOZXcoXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfVElUTEUsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LllFUyxcclxuICAgICAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuSUdOT1JFLFxyXG4gICAgICAgICAgICAgICAgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlJPT1RfQ1VSUkVOVF9VUkxfRE9FU19OT1RfRVhJU1RfSU5fQVBQX0ZVTkNUSU9OX1BBVEhfRE9fWU9VX1dBTlRfVE9fTUFQLFxyXG4gICAgICAgICAgICAgICAgW3hdXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRGdW5jdGlvbiQubmV4dChmdW5jdGlvbkZpbHRlclswXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgLy8gdHJ5IHRvIHNldCBjdXJyZW50IGZ1bmN0aW9uIGltbWVkaWF0ZWx5IHdoZW4gdXNlciBoYXMgcHJlc3NlZCBGNVxyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgIGNvbnN0IGlnbm9yZWRQYXRocyA9IHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC52YWx1ZTtcclxuICAgICAgY29uc3QgZnVsbEZ1bmN0aW9ucyA9IHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQudmFsdWUuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgIHJldHVybiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoZi5wYXRoKVxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSBmdWxsRnVuY3Rpb25zLmZpbHRlcihmID0+IHtcclxuICAgICAgICBpZiAoZi5wYXRoRnVsbE1hdGNoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZi5wYXRoID09PSB1cmw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB1cmwuaW5kZXhPZihmLnBhdGgpID09PSAwXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgICBpZiAoISFmdW5jdGlvbkZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICBpZiAoZnVuY3Rpb25GaWx0ZXIubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIHZhciBmdW5jdGlvbkZpbHRlckxpbmtzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBmdW5jdGlvbkZpbHRlci5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXJMaW5rcy5wdXNoKHgucGF0aCArIFwiIChcIiArICh4LnBhdGhGdWxsTWF0Y2ggPyBcInTGsMahbmcg4bupbmcgdG/DoG4gcGjhuqduXCIgOiBcInTGsMahbmcg4bupbmcgcGjhuqduIGLDqm4gdHLDoWlcIikgKyBcIilcIilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgYE5oaeG7gXUgaMahbiAwMSBjaOG7qWMgbsSDbmcgY8O5bmcgxJFhbmcgdMawxqFuZyDhu6luZyB24bubaSDEkWnhu4F1IGjGsOG7m25nICR7dXJsfTpcXG4ke0pTT04uc3RyaW5naWZ5KGZ1bmN0aW9uRmlsdGVyTGlua3MsIG51bGwsIDIpfWAsXHJcbiAgICAgICAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnNcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gTuG6v3Uga2jDtG5nIHBo4bqjaSBJU19ST09UIGPFqW5nIGtow7RuZyBwaOG6o2kgSVNfQURNSU4gdGjDrCDEkWnhu4F1IGjGsOG7m25nIHbhu4EgdHJhbmcgY2jhu6dcclxuICAgICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNSb290ICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0FkbWluKSB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgLy8gS2nhu4NtIHRyYSB4ZW0gY8OzIHF1eeG7gW4gduG7m2kgRnVuY3Rpb24gaGnhu4duIHThuqFpIGhheSBraMO0bmdcclxuICAgICAgICAgIGNvbnN0IHRyeUZpbmQgPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5wZXJtaXNzaW9uQWN0aW9ucy5maWx0ZXIoeCA9PiB4LmZ1bmN0aW9uSWQgPT09IGZ1bmN0aW9uRmlsdGVyWzBdLmlkKVxyXG4gICAgICAgICAgLy8gTuG6v3Uga2jDtG5nIHTDrG0gdGjhuqV5IHbDoCBraMO0bmcgcGjhuqNpIElTX1JPT1QgY8Wpbmcga2jDtG5nIHBo4bqjaSBJU19BRE1JTiB0aMOsIMSRxrBhIHJhIHRow7RuZyBiw6FvIHbDoCDEkWnhu4F1IGjGsOG7m25nIHbhu4EgdHJhbmcgY2jhu6dcclxuICAgICAgICAgIGlmICghdHJ5RmluZD8ubGVuZ3RoICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc1Jvb3QgJiYgIXRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzQWRtaW4pIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXJbMF0ucGF0aCArIFwiIFwiICtcclxuICAgICAgICAgICAgICB0aGlzLm1scy50cmFucygnQ09SRS5QRVJNSVNTSU9OLlRIRV9QQVRIX0lTX05PVF9QRVJNSVRURUQnKSxcclxuICAgICAgICAgICAgICBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5uZXh0KGZ1bmN0aW9uRmlsdGVyWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNoZWNrUm91dGVyRXZlbnQocm91dGVyRXZlbnQ6IFJvdXRlckV2ZW50KTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGlvblVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgLy8gU2tpcCBuYXZpZ2F0aW5nIGVmZmVjdCB3aGVuIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0cyB3aXRoIC9jbXMvcHJvZmlsZS9idXNpbmVzcy9zdGFmZnByb2ZpbGVcclxuICAgICAgaWYgKHJvdXRlckV2ZW50LnVybC5pbmRleE9mKFwiL2Ntcy9wcm9maWxlL2J1c2luZXNzL3N0YWZmcHJvZmlsZVwiKSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGluZyQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgdGhpcy51cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0ZpcnN0TG9naW4gJiYgdGhpcy51cmwgIT09ICcvY21zL2NoYW5nZS1wYXNzd29yZCcpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NtcycsICdjaGFuZ2UtcGFzc3dvcmQnLCBidG9hKCh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIGFzIElBdXRoRGF0YSkucmVmcmVzaFRva2VuLnVzZXIpXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG5ld1JvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC52YWx1ZTtcclxuICAgICAgbmV3Um91dGluZ0hpc3RvcnkucHVzaCh7IGZ1bGxVcmw6IHRoaXMudXJsIH0pO1xyXG4gICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KG5ld1JvdXRpbmdIaXN0b3J5KTtcclxuXHJcbiAgICAgIGNvbnN0IHVzZXJBY3Rpdml0eSA9IHRoaXMudXNlckFjdGl2aXR5U2VydmljZS51c2VyQWN0aXZpdHkkLnZhbHVlO1xyXG4gICAgICBjb25zdCBhdXRoID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1VzZXJBY3Rpdml0eSA9IHVzZXJBY3Rpdml0eS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCAhPT0gYXV0aD8uaWQpXHJcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLmh1YkNvbm5lY3Rpb24kLnZhbHVlO1xyXG4gICAgICBuZXdVc2VyQWN0aXZpdHkucHVzaCh7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgdXNlcm5hbWU6IGF1dGg/LnVzZXJOYW1lISxcclxuICAgICAgICBwYXRobmFtZTogdGhpcy51cmwsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIGh1YkNvbm5lY3Rpb25JZDogY29ubmVjdGlvbj8uY29ubmVjdGlvbklkISxcclxuICAgICAgICBhY2Nlc3NUaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGFjY2Vzc01vbWVudCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnN0IGFjY2Vzc1RpbWUgPSBhY2Nlc3NNb21lbnQuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgY29uc3QgYWN0aXZpdHk6IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgPSB7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZLFxyXG4gICAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIG1lc3NhZ2U6IGAke2F1dGg/LnVzZXJOYW1lfSBuYXZpZ2F0ZWQgdG8gJHtsb2NhdGlvbi5wYXRobmFtZX1gLFxyXG4gICAgICAgIGxvZ2luVGltZTogdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGF1dGg/LnVzZXJOYW1lLFxyXG4gICAgICAgICAgcGF0aG5hbWU6IHRoaXMudXJsLFxyXG4gICAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIsXHJcbiAgICAgICAgICBodWJDb25uZWN0aW9uSWQ6IGNvbm5lY3Rpb24/LmNvbm5lY3Rpb25JZCEsXHJcbiAgICAgICAgICBhY2Nlc3NUaW1lLFxyXG4gICAgICAgICAgdXNlckFjdGl2aXR5OiBuZXdVc2VyQWN0aXZpdHksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLyogaWYgbG9nIG5lZWRlZFxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgY29uc3QgbG9nUGF5bG9hZDogSUxvZ1VzZXJBY3Rpdml0eSA9IHtcclxuICAgICAgICBjbGllbnRDb2RlOiAnVk5TJyxcclxuICAgICAgICBhcHBUeXBlOiAnV0VCQVBQJyxcclxuICAgICAgICB1c2VybmFtZTogYXV0aD8udXNlck5hbWUsXHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSxcclxuICAgICAgICBsb2dpblRpbWU6IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSA/IG5ldyBEYXRlKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgYWNjZXNzVGltZTogYWNjZXNzTW9tZW50LFxyXG4gICAgICAgIHBhdGg6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxyXG4gICAgICAgIHBhdGhuYW1lOiAnJ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignbG9jYWxob3N0JykgPCAwICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJy53ZWIuYXBwJykgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3RGdWxsVXJsKFwiaHR0cHM6Ly9ibG9nLnRhbmxlaWNhLmNvbS9hcGkvTG9nVXNlckFjdGl2aXR5L0NyZWF0ZVwiLCBsb2dQYXlsb2FkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhdGlvbkVuZCBhY3Rpdml0eVwiLCBhY3Rpdml0eSlcclxuICAgICAgaWYgKCEhY29ubmVjdGlvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcclxuICAgICAgcm91dGVyRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XHJcbiAgICAgIHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5ncm91cChcInJvdXRlckV2ZW50LnVybFwiKVxyXG4gICAgICBjb25zb2xlLmxvZyhyb3V0ZXJFdmVudC51cmwpXHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC52YWx1ZS5maWx0ZXIoeCA9PiB4LnBhdGggPT09IHJvdXRlckV2ZW50LnVybCk7XHJcbiAgICAgIGlmIChmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZyA9PT0gXCJ2aVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS52aSlcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFuZyA9PT0gXCJlblwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS5lbilcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50U2NyZWVuQ2FwdGlvbiQubmV4dChmaWx0ZXJbMF0udmkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudFNjcmVlbkNhcHRpb24kLm5leHQoJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKVxyXG5cclxuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5uYXZpZ2F0aW5nJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICAgIHN3aXRjaCAodGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFKSB7XHJcbiAgICAgICAgY2FzZSBcIldFQkFQUFwiOlxyXG5cclxuICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKTtcclxuXHJcbiAgICAgICAgICAvLyB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLm5leHQodHJ1ZSk7IC8vIGlmIHdlIHdhbnQgYXV0by1yZWR1Y2UgdGhlIG1lbnUsIHVuY29tbWVudCB0aGlzIGxpbmVcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsZWZ0QmFyID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2l6ZS1sZWZ0LWJhci1jdXJyZW50LXdpZHRoJykucmVwbGFjZSgncHgnLCAnJyk7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC5uZXh0KE51bWJlcihsZWZ0QmFyKSlcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbnRlbnRDb250YWluZXJXaWR0aCQubmV4dCh3aW5kb3cuaW5uZXJXaWR0aCAtIE51bWJlcihsZWZ0QmFyKSlcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWNvbnRlbnQtY29udGFpbmVyLXdpZHRoJywgd2luZG93LmlubmVyV2lkdGggLSBOdW1iZXIobGVmdEJhcikgKyAncHgnKVxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tSb3V0ZXJFdmVudFwiLCByb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgICAgIGlmICghcm91dGVyRXZlbnQudXJsLmVuZHNXaXRoKCctZWRpdCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFjdGl2aXR5SGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF1dGggPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlO1xyXG4gICAgaWYgKCFhdXRoPy5pc0FkbWluKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5odWJDb25uZWN0aW9uJC52YWx1ZTtcclxuICAgIGNvbnN0IGFjdGl2aXR5OiBJSHViQ29ubmVjdGlvbkFjdGl2aXR5ID0ge1xyXG4gICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lISxcclxuICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZX0hJU1RPUllfUkVTRVQsXHJcbiAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgIGF2YXRhcjogYXV0aD8uYXZhdGFyISxcclxuICAgICAgbWVzc2FnZTogYCR7YXV0aD8udXNlck5hbWV9IGhhcyByZXNldCBhY3Rpdml0eSBoaXN0b3J5YCxcclxuICAgICAgbG9naW5UaW1lOiB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5sb2dpblRpbWUhLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIWNvbm5lY3Rpb24pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCIiXX0=
@@ -729,6 +729,8 @@ var EnumStyleButtonClass;
729
729
  EnumStyleButtonClass["ADD"] = "headerButtonAdd";
730
730
  EnumStyleButtonClass["EDIT"] = "headerButtonEdit";
731
731
  EnumStyleButtonClass["SAVE"] = "headerButtonSave";
732
+ EnumStyleButtonClass["SEND"] = "headerButtonSend";
733
+ EnumStyleButtonClass["SAVE_PASSWORD"] = "headerButtonSavePassword";
732
734
  EnumStyleButtonClass["HEADER_SAVE"] = "topButtonSave";
733
735
  EnumStyleButtonClass["CANCEL"] = "headerButtonCancel";
734
736
  EnumStyleButtonClass["NONE_HEADER_CANCEL"] = "noneHeaderButtonCancel";
@@ -3719,6 +3721,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
3719
3721
  }] } });
3720
3722
 
3721
3723
  const CORE_VNS_BUTTONS = [
3724
+ /**********************
3725
+ PORTAL_GROUP (dừng phát triển)
3726
+ ***********************/
3727
+ {
3728
+ code: EnumCoreButtonVNSCode.CANCEL,
3729
+ styleClass: EnumStyleButtonClass.CANCEL,
3730
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_CANCEL,
3731
+ isHeader: false
3732
+ },
3733
+ {
3734
+ code: EnumCoreButtonVNSCode.SAVE,
3735
+ styleClass: EnumStyleButtonClass.SAVE,
3736
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SAVE,
3737
+ isHeader: false
3738
+ },
3739
+ {
3740
+ code: EnumCoreButtonVNSCode.SEND,
3741
+ styleClass: EnumStyleButtonClass.SEND,
3742
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SEND,
3743
+ isHeader: false
3744
+ },
3745
+ {
3746
+ code: EnumCoreButtonVNSCode.EDIT,
3747
+ styleClass: EnumStyleButtonClass.EDIT,
3748
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_EDIT,
3749
+ isHeader: false
3750
+ },
3751
+ {
3752
+ code: EnumCoreButtonVNSCode.SAVE_PASSWORD,
3753
+ styleClass: EnumStyleButtonClass.SAVE_PASSWORD,
3754
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_SAVE,
3755
+ isHeader: false
3756
+ },
3757
+ {
3758
+ code: EnumCoreButtonVNSCode.CREATE,
3759
+ styleClass: EnumStyleButtonClass.ADD,
3760
+ caption: EnumTranslateKey.UI_EDIT_FORM_BUTTON_ADD,
3761
+ isHeader: false
3762
+ },
3722
3763
  /**********************
3723
3764
  HEADER_GROUP
3724
3765
  ***********************/
@@ -18397,10 +18438,10 @@ class CoreNavigationTrackerComponent {
18397
18438
  }
18398
18439
  console.groupEnd();
18399
18440
  this.routingService.navigating$.next(false);
18400
- this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
18401
- this.urlService.currentRouteUrl$.next(routerEvent.url);
18402
18441
  switch (this.appConfigService.APP_TYPE) {
18403
18442
  case "WEBAPP":
18443
+ this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
18444
+ this.urlService.currentRouteUrl$.next(routerEvent.url);
18404
18445
  // this.layoutService.leftbarReduced$.next(true); // if we want auto-reduce the menu, uncomment this line
18405
18446
  setTimeout(() => {
18406
18447
  const leftBar = getComputedStyle(document.documentElement).getPropertyValue('--size-left-bar-current-width').replace('px', '');