tuain-ng-forms-lib 17.1.1 → 17.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -456,6 +456,7 @@ export class FieldDescriptor extends FormElement {
|
|
|
456
456
|
if (this._value !== newFinalValue) {
|
|
457
457
|
this.hasChanged = true;
|
|
458
458
|
if (widgetUpdate) {
|
|
459
|
+
console.log(`se actualiza el campo ${this._fieldCode} con ${newFinalValue}`);
|
|
459
460
|
this.setAttr(attrs.value, newFinalValue);
|
|
460
461
|
}
|
|
461
462
|
else {
|
|
@@ -465,4 +466,4 @@ export class FieldDescriptor extends FormElement {
|
|
|
465
466
|
return true;
|
|
466
467
|
}
|
|
467
468
|
}
|
|
468
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLGFBQWEsR0FBRztJQUNwQixpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7SUFDcEcsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTTtJQUNsRyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWM7SUFDcEcsU0FBUyxFQUFFLGFBQWE7Q0FDekIsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHO0lBQ1osV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO0lBQy9ELFNBQVMsRUFBRSxFQUFF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SSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHluIGZyb20gJ3luJztcbmltcG9ydCB7IGVsZW1lbnRUeXBlcywgTk9fRVJST1IgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcblxuY29uc3QgVU5ERUZJTkVEID0gJ3VuZGVmaW5lZCc7XG5cbmNvbnN0IERFRkFVTFRfRVJST1JfVFlQRSA9ICdlcnJvcic7XG5jb25zdCBERUZBVUxUX0NBUFRVUkVfVFlQRSA9ICdJTlBVVCc7XG5jb25zdCBERUZBVUxUX0FMSUdOTUVOVCA9ICdsZWZ0JztcblxuY29uc3QgU1REX01BWF9MRU5HVEggPSA1MDtcbmNvbnN0IEJJR19NQVhfTEVOR1RIID0gNTAwO1xuXG5jb25zdCBkaXJlY3RDaGFuZ2VzID0gW1xuICAnZGVmYXVsdEVkaXRhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdhbGlnbm1lbnQnLCAncmVxdWlyZWQnLCAnZXJyb3JDb2RlJywgJ2Vycm9yTWVzc2FnZScsICdlcnJvclR5cGUnLFxuICAndG9vbHRpcCcsICdpbmZvJywgJ2Zvcm1hdCcsICdpbnRyaW5zaWNFcnJvck1lc3NhZ2UnLCAnb3V0cHV0T25seScsICdjYXB0dXJlVHlwZScsICd0aXRsZScsICd0eXBlJyxcbiAgJ21heExlbmd0aCcsICdtYXhWYWx1ZScsICdtaW5MZW5ndGgnLCAnbWluVmFsdWUnLCAndmFsaWRhdGVPblNlcnZlcicsICdzZXJ2ZXJBY3Rpb24nLCAndmlzaWJsZUxhYmVsJyxcbiAgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLFxuXTtcblxuY29uc3QgYXR0cnMgPSB7XG4gIGNhcHR1cmVUeXBlOiB7IG5hbWU6ICdfY2FwdHVyZVR5cGUnLCBwcm9wYWdhdGU6ICdjYXB0dXJlVHlwZScgfSxcbiAgZXJyb3JDb2RlOiB7IG5hbWU6ICdfZXJyb3JDb2RlJywgcHJvcGFnYXRlOiAnZXJyb3JDb2RlJyB9LFxuICBlcnJvck1lc3NhZ2U6IHsgbmFtZTogJ19lcnJvck1lc3NhZ2UnLCBwcm9wYWdhdGU6ICdlcnJvck1lc3NhZ2UnIH0sXG4gIGVycm9yVHlwZTogeyBuYW1lOiAnX2Vycm9yVHlwZScsIHByb3BhZ2F0ZTogJ2Vycm9yVHlwZScgfSxcbiAgZGVmYXVsdFZhbHVlOiB7IG5hbWU6ICdfZGVmYXVsdFZhbHVlJywgcHJvcGFnYXRlOiAnZGVmYXVsdFZhbHVlJyB9LFxuICBkZWZhdWx0RWRpdGFibGU6IHsgbmFtZTogJ19kZWZhdWx0RWRpdGFibGUnLCBwcm9wYWdhdGU6ICdkZWZhdWx0RWRpdGFibGUnIH0sXG4gIGZpZWxkQWxpZ25tZW50OiB7IG5hbWU6ICdfZmllbGRBbGlnbm1lbnQnLCBwcm9wYWdhdGU6ICdhbGlnbm1lbnQnIH0sXG4gIGZpZWxkQ29kZTogeyBuYW1lOiAnX2ZpZWxkQ29kZScsIHByb3BhZ2F0ZTogJ2NvZGUnIH0sXG4gIGZpZWxkSW5mbzogeyBuYW1lOiAnX2ZpZWxkSW5mbycsIHByb3BhZ2F0ZTogJ2luZm8nIH0sXG4gIGZpZWxkUmVxdWlyZWQ6IHsgbmFtZTogJ19maWVsZFJlcXVpcmVkJywgcHJvcGFnYXRlOiAncmVxdWlyZWQnIH0sXG4gIGZpZWxkVGl0bGU6IHsgbmFtZTogJ19maWVsZFRpdGxlJywgcHJvcGFnYXRlOiAndGl0bGUnIH0sXG4gIGZpZWxkVHlwZTogeyBuYW1lOiAnX2ZpZWxkVHlwZScsIHByb3BhZ2F0ZTogJ3R5cGUnIH0sXG4gIGZpZWxkRm9ybWF0OiB7IG5hbWU6ICdfZmllbGRGb3JtYXQnLCBwcm9wYWdhdGU6ICdmb3JtYXQnIH0sXG4gIGZpZWxkT3B0aW9uczogeyBuYW1lOiAnX2ZpZWxkT3B0aW9ucycsIHByb3BhZ2F0ZTogJ29wdGlvbnMnIH0sXG4gIGZvY3VzOiB7IG5hbWU6ICdfZm9jdXMnLCBwcm9wYWdhdGU6ICdmb2N1cycgfSxcbiAgaGFzQ2hhbmdlZDogeyBuYW1lOiAnX2hhc0NoYW5nZWQnLCBwcm9wYWdhdGU6ICdoYXNDaGFuZ2VkJyB9LFxuICBpbnRyaW5zaWNFcnJvck1lc3NhZ2U6IHsgbmFtZTogJ19pbnRyaW5zaWNFcnJvck1lc3NhZ2UnLCBwcm9wYWdhdGU6IG51bGwgfSxcbiAgbWF4TGVuZ3RoOiB7IG5hbWU6ICdfbWF4TGVuZ3RoJywgcHJvcGFnYXRlOiAnbWF4TGVuZ3RoJyB9LFxuICBtYXhWYWx1ZTogeyBuYW1lOiAnX21heFZhbHVlJywgcHJvcGFnYXRlOiAnbWF4VmFsdWUnIH0sXG4gIG1pbkxlbmd0aDogeyBuYW1lOiAnX21pbkxlbmd0aCcsIHByb3BhZ2F0ZTogJ21pbkxlbmd0aCcgfSxcbiAgbWluVmFsdWU6IHsgbmFtZTogJ19taW5WYWx1ZScsIHByb3BhZ2F0ZTogJ21pblZhbHVlJyB9LFxuICBvblZhbGlkYXRpb246IHsgbmFtZTogJ19vblZhbGlkYXRpb24nLCBwcm9wYWdhdGU6ICdvblZhbGlkYXRpb24nIH0sXG4gIG91dHB1dE9ubHk6IHsgbmFtZTogJ19vdXRwdXRPbmx5JywgcHJvcGFnYXRlOiAnb3V0cHV0T25seScgfSxcbiAgcGxhY2Vob2xkZXI6IHsgbmFtZTogJ19wbGFjZWhvbGRlcicsIHByb3BhZ2F0ZTogJ3BsYWNlaG9sZGVyJyB9LFxuICB0b29sdGlwVGV4dDogeyBuYW1lOiAnX3Rvb2x0aXBUZXh0JywgcHJvcGFnYXRlOiAndG9vbHRpcCcgfSxcbiAgdmFsaWRhdGVPblNlcnZlcjogeyBuYW1lOiAnX3ZhbGlkYXRlT25TZXJ2ZXInLCBwcm9wYWdhdGU6ICd2YWxpZGF0ZU9uU2VydmVyJyB9LFxuICB2YWx1ZTogeyBuYW1lOiAnX3ZhbHVlJywgcHJvcGFnYXRlOiAndmFsdWUnIH0sXG4gIHZpc2libGVMYWJlbDogeyBuYW1lOiAnX3Zpc2libGVMYWJlbCcsIHByb3BhZ2F0ZTogJ3Zpc2libGVMYWJlbCcgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWlsRXZlbnQge1xuICBjb2RlOiBzdHJpbmc7XG4gIGRldGFpbDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkT3B0aW9uIHtcbiAgZmllbGRPcHRpb25WYWx1ZTogc3RyaW5nO1xuICBmaWVsZE9wdGlvbklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGaWVsZERlc2NyaXB0b3IgZXh0ZW5kcyBGb3JtRWxlbWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25GaW5pc2ggPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25QYXJ0aWFsID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXRhaWxSZXF1ZXN0ID0gbmV3IFN1YmplY3Q8RGV0YWlsRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBfZXJyb3JUeXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZXJyb3JDb2RlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfaW50cmluc2ljRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfbWluVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfbWF4TGVuZ3RoOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9taW5MZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX29uVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF92YWxpZGF0ZU9uU2VydmVyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gIHByaXZhdGUgX3Zpc2libGVMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jYXB0dXJlVHlwZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZTogYW55ID0gJyc7XG4gIHByaXZhdGUgX2RlZmF1bHRFZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9leHRlcm5hbFZhbHVlOiBhbnk7XG4gIHByaXZhdGUgX2ZpZWxkQWxpZ25tZW50OiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRJbmZvOiBhbnkgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9maWVsZFRpdGxlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRUeXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRGb3JtYXQ6IFJlZ0V4cCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9oYXNDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX291dHB1dE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdG9vbHRpcFRleHQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkQ29kZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkT3B0aW9uczogRmllbGRPcHRpb25bXSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LmZpZWxkcyA/PyBbXTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gZWxlbWVudFR5cGVzLmZpZWxkO1xuICAgIGNvbnN0IGZsZCA9IChpbnB1dEZpZWxkUmVjZWl2ZWQpID8gaW5wdXRGaWVsZFJlY2VpdmVkIDoge307XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmZpZWxkQ29kZSwgZmxkLmZpZWxkQ29kZSk7XG4gICAgdGhpcy50aXRsZSA9IGZsZC5maWVsZFRpdGxlID8/IHRoaXMuX2ZpZWxkQ29kZTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmxkLnBsYWNlaG9sZGVyID8/IHRoaXMudGl0bGU7XG4gICAgdGhpcy50eXBlID0gZmxkLmZpZWxkVHlwZUNvZGU7XG4gICAgdGhpcy5jYXB0dXJlVHlwZSA9IGZsZC5jYXB0dXJlVHlwZSA/PyBERUZBVUxUX0NBUFRVUkVfVFlQRTtcblxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGZsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhbikge1xuICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWUgPz8gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0VHlwZUFsaWdubWVudCA9ICh0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5fZmllbGRUeXBlXSAhPSBudWxsKVxuICAgICAgPyB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5fZmllbGRUeXBlXVsndGV4dC1hbGlnbiddIDogREVGQVVMVF9BTElHTk1FTlQ7XG4gICAgY29uc3QgZmllbGRBbGlnbm1lbnQgPSAoZmxkLmFsaWdubWVudCAhPSBudWxsKSA/IGZsZC5hbGlnbm1lbnQudG9Mb3dlckNhc2UoKSA6IGRlZmF1bHRUeXBlQWxpZ25tZW50O1xuICAgIHRoaXMuYWxpZ25tZW50ID0gZmllbGRBbGlnbm1lbnQ7XG4gICAgdGhpcy5pbmZvID0gZmxkLmluZm8gfHwgJyc7XG4gICAgbGV0IGZpZWxkRm9ybWF0O1xuICAgIHRyeSB7XG4gICAgICBpZiAoZmxkLmZvcm1hdCAmJiB0eXBlb2YgZmxkLmZvcm1hdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZmllbGRGb3JtYXQgPSBuZXcgUmVnRXhwKGZsZC5mb3JtYXQpO1xuICAgICAgfSBlbHNlIGlmIChmbGQuZm9ybWF0Py5yZWdFeHApIHtcbiAgICAgICAgZmllbGRGb3JtYXQgPSBuZXcgUmVnRXhwKGZsZC5mb3JtYXQ/LnJlZ0V4cCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZmllbGRGb3JtYXQgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmZvcm1hdCA9IGZpZWxkRm9ybWF0O1xuICAgIHRoaXMudmFsaWRhdGVPblNlcnZlciA9IGZsZC5zZXJ2ZXJBY3Rpb24gPz8gZmFsc2U7XG4gICAgdGhpcy50b29sdGlwID0gZmxkLnRvb2x0aXAgfHwgJyc7XG4gICAgdGhpcy5kZWZhdWx0RWRpdGFibGUgPSB0aGlzLmVuYWJsZWQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IGZsZC5yZXF1aXJlZCA/PyBmYWxzZTtcbiAgICB0aGlzLm91dHB1dE9ubHkgPSBmbGQub3V0cHV0T25seSA/PyBmYWxzZTtcbiAgICB0aGlzLm1pbkxlbmd0aCA9IGZsZC5taW5MZW5ndGggPz8gMDtcbiAgICB0aGlzLm1heExlbmd0aCA9IGZsZC5tYXhMZW5ndGggfHwgKHRoaXMuX2NhcHR1cmVUeXBlID09PSAnVEVYVEFSRUEnID8gQklHX01BWF9MRU5HVEggOiBTVERfTUFYX0xFTkdUSCk7XG4gICAgdGhpcy5pbnRyaW5zaWNFcnJvck1lc3NhZ2UgPSB0aGlzLl9mb3JtQ29uZmlnPy5maWVsZFZhbGlkYXRpb25zPy5bdGhpcy5fZmllbGRUeXBlXT8ubWVzc2FnZVxuICAgICAgPz8gdGhpcy5fZm9ybUNvbmZpZz8uZmllbGRWYWxpZGF0aW9ucz8uREVGQVVMVD8ubWVzc2FnZSA/PyAnJztcblxuICAgIHRoaXMuc2V0RXJyb3IoZmxkLmVycm9yQ29kZSwgZmxkLmVycm9yTWVzc2FnZSwgZmxkLmVycm9yVHlwZSA/PyBERUZBVUxUX0VSUk9SX1RZUEUpO1xuICAgIHRoaXMuc2V0RWRpdGFibGUoZmxkLmVkaXRhYmxlID8/IHRydWUpO1xuICAgIHRoaXMudmlzaWJsZUxhYmVsID0gZmxkLnZpc2libGVMYWJlbCA/PyB0cnVlO1xuICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmbGQudmlzaWJsZSk7XG4gICAgdGhpcy5vcHRpb25zID0gZmxkLmZpZWxkT3B0aW9ucztcbiAgICB0aGlzLl9zZXRWYWx1ZShmbGQuZmllbGRWYWx1ZSA/PyB0aGlzLl9kZWZhdWx0VmFsdWUgPz8gJycpO1xuICB9XG5cbiAgZ2V0IGFsaWdubWVudCgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQWxpZ25tZW50OyB9XG4gIHNldCBhbGlnbm1lbnQoYWxpZ25tZW50KSB7IHRoaXMuc2V0QXR0cihhdHRycy5maWVsZEFsaWdubWVudCwgYWxpZ25tZW50KTsgfVxuICBnZXQgYmFja2VuZCgpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT25TZXJ2ZXI7IH1cblxuICBnZXQgY2FwdHVyZVR5cGUoKSB7IHJldHVybiB0aGlzLl9jYXB0dXJlVHlwZTsgfVxuICBzZXQgY2FwdHVyZVR5cGUoY2FwdHVyZVR5cGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmNhcHR1cmVUeXBlLCBjYXB0dXJlVHlwZSk7IH1cblxuICBnZXQgcGxhY2Vob2xkZXIoKSB7IHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjsgfVxuICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlcik7IH1cblxuICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQ29kZTsgfVxuICBnZXQgZGVmYXVsdFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlOyB9XG4gIHNldCBkZWZhdWx0VmFsdWUoZGVmYXVsdFZhbHVlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5kZWZhdWx0VmFsdWUsIGRlZmF1bHRWYWx1ZSk7IH1cbiAgZ2V0IGRlZmF1bHRFZGl0YWJsZSgpIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHRFZGl0YWJsZTsgfVxuICBzZXQgZGVmYXVsdEVkaXRhYmxlKGVkaXRhYmxlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5kZWZhdWx0RWRpdGFibGUsIGVkaXRhYmxlKTsgfVxuICBnZXQgZGV0YWlsUmVxdWVzdCgpIHsgcmV0dXJuIHRoaXMuX2RldGFpbFJlcXVlc3Q7IH1cbiAgZ2V0IGVkaXRpb25GaW5pc2goKSB7IHJldHVybiB0aGlzLl9lZGl0aW9uRmluaXNoOyB9XG4gIGdldCBlZGl0aW9uUGFydGlhbCgpIHsgcmV0dXJuIHRoaXMuX2VkaXRpb25QYXJ0aWFsOyB9XG5cbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpZWxkQ3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoZmllbGRDdXJyZW50VmFsdWUgPT09IHVuZGVmaW5lZCB8fCBmaWVsZEN1cnJlbnRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheVxuICAgICAgJiYgQXJyYXkuaXNBcnJheShmaWVsZEN1cnJlbnRWYWx1ZSkgJiYgZmllbGRDdXJyZW50VmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5waG9uZSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggIT09IDIgfHwgIWZpZWxkQ3VycmVudFZhbHVlWzBdIHx8ICFmaWVsZEN1cnJlbnRWYWx1ZVsxXSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIGNvbnN0IGFycmF5RmllbGRUeXBlcyA9IHRoaXMuX2Zvcm1Db25maWcuYXJyYXlGaWVsZFR5cGVzID8/IG51bGw7XG4gICAgaWYgKGFycmF5RmllbGRUeXBlcyAmJiBPYmplY3Qua2V5cyhhcnJheUZpZWxkVHlwZXMpLmluY2x1ZGVzKHRoaXMuX2ZpZWxkVHlwZSkpIHtcbiAgICAgIGxldCBhcnJheVNpemUgPSBhcnJheUZpZWxkVHlwZXNbdGhpcy5fZmllbGRUeXBlXTtcbiAgICAgIGFycmF5U2l6ZSA9ICFOdW1iZXIuaXNOYU4oK2FycmF5U2l6ZSkgPyArYXJyYXlTaXplIDogMDtcbiAgICAgIGlmIChhcnJheVNpemUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSAmJiBmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggPT09IDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSAmJiBmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggPCBhcnJheVNpemUpO1xuICAgIH07XG4gICAgcmV0dXJuIGZpZWxkQ3VycmVudFZhbHVlID09PSAnJztcbiAgfVxuXG4gIGdldCBlcnJvcigpIHsgcmV0dXJuIHsgdHlwZTogdGhpcy5fZXJyb3JUeXBlLCBjb2RlOiB0aGlzLl9lcnJvckNvZGUsIG1lc3NhZ2U6IHRoaXMuX2Vycm9yTWVzc2FnZSB9OyB9XG4gIHNldCBlcnJvcihlcnJvck9iaikgeyB0aGlzLnNldEVycm9yKGVycm9yT2JqLmNvZGUsIGVycm9yT2JqLm1lc3NhZ2UsIGVycm9yT2JqLnR5cGUgPz8gREVGQVVMVF9FUlJPUl9UWVBFKSB9XG4gIGdldCBlcnJvckNvZGUoKSB7IHJldHVybiB0aGlzLl9lcnJvckNvZGU7IH1cbiAgc2V0IGVycm9yQ29kZShjb2RlKSB7IHRoaXMuc2V0RXJyb3IoY29kZSwgdGhpcy5fZXJyb3JNZXNzYWdlKTsgfVxuICBnZXQgZXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JNZXNzYWdlOyB9XG4gIHNldCBlcnJvck1lc3NhZ2UobXNnKSB7IHRoaXMuc2V0RXJyb3IodGhpcy5fZXJyb3JDb2RlLCBtc2cpOyB9XG4gIGdldCBlcnJvclR5cGUoKSB7IHJldHVybiB0aGlzLl9lcnJvclR5cGU7IH1cbiAgZ2V0IGV4dGVybmFsVmFsdWUoKSB7IHJldHVybiB0aGlzLl9leHRlcm5hbFZhbHVlOyB9XG4gIGdldCBmb3JtYXQoKSB7IHJldHVybiB0aGlzLl9maWVsZEZvcm1hdDsgfVxuICBzZXQgZm9ybWF0KGZvcm1hdCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRGb3JtYXQsIGZvcm1hdCk7IH1cbiAgZ2V0IGhhc0NoYW5nZWQoKSB7IHJldHVybiB0aGlzLl9oYXNDaGFuZ2VkOyB9XG4gIHNldCBoYXNDaGFuZ2VkKGhhc0NoYW5nZWQpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmhhc0NoYW5nZWQsIGhhc0NoYW5nZWQpOyB9XG5cbiAgZ2V0IGluZm8oKSB7IHJldHVybiB0aGlzLl9maWVsZEluZm87IH1cbiAgc2V0IGluZm8obmV3SW5mbzogc3RyaW5nKSB7IHRoaXMuc2V0QXR0cihhdHRycy5maWVsZEluZm8sIG5ld0luZm8pOyB9XG4gIHNldCBpbnRyaW5zaWNFcnJvck1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7IHRoaXMuc2V0QXR0cihhdHRycy5pbnRyaW5zaWNFcnJvck1lc3NhZ2UsIG1lc3NhZ2UpOyB9XG4gIGdldCBtYXhMZW5ndGgoKSB7IHJldHVybiAodGhpcy5fbWF4TGVuZ3RoID4gMCkgPyB0aGlzLl9tYXhMZW5ndGgudG9TdHJpbmcoKSA6ICcnOyB9XG4gIHNldCBtYXhMZW5ndGgocmVxdWlyZWRNYXhMZW5ndGg6IGFueSkgeyB0aGlzLnNldEF0dHIoYXR0cnMubWF4TGVuZ3RoLCByZXF1aXJlZE1heExlbmd0aCA/ICtyZXF1aXJlZE1heExlbmd0aCA6IG51bGwpOyB9XG4gIGdldCBtYXhWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX21heFZhbHVlOyB9XG5cbiAgc2V0IG1heFZhbHVlKGlucHV0TWF4VmFsdWUpIHtcbiAgICBsZXQgbWF4VmFsdWUgPSBpbnB1dE1heFZhbHVlO1xuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5kYXRlKSB7XG4gICAgICBtYXhWYWx1ZSA9IG5ldyBEYXRlKG1heFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLm1heFZhbHVlLCBtYXhWYWx1ZSk7XG4gIH1cblxuICBnZXQgbWluTGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5fbWluTGVuZ3RoOyB9XG4gIHNldCBtaW5MZW5ndGgocmVxdWlyZWRNaW5MZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5taW5MZW5ndGgsIHJlcXVpcmVkTWluTGVuZ3RoID8gK3JlcXVpcmVkTWluTGVuZ3RoIDogbnVsbCk7XG4gIH1cbiAgZ2V0IG1pblZhbHVlKCkgeyByZXR1cm4gdGhpcy5fbWluVmFsdWU7IH1cblxuICBzZXQgbWluVmFsdWUoaW5wdXRNaW5WYWx1ZSkge1xuICAgIGxldCBtaW5WYWx1ZSA9IGlucHV0TWluVmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmRhdGUpIHtcbiAgICAgIG1pblZhbHVlID0gbmV3IERhdGUobWluVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnNldEF0dHIoYXR0cnMubWluVmFsdWUsIG1pblZhbHVlKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fZmllbGRDb2RlOyB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogRmllbGRPcHRpb25bXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9maWVsZE9wdGlvbnM/Lm1hcChvcHRpb24gPT4ge1xuICAgICAgY29uc3Qgb3B0aW9uQ29weTogRmllbGRPcHRpb24gPSB7IC4uLm9wdGlvbiB9O1xuICAgICAgcmV0dXJuIG9wdGlvbkNvcHk7XG4gICAgfSkgPz8gbnVsbDtcbiAgfVxuXG4gIHNldCBvcHRpb25zKG5ld09wdGlvbnMpIHtcbiAgICBpZiAoKCF0aGlzLl9mb3JtQ29uZmlnLmNhcHR1cmVUeXBlc1dpdGhPcHRpb25zLmluY2x1ZGVzKHRoaXMuX2NhcHR1cmVUeXBlKSlcbiAgICAgIHx8IHR5cGVvZiBuZXdPcHRpb25zID09PSBVTkRFRklORUQgfHwgIW5ld09wdGlvbnNcbiAgICAgIHx8ICFBcnJheS5pc0FycmF5KG5ld09wdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmaWVsZE9wdGlvbnMgPSBuZXdPcHRpb25zLm1hcCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmIChvcHRpb24udGV4dCAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi50ZXh0ICE9PSBudWxsXG4gICAgICAgICYmIG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4geyBmaWVsZE9wdGlvblZhbHVlOiBvcHRpb24udGV4dCwgZmllbGRPcHRpb25JZDogb3B0aW9uLnZhbHVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH0pO1xuICAgIGZpZWxkT3B0aW9ucyA9IChmaWVsZE9wdGlvbnMgJiYgQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbnMpXG4gICAgICAmJiBmaWVsZE9wdGlvbnMubGVuZ3RoID4gMCkgPyBmaWVsZE9wdGlvbnMgOiBbXTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRPcHRpb25zLCBmaWVsZE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl92YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5ICYmIEFycmF5LmlzQXJyYXkodGhpcy5fdmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLl92YWx1ZT8uZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgICB0aGlzLl9maWVsZE9wdGlvbnM/LmZpbmQob3B0ID0+IG9wdC5maWVsZE9wdGlvbklkID09PSBpdGVtKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEF0dHIoYXR0cnMudmFsdWUsIGZpZWxkVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmFsSW5PcHRpb25zID0gdGhpcy5fZmllbGRPcHRpb25zPy5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZE9wdGlvbklkID09PSB0aGlzLl92YWx1ZSk7XG4gICAgICAgIGlmICghdmFsSW5PcHRpb25zKSB7XG4gICAgICAgICAgdGhpcy5fc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWVsZFJlcXVpcmVkICYmIHRoaXMuX2ZpZWxkT3B0aW9ucz8ubGVuZ3RoID09PSAxICYmIHRoaXMuX3ZhbHVlICE9PSB0aGlzLl9maWVsZE9wdGlvbnM/LlswXS5maWVsZE9wdGlvbklkKSB7XG4gICAgICB0aGlzLl9zZXRWYWx1ZSh0aGlzLl9maWVsZE9wdGlvbnM/LlswXS5maWVsZE9wdGlvbklkKTtcbiAgICAgIHRoaXMubm90aWZ5RWRpdGlvbkZpbmlzaCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25UZXh0KCkgeyByZXR1cm4gdGhpcy5fZmllbGRPcHRpb25zPy5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZE9wdGlvbklkID09PSB0aGlzLl92YWx1ZSk/LmZpZWxkT3B0aW9uVmFsdWUgPz8gbnVsbDsgfVxuICBnZXQgb3V0cHV0T25seSgpIHsgcmV0dXJuIHRoaXMuX291dHB1dE9ubHk7IH1cbiAgc2V0IG91dHB1dE9ubHkob3V0cHV0T25seSkgeyB0aGlzLnNldEF0dHIoYXR0cnMub3V0cHV0T25seSwgb3V0cHV0T25seSk7IH1cbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZmllbGRSZXF1aXJlZDsgfVxuICBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmZpZWxkUmVxdWlyZWQsIHJlcXVpcmVkID8/IGZhbHNlKTsgfVxuICBnZXQgdGl0bGUoKSB7IHJldHVybiB0aGlzLl9maWVsZFRpdGxlOyB9XG4gIHNldCB0aXRsZSh0aXRsZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRUaXRsZSwgdGl0bGU/LnRvU3RyaW5nKCkgPz8gJycpOyB9XG4gIGdldCB0b29sdGlwKCkgeyByZXR1cm4gdGhpcy5fdG9vbHRpcFRleHQ7IH1cbiAgc2V0IHRvb2x0aXAodG9vbHRpcCkgeyB0aGlzLnNldEF0dHIoYXR0cnMudG9vbHRpcFRleHQsIHRvb2x0aXApOyB9XG4gIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fZmllbGRUeXBlOyB9XG4gIHNldCB0eXBlKGZpZWxkVHlwZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRUeXBlLCBmaWVsZFR5cGUpOyB9XG4gIGdldCBvblZhbGlkYXRpb24oKSB7IHJldHVybiB0aGlzLl9vblZhbGlkYXRpb247IH1cbiAgZ2V0IHZhbGlkYXRpbmcoKSB7IHJldHVybiB0aGlzLl9vblZhbGlkYXRpb247IH1cbiAgc2V0IHZhbGlkYXRpbmcoaXNWYWxpZGF0aW5nOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihhdHRycy5vblZhbGlkYXRpb24sIGlzVmFsaWRhdGluZyk7IH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhblxuICAgICAgfHwgdGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuY2hlY2spID8geW4odGhpcy5fdmFsdWUpIDogdGhpcy5fdmFsdWU7XG4gIH1cbiAgZ2V0IHZhbGlkYXRlT25TZXJ2ZXIoKSB7IHJldHVybiB0aGlzLl92YWxpZGF0ZU9uU2VydmVyOyB9XG4gIHNldCB2YWxpZGF0ZU9uU2VydmVyKHZhbGlkYXRlT25TZXJ2ZXIpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLnZhbGlkYXRlT25TZXJ2ZXIsIHZhbGlkYXRlT25TZXJ2ZXIpOyB9XG4gIGdldCBzZXJ2ZXJBY3Rpb24oKSB7IHJldHVybiB0aGlzLl92YWxpZGF0ZU9uU2VydmVyOyB9XG4gIHNldCBzZXJ2ZXJBY3Rpb24odmFsaWRhdGVPblNlcnZlcjogYm9vbGVhbikgeyB0aGlzLnZhbGlkYXRlT25TZXJ2ZXIgPSB2YWxpZGF0ZU9uU2VydmVyOyB9XG5cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlKSB7IHRoaXMuX3NldFZhbHVlKG5ld1ZhbHVlKTsgfVxuICBnZXQgdmlzaWJsZUxhYmVsKCkgeyByZXR1cm4gdGhpcy5fdmlzaWJsZUxhYmVsOyB9XG4gIHNldCB2aXNpYmxlTGFiZWwodmlzaWJsZUxhYmVsOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihhdHRycy52aXNpYmxlTGFiZWwsIHZpc2libGVMYWJlbCk7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHZhbHVlXG4gICAqL1xuICBnZXQgZmllbGRWYWx1ZSgpIHsgcmV0dXJuIHRoaXMudmFsdWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGhhc0NoYW5nZWRcbiAgICovXG4gIGNoYW5nZWQoaGFzQ2hhbmdlZCA9IHRydWUpIHsgdGhpcy5oYXNDaGFuZ2VkID0gaGFzQ2hhbmdlZDsgfVxuXG4gIGNsZWFuKCkgeyB0aGlzLl9zZXRWYWx1ZSh0aGlzLl9kZWZhdWx0VmFsdWUgfHwgJycpOyB0aGlzLnJlc2V0RXJyb3IoKTsgfVxuICBmb2N1cygpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmZvY3VzLCB0cnVlKTsgfVxuICBnZXRFcnJvckNvZGUoKSB7IHJldHVybiB0aGlzLmVycm9yLmNvZGU7IH1cbiAgc2V0RXJyb3JDb2RlKGNvZGUpIHsgdGhpcy5zZXRFcnJvcihjb2RlLCB0aGlzLl9lcnJvck1lc3NhZ2UpOyB9XG4gIGdldEVycm9yTWVzc2FnZSgpIHsgcmV0dXJuIHRoaXMuZXJyb3IubWVzc2FnZTsgfVxuICBzZXRFcnJvck1lc3NhZ2UobXNnKSB7IHRoaXMuc2V0RXJyb3IodGhpcy5fZXJyb3JDb2RlLCBtc2cpOyB9XG4gIGdldFJlcXVpcmVkKCkgeyByZXR1cm4gdGhpcy5yZXF1aXJlZDsgfVxuICBoYXNFcnJvcigpIHsgcmV0dXJuIHRoaXMuX2Vycm9yQ29kZSAhPT0gTk9fRVJST1I7IH1cbiAgaGlkZUxhYmVsKCkgeyB0aGlzLnZpc2libGVMYWJlbCA9IGZhbHNlOyB9XG4gIHJlc2V0RXJyb3IoKSB7ICh0aGlzLl9lcnJvckNvZGUgIT09IE5PX0VSUk9SKSAmJiB0aGlzLnNldEVycm9yKE5PX0VSUk9SLCBudWxsKTsgfVxuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbiA9IHRydWUpIHsgKGVkaXRhYmxlKSA/IHRoaXMuZW5hYmxlKCkgOiB0aGlzLmRpc2FibGUoKTsgfVxuICBzZXRWYWx1ZShuZXdWYWx1ZSwgd2lkZ2V0VXBkYXRlID0gdHJ1ZSkgeyB0aGlzLl9zZXRWYWx1ZShuZXdWYWx1ZSwgd2lkZ2V0VXBkYXRlKTsgfVxuICBzaG93TGFiZWwoKSB7IHRoaXMudmlzaWJsZUxhYmVsID0gdHJ1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgY29kZVxuICAgKi9cbiAgZ2V0IGZpZWxkQ29kZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQ29kZTsgfVxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB0aXRsZVxuICAgKi9cbiAgc2V0TGFiZWwobGFiZWwpIHsgdGhpcy50aXRsZSA9IGxhYmVsOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSByZXF1aXJlZFxuICAgKi9cbiAgc2V0UmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBjaGFuZ2VkXG4gICAqL1xuICBzZXRDaGFuZ2VkKGhhc0NoYW5nZWQ6IGJvb2xlYW4pIHsgdGhpcy5jaGFuZ2VkKGhhc0NoYW5nZWQpOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB2YWx1ZVxuICAgKi9cbiAgZ2V0VmFsdWUoKTogYW55IHsgcmV0dXJuIHRoaXMudmFsdWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVtcHR5XG4gICAqL1xuICBpc0VtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbXB0eSB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBlcnJvclxuICAgKi9cbiAgZ2V0RXJyb3IoKSB7IHJldHVybiB0aGlzLmVycm9yOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25UZXh0XG4gICAqL1xuICBnZXRPcHRpb25UZXh0KCkgeyByZXR1cm4gdGhpcy5vcHRpb25UZXh0OyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25zXG4gICAqL1xuICBnZXRGaWVsZE9wdGlvbnMoKSB7IHJldHVybiB0aGlzLm9wdGlvbnM7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIHNldEZpZWxkT3B0aW9ucyhuZXdPcHRpb25zKSB7IHJldHVybiB0aGlzLm9wdGlvbnMgPSBuZXdPcHRpb25zOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBpbnRyaW5zaWNFcnJvck1lc3NhZ2VcbiAgICovXG4gIHNldEludHJpbnNpY0Vycm9yTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHsgdGhpcy5pbnRyaW5zaWNFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBtYXhWYWx1ZVxuICAgKi9cbiAgc2V0TWF4VmFsdWUoaW5wdXRNYXhWYWx1ZSkgeyB0aGlzLm1heFZhbHVlID0gaW5wdXRNYXhWYWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgbWluVmFsdWVcbiAgICovXG4gIHNldE1pblZhbHVlKGlucHV0TWluVmFsdWUpIHsgdGhpcy5taW5WYWx1ZSA9IGlucHV0TWluVmFsdWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHNob3dMYWJlbFxuICAgKi9cbiAgc2V0VmlzaWJsZUxhYmVsKHZpc2libGVMYWJlbDogYm9vbGVhbikgeyB0aGlzLnZpc2libGVMYWJlbCA9IHZpc2libGVMYWJlbDsgfVxuXG5cbiAgbm90aWZ5RWRpdGlvblBhcnRpYWwoKSB7XG4gICAgdGhpcy5yZXNldEVycm9yKCk7XG4gICAgdGhpcy5fZWRpdGlvblBhcnRpYWwubmV4dCh7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgaW50cmluc2ljVmFsaWRhdGlvbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIG5vdGlmeUVkaXRpb25GaW5pc2goKSB7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5yZXNldEVycm9yKCk7XG4gICAgY29uc3QgdmFsaWRhdGlvbkNvbmZpZyA9IHRoaXMuX2Zvcm1Db25maWcuZmllbGRWYWxpZGF0aW9ucz8uW3RoaXMuX2ZpZWxkVHlwZV0gPz8ge307XG4gICAgY29uc3QgeyB0eXBlLCB2YWxpZGF0aW9uIH0gPSB2YWxpZGF0aW9uQ29uZmlnO1xuICAgIGxldCBtZXNzYWdlID0gdmFsaWRhdGlvbkNvbmZpZz8ubWVzc2FnZTtcbiAgICBsZXQgaW50cmluc2ljVmFsaWRhdGlvbiA9IHRydWU7XG4gICAgaWYgKGZpZWxkVmFsdWUgJiYgKHZhbGlkYXRpb24gfHwgdGhpcy5fZmllbGRGb3JtYXQpKSB7XG4gICAgICBpZiAodHlwZSA9PT0gJ3JlZ2V4cCcpIHtcbiAgICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9ICh2YWxpZGF0aW9uPy50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpXG4gICAgICAgICAgJiYgKHRoaXMuX2ZpZWxkRm9ybWF0Py50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWxpZGF0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsaWQsIG1lc3NhZ2U6IGN1c3RvbU1lc3NhZ2UgfSA9IHZhbGlkYXRpb24oZmllbGRWYWx1ZSwgdGhpcyk7XG4gICAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSB2YWxpZDtcbiAgICAgICAgbWVzc2FnZSA9IGN1c3RvbU1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBpZiAoIWludHJpbnNpY1ZhbGlkYXRpb24pIHtcbiAgICAgICAgdGhpcy5zZXRFcnJvcignOTknLCBtZXNzYWdlID8/IHRoaXMuX2ludHJpbnNpY0Vycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbnRyaW5zaWNWYWxpZGF0aW9uICYmIGZpZWxkVmFsdWUgJiYgdGhpcy5fbWluVmFsdWUgJiYgZmllbGRWYWx1ZSA8IHRoaXMuX21pblZhbHVlKSB7XG4gICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEVycm9yKCc5OScsICdDYW1wbyBjb24gdmFsb3IgaW5mZXJpb3IgYWwgbcOtbmltbycpO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljVmFsaWRhdGlvbiAmJiBmaWVsZFZhbHVlICYmIHRoaXMuX21heFZhbHVlICYmIGZpZWxkVmFsdWUgPiB0aGlzLl9tYXhWYWx1ZSkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRFcnJvcignOTknLCAnQ2FtcG8gY29uIHZhbG9yIHN1cGVyaW9yIGFsIG3DoXhpbW8nKTtcbiAgICB9XG4gICAgaWYgKGludHJpbnNpY1ZhbGlkYXRpb24gJiYgZmllbGRWYWx1ZSAmJiB0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIHRoaXMuX21pbkxlbmd0aCAmJiBmaWVsZFZhbHVlPy5sZW5ndGggPCB0aGlzLl9taW5MZW5ndGgpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgYExvbmdpdHVkIGRlICR7dGhpcy5fZmllbGRUaXRsZX0gZGViZSBzZXIgZGUgYWwgbWVub3MgJHt0aGlzLl9taW5MZW5ndGh9YCk7XG4gICAgfVxuICAgIHRoaXMuX2VkaXRpb25GaW5pc2gubmV4dCh7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgaW50cmluc2ljVmFsaWRhdGlvbiB9KTtcbiAgfVxuXG4gIG5vdGlmeUVkaXRpb25EZXRhaWxSZXF1ZXN0KGRldGFpbDogYW55KSB7XG4gICAgY29uc3QgZGV0YWlsRXZlbnQ6IERldGFpbEV2ZW50ID0geyBjb2RlOiB0aGlzLl9maWVsZENvZGUsIGRldGFpbCB9O1xuICAgIHRoaXMuX2RldGFpbFJlcXVlc3QubmV4dChkZXRhaWxFdmVudCk7XG4gIH1cblxuICBzZXRFcnJvcihjb2RlLCBtZXNzYWdlLCB0eXBlID0gREVGQVVMVF9FUlJPUl9UWVBFKSB7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmVycm9yQ29kZSwgY29kZSA/PyBOT19FUlJPUik7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmVycm9yVHlwZSwgKHRoaXMuX2Vycm9yQ29kZSA9PT0gTk9fRVJST1IpID8gJycgOiB0eXBlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZXJyb3JNZXNzYWdlLCBtZXNzYWdlID8/ICcnKTtcbiAgfVxuXG4gIHVwZGF0ZUZyb21TZXJ2ZXIoZmxkKSB7XG4gICAgY29uc3QgZmllbGRLZXlzID0gT2JqZWN0LmtleXMoZmxkKTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmllbGRLZXlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgYXR0ck5hbWUgPSBmaWVsZEtleXNbaW5kZXhdO1xuICAgICAgY29uc3QgYXR0clZhbHVlID0gZmxkW2F0dHJOYW1lXTtcbiAgICAgIGlmIChkaXJlY3RDaGFuZ2VzLmluY2x1ZGVzKGF0dHJOYW1lKSkge1xuICAgICAgICB0aGlzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2xhYmVsJykgJiYgKHRoaXMudGl0bGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdsYWJlbFZpc2libGUnKSAmJiAodGhpcy52aXNpYmxlTGFiZWwgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdlZGl0YWJsZScpICYmIHRoaXMuc2V0RWRpdGFibGUoYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAndmlzaWJsZScpICYmIHRoaXMuc2V0VmlzaWJpbGl0eShhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICd2YWx1ZScpICYmICh0aGlzLl9zZXRWYWx1ZShhdHRyVmFsdWUpICYmICh0aGlzLmhhc0NoYW5nZWQgPSBmYWxzZSkpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFZhbHVlJykgJiYgKHRoaXMuX3NldFZhbHVlKGF0dHJWYWx1ZSkgJiYgKHRoaXMuaGFzQ2hhbmdlZCA9IGZhbHNlKSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkT3B0aW9ucycpICYmICh0aGlzLm9wdGlvbnMgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFRpdGxlJykgJiYgKHRoaXMudGl0bGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFR5cGVDb2RlJykgJiYgKHRoaXMudHlwZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVHlwZScpICYmICh0aGlzLnR5cGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICd0b29sdGlwVGV4dCcpICYmICh0aGlzLnRvb2x0aXAgPSBhdHRyVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUgPSB0cnVlKSB7XG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gVU5ERUZJTkVEKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhbHVlID09PSBudWxsICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsZXQgbmV3RmluYWxWYWx1ZTtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhblxuICAgICAgfHwgdGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuY2hlY2spIHtcbiAgICAgIG5ld0ZpbmFsVmFsdWUgPSB5bihuZXdWYWx1ZSkgPz8gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheVxuICAgICAgfHwgdGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMubWFwKSB7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IG51bGwgfHwgbmV3VmFsdWUgPT09ICcnKSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IG5ld0ZpbmFsVmFsdWUpIHtcbiAgICAgIHRoaXMuaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICBpZiAod2lkZ2V0VXBkYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cihhdHRycy52YWx1ZSwgbmV3RmluYWxWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld0ZpbmFsVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLGFBQWEsR0FBRztJQUNwQixpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7SUFDcEcsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTTtJQUNsRyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWM7SUFDcEcsU0FBUyxFQUFFLGFBQWE7Q0FDekIsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHO0lBQ1osV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO0lBQy9ELFNBQVMsRUFBRSxFQUFF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QUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeW4gZnJvbSAneW4nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzLCBOT19FUlJPUiB9IGZyb20gJy4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuXG5jb25zdCBVTkRFRklORUQgPSAndW5kZWZpbmVkJztcblxuY29uc3QgREVGQVVMVF9FUlJPUl9UWVBFID0gJ2Vycm9yJztcbmNvbnN0IERFRkFVTFRfQ0FQVFVSRV9UWVBFID0gJ0lOUFVUJztcbmNvbnN0IERFRkFVTFRfQUxJR05NRU5UID0gJ2xlZnQnO1xuXG5jb25zdCBTVERfTUFYX0xFTkdUSCA9IDUwO1xuY29uc3QgQklHX01BWF9MRU5HVEggPSA1MDA7XG5cbmNvbnN0IGRpcmVjdENoYW5nZXMgPSBbXG4gICdkZWZhdWx0RWRpdGFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2FsaWdubWVudCcsICdyZXF1aXJlZCcsICdlcnJvckNvZGUnLCAnZXJyb3JNZXNzYWdlJywgJ2Vycm9yVHlwZScsXG4gICd0b29sdGlwJywgJ2luZm8nLCAnZm9ybWF0JywgJ2ludHJpbnNpY0Vycm9yTWVzc2FnZScsICdvdXRwdXRPbmx5JywgJ2NhcHR1cmVUeXBlJywgJ3RpdGxlJywgJ3R5cGUnLFxuICAnbWF4TGVuZ3RoJywgJ21heFZhbHVlJywgJ21pbkxlbmd0aCcsICdtaW5WYWx1ZScsICd2YWxpZGF0ZU9uU2VydmVyJywgJ3NlcnZlckFjdGlvbicsICd2aXNpYmxlTGFiZWwnLFxuICAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsXG5dO1xuXG5jb25zdCBhdHRycyA9IHtcbiAgY2FwdHVyZVR5cGU6IHsgbmFtZTogJ19jYXB0dXJlVHlwZScsIHByb3BhZ2F0ZTogJ2NhcHR1cmVUeXBlJyB9LFxuICBlcnJvckNvZGU6IHsgbmFtZTogJ19lcnJvckNvZGUnLCBwcm9wYWdhdGU6ICdlcnJvckNvZGUnIH0sXG4gIGVycm9yTWVzc2FnZTogeyBuYW1lOiAnX2Vycm9yTWVzc2FnZScsIHByb3BhZ2F0ZTogJ2Vycm9yTWVzc2FnZScgfSxcbiAgZXJyb3JUeXBlOiB7IG5hbWU6ICdfZXJyb3JUeXBlJywgcHJvcGFnYXRlOiAnZXJyb3JUeXBlJyB9LFxuICBkZWZhdWx0VmFsdWU6IHsgbmFtZTogJ19kZWZhdWx0VmFsdWUnLCBwcm9wYWdhdGU6ICdkZWZhdWx0VmFsdWUnIH0sXG4gIGRlZmF1bHRFZGl0YWJsZTogeyBuYW1lOiAnX2RlZmF1bHRFZGl0YWJsZScsIHByb3BhZ2F0ZTogJ2RlZmF1bHRFZGl0YWJsZScgfSxcbiAgZmllbGRBbGlnbm1lbnQ6IHsgbmFtZTogJ19maWVsZEFsaWdubWVudCcsIHByb3BhZ2F0ZTogJ2FsaWdubWVudCcgfSxcbiAgZmllbGRDb2RlOiB7IG5hbWU6ICdfZmllbGRDb2RlJywgcHJvcGFnYXRlOiAnY29kZScgfSxcbiAgZmllbGRJbmZvOiB7IG5hbWU6ICdfZmllbGRJbmZvJywgcHJvcGFnYXRlOiAnaW5mbycgfSxcbiAgZmllbGRSZXF1aXJlZDogeyBuYW1lOiAnX2ZpZWxkUmVxdWlyZWQnLCBwcm9wYWdhdGU6ICdyZXF1aXJlZCcgfSxcbiAgZmllbGRUaXRsZTogeyBuYW1lOiAnX2ZpZWxkVGl0bGUnLCBwcm9wYWdhdGU6ICd0aXRsZScgfSxcbiAgZmllbGRUeXBlOiB7IG5hbWU6ICdfZmllbGRUeXBlJywgcHJvcGFnYXRlOiAndHlwZScgfSxcbiAgZmllbGRGb3JtYXQ6IHsgbmFtZTogJ19maWVsZEZvcm1hdCcsIHByb3BhZ2F0ZTogJ2Zvcm1hdCcgfSxcbiAgZmllbGRPcHRpb25zOiB7IG5hbWU6ICdfZmllbGRPcHRpb25zJywgcHJvcGFnYXRlOiAnb3B0aW9ucycgfSxcbiAgZm9jdXM6IHsgbmFtZTogJ19mb2N1cycsIHByb3BhZ2F0ZTogJ2ZvY3VzJyB9LFxuICBoYXNDaGFuZ2VkOiB7IG5hbWU6ICdfaGFzQ2hhbmdlZCcsIHByb3BhZ2F0ZTogJ2hhc0NoYW5nZWQnIH0sXG4gIGludHJpbnNpY0Vycm9yTWVzc2FnZTogeyBuYW1lOiAnX2ludHJpbnNpY0Vycm9yTWVzc2FnZScsIHByb3BhZ2F0ZTogbnVsbCB9LFxuICBtYXhMZW5ndGg6IHsgbmFtZTogJ19tYXhMZW5ndGgnLCBwcm9wYWdhdGU6ICdtYXhMZW5ndGgnIH0sXG4gIG1heFZhbHVlOiB7IG5hbWU6ICdfbWF4VmFsdWUnLCBwcm9wYWdhdGU6ICdtYXhWYWx1ZScgfSxcbiAgbWluTGVuZ3RoOiB7IG5hbWU6ICdfbWluTGVuZ3RoJywgcHJvcGFnYXRlOiAnbWluTGVuZ3RoJyB9LFxuICBtaW5WYWx1ZTogeyBuYW1lOiAnX21pblZhbHVlJywgcHJvcGFnYXRlOiAnbWluVmFsdWUnIH0sXG4gIG9uVmFsaWRhdGlvbjogeyBuYW1lOiAnX29uVmFsaWRhdGlvbicsIHByb3BhZ2F0ZTogJ29uVmFsaWRhdGlvbicgfSxcbiAgb3V0cHV0T25seTogeyBuYW1lOiAnX291dHB1dE9ubHknLCBwcm9wYWdhdGU6ICdvdXRwdXRPbmx5JyB9LFxuICBwbGFjZWhvbGRlcjogeyBuYW1lOiAnX3BsYWNlaG9sZGVyJywgcHJvcGFnYXRlOiAncGxhY2Vob2xkZXInIH0sXG4gIHRvb2x0aXBUZXh0OiB7IG5hbWU6ICdfdG9vbHRpcFRleHQnLCBwcm9wYWdhdGU6ICd0b29sdGlwJyB9LFxuICB2YWxpZGF0ZU9uU2VydmVyOiB7IG5hbWU6ICdfdmFsaWRhdGVPblNlcnZlcicsIHByb3BhZ2F0ZTogJ3ZhbGlkYXRlT25TZXJ2ZXInIH0sXG4gIHZhbHVlOiB7IG5hbWU6ICdfdmFsdWUnLCBwcm9wYWdhdGU6ICd2YWx1ZScgfSxcbiAgdmlzaWJsZUxhYmVsOiB7IG5hbWU6ICdfdmlzaWJsZUxhYmVsJywgcHJvcGFnYXRlOiAndmlzaWJsZUxhYmVsJyB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBEZXRhaWxFdmVudCB7XG4gIGNvZGU6IHN0cmluZztcbiAgZGV0YWlsOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRPcHRpb24ge1xuICBmaWVsZE9wdGlvblZhbHVlOiBzdHJpbmc7XG4gIGZpZWxkT3B0aW9uSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkRGVzY3JpcHRvciBleHRlbmRzIEZvcm1FbGVtZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGlvbkZpbmlzaCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGlvblBhcnRpYWwgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RldGFpbFJlcXVlc3QgPSBuZXcgU3ViamVjdDxEZXRhaWxFdmVudD4oKTtcblxuICBwcml2YXRlIF9lcnJvclR5cGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9lcnJvckNvZGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9lcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9pbnRyaW5zaWNFcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9taW5WYWx1ZTogYW55O1xuICBwcml2YXRlIF9tYXhWYWx1ZTogYW55O1xuICBwcml2YXRlIF9tYXhMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX21pbkxlbmd0aDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb25WYWxpZGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbGlkYXRlT25TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfdmlzaWJsZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2NhcHR1cmVUeXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlOiBhbnkgPSAnJztcbiAgcHJpdmF0ZSBfZGVmYXVsdEVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2V4dGVybmFsVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfZmllbGRBbGlnbm1lbnQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZEluZm86IGFueSA9ICcnO1xuICBwcml2YXRlIF9maWVsZFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpZWxkVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZFR5cGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZEZvcm1hdDogUmVnRXhwIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2hhc0NoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3V0cHV0T25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF90b29sdGlwVGV4dDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRDb2RlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRPcHRpb25zOiBGaWVsZE9wdGlvbltdIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLnByb3BhZ2F0aW9uQ3VzdG9tQXR0cmlidXRlcyA9IHRoaXMuX2Zvcm1Db25maWc/LnByb3BhZ2F0aW9uQ3VzdG9tQXR0cmlidXRlcz8uZmllbGRzID8/IFtdO1xuICAgIHRoaXMuZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZXMuZmllbGQ7XG4gICAgY29uc3QgZmxkID0gKGlucHV0RmllbGRSZWNlaXZlZCkgPyBpbnB1dEZpZWxkUmVjZWl2ZWQgOiB7fTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRDb2RlLCBmbGQuZmllbGRDb2RlKTtcbiAgICB0aGlzLnRpdGxlID0gZmxkLmZpZWxkVGl0bGUgPz8gdGhpcy5fZmllbGRDb2RlO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmbGQucGxhY2Vob2xkZXIgPz8gdGhpcy50aXRsZTtcbiAgICB0aGlzLnR5cGUgPSBmbGQuZmllbGRUeXBlQ29kZTtcbiAgICB0aGlzLmNhcHR1cmVUeXBlID0gZmxkLmNhcHR1cmVUeXBlID8/IERFRkFVTFRfQ0FQVFVSRV9UWVBFO1xuXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZmxkLmRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuKSB7XG4gICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZSA/PyBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRUeXBlQWxpZ25tZW50ID0gKHRoaXMuX2Zvcm1Db25maWcudGFibGVGaWVsZFN0eWxlc1t0aGlzLl9maWVsZFR5cGVdICE9IG51bGwpXG4gICAgICA/IHRoaXMuX2Zvcm1Db25maWcudGFibGVGaWVsZFN0eWxlc1t0aGlzLl9maWVsZFR5cGVdWyd0ZXh0LWFsaWduJ10gOiBERUZBVUxUX0FMSUdOTUVOVDtcbiAgICBjb25zdCBmaWVsZEFsaWdubWVudCA9IChmbGQuYWxpZ25tZW50ICE9IG51bGwpID8gZmxkLmFsaWdubWVudC50b0xvd2VyQ2FzZSgpIDogZGVmYXVsdFR5cGVBbGlnbm1lbnQ7XG4gICAgdGhpcy5hbGlnbm1lbnQgPSBmaWVsZEFsaWdubWVudDtcbiAgICB0aGlzLmluZm8gPSBmbGQuaW5mbyB8fCAnJztcbiAgICBsZXQgZmllbGRGb3JtYXQ7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChmbGQuZm9ybWF0ICYmIHR5cGVvZiBmbGQuZm9ybWF0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBmaWVsZEZvcm1hdCA9IG5ldyBSZWdFeHAoZmxkLmZvcm1hdCk7XG4gICAgICB9IGVsc2UgaWYgKGZsZC5mb3JtYXQ/LnJlZ0V4cCkge1xuICAgICAgICBmaWVsZEZvcm1hdCA9IG5ldyBSZWdFeHAoZmxkLmZvcm1hdD8ucmVnRXhwKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBmaWVsZEZvcm1hdCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0ID0gZmllbGRGb3JtYXQ7XG4gICAgdGhpcy52YWxpZGF0ZU9uU2VydmVyID0gZmxkLnNlcnZlckFjdGlvbiA/PyBmYWxzZTtcbiAgICB0aGlzLnRvb2x0aXAgPSBmbGQudG9vbHRpcCB8fCAnJztcbiAgICB0aGlzLmRlZmF1bHRFZGl0YWJsZSA9IHRoaXMuZW5hYmxlZDtcbiAgICB0aGlzLnJlcXVpcmVkID0gZmxkLnJlcXVpcmVkID8/IGZhbHNlO1xuICAgIHRoaXMub3V0cHV0T25seSA9IGZsZC5vdXRwdXRPbmx5ID8/IGZhbHNlO1xuICAgIHRoaXMubWluTGVuZ3RoID0gZmxkLm1pbkxlbmd0aCA/PyAwO1xuICAgIHRoaXMubWF4TGVuZ3RoID0gZmxkLm1heExlbmd0aCB8fCAodGhpcy5fY2FwdHVyZVR5cGUgPT09ICdURVhUQVJFQScgPyBCSUdfTUFYX0xFTkdUSCA6IFNURF9NQVhfTEVOR1RIKTtcbiAgICB0aGlzLmludHJpbnNpY0Vycm9yTWVzc2FnZSA9IHRoaXMuX2Zvcm1Db25maWc/LmZpZWxkVmFsaWRhdGlvbnM/Llt0aGlzLl9maWVsZFR5cGVdPy5tZXNzYWdlXG4gICAgICA/PyB0aGlzLl9mb3JtQ29uZmlnPy5maWVsZFZhbGlkYXRpb25zPy5ERUZBVUxUPy5tZXNzYWdlID8/ICcnO1xuXG4gICAgdGhpcy5zZXRFcnJvcihmbGQuZXJyb3JDb2RlLCBmbGQuZXJyb3JNZXNzYWdlLCBmbGQuZXJyb3JUeXBlID8/IERFRkFVTFRfRVJST1JfVFlQRSk7XG4gICAgdGhpcy5zZXRFZGl0YWJsZShmbGQuZWRpdGFibGUgPz8gdHJ1ZSk7XG4gICAgdGhpcy52aXNpYmxlTGFiZWwgPSBmbGQudmlzaWJsZUxhYmVsID8/IHRydWU7XG4gICAgdGhpcy5zZXRWaXNpYmlsaXR5KGZsZC52aXNpYmxlKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBmbGQuZmllbGRPcHRpb25zO1xuICAgIHRoaXMuX3NldFZhbHVlKGZsZC5maWVsZFZhbHVlID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSA/PyAnJyk7XG4gIH1cblxuICBnZXQgYWxpZ25tZW50KCkgeyByZXR1cm4gdGhpcy5fZmllbGRBbGlnbm1lbnQ7IH1cbiAgc2V0IGFsaWdubWVudChhbGlnbm1lbnQpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmZpZWxkQWxpZ25tZW50LCBhbGlnbm1lbnQpOyB9XG4gIGdldCBiYWNrZW5kKCkgeyByZXR1cm4gdGhpcy5fdmFsaWRhdGVPblNlcnZlcjsgfVxuXG4gIGdldCBjYXB0dXJlVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2NhcHR1cmVUeXBlOyB9XG4gIHNldCBjYXB0dXJlVHlwZShjYXB0dXJlVHlwZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuY2FwdHVyZVR5cGUsIGNhcHR1cmVUeXBlKTsgfVxuXG4gIGdldCBwbGFjZWhvbGRlcigpIHsgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyOyB9XG4gIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcikgeyB0aGlzLnNldEF0dHIoYXR0cnMucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyKTsgfVxuXG4gIGdldCBjb2RlKCkgeyByZXR1cm4gdGhpcy5fZmllbGRDb2RlOyB9XG4gIGdldCBkZWZhdWx0VmFsdWUoKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7IH1cbiAgc2V0IGRlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmRlZmF1bHRWYWx1ZSwgZGVmYXVsdFZhbHVlKTsgfVxuICBnZXQgZGVmYXVsdEVkaXRhYmxlKCkgeyByZXR1cm4gdGhpcy5fZGVmYXVsdEVkaXRhYmxlOyB9XG4gIHNldCBkZWZhdWx0RWRpdGFibGUoZWRpdGFibGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmRlZmF1bHRFZGl0YWJsZSwgZWRpdGFibGUpOyB9XG4gIGdldCBkZXRhaWxSZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fZGV0YWlsUmVxdWVzdDsgfVxuICBnZXQgZWRpdGlvbkZpbmlzaCgpIHsgcmV0dXJuIHRoaXMuX2VkaXRpb25GaW5pc2g7IH1cbiAgZ2V0IGVkaXRpb25QYXJ0aWFsKCkgeyByZXR1cm4gdGhpcy5fZWRpdGlvblBhcnRpYWw7IH1cblxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRDdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGlmIChmaWVsZEN1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkQ3VycmVudFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5XG4gICAgICAmJiBBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSAmJiBmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLnBob25lKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCAhPT0gMiB8fCAhZmllbGRDdXJyZW50VmFsdWVbMF0gfHwgIWZpZWxkQ3VycmVudFZhbHVlWzFdKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgY29uc3QgYXJyYXlGaWVsZFR5cGVzID0gdGhpcy5fZm9ybUNvbmZpZy5hcnJheUZpZWxkVHlwZXMgPz8gbnVsbDtcbiAgICBpZiAoYXJyYXlGaWVsZFR5cGVzICYmIE9iamVjdC5rZXlzKGFycmF5RmllbGRUeXBlcykuaW5jbHVkZXModGhpcy5fZmllbGRUeXBlKSkge1xuICAgICAgbGV0IGFycmF5U2l6ZSA9IGFycmF5RmllbGRUeXBlc1t0aGlzLl9maWVsZFR5cGVdO1xuICAgICAgYXJyYXlTaXplID0gIU51bWJlci5pc05hTigrYXJyYXlTaXplKSA/ICthcnJheVNpemUgOiAwO1xuICAgICAgaWYgKGFycmF5U2l6ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpICYmIGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCA9PT0gMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpICYmIGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCA8IGFycmF5U2l6ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gZmllbGRDdXJyZW50VmFsdWUgPT09ICcnO1xuICB9XG5cbiAgZ2V0IGVycm9yKCkgeyByZXR1cm4geyB0eXBlOiB0aGlzLl9lcnJvclR5cGUsIGNvZGU6IHRoaXMuX2Vycm9yQ29kZSwgbWVzc2FnZTogdGhpcy5fZXJyb3JNZXNzYWdlIH07IH1cbiAgc2V0IGVycm9yKGVycm9yT2JqKSB7IHRoaXMuc2V0RXJyb3IoZXJyb3JPYmouY29kZSwgZXJyb3JPYmoubWVzc2FnZSwgZXJyb3JPYmoudHlwZSA/PyBERUZBVUxUX0VSUk9SX1RZUEUpIH1cbiAgZ2V0IGVycm9yQ29kZSgpIHsgcmV0dXJuIHRoaXMuX2Vycm9yQ29kZTsgfVxuICBzZXQgZXJyb3JDb2RlKGNvZGUpIHsgdGhpcy5zZXRFcnJvcihjb2RlLCB0aGlzLl9lcnJvck1lc3NhZ2UpOyB9XG4gIGdldCBlcnJvck1lc3NhZ2UoKSB7IHJldHVybiB0aGlzLl9lcnJvck1lc3NhZ2U7IH1cbiAgc2V0IGVycm9yTWVzc2FnZShtc2cpIHsgdGhpcy5zZXRFcnJvcih0aGlzLl9lcnJvckNvZGUsIG1zZyk7IH1cbiAgZ2V0IGVycm9yVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2Vycm9yVHlwZTsgfVxuICBnZXQgZXh0ZXJuYWxWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2V4dGVybmFsVmFsdWU7IH1cbiAgZ2V0IGZvcm1hdCgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkRm9ybWF0OyB9XG4gIHNldCBmb3JtYXQoZm9ybWF0KSB7IHRoaXMuc2V0QXR0cihhdHRycy5maWVsZEZvcm1hdCwgZm9ybWF0KTsgfVxuICBnZXQgaGFzQ2hhbmdlZCgpIHsgcmV0dXJuIHRoaXMuX2hhc0NoYW5nZWQ7IH1cbiAgc2V0IGhhc0NoYW5nZWQoaGFzQ2hhbmdlZCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuaGFzQ2hhbmdlZCwgaGFzQ2hhbmdlZCk7IH1cblxuICBnZXQgaW5mbygpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mbzsgfVxuICBzZXQgaW5mbyhuZXdJbmZvOiBzdHJpbmcpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmZpZWxkSW5mbywgbmV3SW5mbyk7IH1cbiAgc2V0IGludHJpbnNpY0Vycm9yTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmludHJpbnNpY0Vycm9yTWVzc2FnZSwgbWVzc2FnZSk7IH1cbiAgZ2V0IG1heExlbmd0aCgpIHsgcmV0dXJuICh0aGlzLl9tYXhMZW5ndGggPiAwKSA/IHRoaXMuX21heExlbmd0aC50b1N0cmluZygpIDogJyc7IH1cbiAgc2V0IG1heExlbmd0aChyZXF1aXJlZE1heExlbmd0aDogYW55KSB7IHRoaXMuc2V0QXR0cihhdHRycy5tYXhMZW5ndGgsIHJlcXVpcmVkTWF4TGVuZ3RoID8gK3JlcXVpcmVkTWF4TGVuZ3RoIDogbnVsbCk7IH1cbiAgZ2V0IG1heFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fbWF4VmFsdWU7IH1cblxuICBzZXQgbWF4VmFsdWUoaW5wdXRNYXhWYWx1ZSkge1xuICAgIGxldCBtYXhWYWx1ZSA9IGlucHV0TWF4VmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmRhdGUpIHtcbiAgICAgIG1heFZhbHVlID0gbmV3IERhdGUobWF4VmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnNldEF0dHIoYXR0cnMubWF4VmFsdWUsIG1heFZhbHVlKTtcbiAgfVxuXG4gIGdldCBtaW5MZW5ndGgoKSB7IHJldHVybiB0aGlzLl9taW5MZW5ndGg7IH1cbiAgc2V0IG1pbkxlbmd0aChyZXF1aXJlZE1pbkxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLm1pbkxlbmd0aCwgcmVxdWlyZWRNaW5MZW5ndGggPyArcmVxdWlyZWRNaW5MZW5ndGggOiBudWxsKTtcbiAgfVxuICBnZXQgbWluVmFsdWUoKSB7IHJldHVybiB0aGlzLl9taW5WYWx1ZTsgfVxuXG4gIHNldCBtaW5WYWx1ZShpbnB1dE1pblZhbHVlKSB7XG4gICAgbGV0IG1pblZhbHVlID0gaW5wdXRNaW5WYWx1ZTtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuZGF0ZSkge1xuICAgICAgbWluVmFsdWUgPSBuZXcgRGF0ZShtaW5WYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihhdHRycy5taW5WYWx1ZSwgbWluVmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9maWVsZENvZGU7IH1cblxuICBnZXQgb3B0aW9ucygpOiBGaWVsZE9wdGlvbltdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkT3B0aW9ucz8ubWFwKG9wdGlvbiA9PiB7XG4gICAgICBjb25zdCBvcHRpb25Db3B5OiBGaWVsZE9wdGlvbiA9IHsgLi4ub3B0aW9uIH07XG4gICAgICByZXR1cm4gb3B0aW9uQ29weTtcbiAgICB9KSA/PyBudWxsO1xuICB9XG5cbiAgc2V0IG9wdGlvbnMobmV3T3B0aW9ucykge1xuICAgIGlmICgoIXRoaXMuX2Zvcm1Db25maWcuY2FwdHVyZVR5cGVzV2l0aE9wdGlvbnMuaW5jbHVkZXModGhpcy5fY2FwdHVyZVR5cGUpKVxuICAgICAgfHwgdHlwZW9mIG5ld09wdGlvbnMgPT09IFVOREVGSU5FRCB8fCAhbmV3T3B0aW9uc1xuICAgICAgfHwgIUFycmF5LmlzQXJyYXkobmV3T3B0aW9ucykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZpZWxkT3B0aW9ucyA9IG5ld09wdGlvbnMubWFwKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgaWYgKG9wdGlvbi50ZXh0ICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnRleHQgIT09IG51bGxcbiAgICAgICAgJiYgb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkT3B0aW9uVmFsdWU6IG9wdGlvbi50ZXh0LCBmaWVsZE9wdGlvbklkOiBvcHRpb24udmFsdWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfSk7XG4gICAgZmllbGRPcHRpb25zID0gKGZpZWxkT3B0aW9ucyAmJiBBcnJheS5pc0FycmF5KGZpZWxkT3B0aW9ucylcbiAgICAgICYmIGZpZWxkT3B0aW9ucy5sZW5ndGggPiAwKSA/IGZpZWxkT3B0aW9ucyA6IFtdO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5maWVsZE9wdGlvbnMsIGZpZWxkT3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuX3ZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXkgJiYgQXJyYXkuaXNBcnJheSh0aGlzLl92YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlPy5maWx0ZXIoaXRlbSA9PlxuICAgICAgICAgIHRoaXMuX2ZpZWxkT3B0aW9ucz8uZmluZChvcHQgPT4gb3B0LmZpZWxkT3B0aW9uSWQgPT09IGl0ZW0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0QXR0cihhdHRycy52YWx1ZSwgZmllbGRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWxJbk9wdGlvbnMgPSB0aGlzLl9maWVsZE9wdGlvbnM/LmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkT3B0aW9uSWQgPT09IHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgaWYgKCF2YWxJbk9wdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLl9zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZpZWxkUmVxdWlyZWQgJiYgdGhpcy5fZmllbGRPcHRpb25zPy5sZW5ndGggPT09IDEgJiYgdGhpcy5fdmFsdWUgIT09IHRoaXMuX2ZpZWxkT3B0aW9ucz8uWzBdLmZpZWxkT3B0aW9uSWQpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuX2ZpZWxkT3B0aW9ucz8uWzBdLmZpZWxkT3B0aW9uSWQpO1xuICAgICAgdGhpcy5ub3RpZnlFZGl0aW9uRmluaXNoKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvblRleHQoKSB7IHJldHVybiB0aGlzLl9maWVsZE9wdGlvbnM/LmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkT3B0aW9uSWQgPT09IHRoaXMuX3ZhbHVlKT8uZmllbGRPcHRpb25WYWx1ZSA/PyBudWxsOyB9XG4gIGdldCBvdXRwdXRPbmx5KCkgeyByZXR1cm4gdGhpcy5fb3V0cHV0T25seTsgfVxuICBzZXQgb3V0cHV0T25seShvdXRwdXRPbmx5KSB7IHRoaXMuc2V0QXR0cihhdHRycy5vdXRwdXRPbmx5LCBvdXRwdXRPbmx5KTsgfVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9maWVsZFJlcXVpcmVkOyB9XG4gIHNldCByZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikgeyB0aGlzLnNldEF0dHIoYXR0cnMuZmllbGRSZXF1aXJlZCwgcmVxdWlyZWQgPz8gZmFsc2UpOyB9XG4gIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkVGl0bGU7IH1cbiAgc2V0IHRpdGxlKHRpdGxlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5maWVsZFRpdGxlLCB0aXRsZT8udG9TdHJpbmcoKSA/PyAnJyk7IH1cbiAgZ2V0IHRvb2x0aXAoKSB7IHJldHVybiB0aGlzLl90b29sdGlwVGV4dDsgfVxuICBzZXQgdG9vbHRpcCh0b29sdGlwKSB7IHRoaXMuc2V0QXR0cihhdHRycy50b29sdGlwVGV4dCwgdG9vbHRpcCk7IH1cbiAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl9maWVsZFR5cGU7IH1cbiAgc2V0IHR5cGUoZmllbGRUeXBlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5maWVsZFR5cGUsIGZpZWxkVHlwZSk7IH1cbiAgZ2V0IG9uVmFsaWRhdGlvbigpIHsgcmV0dXJuIHRoaXMuX29uVmFsaWRhdGlvbjsgfVxuICBnZXQgdmFsaWRhdGluZygpIHsgcmV0dXJuIHRoaXMuX29uVmFsaWRhdGlvbjsgfVxuICBzZXQgdmFsaWRhdGluZyhpc1ZhbGlkYXRpbmc6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGF0dHJzLm9uVmFsaWRhdGlvbiwgaXNWYWxpZGF0aW5nKTsgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuXG4gICAgICB8fCB0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5jaGVjaykgPyB5bih0aGlzLl92YWx1ZSkgOiB0aGlzLl92YWx1ZTtcbiAgfVxuICBnZXQgdmFsaWRhdGVPblNlcnZlcigpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT25TZXJ2ZXI7IH1cbiAgc2V0IHZhbGlkYXRlT25TZXJ2ZXIodmFsaWRhdGVPblNlcnZlcikgeyB0aGlzLnNldEF0dHIoYXR0cnMudmFsaWRhdGVPblNlcnZlciwgdmFsaWRhdGVPblNlcnZlcik7IH1cbiAgZ2V0IHNlcnZlckFjdGlvbigpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT25TZXJ2ZXI7IH1cbiAgc2V0IHNlcnZlckFjdGlvbih2YWxpZGF0ZU9uU2VydmVyOiBib29sZWFuKSB7IHRoaXMudmFsaWRhdGVPblNlcnZlciA9IHZhbGlkYXRlT25TZXJ2ZXI7IH1cblxuICBzZXQgdmFsdWUobmV3VmFsdWUpIHsgdGhpcy5fc2V0VmFsdWUobmV3VmFsdWUpOyB9XG4gIGdldCB2aXNpYmxlTGFiZWwoKSB7IHJldHVybiB0aGlzLl92aXNpYmxlTGFiZWw7IH1cbiAgc2V0IHZpc2libGVMYWJlbCh2aXNpYmxlTGFiZWw6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGF0dHJzLnZpc2libGVMYWJlbCwgdmlzaWJsZUxhYmVsKTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdmFsdWVcbiAgICovXG4gIGdldCBmaWVsZFZhbHVlKCkgeyByZXR1cm4gdGhpcy52YWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgaGFzQ2hhbmdlZFxuICAgKi9cbiAgY2hhbmdlZChoYXNDaGFuZ2VkID0gdHJ1ZSkgeyB0aGlzLmhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkOyB9XG5cbiAgY2xlYW4oKSB7IHRoaXMuX3NldFZhbHVlKHRoaXMuX2RlZmF1bHRWYWx1ZSB8fCAnJyk7IHRoaXMucmVzZXRFcnJvcigpOyB9XG4gIGZvY3VzKCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuZm9jdXMsIHRydWUpOyB9XG4gIGdldEVycm9yQ29kZSgpIHsgcmV0dXJuIHRoaXMuZXJyb3IuY29kZTsgfVxuICBzZXRFcnJvckNvZGUoY29kZSkgeyB0aGlzLnNldEVycm9yKGNvZGUsIHRoaXMuX2Vycm9yTWVzc2FnZSk7IH1cbiAgZ2V0RXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5lcnJvci5tZXNzYWdlOyB9XG4gIHNldEVycm9yTWVzc2FnZShtc2cpIHsgdGhpcy5zZXRFcnJvcih0aGlzLl9lcnJvckNvZGUsIG1zZyk7IH1cbiAgZ2V0UmVxdWlyZWQoKSB7IHJldHVybiB0aGlzLnJlcXVpcmVkOyB9XG4gIGhhc0Vycm9yKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JDb2RlICE9PSBOT19FUlJPUjsgfVxuICBoaWRlTGFiZWwoKSB7IHRoaXMudmlzaWJsZUxhYmVsID0gZmFsc2U7IH1cbiAgcmVzZXRFcnJvcigpIHsgKHRoaXMuX2Vycm9yQ29kZSAhPT0gTk9fRVJST1IpICYmIHRoaXMuc2V0RXJyb3IoTk9fRVJST1IsIG51bGwpOyB9XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuID0gdHJ1ZSkgeyAoZWRpdGFibGUpID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuZGlzYWJsZSgpOyB9XG4gIHNldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUgPSB0cnVlKSB7IHRoaXMuX3NldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUpOyB9XG4gIHNob3dMYWJlbCgpIHsgdGhpcy52aXNpYmxlTGFiZWwgPSB0cnVlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBjb2RlXG4gICAqL1xuICBnZXQgZmllbGRDb2RlKCkgeyByZXR1cm4gdGhpcy5fZmllbGRDb2RlOyB9XG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRpdGxlXG4gICAqL1xuICBzZXRMYWJlbChsYWJlbCkgeyB0aGlzLnRpdGxlID0gbGFiZWw7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHJlcXVpcmVkXG4gICAqL1xuICBzZXRSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikgeyB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGNoYW5nZWRcbiAgICovXG4gIHNldENoYW5nZWQoaGFzQ2hhbmdlZDogYm9vbGVhbikgeyB0aGlzLmNoYW5nZWQoaGFzQ2hhbmdlZCk7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHZhbHVlXG4gICAqL1xuICBnZXRWYWx1ZSgpOiBhbnkgeyByZXR1cm4gdGhpcy52YWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZW1wdHlcbiAgICovXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVtcHR5IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVycm9yXG4gICAqL1xuICBnZXRFcnJvcigpIHsgcmV0dXJuIHRoaXMuZXJyb3I7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvblRleHRcbiAgICovXG4gIGdldE9wdGlvblRleHQoKSB7IHJldHVybiB0aGlzLm9wdGlvblRleHQ7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIGdldEZpZWxkT3B0aW9ucygpIHsgcmV0dXJuIHRoaXMub3B0aW9uczsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb3B0aW9uc1xuICAgKi9cbiAgc2V0RmllbGRPcHRpb25zKG5ld09wdGlvbnMpIHsgcmV0dXJuIHRoaXMub3B0aW9ucyA9IG5ld09wdGlvbnM7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGludHJpbnNpY0Vycm9yTWVzc2FnZVxuICAgKi9cbiAgc2V0SW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykgeyB0aGlzLmludHJpbnNpY0Vycm9yTWVzc2FnZSA9IG1lc3NhZ2U7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG1heFZhbHVlXG4gICAqL1xuICBzZXRNYXhWYWx1ZShpbnB1dE1heFZhbHVlKSB7IHRoaXMubWF4VmFsdWUgPSBpbnB1dE1heFZhbHVlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBtaW5WYWx1ZVxuICAgKi9cbiAgc2V0TWluVmFsdWUoaW5wdXRNaW5WYWx1ZSkgeyB0aGlzLm1pblZhbHVlID0gaW5wdXRNaW5WYWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugc2hvd0xhYmVsXG4gICAqL1xuICBzZXRWaXNpYmxlTGFiZWwodmlzaWJsZUxhYmVsOiBib29sZWFuKSB7IHRoaXMudmlzaWJsZUxhYmVsID0gdmlzaWJsZUxhYmVsOyB9XG5cblxuICBub3RpZnlFZGl0aW9uUGFydGlhbCgpIHtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICB0aGlzLl9lZGl0aW9uUGFydGlhbC5uZXh0KHsgY29kZTogdGhpcy5fZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uOiB0cnVlIH0pO1xuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkZpbmlzaCgpIHtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICBjb25zdCB2YWxpZGF0aW9uQ29uZmlnID0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFZhbGlkYXRpb25zPy5bdGhpcy5fZmllbGRUeXBlXSA/PyB7fTtcbiAgICBjb25zdCB7IHR5cGUsIHZhbGlkYXRpb24gfSA9IHZhbGlkYXRpb25Db25maWc7XG4gICAgbGV0IG1lc3NhZ2UgPSB2YWxpZGF0aW9uQ29uZmlnPy5tZXNzYWdlO1xuICAgIGxldCBpbnRyaW5zaWNWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICBpZiAoZmllbGRWYWx1ZSAmJiAodmFsaWRhdGlvbiB8fCB0aGlzLl9maWVsZEZvcm1hdCkpIHtcbiAgICAgIGlmICh0eXBlID09PSAncmVnZXhwJykge1xuICAgICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gKHZhbGlkYXRpb24/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSlcbiAgICAgICAgICAmJiAodGhpcy5fZmllbGRGb3JtYXQ/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbGlkYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyB2YWxpZCwgbWVzc2FnZTogY3VzdG9tTWVzc2FnZSB9ID0gdmFsaWRhdGlvbihmaWVsZFZhbHVlLCB0aGlzKTtcbiAgICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IHZhbGlkO1xuICAgICAgICBtZXNzYWdlID0gY3VzdG9tTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIGlmICghaW50cmluc2ljVmFsaWRhdGlvbikge1xuICAgICAgICB0aGlzLnNldEVycm9yKCc5OScsIG1lc3NhZ2UgPz8gdGhpcy5faW50cmluc2ljRXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGludHJpbnNpY1ZhbGlkYXRpb24gJiYgZmllbGRWYWx1ZSAmJiB0aGlzLl9taW5WYWx1ZSAmJiBmaWVsZFZhbHVlIDwgdGhpcy5fbWluVmFsdWUpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgJ0NhbXBvIGNvbiB2YWxvciBpbmZlcmlvciBhbCBtw61uaW1vJyk7XG4gICAgfVxuICAgIGlmIChpbnRyaW5zaWNWYWxpZGF0aW9uICYmIGZpZWxkVmFsdWUgJiYgdGhpcy5fbWF4VmFsdWUgJiYgZmllbGRWYWx1ZSA+IHRoaXMuX21heFZhbHVlKSB7XG4gICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEVycm9yKCc5OScsICdDYW1wbyBjb24gdmFsb3Igc3VwZXJpb3IgYWwgbcOheGltbycpO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljVmFsaWRhdGlvbiAmJiBmaWVsZFZhbHVlICYmIHR5cGVvZiBmaWVsZFZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgdGhpcy5fbWluTGVuZ3RoICYmIGZpZWxkVmFsdWU/Lmxlbmd0aCA8IHRoaXMuX21pbkxlbmd0aCkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRFcnJvcignOTknLCBgTG9uZ2l0dWQgZGUgJHt0aGlzLl9maWVsZFRpdGxlfSBkZWJlIHNlciBkZSBhbCBtZW5vcyAke3RoaXMuX21pbkxlbmd0aH1gKTtcbiAgICB9XG4gICAgdGhpcy5fZWRpdGlvbkZpbmlzaC5uZXh0KHsgY29kZTogdGhpcy5fZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uIH0pO1xuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoZGV0YWlsOiBhbnkpIHtcbiAgICBjb25zdCBkZXRhaWxFdmVudDogRGV0YWlsRXZlbnQgPSB7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgZGV0YWlsIH07XG4gICAgdGhpcy5fZGV0YWlsUmVxdWVzdC5uZXh0KGRldGFpbEV2ZW50KTtcbiAgfVxuXG4gIHNldEVycm9yKGNvZGUsIG1lc3NhZ2UsIHR5cGUgPSBERUZBVUxUX0VSUk9SX1RZUEUpIHtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZXJyb3JDb2RlLCBjb2RlID8/IE5PX0VSUk9SKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZXJyb3JUeXBlLCAodGhpcy5fZXJyb3JDb2RlID09PSBOT19FUlJPUikgPyAnJyA6IHR5cGUpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5lcnJvck1lc3NhZ2UsIG1lc3NhZ2UgPz8gJycpO1xuICB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcihmbGQpIHtcbiAgICBjb25zdCBmaWVsZEtleXMgPSBPYmplY3Qua2V5cyhmbGQpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWVsZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IGZpZWxkS2V5c1tpbmRleF07XG4gICAgICBjb25zdCBhdHRyVmFsdWUgPSBmbGRbYXR0ck5hbWVdO1xuICAgICAgaWYgKGRpcmVjdENoYW5nZXMuaW5jbHVkZXMoYXR0ck5hbWUpKSB7XG4gICAgICAgIHRoaXNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnbGFiZWwnKSAmJiAodGhpcy50aXRsZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2xhYmVsVmlzaWJsZScpICYmICh0aGlzLnZpc2libGVMYWJlbCA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2VkaXRhYmxlJykgJiYgdGhpcy5zZXRFZGl0YWJsZShhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICd2aXNpYmxlJykgJiYgdGhpcy5zZXRWaXNpYmlsaXR5KGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ3ZhbHVlJykgJiYgKHRoaXMuX3NldFZhbHVlKGF0dHJWYWx1ZSkgJiYgKHRoaXMuaGFzQ2hhbmdlZCA9IGZhbHNlKSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVmFsdWUnKSAmJiAodGhpcy5fc2V0VmFsdWUoYXR0clZhbHVlKSAmJiAodGhpcy5oYXNDaGFuZ2VkID0gZmFsc2UpKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZmllbGRPcHRpb25zJykgJiYgKHRoaXMub3B0aW9ucyA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVGl0bGUnKSAmJiAodGhpcy50aXRsZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVHlwZUNvZGUnKSAmJiAodGhpcy50eXBlID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZmllbGRUeXBlJykgJiYgKHRoaXMudHlwZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ3Rvb2x0aXBUZXh0JykgJiYgKHRoaXMudG9vbHRpcCA9IGF0dHJWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFsdWUobmV3VmFsdWUsIHdpZGdldFVwZGF0ZSA9IHRydWUpIHtcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09PSBVTkRFRklORUQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobmV3VmFsdWUgPT09IG51bGwgJiYgdGhpcy5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxldCBuZXdGaW5hbFZhbHVlO1xuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuXG4gICAgICB8fCB0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5jaGVjaykge1xuICAgICAgbmV3RmluYWxWYWx1ZSA9IHluKG5ld1ZhbHVlKSA/PyBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5XG4gICAgICB8fCB0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5tYXApIHtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gbnVsbCB8fCBuZXdWYWx1ZSA9PT0gJycpIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IFtdO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbmV3RmluYWxWYWx1ZSkge1xuICAgICAgdGhpcy5oYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIGlmICh3aWRnZXRVcGRhdGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coYHNlIGFjdHVhbGl6YSBlbCBjYW1wbyAke3RoaXMuX2ZpZWxkQ29kZX0gY29uICR7bmV3RmluYWxWYWx1ZX1gKTtcbiAgICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLnZhbHVlLCBuZXdGaW5hbFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3RmluYWxWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1331,6 +1331,7 @@ class FieldDescriptor extends FormElement {
|
|
|
1331
1331
|
if (this._value !== newFinalValue) {
|
|
1332
1332
|
this.hasChanged = true;
|
|
1333
1333
|
if (widgetUpdate) {
|
|
1334
|
+
console.log(`se actualiza el campo ${this._fieldCode} con ${newFinalValue}`);
|
|
1334
1335
|
this.setAttr(attrs$1.value, newFinalValue);
|
|
1335
1336
|
}
|
|
1336
1337
|
else {
|