@tilde-nlp/ngx-translate 2.1.39 → 2.1.41
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/esm2020/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +1 -1
- package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -1
- package/esm2020/lib/modules/tld-term/services/terminology.service.mjs +4 -7
- package/esm2020/lib/tld-translate.component.mjs +2 -2
- package/fesm2015/tilde-nlp-ngx-translate.mjs +33 -34
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/fesm2020/tilde-nlp-ngx-translate.mjs +5 -6
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +2 -0
- package/lib/modules/tld-term/services/terminology.service.d.ts +1 -3
- package/package.json +1 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
- package/tilde-nlp-ngx-translate-2.1.41.tgz +0 -0
- package/tilde-nlp-ngx-translate-2.1.39.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcge1xyXG4gIGRpY3Rpb25hcnlVcmw/OiBzdHJpbmc7XHJcbiAgbWF4Q2hhckxlbmd0aD86IG51bWJlcjtcclxuICBzaG93QXV0aEV4dGVuc2lvbnM/OiBib29sZWFuO1xyXG4gIHNob3dBdmFpbGFibGVFeHRlbnNpb25zPzogYm9vbGVhbjtcclxuICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1cGRhdGVUcmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1c2VEaWN0aW9uYXJ5PzogYm9vbGVhbjtcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeD86IHN0cmluZztcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeD86IHN0cmluZztcclxuICBhdXRvRm9jdXNzPzogYm9vbGVhbjtcclxuICBzaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk/OiBib29sZWFuO1xyXG4gIHNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcD86IGJvb2xlYW47XHJcbiAgYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24/OiBib29sZWFuO1xyXG4gIC8qKiBQb3NzaWJpbGl0eSB0byBtYWtlIHN1Z2dlc3Rpb24gZm9yIHRyYW5zbGF0ZWQgdGV4dC4gSW4gVUkgc2hvd3MgXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIgYnV0dG9uIHVuZGVyIHRhcmdldCB0ZXh0LiAqL1xyXG4gIHNob3dTdWdnZXN0aW9ucz86IGJvb2xlYW47XHJcbiAgLyoqIEF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gd2ViIHRyYW5zbGF0ZSBvbiB1cmwgaW5wdXQuICovXHJcbiAgYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGU/OiBib29sZWFuO1xyXG4gIC8qKiBXb3JkIGhpZ2hsaWdodGluZyAqL1xyXG4gIGhpZ2hsaWdodD86IGJvb2xlYW47XHJcbiAgLyoqIEFwaSBWMiBzdXBwb3J0cyBncmFtbWFyIGNoZWsuIFNldCB0byB0cnVlIHRvIGVuYWJsZSBncmFtbWFyIGNoZWNrLiAgICovXHJcbiAgY2hlY2tTb3VyY2VHcmFtbWFyPzogYm9vbGVhbjtcclxuICAvKiogQXBpIFYyLiBTb3VyY2UgbGFuZ3VhZ2VzIGZvciB3aGljaCBzaG91bGQgY2hlY2sgZ3JhbW1hci4gKi9cclxuICBncmFtbWFyQ2hlY2tMYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICAvKiogU2hvdyB0YXJnZXQgY29udGFpbmVyIGxhYmVscyAqL1xyXG4gIHNob3dUYXJnZXRQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAvKiogU2hvdyBidXR0b24gdG8gb3BlbiBkaWFsb2cgdGhhdCBkZXNjcmliZXMgYWxsIGV4dGVuc2lvbnMgKi9cclxuICBzaG93RXh0ZW5zaW9uUG9wdXA/OiBib29sZWFuO1xyXG4gIC8qKiBIb3cgbWFueSBleHRlbnNpb2lucyBzaG91bGQgYmUgc3dvbiBvbiBmaWxlIGlucHV0IGJ1dHRvbiB0ZXh0ICovXHJcbiAgdmlzaWJsZUV4dGVuc2lvbkNvdW50PzogbnVtYmVyO1xyXG4gIC8qKiBTaG91bGQgc291cmNlIGFjdGlvbnMgYmUgYWx3YXlzIHNob3duIG9yIG1vYmlsZSBvciBoaWRkZW4gd2hlbiBhbnkgc291cmNlIHRleHQgaGFzIGJlZW4gZW50ZXJlZCAqL1xyXG4gIGhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGU/OiBib29sZWFuO1xyXG4gIC8qKiBBZnRlciBob3cgbWFueSBtaWxpc2Vjb25kcyBzaG91bGQgc2hvdyBwcm9ncmVzcyBpbmRpY2F0b3IgLSBwcm9ncmVzcyBiYXIgYW5kIHZlbmRvciBpZGVudGlmaWNhdGlvbiBpbiB0YXJnZXQgZmllbGQuIFNldCB2YWx1ZSB0byBudWxsLCB0byBkaXNhYmxlIGluZGljYXRvciBmcm9tIHNob3dpbmcgdXAuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcge1xyXG4gIGRpY3Rpb25hcnlVcmw/OiBzdHJpbmc7XHJcbiAgbWF4Q2hhckxlbmd0aD86IG51bWJlcjtcclxuICBzaG93QXV0aEV4dGVuc2lvbnM/OiBib29sZWFuO1xyXG4gIHNob3dBdmFpbGFibGVFeHRlbnNpb25zPzogYm9vbGVhbjtcclxuICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1cGRhdGVUcmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1c2VEaWN0aW9uYXJ5PzogYm9vbGVhbjtcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeD86IHN0cmluZztcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeD86IHN0cmluZztcclxuICBhdXRvRm9jdXNzPzogYm9vbGVhbjtcclxuICBzaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk/OiBib29sZWFuO1xyXG4gIHNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcD86IGJvb2xlYW47XHJcbiAgYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24/OiBib29sZWFuO1xyXG4gIC8qKiBQb3NzaWJpbGl0eSB0byBtYWtlIHN1Z2dlc3Rpb24gZm9yIHRyYW5zbGF0ZWQgdGV4dC4gSW4gVUkgc2hvd3MgXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIgYnV0dG9uIHVuZGVyIHRhcmdldCB0ZXh0LiAqL1xyXG4gIHNob3dTdWdnZXN0aW9ucz86IGJvb2xlYW47XHJcbiAgLyoqIEF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gd2ViIHRyYW5zbGF0ZSBvbiB1cmwgaW5wdXQuICovXHJcbiAgYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGU/OiBib29sZWFuO1xyXG4gIC8qKiBXb3JkIGhpZ2hsaWdodGluZyAqL1xyXG4gIGhpZ2hsaWdodD86IGJvb2xlYW47XHJcbiAgLyoqIEFwaSBWMiBzdXBwb3J0cyBncmFtbWFyIGNoZWsuIFNldCB0byB0cnVlIHRvIGVuYWJsZSBncmFtbWFyIGNoZWNrLiAgICovXHJcbiAgY2hlY2tTb3VyY2VHcmFtbWFyPzogYm9vbGVhbjtcclxuICAvKiogQXBpIFYyLiBTb3VyY2UgbGFuZ3VhZ2VzIGZvciB3aGljaCBzaG91bGQgY2hlY2sgZ3JhbW1hci4gKi9cclxuICBncmFtbWFyQ2hlY2tMYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICAvKiogU2hvdyB0YXJnZXQgY29udGFpbmVyIGxhYmVscyAqL1xyXG4gIHNob3dUYXJnZXRQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAvKiogU2hvdyBidXR0b24gdG8gb3BlbiBkaWFsb2cgdGhhdCBkZXNjcmliZXMgYWxsIGV4dGVuc2lvbnMgKi9cclxuICBzaG93RXh0ZW5zaW9uUG9wdXA/OiBib29sZWFuO1xyXG4gIC8qKiBIb3cgbWFueSBleHRlbnNpb2lucyBzaG91bGQgYmUgc3dvbiBvbiBmaWxlIGlucHV0IGJ1dHRvbiB0ZXh0ICovXHJcbiAgdmlzaWJsZUV4dGVuc2lvbkNvdW50PzogbnVtYmVyO1xyXG4gIC8qKiBTaG91bGQgc291cmNlIGFjdGlvbnMgYmUgYWx3YXlzIHNob3duIG9yIG1vYmlsZSBvciBoaWRkZW4gd2hlbiBhbnkgc291cmNlIHRleHQgaGFzIGJlZW4gZW50ZXJlZCAqL1xyXG4gIGhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGU/OiBib29sZWFuO1xyXG4gIC8qKiBBZnRlciBob3cgbWFueSBtaWxpc2Vjb25kcyBzaG91bGQgc2hvdyBwcm9ncmVzcyBpbmRpY2F0b3IgLSBwcm9ncmVzcyBiYXIgYW5kIHZlbmRvciBpZGVudGlmaWNhdGlvbiBpbiB0YXJnZXQgZmllbGQuIFNldCB2YWx1ZSB0byBudWxsLCB0byBkaXNhYmxlIGluZGljYXRvciBmcm9tIHNob3dpbmcgdXAuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHM/OiBudW1iZXI7XHJcbiAgLyoqIEZvciB3aGljaCB2ZW5kb3JzIHRpdGxlIGlzIHZpc2libGUgaW4gdGV4dCB0cmFuc2xhdGlvbiBwcm9ncmVzcyBpbmRpY2F0b3IgbWVzc2FnZS4qL1xyXG4gIHByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycz86IHN0cmluZ1tdO1xyXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgbG9hZGVyIGluIHRoZSBib3R0b20gb2YgdGFyZ2V0IHdpbmRvdyBhZnRlciBjb25maWd1cmVkIHRpbWVvdXQuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlPzogYm9vbGVhbjtcclxuICAvKiogSWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGhpZGUgdGhlIFRyYW5zbGF0aW9uIGJ1dHRvbiBpbiB0aGUgc3dpdGNoZXIsIHNldCB0aGlzIHRvIFwiZmFsc2UuXCIgKi9cclxuICBzaG93VHJhbnNsYXRlQnV0dG9uPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -155,6 +155,7 @@ export class TldTranslateConfigService {
|
|
|
155
155
|
this._textConfig.progressIndicatorTimeoutMiliSeconds = text?.progressIndicatorTimeoutMiliSeconds ?? 2000;
|
|
156
156
|
this._textConfig.progressIndicatorTitleVisibleForVendors = text?.progressIndicatorTitleVisibleForVendors ?? ["ETranslation"];
|
|
157
157
|
this._textConfig.progressIndicatorVisible = text?.progressIndicatorVisible ?? false;
|
|
158
|
+
this._textConfig.showTranslateButton = text?.showTranslateButton ?? true;
|
|
158
159
|
this._audioConfig.audioTextInput = audio?.audioTextInput ?? false;
|
|
159
160
|
// Not setting default url because there is no service provided by Tilde and this is not used by default in website project.
|
|
160
161
|
this._audioConfig.audioApiUrl = audio?.audioApiUrl;
|
|
@@ -228,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
228
229
|
type: Inject,
|
|
229
230
|
args: [TLD_TRANSLATE_CONFIG_TOKEN]
|
|
230
231
|
}] }]; } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUs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SUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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QUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUM5RyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsZUFBZSxJQUFJLGlDQUFpQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQztRQUVsRixJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLFlBQVksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsWUFBWSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7UUFFL0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssd0JBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUN2QztJQUNILENBQUM7O3NIQW5PVSx5QkFBeUIsa0JBRWhCLDZCQUE2QixhQUMzQiwwQkFBMEI7MEhBSHJDLHlCQUF5QixjQUZ4QixNQUFNOzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdjLE1BQU07MkJBQUMsNkJBQTZCOzswQkFDOUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFRMRF9UUkFOU0xBVEVfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucy90bGQtdHJhbnNsYXRlLWNvbmZpZy50b2tlbic7XHJcbmltcG9ydCB7IElUbGRUZXh0VG9TcGVlY2hDb25maWcsIGxhbmd1YWdlTWVudVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJVGxkQXVkaW9Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtYXVkaW8tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRlcm1Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdGVybS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWFwaS12Mi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtY29yZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlRmlsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtZmlsZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlVGV4dENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtdGV4dC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtd2ViLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4uL21vZGVscy9jb3JlL3RyYW5zbGF0aW9uLWFwaS12ZXJzaW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvbixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICB0aGlzLmluaXRDb25maWdzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb3JlQ29uZmlnOiBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyA9IHsgYXBwSWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH07XHJcbiAgZ2V0IGNvcmVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29yZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHRDb25maWc6IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dENvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbGVDb25maWc6IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnID0ge307XHJcbiAgZ2V0IGZpbGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dlYnRyYW5zbGF0ZUNvbmZpZzogSVRsZFRyYW5zbGF0ZVdlYnNpdGVDb25maWcgPSB7fTtcclxuICBnZXQgd2VidHJhbnNsYXRlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Rlcm1Db25maWc6IElUbGRUZXJtQ29uZmlnID0ge307XHJcbiAgZ2V0IHRlcm1Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVybUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FwaVYyQ29uZmlnOiBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgPSB7fTtcclxuICBnZXQgYXBpVjJDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpVjJDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hdWRpb0NvbmZpZzogSVRsZEF1ZGlvQ29uZmlnID0geyBhcHBJZDogbnVsbCwgYXBwU2VjcmV0OiBudWxsIH07XHJcbiAgZ2V0IGF1ZGlvQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dFRvU3BlZWNoQ29uZmlnOiBJVGxkVGV4dFRvU3BlZWNoQ29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRUb1NwZWVjaENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWc7XHJcbiAgfVxyXG5cclxuICBpbml0Q29uZmlncyhjb25maWd1cmF0aW9uPzogSVRsZFRyYW5zbGF0ZUNvbmZpZykge1xyXG4gICAgY29uc3QgY29uZmlnID0gY29uZmlndXJhdGlvbiA/PyB0aGlzLmNvbmZpZyA/PyB7fTtcclxuXHJcbiAgICBjb25zdCBjb3JlID0gY29uZmlnPy5jb3JlO1xyXG4gICAgY29uc3QgZmlsZSA9IGNvbmZpZz8uZmlsZTtcclxuICAgIGNvbnN0IHRleHQgPSBjb25maWc/LnRleHQ7XHJcbiAgICBjb25zdCBhdWRpbyA9IGNvbmZpZz8uYXVkaW87XHJcbiAgICBjb25zdCB3ZWJ0cmFuc2xhdGUgPSBjb25maWc/LndlYlRyYW5zbGF0ZTtcclxuICAgIGNvbnN0IHRlcm1Db25maWcgPSBjb25maWc/LnRlcm07XHJcbiAgICBjb25zdCBhcGlWMkNvbmZpZyA9IGNvbmZpZz8uYXBpVjI7XHJcbiAgICBjb25zdCB0ZXh0VG9TcGVlY2ggPSBjb25maWc/LnRleHRUb1NwZWVjaDtcclxuXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnID0geyBhcHBJZDogY29yZT8uYXBwSWQsIGNsaWVudElkOiBjb3JlPy5jbGllbnRJZCB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcGlJc0luVGhlU2FtZURvbWFpbiA9IGNvcmU/LmFwaUlzSW5UaGVTYW1lRG9tYWluIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcHBOYW1lID0gY29yZT8uYXBwTmFtZSB8fCBcIlRpbGRlIE1UXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmhpZGVBY2hpZXZlbWVudCA9IGNvcmU/LmhpZGVBY2hpZXZlbWVudCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYWxsb3dlZFN5c3RlbVN0YXR1c2VzID0gY29yZT8uYWxsb3dlZFN5c3RlbVN0YXR1c2VzID8/IFsncnVubmluZycsICdzdGFuZGJ5JywgJ3F1ZXVpbmd0cmFuc2wnXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZDtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpblRpdGxlID0gY29yZT8uc2hvd0RvbWFpblRpdGxlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kb21haW5TaWRlID0gY29yZT8uZG9tYWluU2lkZSA/PyBcInRyZ1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zd2FwSWNvblBvc2l0aW9uID0gY29yZT8uc3dhcEljb25Qb3NpdGlvbiA/PyBcInNyY1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5sYW5ndWFnZU1lbnVWZXJzaW9uID0gY29yZT8ubGFuZ3VhZ2VNZW51VmVyc2lvbiA/PyBsYW5ndWFnZU1lbnVWZXJzaW9uLlYxO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA9IGNvcmU/Lm1heFJlY2VudFN5c3RlbUNvdW50ID8/IDQ7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHREb21haW5zID0gY29yZT8uZGVmYXVsdERvbWFpbnMgPz8gW1wiR0VOXCIsIFwiZ2VuZXJhbFwiXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuY29udGFjdFN1cHBvcnQgPSBjb3JlPy5jb250YWN0U3VwcG9ydCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zdWJzY3JpcHRpb25TdXBwb3J0ID0gY29yZT8uc3Vic2NyaXB0aW9uU3VwcG9ydCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5pc1dlYkNvbXBvbmVudCA9IGNvcmU/LmlzV2ViQ29tcG9uZW50ID8/IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGU/LmFsbG93ZWRGaWxlVHlwZXMgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucGRmXCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5leHRlbmRlZEZpbGVUeXBlcyA9IGZpbGU/LmV4dGVuZGVkRmlsZVR5cGVzXHJcbiAgICAgIHx8IFtcIi5kb2NcIiwgXCIuZG9jeFwiLCBcIi54bHN4XCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCIsIFwiLmh0bWxcIiwgXCIuaHRtXCIsXHJcbiAgICAgICAgXCIueGh0bWxcIiwgXCIueGh0XCIsIFwiLnRteFwiLCBcIi54bGZcIiwgXCIueGxpZlwiLCBcIi54bGlmZlwiLCBcIi5zZGx4bGlmZlwiLCBcIi5zZGx4bGZcIiwgXCIudHR4XCIsIFwiLnJ0ZlwiLFxyXG4gICAgICAgIFwiLnBhZ2VzXCIsIFwiLnRleFwiLCBcIi54bWxcIiwgXCIuanNvblwiLCBcIi5zeHdcIiwgXCIucGRmXCIsIFwiLmNzdlwiLCBcIi50dGxcIiwgXCIuc3J0XCIsIFwiLnBuZ1wiLCBcIi5qcGdcIiwgXCIuanBlZ1wiLCBcIi5ibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14QXV0aCA9IGZpbGU/LmFsbG93VG14QXV0aCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1RteFVuYXV0aCA9IGZpbGU/LmFsbG93VG14VW5hdXRoID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlQXBpVXJsID0gZmlsZT8uZmlsZUFwaVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L3dzL0ZpbGVzL1wiO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyA9IGZpbGU/LmZpbGVEb3dubG9hZFRpbWVvdXRzXHJcbiAgICAgIHx8IHtcclxuICAgICAgXCJpbml0aWFsaXppbmdcIjogMTAwMCxcclxuICAgICAgXCJleHRyYWN0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwid2FpdGluZ1wiOiAxMDAwMCxcclxuICAgICAgXCJ0cmFuc2xhdGluZ1wiOiAxMDAwLFxyXG4gICAgICBcInNhdmluZ1wiOiAxMDAwLFxyXG4gICAgICBcImNvbXBsZXRlZFwiOiAxMDAwLFxyXG4gICAgICBcImVycm9yXCI6IDEwMDAsXHJcbiAgICAgIFwicXVldWluZ1wiOiAxMDAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5tYXhTaXplID0gZmlsZT8ubWF4U2l6ZSB8fCAzMDcyMDAwMDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcud29yZExpbWl0ID0gZmlsZT8ud29yZExpbWl0ID8/IDEyNTA7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVVcGxvYWQgPSBmaWxlPy5maWxlVXBsb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm9jclBhZ2VMaW1pdCA9IGZpbGU/Lm9jclBhZ2VMaW1pdCA/PyAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1BERlNvdXJjZURvd25sb2FkID0gZmlsZT8uYWxsb3dQREZTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuc291cmNlRG93bmxvYWRFeHRlbnNpb25zID0gZmlsZT8uc291cmNlRG93bmxvYWRFeHRlbnNpb25zIHx8IFtcInBkZlwiLCBcInBuZ1wiLCBcImpwZ1wiLCBcImpwZWdcIiwgXCJibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXIgPSBmaWxlPy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5udW1iZXJPZkZpbGVzQWxsb3dlZCA9IGZpbGU/Lm51bWJlck9mRmlsZXNBbGxvd2VkID4gMCA/IGZpbGUubnVtYmVyT2ZGaWxlc0FsbG93ZWQgOiAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPSBmaWxlPy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudXNlTXVsdGlwbGVGaWxlVXBsb2FkID0gZmlsZT8udXNlTXVsdGlwbGVGaWxlVXBsb2FkO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPSBmaWxlPy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPz8gW1wiRVRyYW5zbGF0aW9uXCJdO1xyXG5cclxuICAgIHRoaXMuX3RleHRDb25maWcuZGljdGlvbmFyeVVybCA9IHRleHQ/LmRpY3Rpb25hcnlVcmwgfHwgXCJodHRwczovL2xldHNtdC5ldS9hcGkvZGljdGlvbmFyeS9HZXREaWN0aW9uYXJ5RW50cnkvXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLm1heENoYXJMZW5ndGggPSB0ZXh0Py5tYXhDaGFyTGVuZ3RoID8/IDUwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4ID0gdGV4dD8ud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggfHwgXCIvd2VidHJhbnNsYXRlP3VybD1cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCB8fCBcIlwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5ID0gdGV4dD8udXNlRGljdGlvbmFyeSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnMgPSB0ZXh0Py5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dBdXRoRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdXRoRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F1dGhFeHRlbnNpb25zO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hdXRvRm9jdXNzID0gdGV4dD8uYXV0b0ZvY3VzcztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5ID0gdGV4dD8uc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5O1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXAgPSB0ZXh0Py5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmFsbG93V2Vic2l0ZVRyYW5zbGF0aW9uID0gdGV4dD8uYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zID0gdGV4dD8uc2hvd1N1Z2dlc3Rpb25zID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCA9IGF1ZGlvPy5hdWRpb1RleHRJbnB1dCA/PyBmYWxzZTtcclxuICAgIC8vIE5vdCBzZXR0aW5nIGRlZmF1bHQgdXJsIGJlY2F1c2UgdGhlcmUgaXMgbm8gc2VydmljZSBwcm92aWRlZCBieSBUaWxkZSBhbmQgdGhpcyBpcyBub3QgdXNlZCBieSBkZWZhdWx0IGluIHdlYnNpdGUgcHJvamVjdC5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvQXBpVXJsID0gYXVkaW8/LmF1ZGlvQXBpVXJsO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9NYXhTaXplQnl0ZXMgPSBhdWRpbz8uYXVkaW9NYXhTaXplQnl0ZXMgPz8gMTAwMDAwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5zb3VyY2VMYW5ndWFnZXMgPSBhdWRpbz8uc291cmNlTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGF0YVVwZGF0ZVRpbWVGcmFtZSA9IGF1ZGlvPy5kYXRhVXBkYXRlVGltZUZyYW1lID8/IDUwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5tYXhpbXVtUmVjb3JkVGltZSA9IGF1ZGlvPy5tYXhpbXVtUmVjb3JkVGltZSA/PyAzMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaWN0YXRlQXBpVXJsID0gYXVkaW8/LmRpY3RhdGVBcGlVcmwgPz8gXCJydW5hLnRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBJZCA9IGF1ZGlvPy5hcHBJZDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcFNlY3JldCA9IGF1ZGlvPy5hcHBTZWNyZXQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5wdW5jdHVhdGlvbk1lc3NhZ2UgPSBhdWRpbz8ucHVuY3R1YXRpb25NZXNzYWdlID8/IHRydWU7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPSBhdWRpbz8uZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZT8ubG9nb0xvY2F0aW9uIHx8ICdhc3NldHMvd2VidHJhbnNsYXRlL3RpbGRlX2xvZ28ucG5nJztcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy50cmFuc2xhdGVQYWdlUGF0aCA9IHdlYnRyYW5zbGF0ZT8udHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuZGVidWcgPSB3ZWJ0cmFuc2xhdGU/LmRlYnVnIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLndlYkxhbmdBdXRvZGV0ZWN0ID0gd2VidHJhbnNsYXRlPy53ZWJMYW5nQXV0b2RldGVjdCB8fCB0cnVlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGU/LmFsbG93U3VnZ2VzdGlvbnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlPy5oaWRlUG9wdXAgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveCA9IHdlYnRyYW5zbGF0ZT8uc2FuZGJveCA/PyBcImFsbG93LWZvcm1zIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIjtcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLnRlcm1pbm9sb2d5UG9ydGFsVXJsID0gdGVybUNvbmZpZz8udGVybWlub2xvZ3lQb3J0YWxVcmwgfHwgXCJodHRwczovL3Rlcm0udGlsZGUuY29tXCI7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSB0ZXJtQ29uZmlnPy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkID0gdGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkID0gdGVybUNvbmZpZz8uaXNUZXJtUG9ydGFsU3VwcG9ydGVkID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWluTGVuZ3RoID8/IDg7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID0gdGVybUNvbmZpZz8uY29sbGVjdGlvbk5hbWVNYXhMZW5ndGggPz8gMzAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNcyA/PyAxMDAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPSB0ZXJtQ29uZmlnPy5yZWZyZXNoVGltZW91dE1zV2hlbkltcG9ydGluZyA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5lbmdpbmVUZXJtVXJsID0gdGVybUNvbmZpZz8uZW5naW5lVGVybVVybDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuZGVmYXVsdEdsb3NzYXJ5TWFuYWdlbWVudExpbmsgPSB0ZXJtQ29uZmlnPy5kZWZhdWx0R2xvc3NhcnlNYW5hZ2VtZW50TGluaztcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmZyZWVUcmlhbFVybCA9IHRlcm1Db25maWc/LmZyZWVUcmlhbFVybCA/PyBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL3ByaWNpbmcvVGlsZGUtTVRcIjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcubGVhcm5Nb3JlVXJsID0gdGVybUNvbmZpZz8ubGVhcm5Nb3JlVXJsID8/IFwiaHR0cHM6Ly93d3cudGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL1RpbGRlLU1ULWZlYXR1cmVzLWdsb3NzYXJ5XCI7XHJcblxyXG4gICAgLy8gc2VwZXJhdGVkIGJlY2F1c2UgZm9sbG93aW5nIHVybHMgaGF2ZSBtZXRob2QgbmFtZXMgYWRkZWRcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsID0gY29yZT8udHJhbnNsYXRpb25TZXJ2aWNlVXJsIHx8IFwiaHR0cHM6Ly93d3cubGV0c210LmV1L3dzL3NlcnZpY2Uuc3ZjL2pzb24vXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnRyYW5zbGF0aW9uVXJsID0gdGV4dD8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlRyYW5zbGF0ZUV4XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsID0gdGV4dD8udXBkYXRlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlVwZGF0ZVRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN5c3RlbUxpc3RVcmwgPSBjb3JlPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJHZXRTeXN0ZW1MaXN0XCI7XHJcblxyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5O1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgPSBhcGlWMkNvbmZpZz8ubXRBcGlVcmwgPz8gXCJhcGkvdHJhbnNsYXRlL1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuc3lzdGVtTGlzdFVybCA9IGFwaVYyQ29uZmlnPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJsYW5ndWFnZS1kaXJlY3Rpb25zXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwidGV4dFwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZmlsZVRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LmZpbGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwiZmlsZVwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsID0gYXBpVjJDb25maWc/LmdyYW1tYXJDaGVja1VybCA/PyBcImh0dHBzOi8vbXQuY3MudXQuZWUvYXBpL2dyYW1tYXJcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmF1dG9Eb21haW5EZXRlY3Rpb24gPSBhcGlWMkNvbmZpZz8uYXV0b0RvbWFpbkRldGVjdGlvbiA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubGFuZ3VhZ2VzID0gdGV4dFRvU3BlZWNoPy5sYW5ndWFnZXMgPz8ge307XHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubWF4Q2hhcnNJblRleHQgPSB0ZXh0VG9TcGVlY2g/Lm1heENoYXJzSW5UZXh0ID8/IDMwMDA7XHJcblxyXG4gICAgdGhpcy5lZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIG1ha2Ugc3VyZSBuZWNlc3NhcnkgcHJvcGVydGllcyBhcmUgbm90IHR1cm5lZCBvbiBiZWNhdXNlIGluIGFwaSBWMiBzb21lIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtbmVudGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsYUFBbUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBRWxELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDNUIsTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixHQUFHLElBQUksRUFBRSxvQkFBb0IsSUFBSSxLQUFLLENBQUM7UUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxVQUFVLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLGVBQWUsSUFBSSxLQUFLLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxZQUFZLElBQUksNkRBQTZELENBQUM7UUFDcEgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLFlBQVksSUFBSSxhQUFhLENBQUM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUk7WUFDbEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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b20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMvdGxkLXRyYW5zbGF0ZS1jb25maWcudG9rZW4nO1xyXG5pbXBvcnQgeyBJVGxkVGV4dFRvU3BlZWNoQ29uZmlnLCBsYW5ndWFnZU1lbnVWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSVRsZEF1ZGlvQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLWF1ZGlvLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRlcm0tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUFwaVYyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1hcGktdjItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUNvcmVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvcmUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWZpbGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLXRleHQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZVdlYnNpdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLXdlYi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkFwaVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMvY29yZS90cmFuc2xhdGlvbi1hcGktdmVyc2lvbi5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb24sXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRMRF9UUkFOU0xBVEVfQ09ORklHX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogSVRsZFRyYW5zbGF0ZUNvbmZpZykge1xyXG4gICAgdGhpcy5pbml0Q29uZmlncygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29yZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUNvcmVDb25maWcgPSB7IGFwcElkOiBudWxsLCBjbGllbnRJZDogbnVsbCB9O1xyXG4gIGdldCBjb3JlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvcmVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0Q29uZmlnOiBJVGxkVHJhbnNsYXRlVGV4dENvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXh0Q29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxlQ29uZmlnOiBJVGxkVHJhbnNsYXRlRmlsZUNvbmZpZyA9IHt9O1xyXG4gIGdldCBmaWxlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF93ZWJ0cmFuc2xhdGVDb25maWc6IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnID0ge307XHJcbiAgZ2V0IHdlYnRyYW5zbGF0ZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXJtQ29uZmlnOiBJVGxkVGVybUNvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXJtQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rlcm1Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hcGlWMkNvbmZpZzogSVRsZFRyYW5zbGF0ZUFwaVYyQ29uZmlnID0ge307XHJcbiAgZ2V0IGFwaVYyQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVYyQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXVkaW9Db25maWc6IElUbGRBdWRpb0NvbmZpZyA9IHsgYXBwSWQ6IG51bGwsIGFwcFNlY3JldDogbnVsbCB9O1xyXG4gIGdldCBhdWRpb0NvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hdWRpb0NvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHRUb1NwZWVjaENvbmZpZzogSVRsZFRleHRUb1NwZWVjaENvbmZpZyA9IHt9O1xyXG4gIGdldCB0ZXh0VG9TcGVlY2hDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbmZpZ3MoY29uZmlndXJhdGlvbj86IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24gPz8gdGhpcy5jb25maWcgPz8ge307XHJcblxyXG4gICAgY29uc3QgY29yZSA9IGNvbmZpZz8uY29yZTtcclxuICAgIGNvbnN0IGZpbGUgPSBjb25maWc/LmZpbGU7XHJcbiAgICBjb25zdCB0ZXh0ID0gY29uZmlnPy50ZXh0O1xyXG4gICAgY29uc3QgYXVkaW8gPSBjb25maWc/LmF1ZGlvO1xyXG4gICAgY29uc3Qgd2VidHJhbnNsYXRlID0gY29uZmlnPy53ZWJUcmFuc2xhdGU7XHJcbiAgICBjb25zdCB0ZXJtQ29uZmlnID0gY29uZmlnPy50ZXJtO1xyXG4gICAgY29uc3QgYXBpVjJDb25maWcgPSBjb25maWc/LmFwaVYyO1xyXG4gICAgY29uc3QgdGV4dFRvU3BlZWNoID0gY29uZmlnPy50ZXh0VG9TcGVlY2g7XHJcblxyXG4gICAgdGhpcy5fY29yZUNvbmZpZyA9IHsgYXBwSWQ6IGNvcmU/LmFwcElkLCBjbGllbnRJZDogY29yZT8uY2xpZW50SWQgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYXBpSXNJblRoZVNhbWVEb21haW4gPSBjb3JlPy5hcGlJc0luVGhlU2FtZURvbWFpbiB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYXBwTmFtZSA9IGNvcmU/LmFwcE5hbWUgfHwgXCJUaWxkZSBNVFwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlQWNoaWV2ZW1lbnQgPSBjb3JlPy5oaWRlQWNoaWV2ZW1lbnQgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmlzQXV0aCA9IGNvcmU/LmlzQXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuand0QXV0aCA9IGNvcmU/Lmp3dEF1dGggfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0ZUFwcE5hbWUgPSBjb3JlPy50cmFuc2xhdGVBcHBOYW1lID8/IHRydWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayA9IGNvcmU/LnJlZ2lzdGVyTGluayB8fCBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN1cHBvcnRFbWFpbCA9IGNvcmU/LnN1cHBvcnRFbWFpbCB8fCBcIm10QHRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNvdXJjZUxhbmd1YWdlT3JkZXIgPSBjb3JlPy5zb3VyY2VMYW5ndWFnZU9yZGVyIHx8IHtcclxuICAgICAgZW46IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx2OiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBsdDogW1wiZW5cIiwgXCJsdFwiLCBcInJ1XCIsIFwibHZcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZXQ6IFtcImVuXCIsIFwiZXRcIiwgXCJmaVwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGZpOiBbXCJmaVwiLCBcImVuXCIsIFwiZXRcIiwgXCJydVwiLCBcImx2XCIsIFwibHRcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBwbDogW1wicGxcIiwgXCJlblwiLCBcImRlXCIsIFwibHZcIiwgXCJldFwiLCBcInJ1XCIsIFwibHRcIiwgXCJmaVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZGU6IFtcImVuXCIsIFwiYmdcIiwgXCJkYVwiLCBcImV0XCIsIFwiZmlcIiwgXCJmclwiLCBcImRlXCIsIFwiZWxcIiwgXCJnYVwiLCBcImlzXCIsIFwiaXRcIiwgXCJoclwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcIm10XCIsIFwibmxcIiwgXCJuYlwiLCBcInBsXCIsIFwicHRcIiwgXCJwdC1wdFwiLCBcInJvXCIsIFwic3ZcIiwgXCJza1wiLCBcInNsXCIsIFwiZXNcIiwgXCJjc1wiLCBcImh1XCJcclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudGFyZ2V0TGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnRhcmdldExhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwibHZcIiwgXCJldFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgZmk6IFtcImV0XCIsIFwiZmlcIiwgXCJlblwiLCBcImx2XCIsIFwibHRcIiwgXCJydVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIHBsOiBbXCJlblwiLCBcInBsXCIsIFwiZGVcIiwgXCJsdlwiLCBcInJ1XCIsIFwiZXRcIiwgXCJmaVwiLCBcImx0XCIsIFwiYXJcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBkZTogW1wiZGVcIiwgXCJlblwiLCBcImZyXCIsIFwiYmdcIiwgXCJkYVwiLCBcImV0XCIsIFwiZmlcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIiwgXCJhclwiXVxyXG4gICAgfTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaGlkZUxhbmdNZW51TGFiZWxzID0gY29yZT8uaGlkZUxhbmdNZW51TGFiZWxzIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93VmVuZG9ycyA9IGNvcmU/LnNob3dWZW5kb3JzIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy51bmF1dGhvcml6ZWRSZWRpcmVjdExpbmsgPSBjb3JlPy51bmF1dGhvcml6ZWRSZWRpcmVjdExpbms7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFsbG93ZWRTeXN0ZW1TdGF0dXNlcyA9IGNvcmU/LmFsbG93ZWRTeXN0ZW1TdGF0dXNlcyA/PyBbJ3J1bm5pbmcnLCAnc3RhbmRieScsICdxdWV1aW5ndHJhbnNsJ107XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcyA9IGNvcmU/Lm1heERpc3BsYXllZExhbmd1YWdlcyA/PyAzO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy51cGxvYWRJY29uTmFtZSA9IGNvcmU/LnVwbG9hZEljb25OYW1lO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWJ1ZyA9IGNvcmU/LmRlYnVnO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUgPSBjb3JlPy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zID0gY29yZT8uc2hvd0RvbWFpbnMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFZlbmRvciA9IGNvcmU/LmRlZmF1bHRWZW5kb3IgPz8gXCJUaWxkZVwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0U3lzdGVtSWQgPSBjb3JlPy5kZWZhdWx0U3lzdGVtSWQ7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3Vic2NyaXB0aW9uU3VwcG9ydCA9IGNvcmU/LnN1YnNjcmlwdGlvblN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNXZWJDb21wb25lbnQgPSBjb3JlPy5pc1dlYkNvbXBvbmVudCA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93ZWRGaWxlVHlwZXMgPSBmaWxlPy5hbGxvd2VkRmlsZVR5cGVzIHx8IFtcIi5kb2NcIiwgXCIuZG9jeFwiLCBcIi54bHN4XCIsIFwiLnBkZlwiLCBcIi5wcHR4XCIsIFwiLm9kdFwiLCBcIi5vZHBcIiwgXCIub2RzXCIsIFwiLnR4dFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZXh0ZW5kZWRGaWxlVHlwZXMgPSBmaWxlPy5leHRlbmRlZEZpbGVUeXBlc1xyXG4gICAgICB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wcHR4XCIsIFwiLm9kdFwiLCBcIi5vZHBcIiwgXCIub2RzXCIsIFwiLnR4dFwiLCBcIi5odG1sXCIsIFwiLmh0bVwiLFxyXG4gICAgICAgIFwiLnhodG1sXCIsIFwiLnhodFwiLCBcIi50bXhcIiwgXCIueGxmXCIsIFwiLnhsaWZcIiwgXCIueGxpZmZcIiwgXCIuc2RseGxpZmZcIiwgXCIuc2RseGxmXCIsIFwiLnR0eFwiLCBcIi5ydGZcIixcclxuICAgICAgICBcIi5wYWdlc1wiLCBcIi50ZXhcIiwgXCIueG1sXCIsIFwiLmpzb25cIiwgXCIuc3h3XCIsIFwiLnBkZlwiLCBcIi5jc3ZcIiwgXCIudHRsXCIsIFwiLnNydFwiLCBcIi5wbmdcIiwgXCIuanBnXCIsIFwiLmpwZWdcIiwgXCIuYm1wXCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1RteEF1dGggPSBmaWxlPy5hbGxvd1RteEF1dGggPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhVbmF1dGggPSBmaWxlPy5hbGxvd1RteFVuYXV0aCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZUFwaVVybCA9IGZpbGU/LmZpbGVBcGlVcmwgfHwgXCJodHRwczovL2xldHNtdC5ldS93cy9GaWxlcy9cIjtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHMgPSBmaWxlPy5maWxlRG93bmxvYWRUaW1lb3V0c1xyXG4gICAgICB8fCB7XHJcbiAgICAgIFwiaW5pdGlhbGl6aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiZXh0cmFjdGluZ1wiOiAxMDAwLFxyXG4gICAgICBcIndhaXRpbmdcIjogMTAwMDAsXHJcbiAgICAgIFwidHJhbnNsYXRpbmdcIjogMTAwMCxcclxuICAgICAgXCJzYXZpbmdcIjogMTAwMCxcclxuICAgICAgXCJjb21wbGV0ZWRcIjogMTAwMCxcclxuICAgICAgXCJlcnJvclwiOiAxMDAwLFxyXG4gICAgICBcInF1ZXVpbmdcIjogMTAwMFxyXG4gICAgfTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcubWF4U2l6ZSA9IGZpbGU/Lm1heFNpemUgfHwgMzA3MjAwMDA7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLndvcmRMaW1pdCA9IGZpbGU/LndvcmRMaW1pdCA/PyAxMjUwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlVXBsb2FkID0gZmlsZT8uZmlsZVVwbG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQgPSBmaWxlPy5vY3JQYWdlTGltaXQgPz8gMTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dQREZTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93UERGU291cmNlRG93bmxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dJbWFnZVNvdXJjZURvd25sb2FkID0gZmlsZT8uYWxsb3dJbWFnZVNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNvdXJjZURvd25sb2FkRXh0ZW5zaW9ucyA9IGZpbGU/LnNvdXJjZURvd25sb2FkRXh0ZW5zaW9ucyB8fCBbXCJwZGZcIiwgXCJwbmdcIiwgXCJqcGdcIiwgXCJqcGVnXCIsIFwiYm1wXCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyID0gZmlsZT8udGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlcjtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPSBmaWxlPy5udW1iZXJPZkZpbGVzQWxsb3dlZCA+IDAgPyBmaWxlLm51bWJlck9mRmlsZXNBbGxvd2VkIDogMTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuc2hvd1RyYW5zbGF0aW9uTGltaXRzID0gZmlsZT8uc2hvd1RyYW5zbGF0aW9uTGltaXRzID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnVzZU11bHRpcGxlRmlsZVVwbG9hZCA9IGZpbGU/LnVzZU11bHRpcGxlRmlsZVVwbG9hZDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID0gZmlsZT8ucHJvZ3Jlc3NJbmRpY2F0b3JUaXRsZVZpc2libGVGb3JWZW5kb3JzID8/IFtcIkVUcmFuc2xhdGlvblwiXTtcclxuXHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmRpY3Rpb25hcnlVcmwgPSB0ZXh0Py5kaWN0aW9uYXJ5VXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvYXBpL2RpY3Rpb25hcnkvR2V0RGljdGlvbmFyeUVudHJ5L1wiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5tYXhDaGFyTGVuZ3RoID0gdGV4dD8ubWF4Q2hhckxlbmd0aCA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4IHx8IFwiL3dlYnRyYW5zbGF0ZT91cmw9XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4ID0gdGV4dD8ud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXggfHwgXCJcIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudXNlRGljdGlvbmFyeSA9IHRleHQ/LnVzZURpY3Rpb25hcnkgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dBdmFpbGFibGVFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnMgPT0gbnVsbCA/IHRydWUgOiB0ZXh0LnNob3dBdmFpbGFibGVFeHRlbnNpb25zO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXV0aEV4dGVuc2lvbnMgPSB0ZXh0Py5zaG93QXV0aEV4dGVuc2lvbnMgPT0gbnVsbCA/IHRydWUgOiB0ZXh0LnNob3dBdXRoRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuYXV0b0ZvY3VzcyA9IHRleHQ/LmF1dG9Gb2N1c3M7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dFeHRlbnNpb25zVW5hdXRoT25seSA9IHRleHQ/LnNob3dFeHRlbnNpb25zVW5hdXRoT25seTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1NlbnNpdGl2ZUluZm9Ub29sdGlwID0gdGV4dD8uc2hvd1NlbnNpdGl2ZUluZm9Ub29sdGlwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA9IHRleHQ/LmFsbG93V2Vic2l0ZVRyYW5zbGF0aW9uID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTdWdnZXN0aW9ucyA9IHRleHQ/LnNob3dTdWdnZXN0aW9ucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZSA9IHRleHQ/LmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWdobGlnaHQgPSB0ZXh0Py5oaWdobGlnaHQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuY2hlY2tTb3VyY2VHcmFtbWFyID0gdGV4dD8uY2hlY2tTb3VyY2VHcmFtbWFyID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMgPSB0ZXh0Py5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMgPz8gW107XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dUYXJnZXRQbGFjZWhvbGRlciA9IHRleHQ/LnNob3dUYXJnZXRQbGFjZWhvbGRlcjtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0V4dGVuc2lvblBvcHVwID0gdGV4dD8uc2hvd0V4dGVuc2lvblBvcHVwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPSB0ZXh0Py52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPz8gMztcclxuICAgIHRoaXMuX3RleHRDb25maWcuaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA9IHRleHQ/LmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcucHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHMgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA/PyAyMDAwO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPz8gW1wiRVRyYW5zbGF0aW9uXCJdO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclZpc2libGUgPSB0ZXh0Py5wcm9ncmVzc0luZGljYXRvclZpc2libGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dUcmFuc2xhdGVCdXR0b24gPSB0ZXh0Py5zaG93VHJhbnNsYXRlQnV0dG9uID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9UZXh0SW5wdXQgPSBhdWRpbz8uYXVkaW9UZXh0SW5wdXQgPz8gZmFsc2U7XHJcbiAgICAvLyBOb3Qgc2V0dGluZyBkZWZhdWx0IHVybCBiZWNhdXNlIHRoZXJlIGlzIG5vIHNlcnZpY2UgcHJvdmlkZWQgYnkgVGlsZGUgYW5kIHRoaXMgaXMgbm90IHVzZWQgYnkgZGVmYXVsdCBpbiB3ZWJzaXRlIHByb2plY3QuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb0FwaVVybCA9IGF1ZGlvPy5hdWRpb0FwaVVybDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvTWF4U2l6ZUJ5dGVzID0gYXVkaW8/LmF1ZGlvTWF4U2l6ZUJ5dGVzID8/IDEwMDAwMDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuc291cmNlTGFuZ3VhZ2VzID0gYXVkaW8/LnNvdXJjZUxhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRhdGFVcGRhdGVUaW1lRnJhbWUgPSBhdWRpbz8uZGF0YVVwZGF0ZVRpbWVGcmFtZSA/PyA1MDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUgPSBhdWRpbz8ubWF4aW11bVJlY29yZFRpbWUgPz8gMzAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybCA9IGF1ZGlvPy5kaWN0YXRlQXBpVXJsID8/IFwicnVuYS50aWxkZS5sdlwiO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwSWQgPSBhdWRpbz8uYXBwSWQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBTZWNyZXQgPSBhdWRpbz8uYXBwU2VjcmV0O1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcucHVuY3R1YXRpb25NZXNzYWdlID0gYXVkaW8/LnB1bmN0dWF0aW9uTWVzc2FnZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID0gYXVkaW8/LmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb24gPSB3ZWJ0cmFuc2xhdGU/LmxvZ29Mb2NhdGlvbiB8fCAnYXNzZXRzL3dlYnRyYW5zbGF0ZS90aWxkZV9sb2dvLnBuZyc7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGU/LnRyYW5zbGF0ZVBhZ2VQYXRoO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnID0gd2VidHJhbnNsYXRlPy5kZWJ1ZyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZT8ud2ViTGFuZ0F1dG9kZXRlY3QgfHwgdHJ1ZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5hbGxvd1N1Z2dlc3Rpb25zID0gd2VidHJhbnNsYXRlPy5hbGxvd1N1Z2dlc3Rpb25zIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cCA9IHdlYnRyYW5zbGF0ZT8uaGlkZVBvcHVwIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3ggPSB3ZWJ0cmFuc2xhdGU/LnNhbmRib3ggPz8gXCJhbGxvdy1mb3JtcyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luXCI7XHJcblxyXG4gICAgdGhpcy5fdGVybUNvbmZpZy50ZXJtaW5vbG9neVBvcnRhbFVybCA9IHRlcm1Db25maWc/LnRlcm1pbm9sb2d5UG9ydGFsVXJsIHx8IFwiaHR0cHM6Ly90ZXJtLnRpbGRlLmNvbVwiO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uID0gdGVybUNvbmZpZz8uY2FuQ3JlYXRlQ29sbGVjdGlvbjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCA9IHRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmlzVGVybVBvcnRhbFN1cHBvcnRlZCA9IHRlcm1Db25maWc/LmlzVGVybVBvcnRhbFN1cHBvcnRlZCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGggPSB0ZXJtQ29uZmlnPy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA/PyA4O1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID8/IDMwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNcyA9IHRlcm1Db25maWc/LnJlZnJlc2hUaW1lb3V0TXMgPz8gMTAwMDA7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXNXaGVuSW1wb3J0aW5nID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPz8gNTAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuZW5naW5lVGVybVVybCA9IHRlcm1Db25maWc/LmVuZ2luZVRlcm1Vcmw7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmRlZmF1bHRHbG9zc2FyeU1hbmFnZW1lbnRMaW5rID0gdGVybUNvbmZpZz8uZGVmYXVsdEdsb3NzYXJ5TWFuYWdlbWVudExpbms7XHJcblxyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5mcmVlVHJpYWxVcmwgPSB0ZXJtQ29uZmlnPy5mcmVlVHJpYWxVcmwgPz8gXCJodHRwczovL3RpbGRlLmNvbS9wcm9kdWN0cy1hbmQtc2VydmljZXMvbWFjaGluZS10cmFuc2xhdGlvbi9wcmljaW5nL1RpbGRlLU1UXCI7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmxlYXJuTW9yZVVybCA9IHRlcm1Db25maWc/LmxlYXJuTW9yZVVybCA/PyBcImh0dHBzOi8vd3d3LnRpbGRlLmNvbS9wcm9kdWN0cy1hbmQtc2VydmljZXMvbWFjaGluZS10cmFuc2xhdGlvbi9UaWxkZS1NVC1mZWF0dXJlcy1nbG9zc2FyeVwiO1xyXG5cclxuICAgIC8vIHNlcGVyYXRlZCBiZWNhdXNlIGZvbGxvd2luZyB1cmxzIGhhdmUgbWV0aG9kIG5hbWVzIGFkZGVkXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCA9IGNvcmU/LnRyYW5zbGF0aW9uU2VydmljZVVybCB8fCBcImh0dHBzOi8vd3d3LmxldHNtdC5ldS93cy9zZXJ2aWNlLnN2Yy9qc29uL1wiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy50cmFuc2xhdGlvblVybCA9IHRleHQ/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJUcmFuc2xhdGVFeFwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51cGRhdGVUcmFuc2xhdGlvblVybCA9IHRleHQ/LnVwZGF0ZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJVcGRhdGVUcmFuc2xhdGlvblwiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zeXN0ZW1MaXN0VXJsID0gY29yZT8uc3lzdGVtTGlzdFVybCA/PyB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCArIFwiR2V0U3lzdGVtTGlzdFwiO1xyXG5cclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnhBcGlLZXkgPSBhcGlWMkNvbmZpZz8ueEFwaUtleTtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsID0gYXBpVjJDb25maWc/Lm10QXBpVXJsID8/IFwiYXBpL3RyYW5zbGF0ZS9cIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnN5c3RlbUxpc3RVcmwgPSBhcGlWMkNvbmZpZz8uc3lzdGVtTGlzdFVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwibGFuZ3VhZ2UtZGlyZWN0aW9uc1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcudHJhbnNsYXRpb25VcmwgPSBhcGlWMkNvbmZpZz8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgKyBcInRleHRcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmZpbGVUcmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy5maWxlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgKyBcImZpbGVcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmdyYW1tYXJDaGVja1VybCA9IGFwaVYyQ29uZmlnPy5ncmFtbWFyQ2hlY2tVcmwgPz8gXCJodHRwczovL210LmNzLnV0LmVlL2FwaS9ncmFtbWFyXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5hdXRvRG9tYWluRGV0ZWN0aW9uID0gYXBpVjJDb25maWc/LmF1dG9Eb21haW5EZXRlY3Rpb24gPz8gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnLmxhbmd1YWdlcyA9IHRleHRUb1NwZWVjaD8ubGFuZ3VhZ2VzID8/IHt9O1xyXG4gICAgdGhpcy5fdGV4dFRvU3BlZWNoQ29uZmlnLm1heENoYXJzSW5UZXh0ID0gdGV4dFRvU3BlZWNoPy5tYXhDaGFyc0luVGV4dCA/PyAzMDAwO1xyXG5cclxuICAgIHRoaXMuZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUbyBtYWtlIHN1cmUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgYXJlIG5vdCB0dXJuZWQgb24gYmVjYXVzZSBpbiBhcGkgVjIgc29tZSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbW5lbnRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIGVkaXRQcm9wZXJ0aWVzQmFzZWRPbkFwaSgpIHtcclxuICAgIGlmICh0aGlzLmFwaVZlcnNpb24gPT09IFRyYW5zbGF0aW9uQXBpVmVyc2lvbi5WMikge1xyXG4gICAgICB0aGlzLnRleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -7,13 +7,11 @@ import { MtCollectionStatus } from './models/mt-collection-status.enum';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../../tld-common/services";
|
|
9
9
|
import * as i2 from "./term-api/term-api.service";
|
|
10
|
-
import * as i3 from "../../tld-common/components/translate-button/tld-translate-button.service";
|
|
11
10
|
export class TerminologyService {
|
|
12
|
-
constructor(config, termApi, alerts,
|
|
11
|
+
constructor(config, termApi, alerts, mtApi) {
|
|
13
12
|
this.config = config;
|
|
14
13
|
this.termApi = termApi;
|
|
15
14
|
this.alerts = alerts;
|
|
16
|
-
this.button = button;
|
|
17
15
|
this.mtApi = mtApi;
|
|
18
16
|
this._selected = null;
|
|
19
17
|
this.onDataUpdate = new Subject();
|
|
@@ -22,7 +20,6 @@ export class TerminologyService {
|
|
|
22
20
|
get selected() { return this._selected; }
|
|
23
21
|
set selected(val) {
|
|
24
22
|
this._selected = val;
|
|
25
|
-
this.button.actionButtonClicked();
|
|
26
23
|
this.storeSelectedInLocalStorage();
|
|
27
24
|
if (!this._selected) {
|
|
28
25
|
return;
|
|
@@ -305,15 +302,15 @@ export class TerminologyService {
|
|
|
305
302
|
this.onDataUpdate.next(this.collections);
|
|
306
303
|
}
|
|
307
304
|
}
|
|
308
|
-
TerminologyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TerminologyService, deps: [{ token: i1.TldTranslateConfigService }, { token: i2.TermApiService }, { token: i1.TldAlertService }, { token:
|
|
305
|
+
TerminologyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TerminologyService, deps: [{ token: i1.TldTranslateConfigService }, { token: i2.TermApiService }, { token: i1.TldAlertService }, { token: MT_TERM_API_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
309
306
|
TerminologyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TerminologyService, providedIn: 'root' });
|
|
310
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TerminologyService, decorators: [{
|
|
311
308
|
type: Injectable,
|
|
312
309
|
args: [{
|
|
313
310
|
providedIn: 'root'
|
|
314
311
|
}]
|
|
315
|
-
}], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.TermApiService }, { type: i1.TldAlertService }, { type:
|
|
312
|
+
}], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.TermApiService }, { type: i1.TldAlertService }, { type: undefined, decorators: [{
|
|
316
313
|
type: Inject,
|
|
317
314
|
args: [MT_TERM_API_TOKEN]
|
|
318
315
|
}] }]; } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFReEUsTUFBTSxPQUFPLGtCQUFrQjtJQTBEN0IsWUFBNkIsTUFBaUMsRUFDM0MsT0FBdUIsRUFDdkIsTUFBdUIsRUFDdkIsTUFBaUMsRUFDZixLQUFxQjtRQUo3QixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUMzQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNmLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBN0RsRCxjQUFTLEdBQXVCLElBQUksQ0FBQztRQTJDNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUV0RCxzQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztJQWdCQyxDQUFDO0lBNUQvRCxJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQUksUUFBUSxDQUFDLEdBQXVCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBS0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztJQUNySCxDQUFDO0lBR0QsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztJQUdELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBc0JELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFlBQXNCLElBQUksRUFBRSwyQkFBMkIsR0FBRyxLQUFLLEVBQUUsZUFBZSxHQUFHLElBQUksRUFBRSxhQUFhLEdBQUcsSUFBSTtRQUN2SSxnRUFBZ0U7UUFDaEUsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztlQUMvRixJQUFJLENBQUMsb0JBQW9CLEtBQUssYUFBYSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxlQUFlLEVBQUU7WUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7WUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsQ0FBQztZQUMxQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQiwrRkFBK0Y7WUFDL0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsMkJBQTJCLEdBQUcsS0FBSztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNwRyxPQUFPO1NBQ1I7UUFFRCxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFFckMsSUFBSSxZQUFrQyxDQUFDO1FBQ3ZDLElBQUksYUFBbUMsQ0FBQztRQUV4QyxNQUFNLFdBQVcsR0FBdUMsRUFBRSxDQUFDO1FBRTNELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLFdBQVcsQ0FBQyxJQUFJLENBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtpQkFDN0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUMzQyxDQUNKLENBQUE7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLFdBQVcsQ0FBQyxJQUFJLENBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDOUIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUM1QyxDQUNKLENBQUM7U0FDSDtRQUNELFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUIsa0VBQWtFO1lBQ2xFLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLDZFQUE2RTtnQkFDN0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBRWhELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxhQUFhLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztpQkFDL0I7Z0JBQ0QsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztpQkFDOUI7Z0JBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsSUFBSSwyQkFBMkIsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7aUJBQ3BDO2dCQUNELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLDZFQUE2RTtnQkFDN0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUE4QjtRQUN4QyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRTtZQUM3QyxPQUFPLENBQUMsS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDeEUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQ2hEO1lBQ0UsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQXNCLEVBQUUsY0FBc0IsRUFBRSxjQUFzQixFQUFFLGNBQWMsR0FBRyxJQUFJO1FBQ2xHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ3pGLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2pCLElBQUksY0FBYyxFQUFFO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUMvRztZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ2hFLDhEQUE4RDtRQUM5RCxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxRQUFRLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztpQkFDN0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0w7YUFDSTtZQUNILE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVEOzs7S0FHQztJQUNELHdCQUF3QjtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5SSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCLEVBQUUsWUFBc0IsSUFBSSxFQUFFLDJCQUEyQixHQUFHLEtBQUssRUFBRSxlQUFlLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxJQUFJO1FBQy9JLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkosQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBOEIsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFDekUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsVUFBOEIsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFDM0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWdCO1FBQ3RDLDRHQUE0RztRQUM1RyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNwRixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztTQUNSO1FBRUQsNklBQTZJO1FBQzdJLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLEVBQUU7WUFDOUcsTUFBTSxTQUFTLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDcEosSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDM0IsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLGNBQTRDO1FBQ2pFLDZGQUE2RjtRQUM3RixLQUFLLElBQUksVUFBVSxJQUFJLGNBQWMsRUFBRTtZQUNyQywwRUFBMEU7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7bUJBQ3ZCLFVBQVUsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsS0FBSyxFQUFFO2dCQUNyRCxTQUFTO2FBQ1Y7WUFFRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxRQUFRLEdBQXVCLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFbkgscUhBQXFIO1lBQ3JILElBQUksQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSywwQkFBMEIsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzNGLFlBQVksR0FBRyxLQUFLLENBQUM7d0JBQ3JCLE1BQU07cUJBQ1A7aUJBQ0Y7Z0JBRUQsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDakIsU0FBUztpQkFDVjthQUNGO1lBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuQztpQkFDSTtnQkFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsWUFBa0MsRUFBRSxVQUFnQztRQUV4RixLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekMsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRixJQUFJLGNBQWMsS0FBSyxJQUFJLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXBDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjthQUNGO2lCQUNJO2dCQUNILElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtvQkFDM0IsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUM5QyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM1QixZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDeEM7cUJBQ0k7b0JBQ0gsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUMxQjtnQkFFRCxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7b0JBQ3pCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3BDO3FCQUNJO29CQUNILFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdkI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLHNKQUFzSjtRQUN0SixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pELE9BQU07U0FDUDtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPO1NBQ1I7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDdkksSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUdPLDJCQUEyQjtRQUNqQyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN2QixrQkFBa0IsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFFRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoSSw2QkFBNkI7UUFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7UUFDRCxNQUFNO1lBQ0osT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OytHQXZYVSxrQkFBa0IsaUtBOERuQixpQkFBaUI7bUhBOURoQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkErREksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTVRfVEVSTV9BUElfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlIH0gZnJvbSAnLi9lbmdpbmUtdGVybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi9tb2RlbHMvbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IElNdFRlcm1TZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbHMvbXQtdGVybS1zZXJ2aWNlLm1vZGVsJztcclxuaW1wb3J0IHsgVGVybUFwaVNlcnZpY2UgfSBmcm9tICcuL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdGxkLXRyYW5zbGF0ZS1idXR0b24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBDb21iaW5lZENvbGxlY3Rpb24gPSBudWxsO1xyXG4gIGdldCBzZWxlY3RlZCgpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkOyB9XHJcbiAgc2V0IHNlbGVjdGVkKHZhbDogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbDtcclxuICAgIHRoaXMuYnV0dG9uLmFjdGlvbkJ1dHRvbkNsaWNrZWQoKTtcclxuICAgIHRoaXMuc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKCk7XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5fc2VsZWN0ZWQubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkVG9FbmdpbmUodGhpcy5fc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FueUltcG9ydGluZzogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfaGFzQW55Q29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZFNob3dQcm9tb3Rpb24oKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuaGFzQW55Q29sbGVjdGlvbnMgJiYgIXRoaXMuaGFzRWRpdFBlcm1pc3Npb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhbkNyZWF0ZUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnRlcm1Db25maWcuY2FuQ3JlYXRlQ29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCBoYXNFZGl0UGVybWlzc2lvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmNvcmVDb25maWcuaXNBdXRoICYmIHRoaXMuY2FuQ3JlYXRlQ29sbGVjdGlvbnMgJiYgdGhpcy5jb25maWcudGVybUNvbmZpZy5pc1Rlcm1Qb3J0YWxTdXBwb3J0ZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1JlZnJlc2hpbmdDb2xsZWN0aW9uczogYm9vbGVhbjtcclxuICBnZXQgaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb2xsZWN0aW9uczogU2V0PENvbWJpbmVkQ29sbGVjdGlvbj47XHJcbiAgZ2V0IGNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBvbkRhdGFVcGRhdGUgPSBuZXcgU3ViamVjdDxTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPj4oKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBMT0NBTF9TVE9SQUdFX0tFWSA9IFwic3lzdGVtTGFzdENvbGxlY3Rpb25zXCI7XHJcbiAgcHJpdmF0ZSBlbmdpbmVJZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVmcmVzaE10Q29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSByZWZyZXNoVGVybUNvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIC8vIHN0b3JlcyBsYW5ndWFnZSBjb2RlcyB3aGljaCBhcmUgdXNlZCB0byBmaWx0ZXIgdmlzYmxlIGNvbGxlY3Rpb25zIGZyb20gdGVybSBhcGkuXHJcbiAgcHJpdmF0ZSBlbmdpbmVMYW5ndWFnZXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRpbWVvdXQ6IGFueTtcclxuICAvLyBzb2Z0IHJlZnJlc2ggdGFrZXMgaW4gYWNjb3VudCBvdGhlciBwYXJhbXMgYXMgd2VsbC5cclxuICBwcml2YXRlIGlzU29mdEF1dG9SZWZyZXNoT246IGJvb2xlYW47XHJcbiAgLy8gc2hvdWxkIGRvIGF1dG9yZWZyZXNoIGJ5IGlnbm9yaW5nIGFueSBvdGhlciBwYXJhbXMuXHJcbiAgcHJpdmF0ZSBoYXJkQXV0b1JlZnJlc2g6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtQXBpOiBUZXJtQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvbjogVGxkVHJhbnNsYXRlQnV0dG9uU2VydmljZSxcclxuICAgIEBJbmplY3QoTVRfVEVSTV9BUElfVE9LRU4pIHByaXZhdGUgbXRBcGk6IElNdFRlcm1TZXJ2aWNlKSB7IH1cclxuXHJcbiAgZGF0YVVwZGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm9uRGF0YVVwZGF0ZS5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldEVuZ2luZShlbmdpbmVJZDogc3RyaW5nLCBsYW5ndWFnZXM6IHN0cmluZ1tdID0gbnVsbCwgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIHRlcm1Db2xsZWN0aW9ucyA9IHRydWUsIG10Q29sbGVjdGlvbnMgPSB0cnVlKTogT2JzZXJ2YWJsZTxTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPj4ge1xyXG4gICAgLy8gZW5naW5lIGlzIGFscmVhZHkgc2V0IHdpdGggdGhhdCBJRCBhbmQgbm8gbmVlZCB0byByZWZyZXNoIGl0LlxyXG4gICAgaWYgKGVuZ2luZUlkICE9PSB0aGlzLmVuZ2luZUlkIHx8IEpTT04uc3RyaW5naWZ5KGxhbmd1YWdlcykgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuZW5naW5lTGFuZ3VhZ2VzKVxyXG4gICAgICB8fCB0aGlzLnJlZnJlc2hNdENvbGxlY3Rpb25zICE9PSBtdENvbGxlY3Rpb25zIHx8IHRoaXMucmVmcmVzaFRlcm1Db2xsZWN0aW9ucyAhPT0gdGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuZW5naW5lTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hNdENvbGxlY3Rpb25zID0gbXRDb2xsZWN0aW9ucztcclxuICAgICAgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zID0gdGVybUNvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLmVuZ2luZUlkID0gZW5naW5lSWQ7XHJcbiAgICAgIHRoaXMuX2NvbGxlY3Rpb25zID0gbmV3IFNldCgpO1xyXG4gICAgICB0aGlzLmVtaXREYXRhVXBkYXRlRXZlbnQoKTtcclxuICAgICAgLy8gYXZvaWRpbmcgc2V0dGVyLCBzbyB0aGUgbnVsbCB2YWx1ZSBpcyBub3Qgc3RvcmVlZCBpbiBsb2NhdGlvbiBzaW5jZSBpdCBpcyBub3QgYnkgdXNlciBhY3Rpb25cclxuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuZ2luZUlkKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaENvbGxlY3Rpb25zKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaENvbGxlY3Rpb25zKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlKSB7XHJcbiAgICBpZiAoIXRoaXMuZW5naW5lSWQgfHwgIXRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCB8fCB0aGlzLmlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjbGVhciB0aW1lb3V0IHNpbmNlIHRoaXMgcmVmcmVzaCByZXBsYWNlcyBzY2hlZHVsZWRcclxuICAgIHRoaXMuY2xlYXJUaW1lb3V0KCk7XHJcblxyXG4gICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSB0cnVlO1xyXG5cclxuICAgIGxldCB0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG4gICAgbGV0IG10QXBpUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPltdID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMucmVmcmVzaFRlcm1Db2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMudGVybUFwaS5nZXRDb2xsZWN0aW9uTGlzdCgpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXNwb25zZSkgPT4gdGVybVJlc3BvbnNlID0gcmVzcG9uc2UpXHJcbiAgICAgICAgICApXHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlZnJlc2hNdENvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5tdEFwaS5nZXRMaXN0KHRoaXMuZW5naW5lSWQpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXNwb25zZSkgPT4gbXRBcGlSZXNwb25zZSA9IHJlc3BvbnNlKVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSh7XHJcbiAgICAgIC8vIGRvIG5vdCBuZWVkIHJlc3BvbnNlIGJlY2F1ZSByZXNwb25zZXMgYXJlIHNhdmVkIGluIHBpcGUgbWV0aG9kc1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0FueUltcG9ydGluZyA9IGZhbHNlO1xyXG4gICAgICAgIC8vIG5vdGUgdGhhdCB0ZXJtUmVzcG9uc2UgYW5kIG10YXBpcmVzcG9uc2UgZ2V0cyBjaGFuZ2VkIGR1cmluZyByZW1vdmUgbWV0aG9kXHJcbiAgICAgICAgdGhpcy5yZW1vdmVEZWxldGVkKHRlcm1SZXNwb25zZSwgbXRBcGlSZXNwb25zZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGpvaW5lZCA9IFtdO1xyXG4gICAgICAgIGlmIChtdEFwaVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi5tdEFwaVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlcm1SZXNwb25zZSkge1xyXG4gICAgICAgICAgam9pbmVkLnB1c2goLi4udGVybVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWRkQ29sbGVjdGlvbnMoam9pbmVkKTtcclxuICAgICAgICBpZiAoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICAvLyBpdCBpcyBlbm91Z2ggdG8gc2hvdyBlcnJvciBvbmx5IGluIGNvbnNvbGUuIE5vIHNwZWNpYWwgdGhpbmcgaXMgbmVjZXNzYXJ5LlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRUb0VuZ2luZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIGlmICghY29sbGVjdGlvbiB8fCAhY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVHJ5aW5nIHRvIGF0dGFjaCBjb2xsZWN0aW9uIHRoYXQgaGFzIG5vIHRpbGRlIHRlcm0gaWQuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb24sIHRydWUpLnN1YnNjcmliZShcclxuICAgICAge1xyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZShzb3VyY2VMYW5ndWFnZTogc3RyaW5nLCB0YXJnZXRMYW5ndWFnZTogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCByZWRpcmVjdFRvRWRpdCA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1BcGkuY3JlYXRlQ29sbGVjdGlvbihbc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlXSwgY29sbGVjdGlvbk5hbWUpLnBpcGUoXHJcbiAgICAgIHRhcCgoY29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy50ZXJtQXBpLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24uaWQsIHNvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZSksIFwiX2JsYW5rXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaXNFZGl0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICAvLyBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRlZCBhbmQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIGVuZ2luZVxyXG4gICAgaWYgKGNvbGxlY3Rpb24uaXNFZGl0ZWQoKSB8fCBpc0VkaXRlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tdEFwaS5hZGQodGhpcy5lbmdpbmVJZCwgY29sbGVjdGlvbilcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKlxyXG4gKiBAcmV0dXJucyBzZWxlY3RlZCBjb2xsZWN0aW9uIGlkIGlmIGl0IGlzIGFsbG93ZWQgdG8gdXNlIGNvbGxlY3Rpb24gZm9yIHRyYW5zbGF0aW9uc1xyXG4gKi9cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkPy5tdENvbGxlY3Rpb24gJiYgKHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8IHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5zdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5SRUFEWSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5pZDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRBdXRvUmVmcmVzaChlbmdpbmVJZD86IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSA9IG51bGwsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlLCB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLCBtdENvbGxlY3Rpb25zID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5oYXJkQXV0b1JlZnJlc2ggPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0RW5naW5lKGVuZ2luZUlkID8/IHRoaXMuZW5naW5lSWQsIGxhbmd1YWdlcyA/PyB0aGlzLmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24gPSBmYWxzZTtcclxuICAgIHRoaXMuaGFyZEF1dG9SZWZyZXNoID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZCA9IHRoaXMuZW5naW5lSWQpIHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnJlbW92ZShlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHJlc3BvbnNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgZW5naW5lSWQgPSB0aGlzLmVuZ2luZUlkKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24pLlxyXG4gICAgICBwaXBlKHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHsgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pIH0pKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVJlZnJlc2godGltZW91dD86IG51bWJlcikge1xyXG4gICAgLy8gaWYgbWVudSBpcyBjbG9zZWQgYW5kIHNlbGVjdGVkIGNvbGxlY3Rpb24gaXMgbm90IGltcG9ydGluZyBhbnltb3JlIC0gYXV0byByZWZyZXNoaW5nIHNob3VsZCBiZSBjYW5jZWxsZWQuXHJcbiAgICBpZiAoIXRoaXMuaGFyZEF1dG9SZWZyZXNoICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZyAmJiB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24pIHtcclxuICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGhhcmQgYXV0byByZWZyZXNobyBvbiwgYXV0byByZWZyZXNoIHNob3VsZCBiZSBvbi4gSWYgaGFyZCBhdXRvcmVmZXJlc2ggaXMgb2ZmICwgcmVmcmVzaCBuZWVkcyB0byBiZSBkb25lIG9ubHkgaWYgc2VsZWN0ZWQgaXMgaW1wb3J0aW5nLlxyXG4gICAgaWYgKHRoaXMuaGFyZEF1dG9SZWZyZXNoIHx8ICghdGhpcy5yZWZyZXNoVGltZW91dCAmJiAodGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uIHx8IHRoaXMuc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nKSkpIHtcclxuICAgICAgY29uc3QgdGltZW91dE1zID0gdGltZW91dCA/PyAodGhpcy5pc0FueUltcG9ydGluZyA/IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgOiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoKVxyXG4gICAgICB9LCB0aW1lb3V0TXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmV3Q29sbGVjdGlvbnNcclxuICAgKi9cclxuICBwcml2YXRlIGFkZENvbGxlY3Rpb25zKG5ld0NvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+KSB7XHJcbiAgICAvLyBzZXRzIGNvbGxlY3Rpb24gbGlzdCB0byB0aGlzIHZhbHVlIGF0IHRoZSBlbmQsIHNvIGRlbGV0ZWQgY29sbGVjdGlvbnMgYXJlIG5vdCBpbiB0aGUgbGlzdC5cclxuICAgIGZvciAobGV0IGNvbGxlY3Rpb24gb2YgbmV3Q29sbGVjdGlvbnMpIHtcclxuICAgICAgLy8gVXNlciBzaG91bGRuJ3Qgc2VlIGZhaWxlZCBjb2xsZWN0aW9ucyBpZiBoZSBjYW4ndCByZXRyeSB0byBpbXBvcnQgdGhlbS5cclxuICAgICAgaWYgKCF0aGlzLmhhc0VkaXRQZXJtaXNzaW9uc1xyXG4gICAgICAgICYmIGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5FUlJPUikge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29sbGVjdGlvbi5pc0ltcG9ydGluZykge1xyXG4gICAgICAgIHRoaXMuaXNBbnlJbXBvcnRpbmcgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBleGlzdGluZzogQ29tYmluZWRDb2xsZWN0aW9uID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0NvbGxlY3Rpb25Gcm9tTGlzdCh0aGlzLmNvbGxlY3Rpb25zLCBjb2xsZWN0aW9uKTtcclxuXHJcbiAgICAgIC8vIElmIHRlcm0gYXBpIGRvZXNuJ3QgaGF2ZSBlbmdpbmUgbGFuZ3VhZ2VzLCBjb2xsZWN0aW9uIHNob3VsZCBub3QgYmUgc2hvd24gKGlmIGl0IGlzIG5vdCBhbHJlYWR5IGltcG9ydGVkIHNvbWVob3cpO1xyXG4gICAgICBpZiAoIWV4aXN0aW5nICYmIGNvbGxlY3Rpb24uc291cmNlID09PSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5USUxERV9URVJNKSB7XHJcbiAgICAgICAgbGV0IGhhc0xhbmd1YWdlcyA9IHRydWU7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVuZ2luZUxhbmd1YWdlcz8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICghY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbi5sYW5ndWFnZXM/LmZpbmQobGFuZyA9PiBsYW5nLmlkID09PSB0aGlzLmVuZ2luZUxhbmd1YWdlc1tpXSkpIHtcclxuICAgICAgICAgICAgaGFzTGFuZ3VhZ2VzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFoYXNMYW5ndWFnZXMpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFleGlzdGluZykge1xyXG4gICAgICAgIHRoaXMuX2NvbGxlY3Rpb25zLmFkZChjb2xsZWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBleGlzdGluZy51cGRhdGUoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9jb2xsZWN0aW9ucyA9IHVwZGF0ZWRDb2xsZWN0aW9ucztcclxuICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0aGlzLl9jb2xsZWN0aW9ucy5zaXplID4gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgcmVmcmVzaCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbnkgY29sbGVjdGlvbnMgZnJvbSBhcGkgdGhhdCBhcmUgZGVsZXRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgbXRSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW10pIHtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5jb2xsZWN0aW9ucykge1xyXG4gICAgICBjb25zdCB0ZXJtRXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KHRlcm1SZXNwb25zZSwgY29sbGVjdGlvbik7XHJcbiAgICAgIGNvbnN0IG10RXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KG10UmVzcG9uc2UsIGNvbGxlY3Rpb24pO1xyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5kZWxldGUoY29sbGVjdGlvbik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgPT09IGNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGVybUV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGVybVJlc3BvbnNlW3Rlcm1FeGlzdGluZ0l4XTtcclxuICAgICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKGV4aXN0aW5nKTtcclxuICAgICAgICAgIHRlcm1SZXNwb25zZS5zcGxpY2UodGVybUV4aXN0aW5nSXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlVGVybXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtdEV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gbXRSZXNwb25zZVttdEV4aXN0aW5nSXhdO1xyXG4gICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUoZXhpc3RpbmcpO1xyXG4gICAgICAgICAgbXRSZXNwb25zZS5zcGxpY2UobXRFeGlzdGluZ0l4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLmRlbGV0ZU1UKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dCgpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lb3V0KTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIC8vIElmIG5vIGNvbGxlY3Rpb25zIG9yIHNlbGVjdGVkIGlzIGFscmVhZHkgc2V0LCBpdCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBsb2NhbHN0b3JhZ2UgdmFsdWUuIChVc3VhbGx5LCBsb2NhbHN0b3JhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUpLlxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbnM/LnNpemUgPT09IDAgfHwgdGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZWRJZCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpPy5bdGhpcy5lbmdpbmVJZF07XHJcbiAgICBpZiAoIXN0b3JlZElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGlzdGluZyA9IEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucykuZmluZChpdGVtID0+IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCB8fCBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBleGlzdGluZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghbG9jYWxTdG9yYWdlT2JqZWN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZU9iamVjdCA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFt0aGlzLmVuZ2luZUlkXSA9IHRoaXMuc2VsZWN0ZWQgPyAodGhpcy5zZWxlY3RlZC50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkKSA6IG51bGw7XHJcbiAgICAvLyBzdG9yZSB0ZXJtIGlkIGlmIGl0IGV4aXN0c1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRMb2NhbFN0b3JhZ2UoKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdERhdGFVcGRhdGVFdmVudCgpIHtcclxuICAgIHRoaXMub25EYXRhVXBkYXRlLm5leHQodGhpcy5jb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU94RSxNQUFNLE9BQU8sa0JBQWtCO0lBeUQ3QixZQUE2QixNQUFpQyxFQUMzQyxPQUF1QixFQUN2QixNQUF1QixFQUNMLEtBQXFCO1FBSDdCLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ0wsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUEzRGxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBMEM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHNCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBZUMsQ0FBQztJQTFEL0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxH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QUFNO1lBQ0osT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OytHQXJYVSxrQkFBa0Isd0hBNERuQixpQkFBaUI7bUhBNURoQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2REksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTVRfVEVSTV9BUElfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlIH0gZnJvbSAnLi9lbmdpbmUtdGVybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi9tb2RlbHMvbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IElNdFRlcm1TZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbHMvbXQtdGVybS1zZXJ2aWNlLm1vZGVsJztcclxuaW1wb3J0IHsgVGVybUFwaVNlcnZpY2UgfSBmcm9tICcuL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVybWlub2xvZ3lTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9zZWxlY3RlZDogQ29tYmluZWRDb2xsZWN0aW9uID0gbnVsbDtcclxuICBnZXQgc2VsZWN0ZWQoKSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWw7XHJcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpO1xyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFRvRW5naW5lKHRoaXMuX3NlbGVjdGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbnlJbXBvcnRpbmc6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX2hhc0FueUNvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIGdldCBoYXNBbnlDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRTaG93UHJvbW90aW9uKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmhhc0FueUNvbGxlY3Rpb25zICYmICF0aGlzLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBjYW5DcmVhdGVDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNhbkNyZWF0ZUNvbGxlY3Rpb25zICYmIHRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbnM6IFNldDxDb21iaW5lZENvbGxlY3Rpb24+O1xyXG4gIGdldCBjb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EYXRhVXBkYXRlID0gbmV3IFN1YmplY3Q8U2V0PENvbWJpbmVkQ29sbGVjdGlvbj4+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxfU1RPUkFHRV9LRVkgPSBcInN5c3RlbUxhc3RDb2xsZWN0aW9uc1wiO1xyXG4gIHByaXZhdGUgZW5naW5lSWQ6IHN0cmluZztcclxuICBwcml2YXRlIHJlZnJlc2hNdENvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRlcm1Db2xsZWN0aW9uczogYm9vbGVhbjtcclxuICAvLyBzdG9yZXMgbGFuZ3VhZ2UgY29kZXMgd2hpY2ggYXJlIHVzZWQgdG8gZmlsdGVyIHZpc2JsZSBjb2xsZWN0aW9ucyBmcm9tIHRlcm0gYXBpLlxyXG4gIHByaXZhdGUgZW5naW5lTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIHJlZnJlc2hUaW1lb3V0OiBhbnk7XHJcbiAgLy8gc29mdCByZWZyZXNoIHRha2VzIGluIGFjY291bnQgb3RoZXIgcGFyYW1zIGFzIHdlbGwuXHJcbiAgcHJpdmF0ZSBpc1NvZnRBdXRvUmVmcmVzaE9uOiBib29sZWFuO1xyXG4gIC8vIHNob3VsZCBkbyBhdXRvcmVmcmVzaCBieSBpZ25vcmluZyBhbnkgb3RoZXIgcGFyYW1zLlxyXG4gIHByaXZhdGUgaGFyZEF1dG9SZWZyZXNoOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaTogVGVybUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNVF9URVJNX0FQSV9UT0tFTikgcHJpdmF0ZSBtdEFwaTogSU10VGVybVNlcnZpY2UpIHsgfVxyXG5cclxuICBkYXRhVXBkYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub25EYXRhVXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW5naW5lKGVuZ2luZUlkOiBzdHJpbmcsIGxhbmd1YWdlczogc3RyaW5nW10gPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpOiBPYnNlcnZhYmxlPFNldDxDb21iaW5lZENvbGxlY3Rpb24+PiB7XHJcbiAgICAvLyBlbmdpbmUgaXMgYWxyZWFkeSBzZXQgd2l0aCB0aGF0IElEIGFuZCBubyBuZWVkIHRvIHJlZnJlc2ggaXQuXHJcbiAgICBpZiAoZW5naW5lSWQgIT09IHRoaXMuZW5naW5lSWQgfHwgSlNPTi5zdHJpbmdpZnkobGFuZ3VhZ2VzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5lbmdpbmVMYW5ndWFnZXMpXHJcbiAgICAgIHx8IHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgIT09IG10Q29sbGVjdGlvbnMgfHwgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zICE9PSB0ZXJtQ29sbGVjdGlvbnMpIHtcclxuICAgICAgdGhpcy5lbmdpbmVMYW5ndWFnZXMgPSBsYW5ndWFnZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgPSBtdENvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUZXJtQ29sbGVjdGlvbnMgPSB0ZXJtQ29sbGVjdGlvbnM7XHJcbiAgICAgIHRoaXMuZW5naW5lSWQgPSBlbmdpbmVJZDtcclxuICAgICAgdGhpcy5fY29sbGVjdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgICAvLyBhdm9pZGluZyBzZXR0ZXIsIHNvIHRoZSBudWxsIHZhbHVlIGlzIG5vdCBzdG9yZWVkIGluIGxvY2F0aW9uIHNpbmNlIGl0IGlzIG5vdCBieSB1c2VyIGFjdGlvblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lSWQpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UpIHtcclxuICAgIGlmICghdGhpcy5lbmdpbmVJZCB8fCAhdGhpcy5jb25maWcudGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkIHx8IHRoaXMuaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNsZWFyIHRpbWVvdXQgc2luY2UgdGhpcyByZWZyZXNoIHJlcGxhY2VzIHNjaGVkdWxlZFxyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IHRydWU7XHJcblxyXG4gICAgbGV0IHRlcm1SZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcbiAgICBsZXQgbXRBcGlSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uW10+W10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy50ZXJtQXBpLmdldENvbGxlY3Rpb25MaXN0KClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiB0ZXJtUmVzcG9uc2UgPSByZXNwb25zZSlcclxuICAgICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm10QXBpLmdldExpc3QodGhpcy5lbmdpbmVJZClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiBtdEFwaVJlc3BvbnNlID0gcmVzcG9uc2UpXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKHtcclxuICAgICAgLy8gZG8gbm90IG5lZWQgcmVzcG9uc2UgYmVjYXVlIHJlc3BvbnNlcyBhcmUgc2F2ZWQgaW4gcGlwZSBtZXRob2RzXHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzQW55SW1wb3J0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgLy8gbm90ZSB0aGF0IHRlcm1SZXNwb25zZSBhbmQgbXRhcGlyZXNwb25zZSBnZXRzIGNoYW5nZWQgZHVyaW5nIHJlbW92ZSBtZXRob2RcclxuICAgICAgICB0aGlzLnJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlLCBtdEFwaVJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgY29uc3Qgam9pbmVkID0gW107XHJcbiAgICAgICAgaWYgKG10QXBpUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGpvaW5lZC5wdXNoKC4uLm10QXBpUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVybVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi50ZXJtUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hZGRDb2xsZWN0aW9ucyhqb2luZWQpO1xyXG4gICAgICAgIGlmIChzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlZnJlc2gobnVsbCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIC8vIGl0IGlzIGVub3VnaCB0byBzaG93IGVycm9yIG9ubHkgaW4gY29uc29sZS4gTm8gc3BlY2lhbCB0aGluZyBpcyBuZWNlc3NhcnkuXHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZFRvRW5naW5lKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUcnlpbmcgdG8gYXR0YWNoIGNvbGxlY3Rpb24gdGhhdCBoYXMgbm8gdGlsZGUgdGVybSBpZC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlSWZOZWNlc3NhcnkoY29sbGVjdGlvbiwgdHJ1ZSkuc3Vic2NyaWJlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlKHNvdXJjZUxhbmd1YWdlOiBzdHJpbmcsIHRhcmdldExhbmd1YWdlOiBzdHJpbmcsIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsIHJlZGlyZWN0VG9FZGl0ID0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUFwaS5jcmVhdGVDb2xsZWN0aW9uKFtzb3VyY2VMYW5ndWFnZSwgdGFyZ2V0TGFuZ3VhZ2VdLCBjb2xsZWN0aW9uTmFtZSkucGlwZShcclxuICAgICAgdGFwKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlZGlyZWN0VG9FZGl0KSB7XHJcbiAgICAgICAgICB3aW5kb3cub3Blbih0aGlzLnRlcm1BcGkuZ2V0RWRpdExpbmsoY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbi5pZCwgc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlKSwgXCJfYmxhbmtcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NvbGxlY3Rpb25zLmFkZChjb2xsZWN0aW9uKTtcclxuICAgICAgICB0aGlzLmVtaXREYXRhVXBkYXRlRXZlbnQoKTtcclxuICAgICAgICB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucyA9IHRydWU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSWZOZWNlc3NhcnkoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBpc0VkaXRlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIC8vIGNvbGxlY3Rpb24gaXMgbm90IGltcG9ydGVkIGFuZCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gZW5naW5lXHJcbiAgICBpZiAoY29sbGVjdGlvbi5pc0VkaXRlZCgpIHx8IGlzRWRpdGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm10QXBpLmFkZCh0aGlzLmVuZ2luZUlkLCBjb2xsZWN0aW9uKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFwKCh1cGRhdGVkQ29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZSh1cGRhdGVkQ29sbGVjdGlvbik7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKGNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqXHJcbiAqIEByZXR1cm5zIHNlbGVjdGVkIGNvbGxlY3Rpb24gaWQgaWYgaXQgaXMgYWxsb3dlZCB0byB1c2UgY29sbGVjdGlvbiBmb3IgdHJhbnNsYXRpb25zXHJcbiAqL1xyXG4gIHNlbGVjdGVkSWRGb3JUcmFuc2xhdGlvbigpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQ/Lm10Q29sbGVjdGlvbiAmJiAodGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24ubGFzdFVwZGF0ZWQgfHwgdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LnN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLlJFQURZKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGFydEF1dG9SZWZyZXNoKGVuZ2luZUlkPzogc3RyaW5nLCBsYW5ndWFnZXM6IHN0cmluZ1tdID0gbnVsbCwgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIHRlcm1Db2xsZWN0aW9ucyA9IHRydWUsIG10Q29sbGVjdGlvbnMgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmhhcmRBdXRvUmVmcmVzaCA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5zZXRFbmdpbmUoZW5naW5lSWQgPz8gdGhpcy5lbmdpbmVJZCwgbGFuZ3VhZ2VzID8/IHRoaXMuZW5naW5lTGFuZ3VhZ2VzLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UsIHRlcm1Db2xsZWN0aW9ucywgbXRDb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzdG9wQXV0b1JlZnJlc2goKSB7XHJcbiAgICB0aGlzLmNsZWFyVGltZW91dCgpO1xyXG5cclxuICAgIHRoaXMuaXNTb2Z0QXV0b1JlZnJlc2hPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5oYXJkQXV0b1JlZnJlc2ggPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU10Q29sbGVjdGlvbihjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24sIGVuZ2luZUlkID0gdGhpcy5lbmdpbmVJZCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRBcGkucmVtb3ZlKGVuZ2luZUlkLCBjb2xsZWN0aW9uKS5waXBlKFxyXG4gICAgICB0YXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29sbGVjdGlvbi51cGRhdGUocmVzcG9uc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN5bmMoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZCA9IHRoaXMuZW5naW5lSWQpOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXRBcGkuc3luYyhlbmdpbmVJZCwgY29sbGVjdGlvbikuXHJcbiAgICAgIHBpcGUodGFwKCh1cGRhdGVkQ29sbGVjdGlvbikgPT4geyBjb2xsZWN0aW9uLnVwZGF0ZSh1cGRhdGVkQ29sbGVjdGlvbikgfSkpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjaGVkdWxlUmVmcmVzaCh0aW1lb3V0PzogbnVtYmVyKSB7XHJcbiAgICAvLyBpZiBtZW51IGlzIGNsb3NlZCBhbmQgc2VsZWN0ZWQgY29sbGVjdGlvbiBpcyBub3QgaW1wb3J0aW5nIGFueW1vcmUgLSBhdXRvIHJlZnJlc2hpbmcgc2hvdWxkIGJlIGNhbmNlbGxlZC5cclxuICAgIGlmICghdGhpcy5oYXJkQXV0b1JlZnJlc2ggJiYgIXRoaXMuc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nICYmIHRoaXMuaXNTb2Z0QXV0b1JlZnJlc2hPbikge1xyXG4gICAgICB0aGlzLnN0b3BBdXRvUmVmcmVzaCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgaGFyZCBhdXRvIHJlZnJlc2hvIG9uLCBhdXRvIHJlZnJlc2ggc2hvdWxkIGJlIG9uLiBJZiBoYXJkIGF1dG9yZWZlcmVzaCBpcyBvZmYgLCByZWZyZXNoIG5lZWRzIHRvIGJlIGRvbmUgb25seSBpZiBzZWxlY3RlZCBpcyBpbXBvcnRpbmcuXHJcbiAgICBpZiAodGhpcy5oYXJkQXV0b1JlZnJlc2ggfHwgKCF0aGlzLnJlZnJlc2hUaW1lb3V0ICYmICh0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24gfHwgdGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmcpKSkge1xyXG4gICAgICBjb25zdCB0aW1lb3V0TXMgPSB0aW1lb3V0ID8/ICh0aGlzLmlzQW55SW1wb3J0aW5nID8gdGhpcy5jb25maWcudGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zV2hlbkltcG9ydGluZyA6IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNcyk7XHJcbiAgICAgIHRoaXMucmVmcmVzaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJlZnJlc2hDb2xsZWN0aW9ucygpXHJcbiAgICAgIH0sIHRpbWVvdXRNcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuZXdDb2xsZWN0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkQ29sbGVjdGlvbnMobmV3Q29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4pIHtcclxuICAgIC8vIHNldHMgY29sbGVjdGlvbiBsaXN0IHRvIHRoaXMgdmFsdWUgYXQgdGhlIGVuZCwgc28gZGVsZXRlZCBjb2xsZWN0aW9ucyBhcmUgbm90IGluIHRoZSBsaXN0LlxyXG4gICAgZm9yIChsZXQgY29sbGVjdGlvbiBvZiBuZXdDb2xsZWN0aW9ucykge1xyXG4gICAgICAvLyBVc2VyIHNob3VsZG4ndCBzZWUgZmFpbGVkIGNvbGxlY3Rpb25zIGlmIGhlIGNhbid0IHJldHJ5IHRvIGltcG9ydCB0aGVtLlxyXG4gICAgICBpZiAoIXRoaXMuaGFzRWRpdFBlcm1pc3Npb25zXHJcbiAgICAgICAgJiYgY29sbGVjdGlvbi5tdFN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb2xsZWN0aW9uLmlzSW1wb3J0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5pc0FueUltcG9ydGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV4aXN0aW5nOiBDb21iaW5lZENvbGxlY3Rpb24gPSBDb21iaW5lZENvbGxlY3Rpb24uZmluZEV4aXN0aW5nQ29sbGVjdGlvbkZyb21MaXN0KHRoaXMuY29sbGVjdGlvbnMsIGNvbGxlY3Rpb24pO1xyXG5cclxuICAgICAgLy8gSWYgdGVybSBhcGkgZG9lc24ndCBoYXZlIGVuZ2luZSBsYW5ndWFnZXMsIGNvbGxlY3Rpb24gc2hvdWxkIG5vdCBiZSBzaG93biAoaWYgaXQgaXMgbm90IGFscmVhZHkgaW1wb3J0ZWQgc29tZWhvdyk7XHJcbiAgICAgIGlmICghZXhpc3RpbmcgJiYgY29sbGVjdGlvbi5zb3VyY2UgPT09IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLlRJTERFX1RFUk0pIHtcclxuICAgICAgICBsZXQgaGFzTGFuZ3VhZ2VzID0gdHJ1ZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW5naW5lTGFuZ3VhZ2VzPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKCFjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uLmxhbmd1YWdlcz8uZmluZChsYW5nID0+IGxhbmcuaWQgPT09IHRoaXMuZW5naW5lTGFuZ3VhZ2VzW2ldKSkge1xyXG4gICAgICAgICAgICBoYXNMYW5ndWFnZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWhhc0xhbmd1YWdlcykge1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIWV4aXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGV4aXN0aW5nLnVwZGF0ZShjb2xsZWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2NvbGxlY3Rpb25zID0gdXBkYXRlZENvbGxlY3Rpb25zO1xyXG4gICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucyA9IHRoaXMuX2NvbGxlY3Rpb25zLnNpemUgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGJlIGNhbGxlZCBhZnRlciByZWZyZXNoIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBjb2xsZWN0aW9ucyBmcm9tIGFwaSB0aGF0IGFyZSBkZWxldGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdLCBtdFJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSkge1xyXG5cclxuICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiB0aGlzLmNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IHRlcm1FeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QodGVybVJlc3BvbnNlLCBjb2xsZWN0aW9uKTtcclxuICAgICAgY29uc3QgbXRFeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QobXRSZXNwb25zZSwgY29sbGVjdGlvbik7XHJcbiAgICAgIGlmICh0ZXJtRXhpc3RpbmdJeCA9PT0gbnVsbCAmJiBtdEV4aXN0aW5nSXggPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLmRlbGV0ZShjb2xsZWN0aW9uKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gY29sbGVjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0ZXJtRXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0ZXJtUmVzcG9uc2VbdGVybUV4aXN0aW5nSXhdO1xyXG4gICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUoZXhpc3RpbmcpO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29sbGVjdGlvbi5kZWxldGVUZXJtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG10RXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZyk7XHJcbiAgICAgICAgICBtdFJlc3BvbnNlLnNwbGljZShtdEV4aXN0aW5nSXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlTVQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJUaW1lb3V0KCkge1xyXG4gICAgaWYgKHRoaXMucmVmcmVzaFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgLy8gSWYgbm8gY29sbGVjdGlvbnMgb3Igc2VsZWN0ZWQgaXMgYWxyZWFkeSBzZXQsIGl0IHNob3VsZCBub3QgYmUgY2hhbmdlZCBmcm9tIGxvY2Fsc3RvcmFnZSB2YWx1ZS4gKFVzdWFsbHksIGxvY2Fsc3RvcmFnZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSkuXHJcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9ucz8uc2l6ZSA9PT0gMCB8fCB0aGlzLnNlbGVjdGVkKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN0b3JlZElkID0gdGhpcy5yZWFkTG9jYWxTdG9yYWdlKCk/Llt0aGlzLmVuZ2luZUlkXTtcclxuICAgIGlmICghc3RvcmVkSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGV4aXN0aW5nID0gQXJyYXkuZnJvbSh0aGlzLmNvbGxlY3Rpb25zKS5maW5kKGl0ZW0gPT4gaXRlbS50ZXJtQ29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkIHx8IGl0ZW0ubXRDb2xsZWN0aW9uPy5pZCA9PT0gc3RvcmVkSWQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGV4aXN0aW5nO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgbGV0IGxvY2FsU3RvcmFnZU9iamVjdCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpO1xyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2VPYmplY3QpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlT2JqZWN0ID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbG9jYWxTdG9yYWdlT2JqZWN0W3RoaXMuZW5naW5lSWRdID0gdGhpcy5zZWxlY3RlZCA/ICh0aGlzLnNlbGVjdGVkLnRlcm1Db2xsZWN0aW9uPy5pZCA/PyB0aGlzLnNlbGVjdGVkLm10Q29sbGVjdGlvbj8uaWQpIDogbnVsbDtcclxuICAgIC8vIHN0b3JlIHRlcm0gaWQgaWYgaXQgZXhpc3RzXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShsb2NhbFN0b3JhZ2VPYmplY3QpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZExvY2FsU3RvcmFnZSgpOiBhbnkge1xyXG4gICAgY29uc3QgZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVkpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RGF0YVVwZGF0ZUV2ZW50KCkge1xyXG4gICAgdGhpcy5vbkRhdGFVcGRhdGUubmV4dCh0aGlzLmNvbGxlY3Rpb25zKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -63,7 +63,7 @@ export class TldTranslateComponent {
|
|
|
63
63
|
|| this.translateTextService.isDictating;
|
|
64
64
|
}
|
|
65
65
|
get showTranslateButton() {
|
|
66
|
-
return !this.translateFileService.multipleFileUploadActive;
|
|
66
|
+
return this.configService.textConfig.showTranslateButton && !this.translateFileService.multipleFileUploadActive;
|
|
67
67
|
}
|
|
68
68
|
// this param is necessary to remove max height if multiple file component is active, since there shouldn't be max height in that case.
|
|
69
69
|
get isMultipleFilesActive() {
|
|
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
225
225
|
type: ViewChild,
|
|
226
226
|
args: [TldTranslateBodyComponent]
|
|
227
227
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVFoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQjlGLE1BQU0sT0FBTyxxQkFBcUI7SUFxRWhDLFlBQTZCLFNBQTJCLEVBQ3JDLG9CQUE2QyxFQUM3QyxvQkFBNkMsRUFDN0MsYUFBd0MsRUFDeEMsTUFBdUIsRUFDdkIsc0JBQWlELEVBQ2pELFNBQTJCLEVBQzNCLFlBQWdDLEVBQ2hDLHNCQUE0QyxFQUM1QyxlQUFxQyxFQUNyQyxtQkFBbUQsRUFD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QUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7NkJBQ2IsQ0FBQzs0QkFFRixVQUFVLENBQUMsUUFBUSxFQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQ3RDLENBQUM7cUJBQ0g7OGVBR1MsT0FBTztzQkFBaEIsTUFBTTtnQkFFK0IsZ0JBQWdCO3NCQUFyRCxTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgYXZhaWxhYmxlTGFuZ3VhZ2VzIH0gZnJvbSAnLi9pMThuL2F2YWlsYWJsZS1sYW5ndWFnZXMnO1xyXG5pbXBvcnQgeyBBdWRpb1JlY29yZFNlcnZpY2UsIFRsZFZvaWNlSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1hdWRpby9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdGxkLXRyYW5zbGF0ZS1idXR0b24uc2VydmljZSc7XHJcbmltcG9ydCB7IElBdXRoT3B0aW9ucywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IEljb25TZXJ2aWNlLCBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFd0d0xpbmtQYXJhbXNTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvd3R3LWxpbmstcGFyYW1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdGV4dC9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLXRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10b29sdGlwL21vZGVscy9hY3RpdmUtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC9tb2RlbHMvc3dpdGNoZXItb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLXRvb2x0aXAvc2VydmljZXMvdGxkLXN5c3RlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3BlbmVkTWVudSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL21vZGVscy9vcGVuZWQtbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtYm9keS90bGQtdHJhbnNsYXRlLWJvZHkuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRyYW5zbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VBbmltYXRpb24nLCBbXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAgfSksXHJcbiAgICAgICAgYW5pbWF0ZSg1MDApXHJcbiAgICAgIF0pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJyxcclxuICAgICAgICBhbmltYXRlKDUwMCwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudCkgdGxkVHJhbnNsYXRlQm9keTogVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudDtcclxuXHJcbiAgYWN0aXZlU3lzdGVtT2JqOiBJQWN0aXZlRGF0YTtcclxuICBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIHN3aXRjaGVyT3B0aW9uczogSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zO1xyXG5cclxuICBnZXQgYWN0aW9uQnV0dG9uTG9hZGVyKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5pc1RyYW5zbGF0aW5nOyB9XHJcblxyXG4gIGdldCBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heERpc3BsYXllZExhbmd1YWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcztcclxuICB9XHJcblxyXG4gIGdldCBzaG93Tm9TeXN0ZW1zRXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRTeXN0ZW0ubm9TeXN0ZW1zRXJyb3I7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IG5vU3lzdGVtc0Vycm9yOiBOb3RpZmljYXRpb25NZXNzYWdlID0geyBib2R5OiBcIlRMRF9UUkFOU0xBVEUuRVJST1JfTk9fU1lTVEVNU19MT0FERURcIiwgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsIGhpZGVDbG9zZTogdHJ1ZSB9O1xyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmRpc2FibGVUcmFuc2xhdGVCdXR0b25cclxuICAgICAgfHwgdGhpcy5hdWRpb1NlcnZpY2UuaXNSZWNvcmRpbmdcclxuICAgICAgfHwgdGhpcy52b2ljZVByb2Nlc3NpbmdTZXJ2aWNlLmlzUHJvY2Vzc2luZ1xyXG4gICAgICB8fCB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzRGljdGF0aW5nXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1RyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiAhdGhpcy50cmFuc2xhdGVGaWxlU2VydmljZS5tdWx0aXBsZUZpbGVVcGxvYWRBY3RpdmU7XHJcbiAgfVxyXG5cclxuICAvLyB0aGlzIHBhcmFtIGlzIG5lY2Vzc2FyeSB0byByZW1vdmUgbWF4IGhlaWdodCBpZiBtdWx0aXBsZSBmaWxlIGNvbXBvbmVudCBpcyBhY3RpdmUsIHNpbmNlIHRoZXJlIHNob3VsZG4ndCBiZSBtYXggaGVpZ2h0IGluIHRoYXQgY2FzZS5cclxuICBnZXQgaXNNdWx0aXBsZUZpbGVzQWN0aXZlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGxkVHJhbnNsYXRlQm9keT8ubXVsdGlwbGVGaWxlc1VwbG9hZGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhpZGVMYW5nTWVudUxhYmVscygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LmNvcmVDb25maWcuaGlkZUxhbmdNZW51TGFiZWxzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlPy50ZXJtQ29uZmlnPy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNvdXJjZUxhbmd1YWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU3lzdGVtT2JqPy5zb3VyY2VMYW5nLmxhbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgdGFyZ2V0TGFuZ3VhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTeXN0ZW1PYmo/LnRhcmdldExhbmcubGFuZztcclxuICB9XHJcblxyXG4gIGdldCBzeXN0ZW1QaWNrZXJEcm9wZG93blZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLm9wZW5lZE1lbnUgIT09IE9wZW5lZE1lbnUuTk9ORTtcclxuICB9XHJcblxyXG4gIGdldCBsYW5ndWFnZU1lbnVWZXJzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnPy5sYW5ndWFnZU1lbnVWZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VNZW51VjEgPSBsYW5ndWFnZU1lbnVWZXJzaW9uLlYxO1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlTWVudVYyID0gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMjtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVGaWxlU2VydmljZTogVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVRleHRTZXJ2aWNlOiBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUJ1dHRvblNlcnZpY2U6IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXVkaW9TZXJ2aWNlOiBBdWRpb1JlY29yZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZvaWNlUHJvY2Vzc2luZ1NlcnZpY2U6IFRsZFZvaWNlSW5wdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3dHdRdWVyeVNlcnZpY2U6IFd0d0xpbmtQYXJhbXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeXN0ZW1QaWNrZXJTZXJ2aWNlOiBUcmFuc2xhdGlvblN5c3RlbVBpY2tlclNlcnZpY2UsXHJcbiAgICBpY29uU2VydmljZTogSWNvblNlcnZpY2VcclxuICApIHtcclxuICAgIGljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbnMoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUF1dGgoYXV0aE9wdGlvbnM6IElBdXRoT3B0aW9ucykge1xyXG4gICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuaXNBdXRoID0gYXV0aE9wdGlvbnMuaXNBdXRoO1xyXG4gICAgdGhpcy5jb25maWdTZXJ2aWNlLnRlcm1Db25maWcuY2FuQ3JlYXRlQ29sbGVjdGlvbiA9IGF1dGhPcHRpb25zLmNhbkNyZWF0ZVRlcm1Db2xsZWN0aW9uO1xyXG4gICAgdGhpcy50cmFuc2xhdGVGaWxlU2VydmljZS5jbGVhcigpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplV2lkZ2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uaW5pdCh0aGlzLnRsZFN5c3RlbS5nZXRMYXN0VXNlZFN5c3RlbSgpID8/IHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucmVtb3ZlTWVzc2FnZXNPbkNsZWFyKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlYnVnKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGF2YWlsYWJsZUxhbmd1YWdlcykge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnNldFRyYW5zbGF0aW9uKGtleSwgYXZhaWxhYmxlTGFuZ3VhZ2VzW2tleV0sIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XHJcblxyXG4gICAgdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlRGF0YSgpLnBpcGUoXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgodmFsOiBJQWN0aXZlRGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtT2JqID0gdmFsO1xyXG4gICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3dpdGNoZXJPcHRpb25zID0ge1xyXG4gICAgICAgICAgZG9tYWluczogdmFsLmRvbWFpbnMsXHJcbiAgICAgICAgICBzb3VyY2U6IHsgY29kZTogdmFsLnNvdXJjZUxhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgc291cmNlTGFuZ3VhZ2VMaXN0OiB2YWwuc291cmNlTGFuZ0xpc3QsXHJcbiAgICAgICAgICBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkLFxyXG4gICAgICAgICAgc3dhcEFjdGl2ZTogdmFsLnN3YXBMYW5nQWN0aXZlLFxyXG4gICAgICAgICAgdGFyZ2V0OiB7IGNvZGU6IHZhbC50YXJnZXRMYW5nLmxhbmcsIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQgfSxcclxuICAgICAgICAgIHRhcmdldExhbmd1YWdlTGlzdDogdmFsLnRhcmdldExhbmdMaXN0LFxyXG4gICAgICAgICAgdmVuZG9yczogdmFsLnZlbmRvcnNcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnNvdXJjZUNoYW5nZS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnN3YXBTeXN0ZW1zKSB7XHJcbiAgICAgICAgICB0aGlzLnN3YXBMYW5ndWFnZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlQnV0dG9uU2VydmljZS5nZXRBY3Rpb25DbGljaygpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVCdXR0b25DbGljaygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnd0d1F1ZXJ5U2VydmljZS5xdWVyeSgpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocXVlcnk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4ge1xyXG4gICAgICAgICAgbXNnLmxvY2FsaXphdGlvblBhcmFtcy5xdWVyeVN0cmluZyA9IHF1ZXJ5XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWxlcnRzLmdldE1lc3NhZ2VzKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBOb3RpZmljYXRpb25NZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgbWVzc2FnZS5sb2NhbGl6YXRpb25QYXJhbXMucXVlcnlTdHJpbmcgPSB0aGlzLnd0d1F1ZXJ5U2VydmljZS5kZWZhdWx0UXVlcnlTdHJpbmc7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IpIHtcclxuICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KG1lc3NhZ2UuZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBwdXNoaW5nIG9ubHkgXCJvbmUgb2ZcIiBtZXNzYWdlIGluIGFycmF5LCBzbyBzY3JlZW4gaXMgbm90IHNwYW1tZWQgd2l0aCBtZXNzYWdlc1xyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IHRoaXMubWVzc2FnZXMuZmluZChtc2cgPT4gbXNnLnRpdGxlID09PSBtZXNzYWdlLnRpdGxlXHJcbiAgICAgICAgICAmJiBtc2cudHlwZSA9PT0gbWVzc2FnZS50eXBlXHJcbiAgICAgICAgICAmJiBtZXNzYWdlLmJvZHkgPT09IG1zZy5ib2R5XHJcbiAgICAgICAgICAmJiBKU09OLnN0cmluZ2lmeShtc2cubG9jYWxpemF0aW9uUGFyYW1zKSA9PT0gSlNPTi5zdHJpbmdpZnkobWVzc2FnZS5sb2NhbGl6YXRpb25QYXJhbXMpKTtcclxuICAgICAgICBpZiAoIWV4aXN0aW5nTWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3QgYXBwTmFtZUtleSA9IFwiQVBQX05BTUVcIjtcclxuICAgIHRoaXMudHJhbnNsYXRlLnN0cmVhbShbYXBwTmFtZUtleV0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgodHJhbnNsYXRpb25zKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuYXBwTmFtZSA9IHRyYW5zbGF0aW9uc1thcHBOYW1lS2V5XTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZXNzYWdlKGl4OiBudW1iZXIpIHtcclxuICAgIHRoaXMubWVzc2FnZXMuc3BsaWNlKGl4LCAxKTtcclxuICB9XHJcblxyXG4gIHN3YXBMYW5ndWFnZXMoKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5zd2FwU3lzdGVtTGFuZ3VhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzb3VyY2VMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5zd2l0Y2hlck9wdGlvbnMudGFyZ2V0LmNvZGUpO1xyXG4gIH1cclxuXHJcbiAgc3lzdGVtQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZVN5c3RlbShzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICB0YXJnZXRMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VMYW5ndWFnZSh0aGlzLnN3aXRjaGVyT3B0aW9ucy5zb3VyY2UuY29kZSwgbGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlQnV0dG9uQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVGaWxlU2VydmljZS50cmFuc2xhdGlvbkZpbGVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2UudHJhbnNsYXRlQnV0dG9uQ2xpY2sodGhpcy5hY3RpdmVTeXN0ZW1PYmopO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uub25UcmFuc2xhdGVCdXR0b25DbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVzc2FnZXNPbkNsZWFyKCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVGaWxlU2VydmljZS5vbkNsZWFyKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gW107XHJcbiAgICAgIH0pXHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5vbkNsZWFyKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gW107XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKVxyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiaC0xMDAgdGxkLXRyYW5zbGF0ZVwiICpuZ0lmPVwiIXNob3dOb1N5c3RlbXNFcnJvclwiXHJcbiAgW25nQ2xhc3MubHQtbWRdPVwiJ3RsZC10cmFuc2xhdGUtdGFibGV0IHRsZC1kZWZhdWx0LWJvcmRlci1ib3R0b20nXCJcclxuICBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1tb2JpbGUgdGxkLWRlZmF1bHQtYm9yZGVyLWJvdHRvbSdcIlxyXG4gIFtjbGFzcy50bGQtdHJhbnNsYXRlLW11bHRpcGxlLWZpbGVzLWFjdGl2ZV09XCJpc011bHRpcGxlRmlsZXNBY3RpdmVcIj5cclxuICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS13cmFwcGVyIHRsZC1kZWZhdWx0LWJvcmRlclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlciB0bGQtZGVmYXVsdC1ib3JkZXItYm90dG9tXCI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zICYmIGxhbmd1YWdlTWVudVZlcnNpb24gPT09IGxhbmd1YWdlTWVudVYxXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWRcIiBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCIgW3NldHRpbmdzXT1cInN3aXRjaGVyT3B0aW9uc1wiXHJcbiAgICAgICAgW21heERpc3BsYXllZExhbmd1YWdlc109XCJtYXhEaXNwbGF5ZWRMYW5ndWFnZXNcIiBbc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXT1cInNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZVwiXHJcbiAgICAgICAgW2J1dHRvbkRpc2FibGVkXT1cImFjdGlvbkJ1dHRvbkRpc2FibGVkXCIgW2hpZGVMYW5nTWVudUxhYmVsc109XCJoaWRlTGFuZ01lbnVMYWJlbHNcIlxyXG4gICAgICAgIChvbkRvbWFpbkNoYW5nZSk9XCJzeXN0ZW1DaGFuZ2UoJGV2ZW50KVwiIChvbkFjdGlvbkNsaWNrKT1cInRyYW5zbGF0ZUJ1dHRvbkNsaWNrKClcIlxyXG4gICAgICAgIChvbkxhbmd1YWdlU3dhcCk9XCJzd2FwTGFuZ3VhZ2VzKClcIiAob25Tb3VyY2VMYW5ndWFnZUNoYW5nZSk9XCJzb3VyY2VMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCIgW2xvYWRlcl09XCJhY3Rpb25CdXR0b25Mb2FkZXJcIiBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJzaG93VHJhbnNsYXRlQnV0dG9uXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlcj5cclxuICAgICAgPHRsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyICpuZ0lmPVwibGFuZ3VhZ2VNZW51VmVyc2lvbj09PWxhbmd1YWdlTWVudVYyXCJcclxuICAgICAgICBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCI+PC90bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgW2lubGluZV09XCJ0cnVlXCIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXM7IGxldCBpeCA9IGluZGV4XCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj5cclxuICAgIDwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuICAgIDxkaXYgZnhGbGV4IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICA8dGxkLXRyYW5zbGF0ZS1ib2R5IGZ4RmxleCBmeExheW91dEFsaWduPVwiY29sdW1uXCIgW2F0dHIuc291cmNlLWxhbmd1YWdlXT1cInNvdXJjZUxhbmd1YWdlXCJcclxuICAgICAgICBbYXR0ci50YXJnZXQtbGFuZ3VhZ2VdPVwidGFyZ2V0TGFuZ3VhZ2VcIj48L3RsZC10cmFuc2xhdGUtYm9keT5cclxuICAgICAgPHRsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWRyb3Bkb3duIFtuZ0NsYXNzLnhzXT1cIidtb2JpbGUnXCIgKm5nSWY9XCJzeXN0ZW1QaWNrZXJEcm9wZG93blZpc2libGVcIj5cclxuICAgICAgPC90bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93bj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwic2hvd05vU3lzdGVtc0Vycm9yXCIgW21lc3NhZ2VdPVwibm9TeXN0ZW1zRXJyb3JcIj5cclxuPC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVFoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQjlGLE1BQU0sT0FBTyxxQkFBcUI7SUFxRWhDLFlBQTZCLFNBQTJCLEVBQ3JDLG9CQUE2QyxFQUM3QyxvQkFBNkMsRUFDN0MsYUFBd0MsRUFDeEMsTUFBdUIsRUFDdkIsc0JBQWlELEVBQ2pELFNBQTJCLEVBQzNCLFlBQWdDLEVBQ2hDLHNCQUE0QyxFQUM1QyxlQUFxQyxFQUNyQyxtQkFBbUQsRUFD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d0JBQ1YsT0FBTyxDQUFDLG9CQUFvQixFQUFFOzRCQUU1QixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7NkJBQ2IsQ0FBQzs0QkFFRixVQUFVLENBQUMsUUFBUSxFQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQ3RDLENBQUM7cUJBQ0g7OGVBR1MsT0FBTztzQkFBaEIsTUFBTTtnQkFFK0IsZ0JBQWdCO3NCQUFyRCxTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgYXZhaWxhYmxlTGFuZ3VhZ2VzIH0gZnJvbSAnLi9pMThuL2F2YWlsYWJsZS1sYW5ndWFnZXMnO1xyXG5pbXBvcnQgeyBBdWRpb1JlY29yZFNlcnZpY2UsIFRsZFZvaWNlSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1hdWRpby9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdGxkLXRyYW5zbGF0ZS1idXR0b24uc2VydmljZSc7XHJcbmltcG9ydCB7IElBdXRoT3B0aW9ucywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IEljb25TZXJ2aWNlLCBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFd0d0xpbmtQYXJhbXNTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvd3R3LWxpbmstcGFyYW1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdGV4dC9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLXRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10b29sdGlwL21vZGVscy9hY3RpdmUtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC9tb2RlbHMvc3dpdGNoZXItb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLXRvb2x0aXAvc2VydmljZXMvdGxkLXN5c3RlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3BlbmVkTWVudSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL21vZGVscy9vcGVuZWQtbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtYm9keS90bGQtdHJhbnNsYXRlLWJvZHkuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRyYW5zbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VBbmltYXRpb24nLCBbXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAgfSksXHJcbiAgICAgICAgYW5pbWF0ZSg1MDApXHJcbiAgICAgIF0pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJyxcclxuICAgICAgICBhbmltYXRlKDUwMCwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudCkgdGxkVHJhbnNsYXRlQm9keTogVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudDtcclxuXHJcbiAgYWN0aXZlU3lzdGVtT2JqOiBJQWN0aXZlRGF0YTtcclxuICBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIHN3aXRjaGVyT3B0aW9uczogSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zO1xyXG5cclxuICBnZXQgYWN0aW9uQnV0dG9uTG9hZGVyKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5pc1RyYW5zbGF0aW5nOyB9XHJcblxyXG4gIGdldCBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heERpc3BsYXllZExhbmd1YWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcztcclxuICB9XHJcblxyXG4gIGdldCBzaG93Tm9TeXN0ZW1zRXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRTeXN0ZW0ubm9TeXN0ZW1zRXJyb3I7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IG5vU3lzdGVtc0Vycm9yOiBOb3RpZmljYXRpb25NZXNzYWdlID0geyBib2R5OiBcIlRMRF9UUkFOU0xBVEUuRVJST1JfTk9fU1lTVEVNU19MT0FERURcIiwgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsIGhpZGVDbG9zZTogdHJ1ZSB9O1xyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmRpc2FibGVUcmFuc2xhdGVCdXR0b25cclxuICAgICAgfHwgdGhpcy5hdWRpb1NlcnZpY2UuaXNSZWNvcmRpbmdcclxuICAgICAgfHwgdGhpcy52b2ljZVByb2Nlc3NpbmdTZXJ2aWNlLmlzUHJvY2Vzc2luZ1xyXG4gICAgICB8fCB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzRGljdGF0aW5nXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1RyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UudGV4dENvbmZpZy5zaG93VHJhbnNsYXRlQnV0dG9uICYmICF0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8vIHRoaXMgcGFyYW0gaXMgbmVjZXNzYXJ5IHRvIHJlbW92ZSBtYXggaGVpZ2h0IGlmIG11bHRpcGxlIGZpbGUgY29tcG9uZW50IGlzIGFjdGl2ZSwgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIG1heCBoZWlnaHQgaW4gdGhhdCBjYXNlLlxyXG4gIGdldCBpc011bHRpcGxlRmlsZXNBY3RpdmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRUcmFuc2xhdGVCb2R5Py5tdWx0aXBsZUZpbGVzVXBsb2FkZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaGlkZUxhbmdNZW51TGFiZWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8uY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LnRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgc291cmNlTGFuZ3VhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTeXN0ZW1PYmo/LnNvdXJjZUxhbmcubGFuZztcclxuICB9XHJcblxyXG4gIGdldCB0YXJnZXRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVN5c3RlbU9iaj8udGFyZ2V0TGFuZy5sYW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN5c3RlbVBpY2tlckRyb3Bkb3duVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN5c3RlbVBpY2tlclNlcnZpY2Uub3BlbmVkTWVudSAhPT0gT3BlbmVkTWVudS5OT05FO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlTWVudVZlcnNpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWc/Lmxhbmd1YWdlTWVudVZlcnNpb247XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBsYW5ndWFnZU1lbnVWMSA9IGxhbmd1YWdlTWVudVZlcnNpb24uVjE7XHJcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VNZW51VjIgPSBsYW5ndWFnZU1lbnVWZXJzaW9uLlYyO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUZpbGVTZXJ2aWNlOiBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlVGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlQnV0dG9uU2VydmljZTogVGxkVHJhbnNsYXRlQnV0dG9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdWRpb1NlcnZpY2U6IEF1ZGlvUmVjb3JkU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdm9pY2VQcm9jZXNzaW5nU2VydmljZTogVGxkVm9pY2VJbnB1dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHd0d1F1ZXJ5U2VydmljZTogV3R3TGlua1BhcmFtc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5c3RlbVBpY2tlclNlcnZpY2U6IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSxcclxuICAgIGljb25TZXJ2aWNlOiBJY29uU2VydmljZVxyXG4gICkge1xyXG4gICAgaWNvblNlcnZpY2UucmVnaXN0ZXJJY29ucygpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQXV0aChhdXRoT3B0aW9uczogSUF1dGhPcHRpb25zKSB7XHJcbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5pc0F1dGggPSBhdXRoT3B0aW9ucy5pc0F1dGg7XHJcbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UudGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uID0gYXV0aE9wdGlvbnMuY2FuQ3JlYXRlVGVybUNvbGxlY3Rpb247XHJcbiAgICB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmNsZWFyKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVXaWRnZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5pbml0KHRoaXMudGxkU3lzdGVtLmdldExhc3RVc2VkU3lzdGVtKCkgPz8gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuZGVmYXVsdFN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yZW1vdmVNZXNzYWdlc09uQ2xlYXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuZGVidWcpIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gYXZhaWxhYmxlTGFuZ3VhZ2VzKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0VHJhbnNsYXRpb24oa2V5LCBhdmFpbGFibGVMYW5ndWFnZXNba2V5XSwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuXHJcbiAgICB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWw6IElBY3RpdmVEYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTeXN0ZW1PYmogPSB2YWw7XHJcbiAgICAgICAgaWYgKCF2YWwpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBkb21haW5zOiB2YWwuZG9tYWlucyxcclxuICAgICAgICAgIHNvdXJjZTogeyBjb2RlOiB2YWwuc291cmNlTGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICBzb3VyY2VMYW5ndWFnZUxpc3Q6IHZhbC5zb3VyY2VMYW5nTGlzdCxcclxuICAgICAgICAgIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQsXHJcbiAgICAgICAgICBzd2FwQWN0aXZlOiB2YWwuc3dhcExhbmdBY3RpdmUsXHJcbiAgICAgICAgICB0YXJnZXQ6IHsgY29kZTogdmFsLnRhcmdldExhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VMaXN0OiB2YWwudGFyZ2V0TGFuZ0xpc3QsXHJcbiAgICAgICAgICB2ZW5kb3JzOiB2YWwudmVuZG9yc1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlQ2hhbmdlLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQuc3dhcFN5c3RlbXMpIHtcclxuICAgICAgICAgIHRoaXMuc3dhcExhbmd1YWdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVCdXR0b25TZXJ2aWNlLmdldEFjdGlvbkNsaWNrKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMud3R3UXVlcnlTZXJ2aWNlLnF1ZXJ5KCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1zZyA9PiB7XHJcbiAgICAgICAgICBtc2cubG9jYWxpemF0aW9uUGFyYW1zLnF1ZXJ5U3RyaW5nID0gcXVlcnlcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5hbGVydHMuZ2V0TWVzc2FnZXMoKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpID0+IHtcclxuICAgICAgICBtZXNzYWdlLmxvY2FsaXphdGlvblBhcmFtcy5xdWVyeVN0cmluZyA9IHRoaXMud3R3UXVlcnlTZXJ2aWNlLmRlZmF1bHRRdWVyeVN0cmluZztcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5FUlJPUikge1xyXG4gICAgICAgICAgdGhpcy5vbkVycm9yLmVtaXQobWVzc2FnZS5lcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHB1c2hpbmcgb25seSBcIm9uZSBvZlwiIG1lc3NhZ2UgaW4gYXJyYXksIHNvIHNjcmVlbiBpcyBub3Qgc3BhbW1lZCB3aXRoIG1lc3NhZ2VzXHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlID0gdGhpcy5tZXNzYWdlcy5maW5kKG1zZyA9PiBtc2cudGl0bGUgPT09IG1lc3NhZ2UudGl0bGVcclxuICAgICAgICAgICYmIG1zZy50eXBlID09PSBtZXNzYWdlLnR5cGVcclxuICAgICAgICAgICYmIG1lc3NhZ2UuYm9keSA9PT0gbXNnLmJvZHlcclxuICAgICAgICAgICYmIEpTT04uc3RyaW5naWZ5KG1zZy5sb2NhbGl6YXRpb25QYXJhbXMpID09PSBKU09OLnN0cmluZ2lmeShtZXNzYWdlLmxvY2FsaXphdGlvblBhcmFtcykpO1xyXG4gICAgICAgIGlmICghZXhpc3RpbmdNZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICBjb25zdCBhcHBOYW1lS2V5ID0gXCJBUFBfTkFNRVwiO1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc3RyZWFtKFthcHBOYW1lS2V5XSkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5hcHBOYW1lID0gdHJhbnNsYXRpb25zW2FwcE5hbWVLZXldO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU1lc3NhZ2UoaXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5tZXNzYWdlcy5zcGxpY2UoaXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgc3dhcExhbmd1YWdlcygpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLnN3YXBTeXN0ZW1MYW5ndWFnZXMoKTtcclxuICB9XHJcblxyXG4gIHNvdXJjZUxhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlLCB0aGlzLnN3aXRjaGVyT3B0aW9ucy50YXJnZXQuY29kZSk7XHJcbiAgfVxyXG5cclxuICBzeXN0ZW1DaGFuZ2Uoc3lzdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIHRhcmdldExhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKHRoaXMuc3dpdGNoZXJPcHRpb25zLnNvdXJjZS5jb2RlLCBsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVCdXR0b25DbGljaygpIHtcclxuICAgIGlmICh0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLnRyYW5zbGF0aW9uRmlsZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVGaWxlU2VydmljZS50cmFuc2xhdGVCdXR0b25DbGljayh0aGlzLmFjdGl2ZVN5c3RlbU9iaik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5vblRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZXNzYWdlc09uQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLm9uQ2xlYXIoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcclxuICAgICAgfSlcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLm9uQ2xlYXIoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpXHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJoLTEwMCB0bGQtdHJhbnNsYXRlXCIgKm5nSWY9XCIhc2hvd05vU3lzdGVtc0Vycm9yXCJcclxuICBbbmdDbGFzcy5sdC1tZF09XCIndGxkLXRyYW5zbGF0ZS10YWJsZXQgdGxkLWRlZmF1bHQtYm9yZGVyLWJvdHRvbSdcIlxyXG4gIFtuZ0NsYXNzLmx0LXNtXT1cIid0bGQtdHJhbnNsYXRlLW1vYmlsZSB0bGQtZGVmYXVsdC1ib3JkZXItYm90dG9tJ1wiXHJcbiAgW2NsYXNzLnRsZC10cmFuc2xhdGUtbXVsdGlwbGUtZmlsZXMtYWN0aXZlXT1cImlzTXVsdGlwbGVGaWxlc0FjdGl2ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0bGQtdHJhbnNsYXRlLXdyYXBwZXIgdGxkLWRlZmF1bHQtYm9yZGVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXg+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci13cmFwcGVyIHRsZC1kZWZhdWx0LWJvcmRlci1ib3R0b21cIj5cclxuICAgICAgPHRsZC10cmFuc2xhdGUtc3dpdGNoZXIgKm5nSWY9XCJzd2l0Y2hlck9wdGlvbnMgJiYgbGFuZ3VhZ2VNZW51VmVyc2lvbiA9PT0gbGFuZ3VhZ2VNZW51VjFcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZFwiIFtpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXT1cImlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcIiBbc2V0dGluZ3NdPVwic3dpdGNoZXJPcHRpb25zXCJcclxuICAgICAgICBbbWF4RGlzcGxheWVkTGFuZ3VhZ2VzXT1cIm1heERpc3BsYXllZExhbmd1YWdlc1wiIFtzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVdPVwic2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXCJcclxuICAgICAgICBbYnV0dG9uRGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWRcIiBbaGlkZUxhbmdNZW51TGFiZWxzXT1cImhpZGVMYW5nTWVudUxhYmVsc1wiXHJcbiAgICAgICAgKG9uRG9tYWluQ2hhbmdlKT1cInN5c3RlbUNoYW5nZSgkZXZlbnQpXCIgKG9uQWN0aW9uQ2xpY2spPVwidHJhbnNsYXRlQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgICAgKG9uTGFuZ3VhZ2VTd2FwKT1cInN3YXBMYW5ndWFnZXMoKVwiIChvblNvdXJjZUxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmd1YWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChvblRhcmdldExhbmd1YWdlQ2hhbmdlKT1cInRhcmdldExhbmd1YWdlQ2hhbmdlKCRldmVudClcIiBbbG9hZGVyXT1cImFjdGlvbkJ1dHRvbkxvYWRlclwiIFtzaG93VHJhbnNsYXRlQnV0dG9uXT1cInNob3dUcmFuc2xhdGVCdXR0b25cIj5cclxuICAgICAgPC90bGQtdHJhbnNsYXRlLXN3aXRjaGVyPlxyXG4gICAgICA8dGxkLXRyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIgKm5nSWY9XCJsYW5ndWFnZU1lbnVWZXJzaW9uPT09bGFuZ3VhZ2VNZW51VjJcIlxyXG4gICAgICAgIFtpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXT1cImlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcIj48L3RsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSBbaW5saW5lXT1cInRydWVcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlczsgbGV0IGl4ID0gaW5kZXhcIiBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgKGNsb3NlQ2xpY2tlZCk9XCJyZW1vdmVNZXNzYWdlKGl4KVwiPlxyXG4gICAgPC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gICAgPGRpdiBmeEZsZXggc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLWJvZHkgZnhGbGV4IGZ4TGF5b3V0QWxpZ249XCJjb2x1bW5cIiBbYXR0ci5zb3VyY2UtbGFuZ3VhZ2VdPVwic291cmNlTGFuZ3VhZ2VcIlxyXG4gICAgICAgIFthdHRyLnRhcmdldC1sYW5ndWFnZV09XCJ0YXJnZXRMYW5ndWFnZVwiPjwvdGxkLXRyYW5zbGF0ZS1ib2R5PlxyXG4gICAgICA8dGxkLXRyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24gW25nQ2xhc3MueHNdPVwiJ21vYmlsZSdcIiAqbmdJZj1cInN5c3RlbVBpY2tlckRyb3Bkb3duVmlzaWJsZVwiPlxyXG4gICAgICA8L3RsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWRyb3Bkb3duPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93Tm9TeXN0ZW1zRXJyb3JcIiBbbWVzc2FnZV09XCJub1N5c3RlbXNFcnJvclwiPlxyXG48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiJdfQ==
|