qms-angular 1.1.17 → 1.1.19
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.
- package/bundles/qms-angular.umd.js +361 -130
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/common/models/qms-tree-node.model.js +1 -1
- package/esm2015/lib/components/qms-nav-drawer/qms-nav-drawer.component.js +1 -1
- package/esm2015/lib/components/select-access-dialog/common/animation.js +12 -2
- package/esm2015/lib/components/select-access-dialog/model/select-access-config.model.js +20 -0
- package/esm2015/lib/components/select-access-dialog/model/select-access-data.js +1 -1
- package/esm2015/lib/components/select-access-dialog/public-api.js +2 -1
- package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +141 -51
- package/esm2015/lib/components/select-department/select-department.component.js +18 -10
- package/esm2015/lib/components/select-department-tree/animation/animation.js +12 -2
- package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +18 -32
- package/esm2015/lib/components/select-one/select-one-next.component.js +1 -1
- package/esm2015/lib/components/select-one/select-one.component.js +58 -27
- package/esm2015/lib/components/tree/basic-tree.component.js +1 -1
- package/esm2015/lib/components/tree/tree.component.js +4 -3
- package/esm2015/lib/model/en.js +2 -1
- package/esm2015/lib/model/no.js +2 -1
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.js +2 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link-simple/qms-ckeditor-link-simple.component.js +54 -0
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +20 -7
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +7 -3
- package/esm2015/public-api.js +2 -1
- package/fesm2015/qms-angular.js +345 -128
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/common/models/qms-tree-node.model.d.ts +1 -0
- package/lib/components/select-access-dialog/model/select-access-config.model.d.ts +18 -0
- package/lib/components/select-access-dialog/public-api.d.ts +1 -0
- package/lib/components/select-access-dialog/select-access-dialog.component.d.ts +11 -9
- package/lib/components/select-department/select-department.component.d.ts +4 -4
- package/lib/components/select-department-tree/select-department-tree.component.d.ts +1 -1
- package/lib/components/select-one/select-one.component.d.ts +6 -1
- package/lib/model/en.d.ts +1 -0
- package/lib/model/no.d.ts +1 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.d.ts +1 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link-simple/qms-ckeditor-link-simple.component.d.ts +17 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/qms-angular.metadata.json +1 -1
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
- package/src/lib/components/select-access-dialog/select-access-dialog.component.scss +90 -6
- package/src/lib/components/select-department-tree/select-department-tree.component.scss +83 -3
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-link-simple/qms-ckeditor-link-simple.component.scss +1 -0
- package/src/themes/_qms-icon-font.scss +1 -1
package/esm2015/lib/model/no.js
CHANGED
@@ -67,6 +67,7 @@ export const no = {
|
|
67
67
|
"TYPE": "Type",
|
68
68
|
"SEARCH_WITH_NAME": "Søk for- og etternavn",
|
69
69
|
"RESULT_SEARCH_FOR": "Resultater søk etter ",
|
70
|
+
"TOOLTIP_INCLUDE_CHILD": "{0} – inkluderer {1} barn",
|
70
71
|
"ERROR": {
|
71
72
|
"SELECT_DANGER": "Du må velge en eller flere hendelser"
|
72
73
|
},
|
@@ -381,4 +382,4 @@ export const no = {
|
|
381
382
|
"RESET_TO_LAST_SAVE": "Forkast ulagrede endringer"
|
382
383
|
}
|
383
384
|
};
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL25vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsWUFBWTtJQUN2QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLHdCQUF3QixFQUFFLDZCQUE2QjtJQUN2RCxRQUFRLEVBQUUsT0FBTztJQUNqQixNQUFNLEVBQUUsU0FBUztJQUNqQixRQUFRLEVBQUUsT0FBTztJQUNqQixNQUFNLEVBQUUsT0FBTztJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGdCQUFnQixFQUFFLGlCQUFpQjtJQUNuQyxXQUFXLEVBQUUsU0FBUztJQUN0QixzQkFBc0IsRUFBRSxrREFBa0Q7SUFDMUUsMkJBQTJCLEVBQUUsOEJBQThCO0lBQzNELGtCQUFrQixFQUFFLHNCQUFzQjtJQUMxQyxRQUFRLEVBQUUsTUFBTTtJQUNoQixXQUFXLEVBQUUsV0FBVztJQUN4QixXQUFXLEVBQUUsWUFBWTtJQUN6QixXQUFXLEVBQUUsWUFBWTtJQUN6QixXQUFXLEVBQUUsYUFBYTtJQUMxQixZQUFZLEVBQUUsVUFBVTtJQUN4QixLQUFLLEVBQUUsVUFBVTtJQUNqQixRQUFRLEVBQUUsS0FBSztJQUNmLGVBQWUsRUFBRSw0REFBNEQ7SUFDN0UsZUFBZSxFQUFFLCtFQUErRTtJQUNoRyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsVUFBVSxFQUFFLFFBQVE7SUFDcEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxRQUFRLEVBQUUsT0FBTztJQUNqQixnQkFB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VyxFQUFFLGFBQWE7UUFDMUIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsU0FBUztRQUNqQixhQUFhLEVBQUUsWUFBWTtRQUMzQixZQUFZLEVBQUUseUJBQXlCO1FBQ3ZDLFlBQVksRUFBRSx5QkFBeUI7UUFDdkMsT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLGNBQWMsRUFBRSx5QkFBeUI7UUFDekMsbUJBQW1CLEVBQUUsa0JBQWtCO1FBQ3ZDLGFBQWEsRUFBRSxrQkFBa0I7UUFDakMsVUFBVSxFQUFFLFNBQVM7UUFDckIsU0FBUyxFQUFFLFVBQVU7UUFDckIsa0JBQWtCLEVBQUUseUJBQXlCO1FBQzdDLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsWUFBWSxFQUFFLHdCQUF3QjtRQUN0QyxpQkFBaUIsRUFBRSxVQUFVO1FBQzdCLGlCQUFpQixFQUFFLFdBQVc7UUFDOUIsa0JBQWtCLEVBQUUsZUFBZTtRQUNuQyxvQkFBb0IsRUFBRSw0QkFBNEI7S0FDbkQ7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IG5vID0ge1xyXG4gIFwiUkVTVUxUU1wiOiBcIlJlc3VsdGF0ZXJcIixcclxuICBcIlJPV19QRVJfUEFHRVwiOiBcIlJhZGVyIHBlciBzaWRlXCIsXHJcbiAgXCJKVU1fVE9fUEFHRVwiOiBcIkhvcHAgdGlsIHNpZGVcIixcclxuICBcIk1ZX0NPTVBPTkVOVFwiOiBcIk1pbiBrb21wb25lbnRcIixcclxuICBcIlNBVkVfQlVUVE9OXCI6IFwiTGFncmVcIixcclxuICBcIkNBTkNFTF9CVVRUT05cIjogXCJBdmJyeXRcIixcclxuICBcIkRFTEVURV9NRVNTQUdFX0NPTU1FTlRcIjogXCJEZW5uZSBtZWxkaW5nZW4gZXIgc2xldHRldC5cIixcclxuICBcIlJFR1JFVFwiOiBcIkFuZ3JlXCIsXHJcbiAgXCJFRElUXCI6IFwiUmVkaWdlclwiLFxyXG4gIFwiREVMRVRFXCI6IFwiU2xldHRcIixcclxuICBcIlNBVkVcIjogXCJMYWdyZVwiLFxyXG4gIFwiQ0FOQ0VMXCI6IFwiQXZicnl0XCIsXHJcbiAgXCJFRElUX0ZJTEVfTkFNRVwiOiBcIlJlZGlnZXIgZmlsbmF2blwiLFxyXG4gIFwiRklMRV9OQU1FXCI6IFwiRmlsbmF2blwiLFxyXG4gIFwiVVBMT0FEX0xFQVZFX1dBUk5JTkdcIjogXCJGaWxlbmUgZHUgbGFzdGVyIG9wcCB2aWwga2Fuc2tqZSBpa2tlIGJsaSBsYWdyZXRcIixcclxuICBcIlNPTUVfRklMRVNfV0VSRV9OT1RfQURERURcIjogXCJOb2VuIGZpbGVyIGJsZSBpa2tlIGxhZ3QgdGlsXCIsXHJcbiAgXCJZT1VfQ0FOX09OTFlfQUREXCI6IFwiRHUga2FuIGt1biBsYXN0ZSBvcHBcIixcclxuICBcIlNFTEVDVFwiOiBcIlZlbGdcIixcclxuICBcIlBST0NFU1NFU1wiOiBcIlByb3Nlc3NlclwiLFxyXG4gIFwiRE9DVU1FTlRTXCI6IFwiRG9rdW1lbnRlclwiLFxyXG4gIFwiREVWSUFUSU9OXCI6IFwiS2F0ZWdvcmllclwiLFxyXG4gIFwiQ0hFQ0tMSVNUXCI6IFwiU2pla2tsaXN0ZXJcIixcclxuICBcIkFTU0VTU01FTlRcIjogXCJBbmFseXNlclwiLFxyXG4gIFwiQUREXCI6IFwiTGVnZyB0aWxcIixcclxuICBcIlNFQVJDSFwiOiBcIlPDuGtcIixcclxuICBcIlJFR1VMQVJfVElUTEVcIjogXCJIdmEgw7huc2tlciBkdSDDpSBpbmtsdWRlcmUgYXYgaGVuZGVsZXIgaSByaXNpa29hbmFseXNlbihlKT9cIixcclxuICBcIkNBUFRJT05fVElUTEVcIjogXCJJIMOlcnNha3NhbmFseXNlciBibGlyIGF1dG9tYXRpc2sgYWxsZSDDpXJzYWtlciBrbnl0dGV0IHRpbCBoZW5kZWxzZW4gbGFndCB0aWwuXCIsXHJcbiAgXCJDQVVTQUxfQU5BTFlaRVNcIjogXCJWYWxndGUgQW5hbHlzZXJcIixcclxuICBcIkZJTklTSEVEXCI6IFwiRmVyZGlnXCIsXHJcbiAgXCJQUk9DRVNTX0lEXCI6IFwiSURcIixcclxuICBcIkRPQ1VNRU5UX0lEXCI6IFwiSURcIixcclxuICBcIlBST0NFU1NfQVJFQVwiOiBcIlByb3Nlc3NvbXLDpWRlclwiLFxyXG4gIFwiRk9MREVSXCI6IFwiTWFwcGVcIixcclxuICBcIkRFVklBVElPTl9UWVBFXCI6IFwiU2Frc3R5cGVcIixcclxuICBcIkNIRUNLTElTVF9DQVRFR09SWVwiOiBcIkthdGVnb3JpZXJcIixcclxuICBcIkVWRU5UXCI6IFwiSGVuZGVsc2VcIixcclxuICBcIkFSRUFfT0ZfSU1QQUNUXCI6IFwiS29uc2VrdmVuc29tcsOlZGVcIixcclxuICBcIlJFU1VMVFwiOiBcIlJlc3VsdGF0XCIsXHJcbiAgXCJOT1RfQUNDRVBURURcIjogXCJJa2tlIGFrc2VwdGVydFwiLFxyXG4gIFwiTVVTVF9CRV9FVkFMVUFURURcIjogXCJNw6UgdnVyZGVyZXNcIixcclxuICBcIkFDQ0VQVEVEXCI6IFwiQWtzZXB0ZXJ0XCIsXHJcbiAgXCJBUkNISVZFRFwiOiBcIkFya2l2ZXJ0XCIsXHJcbiAgXCJDQVVTRVwiOiBcIsOFcnNha1wiLFxyXG4gIFwiUEFHRVwiOiBcIlNpZGVcIixcclxuICBcIk9GXCI6IFwiYXZcIixcclxuICBcIlJFUE9SVF9GT1JcIjogXCJSYXBwb3J0IGZvclwiLFxyXG4gIFwiU0VMRUNURURcIjogXCJWYWxndGVcIixcclxuICBcIkNIT09TRV9BTExcIjogXCJWZWxnIGFsbGVcIixcclxuICBcIkJSRUFEQ1JVTUJcIjogXCJCcsO4ZHNtdWxlclwiLFxyXG4gIFwiTkFWSUdBVEVfVE9cIjogXCJOYXZpZ2VyZSB0aWxcIixcclxuICBcIkZJTEVfU0laRV9MSU1JVFwiOiBcIkZpbHN0w7hycmVsc2UgZ3JlbnNlXCIsXHJcbiAgXCJTVVBQT1JURURfRVhURU5TSU9OU1wiOiBcIlN0w7h0dGVkZSB1dHZpZGVsc2VyXCIsXHJcbiAgXCJGSUxFU19BUkVfTk9UX1NVUFBPUlRFRFwiOiBcIkZpbChlcikgc3TDuHR0ZXMgaWtrZVwiLFxyXG4gIFwiRklMRVNfRVhDRUVEX1VQTE9BRF9MSU1JVFwiOiBcIkZpbChlcikgb3ZlcnNrcmlkZXIgZ3JlbnNlbiBmb3Igb3BwbGFzdGluZ3NzdMO4cnJlbHNlXCIsXHJcbiAgXCJTRUxFQ1RfQUNDRVNTXCI6IFwiVmVsZyBhbnN2YXJsaWcoZSlcIixcclxuICBcIlBFUlNPTlwiOiBcIlBlcnNvblwiLFxyXG4gIFwiVVNFUl9HUk9VUFwiOiBcIkJydWtlcmdydXBwZVwiLFxyXG4gIFwiREVQQVJUTUVOVFwiOiBcIkF2ZGVsaW5nXCIsXHJcbiAgXCJST0xFXCI6IFwiUm9sbGVcIixcclxuICBcIkRFUEFSVE1FTlRfVU5JVFwiOiBcIkF2ZGVsaW5nL2VuaGV0XCIsXHJcbiAgXCJJTkNMVURFX1NVQl9ERVBBUlRNRU5UU1wiOiBcIkF1dG9tYXRpc2sgaW5rbHVkZXIgdW5kZXJhdmRlbGluZ2VyXCIsXHJcbiAgXCJOQU1FXCI6IFwiTmF2blwiLFxyXG4gIFwiU0VBUkNIX1VTRVJfR1JPVVBcIjogXCJTw7hrIGJydWtlcmdydXBwZVwiLFxyXG4gIFwiU0VBUkNIX0RFUEFSVE1FTlRfVU5JVFwiOiBcIlPDuGsgYXZkZWxpbmcvZW5oZXRcIixcclxuICBcIkZJTFRFUlwiOiBcIkJydWsgZmlsdGVyXCIsXHJcbiAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gIFwiU0VBUkNIX1dJVEhfTkFNRVwiOiBcIlPDuGsgZm9yLSBvZyBldHRlcm5hdm5cIixcclxuICBcIlJFU1VMVF9TRUFSQ0hfRk9SXCI6IFwiUmVzdWx0YXRlciBzw7hrIGV0dGVyIFwiLFxyXG4gIFwiRVJST1JcIjoge1xyXG4gICAgXCJTRUxFQ1RfREFOR0VSXCI6IFwiRHUgbcOlIHZlbGdlIGVuIGVsbGVyIGZsZXJlIGhlbmRlbHNlclwiXHJcbiAgfSxcclxuICBcIk1FU1NBR0VcIjoge1xyXG4gICAgXCJQUk9DRVNTRVNfSU5cIjogXCJQcm9zZXNzZXIgaVwiLFxyXG4gICAgXCJET0NVTUVOVFNfSU5cIjogXCJEb2t1bWVudGVyIGlcIlxyXG4gIH0sXHJcbiAgXCJTRUxFQ1RfSU5DTFVERV9DSElMRFwiOiBcIlZlbGcgaW5rbHVkZXJlciBiYXJuXCIsXHJcbiAgXCJCQUNLX1RPX1RSRUVcIjogXCJUaWxiYWtlIHRpbCBldCB0cmVcIixcclxuICBcIkdPVE9fU0VBQ0hfUkVTVUxUXCI6IFwiR8OlIHRpbCBzw7hrZXJlc3VsdGF0ZXRcIixcclxuICBcIlFNU0NLRURJVE9SXCI6IHtcclxuICAgIFwiSURcIjogXCJJRFwiLFxyXG4gICAgXCJJTkZPUk1BVElPTlwiOiBcIkluZm9ybWFzam9uXCIsXHJcbiAgICBcIlJFTU9WRV9NQVBcIjogXCJGamVybiBrYXJ0ZXRcIixcclxuICAgIFwiSU1BR0VfTUFQX1BST1BFUlRJRVNcIjogXCJCaWxkZSBLYXJ0IEVnZW5za2FwZXJcIixcclxuICAgIFwiSU5TRVJUX1RPT0xUSVBcIjogXCJTZXR0IGlubiBldCB2ZXJrdMO4eXRpcHNcIixcclxuICAgIFwiQ09OVEVOVFwiOiBcIklubmhvbGRcIixcclxuICAgIFwiVEVNUExBVEVcIjogXCJNYWxcIixcclxuICAgIFwiQ09OVEVOVF9URU1QTEFURVwiOiBcIklubmhvbGRzbWFsXCIsXHJcbiAgICBcIkNSRUFURV9ORVdfVEVNUExBVEVcIjogXCJMYWcgbnkgbWFsXCIsXHJcbiAgICBcIlVQREFURV9URU1QTEFURVwiOiBcIk9wcGRhdGVyIG1hbFwiLFxyXG4gICAgXCJUSVRMRVwiOiBcIlRpdHRlbFwiLFxyXG4gICAgXCJERVNDUklQVElPTlwiOiBcIkJlc2tyaXZlbHNlXCIsXHJcbiAgICBcIlNBVkVcIjogXCJMYWdyZVwiLFxyXG4gICAgXCJDSE9PU0VfVEVNUExBVEVcIjogXCJWZWxnIG1hbGVuIGR1IHZpbCDDpXBuZSBpIHJlZGlnZXJpbmdzcHJvZ3JhbW1ldFwiLFxyXG4gICAgXCJSRVBMQUNFX0NPTlRFTlRcIjogXCJCeXR0IHV0IGZha3Rpc2sgaW5uaG9sZFwiLFxyXG4gICAgXCJTQVZFRFwiOiBcIkxhZ3JldFwiLFxyXG4gICAgXCJTQVZFX0ZBSUxFRFwiOiBcIkxhZ3JpbmdlbiBtaXNseWt0ZXNcIixcclxuICAgIFwiREVMRVRFXCI6IFwiU2xldHRcIixcclxuICAgIFwiREVMRVRFRFwiOiBcIlNsZXR0ZXRcIixcclxuICAgIFwiREVMRVRFX0ZBSUxFRFwiOiBcIlNsZXR0aW5nIG1pc2x5a3Rlc1wiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJTbGV0dCBtYWxcIixcclxuICAgIFwiQ0hBTkdFX1RFTVBMQVRFXCI6IFwiRW5kcmUgbWFsXCIsXHJcbiAgICBcIkNBTkNFTFwiOiBcIkF2YnJ5dFwiLFxyXG4gICAgXCJMSU5LXCI6IFwiTGlua1wiLFxyXG4gICAgXCJMSU5LX1RZUEVcIjogXCJLb2JsaW5nc3R5cGVcIixcclxuICAgIFwiWk9PTVwiOiBcIlpvb21cIixcclxuICAgIFwiTElOS19VUkxcIjogXCJVUkxcIixcclxuICAgIFwiTElOS19BTkNIT1JfSU5fVEVYVFwiOiBcIkxlbmtlIHRpbCBhbmtlciBpIHRla3N0ZW5cIixcclxuICAgIFwiTElOS19FTUFJTFwiOiBcIkUtcG9zdFwiLFxyXG4gICAgXCJMSU5LX0FOQ0hPUl9ET0NVTUVOVFwiOiBcIkFua2VyIGkgYW5uZXQgZG9rdW1lbnRcIixcclxuICAgIFwiVEFSR0VUXCI6IFwiVGFyZ2V0XCIsXHJcbiAgICBcIlRBUlRHRVRfTkVXXCI6IFwiTnl0dCB2aW5kdSAoX2JsYW5rKVwiLFxyXG4gICAgXCJUQVJHRVRfVE9QTU9TVFwiOiBcIkRldCDDuHZlcnN0ZSB2aW5kdWV0IChfdG9wKVwiLFxyXG4gICAgXCJUQVJHRVRfU0FNRVwiOiBcIlNhbW1lIHZpbmR1IChzZWx2KVwiLFxyXG4gICAgXCJUQVJHRVRfUEFSRU5UXCI6IFwiT3Zlcm9yZG5ldCB2aW5kdSAoX3BhcmVudClcIixcclxuICAgIFwiUFJPVE9DT0xcIjogXCJQcm90b2NvbFwiLFxyXG4gICAgXCJQUk9UT0NPTF9IVFRQXCI6IFwiaHR0cDovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9IVFRQU1wiOiBcImh0dHBzOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX0ZUUFwiOiBcImZ0cDovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9ORVdcIjogXCJueWhldGVyOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX09USEVSXCI6IFwiPG90aGVyPlwiLFxyXG4gICAgXCJBRFZJU09SWV9USVRMRVwiOiBcIlLDpWRnaXZlbmRlIHRpdHRlbFwiLFxyXG4gICAgXCJIQU5EQk9PS1wiOiBcImVIYW5kYm9va1wiLFxyXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudFwiLFxyXG4gICAgXCJPS1wiOiBcIk9LXCIsXHJcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwtaW5mb3JtYXNqb25cIixcclxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiVmVsZyBldCBhbmtlclwiLFxyXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFua2VyIHZlZCBuYXZuXCIsXHJcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkUtcG9zdGluZm9ybWFzam9uXCIsXHJcbiAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJBZHJlc3NlXCIsXHJcbiAgICBcIkVNQUlMX1NVQkpFQ1RcIjogXCJFbW5lXCIsXHJcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJLcm9wcFwiLFxyXG4gICAgXCJBTkNIT1JfQVRUQUNITUVOVFwiOiBcIlZlZGxlZ2dcIixcclxuICAgIFwiQU5DSE9SX1JFTEFURURfRE9DVU1FTlRcIjogXCJCZXNsZWt0ZXQgZG9rdW1lbnRcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UX1BST0NFU1NcIjogXCJMZWdnIHRpbCBkb2t1bWVudCAvIHByb3Nlc3NcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UXCI6IFwiTGVnZyB0aWwgZG9rdW1lbnRcIixcclxuICAgIFwiQUREXCI6IFwiTGVnZyB0aWxcIixcclxuICAgIFwiUFJPU0VTU0VSXCI6IFwiUHJvc2Vzc2VyXCIsXHJcbiAgICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50ZXJcIixcclxuICAgIFwiVVBEQVRFXCI6IFwiT3BwZGF0ZXJcIixcclxuICAgIFwiRE9DVU1FTlRcIjogXCJEb2t1bWVudFwiLFxyXG4gICAgXCJDT05GSVJNXCI6IFwiQmVrcmVmdFwiLFxyXG4gICAgXCJTRUFSQ0hcIjogXCJTw7hrXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9JTlRFUlwiOiBcIlBla2VyXCIsXHJcbiAgICBcIklNQUdFX01PREVfUkVDVEFOR0xFXCI6IFwiUmVrdGFuZ2VsXCIsXHJcbiAgICBcIklNQUdFX01PREVfQ0lSQ0xFXCI6IFwiU2lya2VsXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9MWUdPTlwiOiBcIlBvbHlnb25cIixcclxuICAgIFwiSU1BR0VfTU9ERV9SRU1PVkVcIjogXCJUYSBib3J0XCIsXHJcbiAgICBcIlBPTFlHT05fRFJBV1wiOiBcIkJydWsgU0tJRlQgKyBrbGlrayBmb3IgZGV0IHNpc3RlIGtvbnRyb2xscHVua3RldFwiLFxyXG4gICAgXCJSRUNUQU5HTEVfRFJBV1wiOiBcIkhvbGQgbmVkZSBTS0lGVCBmb3Iga3ZhZHJhdGlzayBtb2R1c1wiLFxyXG4gICAgXCJTUVVBUkVfRFJBV1wiOiBcIlNsaXBwIFNLSUZUIGZvciByZWt0YW5nZWxtb2R1c1wiLFxyXG4gICAgXCJJTlZBTElEX1VSTFwiOiBcIlVneWxkaWcgVVJMXCIsXHJcbiAgICBcIlJFUVVJUkVEX1VSTFwiOiBcIlVSTCBlciBww6VrcmV2ZFwiLFxyXG4gICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICBcIkRPQ1VNRU5UX1BST0NFU1NcIjogXCJEb2t1bWVudCAvIFByb3Nlc3NcIixcclxuICAgIFwiVVBMT0FEX0ZJTEVfTk9UX1ZBTElEX0ZPUk1BVFwiOiBcIkZpbGVuIHNvbSBlciBsYXN0ZXQgb3BwIGVyIHVneWxkaWcgZm9ybWF0LiBTdMO4dHRlZGUgZmlsZm9ybWF0ZXI6IHswfVwiLFxyXG4gICAgXCJVUExPQURfRklMRV9PVkVSU0laRVwiOiBcIkZpbGVuIHNvbSBlciBsYXN0ZXQgb3BwIGVyIG92ZXIgZ3JlbnNlc3TDuHJyZWxzZW4uIEdyZW5zZXN0w7hycmVsc2VuIGVyIHswfU1CXCIsXHJcbiAgICBcIlVQTE9BRF9GSUxFX0ZBSUxFRFwiOiBcIkt1bm5lIGlra2UgbGFzdGUgb3BwIGZpbGVuLlwiLFxyXG4gICAgXCJBU1NJU1RJVkVfVEVYVFwiOiBcIkhqZWxwZW5kZSB0ZWtzdFwiLFxyXG4gICAgXCJXT1JEU1wiOiBcIk9yZFwiLFxyXG4gICAgXCJDSEFSQUNURVJTXCI6IFwiVGVnblwiLFxyXG4gICAgXCJTRUxFQ1RfVklERU9fRlJPTV9BUkNISVZFXCI6IFwiVmVsZyB2aWRlbyBmcmEgYXJraXZldFwiXHJcbiAgfSxcclxuICBcIkFCT1VUXCI6IHtcclxuICAgIFwiQUJPVVRfQ0tFRElUT1JcIjogXCJPbSBDS0VkaXRvclwiLFxyXG4gICAgXCJDS0VESVRPUjVfVkVSU0lPTlwiOiBcIkNLRWRpdG9yIDUgdmVyc2pvblwiLFxyXG4gICAgXCJGT1JfTElDRU5TSU5HX0lORk9STUFUSU9OX1BMRUFTRV9WSVNJVF9PVVJfV0VCU0lURVwiOiBcIkZvciBsaXNlbnNpZXJpbmdzaW5mb3JtYXNqb24sIGJlc8O4ayB2w6VyIG5ldHRzaWRlXCIsXHJcbiAgICBcIkFMTF9SSUdIVFNfUkVTRVJWRURcIjogXCJBbGxlIHJldHRpZ2hldGVyIGVyIGZvcmJlaG9sZHRcIixcclxuICAgIFwiQ0hFQ0tcIjogXCJTZVwiLFxyXG4gICAgXCJGT1JfSEVMUFwiOiBcImZvciBoamVscFwiLFxyXG4gICAgXCJDS0VESVRPUl9VU0VSU19HVUlERVwiOiBcImJydWtlcmjDpW5kYm9rZW4gZm9yIENLRWRpdG9yXCIsXHJcbiAgICBcIkNPUFlSSUdIVFwiOiBcIk9wcGhhdnNyZXR0IMKpXCJcclxuICB9LFxyXG4gIFwiQlBNTlwiOiB7XHJcbiAgICBcIkRFRkFVTFRcIjogXCJTdGFuZGFyZFwiLFxyXG4gICAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gICAgXCJOQU1FXCI6IFwiTmF2blwiLFxyXG4gICAgXCJFWENMVVNJVkVcIjogXCJFa3NrbHVzaXZcIixcclxuICAgIFwiSU5DTFVTSVZFXCI6IFwiSW5rbHVzaXZlXCIsXHJcbiAgICBcIlBBUkFMTEVMXCI6IFwiUGFyYWxsZWxcIixcclxuICAgIFwiQVBQRUFSQU5DRVwiOiBcIlV0c2VlbmRlXCIsXHJcbiAgICBcIkJPRFlfQ09MT1JcIjogXCJGYXJnZVwiLFxyXG4gICAgXCJURVhUX0FMSUdOTUVOVFwiOiBcIlRla3N0cGxhc3NlcmluZ1wiLFxyXG4gICAgXCJMRUZUXCI6IFwiVmVuc3RyZVwiLFxyXG4gICAgXCJDRU5URVJcIjogXCJNaWR0anVzdGVyXCIsXHJcbiAgICBcIlJJR0hUXCI6IFwiSMO4eXJlXCIsXHJcbiAgICBcIkZPTlRfRkFNSUxZXCI6IFwiRm9udGZhbWlsaWVcIixcclxuICAgIFwiRk9OVF9TSVpFXCI6IFwiU2tyaWZ0c3TDuHJyZWxzZVwiLFxyXG4gICAgXCJDT05URU5UXCI6IFwiSW5uaG9sZFwiLFxyXG4gICAgXCJJQ09OXCI6IFwiSWtvblwiLFxyXG4gICAgXCJOT05FXCI6IFwiTm9uZVwiLFxyXG4gICAgXCJNRVNTQUdFXCI6IFwiTWVzc2FnZVwiLFxyXG4gICAgXCJVU0VSXCI6IFwiVXNlclwiLFxyXG4gICAgXCJUQVNLXCI6IFwiVGFza1wiLFxyXG4gICAgXCJUUkFOU0FDVElPTlwiOiBcIlRyYW5zYWN0aW9uXCIsXHJcbiAgICBcIkVWRU5UX1NVQl9QUk9DRVNTXCI6IFwiZXZlbnQtc3ViLXByb2Nlc3NcIixcclxuICAgIFwiQ0FMTF9BQ1RJVklUWVwiOiBcImNhbGwtYWN0aXZpdHlcIixcclxuICAgIFwiU1VCX1BST0NFU1NcIjogXCJTdWItcHJvY2Vzc1wiLFxyXG4gICAgXCJTVEFSVFwiOiBcIlN0YXJ0XCIsXHJcbiAgICBcIkVORFwiOiBcIkVuZFwiLFxyXG4gICAgXCJJTlRFUk1FRElBVEVcIjogXCJJbnRlcm1lZGlhdGVcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkNBTkNFTF9PVUxJTkVEXCI6IFwiQ2FuY2VsIG91bGluZWRcIixcclxuICAgIFwiQ0FOQ0VMX0ZJTExFRFwiOiBcIkNhbmNlbCBmaWxsZWRcIixcclxuICAgIFwiQ09NUEVOU0FUSU9OX09VTElORURcIjogXCJDb21wZW5zYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJDT01QRU5TQVRJT05fRklMTEVEXCI6IFwiQ29tcGVuc2F0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJDT05ESVRJT05BTFwiOiBcIkNvbmRpdGlvbmFsXCIsXHJcbiAgICBcIkVSUk9SX09VTElORURcIjogXCJFcnJvciBvdWxpbmVkXCIsXHJcbiAgICBcIkVSUk9SX0ZJTExFRFwiOiBcIkVycm9yIGZpbGxlZFwiLFxyXG4gICAgXCJFU0NBTEFUSU9OX09VTElORURcIjogXCJFc2NhbGF0aW9uIG91bGluZWRcIixcclxuICAgIFwiRVNDQUxBVElPTl9GSUxMRURcIjogXCJFc2NhbGF0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJMSU5LX09VTElORURcIjogXCJMaW5rIG91bGluZWRcIixcclxuICAgIFwiTElOS19GSUxMRURcIjogXCJMaW5rIGZpbGxlZFwiLFxyXG4gICAgXCJNRVNTQUdFX09VTElORURcIjogXCJNZXNzYWdlIG91bGluZWRcIixcclxuICAgIFwiTUVTU0FHRV9GSUxMRURcIjogXCJNZXNzYWdlIGZpbGxlZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9PVUxJTkVEXCI6IFwiTXVsdGlwbGUgb3VsaW5lZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9GSUxMRURcIjogXCJNdWx0aXBsZSBmaWxsZWRcIixcclxuICAgIFwiUEFSQUxMRUxfTVVMVElQTEVcIjogXCJQYXJhbGxlbCBtdWx0aXBsZVwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9PVUxJTkVEXCI6IFwiVGVybWluYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9GSUxMRURcIjogXCJUZXJtaW5hdGlvbiBmaWxsZWRcIixcclxuICAgIFwiVElNRVJcIjogXCJUaW1lclwiLFxyXG4gICAgXCJTSUdOQUxfT1VMSU5FRFwiOiBcIlNpZ25hbCBvdWxpbmVkXCIsXHJcbiAgICBcIlNJR05BTF9GSUxMRURcIjogXCJTaWduYWwgZmlsbGVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX09VTElORURcIjogXCJQYXJhbGxlbCBvdWxpbmVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX0ZJTExFRFwiOiBcIlBhcmFsbGVsIGZpbGxlZFwiLFxyXG4gICAgXCJTVUJfVFlQRVwiOiBcIlN1YnR5cGVcIixcclxuICAgIFwiVFJBTlNQQVJFTkNZXCI6IFwiVHJhbnNwYXJlbmN5XCIsXHJcbiAgICBcIkxBQkVMXCI6IFwiTGFiZWxcIixcclxuICAgIFwiVEVYVFwiOiBcIlRla3N0XCIsXHJcbiAgICBcIlBPU0lUSU9OXCI6IFwiUGxhc3NlcmluZ1wiLFxyXG4gICAgXCJMQUJFTFNcIjogXCJMYWJlbHNcIixcclxuICAgIFwiTk9STUFMXCI6IFwiTm9ybWFsXCIsXHJcbiAgICBcIkFTU09DSUFUSU9OXCI6IFwiQXNzb2NpYXRpb25cIixcclxuICAgIFwiQ09OVkVSU0FUSU9OXCI6IFwiQ29udmVyc2F0aW9uXCIsXHJcbiAgICBcIlBBUlRJQ1BBTlRTXCI6IFwiUGFydGljcGFudHNcIixcclxuICAgIFwiSU5JVElBVElOR19QQVJUSUNJUEFOVFwiOiBcIkluaXRpYXRpbmcgUGFydGljaXBhbnRcIixcclxuICAgIFwiUFJJTUFSWV9DT0xPUlwiOiBcIkhvdmVkZmFyZ2VcIixcclxuICAgIFwiU0VDT05EQVJZX0NPTE9SXCI6IFwiU2VrdW5kw6ZyZmFyZ2VcIixcclxuICAgIFwiQ0FMTC1DT05WRVJTQVRJT05cIjogXCJDYWxsLWNvbnZlcnNhdGlvblwiLFxyXG4gICAgXCJBRERfTEFORVNcIjogXCJMZWdnIHRpbCBiYW5lclwiLFxyXG4gICAgXCJQRVJDRU5UQUdFXCI6IFwiUHJvc2VudFwiLFxyXG4gICAgXCJBRERfU1VCTEFORVNcIjogXCJMZWdnIHRpbCBkZWxiYW5lXCIsXHJcbiAgICBcIkhFQURFUl9DT0xPUlwiOiBcIkhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJMQU5FX0JPRFlfQ09MT1JcIjogXCJMYW5lIEJvZHkgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfQ09MT1JcIjogXCJMYW5lIEhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJPUEVOX0FfUFJJTlRfRElBTE9HXCI6IFwiw4VwbmUgZW4gdXRza3JpZnRzZGlhbG9nXCIsXHJcbiAgICBcIk9QRU5fQVNfSlNPTlwiOiBcIsOFcG5lIHNvbSBKU09OXCIsXHJcbiAgICBcIlpPT01fSU5cIjogXCJab29tIGlublwiLFxyXG4gICAgXCJaT09NX09VVFwiOiBcIlpvb20gdXRcIixcclxuICAgIFwiWk9PTV9UT19GSVRcIjogXCJab29tIGZvciDDpSBwYXNzZVwiLFxyXG4gICAgXCJTRU5EX1RPX0ZST05UXCI6IFwiU2VuZCB0aWwgZnJvbnRcIixcclxuICAgIFwiQlJJTkdfT0JKRUNUX1RPX0ZST05UXCI6IFwiRmx5dHQgb2JqZWt0ZXQgZnJlbSB0aWwgZnJvbnRcIixcclxuICAgIFwiU0VORF9UT19CQUNLXCI6IFwiU2VuZCBiYWtlcnN0XCIsXHJcbiAgICBcIkJSSU5HX09CSkVDVF9UT19CQUNLXCI6IFwiRmx5dHQgb2JqZWt0ZXQgYmFrZXJzdFwiLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiBcIlTDuG1cIixcclxuICAgIFwiVU5ET1wiOiBcIkFuZ3JlXCIsXHJcbiAgICBcIlJFRE9cIjogXCJHamVudGFcIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFXCI6IFwiVmVsZyBtYWxcIixcclxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiU2xldHQgbWFsXCIsXHJcbiAgICBcIlNBVkVfQVNfVEVNUExBVEVcIjogXCJMYWdyZSBzb20gbWFsXCIsXHJcbiAgICBcIlJFU0VUX1RPX0xBU1RfU0FWRVwiOiBcIkZvcmthc3QgdWxhZ3JlZGUgZW5kcmluZ2VyXCIsXHJcbiAgICBcIkdSSURfU0laRVwiOiBcIkdyaWQgc3RyLlwiLFxyXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6IFwiRW5kcmUgZ3JpZCBzdHIuXCIsXHJcbiAgICBcIlNOQVBMSU5FU1wiOiBcIkhqZWxwZWxpbmplcjpcIixcclxuICAgIFwiRU5BQkxFX0RJU0FCTEVfU05BUExJTkVTXCI6IFwiQWt0aXZlcmUvRGVha3RpdmVyZSBoamVscGVsaW5qZXJcIixcclxuICAgIFwiTElORV9DT0xPUlwiOiBcIkxpbmplIEZhcmdlXCIsXHJcbiAgICBcIkJPRFlfTElORV9DT0xPUlwiOiBcIktyb3BwcyBMaW5qZSBGYXJnZVwiLFxyXG4gICAgXCJUWVBFX0NPTE9SXCI6IFwiVHlwZSBGYXJnZVwiLFxyXG4gICAgXCJNQVJLRVJcIjogXCJNYXJrw7hyZXJcIixcclxuICAgIFwiTUFSS0VSX0NPTE9SXCI6IFwiTWFya8O4cmVyIEZhcmdlXCIsXHJcbiAgICBcIlRPUF9DT0xPUlwiOiBcIlRvcHAgRmFyZ2VcIixcclxuICAgIFwiVE9QX0xJTkVfQ09MT1JcIjogXCJUb3BwIExpbmplIEZhcmdlXCIsXHJcbiAgICBcIkNPTExFQ1RJT05cIjogXCJTYW1saW5nXCIsXHJcbiAgICBcIkNPTExFQ1RJT05fQ09MT1JcIjogXCJTYW1saW5nIEZhcmdlXCIsXHJcbiAgICBcIlNJWkVcIjogXCJTdHIuXCIsXHJcbiAgICBcIkhFQURFUl9TSVpFXCI6IFwiT3ZlcnNrcmlmdHNzdHIuXCIsXHJcbiAgICBcIkhFQURFUlwiOiBcIk92ZXJza3JpZnRcIixcclxuICAgIFwiSEVBREVSX1NUUk9LRV9DT0xPUlwiOiBcIkhlYWRlciBzdHJva2UgY29sb3JcIixcclxuICAgIFwiSEVBREVSX0xBQkVMX0NPTE9SXCI6IFwiSGVhZGVyIGxhYmVsIGNvbG9yXCIsXHJcbiAgICBcIkxBTkVfU1RST0tFX0NPTE9SXCI6IFwiTGFuZSBTdHJva2UgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfU1RST0tFXCI6IFwiTGFuZSBIZWFkZXIgU3Ryb2tlXCIsXHJcbiAgICBcIkxBTkVfTEFCRUxfQ09MT1JcIjogXCJMYW5lIExhYmVsIENvbG9yXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9IRUFERVJfRklMTFwiOiBcIk1pbGVzdG9uZSBIZWFkZXIgRmlsbFwiLFxyXG4gICAgXCJNSUxFU1RPTkVfU1RST0tFXCI6IFwiTWlsZXN0b25lIFN0cm9rZVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfTEFCRUxfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGFiZWwgQ29sb3JcIixcclxuICAgIFwiTUlMRVNUT05FX0xJTkVfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGluZSBDb2xvclwiLFxyXG4gICAgXCJIRUFERVJfQUxJR05NRU5UXCI6IFwiSGVhZGVyIEFsaWdubWVudFwiLFxyXG4gICAgXCJIRUFERVJfRk9OVF9GQU1JTFlcIjogXCJIZWFkZXIgRm9udCBmYW1pbHlcIixcclxuICAgIFwiSEVBREVSX0ZPTlRfU0laRVwiOiBcIkhlYWRlciBGb250IHNpemVcIixcclxuICAgIFwiTEFORV9BTElHTk1FTlRcIjogXCJMYW5lIEFsaWdubWVudFwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfRkFNSUxZXCI6IFwiTGFuZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfU0laRVwiOiBcIkxhbmUgRm9udCBzaXplXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9BTElHTk1FTlRcIjogXCJNaWxlc3RvbmUgQWxpZ25tZW50XCIsXHJcbiAgICBcIk1JTEVTVE9ORV9GT05UX0ZBTUlMWVwiOiBcIk1pbGVzdG9uZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfRk9OVF9TSVpFXCI6IFwiTWlsZXN0b25lIEZvbnQgc2l6ZVwiLFxyXG4gICAgXCJURVhUX0NPTE9SXCI6IFwiVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9IRUFERVJfQ09MT1JcIjogXCJIZWFkZXIgVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9CQUNLR1JPVU5EX0NPTE9SXCI6IFwiQmFrZ3J1bm4gVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9JTlNJREVfU0hBUEVcIjogXCJWaXMgdGVrc3RlbiBpbm5pIGZpZ3VyXCIsXHJcbiAgICBcIlRFTVBMQVRFX05BTUVcIjogXCJNYWxuYXZuXCIsXHJcbiAgICBcIlRFTVBMQVRFX0lORk9cIjogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIG1hbG5hdm5cIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFX0lORk9STUFUSU9OXCI6IFwiRHUgbcOlIHZlbGdlIGVuIG1hbGVuIGbDuHIgZHUgdXRmw7hyZXIgZGVubmUgaGFuZGxpbmdlbi5cIixcclxuICAgIFwiQ09OTkVDVElPTlwiOiBcIkZvcmJpbmRlbHNlXCIsXHJcbiAgICBcIlBST1BFUlRJRVNcIjogXCJFZ2Vuc2thcGVyXCIsXHJcbiAgICBcIkJVU0lORVNTX1BST0NFU1NfTU9ERUxfQU5EX05PVEFUSU9OXCI6IFwiRm9ycmV0bmluZ3Nwcm9zZXNzbW9kZWxsIG9nIG5vdGFzam9uXCIsXHJcbiAgICBcIkNPTk5FQ1RFRF9BVFRBQ0hNRU5UXCI6IFwiVGlsa29ibGV0IHZlZGxlZ2dcIixcclxuICAgIFwiQ09OTkVDVEVEX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJLb2JsZXQgZG9rdW1lbnRldCAvIHByb3Nlc3NlblwiLFxyXG4gICAgXCJERUxFVEVfQVRUQUNITUVOVFwiOiBcIlNsZXR0IHZlZGxlZ2dcIixcclxuICAgIFwiREVMRVRFX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJTbGV0dCBkb2t1bWVudGV0IC8gcHJvc2Vzc2VuXCIsXHJcbiAgICBcIkNIT09TRV9BTkNIT1JfSU5fVEVYVF9PUFRJT05BTFwiOiBcIlZlbGcgYW5rZXIgaSB0ZWtzdCAodmFsZ2ZyaXR0KVwiLFxyXG4gICAgXCJSRUxPQURfQU5DSE9SU1wiOiBcIkxhc3QgYW5rZXJlIHDDpSBueXR0XCIsXHJcbiAgICBcIlJFU0VUX1RPX09SSUdJTkFMXCI6IFwiRm9ya2FzdCBlbmRyaW5nZXJcIixcclxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogXCJBdXRvLWxheW91dCBHcmFmXCIsXHJcbiAgICBcIkZVTExTQ1JFRU5cIjogXCJGdWxsc2tqZXJtdmlzbmluZ1wiLFxyXG4gICAgXCJGTE9XQ0hBUlRcIjogXCJGbHl0c2tqZW1hXCIsXHJcbiAgICBcIkhBTkRCT09LXCI6IFwiZUjDpW5kYm9rXCIsXHJcbiAgfSxcclxuICBcIlFNU0NLRURJVE9SX01FU1NBR0VcIjoge1xyXG4gICAgXCJDT05GSVJNX0RFTEVURV9URU1QTEFURVwiOiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBtYWxlbj9cIixcclxuICAgIFwiQ09ORklSTV9DSEFOR0VfVEVNUExBVEVcIjogXCJFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBicnVrZSBkZW5uZSBtYWxlbiBww6UgcmVkYWt0w7hyZW4/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0VYSVNUSU5HX0NPTk5FQ1RJT05cIjogXCJEdSBtw6UgZmplcm5lIGRlbiBla3Npc3RlcmVuZGUgdGlsa29ibGluZ2VuIGbDuHIgZHUgdXRmw7hyZXIgZGVubmUgaGFuZGxpbmdlbi5cIixcclxuICAgIFwiQ09ORklSTV9ERUxFVEVfQVRUQUNITUVOVFwiOiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBsaW5rZW4/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBzbGV0dGUgZGV0dGUgZG9rdW1lbnRldCAvIHByb3Nlc3Nlbj9cIixcclxuICB9LFxyXG4gIFwiRkxPV0NIQVJUXCI6IHtcclxuICAgIFwiUkVNT1ZFX0VMRU1FTlRcIjogJ0tsaWtrIGZvciDDpSBmamVybmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJDTE9ORV9BTkRfQ09OTkVDVFwiOiAnS2xpa2sgb2cgZHJhIGZvciDDpSBrbG9uZSBvZyBrb2JsZSB0aWwgb2JqZWt0ZXQgcMOlIMOpbiBnYW5nJyxcclxuICAgIFwiQ0xPTkVcIjogJ0tsaWtrIG9nIGRyYSBmb3Igw6Uga2xvbmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJCUkVBS19BTExfQ09OTkVDVElPTlNcIjogJ0tsaWtrIGZvciDDpSBicnl0ZSBhbGxlIGZvcmJpbmRlbHNlciB0aWwgYW5kcmUgb2JqZWt0ZXInLFxyXG4gICAgXCJDT05ORUNUXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIGtvYmxlIHRpbCBvYmpla3RldCcsXHJcbiAgICBcIlJPVEFURVwiOiAnS2xpa2sgb2cgZHJhIGZvciDDpSByb3RlcmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJSRU1PVkVfU0VMRUNURURfRUxFTUVOVFwiOiAnS2xpa2sgZm9yIMOlIGZqZXJuZSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJPVEFURV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIHJvdGVyZSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJFU0laRV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIGVuZHJlIHN0w7hycmVsc2VuIHDDpSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJFQ1RBTkdMRVwiOiAnUmVrdGFuZ2VsJyxcclxuICAgIFwiRUxMSVBTRVwiOiAnRWxsaXBzZScsXHJcbiAgICBcIlJFQ1RBTkdMRV9XSVRIX1BPUlRTXCI6ICdSZWt0YW5nZWwgbWVkIHBvcnRlcicsXHJcbiAgICBcIkVMTElQU0VfV0lUSF9QT1JUU1wiOiAnRWxsaXBzZSBtZWQgcG9ydGVyJyxcclxuICAgIFwiUkhPTUJVU1wiOiAnUmhvbWJ1cycsXHJcbiAgICBcIkNZTElOREVSXCI6ICdTeWxpbmRlcicsXHJcbiAgICBcIklNQUdFXCI6ICdCaWxkZScsXHJcbiAgICBcIkNBUkRcIjogJ0tvcnQnLFxyXG4gICAgXCJJQ09OXCI6ICdJa29uJyxcclxuICAgIFwiUkVDVEFOR0xFX1dJVEhfSEVBREVSXCI6ICdSZWt0YW5nZWwgbWVkIG92ZXJza3JpZnQnLFxyXG4gICAgXCJTVEFSVF9TVEFURVwiOiAnU3RhcnRzdGF0dXMnLFxyXG4gICAgXCJFTkRfU1RBVEVcIjogJ1NsdXR0aWxzdGFuZCcsXHJcbiAgICBcIlNUQVRFXCI6ICdTdGF0ZScsXHJcbiAgICBcIlBMQUNFXCI6ICdQbGFjZScsXHJcbiAgICBcIlRSQU5TSVRJT05cIjogJ092ZXJnYW5nJyxcclxuICAgIFwiRU5USVRZXCI6ICdFbnRpdHknLFxyXG4gICAgXCJXRUFLX0VOVElUWVwiOiAnU3ZhayBlbmhldCcsXHJcbiAgICBcIlJFTEFUSU9OU0hJUFwiOiAnUmVsYXRpb25zaGlwJyxcclxuICAgIFwiSURFTlRJRllJTkdfUkVMQVRJT05TSElQXCI6ICdJZGVudGlmaXNlcmVuZGUgZm9yaG9sZCcsXHJcbiAgICBcIklTQVwiOiAnSVNBJyxcclxuICAgIFwiS0VZXCI6ICdOw7hra2VsJyxcclxuICAgIFwiTk9STUFMXCI6ICdOb3JtYWwnLFxyXG4gICAgXCJNVUxUSVZBTFVFRFwiOiAnTXVsdGl2YWx1ZWQnLFxyXG4gICAgXCJERVJJVkVEXCI6ICdEZXJpdmVkJyxcclxuICAgIFwiQ0xBU1NcIjogJ0tsYXNzZScsXHJcbiAgICBcIklOVEVSRkFDRVwiOiAnR3JlbnNlc25pdHQnLFxyXG4gICAgXCJBQlNUUkFDVFwiOiAnQWJzdHJha3QnLFxyXG4gICAgXCJNRU1CRVJcIjogJ01lZGxlbScsXHJcbiAgICBcIlVORE9cIjogJ0FuZ3JlJyxcclxuICAgIFwiUkVET1wiOiAnR2rDuHIgb20nLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiAnVMO4bXQgcGFwaXInLFxyXG4gICAgXCJFWFBPUlRfU1ZHXCI6ICfDhXBuZSBzb20gU1ZHIGkgZW4gcG9wdXAnLFxyXG4gICAgXCJFWFBPUlRfUE5HXCI6ICfDhXBuZSBzb20gUE5HIGkgZW4gcG9wdXAnLFxyXG4gICAgXCJQUklOVFwiOiAnw4VwbmUgZW4gdXRza3JpZnRzZGlhbG9nYm9rcycsXHJcbiAgICBcIlNFTkRfVE9fRlJPTlRcIjogJ0JyaW5nIG9iamVrdCBmb3JhbicsXHJcbiAgICBcIlNFTkRfVE9fQkFDS1wiOiAnU2VuZCBvYmpla3QgdGlsIGJha3NpZGUnLFxyXG4gICAgXCJBVVRPX0xBWU9VVF9HUkFQSFwiOiAnQXV0by1sYXlvdXQgZ3JhZicsXHJcbiAgICBcIlpPT01fVE9fRklUXCI6ICdab29tIGZvciDDpSBwYXNzZScsXHJcbiAgICBcIlpPT01fT1VUXCI6ICdab29tIHV0JyxcclxuICAgIFwiWk9PTV9JTlwiOiAnWm9vbSBpbm4nLFxyXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6ICdFbmRyZSBydXRlbmV0dHN0w7hycmVsc2UnLFxyXG4gICAgXCJTTkFQTElORVNcIjogJ0FrdGl2ZXIvZGVha3RpdmVyIHNuYXBsaW5lcycsXHJcbiAgICBcIkZVTExTQ1JFRU5cIjogJ1Zla3NsZSBmdWxsc2tqZXJtbW9kdXMnLFxyXG4gICAgXCJTRUxFQ1RfVEVNUExBVEVcIjogXCJWZWxnIG1hbFwiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJTbGV0dCBtYWxcIixcclxuICAgIFwiU0FWRV9BU19URU1QTEFURVwiOiBcIkxhZ3JlIHNvbSBtYWxcIixcclxuICAgIFwiUkVTRVRfVE9fTEFTVF9TQVZFXCI6IFwiRm9ya2FzdCB1bGFncmVkZSBlbmRyaW5nZXJcIlxyXG4gIH1cclxufVxyXG4iXX0=
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL25vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsWUFBWTtJQUN2QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLHdCQUF3QixFQUFFLDZCQUE2QjtJQUN2RCxRQUFRLEVBQUUsT0FBTztJQUNqQixNQUFNLEVBQUUsU0FBUztJQUNqQixRQUFRLEVBQUUsT0FBTztJQUNqQixNQUFNLEVBQUUsT0FBTztJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGdCQUFnQixFQUFFLGlCQUFpQjtJQUNuQyxXQUFXLEVBQUUsU0FBUztJQUN0QixzQkFBc0IsRUFBRSxrREFBa0Q7SUFDMUUsMkJBQTJCLEVBQUUsOEJBQThCO0lBQzNELGtCQUFrQixFQUFFLHNCQUFzQjtJQUMxQyxRQUFRLEVBQUUsTUFBTTtJQUNoQixXQUFXLEVBQUUsV0FBVztJQUN4QixXQUFXLEVBQUUsWUFBWTtJQUN6QixXQUFXLEVBQUUsWUFBWTtJQUN6QixXQUFXLEVBQUUsYUFBYTtJQUMxQixZQUFZLEVBQUUsVUFBVTtJQUN4QixLQUFLLEVBQUUsVUFBVTtJQUNqQixRQUFRLEVBQUUsS0FBSztJQUNmLGVBQWUsRUFBRSw0REFBNEQ7SUFDN0UsZUFBZSxFQUFFLCtFQUErRTtJQUNoRyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsVUFBVSxFQUFFLFFBQVE7SUFDcEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxRQUFRLEVBQUUsT0FBTztJQUNqQixnQkFB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LE9BQU8sRUFBRSxRQUFRO1FBQ2pCLFdBQVcsRUFBRSxhQUFhO1FBQzFCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLFNBQVM7UUFDakIsYUFBYSxFQUFFLFlBQVk7UUFDM0IsWUFBWSxFQUFFLHlCQUF5QjtRQUN2QyxZQUFZLEVBQUUseUJBQXlCO1FBQ3ZDLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxjQUFjLEVBQUUseUJBQXlCO1FBQ3pDLG1CQUFtQixFQUFFLGtCQUFrQjtRQUN2QyxhQUFhLEVBQUUsa0JBQWtCO1FBQ2pDLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLGtCQUFrQixFQUFFLHlCQUF5QjtRQUM3QyxXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFlBQVksRUFBRSx3QkFBd0I7UUFDdEMsaUJBQWlCLEVBQUUsVUFBVTtRQUM3QixpQkFBaUIsRUFBRSxXQUFXO1FBQzlCLGtCQUFrQixFQUFFLGVBQWU7UUFDbkMsb0JBQW9CLEVBQUUsNEJBQTRCO0tBQ25EO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBubyA9IHtcclxuICBcIlJFU1VMVFNcIjogXCJSZXN1bHRhdGVyXCIsXHJcbiAgXCJST1dfUEVSX1BBR0VcIjogXCJSYWRlciBwZXIgc2lkZVwiLFxyXG4gIFwiSlVNX1RPX1BBR0VcIjogXCJIb3BwIHRpbCBzaWRlXCIsXHJcbiAgXCJNWV9DT01QT05FTlRcIjogXCJNaW4ga29tcG9uZW50XCIsXHJcbiAgXCJTQVZFX0JVVFRPTlwiOiBcIkxhZ3JlXCIsXHJcbiAgXCJDQU5DRUxfQlVUVE9OXCI6IFwiQXZicnl0XCIsXHJcbiAgXCJERUxFVEVfTUVTU0FHRV9DT01NRU5UXCI6IFwiRGVubmUgbWVsZGluZ2VuIGVyIHNsZXR0ZXQuXCIsXHJcbiAgXCJSRUdSRVRcIjogXCJBbmdyZVwiLFxyXG4gIFwiRURJVFwiOiBcIlJlZGlnZXJcIixcclxuICBcIkRFTEVURVwiOiBcIlNsZXR0XCIsXHJcbiAgXCJTQVZFXCI6IFwiTGFncmVcIixcclxuICBcIkNBTkNFTFwiOiBcIkF2YnJ5dFwiLFxyXG4gIFwiRURJVF9GSUxFX05BTUVcIjogXCJSZWRpZ2VyIGZpbG5hdm5cIixcclxuICBcIkZJTEVfTkFNRVwiOiBcIkZpbG5hdm5cIixcclxuICBcIlVQTE9BRF9MRUFWRV9XQVJOSU5HXCI6IFwiRmlsZW5lIGR1IGxhc3RlciBvcHAgdmlsIGthbnNramUgaWtrZSBibGkgbGFncmV0XCIsXHJcbiAgXCJTT01FX0ZJTEVTX1dFUkVfTk9UX0FEREVEXCI6IFwiTm9lbiBmaWxlciBibGUgaWtrZSBsYWd0IHRpbFwiLFxyXG4gIFwiWU9VX0NBTl9PTkxZX0FERFwiOiBcIkR1IGthbiBrdW4gbGFzdGUgb3BwXCIsXHJcbiAgXCJTRUxFQ1RcIjogXCJWZWxnXCIsXHJcbiAgXCJQUk9DRVNTRVNcIjogXCJQcm9zZXNzZXJcIixcclxuICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50ZXJcIixcclxuICBcIkRFVklBVElPTlwiOiBcIkthdGVnb3JpZXJcIixcclxuICBcIkNIRUNLTElTVFwiOiBcIlNqZWtrbGlzdGVyXCIsXHJcbiAgXCJBU1NFU1NNRU5UXCI6IFwiQW5hbHlzZXJcIixcclxuICBcIkFERFwiOiBcIkxlZ2cgdGlsXCIsXHJcbiAgXCJTRUFSQ0hcIjogXCJTw7hrXCIsXHJcbiAgXCJSRUdVTEFSX1RJVExFXCI6IFwiSHZhIMO4bnNrZXIgZHUgw6UgaW5rbHVkZXJlIGF2IGhlbmRlbGVyIGkgcmlzaWtvYW5hbHlzZW4oZSk/XCIsXHJcbiAgXCJDQVBUSU9OX1RJVExFXCI6IFwiSSDDpXJzYWtzYW5hbHlzZXIgYmxpciBhdXRvbWF0aXNrIGFsbGUgw6Vyc2FrZXIga255dHRldCB0aWwgaGVuZGVsc2VuIGxhZ3QgdGlsLlwiLFxyXG4gIFwiQ0FVU0FMX0FOQUxZWkVTXCI6IFwiVmFsZ3RlIEFuYWx5c2VyXCIsXHJcbiAgXCJGSU5JU0hFRFwiOiBcIkZlcmRpZ1wiLFxyXG4gIFwiUFJPQ0VTU19JRFwiOiBcIklEXCIsXHJcbiAgXCJET0NVTUVOVF9JRFwiOiBcIklEXCIsXHJcbiAgXCJQUk9DRVNTX0FSRUFcIjogXCJQcm9zZXNzb21yw6VkZXJcIixcclxuICBcIkZPTERFUlwiOiBcIk1hcHBlXCIsXHJcbiAgXCJERVZJQVRJT05fVFlQRVwiOiBcIlNha3N0eXBlXCIsXHJcbiAgXCJDSEVDS0xJU1RfQ0FURUdPUllcIjogXCJLYXRlZ29yaWVyXCIsXHJcbiAgXCJFVkVOVFwiOiBcIkhlbmRlbHNlXCIsXHJcbiAgXCJBUkVBX09GX0lNUEFDVFwiOiBcIktvbnNla3ZlbnNvbXLDpWRlXCIsXHJcbiAgXCJSRVNVTFRcIjogXCJSZXN1bHRhdFwiLFxyXG4gIFwiTk9UX0FDQ0VQVEVEXCI6IFwiSWtrZSBha3NlcHRlcnRcIixcclxuICBcIk1VU1RfQkVfRVZBTFVBVEVEXCI6IFwiTcOlIHZ1cmRlcmVzXCIsXHJcbiAgXCJBQ0NFUFRFRFwiOiBcIkFrc2VwdGVydFwiLFxyXG4gIFwiQVJDSElWRURcIjogXCJBcmtpdmVydFwiLFxyXG4gIFwiQ0FVU0VcIjogXCLDhXJzYWtcIixcclxuICBcIlBBR0VcIjogXCJTaWRlXCIsXHJcbiAgXCJPRlwiOiBcImF2XCIsXHJcbiAgXCJSRVBPUlRfRk9SXCI6IFwiUmFwcG9ydCBmb3JcIixcclxuICBcIlNFTEVDVEVEXCI6IFwiVmFsZ3RlXCIsXHJcbiAgXCJDSE9PU0VfQUxMXCI6IFwiVmVsZyBhbGxlXCIsXHJcbiAgXCJCUkVBRENSVU1CXCI6IFwiQnLDuGRzbXVsZXJcIixcclxuICBcIk5BVklHQVRFX1RPXCI6IFwiTmF2aWdlcmUgdGlsXCIsXHJcbiAgXCJGSUxFX1NJWkVfTElNSVRcIjogXCJGaWxzdMO4cnJlbHNlIGdyZW5zZVwiLFxyXG4gIFwiU1VQUE9SVEVEX0VYVEVOU0lPTlNcIjogXCJTdMO4dHRlZGUgdXR2aWRlbHNlclwiLFxyXG4gIFwiRklMRVNfQVJFX05PVF9TVVBQT1JURURcIjogXCJGaWwoZXIpIHN0w7h0dGVzIGlra2VcIixcclxuICBcIkZJTEVTX0VYQ0VFRF9VUExPQURfTElNSVRcIjogXCJGaWwoZXIpIG92ZXJza3JpZGVyIGdyZW5zZW4gZm9yIG9wcGxhc3Rpbmdzc3TDuHJyZWxzZVwiLFxyXG4gIFwiU0VMRUNUX0FDQ0VTU1wiOiBcIlZlbGcgYW5zdmFybGlnKGUpXCIsXHJcbiAgXCJQRVJTT05cIjogXCJQZXJzb25cIixcclxuICBcIlVTRVJfR1JPVVBcIjogXCJCcnVrZXJncnVwcGVcIixcclxuICBcIkRFUEFSVE1FTlRcIjogXCJBdmRlbGluZ1wiLFxyXG4gIFwiUk9MRVwiOiBcIlJvbGxlXCIsXHJcbiAgXCJERVBBUlRNRU5UX1VOSVRcIjogXCJBdmRlbGluZy9lbmhldFwiLFxyXG4gIFwiSU5DTFVERV9TVUJfREVQQVJUTUVOVFNcIjogXCJBdXRvbWF0aXNrIGlua2x1ZGVyIHVuZGVyYXZkZWxpbmdlclwiLFxyXG4gIFwiTkFNRVwiOiBcIk5hdm5cIixcclxuICBcIlNFQVJDSF9VU0VSX0dST1VQXCI6IFwiU8O4ayBicnVrZXJncnVwcGVcIixcclxuICBcIlNFQVJDSF9ERVBBUlRNRU5UX1VOSVRcIjogXCJTw7hrIGF2ZGVsaW5nL2VuaGV0XCIsXHJcbiAgXCJGSUxURVJcIjogXCJCcnVrIGZpbHRlclwiLFxyXG4gIFwiVFlQRVwiOiBcIlR5cGVcIixcclxuICBcIlNFQVJDSF9XSVRIX05BTUVcIjogXCJTw7hrIGZvci0gb2cgZXR0ZXJuYXZuXCIsXHJcbiAgXCJSRVNVTFRfU0VBUkNIX0ZPUlwiOiBcIlJlc3VsdGF0ZXIgc8O4ayBldHRlciBcIixcclxuICBcIlRPT0xUSVBfSU5DTFVERV9DSElMRFwiOiBcInswfSDigJMgaW5rbHVkZXJlciB7MX0gYmFyblwiLFxyXG4gIFwiRVJST1JcIjoge1xyXG4gICAgXCJTRUxFQ1RfREFOR0VSXCI6IFwiRHUgbcOlIHZlbGdlIGVuIGVsbGVyIGZsZXJlIGhlbmRlbHNlclwiXHJcbiAgfSxcclxuICBcIk1FU1NBR0VcIjoge1xyXG4gICAgXCJQUk9DRVNTRVNfSU5cIjogXCJQcm9zZXNzZXIgaVwiLFxyXG4gICAgXCJET0NVTUVOVFNfSU5cIjogXCJEb2t1bWVudGVyIGlcIlxyXG4gIH0sXHJcbiAgXCJTRUxFQ1RfSU5DTFVERV9DSElMRFwiOiBcIlZlbGcgaW5rbHVkZXJlciBiYXJuXCIsXHJcbiAgXCJCQUNLX1RPX1RSRUVcIjogXCJUaWxiYWtlIHRpbCBldCB0cmVcIixcclxuICBcIkdPVE9fU0VBQ0hfUkVTVUxUXCI6IFwiR8OlIHRpbCBzw7hrZXJlc3VsdGF0ZXRcIixcclxuICBcIlFNU0NLRURJVE9SXCI6IHtcclxuICAgIFwiSURcIjogXCJJRFwiLFxyXG4gICAgXCJJTkZPUk1BVElPTlwiOiBcIkluZm9ybWFzam9uXCIsXHJcbiAgICBcIlJFTU9WRV9NQVBcIjogXCJGamVybiBrYXJ0ZXRcIixcclxuICAgIFwiSU1BR0VfTUFQX1BST1BFUlRJRVNcIjogXCJCaWxkZSBLYXJ0IEVnZW5za2FwZXJcIixcclxuICAgIFwiSU5TRVJUX1RPT0xUSVBcIjogXCJTZXR0IGlubiBldCB2ZXJrdMO4eXRpcHNcIixcclxuICAgIFwiQ09OVEVOVFwiOiBcIklubmhvbGRcIixcclxuICAgIFwiVEVNUExBVEVcIjogXCJNYWxcIixcclxuICAgIFwiQ09OVEVOVF9URU1QTEFURVwiOiBcIklubmhvbGRzbWFsXCIsXHJcbiAgICBcIkNSRUFURV9ORVdfVEVNUExBVEVcIjogXCJMYWcgbnkgbWFsXCIsXHJcbiAgICBcIlVQREFURV9URU1QTEFURVwiOiBcIk9wcGRhdGVyIG1hbFwiLFxyXG4gICAgXCJUSVRMRVwiOiBcIlRpdHRlbFwiLFxyXG4gICAgXCJERVNDUklQVElPTlwiOiBcIkJlc2tyaXZlbHNlXCIsXHJcbiAgICBcIlNBVkVcIjogXCJMYWdyZVwiLFxyXG4gICAgXCJDSE9PU0VfVEVNUExBVEVcIjogXCJWZWxnIG1hbGVuIGR1IHZpbCDDpXBuZSBpIHJlZGlnZXJpbmdzcHJvZ3JhbW1ldFwiLFxyXG4gICAgXCJSRVBMQUNFX0NPTlRFTlRcIjogXCJCeXR0IHV0IGZha3Rpc2sgaW5uaG9sZFwiLFxyXG4gICAgXCJTQVZFRFwiOiBcIkxhZ3JldFwiLFxyXG4gICAgXCJTQVZFX0ZBSUxFRFwiOiBcIkxhZ3JpbmdlbiBtaXNseWt0ZXNcIixcclxuICAgIFwiREVMRVRFXCI6IFwiU2xldHRcIixcclxuICAgIFwiREVMRVRFRFwiOiBcIlNsZXR0ZXRcIixcclxuICAgIFwiREVMRVRFX0ZBSUxFRFwiOiBcIlNsZXR0aW5nIG1pc2x5a3Rlc1wiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJTbGV0dCBtYWxcIixcclxuICAgIFwiQ0hBTkdFX1RFTVBMQVRFXCI6IFwiRW5kcmUgbWFsXCIsXHJcbiAgICBcIkNBTkNFTFwiOiBcIkF2YnJ5dFwiLFxyXG4gICAgXCJMSU5LXCI6IFwiTGlua1wiLFxyXG4gICAgXCJMSU5LX1RZUEVcIjogXCJLb2JsaW5nc3R5cGVcIixcclxuICAgIFwiWk9PTVwiOiBcIlpvb21cIixcclxuICAgIFwiTElOS19VUkxcIjogXCJVUkxcIixcclxuICAgIFwiTElOS19BTkNIT1JfSU5fVEVYVFwiOiBcIkxlbmtlIHRpbCBhbmtlciBpIHRla3N0ZW5cIixcclxuICAgIFwiTElOS19FTUFJTFwiOiBcIkUtcG9zdFwiLFxyXG4gICAgXCJMSU5LX0FOQ0hPUl9ET0NVTUVOVFwiOiBcIkFua2VyIGkgYW5uZXQgZG9rdW1lbnRcIixcclxuICAgIFwiVEFSR0VUXCI6IFwiVGFyZ2V0XCIsXHJcbiAgICBcIlRBUlRHRVRfTkVXXCI6IFwiTnl0dCB2aW5kdSAoX2JsYW5rKVwiLFxyXG4gICAgXCJUQVJHRVRfVE9QTU9TVFwiOiBcIkRldCDDuHZlcnN0ZSB2aW5kdWV0IChfdG9wKVwiLFxyXG4gICAgXCJUQVJHRVRfU0FNRVwiOiBcIlNhbW1lIHZpbmR1IChzZWx2KVwiLFxyXG4gICAgXCJUQVJHRVRfUEFSRU5UXCI6IFwiT3Zlcm9yZG5ldCB2aW5kdSAoX3BhcmVudClcIixcclxuICAgIFwiUFJPVE9DT0xcIjogXCJQcm90b2NvbFwiLFxyXG4gICAgXCJQUk9UT0NPTF9IVFRQXCI6IFwiaHR0cDovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9IVFRQU1wiOiBcImh0dHBzOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX0ZUUFwiOiBcImZ0cDovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9ORVdcIjogXCJueWhldGVyOi8vXCIsXHJcbiAgICBcIlBST1RPQ09MX09USEVSXCI6IFwiPG90aGVyPlwiLFxyXG4gICAgXCJBRFZJU09SWV9USVRMRVwiOiBcIlLDpWRnaXZlbmRlIHRpdHRlbFwiLFxyXG4gICAgXCJIQU5EQk9PS1wiOiBcImVIYW5kYm9va1wiLFxyXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudFwiLFxyXG4gICAgXCJPS1wiOiBcIk9LXCIsXHJcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwtaW5mb3JtYXNqb25cIixcclxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiVmVsZyBldCBhbmtlclwiLFxyXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFua2VyIHZlZCBuYXZuXCIsXHJcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkUtcG9zdGluZm9ybWFzam9uXCIsXHJcbiAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJBZHJlc3NlXCIsXHJcbiAgICBcIkVNQUlMX1NVQkpFQ1RcIjogXCJFbW5lXCIsXHJcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJLcm9wcFwiLFxyXG4gICAgXCJBTkNIT1JfQVRUQUNITUVOVFwiOiBcIlZlZGxlZ2dcIixcclxuICAgIFwiQU5DSE9SX1JFTEFURURfRE9DVU1FTlRcIjogXCJCZXNsZWt0ZXQgZG9rdW1lbnRcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UX1BST0NFU1NcIjogXCJMZWdnIHRpbCBkb2t1bWVudCAvIHByb3Nlc3NcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UXCI6IFwiTGVnZyB0aWwgZG9rdW1lbnRcIixcclxuICAgIFwiQUREXCI6IFwiTGVnZyB0aWxcIixcclxuICAgIFwiUFJPU0VTU0VSXCI6IFwiUHJvc2Vzc2VyXCIsXHJcbiAgICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50ZXJcIixcclxuICAgIFwiVVBEQVRFXCI6IFwiT3BwZGF0ZXJcIixcclxuICAgIFwiRE9DVU1FTlRcIjogXCJEb2t1bWVudFwiLFxyXG4gICAgXCJDT05GSVJNXCI6IFwiQmVrcmVmdFwiLFxyXG4gICAgXCJTRUFSQ0hcIjogXCJTw7hrXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9JTlRFUlwiOiBcIlBla2VyXCIsXHJcbiAgICBcIklNQUdFX01PREVfUkVDVEFOR0xFXCI6IFwiUmVrdGFuZ2VsXCIsXHJcbiAgICBcIklNQUdFX01PREVfQ0lSQ0xFXCI6IFwiU2lya2VsXCIsXHJcbiAgICBcIklNQUdFX01PREVfUE9MWUdPTlwiOiBcIlBvbHlnb25cIixcclxuICAgIFwiSU1BR0VfTU9ERV9SRU1PVkVcIjogXCJUYSBib3J0XCIsXHJcbiAgICBcIlBPTFlHT05fRFJBV1wiOiBcIkJydWsgU0tJRlQgKyBrbGlrayBmb3IgZGV0IHNpc3RlIGtvbnRyb2xscHVua3RldFwiLFxyXG4gICAgXCJSRUNUQU5HTEVfRFJBV1wiOiBcIkhvbGQgbmVkZSBTS0lGVCBmb3Iga3ZhZHJhdGlzayBtb2R1c1wiLFxyXG4gICAgXCJTUVVBUkVfRFJBV1wiOiBcIlNsaXBwIFNLSUZUIGZvciByZWt0YW5nZWxtb2R1c1wiLFxyXG4gICAgXCJJTlZBTElEX1VSTFwiOiBcIlVneWxkaWcgVVJMXCIsXHJcbiAgICBcIlJFUVVJUkVEX1VSTFwiOiBcIlVSTCBlciBww6VrcmV2ZFwiLFxyXG4gICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICBcIkRPQ1VNRU5UX1BST0NFU1NcIjogXCJEb2t1bWVudCAvIFByb3Nlc3NcIixcclxuICAgIFwiVVBMT0FEX0ZJTEVfTk9UX1ZBTElEX0ZPUk1BVFwiOiBcIkZpbGVuIHNvbSBlciBsYXN0ZXQgb3BwIGVyIHVneWxkaWcgZm9ybWF0LiBTdMO4dHRlZGUgZmlsZm9ybWF0ZXI6IHswfVwiLFxyXG4gICAgXCJVUExPQURfRklMRV9PVkVSU0laRVwiOiBcIkZpbGVuIHNvbSBlciBsYXN0ZXQgb3BwIGVyIG92ZXIgZ3JlbnNlc3TDuHJyZWxzZW4uIEdyZW5zZXN0w7hycmVsc2VuIGVyIHswfU1CXCIsXHJcbiAgICBcIlVQTE9BRF9GSUxFX0ZBSUxFRFwiOiBcIkt1bm5lIGlra2UgbGFzdGUgb3BwIGZpbGVuLlwiLFxyXG4gICAgXCJBU1NJU1RJVkVfVEVYVFwiOiBcIkhqZWxwZW5kZSB0ZWtzdFwiLFxyXG4gICAgXCJXT1JEU1wiOiBcIk9yZFwiLFxyXG4gICAgXCJDSEFSQUNURVJTXCI6IFwiVGVnblwiLFxyXG4gICAgXCJTRUxFQ1RfVklERU9fRlJPTV9BUkNISVZFXCI6IFwiVmVsZyB2aWRlbyBmcmEgYXJraXZldFwiXHJcbiAgfSxcclxuICBcIkFCT1VUXCI6IHtcclxuICAgIFwiQUJPVVRfQ0tFRElUT1JcIjogXCJPbSBDS0VkaXRvclwiLFxyXG4gICAgXCJDS0VESVRPUjVfVkVSU0lPTlwiOiBcIkNLRWRpdG9yIDUgdmVyc2pvblwiLFxyXG4gICAgXCJGT1JfTElDRU5TSU5HX0lORk9STUFUSU9OX1BMRUFTRV9WSVNJVF9PVVJfV0VCU0lURVwiOiBcIkZvciBsaXNlbnNpZXJpbmdzaW5mb3JtYXNqb24sIGJlc8O4ayB2w6VyIG5ldHRzaWRlXCIsXHJcbiAgICBcIkFMTF9SSUdIVFNfUkVTRVJWRURcIjogXCJBbGxlIHJldHRpZ2hldGVyIGVyIGZvcmJlaG9sZHRcIixcclxuICAgIFwiQ0hFQ0tcIjogXCJTZVwiLFxyXG4gICAgXCJGT1JfSEVMUFwiOiBcImZvciBoamVscFwiLFxyXG4gICAgXCJDS0VESVRPUl9VU0VSU19HVUlERVwiOiBcImJydWtlcmjDpW5kYm9rZW4gZm9yIENLRWRpdG9yXCIsXHJcbiAgICBcIkNPUFlSSUdIVFwiOiBcIk9wcGhhdnNyZXR0IMKpXCJcclxuICB9LFxyXG4gIFwiQlBNTlwiOiB7XHJcbiAgICBcIkRFRkFVTFRcIjogXCJTdGFuZGFyZFwiLFxyXG4gICAgXCJUWVBFXCI6IFwiVHlwZVwiLFxyXG4gICAgXCJOQU1FXCI6IFwiTmF2blwiLFxyXG4gICAgXCJFWENMVVNJVkVcIjogXCJFa3NrbHVzaXZcIixcclxuICAgIFwiSU5DTFVTSVZFXCI6IFwiSW5rbHVzaXZlXCIsXHJcbiAgICBcIlBBUkFMTEVMXCI6IFwiUGFyYWxsZWxcIixcclxuICAgIFwiQVBQRUFSQU5DRVwiOiBcIlV0c2VlbmRlXCIsXHJcbiAgICBcIkJPRFlfQ09MT1JcIjogXCJGYXJnZVwiLFxyXG4gICAgXCJURVhUX0FMSUdOTUVOVFwiOiBcIlRla3N0cGxhc3NlcmluZ1wiLFxyXG4gICAgXCJMRUZUXCI6IFwiVmVuc3RyZVwiLFxyXG4gICAgXCJDRU5URVJcIjogXCJNaWR0anVzdGVyXCIsXHJcbiAgICBcIlJJR0hUXCI6IFwiSMO4eXJlXCIsXHJcbiAgICBcIkZPTlRfRkFNSUxZXCI6IFwiRm9udGZhbWlsaWVcIixcclxuICAgIFwiRk9OVF9TSVpFXCI6IFwiU2tyaWZ0c3TDuHJyZWxzZVwiLFxyXG4gICAgXCJDT05URU5UXCI6IFwiSW5uaG9sZFwiLFxyXG4gICAgXCJJQ09OXCI6IFwiSWtvblwiLFxyXG4gICAgXCJOT05FXCI6IFwiTm9uZVwiLFxyXG4gICAgXCJNRVNTQUdFXCI6IFwiTWVzc2FnZVwiLFxyXG4gICAgXCJVU0VSXCI6IFwiVXNlclwiLFxyXG4gICAgXCJUQVNLXCI6IFwiVGFza1wiLFxyXG4gICAgXCJUUkFOU0FDVElPTlwiOiBcIlRyYW5zYWN0aW9uXCIsXHJcbiAgICBcIkVWRU5UX1NVQl9QUk9DRVNTXCI6IFwiZXZlbnQtc3ViLXByb2Nlc3NcIixcclxuICAgIFwiQ0FMTF9BQ1RJVklUWVwiOiBcImNhbGwtYWN0aXZpdHlcIixcclxuICAgIFwiU1VCX1BST0NFU1NcIjogXCJTdWItcHJvY2Vzc1wiLFxyXG4gICAgXCJTVEFSVFwiOiBcIlN0YXJ0XCIsXHJcbiAgICBcIkVORFwiOiBcIkVuZFwiLFxyXG4gICAgXCJJTlRFUk1FRElBVEVcIjogXCJJbnRlcm1lZGlhdGVcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkNBTkNFTF9PVUxJTkVEXCI6IFwiQ2FuY2VsIG91bGluZWRcIixcclxuICAgIFwiQ0FOQ0VMX0ZJTExFRFwiOiBcIkNhbmNlbCBmaWxsZWRcIixcclxuICAgIFwiQ09NUEVOU0FUSU9OX09VTElORURcIjogXCJDb21wZW5zYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJDT01QRU5TQVRJT05fRklMTEVEXCI6IFwiQ29tcGVuc2F0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJDT05ESVRJT05BTFwiOiBcIkNvbmRpdGlvbmFsXCIsXHJcbiAgICBcIkVSUk9SX09VTElORURcIjogXCJFcnJvciBvdWxpbmVkXCIsXHJcbiAgICBcIkVSUk9SX0ZJTExFRFwiOiBcIkVycm9yIGZpbGxlZFwiLFxyXG4gICAgXCJFU0NBTEFUSU9OX09VTElORURcIjogXCJFc2NhbGF0aW9uIG91bGluZWRcIixcclxuICAgIFwiRVNDQUxBVElPTl9GSUxMRURcIjogXCJFc2NhbGF0aW9uIGZpbGxlZFwiLFxyXG4gICAgXCJMSU5LX09VTElORURcIjogXCJMaW5rIG91bGluZWRcIixcclxuICAgIFwiTElOS19GSUxMRURcIjogXCJMaW5rIGZpbGxlZFwiLFxyXG4gICAgXCJNRVNTQUdFX09VTElORURcIjogXCJNZXNzYWdlIG91bGluZWRcIixcclxuICAgIFwiTUVTU0FHRV9GSUxMRURcIjogXCJNZXNzYWdlIGZpbGxlZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9PVUxJTkVEXCI6IFwiTXVsdGlwbGUgb3VsaW5lZFwiLFxyXG4gICAgXCJNVUxUSVBMRV9GSUxMRURcIjogXCJNdWx0aXBsZSBmaWxsZWRcIixcclxuICAgIFwiUEFSQUxMRUxfTVVMVElQTEVcIjogXCJQYXJhbGxlbCBtdWx0aXBsZVwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9PVUxJTkVEXCI6IFwiVGVybWluYXRpb24gb3VsaW5lZFwiLFxyXG4gICAgXCJURVJNSU5BVElPTl9GSUxMRURcIjogXCJUZXJtaW5hdGlvbiBmaWxsZWRcIixcclxuICAgIFwiVElNRVJcIjogXCJUaW1lclwiLFxyXG4gICAgXCJTSUdOQUxfT1VMSU5FRFwiOiBcIlNpZ25hbCBvdWxpbmVkXCIsXHJcbiAgICBcIlNJR05BTF9GSUxMRURcIjogXCJTaWduYWwgZmlsbGVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX09VTElORURcIjogXCJQYXJhbGxlbCBvdWxpbmVkXCIsXHJcbiAgICBcIlBBUkFMTEVMX0ZJTExFRFwiOiBcIlBhcmFsbGVsIGZpbGxlZFwiLFxyXG4gICAgXCJTVUJfVFlQRVwiOiBcIlN1YnR5cGVcIixcclxuICAgIFwiVFJBTlNQQVJFTkNZXCI6IFwiVHJhbnNwYXJlbmN5XCIsXHJcbiAgICBcIkxBQkVMXCI6IFwiTGFiZWxcIixcclxuICAgIFwiVEVYVFwiOiBcIlRla3N0XCIsXHJcbiAgICBcIlBPU0lUSU9OXCI6IFwiUGxhc3NlcmluZ1wiLFxyXG4gICAgXCJMQUJFTFNcIjogXCJMYWJlbHNcIixcclxuICAgIFwiTk9STUFMXCI6IFwiTm9ybWFsXCIsXHJcbiAgICBcIkFTU09DSUFUSU9OXCI6IFwiQXNzb2NpYXRpb25cIixcclxuICAgIFwiQ09OVkVSU0FUSU9OXCI6IFwiQ29udmVyc2F0aW9uXCIsXHJcbiAgICBcIlBBUlRJQ1BBTlRTXCI6IFwiUGFydGljcGFudHNcIixcclxuICAgIFwiSU5JVElBVElOR19QQVJUSUNJUEFOVFwiOiBcIkluaXRpYXRpbmcgUGFydGljaXBhbnRcIixcclxuICAgIFwiUFJJTUFSWV9DT0xPUlwiOiBcIkhvdmVkZmFyZ2VcIixcclxuICAgIFwiU0VDT05EQVJZX0NPTE9SXCI6IFwiU2VrdW5kw6ZyZmFyZ2VcIixcclxuICAgIFwiQ0FMTC1DT05WRVJTQVRJT05cIjogXCJDYWxsLWNvbnZlcnNhdGlvblwiLFxyXG4gICAgXCJBRERfTEFORVNcIjogXCJMZWdnIHRpbCBiYW5lclwiLFxyXG4gICAgXCJQRVJDRU5UQUdFXCI6IFwiUHJvc2VudFwiLFxyXG4gICAgXCJBRERfU1VCTEFORVNcIjogXCJMZWdnIHRpbCBkZWxiYW5lXCIsXHJcbiAgICBcIkhFQURFUl9DT0xPUlwiOiBcIkhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJMQU5FX0JPRFlfQ09MT1JcIjogXCJMYW5lIEJvZHkgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfQ09MT1JcIjogXCJMYW5lIEhlYWRlciBDb2xvclwiLFxyXG4gICAgXCJPUEVOX0FfUFJJTlRfRElBTE9HXCI6IFwiw4VwbmUgZW4gdXRza3JpZnRzZGlhbG9nXCIsXHJcbiAgICBcIk9QRU5fQVNfSlNPTlwiOiBcIsOFcG5lIHNvbSBKU09OXCIsXHJcbiAgICBcIlpPT01fSU5cIjogXCJab29tIGlublwiLFxyXG4gICAgXCJaT09NX09VVFwiOiBcIlpvb20gdXRcIixcclxuICAgIFwiWk9PTV9UT19GSVRcIjogXCJab29tIGZvciDDpSBwYXNzZVwiLFxyXG4gICAgXCJTRU5EX1RPX0ZST05UXCI6IFwiU2VuZCB0aWwgZnJvbnRcIixcclxuICAgIFwiQlJJTkdfT0JKRUNUX1RPX0ZST05UXCI6IFwiRmx5dHQgb2JqZWt0ZXQgZnJlbSB0aWwgZnJvbnRcIixcclxuICAgIFwiU0VORF9UT19CQUNLXCI6IFwiU2VuZCBiYWtlcnN0XCIsXHJcbiAgICBcIkJSSU5HX09CSkVDVF9UT19CQUNLXCI6IFwiRmx5dHQgb2JqZWt0ZXQgYmFrZXJzdFwiLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiBcIlTDuG1cIixcclxuICAgIFwiVU5ET1wiOiBcIkFuZ3JlXCIsXHJcbiAgICBcIlJFRE9cIjogXCJHamVudGFcIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFXCI6IFwiVmVsZyBtYWxcIixcclxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiU2xldHQgbWFsXCIsXHJcbiAgICBcIlNBVkVfQVNfVEVNUExBVEVcIjogXCJMYWdyZSBzb20gbWFsXCIsXHJcbiAgICBcIlJFU0VUX1RPX0xBU1RfU0FWRVwiOiBcIkZvcmthc3QgdWxhZ3JlZGUgZW5kcmluZ2VyXCIsXHJcbiAgICBcIkdSSURfU0laRVwiOiBcIkdyaWQgc3RyLlwiLFxyXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6IFwiRW5kcmUgZ3JpZCBzdHIuXCIsXHJcbiAgICBcIlNOQVBMSU5FU1wiOiBcIkhqZWxwZWxpbmplcjpcIixcclxuICAgIFwiRU5BQkxFX0RJU0FCTEVfU05BUExJTkVTXCI6IFwiQWt0aXZlcmUvRGVha3RpdmVyZSBoamVscGVsaW5qZXJcIixcclxuICAgIFwiTElORV9DT0xPUlwiOiBcIkxpbmplIEZhcmdlXCIsXHJcbiAgICBcIkJPRFlfTElORV9DT0xPUlwiOiBcIktyb3BwcyBMaW5qZSBGYXJnZVwiLFxyXG4gICAgXCJUWVBFX0NPTE9SXCI6IFwiVHlwZSBGYXJnZVwiLFxyXG4gICAgXCJNQVJLRVJcIjogXCJNYXJrw7hyZXJcIixcclxuICAgIFwiTUFSS0VSX0NPTE9SXCI6IFwiTWFya8O4cmVyIEZhcmdlXCIsXHJcbiAgICBcIlRPUF9DT0xPUlwiOiBcIlRvcHAgRmFyZ2VcIixcclxuICAgIFwiVE9QX0xJTkVfQ09MT1JcIjogXCJUb3BwIExpbmplIEZhcmdlXCIsXHJcbiAgICBcIkNPTExFQ1RJT05cIjogXCJTYW1saW5nXCIsXHJcbiAgICBcIkNPTExFQ1RJT05fQ09MT1JcIjogXCJTYW1saW5nIEZhcmdlXCIsXHJcbiAgICBcIlNJWkVcIjogXCJTdHIuXCIsXHJcbiAgICBcIkhFQURFUl9TSVpFXCI6IFwiT3ZlcnNrcmlmdHNzdHIuXCIsXHJcbiAgICBcIkhFQURFUlwiOiBcIk92ZXJza3JpZnRcIixcclxuICAgIFwiSEVBREVSX1NUUk9LRV9DT0xPUlwiOiBcIkhlYWRlciBzdHJva2UgY29sb3JcIixcclxuICAgIFwiSEVBREVSX0xBQkVMX0NPTE9SXCI6IFwiSGVhZGVyIGxhYmVsIGNvbG9yXCIsXHJcbiAgICBcIkxBTkVfU1RST0tFX0NPTE9SXCI6IFwiTGFuZSBTdHJva2UgQ29sb3JcIixcclxuICAgIFwiTEFORV9IRUFERVJfU1RST0tFXCI6IFwiTGFuZSBIZWFkZXIgU3Ryb2tlXCIsXHJcbiAgICBcIkxBTkVfTEFCRUxfQ09MT1JcIjogXCJMYW5lIExhYmVsIENvbG9yXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9IRUFERVJfRklMTFwiOiBcIk1pbGVzdG9uZSBIZWFkZXIgRmlsbFwiLFxyXG4gICAgXCJNSUxFU1RPTkVfU1RST0tFXCI6IFwiTWlsZXN0b25lIFN0cm9rZVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfTEFCRUxfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGFiZWwgQ29sb3JcIixcclxuICAgIFwiTUlMRVNUT05FX0xJTkVfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGluZSBDb2xvclwiLFxyXG4gICAgXCJIRUFERVJfQUxJR05NRU5UXCI6IFwiSGVhZGVyIEFsaWdubWVudFwiLFxyXG4gICAgXCJIRUFERVJfRk9OVF9GQU1JTFlcIjogXCJIZWFkZXIgRm9udCBmYW1pbHlcIixcclxuICAgIFwiSEVBREVSX0ZPTlRfU0laRVwiOiBcIkhlYWRlciBGb250IHNpemVcIixcclxuICAgIFwiTEFORV9BTElHTk1FTlRcIjogXCJMYW5lIEFsaWdubWVudFwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfRkFNSUxZXCI6IFwiTGFuZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJMQU5FX0ZPTlRfU0laRVwiOiBcIkxhbmUgRm9udCBzaXplXCIsXHJcbiAgICBcIk1JTEVTVE9ORV9BTElHTk1FTlRcIjogXCJNaWxlc3RvbmUgQWxpZ25tZW50XCIsXHJcbiAgICBcIk1JTEVTVE9ORV9GT05UX0ZBTUlMWVwiOiBcIk1pbGVzdG9uZSBGb250IGZhbWlseVwiLFxyXG4gICAgXCJNSUxFU1RPTkVfRk9OVF9TSVpFXCI6IFwiTWlsZXN0b25lIEZvbnQgc2l6ZVwiLFxyXG4gICAgXCJURVhUX0NPTE9SXCI6IFwiVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9IRUFERVJfQ09MT1JcIjogXCJIZWFkZXIgVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9CQUNLR1JPVU5EX0NPTE9SXCI6IFwiQmFrZ3J1bm4gVGVrc3QgRmFyZ2VcIixcclxuICAgIFwiVEVYVF9JTlNJREVfU0hBUEVcIjogXCJWaXMgdGVrc3RlbiBpbm5pIGZpZ3VyXCIsXHJcbiAgICBcIlRFTVBMQVRFX05BTUVcIjogXCJNYWxuYXZuXCIsXHJcbiAgICBcIlRFTVBMQVRFX0lORk9cIjogXCJWZW5ubGlnc3Qgc2tyaXYgaW5uIG1hbG5hdm5cIixcclxuICAgIFwiU0VMRUNUX1RFTVBMQVRFX0lORk9STUFUSU9OXCI6IFwiRHUgbcOlIHZlbGdlIGVuIG1hbGVuIGbDuHIgZHUgdXRmw7hyZXIgZGVubmUgaGFuZGxpbmdlbi5cIixcclxuICAgIFwiQ09OTkVDVElPTlwiOiBcIkZvcmJpbmRlbHNlXCIsXHJcbiAgICBcIlBST1BFUlRJRVNcIjogXCJFZ2Vuc2thcGVyXCIsXHJcbiAgICBcIkJVU0lORVNTX1BST0NFU1NfTU9ERUxfQU5EX05PVEFUSU9OXCI6IFwiRm9ycmV0bmluZ3Nwcm9zZXNzbW9kZWxsIG9nIG5vdGFzam9uXCIsXHJcbiAgICBcIkNPTk5FQ1RFRF9BVFRBQ0hNRU5UXCI6IFwiVGlsa29ibGV0IHZlZGxlZ2dcIixcclxuICAgIFwiQ09OTkVDVEVEX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJLb2JsZXQgZG9rdW1lbnRldCAvIHByb3Nlc3NlblwiLFxyXG4gICAgXCJERUxFVEVfQVRUQUNITUVOVFwiOiBcIlNsZXR0IHZlZGxlZ2dcIixcclxuICAgIFwiREVMRVRFX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJTbGV0dCBkb2t1bWVudGV0IC8gcHJvc2Vzc2VuXCIsXHJcbiAgICBcIkNIT09TRV9BTkNIT1JfSU5fVEVYVF9PUFRJT05BTFwiOiBcIlZlbGcgYW5rZXIgaSB0ZWtzdCAodmFsZ2ZyaXR0KVwiLFxyXG4gICAgXCJSRUxPQURfQU5DSE9SU1wiOiBcIkxhc3QgYW5rZXJlIHDDpSBueXR0XCIsXHJcbiAgICBcIlJFU0VUX1RPX09SSUdJTkFMXCI6IFwiRm9ya2FzdCBlbmRyaW5nZXJcIixcclxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogXCJBdXRvLWxheW91dCBHcmFmXCIsXHJcbiAgICBcIkZVTExTQ1JFRU5cIjogXCJGdWxsc2tqZXJtdmlzbmluZ1wiLFxyXG4gICAgXCJGTE9XQ0hBUlRcIjogXCJGbHl0c2tqZW1hXCIsXHJcbiAgICBcIkhBTkRCT09LXCI6IFwiZUjDpW5kYm9rXCIsXHJcbiAgfSxcclxuICBcIlFNU0NLRURJVE9SX01FU1NBR0VcIjoge1xyXG4gICAgXCJDT05GSVJNX0RFTEVURV9URU1QTEFURVwiOiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBtYWxlbj9cIixcclxuICAgIFwiQ09ORklSTV9DSEFOR0VfVEVNUExBVEVcIjogXCJFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBicnVrZSBkZW5uZSBtYWxlbiBww6UgcmVkYWt0w7hyZW4/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0VYSVNUSU5HX0NPTk5FQ1RJT05cIjogXCJEdSBtw6UgZmplcm5lIGRlbiBla3Npc3RlcmVuZGUgdGlsa29ibGluZ2VuIGbDuHIgZHUgdXRmw7hyZXIgZGVubmUgaGFuZGxpbmdlbi5cIixcclxuICAgIFwiQ09ORklSTV9ERUxFVEVfQVRUQUNITUVOVFwiOiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBsaW5rZW4/XCIsXHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBzbGV0dGUgZGV0dGUgZG9rdW1lbnRldCAvIHByb3Nlc3Nlbj9cIixcclxuICB9LFxyXG4gIFwiRkxPV0NIQVJUXCI6IHtcclxuICAgIFwiUkVNT1ZFX0VMRU1FTlRcIjogJ0tsaWtrIGZvciDDpSBmamVybmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJDTE9ORV9BTkRfQ09OTkVDVFwiOiAnS2xpa2sgb2cgZHJhIGZvciDDpSBrbG9uZSBvZyBrb2JsZSB0aWwgb2JqZWt0ZXQgcMOlIMOpbiBnYW5nJyxcclxuICAgIFwiQ0xPTkVcIjogJ0tsaWtrIG9nIGRyYSBmb3Igw6Uga2xvbmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJCUkVBS19BTExfQ09OTkVDVElPTlNcIjogJ0tsaWtrIGZvciDDpSBicnl0ZSBhbGxlIGZvcmJpbmRlbHNlciB0aWwgYW5kcmUgb2JqZWt0ZXInLFxyXG4gICAgXCJDT05ORUNUXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIGtvYmxlIHRpbCBvYmpla3RldCcsXHJcbiAgICBcIlJPVEFURVwiOiAnS2xpa2sgb2cgZHJhIGZvciDDpSByb3RlcmUgb2JqZWt0ZXQnLFxyXG4gICAgXCJSRU1PVkVfU0VMRUNURURfRUxFTUVOVFwiOiAnS2xpa2sgZm9yIMOlIGZqZXJuZSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJPVEFURV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIHJvdGVyZSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJFU0laRV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlrayBvZyBkcmEgZm9yIMOlIGVuZHJlIHN0w7hycmVsc2VuIHDDpSBkZSB2YWxndGUgZWxlbWVudGVuZScsXHJcbiAgICBcIlJFQ1RBTkdMRVwiOiAnUmVrdGFuZ2VsJyxcclxuICAgIFwiRUxMSVBTRVwiOiAnRWxsaXBzZScsXHJcbiAgICBcIlJFQ1RBTkdMRV9XSVRIX1BPUlRTXCI6ICdSZWt0YW5nZWwgbWVkIHBvcnRlcicsXHJcbiAgICBcIkVMTElQU0VfV0lUSF9QT1JUU1wiOiAnRWxsaXBzZSBtZWQgcG9ydGVyJyxcclxuICAgIFwiUkhPTUJVU1wiOiAnUmhvbWJ1cycsXHJcbiAgICBcIkNZTElOREVSXCI6ICdTeWxpbmRlcicsXHJcbiAgICBcIklNQUdFXCI6ICdCaWxkZScsXHJcbiAgICBcIkNBUkRcIjogJ0tvcnQnLFxyXG4gICAgXCJJQ09OXCI6ICdJa29uJyxcclxuICAgIFwiUkVDVEFOR0xFX1dJVEhfSEVBREVSXCI6ICdSZWt0YW5nZWwgbWVkIG92ZXJza3JpZnQnLFxyXG4gICAgXCJTVEFSVF9TVEFURVwiOiAnU3RhcnRzdGF0dXMnLFxyXG4gICAgXCJFTkRfU1RBVEVcIjogJ1NsdXR0aWxzdGFuZCcsXHJcbiAgICBcIlNUQVRFXCI6ICdTdGF0ZScsXHJcbiAgICBcIlBMQUNFXCI6ICdQbGFjZScsXHJcbiAgICBcIlRSQU5TSVRJT05cIjogJ092ZXJnYW5nJyxcclxuICAgIFwiRU5USVRZXCI6ICdFbnRpdHknLFxyXG4gICAgXCJXRUFLX0VOVElUWVwiOiAnU3ZhayBlbmhldCcsXHJcbiAgICBcIlJFTEFUSU9OU0hJUFwiOiAnUmVsYXRpb25zaGlwJyxcclxuICAgIFwiSURFTlRJRllJTkdfUkVMQVRJT05TSElQXCI6ICdJZGVudGlmaXNlcmVuZGUgZm9yaG9sZCcsXHJcbiAgICBcIklTQVwiOiAnSVNBJyxcclxuICAgIFwiS0VZXCI6ICdOw7hra2VsJyxcclxuICAgIFwiTk9STUFMXCI6ICdOb3JtYWwnLFxyXG4gICAgXCJNVUxUSVZBTFVFRFwiOiAnTXVsdGl2YWx1ZWQnLFxyXG4gICAgXCJERVJJVkVEXCI6ICdEZXJpdmVkJyxcclxuICAgIFwiQ0xBU1NcIjogJ0tsYXNzZScsXHJcbiAgICBcIklOVEVSRkFDRVwiOiAnR3JlbnNlc25pdHQnLFxyXG4gICAgXCJBQlNUUkFDVFwiOiAnQWJzdHJha3QnLFxyXG4gICAgXCJNRU1CRVJcIjogJ01lZGxlbScsXHJcbiAgICBcIlVORE9cIjogJ0FuZ3JlJyxcclxuICAgIFwiUkVET1wiOiAnR2rDuHIgb20nLFxyXG4gICAgXCJDTEVBUl9QQVBFUlwiOiAnVMO4bXQgcGFwaXInLFxyXG4gICAgXCJFWFBPUlRfU1ZHXCI6ICfDhXBuZSBzb20gU1ZHIGkgZW4gcG9wdXAnLFxyXG4gICAgXCJFWFBPUlRfUE5HXCI6ICfDhXBuZSBzb20gUE5HIGkgZW4gcG9wdXAnLFxyXG4gICAgXCJQUklOVFwiOiAnw4VwbmUgZW4gdXRza3JpZnRzZGlhbG9nYm9rcycsXHJcbiAgICBcIlNFTkRfVE9fRlJPTlRcIjogJ0JyaW5nIG9iamVrdCBmb3JhbicsXHJcbiAgICBcIlNFTkRfVE9fQkFDS1wiOiAnU2VuZCBvYmpla3QgdGlsIGJha3NpZGUnLFxyXG4gICAgXCJBVVRPX0xBWU9VVF9HUkFQSFwiOiAnQXV0by1sYXlvdXQgZ3JhZicsXHJcbiAgICBcIlpPT01fVE9fRklUXCI6ICdab29tIGZvciDDpSBwYXNzZScsXHJcbiAgICBcIlpPT01fT1VUXCI6ICdab29tIHV0JyxcclxuICAgIFwiWk9PTV9JTlwiOiAnWm9vbSBpbm4nLFxyXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6ICdFbmRyZSBydXRlbmV0dHN0w7hycmVsc2UnLFxyXG4gICAgXCJTTkFQTElORVNcIjogJ0FrdGl2ZXIvZGVha3RpdmVyIHNuYXBsaW5lcycsXHJcbiAgICBcIkZVTExTQ1JFRU5cIjogJ1Zla3NsZSBmdWxsc2tqZXJtbW9kdXMnLFxyXG4gICAgXCJTRUxFQ1RfVEVNUExBVEVcIjogXCJWZWxnIG1hbFwiLFxyXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJTbGV0dCBtYWxcIixcclxuICAgIFwiU0FWRV9BU19URU1QTEFURVwiOiBcIkxhZ3JlIHNvbSBtYWxcIixcclxuICAgIFwiUkVTRVRfVE9fTEFTVF9TQVZFXCI6IFwiRm9ya2FzdCB1bGFncmVkZSBlbmRyaW5nZXJcIlxyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -2,6 +2,7 @@ export class QMSCKEditorPlugin {
|
|
2
2
|
constructor() {
|
3
3
|
this.pluginObject = null;
|
4
4
|
this.itemToolbar = '';
|
5
|
+
this.simpleMode = false;
|
5
6
|
}
|
6
7
|
}
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXBsdWdpbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGx1Z2luLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUI7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUU1TQ0tFZGl0b3JQbHVnaW4ge1xyXG4gIHBsdWdpbk9iamVjdDogYW55O1xyXG4gIGl0ZW1Ub29sYmFyOiBzdHJpbmc7XHJcbiAgc2ltcGxlTW9kZT86IGJvb2xlYW47IFxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucGx1Z2luT2JqZWN0ID0gbnVsbDtcclxuICAgIHRoaXMuaXRlbVRvb2xiYXIgPSAnJztcclxuICAgIHRoaXMuc2ltcGxlTW9kZSA9IGZhbHNlOyBcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
2
|
+
import { FormControl, Validators } from '@angular/forms';
|
3
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
5
|
+
import { TranslateLibraryService } from '../../../services/translation-registry.service';
|
6
|
+
import { LinkType } from '../../common/enums/link-type.enum';
|
7
|
+
import { ProtocolType } from '../../common/enums/protocol-type.enum';
|
8
|
+
import { TargetType } from '../../common/enums/target-type.enum';
|
9
|
+
import QMSCKEditorLink from '../../common/models/qms-ckeditor-url.model';
|
10
|
+
import { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';
|
11
|
+
export class QmsCkeditorLinkSimpleComponent extends QMSCKEditorBaseComponent {
|
12
|
+
constructor(dialogRef, translate, data) {
|
13
|
+
super();
|
14
|
+
this.dialogRef = dialogRef;
|
15
|
+
this.translate = translate;
|
16
|
+
this.data = data;
|
17
|
+
this.urlFormControl = new FormControl('', [Validators.required]);
|
18
|
+
}
|
19
|
+
ngOnInit() {
|
20
|
+
this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
|
21
|
+
if (res) {
|
22
|
+
this.LANG = this.translate.getObjectLang(res);
|
23
|
+
}
|
24
|
+
});
|
25
|
+
if (this.data.edit) {
|
26
|
+
if (this.data.url) {
|
27
|
+
this.url = this.data.url;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
setLink() {
|
32
|
+
this.urlFormControl.markAsTouched();
|
33
|
+
if (this.urlFormControl.hasError('required')) {
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
const link = new QMSCKEditorLink();
|
37
|
+
link.targetId = TargetType.new;
|
38
|
+
link.url = `${LinkType.url}${ProtocolType.http}${this.url}`;
|
39
|
+
this.dialogRef.close(link);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
QmsCkeditorLinkSimpleComponent.decorators = [
|
43
|
+
{ type: Component, args: [{
|
44
|
+
selector: 'lib-qms-ckeditor-link-simple',
|
45
|
+
template: "<div id=\"qmsckeditor_link-simple\" class=\"qmsckeditor qmsckeditor__link-simple__container\">\r\n <div id=\"qmsckeditor_link-simple_header\">\r\n <span mat-icon-button class=\"qmsckeditor button__close\" [mat-dialog-close]=\"false\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div mat-dialog-content>\r\n <h2>\r\n {{LANG.QMSCKEDITOR.LINK}}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link-simple_body\" class=\"row\">\r\n <div id=\"qmsckeditor_link-simple_url\">\r\n <mat-form-field class=\"col-12\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" [formControl]=\"urlFormControl\" />\r\n <mat-error *ngIf=\"urlFormControl.hasError('required')\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link-simple_footer\">\r\n <div id=\"qmsckeditor_link-simple_action\" align=\"end\">\r\n <button qms-btn-text [mat-dialog-close]=\"false\">{{LANG.CANCEL}}</button>\r\n <button qms-btn (click)=\"setLink()\">{{LANG.SAVE}}</button>\r\n </div>\r\n </div>\r\n</div>",
|
46
|
+
styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}"]
|
47
|
+
},] }
|
48
|
+
];
|
49
|
+
QmsCkeditorLinkSimpleComponent.ctorParameters = () => [
|
50
|
+
{ type: MatDialogRef },
|
51
|
+
{ type: TranslateLibraryService },
|
52
|
+
{ type: QMSCKEditorLink, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
53
|
+
];
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItbGluay1zaW1wbGUvcW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTzdFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx3QkFBd0I7SUFLeEUsWUFDVyxTQUF1RCxFQUN0RCxTQUFrQyxFQUNWLElBQXFCO1FBQ3JELEtBQUssRUFBRSxDQUFDO1FBSEQsY0FBUyxHQUFULFNBQVMsQ0FBOEM7UUFDdEQsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDVixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQU56RCxtQkFBYyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBTy9DLENBQUM7SUFFZCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BGLElBQUksR0FBRyxFQUFFO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDaEIsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFBO2FBQzNCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDbkMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQyxPQUFPO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQTtRQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7WUF0Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLCt5Q0FBd0Q7O2FBRTNEOzs7WUFiUSxZQUFZO1lBRVosdUJBQXVCO1lBSXpCLGVBQWUsdUJBZ0JiLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL2xpbmstdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUHJvdG9jb2xUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL3Byb3RvY29sLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvdGFyZ2V0LXR5cGUuZW51bSc7XHJcbmltcG9ydCBRTVNDS0VkaXRvckxpbmsgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdXJsLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItcW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9xbXMtY2tlZGl0b3ItbGluay1zaW1wbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFtc0NrZWRpdG9yTGlua1NpbXBsZUNvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBMQU5HOiBhbnk7XHJcbiAgICB1cmxGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIHVybDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRbXNDa2VkaXRvckxpbmtTaW1wbGVDb21wb25lbnQ+LFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFFNU0NLRWRpdG9yTGlua1xyXG4gICAgKSB7IHN1cGVyKCk7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7ICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5lZGl0KSB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZGF0YS51cmwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5kYXRhLnVybFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGluaygpIHtcclxuICAgICAgICB0aGlzLnVybEZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKVxyXG4gICAgICAgIGlmICh0aGlzLnVybEZvcm1Db250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbGluayA9IG5ldyBRTVNDS0VkaXRvckxpbmsoKTtcclxuICAgICAgICBsaW5rLnRhcmdldElkID0gVGFyZ2V0VHlwZS5uZXdcclxuICAgICAgICBsaW5rLnVybCA9IGAke0xpbmtUeXBlLnVybH0ke1Byb3RvY29sVHlwZS5odHRwfSR7dGhpcy51cmx9YDtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShsaW5rKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -27,6 +27,7 @@ import { PopupData } from '../components/related/model/popup-data.model';
|
|
27
27
|
import { RelatedPopupComponent } from '../components/related/popup/related-popup.component';
|
28
28
|
import { QMSCKEditorTreeService } from './services/qms-ckeditor-tree.service';
|
29
29
|
import { QMSCKEditorFlowchartComponent } from './components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component';
|
30
|
+
import { QmsCkeditorLinkSimpleComponent } from './components/qms-ckeditor-link-simple/qms-ckeditor-link-simple.component';
|
30
31
|
export class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
|
31
32
|
/**
|
32
33
|
* Constructor
|
@@ -320,12 +321,24 @@ export class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
|
|
320
321
|
data.editorContent = this.qmsckContentInput;
|
321
322
|
data.module = this.qmsckData.module;
|
322
323
|
data.entityId = this.qmsckData.entityId;
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
324
|
+
let dialogTemplate;
|
325
|
+
if (!this.qmsckPlugin.simpleMode) {
|
326
|
+
dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {
|
327
|
+
width: '650px',
|
328
|
+
height: '660px',
|
329
|
+
data,
|
330
|
+
disableClose: true
|
331
|
+
});
|
332
|
+
}
|
333
|
+
else {
|
334
|
+
dialogTemplate = this.dialog.open(QmsCkeditorLinkSimpleComponent, {
|
335
|
+
width: '650px',
|
336
|
+
height: '200px',
|
337
|
+
data,
|
338
|
+
disableClose: true,
|
339
|
+
autoFocus: false,
|
340
|
+
});
|
341
|
+
}
|
329
342
|
dialogTemplate
|
330
343
|
.afterClosed()
|
331
344
|
.pipe(takeUntil(this.ngUnsubcribe))
|
@@ -636,4 +649,4 @@ QMSCKEditorComponent.propDecorators = {
|
|
636
649
|
qmsckContentOutput: [{ type: Output }],
|
637
650
|
onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
|
638
651
|
};
|
639
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvcW1zLWNrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0wsT0FBTyxFQUFlLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sdUJBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFHekUsT0FBTyxlQUFlLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEVBQThFLENBQUM7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LENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7d0JBQ25ELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFoRFEsU0FBUztZQUVULHVCQUF1QjtZQWtCdkIsd0JBQXdCO1lBT3hCLHNCQUFzQjtZQWpCdEIsOEJBQThCO1lBWmdHLFNBQVM7WUFBcEYsVUFBVTs7O3dCQW9EbkUsS0FBSzswQkFDTCxLQUFLO2dDQUNMLEtBQUs7eUJBQ0wsS0FBSyxTQUFDLFVBQVU7dUJBQ2hCLEtBQUssU0FBQyxVQUFVO2lDQUNoQixNQUFNO3dCQVlOLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUW1zVXBsb2FkQWRhcHRlciwgUW1zVXBsb2FkQWRhcHRlckNvbmZpZyB9IGZyb20gJy4vY29tbW9uL2NsYXNzZXMvcW1zVXBsb2FkQWRhcHRlcic7XHJcbmltcG9ydCB7IENLRWRpdG9yRXZlbnRDb25zdCB9IGZyb20gJy4vY29tbW9uL2NvbnN0YW50cy9ja2VkaXRvckV2ZW50LmNvbnN0YW50JztcclxuaW1wb3J0IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zIGZyb20gJy4vY29tbW9uL2Z1bmN0aW9ucy9jb21tb24uZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckRhdGEgfSBmcm9tICcuL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclBsdWdpbiB9IGZyb20gJy4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGx1Z2luLm1vZGVsJztcclxuaW1wb3J0IFFNU0NLRWRpdG9yTGluayBmcm9tICcuL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXVybC5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQnBtbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItYnBtbi9xbXMtY2tlZGl0b3ItYnBtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWZ1bGxzY3JlZW4vcW1zLWNrZWRpdG9yLWZ1bGxzY3JlZW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAvcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yTGlua0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItbGluay9xbXMtY2tlZGl0b3ItbGluay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckxvYWRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItbG9hZC10ZW1wbGF0ZS9xbXMtY2tlZGl0b3ItbG9hZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS9xbXMtY2tlZGl0b3ItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci10b29sdGlwL3Ftcy1ja2VkaXRvci10b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9ySW1hZ2VNYXAgfSBmcm9tICcuL21vZGVscy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlIH0gZnJvbSAnLi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUb29sdGlwIH0gZnJvbSAnLi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRvb2x0aXAubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yR2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWdsb2JhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JBYm91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItYWJvdXQvcW1zLWNrZWRpdG9yLWFib3V0LmNvbXBvbmVudCc7XHJcbi8vaW1wb3J0IHsgQ0tFZGl0b3I1IH0gZnJvbSAnQGNrZWRpdG9yL2NrZWRpdG9yNS1hbmd1bGFyL2NrZWRpdG9yJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCcG1uRGF0YSB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci1icG1uLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVsYXRlZC9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBQb3B1cERhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlbGF0ZWQvbW9kZWwvcG9wdXAtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFJlbGF0ZWRQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVHJlZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci10cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckZsb3djaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0L3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtY2tlZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtY2tlZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgUU1TQ0tFZGl0b3JGdWxsc2NyZWVuQ29tcG9uZW50LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUU1TQ0tFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUU1TQ0tFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUU1TQ0tFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZhbGlkYXRvciB7XHJcbiAgQElucHV0KCkgcW1zY2tEYXRhOiBRTVNDS0VkaXRvckRhdGE7XHJcbiAgQElucHV0KCkgcW1zY2tQbHVnaW46IFFNU0NLRWRpdG9yUGx1Z2luO1xyXG4gIEBJbnB1dCgpIHFtc2NrQ29udGVudElucHV0OiBzdHJpbmc7XHJcbiAgQElucHV0KCdkaXNhYmxlZCcpIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCdyZXF1aXJlZCcpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHFtc2NrQ29udGVudE91dHB1dDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIExBTkc6IGFueTtcclxuICBja0VkaXRvcjogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBja2VkaXRvckNvbmZpZzogYW55O1xyXG4gIGNrRWRpdG9yRXZlbnRDb25zdCA9IENLRWRpdG9yRXZlbnRDb25zdDtcclxuICBjb3VudFdvcmQ6IG51bWJlcjtcclxuICBjb3VudENoYXI6IG51bWJlcjtcclxuICBlZGl0b3JJbnN0YW5jZTogYW55O1xyXG4gIGNrVGFnbmFtZTogc3RyaW5nO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmRhdGEuZXZlbnROYW1lKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfVEVNUExBVEVfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLnRlbXBsYXRlRXZlbnRIYW5kbGluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0xPQURfVEVNUExBVEVfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLmxvYWRUZW1wbGF0ZUV2ZW50SGFuZGxpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MSU5LX1BMVUdJTl9NU0c6XHJcbiAgICAgICAgdGhpcy5saW5rRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19UT09MVElQX1BMVUdJTl9NU0c6XHJcbiAgICAgICAgdGhpcy50b29sdGlwRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19JTUFHRU1BUF9QTFVHSU5fTVNHOlxyXG4gICAgICAgIHRoaXMuaW1hZ2VNYXBFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLmJwbW5FdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0FCT1VUX0NLRURJVE9SX1BMVUdJTl9NU0c6XHJcbiAgICAgICAgdGhpcy5hYm91dENLRWRpdG9yRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlRfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLmZsb3djaGFydEV2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfVE9HR0xFX1RPT0xCQVJfTVNHOlxyXG4gICAgICAgIHRoaXMudG9nZ2xlVG9vbGJhckV2ZW50SGFuZGxpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19CUk9XU0VfVklERU9fTVNHOlxyXG4gICAgICAgIHRoaXMuYnJvd3NlVmlkZW9FdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBRTVNDS0VkaXRvckdsb2JhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyZWVTZXJ2aWNlOiBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBxbXNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQ6IFFNU0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmNrVGFnbmFtZSA9ICdkaXYnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hbWUgPSAnQ0tFZGl0b3IgY3VzdG9tIGJ1aWxkJztcclxuICAgIHRoaXMuY2tFZGl0b3IgPSB0aGlzLnFtc2NrUGx1Z2luLnBsdWdpbk9iamVjdDtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2tlZGl0b3JDb25maWcgPSBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucy5nZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24odGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcik7XHJcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0QXBpVXJsKHRoaXMucW1zY2tEYXRhLmFwaVVybCk7XHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWRNYXRodHlwZUNvbmZpZygpKSB7XHJcbiAgICAgIHRoaXMuYWRkTWF0aFR5cGVDb25maWcoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWRUaW1lc3RhbXBDb25maWcoKSkge1xyXG4gICAgICB0aGlzLmFkZFRpbWVzdGFtcENvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNFbmFibGVkVG9nZ2xlVG9vbGJhcigpKSB7XHJcbiAgICAgIHRoaXMuYWRkVG9nZ2xlVG9vbGJhckNvbmZpZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzRW5hYmxlZFdQcm9vZnJlYWRlcigpKSB7XHJcbiAgICAgIHRoaXMuYWRkV1Byb29mcmVhZGVyQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWRUT0NUb29sYmFyKCkpIHtcclxuICAgICAgdGhpcy5hZGRUb2dnbGVUT0NDb25maWcoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzRW5hYmxlZEZ1bGxTY3JlZW5Db25maWcoKSkge1xyXG4gICAgICB0aGlzLmFkZEZ1bGxTY3JlZW5Db25maWcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZWRpdG9ySW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5lZGl0b3JJbnN0YW5jZS5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogKGNvbnRlbnQ6IGFueSkgPT4gdm9pZDtcclxuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQ7XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NrLWRpc2FibGVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0VuYWJsZWRXUHJvb2ZyZWFkZXIoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gLyh3cHJvb2ZyZWFkZXIpL2dtaTtcclxuICAgIHJldHVybiAhIXRoaXMucW1zY2tEYXRhLndwcm9vZnJlYWRlclxyXG4gICAgICAmJiAhIXRoaXMucW1zY2tEYXRhLndwcm9vZnJlYWRlci5zcmNVcmxcclxuICAgICAgJiYgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyXHJcbiAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XHJcbiAgfVxyXG5cclxuICBhZGRXUHJvb2ZyZWFkZXJDb25maWcoKSB7XHJcbiAgICBjb25zdCB3cHJvb2ZyZWFkZXJDb25maWcgPSB7XHJcbiAgICAgIHdwcm9vZnJlYWRlcjoge1xyXG4gICAgICAgIC4uLnRoaXMucW1zY2tEYXRhLndwcm9vZnJlYWRlclxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKCF0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIuc2VydmljZUlkIHx8IHRoaXMucW1zY2tEYXRhLndwcm9vZnJlYWRlci5zZXJ2aWNlSWQubGVuZ3RoID09IDApIHtcclxuICAgICAgLy9GYWxsYmFjayB2YWx1ZSBvZiBzZXJ2aWNlSWQgcHJvcGVydHkgdG8gZGVtbyBzZXJ2aWNlSWRcclxuICAgICAgdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZCA9ICcxOktwa3ZRMi02S05Vai1MMVczdTItQzlqMEsxLVp2MnRZMS1DZkRPeC1XZkdSZzItcVh0Y2ktWXl5RTM0LWowOUg0Mi1iMGFDdDMtZDlhJztcclxuICAgIH1cclxuICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LCB3cHJvb2ZyZWFkZXJDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmFibGVkVG9nZ2xlVG9vbGJhcigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvKHRvZ2dsZVRvb2xiYXIpL2dtaTtcclxuICAgIHJldHVybiAhIXRoaXMucW1zY2tEYXRhLnRvZ2dsZVRvb2xiYXJcclxuICAgICAgJiYgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyXHJcbiAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XHJcbiAgfVxyXG5cclxuICBhZGRUb2dnbGVUb29sYmFyQ29uZmlnKCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50b2dnbGVUb29sYmFyLnNwbGl0KCcsJyk7XHJcbiAgICBjb25zdCB0b2dnbGVUb29sYmFyQ29uZmlnID0ge1xyXG4gICAgICB0b2dnbGVUb29sYmFyQ29uZmlnOiB7XHJcbiAgICAgICAgdG9vbGJhcjogaXRlbXNcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LCB0b2dnbGVUb29sYmFyQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIGlzRW5hYmxlZEZ1bGxTY3JlZW5Db25maWcoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gLyhxbXNGdWxsc2NyZWVuKS9nbWk7XHJcbiAgICByZXR1cm4gISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyXHJcbiAgICAgICYmICEhdGhpcy5xbXNja0RhdGEuZnVsbFNjcmVlbkNsYXNzXHJcbiAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XHJcbiAgfVxyXG5cclxuICBhZGRGdWxsU2NyZWVuQ29uZmlnKCkge1xyXG4gICAgY29uc3QgZnVsbFNjcmVlbkNvbmZpZyA9IHtcclxuICAgICAgZnVsbFNjcmVlbkNvbmZpZzoge1xyXG4gICAgICAgIGNsYXNzOiB0aGlzLnFtc2NrRGF0YS5mdWxsU2NyZWVuQ2xhc3NcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIGZ1bGxTY3JlZW5Db25maWcpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmFibGVkVE9DVG9vbGJhcigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvKHRhYmxlT2ZDb250ZW50cykvZ21pO1xyXG4gICAgcmV0dXJuICEhdGhpcy5xbXNja0RhdGEudGFibGVPZkNvbnRlbnRIZWFkaW5nc1xyXG4gICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZFRvZ2dsZVRPQ0NvbmZpZygpIHtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5xbXNja0RhdGEudGFibGVPZkNvbnRlbnRIZWFkaW5ncy5zcGxpdCgnLCcpO1xyXG4gICAgY29uc3QgdGFibGVPZkNvbnRlbnRzID0ge1xyXG4gICAgICB0YWJsZU9mQ29udGVudHM6IHtcclxuICAgICAgICBzdXBwb3J0ZWRIZWFkaW5nczogaXRlbXNcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LCB0YWJsZU9mQ29udGVudHMpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmFibGVkVGltZXN0YW1wQ29uZmlnKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC8odGltZXN0YW1wKS9nbWk7XHJcbiAgICByZXR1cm4gISF0aGlzLnFtc2NrRGF0YS50aW1lc3RhbXBGb3JtYXRcclxuICAgICAgJiYgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyXHJcbiAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XHJcbiAgfVxyXG5cclxuICBhZGRUaW1lc3RhbXBDb25maWcoKSB7XHJcbiAgICBjb25zdCB0aW1lc3RhbXBDb25maWcgPSB7XHJcbiAgICAgIHRpbWVzdGFtcENvbmZpZzoge1xyXG4gICAgICAgIGRhdGV0aW1lRm9ybWF0OiB0aGlzLnFtc2NrRGF0YS50aW1lc3RhbXBGb3JtYXRcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LCB0aW1lc3RhbXBDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmFibGVkTWF0aHR5cGVDb25maWcoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gLyhNYXRoVHlwZSl8KENoZW1UeXBlKS9nbWk7XHJcbiAgICByZXR1cm4gISF0aGlzLnFtc2NrRGF0YS5tYXRodHlwZVNlcnZpY2VVcmxcclxuICAgICAgJiYgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyXHJcbiAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XHJcbiAgfVxyXG5cclxuICBhZGRNYXRoVHlwZUNvbmZpZygpIHtcclxuICAgIGNvbnN0IG1hdGhUeXBlQ29uZmlnID0ge1xyXG4gICAgICBtYXRoVHlwZVBhcmFtZXRlcnM6IHtcclxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXJQcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgICBVUkk6IHRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybCxcclxuICAgICAgICAgIHNlcnZlcjogJ2FzcHgnXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIG1hdGhUeXBlQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZWQoeyBlZGl0b3IgfSkge1xyXG4gICAgLy90aGlzLnFtc2NrQ29udGVudElucHV0ID0gZWRpdG9yLmdldERhdGEoKTtcclxuICAgIHRoaXMucW1zY2tDb250ZW50T3V0cHV0LmVtaXQodGhpcy5xbXNja0NvbnRlbnRJbnB1dCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKHsgZWRpdG9yIH0pIHtcclxuICAgIHRoaXMucW1zY2tDb250ZW50SW5wdXQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xyXG4gICAgdGhpcy5xbXNja0NvbnRlbnRPdXRwdXQuZW1pdCh0aGlzLnFtc2NrQ29udGVudElucHV0KTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcbiAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKHRoaXMucW1zY2tDb250ZW50SW5wdXQgJiYgIXRoaXMucmVxdWlyZWQpID8gbnVsbCA6IHtcclxuICAgICAgdHlwZToge1xyXG4gICAgICAgIHZhbGlkOiBmYWxzZSxcclxuICAgICAgICBhY3R1YWw6IGMudmFsdWVcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG9uUmVhZHlcclxuICAgKi9cclxuICBwdWJsaWMgb25SZWFkeShlZGl0b3IpIHtcclxuICAgIHRoaXMuZWRpdG9ySW5zdGFuY2UgPSBlZGl0b3I7XHJcbiAgICBpZiAodGhpcy5xbXNja0NvbnRlbnRJbnB1dCkge1xyXG4gICAgICBlZGl0b3Iuc2V0RGF0YSh0aGlzLnFtc2NrQ29udGVudElucHV0KTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdEVkaXRvcihlZGl0b3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcikge1xyXG4gICAgY29uc3QgaW1hZ2VVcGxvYWRUeXBlcyA9IGVkaXRvci5jb25maWcuZ2V0KCdpbWFnZS51cGxvYWQudHlwZXMnKTtcclxuICAgIGNvbnN0IG1heEZpbGVTaXplTUIgPSB0aGlzLnFtc2NrRGF0YS5tYXhGaWxlU2l6ZU1CO1xyXG4gICAgY29uc3QgY29uZmlnOiBRbXNVcGxvYWRBZGFwdGVyQ29uZmlnID0geyBhcGlVcmw6IHRoaXMucW1zY2tEYXRhLmFwaVVybCwgTEFORzogdGhpcy5MQU5HLCBpbWFnZVVwbG9hZFR5cGVzLCBtYXhGaWxlU2l6ZU1CIH07XHJcbiAgICBlZGl0b3IucGx1Z2lucy5nZXQoXCJGaWxlUmVwb3NpdG9yeVwiKS5jcmVhdGVVcGxvYWRBZGFwdGVyID0gKGxvYWRlcikgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IFFtc1VwbG9hZEFkYXB0ZXIobG9hZGVyLCBjb25maWcpO1xyXG4gICAgfTtcclxuXHJcbiAgICBlZGl0b3IudWlcclxuICAgICAgLmdldEVkaXRhYmxlRWxlbWVudCgpXHJcbiAgICAgIC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShlZGl0b3IudWkudmlldy50b29sYmFyLmVsZW1lbnQsIGVkaXRvci51aS5nZXRFZGl0YWJsZUVsZW1lbnQoKSk7XHJcblxyXG4gICAgLy8gQXBwZWQgV29yZGNvdW50IHRvIENLZWRpdG9yXHJcbiAgICBlZGl0b3IucGx1Z2lucy5nZXQoJ1dvcmRDb3VudCcpLm9uKCd1cGRhdGUnLCAoZXZ0LCBzdGF0cykgPT4ge1xyXG4gICAgICAvLyBQcmludHMgdGhlIGN1cnJlbnQgY29udGVudCBzdGF0aXN0aWNzLlxyXG4gICAgICBjb25zdCB3b3Jkc0JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53b3JkY291bnQtY29udGVudCcpO1xyXG4gICAgICBpZiAoISF3b3Jkc0JveCkge1xyXG4gICAgICAgIHdvcmRzQm94LnRleHRDb250ZW50ID0gYCR7dGhpcy5MQU5HLlFNU0NLRURJVE9SLldPUkRTfTogJHtzdGF0cy53b3Jkc30gLyAke3RoaXMuTEFORy5RTVNDS0VESVRPUi5DSEFSQUNURVJTfTogJHtzdGF0cy5jaGFyYWN0ZXJzfWA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRlbXBsYXRlIC0gTG9hZCB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZW1wbGF0ZUV2ZW50SGFuZGxpbmcoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBRTVNDS0VkaXRvclRlbXBsYXRlID0gbmV3IFFNU0NLRWRpdG9yVGVtcGxhdGUoKTtcclxuICAgIGRhdGEuaWQgPSAwO1xyXG4gICAgZGF0YS5jb250ZW50ID0gdGhpcy5xbXNja0NvbnRlbnRJbnB1dDtcclxuICAgIGRhdGEuZWRpdCA9IGZhbHNlO1xyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yVGVtcGxhdGVDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc2NTBweCcsXHJcbiAgICAgIGhlaWdodDogJzUyMHB4JyxcclxuICAgICAgZGF0YSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIC8vIFRET1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGVtcGxhdGUgLSBMb2FkIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIGxvYWRUZW1wbGF0ZUV2ZW50SGFuZGxpbmcoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JMb2FkVGVtcGxhdGVDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc2NTBweCcsXHJcbiAgICAgIGhlaWdodDogJzcwMHB4JyxcclxuICAgICAgZGF0YTogdGhpcy5xbXNja0NvbnRlbnRJbnB1dCxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudCh0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MT0FEX1RFTVBMQVRFX1BMVUdJTl9SRVNQLCB7XHJcbiAgICAgICAgICAgIGRldGFpbDogcmVzdWx0XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuY2hvciAtIExpbmsgLSBJbWFnZSBtYXBwaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGxpbmtFdmVudEhhbmRsaW5nKGxpbmspIHtcclxuICAgIGxldCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yTGluaygpO1xyXG4gICAgZGF0YSA9IGxpbms7XHJcbiAgICBkYXRhLmVkaXRvckNvbnRlbnQgPSB0aGlzLnFtc2NrQ29udGVudElucHV0O1xyXG4gICAgZGF0YS5tb2R1bGUgPSB0aGlzLnFtc2NrRGF0YS5tb2R1bGU7XHJcbiAgICBkYXRhLmVudGl0eUlkID0gdGhpcy5xbXNja0RhdGEuZW50aXR5SWQ7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNjUwcHgnLFxyXG4gICAgICBoZWlnaHQ6ICc2NjBweCcsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfTElOS19QTFVHSU5fUkVTUCwge1xyXG4gICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb29sdGlwIG1hcHBpbmdcclxuICAgKi9cclxuICBwdWJsaWMgdG9vbHRpcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcclxuICAgIGxldCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yVG9vbHRpcCgpO1xyXG4gICAgZGF0YS50ZXh0ID0gdmFsdWUudGV4dDtcclxuICAgIGRhdGEuY29udGVudCA9IHZhbHVlLmNvbnRlbnQ7XHJcbiAgICBkYXRhLmNrRWRpdG9yID0gdGhpcy5xbXNja1BsdWdpbi5wbHVnaW5PYmplY3Q7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yVG9vbHRpcENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgaGVpZ2h0OiAnNTU1cHgnLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgZGV0YWlsOiByZXN1bHRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEltYWdlTWFwIG1hcHBpbmdcclxuICovXHJcbiAgcHVibGljIGltYWdlTWFwRXZlbnRIYW5kbGluZyh2YWx1ZSkge1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JJbWFnZU1hcCgpO1xyXG4gICAgZGF0YS5uYW1lID0gdmFsdWUubmFtZTtcclxuICAgIGRhdGEuYXJlYXMgPSB2YWx1ZS5hcmVhcztcclxuICAgIGRhdGEuaW1hZ2VVcmwgPSB2YWx1ZS5pbWFnZVVybDtcclxuICAgIGRhdGEuaW1hZ2VXaWR0aCA9IHZhbHVlLmltYWdlV2lkdGg7XHJcbiAgICBkYXRhLmltYWdlSGVpZ2h0ID0gdmFsdWUuaW1hZ2VIZWlnaHQ7XHJcbiAgICBkYXRhLm1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLm1vZHVsZTtcclxuICAgIGRhdGEuZW50aXR5SWQgPSB0aGlzLnFtc2NrRGF0YS5lbnRpdHlJZDtcclxuICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XHJcbiAgICBkYXRhLmxpbmtKYXZhU2NyaXB0TGlua3NBbGxvd2VkID0gdGhpcy5xbXNja0RhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQ7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0lNQUdFTUFQX1BMVUdJTl9SRVNQLCB7XHJcbiAgICAgICAgICAgIGRldGFpbDogcmVzdWx0XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBCdXNpbmVzcyBQcm9jZXNzIE1vZGVsIGFuZCBOb3RhdGlvblxyXG4gICovXHJcbiAgcHVibGljIGJwbW5FdmVudEhhbmRsaW5nKGlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yQnBtbkRhdGEoKTtcclxuICAgIGRhdGEuaWQgPSBpZDtcclxuICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xyXG4gICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xyXG4gICAgZGF0YS5lZGl0b3JDb250ZW50ID0gdGhpcy5xbXNja0NvbnRlbnRJbnB1dDtcclxuICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckJwbW5Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc4OXZ3JyxcclxuICAgICAgbWF4V2lkdGg6ICcxMDB2dycsXHJcbiAgICAgIGhlaWdodDogJzcwMHB4JyxcclxuICAgICAgbWF4SGVpZ2h0OiAnMTAwdncnLFxyXG4gICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgZGV0YWlsOiByZXN1bHRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKlxyXG4gICBBYm91dCBDS0VkaXRvclxyXG4gKi9cclxuICBwdWJsaWMgYWJvdXRDS0VkaXRvckV2ZW50SGFuZGxpbmcodmVyc2lvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JBYm91dENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzUwMHB4JyxcclxuICAgICAgZGF0YTogdmVyc2lvbixcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVG9vbGJhciB0b2dnbGVcclxuICAqL1xyXG4gIHB1YmxpYyB0b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpIHtcclxuICAgIGNvbnN0IHFtc2NrZWRpdG9yID0gd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxbXNja2VkaXRvcicpO1xyXG4gICAgY29uc3QgdG9nZ2xlQXR0cmlidXRlID0gJ2lzVG9nZ2xlVG9vbGJhcic7XHJcbiAgICBjb25zdCBja2VkaXRvclRhZyA9ICdja2VkaXRvcic7XHJcblxyXG4gICAgaWYgKHFtc2NrZWRpdG9yKSB7XHJcbiAgICAgIGNvbnN0IGlzVG9nZ2xlVG9vbGJhciA9IHFtc2NrZWRpdG9yLmdldEF0dHJpYnV0ZSh0b2dnbGVBdHRyaWJ1dGUpID09ICd0cnVlJztcclxuICAgICAgaWYgKGlzVG9nZ2xlVG9vbGJhcikge1xyXG4gICAgICAgIHRoaXMuY2tlZGl0b3JDb25maWcgPSBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucy5nZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24odGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcik7XHJcbiAgICAgICAgcW1zY2tlZGl0b3Iuc2V0QXR0cmlidXRlKHRvZ2dsZUF0dHJpYnV0ZSwgJ2ZhbHNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ja2VkaXRvckNvbmZpZyA9IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zLmdldENLRWRpdG9yQ29uZmlndXJhdGlvbih0aGlzLnFtc2NrRGF0YS50b2dnbGVUb29sYmFyKTtcclxuICAgICAgICBxbXNja2VkaXRvci5zZXRBdHRyaWJ1dGUodG9nZ2xlQXR0cmlidXRlLCAndHJ1ZScpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9uQ2hhbmdlZCA9IHRoaXMub25DaGFuZ2VkLmJpbmQodGhpcyk7XHJcbiAgICAgIGNvbnN0IG9uQmx1ciA9IHRoaXMub25CbHVyLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lZGl0b3JJbnN0YW5jZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRvckluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLlxyXG4gICAgICAvL1RyYWNraW5nIHN0YXR1cyBhbmQgcHJvZ3Jlc3Mgb2YgdGhlIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzczODNcclxuICAgICAgY29uc3Qgcm9vdCA9IHdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNrZWRpdG9yVGFnKTtcclxuICAgICAgaWYgKCEhcm9vdCkge1xyXG4gICAgICAgIGxldCBlZGl0b3JFbGVtZW50ID0gbnVsbDtcclxuICAgICAgICBpZiAocm9vdC5jaGlsZEVsZW1lbnRDb3VudCA+IDApIHtcclxuICAgICAgICAgIGVkaXRvckVsZW1lbnQgPSBBcnJheS5mcm9tKHJvb3QuY2hpbGRyZW4pLmZpbmQoaSA9PiBpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5ja1RhZ25hbWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVkaXRvckVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNrVGFnbmFtZSk7XHJcbiAgICAgICAgICBlZGl0b3JFbGVtZW50LnN0eWxlID0gJ2Rpc3BsYXk6IG5vbmU7JztcclxuICAgICAgICAgIHJvb3QuYXBwZW5kQ2hpbGQoZWRpdG9yRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNrRWRpdG9yLmNyZWF0ZShlZGl0b3JFbGVtZW50LCB0aGlzLmNrZWRpdG9yQ29uZmlnKS50aGVuKGVkaXRvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmluaXRFZGl0b3IoZWRpdG9yKTtcclxuICAgICAgICAgIHRoaXMuZWRpdG9ySW5zdGFuY2UgPSBlZGl0b3I7XHJcblxyXG4gICAgICAgICAgLy9EZWxldGUgY2FjaGUgY29udGVudFxyXG4gICAgICAgICAgZWRpdG9yRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgICAvL3NldHVwIGVkaXRvciBldmVudHNcclxuICAgICAgICAgIGNvbnN0IG1vZGVsRG9jdW1lbnQgPSBlZGl0b3IubW9kZWwuZG9jdW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCB2aWV3RG9jdW1lbnQgPSBlZGl0b3IuZWRpdGluZy52aWV3LmRvY3VtZW50O1xyXG4gICAgICAgICAgbW9kZWxEb2N1bWVudC5vbignY2hhbmdlOmRhdGEnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlZCh7IGVkaXRvciB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHZpZXdEb2N1bWVudC5vbignYmx1cicsICgpID0+IHtcclxuICAgICAgICAgICAgb25CbHVyKHsgZWRpdG9yIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBGbG93Y2hhcnRcclxuICovXHJcbiAgcHVibGljIGZsb3djaGFydEV2ZW50SGFuZGxpbmcoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yRmxvd2NoYXJ0Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnODl2dycsXHJcbiAgICAgIG1heFdpZHRoOiAnMTAwdncnLFxyXG4gICAgICBoZWlnaHQ6ICc3MjVweCcsXHJcbiAgICAgIG1heEhlaWdodDogJzEwMHZ3JyxcclxuICAgICAgZGF0YTogaWQsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudCh0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlRfUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnJvd3NlIFZpZGVvXHJcbiAgICovXHJcbiAgcHVibGljIGJyb3dzZVZpZGVvRXZlbnRIYW5kbGluZyh2YWx1ZSkge1xyXG4gICAgdGhpcy50cmVlU2VydmljZVxyXG4gICAgICAuZ2V0VXBsb2FkVmlkZW9MaXN0KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCB2aWRlb3MgPSByZXNwb25zZSB8fCBbXTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICBhbGxvd1NlbGVjdEZvbGRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhcmVhT2ZDdXJyZW50UHJvY2VzczogJycsXHJcbiAgICAgICAgICBzaG93Q2hlY2tCb3g6IHRydWUsXHJcbiAgICAgICAgICBhbGxvd011bHRpcGxlQ2hlY2s6IHZhbHVlLmFsbG93TXVsdGlwbGVGaWxlcyxcclxuICAgICAgICAgIG9ubHlDaGVja0JveEZvckNoaWxkOiB0cnVlLFxyXG4gICAgICAgICAgbW9kdWxlSWQ6IERhdGFUeXBlLmRvY3VtZW50LFxyXG4gICAgICAgICAgb3Blbkljb246ICdmb2xkZXJfb3BlbicsXHJcbiAgICAgICAgICBvcGVuSWNvbkNvbG9yOiAnIzE5NTRBOScsXHJcbiAgICAgICAgICBjbG9zZUljb246ICdmb2xkZXJfZmlsbGVkJyxcclxuICAgICAgICAgIGNsb3NlSWNvbkNvbG9yOiAnIzRhY2FmZicsXHJcbiAgICAgICAgICBpdGVtSWNvbjogJ2luc2VydF9kcml2ZV9maWxlJyxcclxuICAgICAgICAgIGl0ZW1JY29uUGF0aDogJycsXHJcbiAgICAgICAgICBpdGVtSWNvbkJhc2U2NDogJycsXHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3RlZE5vZGU6IHRydWUsXHJcbiAgICAgICAgICBleHBhbmRBbGw6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IFBvcHVwRGF0YSA9IG5ldyBQb3B1cERhdGEoKTtcclxuICAgICAgICBkYXRhLm1vZHVsZUlkID0gMjtcclxuICAgICAgICBkYXRhLm1vZHVsZU5hbWUgPSB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0VMRUNUX1ZJREVPX0ZST01fQVJDSElWRTtcclxuICAgICAgICBkYXRhLnRyZWVEYXRhMSA9IHZpZGVvcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJvb3RJZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICByb290TmFtZTogaXRlbS5yb290TmFtZSxcclxuICAgICAgICAgICAgc3ViTmFtZTogaXRlbS5zdWJOYW1lLFxyXG4gICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXHJcbiAgICAgICAgICAgIGNoaWxkTmFtZTogaXRlbS5jaGlsZE5hbWUsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBpdGVtLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkLFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTogaXRlbS5jb250ZW50VHlwZSxcclxuICAgICAgICAgICAgdXJsOiBpdGVtLnVybFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBkYXRhLnRyZWVEYXRhMiA9IFtdO1xyXG4gICAgICAgIGRhdGEudHJlZUNvbmZpZzEgPSBjb25maWc7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihSZWxhdGVkUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnNDUwcHgnLFxyXG4gICAgICAgICAgbWF4V2lkdGg6ICc4MDBweCcsXHJcbiAgICAgICAgICBtaW5IZWlnaHQ6ICc2MjBweCcsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgcGFuZWxDbGFzczogJ3Ftc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWFyY2hCb3ggPSB3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnFtc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCAjcW1zbGliX3JlbGF0ZWRfcG9wdXBfc2VhcmNoJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoQm94KSB7XHJcbiAgICAgICAgICAgIHNlYXJjaEJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMCk7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZlxyXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gcmVzdWx0LnJlZHVjZSgocmVzdWx0LCBpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaXRlbS5pZC50b1N0cmluZygpXSA9IGl0ZW0uaWQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgICBjb25zdCB1cmxzID0gdmlkZW9zLmZpbHRlcihpID0+IGkuY2hpbGRJZCAmJiAhIWlkc1tpLmNoaWxkSWQudG9TdHJpbmcoKV0pLm1hcChpID0+IGkudXJsKTtcclxuICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlJPV1NFX1ZJREVPX1JFU1AsIHsgZGV0YWlsOiB7IHVybHM6IHVybHMgfSB9KTtcclxuICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
652
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvcW1zLWNrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0wsT0FBTyxFQUFlLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLHVCQUF1QixNQUFNLG9DQUFvQyxDQUFDO0FBR3pFLE9BQU8sZUFBZSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhFQUE4RSxDQUFD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QixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDekcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0I7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBMXBCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLG1qQkFBNEM7Z0JBRTVDLFNBQVMsRUFBRTtvQkFDVCw4QkFBOEI7b0JBQzlCO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7d0JBQ25ELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFqRFEsU0FBUztZQUVULHVCQUF1QjtZQWtCdkIsd0JBQXdCO1lBT3hCLHNCQUFzQjtZQWpCdEIsOEJBQThCO1lBWmdHLFNBQVM7WUFBcEYsVUFBVTs7O3dCQXFEbkUsS0FBSzswQkFDTCxLQUFLO2dDQUNMLEtBQUs7eUJBQ0wsS0FBSyxTQUFDLFVBQVU7dUJBQ2hCLEtBQUssU0FBQyxVQUFVO2lDQUNoQixNQUFNO3dCQVlOLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRbXNVcGxvYWRBZGFwdGVyLCBRbXNVcGxvYWRBZGFwdGVyQ29uZmlnIH0gZnJvbSAnLi9jb21tb24vY2xhc3Nlcy9xbXNVcGxvYWRBZGFwdGVyJztcclxuaW1wb3J0IHsgQ0tFZGl0b3JFdmVudENvbnN0IH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzL2NrZWRpdG9yRXZlbnQuY29uc3RhbnQnO1xyXG5pbXBvcnQgQ0tFZGl0b3JDb21tb25GdW5jdGlvbnMgZnJvbSAnLi9jb21tb24vZnVuY3Rpb25zL2NvbW1vbi5mdW5jdGlvbic7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yRGF0YSB9IGZyb20gJy4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yUGx1Z2luIH0gZnJvbSAnLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1wbHVnaW4ubW9kZWwnO1xyXG5pbXBvcnQgUU1TQ0tFZGl0b3JMaW5rIGZyb20gJy4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdXJsLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCcG1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1icG1uL3Ftcy1ja2VkaXRvci1icG1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItZnVsbHNjcmVlbi9xbXMtY2tlZGl0b3ItZnVsbHNjcmVlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckltYWdlTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1saW5rL3Ftcy1ja2VkaXRvci1saW5rLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yTG9hZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1sb2FkLXRlbXBsYXRlL3Ftcy1ja2VkaXRvci1sb2FkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLXRlbXBsYXRlL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLXRvb2x0aXAvcW1zLWNrZWRpdG9yLXRvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JJbWFnZU1hcCB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVGVtcGxhdGUgfSBmcm9tICcuL21vZGVscy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvb2x0aXAgfSBmcm9tICcuL21vZGVscy9xbXMtY2tlZGl0b3ItdG9vbHRpcC5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckFib3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1hYm91dC9xbXMtY2tlZGl0b3ItYWJvdXQuY29tcG9uZW50JztcclxuLy9pbXBvcnQgeyBDS0VkaXRvcjUgfSBmcm9tICdAY2tlZGl0b3IvY2tlZGl0b3I1LWFuZ3VsYXIvY2tlZGl0b3InO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW5EYXRhIH0gZnJvbSAnLi9tb2RlbHMvcW1zLWNrZWRpdG9yLWJwbW4tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZWxhdGVkL2NvbW1vbi9kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFBvcHVwRGF0YSB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVsYXRlZC9tb2RlbC9wb3B1cC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgUmVsYXRlZFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZWxhdGVkL3BvcHVwL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUcmVlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcW1zLWNrZWRpdG9yLXRyZWUuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yRmxvd2NoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQvcW1zLWNrZWRpdG9yLWZsb3djaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRbXNDa2VkaXRvckxpbmtTaW1wbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlL3Ftcy1ja2VkaXRvci1saW5rLXNpbXBsZS5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1ja2VkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1ja2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLWNrZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBRTVNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRTVNDS0VkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRTVNDS0VkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNDS0VkaXRvckNvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmFsaWRhdG9yIHtcclxuICBASW5wdXQoKSBxbXNja0RhdGE6IFFNU0NLRWRpdG9yRGF0YTtcclxuICBASW5wdXQoKSBxbXNja1BsdWdpbjogUU1TQ0tFZGl0b3JQbHVnaW47XHJcbiAgQElucHV0KCkgcW1zY2tDb250ZW50SW5wdXQ6IHN0cmluZztcclxuICBASW5wdXQoJ2Rpc2FibGVkJykgaXNEaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoJ3JlcXVpcmVkJykgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcW1zY2tDb250ZW50T3V0cHV0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgTEFORzogYW55O1xyXG4gIGNrRWRpdG9yOiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNrZWRpdG9yQ29uZmlnOiBhbnk7XHJcbiAgY2tFZGl0b3JFdmVudENvbnN0ID0gQ0tFZGl0b3JFdmVudENvbnN0O1xyXG4gIGNvdW50V29yZDogbnVtYmVyO1xyXG4gIGNvdW50Q2hhcjogbnVtYmVyO1xyXG4gIGVkaXRvckluc3RhbmNlOiBhbnk7XHJcbiAgY2tUYWduYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcclxuICBvbk1lc3NhZ2UoZXZlbnQpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQuZGF0YS5ldmVudE5hbWUpIHtcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19URU1QTEFURV9QTFVHSU5fTVNHOlxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVFdmVudEhhbmRsaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfTE9BRF9URU1QTEFURV9QTFVHSU5fTVNHOlxyXG4gICAgICAgIHRoaXMubG9hZFRlbXBsYXRlRXZlbnRIYW5kbGluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0xJTktfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLmxpbmtFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLnRvb2x0aXBFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0lNQUdFTUFQX1BMVUdJTl9NU0c6XHJcbiAgICAgICAgdGhpcy5pbWFnZU1hcEV2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlBNTl9QTFVHSU5fTVNHOlxyXG4gICAgICAgIHRoaXMuYnBtbkV2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQUJPVVRfQ0tFRElUT1JfUExVR0lOX01TRzpcclxuICAgICAgICB0aGlzLmFib3V0Q0tFZGl0b3JFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0ZMT1dDSEFSVF9QTFVHSU5fTVNHOlxyXG4gICAgICAgIHRoaXMuZmxvd2NoYXJ0RXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19UT0dHTEVfVE9PTEJBUl9NU0c6XHJcbiAgICAgICAgdGhpcy50b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JST1dTRV9WSURFT19NU0c6XHJcbiAgICAgICAgdGhpcy5icm93c2VWaWRlb0V2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqL1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IFFNU0NLRWRpdG9yR2xvYmFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJlZVNlcnZpY2U6IFFNU0NLRWRpdG9yVHJlZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHFtc0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudDogUU1TQ0tFZGl0b3JGdWxsc2NyZWVuQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuY2tUYWduYW1lID0gJ2Rpdic7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubmFtZSA9ICdDS0VkaXRvciBjdXN0b20gYnVpbGQnO1xyXG4gICAgdGhpcy5ja0VkaXRvciA9IHRoaXMucW1zY2tQbHVnaW4ucGx1Z2luT2JqZWN0O1xyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5ja2VkaXRvckNvbmZpZyA9IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zLmdldENLRWRpdG9yQ29uZmlndXJhdGlvbih0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyKTtcclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRBcGlVcmwodGhpcy5xbXNja0RhdGEuYXBpVXJsKTtcclxuICAgIGlmICh0aGlzLmlzRW5hYmxlZE1hdGh0eXBlQ29uZmlnKCkpIHtcclxuICAgICAgdGhpcy5hZGRNYXRoVHlwZUNvbmZpZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzRW5hYmxlZFRpbWVzdGFtcENvbmZpZygpKSB7XHJcbiAgICAgIHRoaXMuYWRkVGltZXN0YW1wQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc0VuYWJsZWRUb2dnbGVUb29sYmFyKCkpIHtcclxuICAgICAgdGhpcy5hZGRUb2dnbGVUb29sYmFyQ29uZmlnKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNFbmFibGVkV1Byb29mcmVhZGVyKCkpIHtcclxuICAgICAgdGhpcy5hZGRXUHJvb2ZyZWFkZXJDb25maWcoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzRW5hYmxlZFRPQ1Rvb2xiYXIoKSkge1xyXG4gICAgICB0aGlzLmFkZFRvZ2dsZVRPQ0NvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNFbmFibGVkRnVsbFNjcmVlbkNvbmZpZygpKSB7XHJcbiAgICAgIHRoaXMuYWRkRnVsbFNjcmVlbkNvbmZpZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5lZGl0b3JJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLmVkaXRvckluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiAoY29udGVudDogYW55KSA9PiB2b2lkO1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2stZGlzYWJsZWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRW5hYmxlZFdQcm9vZnJlYWRlcigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvKHdwcm9vZnJlYWRlcikvZ21pO1xyXG4gICAgcmV0dXJuICEhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyXHJcbiAgICAgICYmICEhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNyY1VybFxyXG4gICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZFdQcm9vZnJlYWRlckNvbmZpZygpIHtcclxuICAgIGNvbnN0IHdwcm9vZnJlYWRlckNvbmZpZyA9IHtcclxuICAgICAgd3Byb29mcmVhZGVyOiB7XHJcbiAgICAgICAgLi4udGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMucW1zY2tEYXRhLndwcm9vZnJlYWRlci5zZXJ2aWNlSWQgfHwgdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZC5sZW5ndGggPT0gMCkge1xyXG4gICAgICAvL0ZhbGxiYWNrIHZhbHVlIG9mIHNlcnZpY2VJZCBwcm9wZXJ0eSB0byBkZW1vIHNlcnZpY2VJZFxyXG4gICAgICB0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIuc2VydmljZUlkID0gJzE6S3BrdlEyLTZLTlVqLUwxVzN1Mi1DOWowSzEtWnYydFkxLUNmRE94LVdmR1JnMi1xWHRjaS1ZeXlFMzQtajA5SDQyLWIwYUN0My1kOWEnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIHdwcm9vZnJlYWRlckNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBpc0VuYWJsZWRUb2dnbGVUb29sYmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC8odG9nZ2xlVG9vbGJhcikvZ21pO1xyXG4gICAgcmV0dXJuICEhdGhpcy5xbXNja0RhdGEudG9nZ2xlVG9vbGJhclxyXG4gICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZFRvZ2dsZVRvb2xiYXJDb25maWcoKSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucW1zY2tEYXRhLnRvZ2dsZVRvb2xiYXIuc3BsaXQoJywnKTtcclxuICAgIGNvbnN0IHRvZ2dsZVRvb2xiYXJDb25maWcgPSB7XHJcbiAgICAgIHRvZ2dsZVRvb2xiYXJDb25maWc6IHtcclxuICAgICAgICB0b29sYmFyOiBpdGVtc1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIHRvZ2dsZVRvb2xiYXJDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmFibGVkRnVsbFNjcmVlbkNvbmZpZygpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvKHFtc0Z1bGxzY3JlZW4pL2dtaTtcclxuICAgIHJldHVybiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgISF0aGlzLnFtc2NrRGF0YS5mdWxsU2NyZWVuQ2xhc3NcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZEZ1bGxTY3JlZW5Db25maWcoKSB7XHJcbiAgICBjb25zdCBmdWxsU2NyZWVuQ29uZmlnID0ge1xyXG4gICAgICBmdWxsU2NyZWVuQ29uZmlnOiB7XHJcbiAgICAgICAgY2xhc3M6IHRoaXMucW1zY2tEYXRhLmZ1bGxTY3JlZW5DbGFzc1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgPSBPYmplY3QuYXNzaWduKHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSwgZnVsbFNjcmVlbkNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBpc0VuYWJsZWRUT0NUb29sYmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC8odGFibGVPZkNvbnRlbnRzKS9nbWk7XHJcbiAgICByZXR1cm4gISF0aGlzLnFtc2NrRGF0YS50YWJsZU9mQ29udGVudEhlYWRpbmdzXHJcbiAgICAgICYmICEhdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhclxyXG4gICAgICAmJiB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9nZ2xlVE9DQ29uZmlnKCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50YWJsZU9mQ29udGVudEhlYWRpbmdzLnNwbGl0KCcsJyk7XHJcbiAgICBjb25zdCB0YWJsZU9mQ29udGVudHMgPSB7XHJcbiAgICAgIHRhYmxlT2ZDb250ZW50czoge1xyXG4gICAgICAgIHN1cHBvcnRlZEhlYWRpbmdzOiBpdGVtc1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIHRhYmxlT2ZDb250ZW50cyk7XHJcbiAgfVxyXG5cclxuICBpc0VuYWJsZWRUaW1lc3RhbXBDb25maWcoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gLyh0aW1lc3RhbXApL2dtaTtcclxuICAgIHJldHVybiAhIXRoaXMucW1zY2tEYXRhLnRpbWVzdGFtcEZvcm1hdFxyXG4gICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZFRpbWVzdGFtcENvbmZpZygpIHtcclxuICAgIGNvbnN0IHRpbWVzdGFtcENvbmZpZyA9IHtcclxuICAgICAgdGltZXN0YW1wQ29uZmlnOiB7XHJcbiAgICAgICAgZGF0ZXRpbWVGb3JtYXQ6IHRoaXMucW1zY2tEYXRhLnRpbWVzdGFtcEZvcm1hdFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sIHRpbWVzdGFtcENvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBpc0VuYWJsZWRNYXRodHlwZUNvbmZpZygpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvKE1hdGhUeXBlKXwoQ2hlbVR5cGUpL2dtaTtcclxuICAgIHJldHVybiAhIXRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybFxyXG4gICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcclxuICAgICAgJiYgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMTtcclxuICB9XHJcblxyXG4gIGFkZE1hdGhUeXBlQ29uZmlnKCkge1xyXG4gICAgY29uc3QgbWF0aFR5cGVDb25maWcgPSB7XHJcbiAgICAgIG1hdGhUeXBlUGFyYW1ldGVyczoge1xyXG4gICAgICAgIHNlcnZpY2VQcm92aWRlclByb3BlcnRpZXM6IHtcclxuICAgICAgICAgIFVSSTogdGhpcy5xbXNja0RhdGEubWF0aHR5cGVTZXJ2aWNlVXJsLFxyXG4gICAgICAgICAgc2VydmVyOiAnYXNweCdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgPSBPYmplY3QuYXNzaWduKHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSwgbWF0aFR5cGVDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlZCh7IGVkaXRvciB9KSB7XHJcbiAgICAvL3RoaXMucW1zY2tDb250ZW50SW5wdXQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xyXG4gICAgdGhpcy5xbXNja0NvbnRlbnRPdXRwdXQuZW1pdCh0aGlzLnFtc2NrQ29udGVudElucHV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoeyBlZGl0b3IgfSkge1xyXG4gICAgdGhpcy5xbXNja0NvbnRlbnRJbnB1dCA9IGVkaXRvci5nZXREYXRhKCk7XHJcbiAgICB0aGlzLnFtc2NrQ29udGVudE91dHB1dC5lbWl0KHRoaXMucW1zY2tDb250ZW50SW5wdXQpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcclxuICAgIGlmICghdGhpcy5yZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiAodGhpcy5xbXNja0NvbnRlbnRJbnB1dCAmJiAhdGhpcy5yZXF1aXJlZCkgPyBudWxsIDoge1xyXG4gICAgICB0eXBlOiB7XHJcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgIGFjdHVhbDogYy52YWx1ZVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogb25SZWFkeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBvblJlYWR5KGVkaXRvcikge1xyXG4gICAgdGhpcy5lZGl0b3JJbnN0YW5jZSA9IGVkaXRvcjtcclxuICAgIGlmICh0aGlzLnFtc2NrQ29udGVudElucHV0KSB7XHJcbiAgICAgIGVkaXRvci5zZXREYXRhKHRoaXMucW1zY2tDb250ZW50SW5wdXQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFZGl0b3IoZWRpdG9yKSB7XHJcbiAgICBjb25zdCBpbWFnZVVwbG9hZFR5cGVzID0gZWRpdG9yLmNvbmZpZy5nZXQoJ2ltYWdlLnVwbG9hZC50eXBlcycpO1xyXG4gICAgY29uc3QgbWF4RmlsZVNpemVNQiA9IHRoaXMucW1zY2tEYXRhLm1heEZpbGVTaXplTUI7XHJcbiAgICBjb25zdCBjb25maWc6IFFtc1VwbG9hZEFkYXB0ZXJDb25maWcgPSB7IGFwaVVybDogdGhpcy5xbXNja0RhdGEuYXBpVXJsLCBMQU5HOiB0aGlzLkxBTkcsIGltYWdlVXBsb2FkVHlwZXMsIG1heEZpbGVTaXplTUIgfTtcclxuICAgIGVkaXRvci5wbHVnaW5zLmdldChcIkZpbGVSZXBvc2l0b3J5XCIpLmNyZWF0ZVVwbG9hZEFkYXB0ZXIgPSAobG9hZGVyKSA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgUW1zVXBsb2FkQWRhcHRlcihsb2FkZXIsIGNvbmZpZyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGVkaXRvci51aVxyXG4gICAgICAuZ2V0RWRpdGFibGVFbGVtZW50KClcclxuICAgICAgLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGVkaXRvci51aS52aWV3LnRvb2xiYXIuZWxlbWVudCwgZWRpdG9yLnVpLmdldEVkaXRhYmxlRWxlbWVudCgpKTtcclxuXHJcbiAgICAvLyBBcHBlZCBXb3JkY291bnQgdG8gQ0tlZGl0b3JcclxuICAgIGVkaXRvci5wbHVnaW5zLmdldCgnV29yZENvdW50Jykub24oJ3VwZGF0ZScsIChldnQsIHN0YXRzKSA9PiB7XHJcbiAgICAgIC8vIFByaW50cyB0aGUgY3VycmVudCBjb250ZW50IHN0YXRpc3RpY3MuXHJcbiAgICAgIGNvbnN0IHdvcmRzQm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLndvcmRjb3VudC1jb250ZW50Jyk7XHJcbiAgICAgIGlmICghIXdvcmRzQm94KSB7XHJcbiAgICAgICAgd29yZHNCb3gudGV4dENvbnRlbnQgPSBgJHt0aGlzLkxBTkcuUU1TQ0tFRElUT1IuV09SRFN9OiAke3N0YXRzLndvcmRzfSAvICR7dGhpcy5MQU5HLlFNU0NLRURJVE9SLkNIQVJBQ1RFUlN9OiAke3N0YXRzLmNoYXJhY3RlcnN9YDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGVtcGxhdGUgLSBMb2FkIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIHRlbXBsYXRlRXZlbnRIYW5kbGluZygpIHtcclxuICAgIGNvbnN0IGRhdGE6IFFNU0NLRWRpdG9yVGVtcGxhdGUgPSBuZXcgUU1TQ0tFZGl0b3JUZW1wbGF0ZSgpO1xyXG4gICAgZGF0YS5pZCA9IDA7XHJcbiAgICBkYXRhLmNvbnRlbnQgPSB0aGlzLnFtc2NrQ29udGVudElucHV0O1xyXG4gICAgZGF0YS5lZGl0ID0gZmFsc2U7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgaGVpZ2h0OiAnNTIwcHgnLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgLy8gVERPXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0ZW1wbGF0ZSAtIExvYWQgdGVtcGxhdGVcclxuICAgKi9cclxuICBwdWJsaWMgbG9hZFRlbXBsYXRlRXZlbnRIYW5kbGluZygpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckxvYWRUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgaGVpZ2h0OiAnNzAwcHgnLFxyXG4gICAgICBkYXRhOiB0aGlzLnFtc2NrQ29udGVudElucHV0LFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0xPQURfVEVNUExBVEVfUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgZGV0YWlsOiByZXN1bHRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQW5jaG9yIC0gTGluayAtIEltYWdlIG1hcHBpbmdcclxuICAgKi9cclxuICBwdWJsaWMgbGlua0V2ZW50SGFuZGxpbmcobGluaykge1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JMaW5rKCk7XHJcbiAgICBkYXRhID0gbGluaztcclxuICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XHJcbiAgICBkYXRhLm1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLm1vZHVsZTtcclxuICAgIGRhdGEuZW50aXR5SWQgPSB0aGlzLnFtc2NrRGF0YS5lbnRpdHlJZDtcclxuICAgIGxldCBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgaWYoIXRoaXMucW1zY2tQbHVnaW4uc2ltcGxlTW9kZSkge1xyXG4gICAgICBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50LCB7XHJcbiAgICAgICAgd2lkdGg6ICc2NTBweCcsXHJcbiAgICAgICAgaGVpZ2h0OiAnNjYwcHgnLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHsgXHJcbiAgICAgIGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRbXNDa2VkaXRvckxpbmtTaW1wbGVDb21wb25lbnQsIHtcclxuICAgICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgICBoZWlnaHQ6ICcyMDBweCcsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfTElOS19QTFVHSU5fUkVTUCwge1xyXG4gICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb29sdGlwIG1hcHBpbmdcclxuICAgKi9cclxuICBwdWJsaWMgdG9vbHRpcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcclxuICAgIGxldCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yVG9vbHRpcCgpO1xyXG4gICAgZGF0YS50ZXh0ID0gdmFsdWUudGV4dDtcclxuICAgIGRhdGEuY29udGVudCA9IHZhbHVlLmNvbnRlbnQ7XHJcbiAgICBkYXRhLmNrRWRpdG9yID0gdGhpcy5xbXNja1BsdWdpbi5wbHVnaW5PYmplY3Q7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yVG9vbHRpcENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgaGVpZ2h0OiAnNTU1cHgnLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgZGV0YWlsOiByZXN1bHRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEltYWdlTWFwIG1hcHBpbmdcclxuICovXHJcbiAgcHVibGljIGltYWdlTWFwRXZlbnRIYW5kbGluZyh2YWx1ZSkge1xyXG4gICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JJbWFnZU1hcCgpO1xyXG4gICAgZGF0YS5uYW1lID0gdmFsdWUubmFtZTtcclxuICAgIGRhdGEuYXJlYXMgPSB2YWx1ZS5hcmVhcztcclxuICAgIGRhdGEuaW1hZ2VVcmwgPSB2YWx1ZS5pbWFnZVVybDtcclxuICAgIGRhdGEuaW1hZ2VXaWR0aCA9IHZhbHVlLmltYWdlV2lkdGg7XHJcbiAgICBkYXRhLmltYWdlSGVpZ2h0ID0gdmFsdWUuaW1hZ2VIZWlnaHQ7XHJcbiAgICBkYXRhLm1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLm1vZHVsZTtcclxuICAgIGRhdGEuZW50aXR5SWQgPSB0aGlzLnFtc2NrRGF0YS5lbnRpdHlJZDtcclxuICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XHJcbiAgICBkYXRhLmxpbmtKYXZhU2NyaXB0TGlua3NBbGxvd2VkID0gdGhpcy5xbXNja0RhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQ7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0lNQUdFTUFQX1BMVUdJTl9SRVNQLCB7XHJcbiAgICAgICAgICAgIGRldGFpbDogcmVzdWx0XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBCdXNpbmVzcyBQcm9jZXNzIE1vZGVsIGFuZCBOb3RhdGlvblxyXG4gICovXHJcbiAgcHVibGljIGJwbW5FdmVudEhhbmRsaW5nKGlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yQnBtbkRhdGEoKTtcclxuICAgIGRhdGEuaWQgPSBpZDtcclxuICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xyXG4gICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xyXG4gICAgZGF0YS5lZGl0b3JDb250ZW50ID0gdGhpcy5xbXNja0NvbnRlbnRJbnB1dDtcclxuICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckJwbW5Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc4OXZ3JyxcclxuICAgICAgbWF4V2lkdGg6ICcxMDB2dycsXHJcbiAgICAgIGhlaWdodDogJzcwMHB4JyxcclxuICAgICAgbWF4SGVpZ2h0OiAnMTAwdncnLFxyXG4gICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgZXZ0ID0gbmV3IEN1c3RvbUV2ZW50KHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgZGV0YWlsOiByZXN1bHRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKlxyXG4gICBBYm91dCBDS0VkaXRvclxyXG4gKi9cclxuICBwdWJsaWMgYWJvdXRDS0VkaXRvckV2ZW50SGFuZGxpbmcodmVyc2lvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JBYm91dENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzUwMHB4JyxcclxuICAgICAgZGF0YTogdmVyc2lvbixcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVG9vbGJhciB0b2dnbGVcclxuICAqL1xyXG4gIHB1YmxpYyB0b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpIHtcclxuICAgIGNvbnN0IHFtc2NrZWRpdG9yID0gd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxbXNja2VkaXRvcicpO1xyXG4gICAgY29uc3QgdG9nZ2xlQXR0cmlidXRlID0gJ2lzVG9nZ2xlVG9vbGJhcic7XHJcbiAgICBjb25zdCBja2VkaXRvclRhZyA9ICdja2VkaXRvcic7XHJcblxyXG4gICAgaWYgKHFtc2NrZWRpdG9yKSB7XHJcbiAgICAgIGNvbnN0IGlzVG9nZ2xlVG9vbGJhciA9IHFtc2NrZWRpdG9yLmdldEF0dHJpYnV0ZSh0b2dnbGVBdHRyaWJ1dGUpID09ICd0cnVlJztcclxuICAgICAgaWYgKGlzVG9nZ2xlVG9vbGJhcikge1xyXG4gICAgICAgIHRoaXMuY2tlZGl0b3JDb25maWcgPSBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucy5nZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24odGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcik7XHJcbiAgICAgICAgcW1zY2tlZGl0b3Iuc2V0QXR0cmlidXRlKHRvZ2dsZUF0dHJpYnV0ZSwgJ2ZhbHNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ja2VkaXRvckNvbmZpZyA9IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zLmdldENLRWRpdG9yQ29uZmlndXJhdGlvbih0aGlzLnFtc2NrRGF0YS50b2dnbGVUb29sYmFyKTtcclxuICAgICAgICBxbXNja2VkaXRvci5zZXRBdHRyaWJ1dGUodG9nZ2xlQXR0cmlidXRlLCAndHJ1ZScpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9uQ2hhbmdlZCA9IHRoaXMub25DaGFuZ2VkLmJpbmQodGhpcyk7XHJcbiAgICAgIGNvbnN0IG9uQmx1ciA9IHRoaXMub25CbHVyLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lZGl0b3JJbnN0YW5jZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRvckluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLlxyXG4gICAgICAvL1RyYWNraW5nIHN0YXR1cyBhbmQgcHJvZ3Jlc3Mgb2YgdGhlIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzczODNcclxuICAgICAgY29uc3Qgcm9vdCA9IHdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNrZWRpdG9yVGFnKTtcclxuICAgICAgaWYgKCEhcm9vdCkge1xyXG4gICAgICAgIGxldCBlZGl0b3JFbGVtZW50ID0gbnVsbDtcclxuICAgICAgICBpZiAocm9vdC5jaGlsZEVsZW1lbnRDb3VudCA+IDApIHtcclxuICAgICAgICAgIGVkaXRvckVsZW1lbnQgPSBBcnJheS5mcm9tKHJvb3QuY2hpbGRyZW4pLmZpbmQoaSA9PiBpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5ja1RhZ25hbWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVkaXRvckVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNrVGFnbmFtZSk7XHJcbiAgICAgICAgICBlZGl0b3JFbGVtZW50LnN0eWxlID0gJ2Rpc3BsYXk6IG5vbmU7JztcclxuICAgICAgICAgIHJvb3QuYXBwZW5kQ2hpbGQoZWRpdG9yRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNrRWRpdG9yLmNyZWF0ZShlZGl0b3JFbGVtZW50LCB0aGlzLmNrZWRpdG9yQ29uZmlnKS50aGVuKGVkaXRvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmluaXRFZGl0b3IoZWRpdG9yKTtcclxuICAgICAgICAgIHRoaXMuZWRpdG9ySW5zdGFuY2UgPSBlZGl0b3I7XHJcblxyXG4gICAgICAgICAgLy9EZWxldGUgY2FjaGUgY29udGVudFxyXG4gICAgICAgICAgZWRpdG9yRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgICAvL3NldHVwIGVkaXRvciBldmVudHNcclxuICAgICAgICAgIGNvbnN0IG1vZGVsRG9jdW1lbnQgPSBlZGl0b3IubW9kZWwuZG9jdW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCB2aWV3RG9jdW1lbnQgPSBlZGl0b3IuZWRpdGluZy52aWV3LmRvY3VtZW50O1xyXG4gICAgICAgICAgbW9kZWxEb2N1bWVudC5vbignY2hhbmdlOmRhdGEnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlZCh7IGVkaXRvciB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHZpZXdEb2N1bWVudC5vbignYmx1cicsICgpID0+IHtcclxuICAgICAgICAgICAgb25CbHVyKHsgZWRpdG9yIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBGbG93Y2hhcnRcclxuICovXHJcbiAgcHVibGljIGZsb3djaGFydEV2ZW50SGFuZGxpbmcoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yRmxvd2NoYXJ0Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnODl2dycsXHJcbiAgICAgIG1heFdpZHRoOiAnMTAwdncnLFxyXG4gICAgICBoZWlnaHQ6ICc3MjVweCcsXHJcbiAgICAgIG1heEhlaWdodDogJzEwMHZ3JyxcclxuICAgICAgZGF0YTogaWQsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudCh0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlRfUExVR0lOX1JFU1AsIHtcclxuICAgICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnJvd3NlIFZpZGVvXHJcbiAgICovXHJcbiAgcHVibGljIGJyb3dzZVZpZGVvRXZlbnRIYW5kbGluZyh2YWx1ZSkge1xyXG4gICAgdGhpcy50cmVlU2VydmljZVxyXG4gICAgICAuZ2V0VXBsb2FkVmlkZW9MaXN0KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCB2aWRlb3MgPSByZXNwb25zZSB8fCBbXTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICBhbGxvd1NlbGVjdEZvbGRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhcmVhT2ZDdXJyZW50UHJvY2VzczogJycsXHJcbiAgICAgICAgICBzaG93Q2hlY2tCb3g6IHRydWUsXHJcbiAgICAgICAgICBhbGxvd011bHRpcGxlQ2hlY2s6IHZhbHVlLmFsbG93TXVsdGlwbGVGaWxlcyxcclxuICAgICAgICAgIG9ubHlDaGVja0JveEZvckNoaWxkOiB0cnVlLFxyXG4gICAgICAgICAgbW9kdWxlSWQ6IERhdGFUeXBlLmRvY3VtZW50LFxyXG4gICAgICAgICAgb3Blbkljb246ICdmb2xkZXJfb3BlbicsXHJcbiAgICAgICAgICBvcGVuSWNvbkNvbG9yOiAnIzE5NTRBOScsXHJcbiAgICAgICAgICBjbG9zZUljb246ICdmb2xkZXJfZmlsbGVkJyxcclxuICAgICAgICAgIGNsb3NlSWNvbkNvbG9yOiAnIzRhY2FmZicsXHJcbiAgICAgICAgICBpdGVtSWNvbjogJ2luc2VydF9kcml2ZV9maWxlJyxcclxuICAgICAgICAgIGl0ZW1JY29uUGF0aDogJycsXHJcbiAgICAgICAgICBpdGVtSWNvbkJhc2U2NDogJycsXHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3RlZE5vZGU6IHRydWUsXHJcbiAgICAgICAgICBleHBhbmRBbGw6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IFBvcHVwRGF0YSA9IG5ldyBQb3B1cERhdGEoKTtcclxuICAgICAgICBkYXRhLm1vZHVsZUlkID0gMjtcclxuICAgICAgICBkYXRhLm1vZHVsZU5hbWUgPSB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0VMRUNUX1ZJREVPX0ZST01fQVJDSElWRTtcclxuICAgICAgICBkYXRhLnRyZWVEYXRhMSA9IHZpZGVvcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJvb3RJZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICByb290TmFtZTogaXRlbS5yb290TmFtZSxcclxuICAgICAgICAgICAgc3ViTmFtZTogaXRlbS5zdWJOYW1lLFxyXG4gICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXHJcbiAgICAgICAgICAgIGNoaWxkTmFtZTogaXRlbS5jaGlsZE5hbWUsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBpdGVtLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkLFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTogaXRlbS5jb250ZW50VHlwZSxcclxuICAgICAgICAgICAgdXJsOiBpdGVtLnVybFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBkYXRhLnRyZWVEYXRhMiA9IFtdO1xyXG4gICAgICAgIGRhdGEudHJlZUNvbmZpZzEgPSBjb25maWc7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihSZWxhdGVkUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnNDUwcHgnLFxyXG4gICAgICAgICAgbWF4V2lkdGg6ICc4MDBweCcsXHJcbiAgICAgICAgICBtaW5IZWlnaHQ6ICc2MjBweCcsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgcGFuZWxDbGFzczogJ3Ftc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWFyY2hCb3ggPSB3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnFtc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCAjcW1zbGliX3JlbGF0ZWRfcG9wdXBfc2VhcmNoJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoQm94KSB7XHJcbiAgICAgICAgICAgIHNlYXJjaEJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMCk7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZlxyXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gcmVzdWx0LnJlZHVjZSgocmVzdWx0LCBpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaXRlbS5pZC50b1N0cmluZygpXSA9IGl0ZW0uaWQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgICBjb25zdCB1cmxzID0gdmlkZW9zLmZpbHRlcihpID0+IGkuY2hpbGRJZCAmJiAhIWlkc1tpLmNoaWxkSWQudG9TdHJpbmcoKV0pLm1hcChpID0+IGkudXJsKTtcclxuICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlJPV1NFX1ZJREVPX1JFU1AsIHsgZGV0YWlsOiB7IHVybHM6IHVybHMgfSB9KTtcclxuICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|