filestack-js
Advanced tools
Comparing version 3.24.1 to 3.25.0
{ | ||
"main.js": { | ||
"src": "filestack.min.js", | ||
"integrity": "sha256-jImJFGoxqs4GaTf5nD+NmDSipZDCRv/QeujLuTFBsI8= sha384-T7fG3ZcC3SAgj/IAUXet5NszODgea/ycPJGPtw1eYKIVRGsALBhDISZOXjgoS25i sha512-8WuMZFT8n+yopaLw7VEJmhyHm4mEDN2SJCrZY0Gdcc/GjC9KgjPnaVRkJNIiBwQMKzee4WObOiQ0f0HXZbpE8w==" | ||
"integrity": "sha256-+JzmJ7IZ9QdqSC9iSK778KZhrj7losrvDUQXDtBnr6I= sha384-rdv8mdze8stp0ATEKbxO0aSvvXyYVSswx+yuYe2z2wRu9Z5l6Lyuu9C4uVMoLSPL sha512-4kZJmoUEMV6EiySg0YhyWQNS4Bf0fHCopkEGPj96XsbZf+8Hpk4b2bNqtRBmSwdxcxBYx+yCWTdG/blb9yG26A==" | ||
}, | ||
"main.js.map": { | ||
"src": "filestack.min.js.map", | ||
"integrity": "sha256-A4lR1Buy2n8PKeulbQxQXKpEwS0zxXThHGrlz8nYHLA= sha384-WevEUZUdZkL8AMDIWdICvh8IY5gokT8eTfijV3KgH7P0BEr35NigGsbvR1nHitjj sha512-AnZkqgbF4U14vyGcXKu3iZMPX5v3c+HGa5hOua7EphDjxwqe4Nzk7xZ2Bxa1iM9GsfV+F+bmdA8f81vT1d7dGw==" | ||
"integrity": "sha256-I0j1A5e+B+xf8gKK7If8HBmg7xBHnuGirhw0QIy2kgo= sha384-sSEE5O+LipvNaqc2/EvQrnrL9mTFT8ikfFD0ylojmei5UA7nykamk0Zyyq1Y74RW sha512-GisWM2lYM/xFPPEcciG0UGsmCz/OCEdBtuf28qV/MEzOO0QUEvgBR4ZrRpZSmxLNL+Kbd6gPbxRFrYIVvoe7UA==" | ||
} | ||
} |
@@ -22,3 +22,3 @@ "use strict"; | ||
*/ | ||
var PICKER_VERSION = '1.22.1'; | ||
var PICKER_VERSION = '1.23.0'; | ||
exports.config = { | ||
@@ -35,2 +35,2 @@ urls: { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMjIuMSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMjMuMCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0= |
@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security'; | ||
*/ | ||
export declare const version = "3.24.1"; | ||
export declare const version = "3.25.0"; | ||
export * from './lib/api/transform'; | ||
@@ -29,0 +29,0 @@ export * from './lib/filelink'; |
@@ -50,4 +50,4 @@ "use strict"; | ||
*/ | ||
exports.version = '3.24.1'; | ||
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.24.1' }); | ||
exports.version = '3.25.0'; | ||
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.25.0' }); | ||
tslib_1.__exportStar(require("./lib/api/transform"), exports); | ||
@@ -54,0 +54,0 @@ tslib_1.__exportStar(require("./lib/filelink"), exports); |
@@ -88,2 +88,3 @@ "use strict"; | ||
_this.uploader.setUploadTags(options.tags); | ||
_this.uploader.on('start', function () { return _this.emit('start'); }); | ||
_this.uploader.on('error', function (e) { return _this.emit('error', e); }); | ||
@@ -271,2 +272,2 @@ _this.uploader.on('progress', _this.handleProgress.bind(_this)); | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsK0NBQTZDO0FBRTdDLHFDQUE0QztBQUM1Qyw4REFBZ0Y7QUFJaEYsMkNBQWtEO0FBR2xELDRDQUF3RjtBQVF4RixJQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsT0FBTyxFQUFFLElBQUk7SUFDdEMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6RSxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNIO0lBQTRCLGtDQUFZO0lBMkJ0QyxnQkFBNkIsT0FBMkIsRUFBVSxZQUFxQztRQUExRSx3QkFBQSxFQUFBLFlBQTJCO1FBQVUsNkJBQUEsRUFBQSxpQkFBcUM7UUFBdkcsWUFDRSxpQkFBTyxTQXlEUjtRQTFENEIsYUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBVSxrQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFSL0Ysa0JBQVksR0FBa0I7WUFDcEMsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDO1FBUUEseUVBQXlFO1FBQ3pFLEtBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFcEQsSUFBTSxXQUFXLEdBQUcscUJBQVksQ0FBQywyQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxDQUFDLE1BQU0s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QUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUNILGFBQUM7QUFBRCxDQTFQQSxBQTBQQyxDQTFQMkIsNEJBQVksR0EwUHZDO0FBMVBZLHdCQUFNIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL3VwbG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0IHsgU2Vzc2lvbiwgU2VjdXJpdHkgfSBmcm9tICcuLi8uLi9jbGllbnQnO1xuaW1wb3J0IHsgUzNVcGxvYWRlciB9IGZyb20gJy4vdXBsb2FkZXJzL3MzJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldEZpbGUsIElucHV0RmlsZSB9IGZyb20gJy4vZmlsZV90b29scyc7XG5pbXBvcnQgeyBGaWxlU3RhdGUsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgVXBsb2FkTW9kZSB9IGZyb20gJy4vdXBsb2FkZXJzL2Fic3RyYWN0JztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgVXBsb2FkUGFyYW1zU2NoZW1hLCBTdG9yZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vLi4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc0V2ZW50IHtcbiAgdG90YWxQZXJjZW50OiBudW1iZXI7XG4gIHRvdGFsQnl0ZXM6IG51bWJlcjtcbiAgZmlsZXM/OiB7IChrZXk6IHN0cmluZyk6IFByb2dyZXNzRXZlbnQgfTtcbn1cblxuY29uc3QgREVGQVVMVF9QUk9HUkVTU19JTlRFUlZBTCA9IDEwMDA7XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2dyZXNzID0gKGN1cnJlbnQsIGxhc3QpID0+IHtcbiAgY3VycmVudC50b3RhbEJ5dGVzID0gTWF0aC5tYXgoY3VycmVudC50b3RhbEJ5dGVzLCBsYXN0LnRvdGFsQnl0ZXMpO1xuICBjdXJyZW50LnRvdGFsUGVyY2VudCA9IE1hdGgubWF4KGN1cnJlbnQudG90YWxQZXJjZW50LCBsYXN0LnRvdGFsUGVyY2VudCk7XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59O1xuXG4vKipcbiAqIFVwbG9hZGVyIG1haW4gY2xhc3MgZm9yIG5vdyBpdHMgc3VwcG9ydGluZyBvbmx5IHMzIHVwbG9hZCB0eXBlXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFVwbG9hZFxuICovXG5leHBvcnQgY2xhc3MgVXBsb2FkIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuICAvKipcbiAgICogVXBsb2FkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHR5cGUge1MzVXBsb2FkZXJ9XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgdXBsb2FkZXI6IFMzVXBsb2FkZXI7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBvdmVyd3JpdGUgZmlsZSBuYW1lXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgb3ZlcnJpZGVGaWxlTmFtZTtcblxuICBwcml2YXRlIGxhc3RQcm9ncmVzczogUHJvZ3Jlc3NFdmVudCA9IHtcbiAgICB0b3RhbEJ5dGVzOiAwLFxuICAgIHRvdGFsUGVyY2VudDogMCxcbiAgfTtcblxuICBwcml2YXRlIHByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyO1xuICBwcml2YXRlIHNhbml0aXplck9wdGlvbnM6IFNhbml0aXplT3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFVwbG9hZE9wdGlvbnMgPSB7fSwgcHJpdmF0ZSBzdG9yZU9wdGlvbnM6IFN0b3JlVXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIGRvIG5vdCBkZWxldGUgZmlsZW5hbWUgZnJvbSBvcmlnaW5hbCBvcHRpb25zIHJlZmVyZW5jZSAtIGNvcHkgaXQgZmlyc3RcbiAgICB0aGlzLnN0b3JlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHN0b3JlT3B0aW9ucyk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihVcGxvYWRQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCB1cGxvYWQgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVWYWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihTdG9yZVBhcmFtc1NjaGVtYSkoc3RvcmVPcHRpb25zKTtcbiAgICBpZiAoc3RvcmVWYWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgdXBsb2FkIHBhcmFtc2AsIHN0b3JlVmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgaWYgKHN0b3JlT3B0aW9ucy5maWxlbmFtZSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpbGVOYW1lID0gc3RvcmVPcHRpb25zLmZpbGVuYW1lO1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLmZpbGVuYW1lO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0b3JlT3B0aW9ucy5zYW5pdGl6ZXIpIHtcbiAgICAgIHRoaXMuc2FuaXRpemVyT3B0aW9ucyA9IHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcjtcbiAgICAgIGRlbGV0ZSB0aGlzLnN0b3JlT3B0aW9ucy5zYW5pdGl6ZXI7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBTM1VwbG9hZGVyKHRoaXMuc3RvcmVPcHRpb25zLCBvcHRpb25zLmNvbmN1cnJlbmN5KTtcblxuICAgIHRoaXMudXBsb2FkZXIuc2V0UmV0cnlDb25maWcoe1xuICAgICAgcmV0cnk6IG9wdGlvbnMucmV0cnkgfHwgMTAsXG4gICAgICBvblJldHJ5OiBvcHRpb25zLm9uUmV0cnksIC8vIEB0b2RvIGJpbmQgZmlsZSB0byByZXRyeSBpbiBzMyB1cGxvYWRlclxuICAgICAgcmV0cnlGYWN0b3I6IG9wdGlvbnMucmV0cnlGYWN0b3IgfHwgMixcbiAgICAgIHJldHJ5TWF4VGltZTogb3B0aW9ucy5yZXRyeU1heFRpbWUgfHwgMTUwMDAsXG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFRpbWVvdXQob3B0aW9ucy50aW1lb3V0IHx8IDEyMDAwMCk7XG5cbiAgICBpZiAob3B0aW9ucy5wYXJ0U2l6ZSkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRQYXJ0U2l6ZShvcHRpb25zLnBhcnRTaXplKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbnRlbGxpZ2VudENodW5rU2l6ZSkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRJbnRlbGxpZ2VudENodW5rU2l6ZShvcHRpb25zLmludGVsbGlnZW50Q2h1bmtTaXplKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5kaXNhYmxlSW50ZWdyaXR5Q2hlY2spIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0SW50ZWdyaXR5Q2hlY2soZmFsc2UpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmludGVsbGlnZW50KSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZE1vZGUob3B0aW9ucy5pbnRlbGxpZ2VudCA9PT0gJ2ZhbGxiYWNrJyA/IFVwbG9hZE1vZGUuRkFMTEJBQ0sgOiBVcGxvYWRNb2RlLklOVEVMTElHRU5UKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZFRhZ3Mob3B0aW9ucy50YWdzKTtcblxuICAgIHRoaXMudXBsb2FkZXIub24oJ2Vycm9yJywgKGUpID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlKSk7XG4gICAgdGhpcy51cGxvYWRlci5vbigncHJvZ3Jlc3MnLCB0aGlzLmhhbmRsZVByb2dyZXNzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZXNzaW9uIG9iamVjdCB0byB1cGxvYWRlclxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb25cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgc2V0U2Vzc2lvbihzZXNzaW9uOiBTZXNzaW9uKSB7XG4gICAgdGhpcy51cGxvYWRlci5zZXRBcGlrZXkoc2Vzc2lvbi5hcGlrZXkpO1xuXG4gICAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHtcbiAgICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXJsKHNlc3Npb24udXJscy51cGxvYWRBcGlVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjYW5jZWwgdG9rZW4gdG8gY29udHJvbGwgdXBsb2FkIGZsb3dcbiAgICpcbiAgICogQHBhcmFtIHsqfSB0b2tlblxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IGFueSkge1xuICAgIGlmICghdG9rZW4gfHwgdG9rZW4gIT09IE9iamVjdCh0b2tlbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHVwbG9hZCB0b2tlbi4gTXVzdCBiZSBpbnN0YW5jZSBvZiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICB0b2tlbi5wYXVzZSA9ICgpID0+IHRoaXMudXBsb2FkZXIucGF1c2UoKTtcbiAgICB0b2tlbi5yZXN1bWUgPSAoKSA9PiB0aGlzLnVwbG9hZGVyLnJlc3VtZSgpO1xuICAgIHRva2VuLmNhbmNlbCA9ICgpID0+IHRoaXMudXBsb2FkZXIuYWJvcnQoKTtcblxuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNlY3VyaXR5IHRvIHVwbG9hZGVyIGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXBsb2FkIHRhZ3NcbiAgICpcbiAgICogQHBhcmFtIHtUYWdzfSB0YWdzXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRVcGxvYWRUYWdzKHRhZ3M6IFVwbG9hZFRhZ3MpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZFRhZ3ModGFncyk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIHNpbmdsZSBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZSl9IGZpbGVcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkKGlucHV0OiBJbnB1dEZpbGUpOiBQcm9taXNlPGFueT4ge1xuXG4gICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXQsIHRoaXMuc2FuaXRpemVyT3B0aW9ucyk7XG4gICAgZi5jdXN0b21OYW1lID0gdGhpcy5vdmVycmlkZUZpbGVOYW1lO1xuICAgIHRoaXMudXBsb2FkZXIuYWRkRmlsZShmKTtcblxuICAgIHRoaXMuc3RhcnRQcm9ncmVzc0ludGVydmFsKCk7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMudXBsb2FkZXIuZXhlY3V0ZSgpKS5zaGlmdCgpO1xuICAgIHRoaXMuc3RvcFByb2dyZXNzSW50ZXJ2YWwoKTtcblxuICAgIHRoaXMudXBsb2FkZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gRmlsZVN0YXRlLkZBSUxFRCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBtdWx0aXBsZSBmaWxlcyBhdCBvbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZVtdKX0gaW5wdXRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgbXVsdGl1cGxvYWQoaW5wdXQ6IElucHV0RmlsZVtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBmb3IgKGxldCBpIGluIGlucHV0KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKCFpbnB1dC5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXRbaV0sIHRoaXMuc2FuaXRpemVyT3B0aW9ucyk7XG4gICAgICBmLmN1c3RvbU5hbWUgPSB0aGlzLm92ZXJyaWRlRmlsZU5hbWU7XG4gICAgICB0aGlzLnVwbG9hZGVyLmFkZEZpbGUoZik7XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydFByb2dyZXNzSW50ZXJ2YWwoKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnVwbG9hZGVyLmV4ZWN1dGUoKTtcbiAgICB0aGlzLnN0b3BQcm9ncmVzc0ludGVydmFsKCk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJVbiBwcm9ncmVzcyB3aXRoIHVzZXJkZWZpbmVkIGludGVydmFsXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RhcnRQcm9ncmVzc0ludGVydmFsKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3MgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICAgIH0sIHRoaXMub3B0aW9ucy5wcm9ncmVzc0ludGVydmFsIHx8IERFRkFVTFRfUFJPR1JFU1NfSU5URVJWQUwpO1xuXG4gICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgcHJvZ3Jlc3MgaW50ZXJ2YWwgYWZ0ZXIgdXBsb2FkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RvcFByb2dyZXNzSW50ZXJ2YWwoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdXBsb2FkIGludGVydmFsIGFuZCBub3JtYWxpemUgdmFsdWVzXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7UHJvZ3Jlc3NFdmVudH0gcHJvZ3Jlc3NcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVQcm9ncmVzcyhwcm9ncmVzczogUHJvZ3Jlc3NFdmVudCkge1xuICAgIC8vIGdldCBtYXggcHJvZ3Jlc3MgZGF0YSB0byBhdm9pZCBwcm9ncmVzcyBqdW1wcyBvbiBhbnkgcGFydCBlcnJvclxuICAgIHByb2dyZXNzID0gbm9ybWFsaXplUHJvZ3Jlc3MocHJvZ3Jlc3MsIHRoaXMubGFzdFByb2dyZXNzKTtcblxuICAgIGlmICh0aGlzLmxhc3RQcm9ncmVzcy5maWxlcykge1xuICAgICAgZm9yIChsZXQgaSBpbiBwcm9ncmVzcy5maWxlcykge1xuICAgICAgICBpZiAodGhpcy5sYXN0UHJvZ3Jlc3MuZmlsZXNbaV0pIHtcbiAgICAgICAgICBwcm9ncmVzcy5maWxlc1tpXSA9IG5vcm1hbGl6ZVByb2dyZXNzKHByb2dyZXNzLmZpbGVzW2ldLCB0aGlzLmxhc3RQcm9ncmVzcy5maWxlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IHByb2dyZXNzO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsK0NBQTZDO0FBRTdDLHFDQUE0QztBQUM1Qyw4REFBZ0Y7QUFJaEYsMkNBQWtEO0FBR2xELDRDQUF3RjtBQVF4RixJQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsT0FBTyxFQUFFLElBQUk7SUFDdEMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6RSxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNIO0lBQTRCLGtDQUFZO0lBMkJ0QyxnQkFBNkIsT0FBMkIsRUFBVSxZQUFxQztRQUExRSx3QkFBQSxFQUFBLFlBQTJCO1FBQVUsNkJBQUEsRUFBQSxpQkFBcUM7UUFBdkcsWUFDRSxpQkFBTyxTQTBEUjtRQTNENEIsYUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBVSxrQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFSL0Ysa0JBQVksR0FBa0I7WUFDcEMsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDO1FBUUEseUVBQXlFO1FBQ3pFLEtBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFcEQsSUFBTSxXQUFXLEdBQUcscUJBQVksQ0FBQywyQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxDQUFDLE1BQU0s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SUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUNILGFBQUM7QUFBRCxDQTNQQSxBQTJQQyxDQTNQMkIsNEJBQVksR0EyUHZDO0FBM1BZLHdCQUFNIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL3VwbG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0IHsgU2Vzc2lvbiwgU2VjdXJpdHkgfSBmcm9tICcuLi8uLi9jbGllbnQnO1xuaW1wb3J0IHsgUzNVcGxvYWRlciB9IGZyb20gJy4vdXBsb2FkZXJzL3MzJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldEZpbGUsIElucHV0RmlsZSB9IGZyb20gJy4vZmlsZV90b29scyc7XG5pbXBvcnQgeyBGaWxlU3RhdGUsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgVXBsb2FkTW9kZSB9IGZyb20gJy4vdXBsb2FkZXJzL2Fic3RyYWN0JztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgVXBsb2FkUGFyYW1zU2NoZW1hLCBTdG9yZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vLi4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc0V2ZW50IHtcbiAgdG90YWxQZXJjZW50OiBudW1iZXI7XG4gIHRvdGFsQnl0ZXM6IG51bWJlcjtcbiAgZmlsZXM/OiB7IChrZXk6IHN0cmluZyk6IFByb2dyZXNzRXZlbnQgfTtcbn1cblxuY29uc3QgREVGQVVMVF9QUk9HUkVTU19JTlRFUlZBTCA9IDEwMDA7XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2dyZXNzID0gKGN1cnJlbnQsIGxhc3QpID0+IHtcbiAgY3VycmVudC50b3RhbEJ5dGVzID0gTWF0aC5tYXgoY3VycmVudC50b3RhbEJ5dGVzLCBsYXN0LnRvdGFsQnl0ZXMpO1xuICBjdXJyZW50LnRvdGFsUGVyY2VudCA9IE1hdGgubWF4KGN1cnJlbnQudG90YWxQZXJjZW50LCBsYXN0LnRvdGFsUGVyY2VudCk7XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59O1xuXG4vKipcbiAqIFVwbG9hZGVyIG1haW4gY2xhc3MgZm9yIG5vdyBpdHMgc3VwcG9ydGluZyBvbmx5IHMzIHVwbG9hZCB0eXBlXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFVwbG9hZFxuICovXG5leHBvcnQgY2xhc3MgVXBsb2FkIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuICAvKipcbiAgICogVXBsb2FkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHR5cGUge1MzVXBsb2FkZXJ9XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgdXBsb2FkZXI6IFMzVXBsb2FkZXI7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBvdmVyd3JpdGUgZmlsZSBuYW1lXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgb3ZlcnJpZGVGaWxlTmFtZTtcblxuICBwcml2YXRlIGxhc3RQcm9ncmVzczogUHJvZ3Jlc3NFdmVudCA9IHtcbiAgICB0b3RhbEJ5dGVzOiAwLFxuICAgIHRvdGFsUGVyY2VudDogMCxcbiAgfTtcblxuICBwcml2YXRlIHByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyO1xuICBwcml2YXRlIHNhbml0aXplck9wdGlvbnM6IFNhbml0aXplT3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFVwbG9hZE9wdGlvbnMgPSB7fSwgcHJpdmF0ZSBzdG9yZU9wdGlvbnM6IFN0b3JlVXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIGRvIG5vdCBkZWxldGUgZmlsZW5hbWUgZnJvbSBvcmlnaW5hbCBvcHRpb25zIHJlZmVyZW5jZSAtIGNvcHkgaXQgZmlyc3RcbiAgICB0aGlzLnN0b3JlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHN0b3JlT3B0aW9ucyk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihVcGxvYWRQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCB1cGxvYWQgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVWYWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihTdG9yZVBhcmFtc1NjaGVtYSkoc3RvcmVPcHRpb25zKTtcbiAgICBpZiAoc3RvcmVWYWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgdXBsb2FkIHBhcmFtc2AsIHN0b3JlVmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgaWYgKHN0b3JlT3B0aW9ucy5maWxlbmFtZSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpbGVOYW1lID0gc3RvcmVPcHRpb25zLmZpbGVuYW1lO1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLmZpbGVuYW1lO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0b3JlT3B0aW9ucy5zYW5pdGl6ZXIpIHtcbiAgICAgIHRoaXMuc2FuaXRpemVyT3B0aW9ucyA9IHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcjtcbiAgICAgIGRlbGV0ZSB0aGlzLnN0b3JlT3B0aW9ucy5zYW5pdGl6ZXI7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBTM1VwbG9hZGVyKHRoaXMuc3RvcmVPcHRpb25zLCBvcHRpb25zLmNvbmN1cnJlbmN5KTtcblxuICAgIHRoaXMudXBsb2FkZXIuc2V0UmV0cnlDb25maWcoe1xuICAgICAgcmV0cnk6IG9wdGlvbnMucmV0cnkgfHwgMTAsXG4gICAgICBvblJldHJ5OiBvcHRpb25zLm9uUmV0cnksIC8vIEB0b2RvIGJpbmQgZmlsZSB0byByZXRyeSBpbiBzMyB1cGxvYWRlclxuICAgICAgcmV0cnlGYWN0b3I6IG9wdGlvbnMucmV0cnlGYWN0b3IgfHwgMixcbiAgICAgIHJldHJ5TWF4VGltZTogb3B0aW9ucy5yZXRyeU1heFRpbWUgfHwgMTUwMDAsXG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFRpbWVvdXQob3B0aW9ucy50aW1lb3V0IHx8IDEyMDAwMCk7XG5cbiAgICBpZiAob3B0aW9ucy5wYXJ0U2l6ZSkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRQYXJ0U2l6ZShvcHRpb25zLnBhcnRTaXplKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbnRlbGxpZ2VudENodW5rU2l6ZSkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRJbnRlbGxpZ2VudENodW5rU2l6ZShvcHRpb25zLmludGVsbGlnZW50Q2h1bmtTaXplKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5kaXNhYmxlSW50ZWdyaXR5Q2hlY2spIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0SW50ZWdyaXR5Q2hlY2soZmFsc2UpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmludGVsbGlnZW50KSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZE1vZGUob3B0aW9ucy5pbnRlbGxpZ2VudCA9PT0gJ2ZhbGxiYWNrJyA/IFVwbG9hZE1vZGUuRkFMTEJBQ0sgOiBVcGxvYWRNb2RlLklOVEVMTElHRU5UKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZFRhZ3Mob3B0aW9ucy50YWdzKTtcblxuICAgIHRoaXMudXBsb2FkZXIub24oJ3N0YXJ0JywgKCkgPT4gdGhpcy5lbWl0KCdzdGFydCcpKTtcbiAgICB0aGlzLnVwbG9hZGVyLm9uKCdlcnJvcicsIChlKSA9PiB0aGlzLmVtaXQoJ2Vycm9yJywgZSkpO1xuICAgIHRoaXMudXBsb2FkZXIub24oJ3Byb2dyZXNzJywgdGhpcy5oYW5kbGVQcm9ncmVzcy5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2Vzc2lvbiBvYmplY3QgdG8gdXBsb2FkZXJcbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQHBhcmFtIHtTZXNzaW9ufSBzZXNzaW9uXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHNldFNlc3Npb24oc2Vzc2lvbjogU2Vzc2lvbikge1xuICAgIHRoaXMudXBsb2FkZXIuc2V0QXBpa2V5KHNlc3Npb24uYXBpa2V5KTtcblxuICAgIGlmIChzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRTZWN1cml0eSh7XG4gICAgICAgIHBvbGljeTogc2Vzc2lvbi5wb2xpY3ksXG4gICAgICAgIHNpZ25hdHVyZTogc2Vzc2lvbi5zaWduYXR1cmUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFVybChzZXNzaW9uLnVybHMudXBsb2FkQXBpVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2FuY2VsIHRva2VuIHRvIGNvbnRyb2xsIHVwbG9hZCBmbG93XG4gICAqXG4gICAqIEBwYXJhbSB7Kn0gdG9rZW5cbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHVibGljIHNldFRva2VuKHRva2VuOiBhbnkpIHtcbiAgICBpZiAoIXRva2VuIHx8IHRva2VuICE9PSBPYmplY3QodG9rZW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCB1cGxvYWQgdG9rZW4uIE11c3QgYmUgaW5zdGFuY2Ugb2Ygb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgdG9rZW4ucGF1c2UgPSAoKSA9PiB0aGlzLnVwbG9hZGVyLnBhdXNlKCk7XG4gICAgdG9rZW4ucmVzdW1lID0gKCkgPT4gdGhpcy51cGxvYWRlci5yZXN1bWUoKTtcbiAgICB0b2tlbi5jYW5jZWwgPSAoKSA9PiB0aGlzLnVwbG9hZGVyLmFib3J0KCk7XG5cbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBzZWN1cml0eSB0byB1cGxvYWRlciBpbnN0YW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge1NlY3VyaXR5fSBzZWN1cml0eVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgc2V0U2VjdXJpdHkoc2VjdXJpdHk6IFNlY3VyaXR5KSB7XG4gICAgdGhpcy51cGxvYWRlci5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwbG9hZCB0YWdzXG4gICAqXG4gICAqIEBwYXJhbSB7VGFnc30gdGFnc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgc2V0VXBsb2FkVGFncyh0YWdzOiBVcGxvYWRUYWdzKSB7XG4gICAgdGhpcy51cGxvYWRlci5zZXRVcGxvYWRUYWdzKHRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBzaW5nbGUgZmlsZVxuICAgKlxuICAgKiBAcGFyYW0geyhJbnB1dEZpbGUpfSBmaWxlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIGFzeW5jIHVwbG9hZChpbnB1dDogSW5wdXRGaWxlKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGNvbnN0IGYgPSBhd2FpdCBnZXRGaWxlKGlucHV0LCB0aGlzLnNhbml0aXplck9wdGlvbnMpO1xuICAgIGYuY3VzdG9tTmFtZSA9IHRoaXMub3ZlcnJpZGVGaWxlTmFtZTtcbiAgICB0aGlzLnVwbG9hZGVyLmFkZEZpbGUoZik7XG5cbiAgICB0aGlzLnN0YXJ0UHJvZ3Jlc3NJbnRlcnZhbCgpO1xuICAgIGNvbnN0IHJlcyA9IChhd2FpdCB0aGlzLnVwbG9hZGVyLmV4ZWN1dGUoKSkuc2hpZnQoKTtcbiAgICB0aGlzLnN0b3BQcm9ncmVzc0ludGVydmFsKCk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgaWYgKHJlcy5zdGF0dXMgPT09IEZpbGVTdGF0ZS5GQUlMRUQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgbXVsdGlwbGUgZmlsZXMgYXQgb25jZVxuICAgKlxuICAgKiBAcGFyYW0geyhJbnB1dEZpbGVbXSl9IGlucHV0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIGFzeW5jIG11bHRpdXBsb2FkKGlucHV0OiBJbnB1dEZpbGVbXSk6IFByb21pc2U8YW55PiB7XG4gICAgZm9yIChsZXQgaSBpbiBpbnB1dCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGYgPSBhd2FpdCBnZXRGaWxlKGlucHV0W2ldLCB0aGlzLnNhbml0aXplck9wdGlvbnMpO1xuICAgICAgZi5jdXN0b21OYW1lID0gdGhpcy5vdmVycmlkZUZpbGVOYW1lO1xuICAgICAgdGhpcy51cGxvYWRlci5hZGRGaWxlKGYpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRQcm9ncmVzc0ludGVydmFsKCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy51cGxvYWRlci5leGVjdXRlKCk7XG4gICAgdGhpcy5zdG9wUHJvZ3Jlc3NJbnRlcnZhbCgpO1xuXG4gICAgdGhpcy51cGxvYWRlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSVW4gcHJvZ3Jlc3Mgd2l0aCB1c2VyZGVmaW5lZCBpbnRlcnZhbFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0UHJvZ3Jlc3NJbnRlcnZhbCgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vblByb2dyZXNzICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcm9ncmVzc0ludGVydmFsSGFuZGxlciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucy5vblByb2dyZXNzKHRoaXMubGFzdFByb2dyZXNzKTtcbiAgICB9LCB0aGlzLm9wdGlvbnMucHJvZ3Jlc3NJbnRlcnZhbCB8fCBERUZBVUxUX1BST0dSRVNTX0lOVEVSVkFMKTtcblxuICAgIHRoaXMub3B0aW9ucy5vblByb2dyZXNzKHRoaXMubGFzdFByb2dyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHByb2dyZXNzIGludGVydmFsIGFmdGVyIHVwbG9hZFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIHN0b3BQcm9ncmVzc0ludGVydmFsKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5wcm9ncmVzc0ludGVydmFsSGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHVwbG9hZCBpbnRlcnZhbCBhbmQgbm9ybWFsaXplIHZhbHVlc1xuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge1Byb2dyZXNzRXZlbnR9IHByb2dyZXNzXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlUHJvZ3Jlc3MocHJvZ3Jlc3M6IFByb2dyZXNzRXZlbnQpIHtcbiAgICAvLyBnZXQgbWF4IHByb2dyZXNzIGRhdGEgdG8gYXZvaWQgcHJvZ3Jlc3MganVtcHMgb24gYW55IHBhcnQgZXJyb3JcbiAgICBwcm9ncmVzcyA9IG5vcm1hbGl6ZVByb2dyZXNzKHByb2dyZXNzLCB0aGlzLmxhc3RQcm9ncmVzcyk7XG5cbiAgICBpZiAodGhpcy5sYXN0UHJvZ3Jlc3MuZmlsZXMpIHtcbiAgICAgIGZvciAobGV0IGkgaW4gcHJvZ3Jlc3MuZmlsZXMpIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFByb2dyZXNzLmZpbGVzW2ldKSB7XG4gICAgICAgICAgcHJvZ3Jlc3MuZmlsZXNbaV0gPSBub3JtYWxpemVQcm9ncmVzcyhwcm9ncmVzcy5maWxlc1tpXSwgdGhpcy5sYXN0UHJvZ3Jlc3MuZmlsZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgfVxufVxuIl19 |
@@ -399,2 +399,3 @@ "use strict"; | ||
} | ||
upload.on('start', function () { return _this.emit('upload.start'); }); | ||
/* istanbul ignore next */ | ||
@@ -458,2 +459,3 @@ upload.on('error', function (e) { | ||
} | ||
upload.on('start', function () { return _this.emit('upload.start'); }); | ||
/* istanbul ignore next */ | ||
@@ -477,2 +479,2 @@ upload.on('error', function (e) { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQztnQkFDbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksY0FBQSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNILGFBQUM7QUFBRCxDQTViQSxBQTRiQyxDQTViMkIsNEJBQVksR0E0YnZDO0FBNWJZLHdCQUFNIiwiZmlsZSI6ImxpYi9jbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0ICogYXMgU2VudHJ5IGZyb20gJ0BzZW50cnkvbWluaW1hbCc7XG5pbXBvcnQgeyBjb25maWcsIEhvc3RzIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgbWV0YWRhdGEsIE1ldGFkYXRhT3B0aW9ucywgcmVtb3ZlLCByZXRyaWV2ZSwgUmV0cmlldmVPcHRpb25zLCBkb3dubG9hZCB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtLCBUcmFuc2Zvcm1PcHRpb25zIH0gZnJvbSAnLi9hcGkvdHJhbnNmb3JtJztcbmltcG9ydCB7IHN0b3JlVVJMIH0gZnJvbSAnLi9hcGkvc3RvcmUnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBVcGxvYWQsIElucHV0RmlsZSwgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zLCBVcGxvYWRUYWdzIH0gZnJvbSAnLi9hcGkvdXBsb2FkJztcbmltcG9ydCB7IHByZXZpZXcsIFByZXZpZXdPcHRpb25zIH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBDbG91ZENsaWVudCB9IGZyb20gJy4vYXBpL2Nsb3VkJztcbmltcG9ydCB7IFByZWZldGNoLCBQcmVmZXRjaFJlc3BvbnNlLCBQcmVmZXRjaE9wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmVmZXRjaCc7XG5pbXBvcnQgeyBGc1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0L3R5cGVzJztcbmltcG9ydCB7IFN0b3JlUGFyYW1zIH0gZnJvbSAnLi9maWxlbGluayc7XG5cbmltcG9ydCB7IHBpY2tlciwgUGlja2VySW5zdGFuY2UsIFBpY2tlck9wdGlvbnMgfSBmcm9tICcuL3BpY2tlcic7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5TZW50cnkuYWRkQnJlYWRjcnVtYih7IGNhdGVnb3J5OiAnc2RrJywgbWVzc2FnZTogJ2ZpbGVzdGFjay1qcy1zZGsgc2NvcGUnIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb24ge1xuICBhcGlrZXk6IHN0cmluZztcbiAgdXJsczogSG9zdHM7XG4gIGNuYW1lPzogc3RyaW5nO1xuICBwb2xpY3k/OiBzdHJpbmc7XG4gIHNpZ25hdHVyZT86IHN0cmluZztcbiAgcHJlZmV0Y2g/OiBQcmVmZXRjaFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5IHtcbiAgcG9saWN5OiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICBbb3B0aW9uOiBzdHJpbmddOiBhbnk7XG4gIC8qKlxuICAgKiBTZWN1cml0eSBvYmplY3Qgd2l0aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBrZXlzLlxuICAgKiBDYW4gYmUgdXNlZCB0byBsaW1pdCBjbGllbnQgY2FwYWJpbGl0aWVzIGFuZCBwcm90ZWN0IHB1YmxpYyBVUkxzLlxuICAgKiBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggc2VydmVyLXNpZGUgcG9saWN5IGFuZCBzaWduYXR1cmUgZ2VuZXJhdGlvbi5cbiAgICogUmVhZCBhYm91dCBbc2VjdXJpdHkgcG9saWNpZXNdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9jb25jZXB0cy9zZWN1cml0eSkuXG4gICAqL1xuICBzZWN1cml0eT86IFNlY3VyaXR5O1xuICAvKipcbiAgICogRG9tYWluIHRvIHVzZSBmb3IgYWxsIFVSTHMuIF9fUmVxdWlyZXMgdGhlIGN1c3RvbSBDTkFNRSBhZGRvbl9fLlxuICAgKiBJZiB0aGlzIGlzIGVuYWJsZWQgdGhlbiB5b3UgbXVzdCBhbHNvIHNldCB1cCB5b3VyIG93biBPQXV0aCBhcHBsaWNhdGlvbnNcbiAgICogZm9yIGVhY2ggY2xvdWQgc291cmNlIHlvdSB3aXNoIHRvIHVzZSBpbiB0aGUgcGlja2VyLlxuICAgKi9cbiAgY25hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbmFibGUvZGlzYWJsZSBjYWNoaW5nIG9mIHRoZSBjbG91ZCBzZXNzaW9uIHRva2VuLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB1c2VycyB3aWxsIGJlIHJlbWVtYmVyZWQgb24geW91ciBkb21haW4gd2hlbiBjYWxsaW5nIHRoZSBjbG91ZCBBUEkgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdG9rZW5zIHN0b3JlZCBpbiBsb2NhbFN0b3JhZ2UgYXJlIGFjY2Vzc2libGUgYnkgb3RoZXIgc2NyaXB0cyBvbiB0aGUgc2FtZSBkb21haW4uXG4gICAqL1xuICBzZXNzaW9uQ2FjaGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZm9yd2FyZGluZyBlcnJvciBsb2dzIHRvIHNlbnRyeVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZm9yd2FyZEVycm9ycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEZpbGVzdGFjayBjbGllbnQsIHRoZSBlbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBtZXRob2RzLiBFbmNhcHN1bGF0ZXMgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBganNcbiAqIC8vIEVTIG1vZHVsZVxuICogaW1wb3J0ICogYXMgZmlsZXN0YWNrIGZyb20gJ2ZpbGVzdGFjay1qcyc7XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqXG4gKiBgYGBqc1xuICogLy8gVU1EIG1vZHVsZSBpbiBicm93c2VyXG4gKiA8c2NyaXB0IHNyYz1cImh0dHBzOi8vc3RhdGljLmZpbGVzdGFja2FwaS5jb20vZmlsZXN0YWNrLWpzLzMueC54L2ZpbGVzdGFjay5taW4uanNcIj48L3NjcmlwdD5cbiAqIGNvbnN0IGNsaWVudCA9IGZpbGVzdGFjay5pbml0KCdhcGlrZXknKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgcHVibGljIHNlc3Npb246IFNlc3Npb247XG4gIHByaXZhdGUgY2xvdWQ6IENsb3VkQ2xpZW50O1xuICBwcml2YXRlIHByZWZldGNoSW5zdGFuY2U6IFByZWZldGNoO1xuXG4gIHByaXZhdGUgZm9yd2FyZEVycm9yczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZmlsZXN0YWNrIHV0aWxzXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBnZXQgdXRpbHMoKSB7XG4gICAgcmV0dXJuIFV0aWxzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYXBpa2V5OiBzdHJpbmcsIHByaXZhdGUgb3B0aW9ucz86IENsaWVudE9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5mb3J3YXJkRXJyb3JzKSB7XG4gICAgICB0aGlzLmZvcndhcmRFcnJvcnMgPSBvcHRpb25zLmZvcndhcmRFcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKCFhcGlrZXkgfHwgdHlwZW9mIGFwaWtleSAhPT0gJ3N0cmluZycgfHwgYXBpa2V5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBhcGlrZXkgaXMgcmVxdWlyZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRmlsZXN0YWNrIGNsaWVudCcpO1xuICAgIH1cbiAgICBjb25zdCB7IHVybHMgfSA9IGNvbmZpZztcbiAgICB0aGlzLnNlc3Npb24gPSB7IGFwaWtleSwgdXJscyB9O1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IHsgY25hbWUsIHNlY3VyaXR5IH0gPSBvcHRpb25zO1xuXG4gICAgICB0aGlzLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICAgIHRoaXMuc2V0Q25hbWUoY25hbWUpO1xuICAgIH1cblxuICAgIHRoaXMucHJlZmV0Y2hJbnN0YW5jZSA9IG5ldyBQcmVmZXRjaCh0aGlzLnNlc3Npb24pO1xuICAgIHRoaXMuY2xvdWQgPSBuZXcgQ2xvdWRDbGllbnQodGhpcy5zZXNzaW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGJhc2ljIHByZWZldGNoIHJlcXVlc3QgdG8gY2hlY2sgcGVybWlzc2lvbnNcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgcHJlZmV0Y2gocGFyYW1zOiBQcmVmZXRjaE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXRjaEluc3RhbmNlLmdldENvbmZpZyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZWN1cml0eSBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIHtTZWN1cml0eX0gc2VjdXJpdHlcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgc2V0U2VjdXJpdHkoc2VjdXJpdHk6IFNlY3VyaXR5KSB7XG4gICAgaWYgKHNlY3VyaXR5ICYmICEoc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignQm90aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIGNsaWVudCBzZWN1cml0eScpO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB7XG4gICAgICB0aGlzLnNlc3Npb24ucG9saWN5ID0gc2VjdXJpdHkucG9saWN5O1xuICAgICAgdGhpcy5zZXNzaW9uLnNpZ25hdHVyZSA9IHNlY3VyaXR5LnNpZ25hdHVyZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBjbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY25hbWVcbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgc2V0Q25hbWUoY25hbWU6IHN0cmluZykge1xuICAgIGlmICghY25hbWUgfHwgY25hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXNzaW9uLmNuYW1lID0gY25hbWU7XG4gICAgdGhpcy5zZXNzaW9uLnVybHMgPSBVdGlscy5yZXNvbHZlSG9zdCh0aGlzLnNlc3Npb24udXJscywgY25hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBjdXJyZW50IGNsb3VkIHNlc3Npb25zIGluIHRoZSBwaWNrZXIuXG4gICAqIE9wdGlvbmFsbHkgcGFzcyBhIGNsb3VkIHNvdXJjZSBuYW1lIHRvIG9ubHkgbG9nIG91dCBvZiB0aGF0IGNsb3VkIHNvdXJjZS5cbiAgICogVGhpcyBlc3NlbnRpYWxseSBjbGVhcnMgdGhlIE9BdXRoIGF1dGhvcml6YXRpb24gY29kZXMgZnJvbSB0aGUgRmlsZXN0YWNrIHNlc3Npb24uXG4gICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIGNsb3VkIHNvdXJjZSBuYW1lLlxuICAgKi9cbiAgbG9nb3V0KG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jbG91ZC5sb2dvdXQobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHJpZXZlIGRldGFpbGVkIGRhdGEgb2Ygc3RvcmVkIGZpbGVzLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAubWV0YWRhdGEoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBNZXRhZGF0YV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI21ldGFkYXRhKS5cbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBNZXRhZGF0YSBmaWVsZHMgdG8gZW5hYmxlIG9uIHJlc3BvbnNlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICBtZXRhZGF0YShoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IE1ldGFkYXRhT3B0aW9ucywgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIG1ldGFkYXRhKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIG5ldyBwaWNrZXIgaW5zdGFuY2UuXG4gICAqL1xuICBwaWNrZXIob3B0aW9ucz86IFBpY2tlck9wdGlvbnMpOiBQaWNrZXJJbnN0YW5jZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcGlja2VyKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIC8qKlxuICAgKiBVc2VkIGZvciB2aWV3aW5nIGZpbGVzIHZpYSBGaWxlc3RhY2sgaGFuZGxlcyBvciBzdG9yYWdlIGFsaWFzZXMsIF9fcmVxdWlyZXMgRG9jdW1lbnQgVmlld2VyIGFkZG9uIHRvIHlvdXIgRmlsZXN0YWNrIGFwcGxpY2F0aW9uX18uXG4gICAqIE9wZW5zIGRvY3VtZW50IHZpZXdlciBpbiBuZXcgd2luZG93IGlmIGlkIG9wdGlvbiBpcyBub3QgcHJvdmlkZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIC8vIDxkaXYgaWQ9XCJwcmV2aWV3XCI+PC9kaXY+XG4gICAqXG4gICAqIGNsaWVudC5wcmV2aWV3KCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScsIHsgaWQ6ICdwcmV2aWV3JyB9KTtcbiAgICogYGBgXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgUHJldmlldyBvcHRpb25zXG4gICAqL1xuICBwcmV2aWV3KGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogUHJldmlld09wdGlvbnMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBwcmV2aWV3KHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zKTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSBmcm9tIHN0b3JhZ2UgYW5kIHRoZSBGaWxlc3RhY2sgc3lzdGVtLlxuICAgKlxuICAgKiBfX1JlcXVpcmVzIGEgdmFsaWQgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmVfXy4gVGhlIHBvbGljeSBhbmQgc2lnbmF0dXJlIHdpbGwgYmUgcHVsbGVkIGZyb20gdGhlIGNsaWVudCBzZXNzaW9uLCBvciBpdCBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBzZWN1cml0eSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5yZW1vdmUoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEZWxldGVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkZWxldGUpXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVtb3ZlKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZW1vdmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIGZhbHNlLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGZpbGUgKipvbmx5KiogZnJvbSB0aGUgRmlsZXN0YWNrIHN5c3RlbS4gVGhlIGZpbGUgcmVtYWlucyBpbiBzdG9yYWdlLlxuICAgKlxuICAgKiBfX1JlcXVpcmVzIGEgdmFsaWQgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmVfXy4gVGhlIHBvbGljeSBhbmQgc2lnbmF0dXJlIHdpbGwgYmUgcHVsbGVkIGZyb20gdGhlIGNsaWVudCBzZXNzaW9uLCBvciBpdCBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBzZWN1cml0eSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5yZW1vdmVNZXRhZGF0YSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERlbGV0ZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2RlbGV0ZSlcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICByZW1vdmVNZXRhZGF0YShoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8YW55PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmVtb3ZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCB0cnVlLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIFN0b3JlIGEgZmlsZSBmcm9tIGl0cyBVUkwuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5zdG9yZVVSTCgnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvTllfMTk5X0Vfb2ZfSGFtbWVydG93bl8yMDE0LmpwZycpXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBTdG9yZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI3N0b3JlKVxuICAgKiBAcGFyYW0gdXJsICAgICAgIFZhbGlkIFVSTCB0byBhIGZpbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zICAgQ29uZmlndXJlIGZpbGUgc3RvcmFnZS5cbiAgICogQHBhcmFtIHRva2VuICAgICBPcHRpb25hbCBjb250cm9sIHRva2VuIHRvIGNhbGwgLmNhbmNlbCgpXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqIEBwYXJhbSB1cGxvYWRUYWdzIE9wdGlvbmFsIHRhZ3MgdmlzaWJsZSBpbiB3ZWJob29rcy5cbiAgICogQHBhcmFtIGhlYWRlcnMgICAgT3B0aW9uYWwgaGVhZGVycyB0byBzZW5kXG4gICAqIEBwYXJhbSB3b3JrZmxvd0lkcyAgICBPcHRpb25hbCB3b3JrZmxvd0lkcyB0byBzZW5kXG4gICAqL1xuICBzdG9yZVVSTCh1cmw6IHN0cmluZywgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHksIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzLCBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sIHdvcmtmbG93SWRzPzogc3RyaW5nW10pOiBQcm9taXNlPE9iamVjdD4ge1xuICAgIHJldHVybiBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICB1cmwsXG4gICAgICBzdG9yZVBhcmFtcyxcbiAgICAgIHRva2VuLFxuICAgICAgc2VjdXJpdHksXG4gICAgICB1cGxvYWRUYWdzLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHdvcmtmbG93SWRzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VzcyBmaWxlcyB2aWEgdGhlaXIgRmlsZXN0YWNrIGhhbmRsZXMuXG4gICAqXG4gICAqIElmIGhlYWQgb3B0aW9uIGlzIHByb3ZpZGVkIC0gcmVxdWVzdCBoZWFkZXJzIGFyZSByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIElmIG1ldGFkYXRhIG9wdGlvbiBpcyBwcm92aWRlZCAtIG1ldGFkYXRhIG9iamVjdCBpcyByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIE90aGVyd2lzZSBmaWxlIGJsb2IgaXMgcmV0dXJuZWRcbiAgICogTWV0YWRhdGEgYW5kIGhlYWQgb3B0aW9ucyBjYW5ub3QgYmUgbWl4ZWRcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50LnJldHJpZXZlKCdmaWxlSGFuZGxlJywge1xuICAgKiAgbWV0YWRhdGE6IHRydWUsXG4gICAqIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAqICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAqIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICogIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICogfSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRG93bmxvYWRdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkb3dubG9hZClcbiAgICogQGRlcHJlY2F0ZWQgdXNlIG1ldGFkYXRhIG9yIGRvd25sb2FkIG1ldGhvZHMgaW5zdGVhZFxuICAgKiBAcGFyYW0gaGFuZGxlICAgIFZhbGlkIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSBvcHRpb25zICAgUmV0cmlldmVPcHRpb25zXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqIEB0aHJvd3MgICAgICAgICAgRXJyb3JcbiAgICovXG4gIHJldHJpZXZlKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogUmV0cmlldmVPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmV0cmlldmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBmaWxlIGJ5IGhhbmRsZVxuICAgKlxuICAgKlxuICAgKiAjIyMgQnJvd3NlciBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudC5kb3dubG9hZCgnZmlsZUhhbmRsZScpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAqIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgKiBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMuZGF0YSlcbiAgICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpO1xuICAgKiB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICBjb25zb2xlLmVycm9yKGVycik7XG4gICAqIH0pXG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERvd25sb2FkXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZG93bmxvYWQpXG4gICAqIEBwYXJhbSBoYW5kbGUgICAgVmFsaWQgZmlsZSBoYW5kbGVcbiAgICogQHRocm93cyAgICAgICAgICBFcnJvclxuICAgKi9cbiAgZG93bmxvYWQoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPEZzUmVzcG9uc2U+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBkb3dubG9hZCh0aGlzLnNlc3Npb24sIGhhbmRsZSwgc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVyZmFjZSB0byB0aGUgRmlsZXN0YWNrIFtQcm9jZXNzaW5nIEFQSV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9wcm9jZXNzaW5nKS5cbiAgICogQ29udmVydCBhIFVSTCwgaGFuZGxlLCBvciBzdG9yYWdlIGFsaWFzIHRvIGFub3RoZXIgVVJMIHdoaWNoIGxpbmtzIHRvIHRoZSB0cmFuc2Zvcm1lZCBmaWxlLlxuICAgKiBZb3UgY2FuIG9wdGlvbmFsbHkgc3RvcmUgdGhlIHJldHVybmVkIFVSTCB3aXRoIGNsaWVudC5zdG9yZVVSTC5cbiAgICpcbiAgICogVHJhbnNmb3JtIHBhcmFtcyBjYW4gYmUgcHJvdmlkZWQgaW4gY2FtZWxDYXNlIG9yIHNuYWtlQ2FzZSBzdHlsZSBpZTogcGFydGlhbF9waXhlbGF0ZSBvciBwYXJ0aWFsUGl4ZWxhdGVcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdHJhbnNmb3JtZWRVcmwgPSBjbGllbnQudHJhbnNmb3JtKHVybCwge1xuICAgKiAgIGNyb3A6IHtcbiAgICogICAgIGRpbTogW3gsIHksIHdpZHRoLCBoZWlnaHRdLFxuICAgKiAgIH0sXG4gICAqICAgdmlnbmV0dGU6IHtcbiAgICogICAgIGJsdXJtb2RlOiAnZ2F1c3NpYW4nLFxuICAgKiAgICAgYW1vdW50OiA1MCxcbiAgICogICB9LFxuICAgKiAgIGZsaXA6IHRydWUsXG4gICAqICAgcGFydGlhbF9waXhlbGF0ZToge1xuICAgKiAgICAgb2JqZWN0czogW1sxMCwgMjAsIDIwMCwgMjUwXSwgWzI3NSwgOTEsIDUwMCwgNTU3XV0sXG4gICAqICAgfSxcbiAgICogfTtcbiAgICpcbiAgICogLy8gb3B0aW9uYWxseSBzdG9yZSB0aGUgbmV3IFVSTFxuICAgKiBjbGllbnQuc3RvcmVVUkwodHJhbnNmb3JtZWRVcmwpLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZXN0YWNrIFByb2Nlc3NpbmcgQVBJXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL3Byb2Nlc3NpbmcpXG4gICAqIEBwYXJhbSB1cmwgICAgIFNpbmdsZSBvciBtdWx0aXBsZSB2YWxpZCBVUkxzIChodHRwKHMpOi8vKSwgZmlsZSBoYW5kbGVzLCBvciBzdG9yYWdlIGFsaWFzZXMgKHNyYzovLykgdG8gYW4gaW1hZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRyYW5zZm9ybWF0aW9ucyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkIGJ5IHRoaXMgb2JqZWN0LlxuICAgKiBAcGFyYW0gYjY0ICAgICBVc2UgbmV3IG1vcmUgc2FmZSBmb3JtYXQgZm9yIGdlbmVyYXRpbmcgdHJhbnNmb3JtcyB1cmwgKGRlZmF1bHQ9ZmFsc2UpIE5vdGU6IElmIHRoZXJlIHdpbGwgYmUgYW55IGlzc3VlcyB3aXRoIHVybCBwbGVhc2UgdGVzdCBpdCB3aXRoIGVuYWJsZWQgYjY0IHN1cHBvcnRcbiAgICogQHJldHVybnMgICAgICAgQSBuZXcgVVJMIHRoYXQgcG9pbnRzIHRvIHRoZSB0cmFuc2Zvcm1lZCByZXNvdXJjZS5cbiAgICovXG4gIHRyYW5zZm9ybSh1cmw6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBUcmFuc2Zvcm1PcHRpb25zLCBiNjQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRyYW5zZm9ybSh0aGlzLnNlc3Npb24sIHVybCwgb3B0aW9ucywgYjY0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBtdWx0aS1wYXJ0IHVwbG9hZCBmbG93LiBVc2UgdGhpcyBmb3IgRmlsZXN0YWNrIENJTiBhbmQgRklJIHVwbG9hZHMuXG4gICAqXG4gICAqIEluIE5vZGUgcnVudGltZXMgdGhlIGZpbGUgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGUgcGF0aC5cbiAgICogVXBsb2FkaW5nIGZyb20gYSBOb2RlIGJ1ZmZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0b2tlbiA9IHt9O1xuICAgKiBjb25zdCBvblJldHJ5ID0gKG9iaikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZXRyeWluZyAke29iai5sb2NhdGlvbn0gZm9yICR7b2JqLmZpbGVuYW1lfS4gQXR0ZW1wdCAke29iai5hdHRlbXB0fSBvZiAxMC5gKTtcbiAgICogfTtcbiAgICpcbiAgICogY2xpZW50LnVwbG9hZChmaWxlLCB7IG9uUmV0cnkgfSwgeyBmaWxlbmFtZTogJ2Zvb2Jhci5qcGcnIH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogY2xpZW50LnVwbG9hZCh7ZmlsZSwgbmFtZX0sIHsgb25SZXRyeSB9LCB7IGZpbGVuYW1lOiAnZm9vYmFyLmpwZycgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiB0b2tlbi5wYXVzZSgpOyAgLy8gUGF1c2UgZmxvd1xuICAgKiB0b2tlbi5yZXN1bWUoKTsgLy8gUmVzdW1lIGZsb3dcbiAgICogdG9rZW4uY2FuY2VsKCk7IC8vIENhbmNlbCBmbG93IChyZWplY3RzKVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtJbnB1dEZpbGV9ICAgIGZpbGUgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBbRmlsZSB8IEJsb2IgfCBCdWZmZXIgfCBzdHJpbmddXG4gICAqIEBwYXJhbSB1cGxvYWRPcHRpb25zICBVcGxvYWRlciBvcHRpb25zLlxuICAgKiBAcGFyYW0gc3RvcmVPcHRpb25zICAgU3RvcmFnZSBvcHRpb25zLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgICAgICAgQSBjb250cm9sIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCBjYW5jZWwoKSwgcGF1c2UoKSwgYW5kIHJlc3VtZSgpLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgICAgICAgT3B0aW9uYWwgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgb3ZlcnJpZGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgdXBsb2FkKGZpbGU6IElucHV0RmlsZSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuICAgIHVwbG9hZC5zZXRTZXNzaW9uKHRoaXMuc2Vzc2lvbik7XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHVwbG9hZC5zZXRUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5KSB7XG4gICAgICB1cGxvYWQuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdXBsb2FkLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9yd2FyZEVycm9ycykge1xuICAgICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay1hcGlrZXknLCB0aGlzLnNlc3Npb24uYXBpa2V5KTtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucywgZGV0YWlsczogZS5kZXRhaWxzIH0pO1xuICAgICAgICAgIGUubWVzc2FnZSA9IGBGUy0ke2UubWVzc2FnZX1gO1xuXG4gICAgICAgICAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC51cGxvYWQoZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbZmlsZV0sIHsgb25SZXRyeSB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbe2ZpbGUsIG5hbWV9XSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlW119ICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nIChiYXNlNjQpXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICBtdWx0aXVwbG9hZChmaWxlOiBJbnB1dEZpbGVbXSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdmaWxlc3RhY2stYXBpa2V5JywgdGhpcy5zZXNzaW9uLmFwaWtleSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoZS5kZXRhaWxzKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zIH0pO1xuICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUVILCtDQUE2QztBQUM3Qyx3Q0FBMEM7QUFDMUMsb0NBQTBDO0FBQzFDLHdEQUFzRDtBQUN0RCxtQ0FBb0c7QUFDcEcsNkNBQThEO0FBQzlELHFDQUF1QztBQUN2QywrQkFBaUM7QUFDakMsdUNBQWdHO0FBQ2hHLHlDQUF3RDtBQUN4RCxxQ0FBMEM7QUFDMUMsMkNBQTZFO0FBSTdFLG1DQUFpRTtBQUVqRSwwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztBQTZDN0U7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0g7SUFBNEIsa0NBQVk7SUFpQnRDLGdCQUFZLE1BQWMsRUFBVSxPQUF1QjtRQUEzRCxZQUNFLGlCQUFPLFNBc0JSO1FBdkJtQyxhQUFPLEdBQVAsT0FBTyxDQUFnQjtRQVpuRCxtQkFBYSxHQUFZLElBQUksQ0FBQztRQWVwQyx3QkFBd0I7UUFDeEIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNwQyxLQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7U0FDN0U7UUFDTyxJQUFBLDJCQUFJLENBQVk7UUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLE1BQU0sUUFBQSxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7UUFFaEMsSUFBSSxPQUFPLEVBQUU7WUFDSCxJQUFBLHFCQUFLLEVBQUUsMkJBQVEsQ0FBYTtZQUVwQyxLQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLEtBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7UUFFRCxLQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxtQkFBUSxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksbUJBQVcsQ0FBQyxLQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDOztJQUN0RCxDQUFDO0lBM0JELHNCQUFJLHlCQUFLO1FBTlQ7Ozs7O1dBS0c7YUFDSDtZQUNFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzs7O09BQUE7SUEyQkQ7Ozs7T0FJRztJQUNILHlCQUFRLEdBQVIsVUFBUyxNQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNEJBQVcsR0FBWCxVQUFZLFFBQWtCO1FBQzVCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN4RCxNQUFNLElBQUksZ0NBQWMsQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1NBQ3hGO1FBRUQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx5QkFBUSxHQUFSLFVBQVMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHVCQUFNLEdBQU4sVUFBTyxJQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gseUJBQVEsR0FBUixVQUFTLE1BQWMsRUFBRSxPQUF5QixFQUFFLFFBQW1CO1FBQ3JFLDBCQUEwQjtRQUMxQixPQUFPLGVBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsdUJBQU0sR0FBTixVQUFPLE9BQXVCO1FBQzVCLDBCQUEwQjtRQUMxQixPQUFPLGVBQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCx3QkFBTyxHQUFQLFVBQVEsTUFBYyxFQUFFLE9BQXdCO1FBQzlDLDBCQUEwQjtRQUMxQixPQUFPLGlCQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNILHVCQUFNLEdBQU4sVUFBTyxNQUFjLEVBQUUsUUFBbUI7UUFDeEMsMEJBQTBCO1FBQzFCLE9BQU8sYUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsK0JBQWMsR0FBZCxVQUFlLE1BQWMsRUFBRSxRQUFtQjtRQUNoRCwwQkFBMEI7UUFDMUIsT0FBTyxhQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gseUJBQVEsR0FBUixVQUFTLEdBQVcsRUFBRSxXQUF5QixFQUFFLEtBQVcsRUFBRSxRQUFtQixFQUFFLFVBQXVCLEVBQUUsT0FBaUMsRUFBRSxXQUFzQjtRQUNuSyxPQUFPLGdCQUFRLENBQUM7WUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsR0FBRyxLQUFBO1lBQ0gsV0FBVyxhQUFBO1lBQ1gsS0FBSyxPQUFBO1lBQ0wsUUFBUSxVQUFBO1lBQ1IsVUFBVSxZQUFBO1lBQ1YsT0FBTyxTQUFBO1lBQ1AsV0FBVyxhQUFBO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNILHlCQUFRLEdBQVIsVUFBUyxNQUFjLEVBQUUsT0FBeUIsRUFBRSxRQUFtQjtRQUNyRSwwQkFBMEI7UUFDMUIsT0FBTyxlQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILHlCQUFRLEdBQVIsVUFBUyxNQUFjLEVBQUUsUUFBbUI7UUFDMUMsMEJBQTBCO1FBQzFCLE9BQU8sZUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQ0c7SUFDSCwwQkFBUyxHQUFULFVBQVUsR0FBc0IsRUFBRSxPQUF5QixFQUFFLEdBQW9CO1FBQXBCLG9CQUFBLEVBQUEsV0FBb0I7UUFDL0UsMEJBQTBCO1FBQzFCLE9BQU8scUJBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BK0JHO0lBQ0gsdUJBQU0sR0FBTixVQUFPLElBQWUsRUFBRSxPQUF1QixFQUFFLFlBQWlDLEVBQUUsS0FBVyxFQUFFLFFBQW1CO1FBQXBILGlCQStCQztRQTlCQyxJQUFJLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQXpCLENBQXlCLENBQUMsQ0FBQztRQUNwRCwwQkFBMEI7UUFDMUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQSxDQUFDO1lBQ2xCLElBQUksS0FBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7b0JBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2xELEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksY0FBQSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDOUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxRQUFNLENBQUMsQ0FBQyxPQUFTLENBQUM7b0JBRTlCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQStCRztJQUNILDRCQUFXLEdBQVgsVUFBWSxJQUFpQixFQUFFLE9BQXVCLEVBQUUsWUFBaUMsRUFBRSxLQUFXLEVBQUUsUUFBbUI7UUFBM0gsaUJBNkJDO1FBNUJDLElBQUksTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoQyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7UUFFRCxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUI7UUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBekIsQ0FBeUIsQ0FBQyxDQUFDO1FBQ3BELDBCQUEwQjtRQUMxQixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFBLENBQUM7WUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7Z0JBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLGNBQUEsRUFBRSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0E5YkEsQUE4YkMsQ0E5YjJCLDRCQUFZLEdBOGJ2QztBQTliWSx3QkFBTSIsImZpbGUiOiJsaWIvY2xpZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudGVtaXR0ZXIzJztcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L21pbmltYWwnO1xuaW1wb3J0IHsgY29uZmlnLCBIb3N0cyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IG1ldGFkYXRhLCBNZXRhZGF0YU9wdGlvbnMsIHJlbW92ZSwgcmV0cmlldmUsIFJldHJpZXZlT3B0aW9ucywgZG93bmxvYWQgfSBmcm9tICcuL2FwaS9maWxlJztcbmltcG9ydCB7IHRyYW5zZm9ybSwgVHJhbnNmb3JtT3B0aW9ucyB9IGZyb20gJy4vYXBpL3RyYW5zZm9ybSc7XG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vYXBpL3N0b3JlJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVXBsb2FkLCBJbnB1dEZpbGUsIFVwbG9hZE9wdGlvbnMsIFN0b3JlVXBsb2FkT3B0aW9ucywgVXBsb2FkVGFncyB9IGZyb20gJy4vYXBpL3VwbG9hZCc7XG5pbXBvcnQgeyBwcmV2aWV3LCBQcmV2aWV3T3B0aW9ucyB9IGZyb20gJy4vYXBpL3ByZXZpZXcnO1xuaW1wb3J0IHsgQ2xvdWRDbGllbnQgfSBmcm9tICcuL2FwaS9jbG91ZCc7XG5pbXBvcnQgeyBQcmVmZXRjaCwgUHJlZmV0Y2hSZXNwb25zZSwgUHJlZmV0Y2hPcHRpb25zIH0gZnJvbSAnLi9hcGkvcHJlZmV0Y2gnO1xuaW1wb3J0IHsgRnNSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdC90eXBlcyc7XG5pbXBvcnQgeyBTdG9yZVBhcmFtcyB9IGZyb20gJy4vZmlsZWxpbmsnO1xuXG5pbXBvcnQgeyBwaWNrZXIsIFBpY2tlckluc3RhbmNlLCBQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi9waWNrZXInO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuU2VudHJ5LmFkZEJyZWFkY3J1bWIoeyBjYXRlZ29yeTogJ3NkaycsIG1lc3NhZ2U6ICdmaWxlc3RhY2stanMtc2RrIHNjb3BlJyB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgYXBpa2V5OiBzdHJpbmc7XG4gIHVybHM6IEhvc3RzO1xuICBjbmFtZT86IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xuICBzaWduYXR1cmU/OiBzdHJpbmc7XG4gIHByZWZldGNoPzogUHJlZmV0Y2hSZXNwb25zZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eSB7XG4gIHBvbGljeTogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGllbnRPcHRpb25zIHtcbiAgW29wdGlvbjogc3RyaW5nXTogYW55O1xuICAvKipcbiAgICogU2VjdXJpdHkgb2JqZWN0IHdpdGggcG9saWN5IGFuZCBzaWduYXR1cmUga2V5cy5cbiAgICogQ2FuIGJlIHVzZWQgdG8gbGltaXQgY2xpZW50IGNhcGFiaWxpdGllcyBhbmQgcHJvdGVjdCBwdWJsaWMgVVJMcy5cbiAgICogSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHNlcnZlci1zaWRlIHBvbGljeSBhbmQgc2lnbmF0dXJlIGdlbmVyYXRpb24uXG4gICAqIFJlYWQgYWJvdXQgW3NlY3VyaXR5IHBvbGljaWVzXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvY29uY2VwdHMvc2VjdXJpdHkpLlxuICAgKi9cbiAgc2VjdXJpdHk/OiBTZWN1cml0eTtcbiAgLyoqXG4gICAqIERvbWFpbiB0byB1c2UgZm9yIGFsbCBVUkxzLiBfX1JlcXVpcmVzIHRoZSBjdXN0b20gQ05BTUUgYWRkb25fXy5cbiAgICogSWYgdGhpcyBpcyBlbmFibGVkIHRoZW4geW91IG11c3QgYWxzbyBzZXQgdXAgeW91ciBvd24gT0F1dGggYXBwbGljYXRpb25zXG4gICAqIGZvciBlYWNoIGNsb3VkIHNvdXJjZSB5b3Ugd2lzaCB0byB1c2UgaW4gdGhlIHBpY2tlci5cbiAgICovXG4gIGNuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlL2Rpc2FibGUgY2FjaGluZyBvZiB0aGUgY2xvdWQgc2Vzc2lvbiB0b2tlbi4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdXNlcnMgd2lsbCBiZSByZW1lbWJlcmVkIG9uIHlvdXIgZG9tYWluIHdoZW4gY2FsbGluZyB0aGUgY2xvdWQgQVBJIGZyb20gdGhlIGJyb3dzZXIuXG4gICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRva2VucyBzdG9yZWQgaW4gbG9jYWxTdG9yYWdlIGFyZSBhY2Nlc3NpYmxlIGJ5IG90aGVyIHNjcmlwdHMgb24gdGhlIHNhbWUgZG9tYWluLlxuICAgKi9cbiAgc2Vzc2lvbkNhY2hlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvcndhcmRpbmcgZXJyb3IgbG9ncyB0byBzZW50cnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZvcndhcmRFcnJvcnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBGaWxlc3RhY2sgY2xpZW50LCB0aGUgZW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgbWV0aG9kcy4gRW5jYXBzdWxhdGVzIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gKlxuICogIyMjIEV4YW1wbGVcbiAqIGBgYGpzXG4gKiAvLyBFUyBtb2R1bGVcbiAqIGltcG9ydCAqIGFzIGZpbGVzdGFjayBmcm9tICdmaWxlc3RhY2stanMnO1xuICogY29uc3QgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoJ2FwaWtleScpO1xuICogYGBgXG4gKlxuICogYGBganNcbiAqIC8vIFVNRCBtb2R1bGUgaW4gYnJvd3NlclxuICogPHNjcmlwdCBzcmM9XCJodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL2ZpbGVzdGFjay1qcy8zLngueC9maWxlc3RhY2subWluLmpzXCI+PC9zY3JpcHQ+XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uO1xuICBwcml2YXRlIGNsb3VkOiBDbG91ZENsaWVudDtcbiAgcHJpdmF0ZSBwcmVmZXRjaEluc3RhbmNlOiBQcmVmZXRjaDtcblxuICBwcml2YXRlIGZvcndhcmRFcnJvcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZpbGVzdGFjayB1dGlsc1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgZ2V0IHV0aWxzKCkge1xuICAgIHJldHVybiBVdGlscztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFwaWtleTogc3RyaW5nLCBwcml2YXRlIG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZm9yd2FyZEVycm9ycykge1xuICAgICAgdGhpcy5mb3J3YXJkRXJyb3JzID0gb3B0aW9ucy5mb3J3YXJkRXJyb3JzO1xuICAgIH1cblxuICAgIGlmICghYXBpa2V5IHx8IHR5cGVvZiBhcGlrZXkgIT09ICdzdHJpbmcnIHx8IGFwaWtleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmxzIH0gPSBjb25maWc7XG4gICAgdGhpcy5zZXNzaW9uID0geyBhcGlrZXksIHVybHMgfTtcblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBjb25zdCB7IGNuYW1lLCBzZWN1cml0eSB9ID0gb3B0aW9ucztcblxuICAgICAgdGhpcy5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgICB0aGlzLnNldENuYW1lKGNuYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnByZWZldGNoSW5zdGFuY2UgPSBuZXcgUHJlZmV0Y2godGhpcy5zZXNzaW9uKTtcbiAgICB0aGlzLmNsb3VkID0gbmV3IENsb3VkQ2xpZW50KHRoaXMuc2Vzc2lvbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBiYXNpYyBwcmVmZXRjaCByZXF1ZXN0IHRvIGNoZWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHByZWZldGNoKHBhcmFtczogUHJlZmV0Y2hPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZmV0Y2hJbnN0YW5jZS5nZXRDb25maWcocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2VjdXJpdHkgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldFNlY3VyaXR5KHNlY3VyaXR5OiBTZWN1cml0eSkge1xuICAgIGlmIChzZWN1cml0eSAmJiAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkge1xuICAgICAgdGhpcy5zZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5LnBvbGljeTtcbiAgICAgIHRoaXMuc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eS5zaWduYXR1cmU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gY25hbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNuYW1lXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldENuYW1lKGNuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNuYW1lIHx8IGNuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2Vzc2lvbi5jbmFtZSA9IGNuYW1lO1xuICAgIHRoaXMuc2Vzc2lvbi51cmxzID0gVXRpbHMucmVzb2x2ZUhvc3QodGhpcy5zZXNzaW9uLnVybHMsIGNuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY3VycmVudCBjbG91ZCBzZXNzaW9ucyBpbiB0aGUgcGlja2VyLlxuICAgKiBPcHRpb25hbGx5IHBhc3MgYSBjbG91ZCBzb3VyY2UgbmFtZSB0byBvbmx5IGxvZyBvdXQgb2YgdGhhdCBjbG91ZCBzb3VyY2UuXG4gICAqIFRoaXMgZXNzZW50aWFsbHkgY2xlYXJzIHRoZSBPQXV0aCBhdXRob3JpemF0aW9uIGNvZGVzIGZyb20gdGhlIEZpbGVzdGFjayBzZXNzaW9uLlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBjbG91ZCBzb3VyY2UgbmFtZS5cbiAgICovXG4gIGxvZ291dChuYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWQubG9nb3V0KG5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBkZXRhaWxlZCBkYXRhIG9mIHN0b3JlZCBmaWxlcy5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLm1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gTWV0YWRhdGFdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNtZXRhZGF0YSkuXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgTWV0YWRhdGEgZmllbGRzIHRvIGVuYWJsZSBvbiByZXNwb25zZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgbWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBNZXRhZGF0YU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBtZXRhZGF0YSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBuZXcgcGlja2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcGlja2VyKG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2Uge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHBpY2tlcih0aGlzLCBvcHRpb25zKTtcbiAgfVxuICAvKipcbiAgICogVXNlZCBmb3Igdmlld2luZyBmaWxlcyB2aWEgRmlsZXN0YWNrIGhhbmRsZXMgb3Igc3RvcmFnZSBhbGlhc2VzLCBfX3JlcXVpcmVzIERvY3VtZW50IFZpZXdlciBhZGRvbiB0byB5b3VyIEZpbGVzdGFjayBhcHBsaWNhdGlvbl9fLlxuICAgKiBPcGVucyBkb2N1bWVudCB2aWV3ZXIgaW4gbmV3IHdpbmRvdyBpZiBpZCBvcHRpb24gaXMgbm90IHByb3ZpZGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8ZGl2IGlkPVwicHJldmlld1wiPjwvZGl2PlxuICAgKlxuICAgKiBjbGllbnQucHJldmlldygnRENMNUs0NkZTM09JeGI1aXVLYnknLCB7IGlkOiAncHJldmlldycgfSk7XG4gICAqIGBgYFxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIFByZXZpZXcgb3B0aW9uc1xuICAgKi9cbiAgcHJldmlldyhoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFByZXZpZXdPcHRpb25zKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcHJldmlldyh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGZpbGUgZnJvbSBzdG9yYWdlIGFuZCB0aGUgRmlsZXN0YWNrIHN5c3RlbS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZShoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8YW55PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmVtb3ZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBmYWxzZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlICoqb25seSoqIGZyb20gdGhlIEZpbGVzdGFjayBzeXN0ZW0uIFRoZSBmaWxlIHJlbWFpbnMgaW4gc3RvcmFnZS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlTWV0YWRhdGEoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEZWxldGVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkZWxldGUpXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVtb3ZlTWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgdHJ1ZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBTdG9yZSBhIGZpbGUgZnJvbSBpdHMgVVJMLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAuc3RvcmVVUkwoJ2h0dHBzOi8vZDF3dHFhZmZhYWo2M3ouY2xvdWRmcm9udC5uZXQvaW1hZ2VzL05ZXzE5OV9FX29mX0hhbW1lcnRvd25fMjAxNC5qcGcnKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gU3RvcmVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNzdG9yZSlcbiAgICogQHBhcmFtIHVybCAgICAgICBWYWxpZCBVUkwgdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIENvbmZpZ3VyZSBmaWxlIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgT3B0aW9uYWwgY29udHJvbCB0b2tlbiB0byBjYWxsIC5jYW5jZWwoKVxuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAcGFyYW0gdXBsb2FkVGFncyBPcHRpb25hbCB0YWdzIHZpc2libGUgaW4gd2ViaG9va3MuXG4gICAqIEBwYXJhbSBoZWFkZXJzICAgIE9wdGlvbmFsIGhlYWRlcnMgdG8gc2VuZFxuICAgKiBAcGFyYW0gd29ya2Zsb3dJZHMgICAgT3B0aW9uYWwgd29ya2Zsb3dJZHMgdG8gc2VuZFxuICAgKi9cbiAgc3RvcmVVUkwodXJsOiBzdHJpbmcsIHN0b3JlUGFyYW1zPzogU3RvcmVQYXJhbXMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5LCB1cGxvYWRUYWdzPzogVXBsb2FkVGFncywgaGVhZGVycz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCB3b3JrZmxvd0lkcz86IHN0cmluZ1tdKTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgdXJsLFxuICAgICAgc3RvcmVQYXJhbXMsXG4gICAgICB0b2tlbixcbiAgICAgIHNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICB3b3JrZmxvd0lkcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2Nlc3MgZmlsZXMgdmlhIHRoZWlyIEZpbGVzdGFjayBoYW5kbGVzLlxuICAgKlxuICAgKiBJZiBoZWFkIG9wdGlvbiBpcyBwcm92aWRlZCAtIHJlcXVlc3QgaGVhZGVycyBhcmUgcmV0dXJuZWQgaW4gcHJvbWlzZVxuICAgKiBJZiBtZXRhZGF0YSBvcHRpb24gaXMgcHJvdmlkZWQgLSBtZXRhZGF0YSBvYmplY3QgaXMgcmV0dXJuZWQgaW4gcHJvbWlzZVxuICAgKiBPdGhlcndpc2UgZmlsZSBibG9iIGlzIHJldHVybmVkXG4gICAqIE1ldGFkYXRhIGFuZCBoZWFkIG9wdGlvbnMgY2Fubm90IGJlIG1peGVkXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudC5yZXRyaWV2ZSgnZmlsZUhhbmRsZScsIHtcbiAgICogIG1ldGFkYXRhOiB0cnVlLFxuICAgKiB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgKiAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgKiB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICBjb25zb2xlLmVycm9yKGVycik7XG4gICAqIH0pXG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERvd25sb2FkXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZG93bmxvYWQpXG4gICAqIEBkZXByZWNhdGVkIHVzZSBtZXRhZGF0YSBvciBkb3dubG9hZCBtZXRob2RzIGluc3RlYWRcbiAgICogQHBhcmFtIGhhbmRsZSAgICBWYWxpZCBmaWxlIGhhbmRsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIFJldHJpZXZlT3B0aW9uc1xuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAdGhyb3dzICAgICAgICAgIEVycm9yXG4gICAqL1xuICByZXRyaWV2ZShoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFJldHJpZXZlT3B0aW9ucywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8T2JqZWN0IHwgQmxvYj4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJldHJpZXZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zLCBzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgZmlsZSBieSBoYW5kbGVcbiAgICpcbiAgICpcbiAgICogIyMjIEJyb3dzZXIgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnQuZG93bmxvYWQoJ2ZpbGVIYW5kbGUnKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgKiBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICogaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzLmRhdGEpXG4gICAqIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTtcbiAgICogfSkuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgKiB9KVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEb3dubG9hZF0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2Rvd25sb2FkKVxuICAgKiBAcGFyYW0gaGFuZGxlICAgIFZhbGlkIGZpbGUgaGFuZGxlXG4gICAqIEB0aHJvd3MgICAgICAgICAgRXJyb3JcbiAgICovXG4gIGRvd25sb2FkKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxGc1Jlc3BvbnNlPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gZG93bmxvYWQodGhpcy5zZXNzaW9uLCBoYW5kbGUsIHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcmZhY2UgdG8gdGhlIEZpbGVzdGFjayBbUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZykuXG4gICAqIENvbnZlcnQgYSBVUkwsIGhhbmRsZSwgb3Igc3RvcmFnZSBhbGlhcyB0byBhbm90aGVyIFVSTCB3aGljaCBsaW5rcyB0byB0aGUgdHJhbnNmb3JtZWQgZmlsZS5cbiAgICogWW91IGNhbiBvcHRpb25hbGx5IHN0b3JlIHRoZSByZXR1cm5lZCBVUkwgd2l0aCBjbGllbnQuc3RvcmVVUkwuXG4gICAqXG4gICAqIFRyYW5zZm9ybSBwYXJhbXMgY2FuIGJlIHByb3ZpZGVkIGluIGNhbWVsQ2FzZSBvciBzbmFrZUNhc2Ugc3R5bGUgaWU6IHBhcnRpYWxfcGl4ZWxhdGUgb3IgcGFydGlhbFBpeGVsYXRlXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRyYW5zZm9ybWVkVXJsID0gY2xpZW50LnRyYW5zZm9ybSh1cmwsIHtcbiAgICogICBjcm9wOiB7XG4gICAqICAgICBkaW06IFt4LCB5LCB3aWR0aCwgaGVpZ2h0XSxcbiAgICogICB9LFxuICAgKiAgIHZpZ25ldHRlOiB7XG4gICAqICAgICBibHVybW9kZTogJ2dhdXNzaWFuJyxcbiAgICogICAgIGFtb3VudDogNTAsXG4gICAqICAgfSxcbiAgICogICBmbGlwOiB0cnVlLFxuICAgKiAgIHBhcnRpYWxfcGl4ZWxhdGU6IHtcbiAgICogICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICAgKiAgIH0sXG4gICAqIH07XG4gICAqXG4gICAqIC8vIG9wdGlvbmFsbHkgc3RvcmUgdGhlIG5ldyBVUkxcbiAgICogY2xpZW50LnN0b3JlVVJMKHRyYW5zZm9ybWVkVXJsKS50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGVzdGFjayBQcm9jZXNzaW5nIEFQSV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9wcm9jZXNzaW5nKVxuICAgKiBAcGFyYW0gdXJsICAgICBTaW5nbGUgb3IgbXVsdGlwbGUgdmFsaWQgVVJMcyAoaHR0cChzKTovLyksIGZpbGUgaGFuZGxlcywgb3Igc3RvcmFnZSBhbGlhc2VzIChzcmM6Ly8pIHRvIGFuIGltYWdlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUcmFuc2Zvcm1hdGlvbnMgYXJlIGFwcGxpZWQgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBieSB0aGlzIG9iamVjdC5cbiAgICogQHBhcmFtIGI2NCAgICAgVXNlIG5ldyBtb3JlIHNhZmUgZm9ybWF0IGZvciBnZW5lcmF0aW5nIHRyYW5zZm9ybXMgdXJsIChkZWZhdWx0PWZhbHNlKSBOb3RlOiBJZiB0aGVyZSB3aWxsIGJlIGFueSBpc3N1ZXMgd2l0aCB1cmwgcGxlYXNlIHRlc3QgaXQgd2l0aCBlbmFibGVkIGI2NCBzdXBwb3J0XG4gICAqIEByZXR1cm5zICAgICAgIEEgbmV3IFVSTCB0aGF0IHBvaW50cyB0byB0aGUgdHJhbnNmb3JtZWQgcmVzb3VyY2UuXG4gICAqL1xuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogVHJhbnNmb3JtT3B0aW9ucywgYjY0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0cmFuc2Zvcm0odGhpcy5zZXNzaW9uLCB1cmwsIG9wdGlvbnMsIGI2NCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoZmlsZSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoe2ZpbGUsIG5hbWV9LCB7IG9uUmV0cnkgfSwgeyBmaWxlbmFtZTogJ2Zvb2Jhci5qcGcnIH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlfSAgICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIHVwbG9hZChmaWxlOiBJbnB1dEZpbGUsIG9wdGlvbnM/OiBVcGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnM/OiBTdG9yZVVwbG9hZE9wdGlvbnMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgbGV0IHVwbG9hZCA9IG5ldyBVcGxvYWQob3B0aW9ucywgc3RvcmVPcHRpb25zKTtcbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICB1cGxvYWQub24oJ3N0YXJ0JywgKCkgPT4gdGhpcy5lbWl0KCd1cGxvYWQuc3RhcnQnKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3J3YXJkRXJyb3JzKSB7XG4gICAgICAgIFNlbnRyeS53aXRoU2NvcGUoc2NvcGUgPT4ge1xuICAgICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLWFwaWtleScsIHRoaXMuc2Vzc2lvbi5hcGlrZXkpO1xuICAgICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhKCdmaWxlc3RhY2stb3B0aW9ucycsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zLCBkZXRhaWxzOiBlLmRldGFpbHMgfSk7XG4gICAgICAgICAgZS5tZXNzYWdlID0gYEZTLSR7ZS5tZXNzYWdlfWA7XG5cbiAgICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdCgndXBsb2FkLmVycm9yJywgZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBsb2FkLnVwbG9hZChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBtdWx0aS1wYXJ0IHVwbG9hZCBmbG93LiBVc2UgdGhpcyBmb3IgRmlsZXN0YWNrIENJTiBhbmQgRklJIHVwbG9hZHMuXG4gICAqXG4gICAqIEluIE5vZGUgcnVudGltZXMgdGhlIGZpbGUgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGUgcGF0aC5cbiAgICogVXBsb2FkaW5nIGZyb20gYSBOb2RlIGJ1ZmZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0b2tlbiA9IHt9O1xuICAgKiBjb25zdCBvblJldHJ5ID0gKG9iaikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZXRyeWluZyAke29iai5sb2NhdGlvbn0gZm9yICR7b2JqLmZpbGVuYW1lfS4gQXR0ZW1wdCAke29iai5hdHRlbXB0fSBvZiAxMC5gKTtcbiAgICogfTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFtmaWxlXSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFt7ZmlsZSwgbmFtZX1dLCB7IG9uUmV0cnkgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiB0b2tlbi5wYXVzZSgpOyAgLy8gUGF1c2UgZmxvd1xuICAgKiB0b2tlbi5yZXN1bWUoKTsgLy8gUmVzdW1lIGZsb3dcbiAgICogdG9rZW4uY2FuY2VsKCk7IC8vIENhbmNlbCBmbG93IChyZWplY3RzKVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtJbnB1dEZpbGVbXX0gIGZpbGUgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBbRmlsZSB8IEJsb2IgfCBCdWZmZXIgfCBzdHJpbmcgKGJhc2U2NCldXG4gICAqIEBwYXJhbSB1cGxvYWRPcHRpb25zICBVcGxvYWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIG11bHRpdXBsb2FkKGZpbGU6IElucHV0RmlsZVtdLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG5cbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICB1cGxvYWQub24oJ3N0YXJ0JywgKCkgPT4gdGhpcy5lbWl0KCd1cGxvYWQuc3RhcnQnKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdmaWxlc3RhY2stYXBpa2V5JywgdGhpcy5zZXNzaW9uLmFwaWtleSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoZS5kZXRhaWxzKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zIH0pO1xuICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19 |
@@ -144,2 +144,9 @@ import { Client } from './client'; | ||
} | ||
export interface PickerFileWithTokenCallback { | ||
(file: PickerFileMetadata, token?: { | ||
pause?: () => void; | ||
resume?: () => void; | ||
cancel?: () => void; | ||
}): void | Promise<any>; | ||
} | ||
export interface PickerFileCancelCallback { | ||
@@ -343,3 +350,3 @@ (file: PickerFileMetadata): void; | ||
* - gmail | ||
* - picasa | ||
* - googlephotos | ||
* - onedrive | ||
@@ -560,3 +567,3 @@ * - onedriveforbusiness | ||
*/ | ||
onFileUploadStarted?: PickerFileCallback; | ||
onFileUploadStarted?: PickerFileWithTokenCallback; | ||
/** | ||
@@ -625,2 +632,13 @@ * Called when a file is done uploading. | ||
useSentryBreadcrumbs?: boolean; | ||
/** | ||
* Specify which Picker instance should respond to paste event. | ||
* By default only hovered instance responds to event. | ||
* @param {boolean = false} pasteToFirstInViewPort If none instance is hovered take first picker instance fully visible in viewport | ||
* @param {boolean = false} pasteToFirstInstance If none instance is hovered take first picker instance that is initialized | ||
* @pasteToFirstInViewPort is checked first | ||
*/ | ||
pasteMode?: { | ||
pasteToFirstInViewPort?: boolean; | ||
pasteToFirstInstance?: boolean; | ||
}; | ||
} | ||
@@ -627,0 +645,0 @@ export interface PickerCropOptions { |
@@ -140,2 +140,2 @@ "use strict"; | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUVILDRDQUFrRTtBQUNsRSx3REFBMEU7QUFHMUUsc0NBQStEO0FBK0QvRCxJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsNEJBQVMsQ0FBQTtJQUNULDhCQUFVLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFHMUI7QUE0R0QsSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLHdDQUFtQixDQUFBO0lBQ25CLDBDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUk1QjtBQWtpQkQ7Ozs7O0dBS0c7QUFDSDtJQUdFLHNCQUFZLE1BQWMsRUFBRSxPQUF1QjtRQUNqRCxJQUFNLFdBQVcsR0FBRyxxQkFBWSxDQUFDLDJCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUQsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUM3QixNQUFNLElBQUksZ0NBQWMsQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLG9DQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RHO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUssMkJBQUksR0FBVjs7Ozs7NEJBQ2lCLHFCQUFNLElBQUksQ0FBQyxZQUFZLEVBQUE7O3dCQUFoQyxNQUFNLEdBQUcsU0FBdUI7d0JBQ3RDLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7d0JBQW5CLFNBQW1CLENBQUM7Ozs7O0tBQ3JCO0lBRUssMkJBQUksR0FBVixVQUFXLEtBQVk7Ozs7OzRCQUNOLHFCQUFNLElBQUksQ0FBQyxZQUFZLEVBQUE7O3dCQUFoQyxNQUFNLEdBQUcsU0FBdUI7d0JBQ3RDLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUE7O3dCQUF4QixTQUF3QixDQUFDOzs7OztLQUMxQjtJQUVLLDRCQUFLLEdBQVg7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUE7O3dCQUFwQixTQUFvQixDQUFDOzs7OztLQUN0QjtJQUVLLDZCQUFNLEdBQVo7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUE7O3dCQUFyQixTQUFxQixDQUFDOzs7OztLQUN2QjtJQUVhLGlDQUFVLEdBQXhCLFVBQXlCLE1BQWMsRUFBRSxPQUF1Qjs7Ozs7O3dCQUN4QixHQUFHLEdBQVMsTUFBTSx1QkFBZixDQUFnQjt3QkFDMUMscUJBQU0sbUJBQVUsQ0FBQywwQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0F0Q0EsQUFzQ0MsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNVLFFBQUEsTUFBTSxHQUFHLFVBQUMsTUFBYyxFQUFFLE9BQXVCO0lBQzVELE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvcGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBsb2FkTW9kdWxlLCBGSUxFU1RBQ0tfTU9EVUxFUyB9IGZyb20gJ0BmaWxlc3RhY2svbG9hZGVyJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQgeyBGU1Byb2dyZXNzRXZlbnQsIFVwbG9hZE9wdGlvbnMsIFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgUGlja2VyUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckluc3RhbmNlIHtcbiAgLyoqXG4gICAqIENsb3NlIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIGNsb3NlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDYW5jZWwgcGlja2VyIHVwbG9hZHMuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjYW5jZWw6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wZW4gcGlja2VyLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgb3BlbjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgdG8gb3BlbiBpbiB0aGUgcGlja2VyIGZvciBjcm9wcGluZ1xuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8aW5wdXQgaWQ9XCJmaWxlU2VsZWN0XCIgdHlwZT1cImZpbGVcIj5cbiAgICpcbiAgICogY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlU2VsZWN0Jyk7XG4gICAqIGNvbnN0IHBpY2tlciA9IGNsaWVudC5waWNrZXIoe1xuICAgKiAgIG9uVXBsb2FkRG9uZTogcmVzID0+IGNvbnNvbGUubG9nKHJlcyksXG4gICAqIH0pO1xuICAgKlxuICAgKiBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAqICAgcGlja2VyLmNyb3AoZS50YXJnZXQuZmlsZXMpO1xuICAgKiB9KTtcbiAgICpcbiAgICogLy8gT3IgcGFzcyBhbiBhcnJheSBvZiBVUkwgc3RyaW5nc1xuICAgKiBjb25zdCB1cmxzID0gW1xuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9mb3hfaW5fZm9yZXN0MS5qcGcnLFxuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9zYWlsLmpwZycsXG4gICAqIF07XG4gICAqIHBpY2tlci5jcm9wKHVybHMpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyb3A6IChmaWxlczogYW55W10pID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcHBlZERhdGEge1xuICBjcm9wQXJlYToge1xuICAgIC8qKlxuICAgICAqIFt4LCB5XVxuICAgICAqL1xuICAgIHBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICAgIHNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIH07XG4gICAgLyoqXG4gICAgICogW3dpZHRoLCBoZWlnaHRdXG4gICAgICovXG4gIG9yaWdpbmFsSW1hZ2VTaXplOiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgZW51bSBSb3RhdGVEaXJlY3Rpb24ge1xuICBjdyA9ICdDVycsXG4gIGNjdz0gJ0NDVycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUm90YXRlZERhdGEge1xuICAvKipcbiAgICogQW1vdW50IHJvdGF0ZWQgaW4gZGVncmVlcy5cbiAgICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBDYW4gYmUgQ1cgb3IgQ0NXIChjbG9ja3dpc2UgLyBjb3VudGVyLWNsb2Nrd2lzZSlcbiAgICovXG4gIGRpcmVjdGlvbjogUm90YXRlRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY2xvdWQgY29udGFpbmVyIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGFuZCBzaXplIGluZm9ybWF0aW9uIGZvciBjcm9wcGVkIGltYWdlcy5cbiAgICovXG4gIGNyb3BwZWQ/OiBQaWNrZXJDcm9wcGVkRGF0YTtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRmlsZXN0YWNrIGhhbmRsZSBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBoYW5kbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoYXNoLXByZWZpeGVkIGNsb3VkIHN0b3JhZ2UgcGF0aC5cbiAgICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogUHJvcGVydGllcyBvZiB0aGUgbG9jYWwgYmluYXJ5IGZpbGUuIEFsc28gc2VlIHRoZSBwaWNrIG9wdGlvbiBgZXhwb3NlT3JpZ2luYWxGaWxlYCBpZiB5b3Ugd2FudCB0aGUgdW5kZXJseWluZyBgRmlsZWAgb2JqZWN0LlxuICAgKi9cbiAgb3JpZ2luYWxGaWxlPzogb2JqZWN0IHwgRmlsZTtcbiAgLyoqXG4gICAqIFRoZSBvcmlnaW4gb2YgdGhlIGZpbGUsIGUuZy4gL0ZvbGRlci9maWxlLmpwZy5cbiAgICovXG4gIG9yaWdpbmFsUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogRGlyZWN0aW9uIGFuZCB2YWx1ZSBpbmZvcm1hdGlvbiBmb3Igcm90YXRlZCBpbWFnZXMuXG4gICAqL1xuICByb3RhdGVkPzogUGlja2VyUm90YXRlZERhdGE7XG4gIC8qKlxuICAgKiBTaXplIGluIGJ5dGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmcm9tIHdoZXJlIHRoZSBmaWxlIHdhcyBwaWNrZWQuXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZGljYXRlcyBGaWxlc3RhY2sgdHJhbnNpdCBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHV1aWQgZm9yIHRyYWNraW5nIHRoaXMgZmlsZSBpbiBjYWxsYmFja3MuXG4gICAqL1xuICB1cGxvYWRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEZpbGVzdGFjayBDRE4gVVJMIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF1dGhUZXh0T3B0aW9ucyB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICB0b3A/OiBzdHJpbmdbXSxcbiAgICBib3R0b20/OiBzdHJpbmdbXVxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclJlc3BvbnNlIHtcbiAgZmlsZXNVcGxvYWRlZDogUGlja2VyRmlsZU1ldGFkYXRhW107XG4gIGZpbGVzRmFpbGVkOiBQaWNrZXJGaWxlTWV0YWRhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhKTogdm9pZCB8IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEsIGVycm9yOiBFcnJvcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZVByb2dyZXNzQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCBldmVudDogRlNQcm9ncmVzc0V2ZW50KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWRTdGFydGVkQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlclJlc3BvbnNlKTogdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gUGlja2VyRGlzcGxheU1vZGUge1xuICBpbmxpbmUgPSAnaW5saW5lJyxcbiAgb3ZlcmxheSA9ICdvdmVybGF5JyxcbiAgZHJvcFBhbmUgPSAnZHJvcFBhbmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckRyb3BQYW5lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGNyb3AgVUkgZm9yIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBjcm9wRmlsZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IGNvbnRlbnQgaW4gdGhlIGRyb3AgcGFuZS5cbiAgICovXG4gIGN1c3RvbVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBmaWxlIGlucHV0IG9uIGNsaWNrLiBUaGlzIGRvZXMgbm90IGRpc2FibGUgdGhlIGBvbkNsaWNrYCBjYWxsYmFjay5cbiAgICovXG4gIGRpc2FibGVDbGljaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGZ1bGwtcGFnZSBkcm9wIHpvbmUgb3ZlcmxheS5cbiAgICovXG4gIG92ZXJsYXk/OiBib29sZWFuO1xuICBvbkRyYWdFbnRlcj86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgb25EcmFnTGVhdmU/OiAoKSA9PiB2b2lkO1xuICBvbkRyYWdPdmVyPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICBvbkRyb3A/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBgb25TdWNjZXNzYCBtdXN0IGJlIHVzZWQgaW5zdGVhZCBvZiBgb25VcGxvYWREb25lYC4gVGhlIGRyb3AgcGFuZSB1c2VzIGl0cyBvd24gY2FsbGJhY2tzIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLiBUaGlzIG1pZ2h0IGV2ZW50dWFsbHkgY2hhbmdlLlxuICAgKi9cbiAgb25TdWNjZXNzPzogKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSkgPT4gdm9pZDtcbiAgb25FcnJvcj86IChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pID0+IHZvaWQ7XG4gIG9uUHJvZ3Jlc3M/OiAocGVyY2VudDogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNsaWNrPzogKGV2dDogYW55KSA9PiB2b2lkO1xuICAvKipcbiAgICogVG9nZ2xlIGljb24gZWxlbWVudCBpbiBkcm9wIHBhbmUuXG4gICAqL1xuICBzaG93SWNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdXBsb2FkIHByb2dyZXNzIGRpc3BsYXkuXG4gICAqL1xuICBzaG93UHJvZ3Jlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMb2NhdGlvbiBmb3Igc3RvcmVkIGZpbGUuIE9uZSBvZiAnczMnLCAnZ2NzJywgJ2F6dXJlJywgJ3JhY2tzcGFjZScsIG9yICdkcm9wYm94Jy5cbiAgICovXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmeSBzdG9yYWdlIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCBjb250YWluZXIgcGF0aC4gSW5kaWNhdGUgYSBmb2xkZXIgYnkgYWRkaW5nIGEgdHJhaWxpbmcgc2xhc2guIFdpdGhvdXQgYSB0cmFpbGluZyBzbGFzaCBhbGwgZmlsZXMgd2lsbCBiZSBzdG9yZWQgdG8gdGhlIHNhbWUgb2JqZWN0LlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZnkgUzMgcmVnaW9uLlxuICAgKi9cbiAgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogUzMgY29udGFpbmVyIGFjY2Vzcy4gJ3B1YmxpYycgb3IgJ3ByaXZhdGUnLlxuICAgKi9cbiAgYWNjZXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvd3MgaWRzIHRvIHJ1biBhZnRlciB1cGxvYWRcbiAgICovXG4gIHdvcmtmbG93cz86IHN0cmluZ1tdIHwgV29ya2Zsb3dDb25maWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDdXN0b21UZXh0IHtcbiAgLy8gQWN0aW9uc1xuICBVcGxvYWQ/OiBzdHJpbmc7XG4gICdVcGxvYWQgbW9yZSc/OiBzdHJpbmc7XG4gICdEZXNlbGVjdCBBbGwnPzogc3RyaW5nO1xuICAnVmlldy9FZGl0IFNlbGVjdGVkJz86IHN0cmluZztcbiAgJ1NpZ24gT3V0Jz86IHN0cmluZztcblxuICAvLyBTb3VyY2UgTGFiZWxzXG4gICdNeSBEZXZpY2UnPzogc3RyaW5nO1xuICAnV2ViIFNlYXJjaCc/OiBzdHJpbmc7XG4gICdUYWtlIFBob3RvJz86IHN0cmluZztcbiAgJ0xpbmsgKFVSTCknPzogc3RyaW5nO1xuICAnUmVjb3JkIFZpZGVvJz86IHN0cmluZztcbiAgJ1JlY29yZCBBdWRpbyc/OiBzdHJpbmc7XG5cbiAgLy8gQ3VzdG9tIFNvdXJjZVxuICAnQ3VzdG9tIFNvdXJjZSc/OiBzdHJpbmc7XG5cbiAgLy8gRm9vdGVyIFRleHRcbiAgQWRkPzogc3RyaW5nO1xuICAnbW9yZSBmaWxlJz86IHN0cmluZztcbiAgJ21vcmUgZmlsZXMnPzogc3RyaW5nO1xuXG4gIC8vIENsb3VkXG4gICdDb25uZWN0IHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1NlbGVjdCBGaWxlcyBmcm9tIHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHtwcm92aWRlck5hbWV9Lic/OiBzdHJpbmc7XG4gICdBIG5ldyBwYWdlIHdpbGwgb3BlbiB0byBjb25uZWN0IHlvdXIgYWNjb3VudC4nPzogc3RyaW5nO1xuICAnV2Ugb25seSBleHRyYWN0IGltYWdlcyBhbmQgbmV2ZXIgbW9kaWZ5IG9yIGRlbGV0ZSB0aGVtLic/OiBzdHJpbmc7XG4gICdUbyBkaXNjb25uZWN0IGZyb20ge3Byb3ZpZGVyTmFtZX0gY2xpY2sgXCJTaWduIG91dFwiIGJ1dHRvbiBpbiB0aGUgbWVudS4nPzogc3RyaW5nO1xuICAnU2lnbiBpbiB3aXRoIEdvb2dsZSc/OiBzdHJpbmc7XG4gICdHbyBiYWNrJz86IHN0cmluZztcbiAgJ1RoaXMgZm9sZGVyIGlzIGVtcHR5Lic/OiBzdHJpbmc7XG5cbiAgLy8gU3VtbWFyeVxuICBGaWxlcz86IHN0cmluZztcbiAgSW1hZ2VzPzogc3RyaW5nO1xuICBVcGxvYWRlZD86IHN0cmluZztcbiAgVXBsb2FkaW5nPzogc3RyaW5nO1xuICBDb21wbGV0ZWQ/OiBzdHJpbmc7XG4gIEZpbHRlcj86IHN0cmluZztcbiAgJ0Nyb3BwZWQgSW1hZ2VzJz86IHN0cmluZztcbiAgJ0VkaXRlZCBJbWFnZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0ZWQgRmlsZXMnPzogc3RyaW5nO1xuICAnQ3JvcCBpcyByZXF1aXJlZCBvbiBpbWFnZXMnPzogc3RyaW5nO1xuXG4gIC8vIFRyYW5zZm9ybVxuICBDcm9wPzogc3RyaW5nO1xuICBDaXJjbGU/OiBzdHJpbmc7XG4gIFJvdGF0ZT86IHN0cmluZztcbiAgTWFzaz86IHN0cmluZztcbiAgUmV2ZXJ0Pzogc3RyaW5nO1xuICBFZGl0Pzogc3RyaW5nO1xuICBSZXNldD86IHN0cmluZztcbiAgRG9uZT86IHN0cmluZztcbiAgU2F2ZT86IHN0cmluZztcbiAgTmV4dD86IHN0cmluZztcbiAgJ0VkaXQgSW1hZ2UnPzogc3RyaW5nO1xuICAnVGhpcyBpbWFnZSBjYW5ub3QgYmUgZWRpdGVkJz86IHN0cmluZztcblxuICAvLyBSZXRyeSBtZXNzYWdpbmdcbiAgJ0Nvbm5lY3Rpb24gTG9zdCc/OiBzdHJpbmc7XG4gICdGYWlsZWQgV2hpbGUgVXBsb2FkaW5nJz86IHN0cmluZztcbiAgJ1JldHJ5aW5nIGluJz86IHN0cmluZztcbiAgJ1RyeSBhZ2Fpbic/OiBzdHJpbmc7XG4gICdUcnkgbm93Jz86IHN0cmluZztcblxuICAvLyBMb2NhbCBGaWxlIFNvdXJjZVxuICAnRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnb3IgRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0IEZpbGVzIHRvIFVwbG9hZCc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRnJvbSc/OiBzdHJpbmc7XG4gICdEcm9wIHlvdXIgZmlsZXMgYW55d2hlcmUnPzogc3RyaW5nO1xuXG4gIC8vIElucHV0IHBsYWNlaG9sZGVyc1xuICAnRW50ZXIgYSBVUkwnPzogc3RyaW5nO1xuICAnU2VhcmNoIGltYWdlcyc/OiBzdHJpbmc7XG5cbiAgLy8gV2ViY2FtIFNvdXJjZVxuICAnV2ViY2FtIERpc2FibGVkJz86IHN0cmluZztcbiAgJ1dlYmNhbSBOb3QgU3VwcG9ydGVkJz86IHN0cmluZztcbiAgJ1BsZWFzZSBlbmFibGUgeW91ciB3ZWJjYW0gdG8gdGFrZSBhIHBob3RvLic/OiBzdHJpbmc7XG4gICdZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHdlYmNhbSBmdW5jdGlvbmFsaXR5Lic/OiBzdHJpbmc7XG4gICdXZSBzdWdnZXN0IHVzaW5nIENocm9tZSBvciBGaXJlZm94Lic/OiBzdHJpbmc7XG5cbiAgLy8gRXJyb3IgTm90aWZpY2F0aW9uc1xuICAnRmlsZSB7ZGlzcGxheU5hbWV9IGlzIG5vdCBhbiBhY2NlcHRlZCBmaWxlIHR5cGUuIFRoZSBhY2NlcHRlZCBmaWxlIHR5cGVzIGFyZSB7dHlwZXN9Jz86IHN0cmluZztcbiAgJ0ZpbGUge2Rpc3BsYXlOYW1lfSBpcyB0b28gYmlnLiBUaGUgYWNjZXB0ZWQgZmlsZSBzaXplIGlzIGxlc3MgdGhhbiB7cm91bmRGaWxlU2l6ZX0nPzogc3RyaW5nO1xuICAnT3VyIGZpbGUgdXBsb2FkIGxpbWl0IGlzIHttYXhGaWxlc30ge2ZpbGVzVGV4dH0nPzogc3RyaW5nO1xuICAnTm8gc2VhcmNoIHJlc3VsdHMgZm91bmQgZm9yIFwie3NlYXJjaH1cIic/OiBzdHJpbmc7XG4gICdBbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlck9wdGlvbnMge1xuICAvKipcbiAgICogUmVzdHJpY3QgZmlsZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBpY2tlZC4gRm9ybWF0cyBhY2NlcHRlZDpcbiAgICogIC0gLnBkZiA8LSBhbnkgZmlsZSBleHRlbnNpb25cbiAgICogIC0gaW1hZ2UvanBlZyA8LSBhbnkgbWltZSB0eXBlIGNvbW1vbmx5IGtub3duIGJ5IGJyb3dzZXJzXG4gICAqICAtIGltYWdlLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBpbWFnZXNcbiAgICogIC0gdmlkZW8vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIHZpZGVvIGZpbGVzXG4gICAqICAtIGF1ZGlvLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBhdWRpbyBmaWxlc1xuICAgKiAgLSBhcHBsaWNhdGlvbi8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgYXBwbGljYXRpb24gZmlsZXNcbiAgICogIC0gdGV4dC8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgdGV4dCBmaWxlc1xuICAgKi9cbiAgYWNjZXB0Pzogc3RyaW5nIHwgc3RyaW5nW107XG4gIC8qKlxuICAgKiBDdXN0b20gYWNjZXB0IGNoZWNrIGZ1bmN0aW9uXG4gICAqIGBgYGphdmFzY3JpcHRcbiAgICogYWNjZXB0Rm46IChmaWxlLCBvcHRpb25zKSA9PiB7XG4gICAqICByZXR1cm4gb3B0aW9ucy5taW1lRnJvbU1hZ2ljQnl0ZXMoZmlsZS5vcmlnaW5hbEZpbGUpLnRoZW4oKHJlcykgPT4geyAvLyB3ZSBjYW4gY2hlY2sgbWltZXR5cGUgZnJvbSBtYWdpYyBieXRlc1xuICAgKiAgICAvL2NvbnNvbGUubG9nKG9wdGlvbnMubWltZUZyb21FeHRlbnNpb24oZmlsZS5vcmlnaW5hbEZpbGUubmFtZSkpOyAvLyBvciBjaGVjayBleHRlbnNpb24gZnJvbSBmaWxlc3RhY2sgZXh0ZW5zaW9ucyBkYXRhYmFzZVxuICAgKiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJykgLy8gd2UgY2FuIHRocm93IGV4Y2VwdGlvbiB0byBibG9jayBmaWxlIHVwbG9hZFxuICAgKiAgICAvLyByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJycpIC8vIG9yIHJlamVjdCBhIHByb21pc2VcbiAgICogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgKiAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhY2NlcHRGbj86IChQaWNrZXJGaWxlTWV0YWRhdGEsIFBpY2tlckFjY2VwdEZuT3B0aW9ucykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICAvKipcbiAgICogUHJldmVudCBtb2RhbCBjbG9zZSBvbiB1cGxvYWQgZmFpbHVyZSBhbmQgYWxsb3cgdXNlcnMgdG8gcmV0cnkuXG4gICAqL1xuICBhbGxvd01hbnVhbFJldHJ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBWYWxpZCBzb3VyY2VzIGFyZTpcbiAgICogIC0gbG9jYWxfZmlsZV9zeXN0ZW0gLSBEZWZhdWx0XG4gICAqICAtIHVybCAtIERlZmF1bHRcbiAgICogIC0gaW1hZ2VzZWFyY2ggLSBEZWZhdWx0XG4gICAqICAtIGZhY2Vib29rIC0gRGVmYXVsdFxuICAgKiAgLSBpbnN0YWdyYW0gLSBEZWZhdWx0XG4gICAqICAtIGdvb2dsZWRyaXZlIC0gRGVmYXVsdFxuICAgKiAgLSBkcm9wYm94IC0gRGVmYXVsdFxuICAgKiAgLSB3ZWJjYW0gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gdmlkZW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYXVkaW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYm94XG4gICAqICAtIGdpdGh1YlxuICAgKiAgLSBnbWFpbFxuICAgKiAgLSBwaWNhc2FcbiAgICogIC0gb25lZHJpdmVcbiAgICogIC0gb25lZHJpdmVmb3JidXNpbmVzc1xuICAgKiAgLSBjdXN0b21zb3VyY2UgLSBDb25maWd1cmUgdGhpcyBpbiB5b3VyIEZpbGVzdGFjayBEZXYgUG9ydGFsLlxuICAgKiAgLSB1bnNwbGFzaFxuICAgKi9cbiAgZnJvbVNvdXJjZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIENvbnRhaW5lciB3aGVyZSBwaWNrZXIgc2hvdWxkIGJlIGFwcGVuZGVkLiBPbmx5IHJlbGV2YW50IGZvciBgaW5saW5lYCBhbmQgYGRyb3BQYW5lYCBkaXNwbGF5IG1vZGVzLlxuICAgKi9cbiAgY29udGFpbmVyPzogc3RyaW5nIHwgTm9kZTtcblxuICAvKipcbiAgICogVHVybiBvbiBjbGVhbmluZyBKUEVHIGltYWdlIGV4aWYuIE1ldGhvZCBjYW4ga2VlcCBpbWFnZSBvcmllbnRhdGlvbiBvciBjb2xvciBwcm9maWxlc1xuICAgKiBgYGBqYXZhc2NyaXB0XG4gICAqIGNsZWFudXBJbWFnZUV4aWY6IHtcbiAgICogICBrZWVwT3JpZW50YXRpb246IHRydWVcbiAgICogICBrZWVwSUNDYW5kQVBQOiB0cnVlXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBjbGVhbnVwSW1hZ2VFeGlmPzogYm9vbGVhbiB8IHtcbiAgICBrZWVwT3JpZW50YXRpb24/OiBib29sZWFuLFxuICAgIGtlZXBJQ0NhbmRBUFA/OiBib29sZWFuXG4gIH07XG4gIC8qKlxuICAgKiBDdXN0b21pemUgdGhlIHRleHQgb24gdGhlIGNsb3VkIGF1dGhlbnRpY2F0aW9uIHNjcmVlbiBpbiBQaWNrZXIuXG4gICAqIFVzZSBhIGNsb3VkIHNvdXJjZSBuYW1lIChzZWUgW1tQaWNrZXJPcHRpb25zLmZyb21Tb3VyY2VzXV0pXG4gICAqIG9yIGEgJ2RlZmF1bHQnIGFzIGEga2V5LCB0aGVuIHB1dCB5b3VyIGN1c3RvbSBub3RpY2Ugb3IgY29uc2VudFxuICAgKiB0byB0aGUgJ3RvcCcgb3IgdGhlICdib3R0b20nIGtleSB0byBzaG93IGl0IHJlc3BlY3Rpdmx5IGFib3ZlIG9yIHVuZGVyICdDb25uZWN0IGJ1dHRvbicuXG4gICAqXG4gICAqIGBgYGphdmFzY3JpcHRcbiAgICogY3VzdG9tQXV0aFRleHQ6IHtcbiAgICogICAvLyB1c2UgaXQgZm9yIGV2ZXJ5IGNsb3VkIGF1dGhlbnRpY2F0aW9uIHNjcmVlblxuICAgKiAgIGRlZmF1bHQ6IHtcbiAgICogICAgIHRvcDogW1xuICAgKiAgICAgICAnZGVmYXVsdCB0b3AgZmlyc3QgbGluZScsXG4gICAqICAgICAgICdkZWZhdWx0IHRvcCBzZWNvbmQgbGluZSdcbiAgICogICAgIF0sXG4gICAqICAgICBib3R0b206IFtcbiAgICogICAgICAgJ2RlZmF1bHQgYm90dG9tIGZpcnN0IGxpbmUnLFxuICAgKiAgICAgICAnZGVmYXVsdCBib3R0b20gc2Vjb25kIGxpbmUnXG4gICAqICAgICBdXG4gICAqICAgfSxcbiAgICogICAvLyBvdmVycmlkZSBhIGRlZmF1bHQgYm90dG9tIHRleHQgZm9yIG9ubHkgZ21haWxcbiAgICogICBnbWFpbDoge1xuICAgKiAgICAgYm90dG9tOiBbXG4gICAqICAgICAgICdXZSBuZWVkIHlvdXIgcGVybWlzc2lvbiB0byBhY2Nlc3MgeW91ciBkYXRhIGFuZCcsXG4gICAqICAgICAgICdwcm9jZXNzIGl0IHdpdGggb3VyIG1hY2hpbmUgbGVhcm5pbmcgc3lzdGVtLidcbiAgICogICAgIF1cbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBjdXN0b21BdXRoVGV4dD86IEN1c3RvbUF1dGhUZXh0T3B0aW9ucztcbiAgLyoqXG4gICAqIFBpY2tlciBkaXNwbGF5IG1vZGUsIG9uZSBvZiBgJ2lubGluZSdgLCBgJ292ZXJsYXknYCwgYCdkcm9wUGFuZSdgIC0gZGVmYXVsdCBpcyBgJ292ZXJsYXknYC5cbiAgICovXG4gIGRpc3BsYXlNb2RlPzogUGlja2VyRGlzcGxheU1vZGU7XG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGZpbGVzIHRvIHVwbG9hZCBjb25jdXJyZW50bHkuIERlZmF1bHQgaXMgNC5cbiAgICovXG4gIGNvbmN1cnJlbmN5PzogbnVtYmVyO1xuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IGNvbnRhaW5lciBmb3IgeW91ciBjdXN0b20gc291cmNlLlxuICAgKi9cbiAgY3VzdG9tU291cmNlQ29udGFpbmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IHBhdGggZm9yIHlvdXIgY3VzdG9tIHNvdXJjZSBjb250YWluZXIuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IHRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBjdXN0b20gc291cmNlLlxuICAgKi9cbiAgY3VzdG9tU291cmNlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3ZpZGUgYW4gb2JqZWN0IGZvciBtYXBwaW5nIHBpY2tlciBzdHJpbmdzIHRvIHlvdXIgb3duIHN0cmluZ3MuXG4gICAqIFN0cmluZ3Mgc3Vycm91bmRlZCBieSBicmFja2V0cywgYHsgZm9vYmFyIH1gLCBhcmUgaW50ZXJwb2xhdGVkIHdpdGggcnVudGltZSB2YWx1ZXMuXG4gICAqIFNvdXJjZSBsYWJlbHMgYXJlIGFsc28gYXZhaWxhYmxlIHRvIG92ZXJyaWRlLCBlLmcuIEZhY2Vib29rLCBJbnN0YWdyYW0sIERyb3Bib3gsIGV0Yy5cbiAgICovXG4gIGN1c3RvbVRleHQ/OiBQaWNrZXJDdXN0b21UZXh0O1xuICAvKipcbiAgICogc2V0IHN1cHBvcnQgZW1haWwgdG8gZGlzcGxheSBpbiBjYXNlIG9mIGVycm9yXG4gICAqL1xuICBzdXBwb3J0RW1haWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgcmVtb3ZlcyB0aGUgaGFzaCBwcmVmaXggb24gc3RvcmVkIGZpbGVzLlxuICAgKi9cbiAgZGlzYWJsZVN0b3JhZ2VLZXk/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0cnVlIHJlbW92ZXMgYWJpbGl0eSB0byBlZGl0IGltYWdlcy5cbiAgICovXG4gIGRpc2FibGVUcmFuc2Zvcm1lcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBsb2NhbCBpbWFnZSB0aHVtYm5haWwgcHJldmlld3MgaW4gdGhlIHN1bW1hcnkgc2NyZWVuLlxuICAgKi9cbiAgZGlzYWJsZVRodW1ibmFpbHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBkcm9wIHBhbmUgYmVoYXZpb3IsIGkuZS4gd2hlbiBgZGlzcGxheU1vZGVgIGlzIGBkcm9wUGFuZWAuXG4gICAqL1xuICBkcm9wUGFuZT86IFBpY2tlckRyb3BQYW5lT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSB0aGUgYG9yaWdpbmFsRmlsZWAgbWV0YWRhdGEgd2lsbCBiZSB0aGUgYWN0dWFsIGBGaWxlYCBvYmplY3QgaW5zdGVhZCBvZiBhIFBPSk9cbiAgICovXG4gIGV4cG9zZU9yaWdpbmFsRmlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGRyb3Agem9uZSB0byBiZSBhY3RpdmUgb24gYWxsIHZpZXdzLiBEZWZhdWx0IGlzIGFjdGl2ZSBvbmx5IG9uIGxvY2FsIGZpbGUgc291cmNlLlxuICAgKi9cbiAgZ2xvYmFsRHJvcFpvbmU/OiBib29sZWFuO1xuICAvKipcbiAgICogSGlkZSB0aGUgcGlja2VyIG1vZGFsIFVJIG9uY2UgdXBsb2FkaW5nIGJlZ2lucy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIGhpZGVNb2RhbFdoZW5VcGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBMb2NhbCBhbmQgY3JvcHBlZCBpbWFnZXMgd2lsbCBiZSByZXNpemVkICh1cHNjYWxlZCBvciBkb3duc2NhbGVkKSB0byB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgYmVmb3JlIHVwbG9hZGluZy5cbiAgICogVGhlIG9yaWdpbmFsIGhlaWdodCB0byB3aWR0aCByYXRpbyBpcyBtYWludGFpbmVkLiBUbyByZXNpemUgYWxsIGltYWdlcyBiYXNlZCBvbiB0aGUgd2lkdGgsIHNldCBbd2lkdGgsIG51bGxdLCBlLmcuIFs4MDAsIG51bGxdLlxuICAgKiBGb3IgdGhlIGhlaWdodCBzZXQgW251bGwsIGhlaWdodF0sIGUuZy4gW251bGwsIDYwMF0uXG4gICAqL1xuICBpbWFnZURpbT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG1heGltdW0gaW1hZ2UgZGltZW5zaW9ucy4gZS5nLiBbODAwLCA2MDBdLiBPbmx5IGZvciBKUEVHLCBQTkcsIGFuZCBCTVAgZmlsZXMuXG4gICAqIEltYWdlcyBiaWdnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgd2lsbCBiZSByZXNpemVkIHRvIHRoZSBtYXhpbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1heCBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNYXg/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU3BlY2lmeSBtaW5pbXVtIGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBJbWFnZXMgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9ucyB3aWxsIGJlIHVwc2NhbGVkIHRvIHRoZSBtaW5pbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1pbiBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNaW4/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU2V0cyBsb2NhbGUuIEFjY2VwdHM6IGNhLCBkYSwgZGUsIGVuLCBlcywgZnIsIGhlLCBpdCwgamEsIGtvLCBubCwgbm8sIHBsLCBwdCwgc3YsIHJ1LCB2aSwgemgsIHRyXG4gICAqL1xuICBsYW5nPzogc3RyaW5nO1xuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgZmlsZXMgcmVxdWlyZWQgdG8gc3RhcnQgdXBsb2FkaW5nLiBEZWZhdWx0cyB0byAxLlxuICAgKi9cbiAgbWluRmlsZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBmaWxlcyBhbGxvd2VkIHRvIHVwbG9hZC4gRGVmYXVsdHMgdG8gMS5cbiAgICovXG4gIG1heEZpbGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUmVzdHJpY3Qgc2VsZWN0ZWQgZmlsZXMgdG8gYSBtYXhpbXVtIG51bWJlciBvZiBieXRlcy4gKGUuZy4gMTAgXFwqIDEwMjQgXFwqIDEwMjQgZm9yIDEwTUIgbGltaXQpLlxuICAgKi9cbiAgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmYXVsdCB2aWV3IHR5cGUgb3B0aW9uIGZvciBmaWxlIGJyb3dzZXJcbiAgICovXG4gIHZpZXdUeXBlPzogJ2dyaWQnIHwgJ2xpc3QnO1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgZXJyb3JzVGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZnkgW3dpZHRoLCBoZWlnaHRdIGluIHBpeGVscyBvZiB0aGUgZGVza3RvcCBtb2RhbC5cbiAgICovXG4gIG1vZGFsU2l6ZT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbGwgdXBsb2FkcyBpbiBhIHBpY2sgYXJlIGNhbmNlbGxlZC5cbiAgICovXG4gIG9uQ2FuY2VsPzogUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIGV4aXRlZC5cbiAgICovXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIG1vdW50ZWQuXG4gICAqIEBwYXJhbSBQaWNrZXJJbnN0YW5jZSBhcHBsaWNhdGlvbiBoYW5kbGVcbiAgICovXG4gIG9uT3Blbj86IChoYW5kbGU6IFBpY2tlckluc3RhbmNlKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHVzZXIgc2VsZWN0cyBhIGZpbGUuXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIC8vIFVzaW5nIHRvIHZldG8gZmlsZSBzZWxlY3Rpb25cbiAgICogLy8gSWYgeW91IHRocm93IGFueSBlcnJvciBpbiB0aGlzIGZ1bmN0aW9uIGl0IHdpbGwgcmVqZWN0IHRoZSBmaWxlIHNlbGVjdGlvbi5cbiAgICogLy8gVGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYXMgYW4gYWxlcnQuXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICBpZiAoZmlsZS5zaXplID4gMTAwMCAqIDEwMDApIHtcbiAgICogICAgIHRocm93IG5ldyBFcnJvcignRmlsZSB0b28gYmlnLCBzZWxlY3Qgc29tZXRoaW5nIHNtYWxsZXIgdGhhbiAxTUInKTtcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICogLy8gVXNpbmcgdG8gY2hhbmdlIHNlbGVjdGVkIGZpbGUgbmFtZVxuICAgKiAvLyBOT1RFOiBUaGlzIGN1cnJlbnRseSBvbmx5IHdvcmtzIGZvciBsb2NhbCB1cGxvYWRzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICAvLyBJdCdzIGltcG9ydGFudCB0byByZXR1cm4gYSBuZXcgZmlsZSBieSB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqICAgcmV0dXJuIHsgLi4uZmlsZSwgbmFtZTogJ2ZvbycgfTtcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbiBhbHNvIHJldHVybiBhIFByb21pc2UgdG8gYWxsb3cgYXN5bmNocm9ub3VzIHZhbGlkYXRpb24gbG9naWMuXG4gICAqIFlvdSBjYW4gcGFzcyBhIGZpbGUgb2JqZWN0IHRvIGByZXNvbHZlYCBmb3IgY2hhbmdpbmcgdGhlIGZpbGUgbmFtZSwgaXQgd2lsbCBiZWhhdmUgdGhlIHNhbWUgYXMgd2hlblxuICAgKiB0aGUgZmlsZSBpcyByZXR1cm5lZCBmcm9tIHRoZSBub24tYXN5bmMgY2FsbGJhY2suXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgKiAgICAgLy8gRG8gc29tZXRoaW5nIGFzeW5jXG4gICAqICAgICByZXNvbHZlKCk7XG4gICAqICAgICAvLyBPciByZWplY3QgdGhlIHNlbGVjdGlvbiB3aXRoIHJlamVjdCgpXG4gICAqICAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBvbkZpbGVTZWxlY3RlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgZmlsZSB1cGxvYWQgaGFzIGJlZW4gY2FuY2VsZWQuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRDYW5jZWw/OiBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgYmVnaW5zIHVwbG9hZGluZy5cbiAgICovXG4gIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgaXMgZG9uZSB1cGxvYWRpbmcuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGaW5pc2hlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHVwbG9hZGluZyBhIGZpbGUgZmFpbHMuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGYWlsZWQ/OiBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCBkdXJpbmcgbXVsdGktcGFydCB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzLiBMb2NhbCBmaWxlcyBvbmx5LlxuICAgKi9cbiAgb25GaWxlVXBsb2FkUHJvZ3Jlc3M/OiBQaWNrZXJGaWxlUHJvZ3Jlc3NDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGZpbGUgaXMgY3JvcHBlZCBpbiBwaWNrZXJcbiAgICovXG4gIG9uRmlsZUNyb3BwZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB1cGxvYWRpbmcgc3RhcnRzICh1c2VyIGluaXRpYXRlcyB1cGxvYWRpbmcpLlxuICAgKi9cbiAgb25VcGxvYWRTdGFydGVkPzogUGlja2VyVXBsb2FkU3RhcnRlZENhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYWxsIGZpbGVzIGhhdmUgYmVlbiB1cGxvYWRlZC5cbiAgICovXG4gIG9uVXBsb2FkRG9uZT86IFBpY2tlclVwbG9hZERvbmVDYWxsYmFjaztcblxuICAvKipcbiAgICogRGVmaW5lIGEgdW5pcXVlIGlkIGZvciB0aGUgYXBwbGljYXRpb24gbW91bnQgcG9pbnQuXG4gICAqIE1heSBiZSB1c2VmdWwgZm9yIG1vcmUgYWR2YW5jZWQgdXNlIGNhc2VzLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHdpc2ggdG8gaGF2ZSBtb3JlIHRoYW4gb25lIHBpY2tlciBpbnN0YW5jZSBvcGVuIGF0IG9uY2UsXG4gICAqIHRoZW4gZWFjaCB3aWxsIG5lZWQgdGhlaXIgb3duIHVuaXF1ZSByb290SWQuXG4gICAqXG4gICAqICoqTm90ZToqKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIHdoZW4gYGRpc3BsYXlNb2RlYCBpcyBgZHJvcFBhbmVgLlxuICAgKi9cbiAgcm9vdElkPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdGFydCB1cGxvYWRpbmcgYXV0b21hdGljYWxseSB3aGVuIG1heEZpbGVzIGlzIGhpdC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmaWxlIHN0b3JhZ2UuXG4gICAqL1xuICBzdG9yZVRvPzogUGlja2VyU3RvcmVPcHRpb25zO1xuICAvKipcbiAgICogU3BlY2lmeSBvcHRpb25zIGZvciBpbWFnZXMgcGFzc2VkIHRvIHRoZSBjcm9wIFVJLlxuICAgKi9cbiAgdHJhbnNmb3JtYXRpb25zPzogUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgbG9jYWwgZmlsZSB1cGxvYWRzLlxuICAgKi9cbiAgdXBsb2FkQ29uZmlnPzogVXBsb2FkT3B0aW9ucztcbiAgLyoqXG4gICAqIFN0YXJ0IHVwbG9hZGluZyBpbW1lZGlhdGVseSBvbiBmaWxlIHNlbGVjdGlvbi4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKiBAaW1wb3J0YW50IFRoZSBmZWF0dXJlIGlzIGNhbiBiZSBlbmFibGVkIG9ubHkgaWYgY3JvcCBpcyBkaXNhYmxlZCAtIGRpc2FibGVUcmFuc2Zvcm1lcjogdHJ1ZVxuICAgKi9cbiAgdXBsb2FkSW5CYWNrZ3JvdW5kPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNldHMgdGhlIHJlc29sdXRpb24gb2YgcmVjb3JkZWQgdmlkZW8uIE9uZSBvZiBcIjMyMHgyNDBcIiwgXCI2NDB4NDgwXCIgb3IgXCIxMjgweDcyMFwiLiBEZWZhdWx0IGlzIGBcIjY0MHg0ODBcImAuXG4gICAqL1xuICB2aWRlb1Jlc29sdXRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVc2UgU2VudHJ5IEJyZWFkY3J1bWJzIG1lY2hhbmlzbSB0byBsb2cgaW5mb3JtYXRpb24gYWJvdXQgb2NjdXJlZCBlcnJvcnMuXG4gICAqIEl0IGNhbiBvdmVycmlkZSBnbG9iYWwgb2JqZWN0cyBsaWtlIGNvbnNvbGUsIGVycm9yIGV0Yy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgdXNlU2VudHJ5QnJlYWRjcnVtYnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckNyb3BPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1haW50YWluIGFzcGVjdCByYXRpbyBmb3IgY3JvcCBzZWxlY3Rpb24uIChlLmcuIDE2LzksIDgwMC82MDApLlxuICAgKi9cbiAgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBGb3JjZSBhbGwgaW1hZ2VzIHRvIGJlIGNyb3BwZWQgYmVmb3JlIHVwbG9hZGluZy5cbiAgICovXG4gIGZvcmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJUcmFuc2Zvcm1hdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogRW5hYmxlIGNyb3AuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGNyb3A/OiBib29sZWFuIHwgUGlja2VyQ3JvcE9wdGlvbnM7XG4gIC8qKlxuICAgKiBFbmFibGUgY2lyY2xlIGNyb3AuIERpc2FibGVkIGlmIGNyb3AuYXNwZWN0UmF0aW8gaXMgZGVmaW5lZCBhbmQgbm90IDEuIENvbnZlcnRzIHRvIFBORy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgY2lyY2xlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZSBpbWFnZSByb3RhdGlvbi4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcm90YXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2xvYmFsIGZvcmNlIGNyb3Agb3B0aW9uLiBDYW4gYmUgdXNlIGllIHdpdGggY2lyY2xlXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQWNjZXB0Rm5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVkIGFjY2VwdCBzdHJpbmdcbiAgICovXG4gIGFjY2VwdDogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBY2NlcHQgc3RyaW5nIGNvbnZlcnRlZCB0byBtaW1ldHlwZVxuICAgKi9cbiAgYWNjZXB0TWltZTogc3RyaW5nW107XG4gIC8qKlxuICAgKiBNaW1ldHlwZSBiYXNlZCBtYWdpYyBieXRlc1xuICAgKiB7QGxpbmsgaHR0cHM6Ly9maWxlc3RhY2suZ2l0aHViLmlvL2ZpbGVzdGFjay1qcy9nbG9iYWxzLmh0bWwjZ2V0bWltZXR5cGV9XG4gICAqL1xuICBtaW1lRnJvbU1hZ2ljQnl0ZXM6IFByb21pc2U8c3RyaW5nPjtcbiAgLyoqXG4gICAqIE1pbWV0eXBlIGJhc2VkIG9uIGZpbGUgZXh0ZW5zaW9uXG4gICAqIHtAbGluayBodHRwczovL2ZpbGVzdGFjay5naXRodWIuaW8vZmlsZXN0YWNrLWpzL2dsb2JhbHMuaHRtbCNleHRlbnNpb250b21pbWV9XG4gICAqL1xuICBtaW1lRnJvbUV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBBIHN5bmNocm9ub3VzLWxvb2tpbmcgd3JhcHBlciBmb3IgbG9hZGluZyB0aGUgcGlja2VyIGFuZCBjYWxsaW5nIGl0cyBtZXRob2RzLlxuICogVGhpcyBpcyBjdXJyZW50bHkgbmVlZGVkIGJlY2F1c2UgdGhlIHBpY2tlciBtb2R1bGUgaXMgbG9hZGVkIGFzeW5jaHJvbm91c2x5LlxuICogRXZlbnR1YWxseSB3ZSBzaG91bGQgb2ZmZXIgYSBidW5kbGUgd2l0aCB0aGUgcGlja2VyIG1vZHVsZSBpbmNsdWRlZC5cbiAqL1xuY2xhc3MgUGlja2VyTG9hZGVyIHtcblxuICBwcml2YXRlIF9pbml0aWFsaXplZDogUHJvbWlzZTxQaWNrZXJJbnN0YW5jZT47XG4gIGNvbnN0cnVjdG9yKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucykge1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFBpY2tlclBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHBpY2tlciBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRoaXMubG9hZE1vZHVsZShjbGllbnQsIG9wdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgb3BlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwaWNrZXIgPSBhd2FpdCB0aGlzLl9pbml0aWFsaXplZDtcbiAgICBhd2FpdCBwaWNrZXIub3BlbigpO1xuICB9XG5cbiAgYXN5bmMgY3JvcChmaWxlczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwaWNrZXIgPSBhd2FpdCB0aGlzLl9pbml0aWFsaXplZDtcbiAgICBhd2FpdCBwaWNrZXIuY3JvcChmaWxlcyk7XG4gIH1cblxuICBhc3luYyBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwaWNrZXIgPSBhd2FpdCB0aGlzLl9pbml0aWFsaXplZDtcbiAgICBhd2FpdCBwaWNrZXIuY2xvc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwaWNrZXIgPSBhd2FpdCB0aGlzLl9pbml0aWFsaXplZDtcbiAgICBhd2FpdCBwaWNrZXIuY2FuY2VsKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRNb2R1bGUoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUHJvbWlzZTxQaWNrZXJJbnN0YW5jZT4ge1xuICAgIGNvbnN0IHsgc2Vzc2lvbjogeyB1cmxzOiB7IHBpY2tlclVybDogdXJsIH0gfSB9ID0gY2xpZW50O1xuICAgIGNvbnN0IFBpY2tlciA9IGF3YWl0IGxvYWRNb2R1bGUoRklMRVNUQUNLX01PRFVMRVMuUElDS0VSLCB1cmwpO1xuICAgIHJldHVybiBuZXcgUGlja2VyKGNsaWVudCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkcyBhbmQgY3JlYXRlcyBwaWNrZXIgaW5zdGFuY2VcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGNsaWVudFxuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHBpY2tlciA9IChjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpOiBQaWNrZXJJbnN0YW5jZSA9PiB7XG4gIHJldHVybiBuZXcgUGlja2VyTG9hZGVyKGNsaWVudCwgb3B0aW9ucyk7XG59O1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUVILDRDQUFrRTtBQUNsRSx3REFBMEU7QUFHMUUsc0NBQStEO0FBK0QvRCxJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsNEJBQVMsQ0FBQTtJQUNULDhCQUFVLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFHMUI7QUErR0QsSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLHdDQUFtQixDQUFBO0lBQ25CLDBDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUk1QjtBQTZpQkQ7Ozs7O0dBS0c7QUFDSDtJQUdFLHNCQUFZLE1BQWMsRUFBRSxPQUF1QjtRQUNqRCxJQUFNLFdBQVcsR0FBRyxxQkFBWSxDQUFDLDJCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUQsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUM3QixNQUFNLElBQUksZ0NBQWMsQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLG9DQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RHO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUssMkJBQUksR0FBVjs7Ozs7NEJBQ2lCLHFCQUFNLElBQUksQ0FBQyxZQUFZLEVBQUE7O3dCQUFoQyxNQUFNLEdBQUcsU0FBdUI7d0JBQ3RDLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7d0JBQW5CLFNBQW1CLENBQUM7Ozs7O0tBQ3JCO0lBRUssMkJBQUksR0FBVixVQUFXLEtBQVk7Ozs7OzRCQUNOLHFCQUFNLElBQUksQ0FBQyxZQUFZLEVBQUE7O3dCQUFoQyxNQUFNLEdBQUcsU0FBdUI7d0JBQ3RDLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUE7O3dCQUF4QixTQUF3QixDQUFDOzs7OztLQUMxQjtJQUVLLDRCQUFLLEdBQVg7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUE7O3dCQUFwQixTQUFvQixDQUFDOzs7OztLQUN0QjtJQUVLLDZCQUFNLEdBQVo7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUE7O3dCQUFyQixTQUFxQixDQUFDOzs7OztLQUN2QjtJQUVhLGlDQUFVLEdBQXhCLFVBQXlCLE1BQWMsRUFBRSxPQUF1Qjs7Ozs7O3dCQUN4QixHQUFHLEdBQVMsTUFBTSx1QkFBZixDQUFnQjt3QkFDMUMscUJBQU0sbUJBQVUsQ0FBQywwQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0F0Q0EsQUFzQ0MsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNVLFFBQUEsTUFBTSxHQUFHLFVBQUMsTUFBYyxFQUFFLE9BQXVCO0lBQzVELE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvcGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBsb2FkTW9kdWxlLCBGSUxFU1RBQ0tfTU9EVUxFUyB9IGZyb20gJ0BmaWxlc3RhY2svbG9hZGVyJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQgeyBGU1Byb2dyZXNzRXZlbnQsIFVwbG9hZE9wdGlvbnMsIFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgUGlja2VyUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckluc3RhbmNlIHtcbiAgLyoqXG4gICAqIENsb3NlIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIGNsb3NlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDYW5jZWwgcGlja2VyIHVwbG9hZHMuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjYW5jZWw6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wZW4gcGlja2VyLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgb3BlbjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgdG8gb3BlbiBpbiB0aGUgcGlja2VyIGZvciBjcm9wcGluZ1xuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8aW5wdXQgaWQ9XCJmaWxlU2VsZWN0XCIgdHlwZT1cImZpbGVcIj5cbiAgICpcbiAgICogY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlU2VsZWN0Jyk7XG4gICAqIGNvbnN0IHBpY2tlciA9IGNsaWVudC5waWNrZXIoe1xuICAgKiAgIG9uVXBsb2FkRG9uZTogcmVzID0+IGNvbnNvbGUubG9nKHJlcyksXG4gICAqIH0pO1xuICAgKlxuICAgKiBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAqICAgcGlja2VyLmNyb3AoZS50YXJnZXQuZmlsZXMpO1xuICAgKiB9KTtcbiAgICpcbiAgICogLy8gT3IgcGFzcyBhbiBhcnJheSBvZiBVUkwgc3RyaW5nc1xuICAgKiBjb25zdCB1cmxzID0gW1xuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9mb3hfaW5fZm9yZXN0MS5qcGcnLFxuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9zYWlsLmpwZycsXG4gICAqIF07XG4gICAqIHBpY2tlci5jcm9wKHVybHMpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyb3A6IChmaWxlczogYW55W10pID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcHBlZERhdGEge1xuICBjcm9wQXJlYToge1xuICAgIC8qKlxuICAgICAqIFt4LCB5XVxuICAgICAqL1xuICAgIHBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICAgIHNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIH07XG4gICAgLyoqXG4gICAgICogW3dpZHRoLCBoZWlnaHRdXG4gICAgICovXG4gIG9yaWdpbmFsSW1hZ2VTaXplOiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgZW51bSBSb3RhdGVEaXJlY3Rpb24ge1xuICBjdyA9ICdDVycsXG4gIGNjdz0gJ0NDVycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUm90YXRlZERhdGEge1xuICAvKipcbiAgICogQW1vdW50IHJvdGF0ZWQgaW4gZGVncmVlcy5cbiAgICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBDYW4gYmUgQ1cgb3IgQ0NXIChjbG9ja3dpc2UgLyBjb3VudGVyLWNsb2Nrd2lzZSlcbiAgICovXG4gIGRpcmVjdGlvbjogUm90YXRlRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY2xvdWQgY29udGFpbmVyIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGFuZCBzaXplIGluZm9ybWF0aW9uIGZvciBjcm9wcGVkIGltYWdlcy5cbiAgICovXG4gIGNyb3BwZWQ/OiBQaWNrZXJDcm9wcGVkRGF0YTtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRmlsZXN0YWNrIGhhbmRsZSBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBoYW5kbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoYXNoLXByZWZpeGVkIGNsb3VkIHN0b3JhZ2UgcGF0aC5cbiAgICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogUHJvcGVydGllcyBvZiB0aGUgbG9jYWwgYmluYXJ5IGZpbGUuIEFsc28gc2VlIHRoZSBwaWNrIG9wdGlvbiBgZXhwb3NlT3JpZ2luYWxGaWxlYCBpZiB5b3Ugd2FudCB0aGUgdW5kZXJseWluZyBgRmlsZWAgb2JqZWN0LlxuICAgKi9cbiAgb3JpZ2luYWxGaWxlPzogb2JqZWN0IHwgRmlsZTtcbiAgLyoqXG4gICAqIFRoZSBvcmlnaW4gb2YgdGhlIGZpbGUsIGUuZy4gL0ZvbGRlci9maWxlLmpwZy5cbiAgICovXG4gIG9yaWdpbmFsUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogRGlyZWN0aW9uIGFuZCB2YWx1ZSBpbmZvcm1hdGlvbiBmb3Igcm90YXRlZCBpbWFnZXMuXG4gICAqL1xuICByb3RhdGVkPzogUGlja2VyUm90YXRlZERhdGE7XG4gIC8qKlxuICAgKiBTaXplIGluIGJ5dGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmcm9tIHdoZXJlIHRoZSBmaWxlIHdhcyBwaWNrZWQuXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZGljYXRlcyBGaWxlc3RhY2sgdHJhbnNpdCBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHV1aWQgZm9yIHRyYWNraW5nIHRoaXMgZmlsZSBpbiBjYWxsYmFja3MuXG4gICAqL1xuICB1cGxvYWRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEZpbGVzdGFjayBDRE4gVVJMIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF1dGhUZXh0T3B0aW9ucyB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICB0b3A/OiBzdHJpbmdbXSxcbiAgICBib3R0b20/OiBzdHJpbmdbXVxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclJlc3BvbnNlIHtcbiAgZmlsZXNVcGxvYWRlZDogUGlja2VyRmlsZU1ldGFkYXRhW107XG4gIGZpbGVzRmFpbGVkOiBQaWNrZXJGaWxlTWV0YWRhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhKTogdm9pZCB8IFByb21pc2U8YW55Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZVdpdGhUb2tlbkNhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSwgdG9rZW4/OiB7cGF1c2U/OiAoKSA9PiB2b2lkLCByZXN1bWU/OiAoKSA9PiB2b2lkLCBjYW5jZWw/OiAoKSA9PiB2b2lkfSk6IHZvaWQgfCBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUNhbmNlbENhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUVycm9yQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCBlcnJvcjogRXJyb3IpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVQcm9ncmVzc0NhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSwgZXZlbnQ6IEZTUHJvZ3Jlc3NFdmVudCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVXBsb2FkU3RhcnRlZENhbGxiYWNrIHtcbiAgKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrIHtcbiAgKGZpbGVzOiBQaWNrZXJSZXNwb25zZSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBlbnVtIFBpY2tlckRpc3BsYXlNb2RlIHtcbiAgaW5saW5lID0gJ2lubGluZScsXG4gIG92ZXJsYXkgPSAnb3ZlcmxheScsXG4gIGRyb3BQYW5lID0gJ2Ryb3BQYW5lJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJEcm9wUGFuZU9wdGlvbnMge1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBjcm9wIFVJIGZvciBkcm9wcGVkIGZpbGVzLlxuICAgKi9cbiAgY3JvcEZpbGVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgdGV4dCBjb250ZW50IGluIHRoZSBkcm9wIHBhbmUuXG4gICAqL1xuICBjdXN0b21UZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgZmlsZSBpbnB1dCBvbiBjbGljay4gVGhpcyBkb2VzIG5vdCBkaXNhYmxlIHRoZSBgb25DbGlja2AgY2FsbGJhY2suXG4gICAqL1xuICBkaXNhYmxlQ2xpY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBmdWxsLXBhZ2UgZHJvcCB6b25lIG92ZXJsYXkuXG4gICAqL1xuICBvdmVybGF5PzogYm9vbGVhbjtcbiAgb25EcmFnRW50ZXI/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIG9uRHJhZ0xlYXZlPzogKCkgPT4gdm9pZDtcbiAgb25EcmFnT3Zlcj86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgb25Ecm9wPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogYG9uU3VjY2Vzc2AgbXVzdCBiZSB1c2VkIGluc3RlYWQgb2YgYG9uVXBsb2FkRG9uZWAuIFRoZSBkcm9wIHBhbmUgdXNlcyBpdHMgb3duIGNhbGxiYWNrcyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4gVGhpcyBtaWdodCBldmVudHVhbGx5IGNoYW5nZS5cbiAgICovXG4gIG9uU3VjY2Vzcz86IChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pID0+IHZvaWQ7XG4gIG9uRXJyb3I/OiAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKSA9PiB2b2lkO1xuICBvblByb2dyZXNzPzogKHBlcmNlbnQ6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DbGljaz86IChldnQ6IGFueSkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFRvZ2dsZSBpY29uIGVsZW1lbnQgaW4gZHJvcCBwYW5lLlxuICAgKi9cbiAgc2hvd0ljb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHVwbG9hZCBwcm9ncmVzcyBkaXNwbGF5LlxuICAgKi9cbiAgc2hvd1Byb2dyZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJTdG9yZU9wdGlvbnMge1xuICAvKipcbiAgICogTG9jYXRpb24gZm9yIHN0b3JlZCBmaWxlLiBPbmUgb2YgJ3MzJywgJ2djcycsICdhenVyZScsICdyYWNrc3BhY2UnLCBvciAnZHJvcGJveCcuXG4gICAqL1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZnkgc3RvcmFnZSBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgY29udGFpbmVyIHBhdGguIEluZGljYXRlIGEgZm9sZGVyIGJ5IGFkZGluZyBhIHRyYWlsaW5nIHNsYXNoLiBXaXRob3V0IGEgdHJhaWxpbmcgc2xhc2ggYWxsIGZpbGVzIHdpbGwgYmUgc3RvcmVkIHRvIHRoZSBzYW1lIG9iamVjdC5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IFMzIHJlZ2lvbi5cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFMzIGNvbnRhaW5lciBhY2Nlc3MuICdwdWJsaWMnIG9yICdwcml2YXRlJy5cbiAgICovXG4gIGFjY2Vzcz86IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3dzIGlkcyB0byBydW4gYWZ0ZXIgdXBsb2FkXG4gICAqL1xuICB3b3JrZmxvd3M/OiBzdHJpbmdbXSB8IFdvcmtmbG93Q29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3VzdG9tVGV4dCB7XG4gIC8vIEFjdGlvbnNcbiAgVXBsb2FkPzogc3RyaW5nO1xuICAnVXBsb2FkIG1vcmUnPzogc3RyaW5nO1xuICAnRGVzZWxlY3QgQWxsJz86IHN0cmluZztcbiAgJ1ZpZXcvRWRpdCBTZWxlY3RlZCc/OiBzdHJpbmc7XG4gICdTaWduIE91dCc/OiBzdHJpbmc7XG5cbiAgLy8gU291cmNlIExhYmVsc1xuICAnTXkgRGV2aWNlJz86IHN0cmluZztcbiAgJ1dlYiBTZWFyY2gnPzogc3RyaW5nO1xuICAnVGFrZSBQaG90byc/OiBzdHJpbmc7XG4gICdMaW5rIChVUkwpJz86IHN0cmluZztcbiAgJ1JlY29yZCBWaWRlbyc/OiBzdHJpbmc7XG4gICdSZWNvcmQgQXVkaW8nPzogc3RyaW5nO1xuXG4gIC8vIEN1c3RvbSBTb3VyY2VcbiAgJ0N1c3RvbSBTb3VyY2UnPzogc3RyaW5nO1xuXG4gIC8vIEZvb3RlciBUZXh0XG4gIEFkZD86IHN0cmluZztcbiAgJ21vcmUgZmlsZSc/OiBzdHJpbmc7XG4gICdtb3JlIGZpbGVzJz86IHN0cmluZztcblxuICAvLyBDbG91ZFxuICAnQ29ubmVjdCB7cHJvdmlkZXJOYW1lfSc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRmlsZXMgZnJvbSB7cHJvdmlkZXJOYW1lfSc/OiBzdHJpbmc7XG4gICdZb3UgbmVlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB7cHJvdmlkZXJOYW1lfS4nPzogc3RyaW5nO1xuICAnQSBuZXcgcGFnZSB3aWxsIG9wZW4gdG8gY29ubmVjdCB5b3VyIGFjY291bnQuJz86IHN0cmluZztcbiAgJ1dlIG9ubHkgZXh0cmFjdCBpbWFnZXMgYW5kIG5ldmVyIG1vZGlmeSBvciBkZWxldGUgdGhlbS4nPzogc3RyaW5nO1xuICAnVG8gZGlzY29ubmVjdCBmcm9tIHtwcm92aWRlck5hbWV9IGNsaWNrIFwiU2lnbiBvdXRcIiBidXR0b24gaW4gdGhlIG1lbnUuJz86IHN0cmluZztcbiAgJ1NpZ24gaW4gd2l0aCBHb29nbGUnPzogc3RyaW5nO1xuICAnR28gYmFjayc/OiBzdHJpbmc7XG4gICdUaGlzIGZvbGRlciBpcyBlbXB0eS4nPzogc3RyaW5nO1xuXG4gIC8vIFN1bW1hcnlcbiAgRmlsZXM/OiBzdHJpbmc7XG4gIEltYWdlcz86IHN0cmluZztcbiAgVXBsb2FkZWQ/OiBzdHJpbmc7XG4gIFVwbG9hZGluZz86IHN0cmluZztcbiAgQ29tcGxldGVkPzogc3RyaW5nO1xuICBGaWx0ZXI/OiBzdHJpbmc7XG4gICdDcm9wcGVkIEltYWdlcyc/OiBzdHJpbmc7XG4gICdFZGl0ZWQgSW1hZ2VzJz86IHN0cmluZztcbiAgJ1NlbGVjdGVkIEZpbGVzJz86IHN0cmluZztcbiAgJ0Nyb3AgaXMgcmVxdWlyZWQgb24gaW1hZ2VzJz86IHN0cmluZztcblxuICAvLyBUcmFuc2Zvcm1cbiAgQ3JvcD86IHN0cmluZztcbiAgQ2lyY2xlPzogc3RyaW5nO1xuICBSb3RhdGU/OiBzdHJpbmc7XG4gIE1hc2s/OiBzdHJpbmc7XG4gIFJldmVydD86IHN0cmluZztcbiAgRWRpdD86IHN0cmluZztcbiAgUmVzZXQ/OiBzdHJpbmc7XG4gIERvbmU/OiBzdHJpbmc7XG4gIFNhdmU/OiBzdHJpbmc7XG4gIE5leHQ/OiBzdHJpbmc7XG4gICdFZGl0IEltYWdlJz86IHN0cmluZztcbiAgJ1RoaXMgaW1hZ2UgY2Fubm90IGJlIGVkaXRlZCc/OiBzdHJpbmc7XG5cbiAgLy8gUmV0cnkgbWVzc2FnaW5nXG4gICdDb25uZWN0aW9uIExvc3QnPzogc3RyaW5nO1xuICAnRmFpbGVkIFdoaWxlIFVwbG9hZGluZyc/OiBzdHJpbmc7XG4gICdSZXRyeWluZyBpbic/OiBzdHJpbmc7XG4gICdUcnkgYWdhaW4nPzogc3RyaW5nO1xuICAnVHJ5IG5vdyc/OiBzdHJpbmc7XG5cbiAgLy8gTG9jYWwgRmlsZSBTb3VyY2VcbiAgJ0RyYWcgYW5kIERyb3AsIENvcHkgYW5kIFBhc3RlIEZpbGVzJz86IHN0cmluZztcbiAgJ29yIERyYWcgYW5kIERyb3AsIENvcHkgYW5kIFBhc3RlIEZpbGVzJz86IHN0cmluZztcbiAgJ1NlbGVjdCBGaWxlcyB0byBVcGxvYWQnPzogc3RyaW5nO1xuICAnU2VsZWN0IEZyb20nPzogc3RyaW5nO1xuICAnRHJvcCB5b3VyIGZpbGVzIGFueXdoZXJlJz86IHN0cmluZztcblxuICAvLyBJbnB1dCBwbGFjZWhvbGRlcnNcbiAgJ0VudGVyIGEgVVJMJz86IHN0cmluZztcbiAgJ1NlYXJjaCBpbWFnZXMnPzogc3RyaW5nO1xuXG4gIC8vIFdlYmNhbSBTb3VyY2VcbiAgJ1dlYmNhbSBEaXNhYmxlZCc/OiBzdHJpbmc7XG4gICdXZWJjYW0gTm90IFN1cHBvcnRlZCc/OiBzdHJpbmc7XG4gICdQbGVhc2UgZW5hYmxlIHlvdXIgd2ViY2FtIHRvIHRha2UgYSBwaG90by4nPzogc3RyaW5nO1xuICAnWW91ciBjdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB3ZWJjYW0gZnVuY3Rpb25hbGl0eS4nPzogc3RyaW5nO1xuICAnV2Ugc3VnZ2VzdCB1c2luZyBDaHJvbWUgb3IgRmlyZWZveC4nPzogc3RyaW5nO1xuXG4gIC8vIEVycm9yIE5vdGlmaWNhdGlvbnNcbiAgJ0ZpbGUge2Rpc3BsYXlOYW1lfSBpcyBub3QgYW4gYWNjZXB0ZWQgZmlsZSB0eXBlLiBUaGUgYWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUge3R5cGVzfSc/OiBzdHJpbmc7XG4gICdGaWxlIHtkaXNwbGF5TmFtZX0gaXMgdG9vIGJpZy4gVGhlIGFjY2VwdGVkIGZpbGUgc2l6ZSBpcyBsZXNzIHRoYW4ge3JvdW5kRmlsZVNpemV9Jz86IHN0cmluZztcbiAgJ091ciBmaWxlIHVwbG9hZCBsaW1pdCBpcyB7bWF4RmlsZXN9IHtmaWxlc1RleHR9Jz86IHN0cmluZztcbiAgJ05vIHNlYXJjaCByZXN1bHRzIGZvdW5kIGZvciBcIntzZWFyY2h9XCInPzogc3RyaW5nO1xuICAnQW4gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uJz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IGZpbGUgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwaWNrZWQuIEZvcm1hdHMgYWNjZXB0ZWQ6XG4gICAqICAtIC5wZGYgPC0gYW55IGZpbGUgZXh0ZW5zaW9uXG4gICAqICAtIGltYWdlL2pwZWcgPC0gYW55IG1pbWUgdHlwZSBjb21tb25seSBrbm93biBieSBicm93c2Vyc1xuICAgKiAgLSBpbWFnZS8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgaW1hZ2VzXG4gICAqICAtIHZpZGVvLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiB2aWRlbyBmaWxlc1xuICAgKiAgLSBhdWRpby8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgYXVkaW8gZmlsZXNcbiAgICogIC0gYXBwbGljYXRpb24vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIGFwcGxpY2F0aW9uIGZpbGVzXG4gICAqICAtIHRleHQvKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIHRleHQgZmlsZXNcbiAgICovXG4gIGFjY2VwdD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ3VzdG9tIGFjY2VwdCBjaGVjayBmdW5jdGlvblxuICAgKiBgYGBqYXZhc2NyaXB0XG4gICAqIGFjY2VwdEZuOiAoZmlsZSwgb3B0aW9ucykgPT4ge1xuICAgKiAgcmV0dXJuIG9wdGlvbnMubWltZUZyb21NYWdpY0J5dGVzKGZpbGUub3JpZ2luYWxGaWxlKS50aGVuKChyZXMpID0+IHsgLy8gd2UgY2FuIGNoZWNrIG1pbWV0eXBlIGZyb20gbWFnaWMgYnl0ZXNcbiAgICogICAgLy9jb25zb2xlLmxvZyhvcHRpb25zLm1pbWVGcm9tRXh0ZW5zaW9uKGZpbGUub3JpZ2luYWxGaWxlLm5hbWUpKTsgLy8gb3IgY2hlY2sgZXh0ZW5zaW9uIGZyb20gZmlsZXN0YWNrIGV4dGVuc2lvbnMgZGF0YWJhc2VcbiAgICogICAgLy8gdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWNjZXB0IHRoYXQgZmlsZScpIC8vIHdlIGNhbiB0aHJvdyBleGNlcHRpb24gdG8gYmxvY2sgZmlsZSB1cGxvYWRcbiAgICogICAgLy8gcmV0dXJuIFByb21pc2UucmVqZWN0KCdDYW5ub3QgYWNjZXB0IHRoYXQgZmlsZScnKSAvLyBvciByZWplY3QgYSBwcm9taXNlXG4gICAqICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICogIH0pO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWNjZXB0Rm4/OiAoUGlja2VyRmlsZU1ldGFkYXRhLCBQaWNrZXJBY2NlcHRGbk9wdGlvbnMpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFByZXZlbnQgbW9kYWwgY2xvc2Ugb24gdXBsb2FkIGZhaWx1cmUgYW5kIGFsbG93IHVzZXJzIHRvIHJldHJ5LlxuICAgKi9cbiAgYWxsb3dNYW51YWxSZXRyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAgVmFsaWQgc291cmNlcyBhcmU6XG4gICAqICAtIGxvY2FsX2ZpbGVfc3lzdGVtIC0gRGVmYXVsdFxuICAgKiAgLSB1cmwgLSBEZWZhdWx0XG4gICAqICAtIGltYWdlc2VhcmNoIC0gRGVmYXVsdFxuICAgKiAgLSBmYWNlYm9vayAtIERlZmF1bHRcbiAgICogIC0gaW5zdGFncmFtIC0gRGVmYXVsdFxuICAgKiAgLSBnb29nbGVkcml2ZSAtIERlZmF1bHRcbiAgICogIC0gZHJvcGJveCAtIERlZmF1bHRcbiAgICogIC0gd2ViY2FtIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIHZpZGVvIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIGF1ZGlvIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIGJveFxuICAgKiAgLSBnaXRodWJcbiAgICogIC0gZ21haWxcbiAgICogIC0gZ29vZ2xlcGhvdG9zXG4gICAqICAtIG9uZWRyaXZlXG4gICAqICAtIG9uZWRyaXZlZm9yYnVzaW5lc3NcbiAgICogIC0gY3VzdG9tc291cmNlIC0gQ29uZmlndXJlIHRoaXMgaW4geW91ciBGaWxlc3RhY2sgRGV2IFBvcnRhbC5cbiAgICogIC0gdW5zcGxhc2hcbiAgICovXG4gIGZyb21Tb3VyY2VzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDb250YWluZXIgd2hlcmUgcGlja2VyIHNob3VsZCBiZSBhcHBlbmRlZC4gT25seSByZWxldmFudCBmb3IgYGlubGluZWAgYW5kIGBkcm9wUGFuZWAgZGlzcGxheSBtb2Rlcy5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZyB8IE5vZGU7XG5cbiAgLyoqXG4gICAqIFR1cm4gb24gY2xlYW5pbmcgSlBFRyBpbWFnZSBleGlmLiBNZXRob2QgY2FuIGtlZXAgaW1hZ2Ugb3JpZW50YXRpb24gb3IgY29sb3IgcHJvZmlsZXNcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAqICAga2VlcE9yaWVudGF0aW9uOiB0cnVlXG4gICAqICAga2VlcElDQ2FuZEFQUDogdHJ1ZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY2xlYW51cEltYWdlRXhpZj86IGJvb2xlYW4gfCB7XG4gICAga2VlcE9yaWVudGF0aW9uPzogYm9vbGVhbixcbiAgICBrZWVwSUNDYW5kQVBQPzogYm9vbGVhblxuICB9O1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IG9uIHRoZSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW4gaW4gUGlja2VyLlxuICAgKiBVc2UgYSBjbG91ZCBzb3VyY2UgbmFtZSAoc2VlIFtbUGlja2VyT3B0aW9ucy5mcm9tU291cmNlc11dKVxuICAgKiBvciBhICdkZWZhdWx0JyBhcyBhIGtleSwgdGhlbiBwdXQgeW91ciBjdXN0b20gbm90aWNlIG9yIGNvbnNlbnRcbiAgICogdG8gdGhlICd0b3AnIG9yIHRoZSAnYm90dG9tJyBrZXkgdG8gc2hvdyBpdCByZXNwZWN0aXZseSBhYm92ZSBvciB1bmRlciAnQ29ubmVjdCBidXR0b24nLlxuICAgKlxuICAgKiBgYGBqYXZhc2NyaXB0XG4gICAqIGN1c3RvbUF1dGhUZXh0OiB7XG4gICAqICAgLy8gdXNlIGl0IGZvciBldmVyeSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW5cbiAgICogICBkZWZhdWx0OiB7XG4gICAqICAgICB0b3A6IFtcbiAgICogICAgICAgJ2RlZmF1bHQgdG9wIGZpcnN0IGxpbmUnLFxuICAgKiAgICAgICAnZGVmYXVsdCB0b3Agc2Vjb25kIGxpbmUnXG4gICAqICAgICBdLFxuICAgKiAgICAgYm90dG9tOiBbXG4gICAqICAgICAgICdkZWZhdWx0IGJvdHRvbSBmaXJzdCBsaW5lJyxcbiAgICogICAgICAgJ2RlZmF1bHQgYm90dG9tIHNlY29uZCBsaW5lJ1xuICAgKiAgICAgXVxuICAgKiAgIH0sXG4gICAqICAgLy8gb3ZlcnJpZGUgYSBkZWZhdWx0IGJvdHRvbSB0ZXh0IGZvciBvbmx5IGdtYWlsXG4gICAqICAgZ21haWw6IHtcbiAgICogICAgIGJvdHRvbTogW1xuICAgKiAgICAgICAnV2UgbmVlZCB5b3VyIHBlcm1pc3Npb24gdG8gYWNjZXNzIHlvdXIgZGF0YSBhbmQnLFxuICAgKiAgICAgICAncHJvY2VzcyBpdCB3aXRoIG91ciBtYWNoaW5lIGxlYXJuaW5nIHN5c3RlbS4nXG4gICAqICAgICBdXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY3VzdG9tQXV0aFRleHQ/OiBDdXN0b21BdXRoVGV4dE9wdGlvbnM7XG4gIC8qKlxuICAgKiBQaWNrZXIgZGlzcGxheSBtb2RlLCBvbmUgb2YgYCdpbmxpbmUnYCwgYCdvdmVybGF5J2AsIGAnZHJvcFBhbmUnYCAtIGRlZmF1bHQgaXMgYCdvdmVybGF5J2AuXG4gICAqL1xuICBkaXNwbGF5TW9kZT86IFBpY2tlckRpc3BsYXlNb2RlO1xuICAvKipcbiAgICogTWF4IG51bWJlciBvZiBmaWxlcyB0byB1cGxvYWQgY29uY3VycmVudGx5LiBEZWZhdWx0IGlzIDQuXG4gICAqL1xuICBjb25jdXJyZW5jeT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBjb250YWluZXIgZm9yIHlvdXIgY3VzdG9tIHNvdXJjZS5cbiAgICovXG4gIGN1c3RvbVNvdXJjZUNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBwYXRoIGZvciB5b3VyIGN1c3RvbSBzb3VyY2UgY29udGFpbmVyLlxuICAgKi9cbiAgY3VzdG9tU291cmNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgY3VzdG9tIHNvdXJjZS5cbiAgICovXG4gIGN1c3RvbVNvdXJjZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm92aWRlIGFuIG9iamVjdCBmb3IgbWFwcGluZyBwaWNrZXIgc3RyaW5ncyB0byB5b3VyIG93biBzdHJpbmdzLlxuICAgKiBTdHJpbmdzIHN1cnJvdW5kZWQgYnkgYnJhY2tldHMsIGB7IGZvb2JhciB9YCwgYXJlIGludGVycG9sYXRlZCB3aXRoIHJ1bnRpbWUgdmFsdWVzLlxuICAgKiBTb3VyY2UgbGFiZWxzIGFyZSBhbHNvIGF2YWlsYWJsZSB0byBvdmVycmlkZSwgZS5nLiBGYWNlYm9vaywgSW5zdGFncmFtLCBEcm9wYm94LCBldGMuXG4gICAqL1xuICBjdXN0b21UZXh0PzogUGlja2VyQ3VzdG9tVGV4dDtcbiAgLyoqXG4gICAqIHNldCBzdXBwb3J0IGVtYWlsIHRvIGRpc3BsYXkgaW4gY2FzZSBvZiBlcnJvclxuICAgKi9cbiAgc3VwcG9ydEVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0cnVlIHJlbW92ZXMgdGhlIGhhc2ggcHJlZml4IG9uIHN0b3JlZCBmaWxlcy5cbiAgICovXG4gIGRpc2FibGVTdG9yYWdlS2V5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSByZW1vdmVzIGFiaWxpdHkgdG8gZWRpdCBpbWFnZXMuXG4gICAqL1xuICBkaXNhYmxlVHJhbnNmb3JtZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogRGlzYWJsZXMgbG9jYWwgaW1hZ2UgdGh1bWJuYWlsIHByZXZpZXdzIGluIHRoZSBzdW1tYXJ5IHNjcmVlbi5cbiAgICovXG4gIGRpc2FibGVUaHVtYm5haWxzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB0aGUgZHJvcCBwYW5lIGJlaGF2aW9yLCBpLmUuIHdoZW4gYGRpc3BsYXlNb2RlYCBpcyBgZHJvcFBhbmVgLlxuICAgKi9cbiAgZHJvcFBhbmU/OiBQaWNrZXJEcm9wUGFuZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIGBvcmlnaW5hbEZpbGVgIG1ldGFkYXRhIHdpbGwgYmUgdGhlIGFjdHVhbCBgRmlsZWAgb2JqZWN0IGluc3RlYWQgb2YgYSBQT0pPXG4gICAqL1xuICBleHBvc2VPcmlnaW5hbEZpbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkcm9wIHpvbmUgdG8gYmUgYWN0aXZlIG9uIGFsbCB2aWV3cy4gRGVmYXVsdCBpcyBhY3RpdmUgb25seSBvbiBsb2NhbCBmaWxlIHNvdXJjZS5cbiAgICovXG4gIGdsb2JhbERyb3Bab25lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhpZGUgdGhlIHBpY2tlciBtb2RhbCBVSSBvbmNlIHVwbG9hZGluZyBiZWdpbnMuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBoaWRlTW9kYWxXaGVuVXBsb2FkaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBpbWFnZSBkaW1lbnNpb25zLiBlLmcuIFs4MDAsIDYwMF0uIE9ubHkgZm9yIEpQRUcsIFBORywgYW5kIEJNUCBmaWxlcy5cbiAgICogTG9jYWwgYW5kIGNyb3BwZWQgaW1hZ2VzIHdpbGwgYmUgcmVzaXplZCAodXBzY2FsZWQgb3IgZG93bnNjYWxlZCkgdG8gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25zIGJlZm9yZSB1cGxvYWRpbmcuXG4gICAqIFRoZSBvcmlnaW5hbCBoZWlnaHQgdG8gd2lkdGggcmF0aW8gaXMgbWFpbnRhaW5lZC4gVG8gcmVzaXplIGFsbCBpbWFnZXMgYmFzZWQgb24gdGhlIHdpZHRoLCBzZXQgW3dpZHRoLCBudWxsXSwgZS5nLiBbODAwLCBudWxsXS5cbiAgICogRm9yIHRoZSBoZWlnaHQgc2V0IFtudWxsLCBoZWlnaHRdLCBlLmcuIFtudWxsLCA2MDBdLlxuICAgKi9cbiAgaW1hZ2VEaW0/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU3BlY2lmeSBtYXhpbXVtIGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBJbWFnZXMgYmlnZ2VyIHRoYW4gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25zIHdpbGwgYmUgcmVzaXplZCB0byB0aGUgbWF4aW11bSBzaXplIHdoaWxlIG1haW50YWluaW5nIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8uXG4gICAqIFRoZSBvdXRwdXQgd2lsbCBub3QgYmUgZXhhY3RseSA4MDB4NjAwIHVubGVzcyB0aGUgaW1hZ2VNYXggbWF0Y2hlcyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBvcmlnaW5hbCBpbWFnZS5cbiAgICovXG4gIGltYWdlTWF4PzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgbWluaW11bSBpbWFnZSBkaW1lbnNpb25zLiBlLmcuIFs4MDAsIDYwMF0uIE9ubHkgZm9yIEpQRUcsIFBORywgYW5kIEJNUCBmaWxlcy5cbiAgICogSW1hZ2VzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgd2lsbCBiZSB1cHNjYWxlZCB0byB0aGUgbWluaW11bSBzaXplIHdoaWxlIG1haW50YWluaW5nIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8uXG4gICAqIFRoZSBvdXRwdXQgd2lsbCBub3QgYmUgZXhhY3RseSA4MDB4NjAwIHVubGVzcyB0aGUgaW1hZ2VNaW4gbWF0Y2hlcyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBvcmlnaW5hbCBpbWFnZS5cbiAgICovXG4gIGltYWdlTWluPzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIFNldHMgbG9jYWxlLiBBY2NlcHRzOiBjYSwgZGEsIGRlLCBlbiwgZXMsIGZyLCBoZSwgaXQsIGphLCBrbywgbmwsIG5vLCBwbCwgcHQsIHN2LCBydSwgdmksIHpoLCB0clxuICAgKi9cbiAgbGFuZz86IHN0cmluZztcbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIG9mIGZpbGVzIHJlcXVpcmVkIHRvIHN0YXJ0IHVwbG9hZGluZy4gRGVmYXVsdHMgdG8gMS5cbiAgICovXG4gIG1pbkZpbGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgZmlsZXMgYWxsb3dlZCB0byB1cGxvYWQuIERlZmF1bHRzIHRvIDEuXG4gICAqL1xuICBtYXhGaWxlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHNlbGVjdGVkIGZpbGVzIHRvIGEgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMuIChlLmcuIDEwIFxcKiAxMDI0IFxcKiAxMDI0IGZvciAxME1CIGxpbWl0KS5cbiAgICovXG4gIG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmlldyB0eXBlIG9wdGlvbiBmb3IgZmlsZSBicm93c2VyXG4gICAqL1xuICB2aWV3VHlwZT86ICdncmlkJyB8ICdsaXN0JztcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICovXG4gIGVycm9yc1RpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IFt3aWR0aCwgaGVpZ2h0XSBpbiBwaXhlbHMgb2YgdGhlIGRlc2t0b3AgbW9kYWwuXG4gICAqL1xuICBtb2RhbFNpemU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYWxsIHVwbG9hZHMgaW4gYSBwaWNrIGFyZSBjYW5jZWxsZWQuXG4gICAqL1xuICBvbkNhbmNlbD86IFBpY2tlclVwbG9hZERvbmVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBVSSBpcyBleGl0ZWQuXG4gICAqL1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBVSSBpcyBtb3VudGVkLlxuICAgKiBAcGFyYW0gUGlja2VySW5zdGFuY2UgYXBwbGljYXRpb24gaGFuZGxlXG4gICAqL1xuICBvbk9wZW4/OiAoaGFuZGxlOiBQaWNrZXJJbnN0YW5jZSkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuZXZlciB1c2VyIHNlbGVjdHMgYSBmaWxlLlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyBVc2luZyB0byB2ZXRvIGZpbGUgc2VsZWN0aW9uXG4gICAqIC8vIElmIHlvdSB0aHJvdyBhbnkgZXJyb3IgaW4gdGhpcyBmdW5jdGlvbiBpdCB3aWxsIHJlamVjdCB0aGUgZmlsZSBzZWxlY3Rpb24uXG4gICAqIC8vIFRoZSBlcnJvciBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGFzIGFuIGFsZXJ0LlxuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgaWYgKGZpbGUuc2l6ZSA+IDEwMDAgKiAxMDAwKSB7XG4gICAqICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbGUgdG9vIGJpZywgc2VsZWN0IHNvbWV0aGluZyBzbWFsbGVyIHRoYW4gMU1CJyk7XG4gICAqICAgfVxuICAgKiB9XG4gICAqXG4gICAqIC8vIFVzaW5nIHRvIGNoYW5nZSBzZWxlY3RlZCBmaWxlIG5hbWVcbiAgICogLy8gTk9URTogVGhpcyBjdXJyZW50bHkgb25seSB3b3JrcyBmb3IgbG9jYWwgdXBsb2Fkc1xuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gcmV0dXJuIGEgbmV3IGZpbGUgYnkgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgKiAgIHJldHVybiB7IC4uLmZpbGUsIG5hbWU6ICdmb28nIH07XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBjYW4gYWxzbyByZXR1cm4gYSBQcm9taXNlIHRvIGFsbG93IGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uIGxvZ2ljLlxuICAgKiBZb3UgY2FuIHBhc3MgYSBmaWxlIG9iamVjdCB0byBgcmVzb2x2ZWAgZm9yIGNoYW5naW5nIHRoZSBmaWxlIG5hbWUsIGl0IHdpbGwgYmVoYXZlIHRoZSBzYW1lIGFzIHdoZW5cbiAgICogdGhlIGZpbGUgaXMgcmV0dXJuZWQgZnJvbSB0aGUgbm9uLWFzeW5jIGNhbGxiYWNrLlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICogICAgIC8vIERvIHNvbWV0aGluZyBhc3luY1xuICAgKiAgICAgcmVzb2x2ZSgpO1xuICAgKiAgICAgLy8gT3IgcmVqZWN0IHRoZSBzZWxlY3Rpb24gd2l0aCByZWplY3QoKVxuICAgKiAgIH0pO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgb25GaWxlU2VsZWN0ZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgdXBsb2FkIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkQ2FuY2VsPzogUGlja2VyRmlsZUNhbmNlbENhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBmaWxlIGJlZ2lucyB1cGxvYWRpbmcuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRTdGFydGVkPzogUGlja2VyRmlsZVdpdGhUb2tlbkNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBmaWxlIGlzIGRvbmUgdXBsb2FkaW5nLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkRmluaXNoZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB1cGxvYWRpbmcgYSBmaWxlIGZhaWxzLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkRmFpbGVkPzogUGlja2VyRmlsZUVycm9yQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgZHVyaW5nIG11bHRpLXBhcnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4gTG9jYWwgZmlsZXMgb25seS5cbiAgICovXG4gIG9uRmlsZVVwbG9hZFByb2dyZXNzPzogUGlja2VyRmlsZVByb2dyZXNzQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBmaWxlIGlzIGNyb3BwZWQgaW4gcGlja2VyXG4gICAqL1xuICBvbkZpbGVDcm9wcGVkPzogUGlja2VyRmlsZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdXBsb2FkaW5nIHN0YXJ0cyAodXNlciBpbml0aWF0ZXMgdXBsb2FkaW5nKS5cbiAgICovXG4gIG9uVXBsb2FkU3RhcnRlZD86IFBpY2tlclVwbG9hZFN0YXJ0ZWRDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gdXBsb2FkZWQuXG4gICAqL1xuICBvblVwbG9hZERvbmU/OiBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2s7XG5cbiAgLyoqXG4gICAqIERlZmluZSBhIHVuaXF1ZSBpZCBmb3IgdGhlIGFwcGxpY2F0aW9uIG1vdW50IHBvaW50LlxuICAgKiBNYXkgYmUgdXNlZnVsIGZvciBtb3JlIGFkdmFuY2VkIHVzZSBjYXNlcy5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHlvdSB3aXNoIHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBwaWNrZXIgaW5zdGFuY2Ugb3BlbiBhdCBvbmNlLFxuICAgKiB0aGVuIGVhY2ggd2lsbCBuZWVkIHRoZWlyIG93biB1bmlxdWUgcm9vdElkLlxuICAgKlxuICAgKiAqKk5vdGU6KiogVGhpcyBvcHRpb24gaXMgaWdub3JlZCB3aGVuIGBkaXNwbGF5TW9kZWAgaXMgYGRyb3BQYW5lYC5cbiAgICovXG4gIHJvb3RJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3RhcnQgdXBsb2FkaW5nIGF1dG9tYXRpY2FsbHkgd2hlbiBtYXhGaWxlcyBpcyBoaXQuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBzdGFydFVwbG9hZGluZ1doZW5NYXhGaWxlc1JlYWNoZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgZmlsZSBzdG9yYWdlLlxuICAgKi9cbiAgc3RvcmVUbz86IFBpY2tlclN0b3JlT3B0aW9ucztcbiAgLyoqXG4gICAqIFNwZWNpZnkgb3B0aW9ucyBmb3IgaW1hZ2VzIHBhc3NlZCB0byB0aGUgY3JvcCBVSS5cbiAgICovXG4gIHRyYW5zZm9ybWF0aW9ucz86IFBpY2tlclRyYW5zZm9ybWF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGxvY2FsIGZpbGUgdXBsb2Fkcy5cbiAgICovXG4gIHVwbG9hZENvbmZpZz86IFVwbG9hZE9wdGlvbnM7XG4gIC8qKlxuICAgKiBTdGFydCB1cGxvYWRpbmcgaW1tZWRpYXRlbHkgb24gZmlsZSBzZWxlY3Rpb24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICogQGltcG9ydGFudCBUaGUgZmVhdHVyZSBpcyBjYW4gYmUgZW5hYmxlZCBvbmx5IGlmIGNyb3AgaXMgZGlzYWJsZWQgLSBkaXNhYmxlVHJhbnNmb3JtZXI6IHRydWVcbiAgICovXG4gIHVwbG9hZEluQmFja2dyb3VuZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZXNvbHV0aW9uIG9mIHJlY29yZGVkIHZpZGVvLiBPbmUgb2YgXCIzMjB4MjQwXCIsIFwiNjQweDQ4MFwiIG9yIFwiMTI4MHg3MjBcIi4gRGVmYXVsdCBpcyBgXCI2NDB4NDgwXCJgLlxuICAgKi9cbiAgdmlkZW9SZXNvbHV0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlIFNlbnRyeSBCcmVhZGNydW1icyBtZWNoYW5pc20gdG8gbG9nIGluZm9ybWF0aW9uIGFib3V0IG9jY3VyZWQgZXJyb3JzLlxuICAgKiBJdCBjYW4gb3ZlcnJpZGUgZ2xvYmFsIG9iamVjdHMgbGlrZSBjb25zb2xlLCBlcnJvciBldGMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHVzZVNlbnRyeUJyZWFkY3J1bWJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hpY2ggUGlja2VyIGluc3RhbmNlIHNob3VsZCByZXNwb25kIHRvIHBhc3RlIGV2ZW50LlxuICAgKiBCeSBkZWZhdWx0IG9ubHkgaG92ZXJlZCBpbnN0YW5jZSByZXNwb25kcyB0byBldmVudC5cbiAgICogQHBhcmFtIHtib29sZWFuID0gZmFsc2V9IHBhc3RlVG9GaXJzdEluVmlld1BvcnQgSWYgbm9uZSBpbnN0YW5jZSBpcyBob3ZlcmVkIHRha2UgZmlyc3QgcGlja2VyIGluc3RhbmNlIGZ1bGx5IHZpc2libGUgaW4gdmlld3BvcnRcbiAgICogQHBhcmFtIHtib29sZWFuID0gZmFsc2V9IHBhc3RlVG9GaXJzdEluc3RhbmNlIElmIG5vbmUgaW5zdGFuY2UgaXMgaG92ZXJlZCB0YWtlIGZpcnN0IHBpY2tlciBpbnN0YW5jZSB0aGF0IGlzIGluaXRpYWxpemVkXG4gICAqIEBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0IGlzIGNoZWNrZWQgZmlyc3RcbiAgICovXG4gIHBhc3RlTW9kZT86IHtcbiAgICBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0PzogYm9vbGVhbixcbiAgICBwYXN0ZVRvRmlyc3RJbnN0YW5jZT86IGJvb2xlYW5cbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDcm9wT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYWludGFpbiBhc3BlY3QgcmF0aW8gZm9yIGNyb3Agc2VsZWN0aW9uLiAoZS5nLiAxNi85LCA4MDAvNjAwKS5cbiAgICovXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xuICAvKipcbiAgICogRm9yY2UgYWxsIGltYWdlcyB0byBiZSBjcm9wcGVkIGJlZm9yZSB1cGxvYWRpbmcuXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBjcm9wLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBjcm9wPzogYm9vbGVhbiB8IFBpY2tlckNyb3BPcHRpb25zO1xuICAvKipcbiAgICogRW5hYmxlIGNpcmNsZSBjcm9wLiBEaXNhYmxlZCBpZiBjcm9wLmFzcGVjdFJhdGlvIGlzIGRlZmluZWQgYW5kIG5vdCAxLiBDb252ZXJ0cyB0byBQTkcuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGNpcmNsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgaW1hZ2Ugcm90YXRpb24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJvdGF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdsb2JhbCBmb3JjZSBjcm9wIG9wdGlvbi4gQ2FuIGJlIHVzZSBpZSB3aXRoIGNpcmNsZVxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckFjY2VwdEZuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm92aWRlZCBhY2NlcHQgc3RyaW5nXG4gICAqL1xuICBhY2NlcHQ6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQWNjZXB0IHN0cmluZyBjb252ZXJ0ZWQgdG8gbWltZXR5cGVcbiAgICovXG4gIGFjY2VwdE1pbWU6IHN0cmluZ1tdO1xuICAvKipcbiAgICogTWltZXR5cGUgYmFzZWQgbWFnaWMgYnl0ZXNcbiAgICoge0BsaW5rIGh0dHBzOi8vZmlsZXN0YWNrLmdpdGh1Yi5pby9maWxlc3RhY2stanMvZ2xvYmFscy5odG1sI2dldG1pbWV0eXBlfVxuICAgKi9cbiAgbWltZUZyb21NYWdpY0J5dGVzOiBQcm9taXNlPHN0cmluZz47XG4gIC8qKlxuICAgKiBNaW1ldHlwZSBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvblxuICAgKiB7QGxpbmsgaHR0cHM6Ly9maWxlc3RhY2suZ2l0aHViLmlvL2ZpbGVzdGFjay1qcy9nbG9iYWxzLmh0bWwjZXh0ZW5zaW9udG9taW1lfVxuICAgKi9cbiAgbWltZUZyb21FeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQSBzeW5jaHJvbm91cy1sb29raW5nIHdyYXBwZXIgZm9yIGxvYWRpbmcgdGhlIHBpY2tlciBhbmQgY2FsbGluZyBpdHMgbWV0aG9kcy5cbiAqIFRoaXMgaXMgY3VycmVudGx5IG5lZWRlZCBiZWNhdXNlIHRoZSBwaWNrZXIgbW9kdWxlIGlzIGxvYWRlZCBhc3luY2hyb25vdXNseS5cbiAqIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIG9mZmVyIGEgYnVuZGxlIHdpdGggdGhlIHBpY2tlciBtb2R1bGUgaW5jbHVkZWQuXG4gKi9cbmNsYXNzIFBpY2tlckxvYWRlciB7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IFByb21pc2U8UGlja2VySW5zdGFuY2U+O1xuICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihQaWNrZXJQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBwaWNrZXIgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0aGlzLmxvYWRNb2R1bGUoY2xpZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLm9wZW4oKTtcbiAgfVxuXG4gIGFzeW5jIGNyb3AoZmlsZXM6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNyb3AoZmlsZXMpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNsb3NlKCk7XG4gIH1cblxuICBhc3luYyBjYW5jZWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNhbmNlbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTW9kdWxlKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFByb21pc2U8UGlja2VySW5zdGFuY2U+IHtcbiAgICBjb25zdCB7IHNlc3Npb246IHsgdXJsczogeyBwaWNrZXJVcmw6IHVybCB9IH0gfSA9IGNsaWVudDtcbiAgICBjb25zdCBQaWNrZXIgPSBhd2FpdCBsb2FkTW9kdWxlKEZJTEVTVEFDS19NT0RVTEVTLlBJQ0tFUiwgdXJsKTtcbiAgICByZXR1cm4gbmV3IFBpY2tlcihjbGllbnQsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZHMgYW5kIGNyZWF0ZXMgcGlja2VyIGluc3RhbmNlXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjbGllbnRcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBwaWNrZXIgPSAoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2UgPT4ge1xuICByZXR1cm4gbmV3IFBpY2tlckxvYWRlcihjbGllbnQsIG9wdGlvbnMpO1xufTtcbiJdfQ== |
@@ -48,3 +48,3 @@ "use strict"; | ||
exports.getVersion = function () { | ||
return 'JS-3.24.1'; | ||
return 'JS-3.25.0'; | ||
}; | ||
@@ -51,0 +51,0 @@ /** |
@@ -47,3 +47,3 @@ "use strict"; | ||
exports.getVersion = function () { | ||
return 'JS-3.24.1'; | ||
return 'JS-3.25.0'; | ||
}; | ||
@@ -50,0 +50,0 @@ /** |
@@ -23,3 +23,3 @@ "use strict"; | ||
it('should return version string to replace', function () { | ||
expect(utils.getVersion()).toEqual("JS-3.24.1"); | ||
expect(utils.getVersion()).toEqual("JS-3.25.0"); | ||
}); | ||
@@ -26,0 +26,0 @@ }); |
@@ -36,8 +36,2 @@ export declare const PickerParamsSchema: { | ||
}; | ||
tags: { | ||
type: string; | ||
additionalProperties: { | ||
type: string; | ||
}; | ||
}; | ||
container: { | ||
@@ -367,2 +361,14 @@ format: string; | ||
properties: { | ||
tags: { | ||
type: string; | ||
additionalProperties: { | ||
anyOf: ({ | ||
type: string; | ||
format?: undefined; | ||
} | { | ||
format: string; | ||
type?: undefined; | ||
})[]; | ||
}; | ||
}; | ||
partSize: { | ||
@@ -418,10 +424,2 @@ type: string; | ||
}; | ||
tags: { | ||
type: string; | ||
maxItems: number; | ||
additionalProperties: { | ||
type: string; | ||
maxlength: number; | ||
}; | ||
}; | ||
}; | ||
@@ -432,3 +430,15 @@ }; | ||
}; | ||
pasteMode: { | ||
type: string; | ||
additionalProperties: boolean; | ||
properties: { | ||
pasteToFirstInViewPort: { | ||
type: string; | ||
}; | ||
pasteToFirstInstance: { | ||
type: string; | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var tslib_1 = require("tslib"); | ||
/* | ||
@@ -72,3 +73,3 @@ * Copyright (c) 2018 by Filestack. | ||
'gmail', | ||
'picasa', | ||
'googlephotos', | ||
'onedrive', | ||
@@ -84,8 +85,2 @@ 'onedriveforbusiness', | ||
}, | ||
tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
type: 'string', | ||
}, | ||
}, | ||
container: { | ||
@@ -422,3 +417,15 @@ format: 'HTMLContainer', | ||
additionalProperties: false, | ||
properties: upload_schema_1.UploadParamsSchema.properties, | ||
properties: tslib_1.__assign(tslib_1.__assign({}, upload_schema_1.UploadParamsSchema.properties), { tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
anyOf: [ | ||
{ | ||
type: 'string', | ||
}, | ||
{ | ||
format: 'callback', | ||
}, | ||
], | ||
}, | ||
} }), | ||
}, | ||
@@ -428,5 +435,17 @@ useSentryBreadcrumbs: { | ||
}, | ||
pasteMode: { | ||
type: 'object', | ||
additionalProperties: false, | ||
properties: { | ||
pasteToFirstInViewPort: { | ||
type: 'boolean', | ||
}, | ||
pasteToFirstInstance: { | ||
type: 'boolean', | ||
}, | ||
}, | ||
}, | ||
}, | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILGlEQUFxRDtBQUV4QyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSx5Q0FBeUM7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztJQUMzQiwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsT0FBTztvQkFDYixRQUFRLEVBQUUsQ0FBQztvQkFDWCxLQUFLLEVBQUU7d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLFVBQVU7U0FDbkI7UUFDRCxXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO29CQUMxQixvQkFBb0IsRUFBRSxLQUFLO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osbUJBQW1CO3dCQUNuQixLQUFLO3dCQUNMLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixTQUFTO3dCQUNULFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsUUFBUTt3QkFDUixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsVUFBVTt3QkFDVixx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RCxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxVQUFVO2lCQUNuQjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxVQUFVO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELGNBQWMsRUFBRTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsaUJBQWlCLEVBQUU7Z0JBQ2pCLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSxLQUFLO29CQUMzQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO29CQUMzQixVQUFVLEVBQUU7d0JBQ1YsR0FBRyxFQUFFOzRCQUNILElBQUksRUFBRSxRQUFRO3lCQUNmO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTt5QkFDZjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsUUFBUTtZQUNkLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsVUFBVSxFQUFFLGtDQUFrQixDQUFDLFVBQVU7U0FDMUM7UUFDRCxvQkFBb0IsRUFBRTtZQUNwQixJQUFJLEVBQUUsU0FBUztTQUNoQjtLQUNGO0NBQ0YsQ0FBQyIsImZpbGUiOiJzY2hlbWEvcGlja2VyLnNjaGVtYS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBVcGxvYWRQYXJhbXNTY2hlbWEgfSBmcm9tICcuL3VwbG9hZC5zY2hlbWEnO1xuXG5leHBvcnQgY29uc3QgUGlja2VyUGFyYW1zU2NoZW1hID0ge1xuICAkc2NoZW1hOiAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjJyxcbiAgdGl0bGU6ICdGaWxlc3RhY2sgUGlja2VyJyxcbiAgZGVzY3JpcHRpb246ICdGaWxlc3RhY2sgUGlja2VyIE9wdGlvbnMnLFxuICB0eXBlOiAnb2JqZWN0JyxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAvLyByZXF1aXJlZDogWydjb250YWluZXInXSxcbiAgcHJvcGVydGllczoge1xuICAgIGFsbG93TWFudWFsUmV0cnk6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGFjY2VwdDoge1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgb25lT2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBhY2NlcHRGbjoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgZnJvbVNvdXJjZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogWydzdHJpbmcnLCAnb2JqZWN0J10sXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIGVudW06IFtcbiAgICAgICAgICAgICdsb2NhbF9maWxlX3N5c3RlbScsXG4gICAgICAgICAgICAndXJsJyxcbiAgICAgICAgICAgICdpbWFnZXNlYXJjaCcsXG4gICAgICAgICAgICAnZmFjZWJvb2snLFxuICAgICAgICAgICAgJ2luc3RhZ3JhbScsXG4gICAgICAgICAgICAnZ29vZ2xlZHJpdmUnLFxuICAgICAgICAgICAgJ3Vuc3BsYXNoJyxcbiAgICAgICAgICAgICdkcm9wYm94JyxcbiAgICAgICAgICAgICd3ZWJjYW0nLFxuICAgICAgICAgICAgJ3ZpZGVvJyxcbiAgICAgICAgICAgICdhdWRpbycsXG4gICAgICAgICAgICAnYm94JyxcbiAgICAgICAgICAgICdnaXRodWInLFxuICAgICAgICAgICAgJ2dtYWlsJyxcbiAgICAgICAgICAgICdwaWNhc2EnLFxuICAgICAgICAgICAgJ29uZWRyaXZlJyxcbiAgICAgICAgICAgICdvbmVkcml2ZWZvcmJ1c2luZXNzJyxcbiAgICAgICAgICAgICdjbG91ZGRyaXZlJyxcbiAgICAgICAgICAgICdnb29nbGVwaG90b3MnLFxuICAgICAgICAgICAgJ2N1c3RvbXNvdXJjZScsXG4gICAgICAgICAgICAndGludCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB0YWdzOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRhaW5lcjoge1xuICAgICAgZm9ybWF0OiAnSFRNTENvbnRhaW5lcicsXG4gICAgfSxcbiAgICBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGtlZXBPcmllbnRhdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2VlcElDQ2FuZEFQUDoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgZGlzcGxheU1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydpbmxpbmUnLCAnb3ZlcmxheScsICdkcm9wUGFuZSddLFxuICAgIH0sXG4gICAgY29uY3VycmVuY3k6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAyMCxcbiAgICB9LFxuICAgIHN1cHBvcnRFbWFpbDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VDb250YWluZXI6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlUGF0aDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VOYW1lOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGRpc2FibGVTdG9yYWdlS2V5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVHJhbnNmb3JtZXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRpc2FibGVUaHVtYm5haWxzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBleHBvc2VPcmlnaW5hbEZpbGU6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGdsb2JhbERyb3Bab25lOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBoaWRlTW9kYWxXaGVuVXBsb2FkaW5nOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBpbWFnZURpbToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNYXg6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWluOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbk1heEJsb2NrOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIGxhbmc6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydjYScsICdkYScsICdkZScsICdlbicsICdlcycsICdmcicsICdoZScsICdpdCcsICdqYScsICdrbycsICdubCcsICdubycsICdwbCcsICdwdCcsICdzdicsICdydScsICd2aScsICd6aCcsICd0cicsICdhciddLFxuICAgIH0sXG4gICAgbWluRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4RmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4U2l6ZToge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICB9LFxuICAgIG1vZGFsU2l6ZToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICByb290SWQ6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgc3RhcnRVcGxvYWRpbmdXaGVuTWF4RmlsZXNSZWFjaGVkOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB1cGxvYWRJbkJhY2tncm91bmQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIHZpZGVvUmVzb2x1dGlvbjoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBvbkNhbmNlbDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25DbG9zZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25PcGVuOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVTZWxlY3RlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkQ2FuY2VsOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGaW5pc2hlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkRmFpbGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRQcm9ncmVzczoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25VcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZERvbmU6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZUNyb3BwZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIHN0b3JlVG86IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBmaWxlbmFtZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvbjoge1xuICAgICAgICAgICRyZWY6ICdsb2NhdGlvbnNEZWYnLFxuICAgICAgICB9LFxuICAgICAgICBjb250YWluZXI6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICByZWdpb246IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZW51bTogWydwdWJsaWMnLCAncHJpdmF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgICAkcmVmOiAnd29ya2Zsb3dzRGVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aWV3VHlwZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2dyaWQnLCAnbGlzdCddLFxuICAgIH0sXG4gICAgdHJhbnNmb3JtYXRpb25zOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY2lyY2xlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICByb3RhdGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBjcm9wOiB7XG4gICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhc3BlY3RSYXRpbzoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjdXN0b21UZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjcm9wRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMSxcbiAgICB9LFxuICAgIGxvYWRDc3M6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgZmFpbE92ZXJNYXhGaWxlczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZHJvcFBhbmU6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjcm9wRmlsZXM6IHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21UZXh0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVDbGljazoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0ljb246IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dQcm9ncmVzczoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnRW50ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uUHJvZ3Jlc3M6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ0xlYXZlOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdPdmVyOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyb3A6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VjY2Vzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25FcnJvcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlcnJvcnNUaW1lb3V0OiB7XG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgfSxcbiAgICBjdXN0b21BdXRoVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7XG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHVwbG9hZENvbmZpZzoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiBVcGxvYWRQYXJhbXNTY2hlbWEucHJvcGVydGllcywvLyBtYW51YWwgaW1wb3J0IHVwbG9hZCBkZWZpbml0aW9uc1xuICAgIH0sXG4gICAgdXNlU2VudHJ5QnJlYWRjcnVtYnM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxpREFBcUQ7QUFFeEMsUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQUUseUNBQXlDO0lBQ2xELEtBQUssRUFBRSxrQkFBa0I7SUFDekIsV0FBVyxFQUFFLDBCQUEwQjtJQUN2QyxJQUFJLEVBQUUsUUFBUTtJQUNkLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsMkJBQTJCO0lBQzNCLFVBQVUsRUFBRTtRQUNWLGdCQUFnQixFQUFFO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sb0JBQW9CLEVBQUUsS0FBSztZQUMzQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsUUFBUSxFQUFFLENBQUM7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMOzRCQUNFLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxVQUFVO1NBQ25CO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDMUIsb0JBQW9CLEVBQUUsS0FBSztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQjt3QkFDbkIsS0FBSzt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxLQUFLO3dCQUNMLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLFVBQVU7d0JBQ1Ys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QUUsUUFBUTtZQUNkLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsVUFBVSxFQUFFO2dCQUNWLHNCQUFzQixFQUFFO29CQUN0QixJQUFJLEVBQUUsU0FBUztpQkFDaEI7Z0JBQ0Qsb0JBQW9CLEVBQUU7b0JBQ3BCLElBQUksRUFBRSxTQUFTO2lCQUNoQjthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJmaWxlIjoic2NoZW1hL3BpY2tlci5zY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgVXBsb2FkUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi91cGxvYWQuc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IFBpY2tlclBhcmFtc1NjaGVtYSA9IHtcbiAgJHNjaGVtYTogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIycsXG4gIHRpdGxlOiAnRmlsZXN0YWNrIFBpY2tlcicsXG4gIGRlc2NyaXB0aW9uOiAnRmlsZXN0YWNrIFBpY2tlciBPcHRpb25zJyxcbiAgdHlwZTogJ29iamVjdCcsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgLy8gcmVxdWlyZWQ6IFsnY29udGFpbmVyJ10sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhbGxvd01hbnVhbFJldHJ5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBhY2NlcHQ6IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIG9uZU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgYWNjZXB0Rm46IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIGZyb21Tb3VyY2VzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFsnc3RyaW5nJywgJ29iamVjdCddLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBlbnVtOiBbXG4gICAgICAgICAgICAnbG9jYWxfZmlsZV9zeXN0ZW0nLFxuICAgICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgICAnaW1hZ2VzZWFyY2gnLFxuICAgICAgICAgICAgJ2ZhY2Vib29rJyxcbiAgICAgICAgICAgICdpbnN0YWdyYW0nLFxuICAgICAgICAgICAgJ2dvb2dsZWRyaXZlJyxcbiAgICAgICAgICAgICd1bnNwbGFzaCcsXG4gICAgICAgICAgICAnZHJvcGJveCcsXG4gICAgICAgICAgICAnd2ViY2FtJyxcbiAgICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgICAnYXVkaW8nLFxuICAgICAgICAgICAgJ2JveCcsXG4gICAgICAgICAgICAnZ2l0aHViJyxcbiAgICAgICAgICAgICdnbWFpbCcsXG4gICAgICAgICAgICAnZ29vZ2xlcGhvdG9zJyxcbiAgICAgICAgICAgICdvbmVkcml2ZScsXG4gICAgICAgICAgICAnb25lZHJpdmVmb3JidXNpbmVzcycsXG4gICAgICAgICAgICAnY2xvdWRkcml2ZScsXG4gICAgICAgICAgICAnZ29vZ2xlcGhvdG9zJyxcbiAgICAgICAgICAgICdjdXN0b21zb3VyY2UnLFxuICAgICAgICAgICAgJ3RpbnQnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgY29udGFpbmVyOiB7XG4gICAgICBmb3JtYXQ6ICdIVE1MQ29udGFpbmVyJyxcbiAgICB9LFxuICAgIGNsZWFudXBJbWFnZUV4aWY6IHtcbiAgICAgIG9uZU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAga2VlcE9yaWVudGF0aW9uOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBrZWVwSUNDYW5kQVBQOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBkaXNwbGF5TW9kZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2lubGluZScsICdvdmVybGF5JywgJ2Ryb3BQYW5lJ10sXG4gICAgfSxcbiAgICBjb25jdXJyZW5jeToge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDIwLFxuICAgIH0sXG4gICAgc3VwcG9ydEVtYWlsOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZUNvbnRhaW5lcjoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VQYXRoOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZU5hbWU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgZGlzYWJsZVN0b3JhZ2VLZXk6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRpc2FibGVUcmFuc2Zvcm1lcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZGlzYWJsZVRodW1ibmFpbHM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGV4cG9zZU9yaWdpbmFsRmlsZToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZ2xvYmFsRHJvcFpvbmU6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGhpZGVNb2RhbFdoZW5VcGxvYWRpbmc6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGltYWdlRGltOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1heDoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNaW46IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWluTWF4QmxvY2s6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbGFuZzoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2NhJywgJ2RhJywgJ2RlJywgJ2VuJywgJ2VzJywgJ2ZyJywgJ2hlJywgJ2l0JywgJ2phJywgJ2tvJywgJ25sJywgJ25vJywgJ3BsJywgJ3B0JywgJ3N2JywgJ3J1JywgJ3ZpJywgJ3poJywgJ3RyJywgJ2FyJ10sXG4gICAgfSxcbiAgICBtaW5GaWxlczoge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgfSxcbiAgICBtYXhGaWxlczoge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgfSxcbiAgICBtYXhTaXplOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgIH0sXG4gICAgbW9kYWxTaXplOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHJvb3RJZDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBzdGFydFVwbG9hZGluZ1doZW5NYXhGaWxlc1JlYWNoZWQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIHVwbG9hZEluQmFja2dyb3VuZDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdmlkZW9SZXNvbHV0aW9uOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIG9uQ2FuY2VsOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkNsb3NlOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbk9wZW46IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVNlbGVjdGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRDYW5jZWw6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZEZpbmlzaGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGYWlsZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFByb2dyZXNzOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uVXBsb2FkRG9uZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlQ3JvcHBlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgc3RvcmVUbzoge1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZpbGVuYW1lOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgJHJlZjogJ2xvY2F0aW9uc0RlZicsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5lcjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBwYXRoOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhY2Nlc3M6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBlbnVtOiBbJ3B1YmxpYycsICdwcml2YXRlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHdvcmtmbG93czoge1xuICAgICAgICAgICRyZWY6ICd3b3JrZmxvd3NEZWYnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpZXdUeXBlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnZ3JpZCcsICdsaXN0J10sXG4gICAgfSxcbiAgICB0cmFuc2Zvcm1hdGlvbnM6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjaXJjbGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHJvdGF0ZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGNyb3A6IHtcbiAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgJy4qJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNyb3BGaWxlczoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAxLFxuICAgIH0sXG4gICAgbG9hZENzczoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBmYWlsT3Zlck1heEZpbGVzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkcm9wUGFuZToge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNyb3BGaWxlczoge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZUNsaWNrOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvdmVybGF5OiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBzaG93SWNvbjoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd1Byb2dyZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdFbnRlcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25Qcm9ncmVzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnTGVhdmU6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ092ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJvcDoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWNjZXNzOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVycm9yc1RpbWVvdXQ6IHtcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgbWluaW11bTogMCxcbiAgICB9LFxuICAgIGN1c3RvbUF1dGhUZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndG9wJywgJ2JvdHRvbSddLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHRvcDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib3R0b206IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdXBsb2FkQ29uZmlnOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLy8gbWFudWFsIGltcG9ydCB1cGxvYWQgZGVmaW5pdGlvbnNcbiAgICAgICAgLi4uVXBsb2FkUGFyYW1zU2NoZW1hLnByb3BlcnRpZXMsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICAgICAgYW55T2Y6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHVzZVNlbnRyeUJyZWFkY3J1bWJzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBwYXN0ZU1vZGU6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0OiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBwYXN0ZVRvRmlyc3RJbnN0YW5jZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG4iXX0= |
@@ -20,3 +20,3 @@ /* | ||
*/ | ||
var PICKER_VERSION = '1.22.1'; | ||
var PICKER_VERSION = '1.23.0'; | ||
export var config = { | ||
@@ -33,2 +33,2 @@ urls: { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4yMi4xJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4yMy4wJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ== |
@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security'; | ||
*/ | ||
export declare const version = "3.24.1"; | ||
export declare const version = "3.25.0"; | ||
export * from './lib/api/transform'; | ||
@@ -29,0 +29,0 @@ export * from './lib/filelink'; |
@@ -39,4 +39,4 @@ /* | ||
*/ | ||
export var version = '3.24.1'; | ||
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.24.1' }); | ||
export var version = '3.25.0'; | ||
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.25.0' }); | ||
export * from './lib/api/transform'; | ||
@@ -43,0 +43,0 @@ export * from './lib/filelink'; |
@@ -86,2 +86,3 @@ /* | ||
_this.uploader.setUploadTags(options.tags); | ||
_this.uploader.on('start', function () { return _this.emit('start'); }); | ||
_this.uploader.on('error', function (e) { return _this.emit('error', e); }); | ||
@@ -269,2 +270,2 @@ _this.uploader.on('progress', _this.handleProgress.bind(_this)); | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUloRixPQUFPLEVBQUUsT0FBTyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBR2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVF4RixJQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsT0FBTyxFQUFFLElBQUk7SUFDdEMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6RSxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNIO0lBQTRCLDBCQUFZO0lBMkJ0QyxnQkFBNkIsT0FBMkIsRUFBVSxZQUFxQztRQUExRSx3QkFBQSxFQUFBLFlBQTJCO1FBQVUsNkJBQUEsRUFBQSxpQkFBcUM7UUFBdkcsWUFDRSxpQkFBTyxTQXlEUjtRQTFENEIsYUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBVSxrQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFSL0Ysa0JBQVksR0FBa0I7WUFDcEMsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNo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dEIsVUFBdUIsUUFBdUI7UUFDNUMsa0VBQWtFO1FBQ2xFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUNILGFBQUM7QUFBRCxDQTFQQSxBQTBQQyxDQTFQMkIsWUFBWSxHQTBQdkMiLCJmaWxlIjoibGliL2FwaS91cGxvYWQvdXBsb2FkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOSBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRlbWl0dGVyMyc7XG5pbXBvcnQgeyBTZXNzaW9uLCBTZWN1cml0eSB9IGZyb20gJy4uLy4uL2NsaWVudCc7XG5pbXBvcnQgeyBTM1VwbG9hZGVyIH0gZnJvbSAnLi91cGxvYWRlcnMvczMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IsIEZpbGVzdGFja0Vycm9yVHlwZSB9IGZyb20gJy4vLi4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IFNhbml0aXplT3B0aW9ucyB9IGZyb20gJy4vLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBVcGxvYWRPcHRpb25zLCBTdG9yZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi91cGxvYWQvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmlsZSwgSW5wdXRGaWxlIH0gZnJvbSAnLi9maWxlX3Rvb2xzJztcbmltcG9ydCB7IEZpbGVTdGF0ZSwgVXBsb2FkVGFncyB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBVcGxvYWRNb2RlIH0gZnJvbSAnLi91cGxvYWRlcnMvYWJzdHJhY3QnO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yLCBVcGxvYWRQYXJhbXNTY2hlbWEsIFN0b3JlUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi8uLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzRXZlbnQge1xuICB0b3RhbFBlcmNlbnQ6IG51bWJlcjtcbiAgdG90YWxCeXRlczogbnVtYmVyO1xuICBmaWxlcz86IHsgKGtleTogc3RyaW5nKTogUHJvZ3Jlc3NFdmVudCB9O1xufVxuXG5jb25zdCBERUZBVUxUX1BST0dSRVNTX0lOVEVSVkFMID0gMTAwMDtcblxuY29uc3Qgbm9ybWFsaXplUHJvZ3Jlc3MgPSAoY3VycmVudCwgbGFzdCkgPT4ge1xuICBjdXJyZW50LnRvdGFsQnl0ZXMgPSBNYXRoLm1heChjdXJyZW50LnRvdGFsQnl0ZXMsIGxhc3QudG90YWxCeXRlcyk7XG4gIGN1cnJlbnQudG90YWxQZXJjZW50ID0gTWF0aC5tYXgoY3VycmVudC50b3RhbFBlcmNlbnQsIGxhc3QudG90YWxQZXJjZW50KTtcblxuICByZXR1cm4gY3VycmVudDtcbn07XG5cbi8qKlxuICogVXBsb2FkZXIgbWFpbiBjbGFzcyBmb3Igbm93IGl0cyBzdXBwb3J0aW5nIG9ubHkgczMgdXBsb2FkIHR5cGVcbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVXBsb2FkXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGxvYWQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXG4gIC8qKlxuICAgKiBVcGxvYWRlciBpbnN0YW5jZVxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdHlwZSB7UzNVcGxvYWRlcn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSB1cGxvYWRlcjogUzNVcGxvYWRlcjtcblxuICAvKipcbiAgICogU2hvdWxkIHdlIG92ZXJ3cml0ZSBmaWxlIG5hbWVcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBvdmVycmlkZUZpbGVOYW1lO1xuXG4gIHByaXZhdGUgbGFzdFByb2dyZXNzOiBQcm9ncmVzc0V2ZW50ID0ge1xuICAgIHRvdGFsQnl0ZXM6IDAsXG4gICAgdG90YWxQZXJjZW50OiAwLFxuICB9O1xuXG4gIHByaXZhdGUgcHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXI7XG4gIHByaXZhdGUgc2FuaXRpemVyT3B0aW9uczogU2FuaXRpemVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVXBsb2FkT3B0aW9ucyA9IHt9LCBwcml2YXRlIHN0b3JlT3B0aW9uczogU3RvcmVVcGxvYWRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gZG8gbm90IGRlbGV0ZSBmaWxlbmFtZSBmcm9tIG9yaWdpbmFsIG9wdGlvbnMgcmVmZXJlbmNlIC0gY29weSBpdCBmaXJzdFxuICAgIHRoaXMuc3RvcmVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVPcHRpb25zKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFVwbG9hZFBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHVwbG9hZCBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZVZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFN0b3JlUGFyYW1zU2NoZW1hKShzdG9yZU9wdGlvbnMpO1xuICAgIGlmIChzdG9yZVZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSB1cGxvYWQgcGFyYW1zYCwgc3RvcmVWYWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmVPcHRpb25zLmZpbGVuYW1lKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmlsZU5hbWUgPSBzdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgICBkZWxldGUgdGhpcy5zdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcikge1xuICAgICAgdGhpcy5zYW5pdGl6ZXJPcHRpb25zID0gdGhpcy5zdG9yZU9wdGlvbnMuc2FuaXRpemVyO1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcjtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyID0gbmV3IFMzVXBsb2FkZXIodGhpcy5zdG9yZU9wdGlvbnMsIG9wdGlvbnMuY29uY3VycmVuY3kpO1xuXG4gICAgdGhpcy51cGxvYWRlci5zZXRSZXRyeUNvbmZpZyh7XG4gICAgICByZXRyeTogb3B0aW9ucy5yZXRyeSB8fCAxMCxcbiAgICAgIG9uUmV0cnk6IG9wdGlvbnMub25SZXRyeSwgLy8gQHRvZG8gYmluZCBmaWxlIHRvIHJldHJ5IGluIHMzIHVwbG9hZGVyXG4gICAgICByZXRyeUZhY3Rvcjogb3B0aW9ucy5yZXRyeUZhY3RvciB8fCAyLFxuICAgICAgcmV0cnlNYXhUaW1lOiBvcHRpb25zLnJldHJ5TWF4VGltZSB8fCAxNTAwMCxcbiAgICB9KTtcblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VGltZW91dChvcHRpb25zLnRpbWVvdXQgfHwgMTIwMDAwKTtcblxuICAgIGlmIChvcHRpb25zLnBhcnRTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFBhcnRTaXplKG9wdGlvbnMucGFydFNpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmludGVsbGlnZW50Q2h1bmtTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldEludGVsbGlnZW50Q2h1bmtTaXplKG9wdGlvbnMuaW50ZWxsaWdlbnRDaHVua1NpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmRpc2FibGVJbnRlZ3JpdHlDaGVjaykge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRJbnRlZ3JpdHlDaGVjayhmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW50ZWxsaWdlbnQpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkTW9kZShvcHRpb25zLmludGVsbGlnZW50ID09PSAnZmFsbGJhY2snID8gVXBsb2FkTW9kZS5GQUxMQkFDSyA6IFVwbG9hZE1vZGUuSU5URUxMSUdFTlQpO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkVGFncyhvcHRpb25zLnRhZ3MpO1xuXG4gICAgdGhpcy51cGxvYWRlci5vbignZXJyb3InLCAoZSkgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGUpKTtcbiAgICB0aGlzLnVwbG9hZGVyLm9uKCdwcm9ncmVzcycsIHRoaXMuaGFuZGxlUHJvZ3Jlc3MuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlc3Npb24gb2JqZWN0IHRvIHVwbG9hZGVyXG4gICAqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBwYXJhbSB7U2Vzc2lvbn0gc2Vzc2lvblxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBzZXRTZXNzaW9uKHNlc3Npb246IFNlc3Npb24pIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldEFwaWtleShzZXNzaW9uLmFwaWtleSk7XG5cbiAgICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0U2VjdXJpdHkoe1xuICAgICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgICBzaWduYXR1cmU6IHNlc3Npb24uc2lnbmF0dXJlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRlci5zZXRVcmwoc2Vzc2lvbi51cmxzLnVwbG9hZEFwaVVybCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNhbmNlbCB0b2tlbiB0byBjb250cm9sbCB1cGxvYWQgZmxvd1xuICAgKlxuICAgKiBAcGFyYW0geyp9IHRva2VuXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogYW55KSB7XG4gICAgaWYgKCF0b2tlbiB8fCB0b2tlbiAhPT0gT2JqZWN0KHRva2VuKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgdXBsb2FkIHRva2VuLiBNdXN0IGJlIGluc3RhbmNlIG9mIG9iamVjdCcpO1xuICAgIH1cblxuICAgIHRva2VuLnBhdXNlID0gKCkgPT4gdGhpcy51cGxvYWRlci5wYXVzZSgpO1xuICAgIHRva2VuLnJlc3VtZSA9ICgpID0+IHRoaXMudXBsb2FkZXIucmVzdW1lKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gKCkgPT4gdGhpcy51cGxvYWRlci5hYm9ydCgpO1xuXG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2VjdXJpdHkgdG8gdXBsb2FkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHtTZWN1cml0eX0gc2VjdXJpdHlcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHVibGljIHNldFNlY3VyaXR5KHNlY3VyaXR5OiBTZWN1cml0eSkge1xuICAgIHRoaXMudXBsb2FkZXIuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cGxvYWQgdGFnc1xuICAgKlxuICAgKiBAcGFyYW0ge1RhZ3N9IHRhZ3NcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHVibGljIHNldFVwbG9hZFRhZ3ModGFnczogVXBsb2FkVGFncykge1xuICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkVGFncyh0YWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgc2luZ2xlIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHsoSW5wdXRGaWxlKX0gZmlsZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBhc3luYyB1cGxvYWQoaW5wdXQ6IElucHV0RmlsZSk6IFByb21pc2U8YW55PiB7XG5cbiAgICBjb25zdCBmID0gYXdhaXQgZ2V0RmlsZShpbnB1dCwgdGhpcy5zYW5pdGl6ZXJPcHRpb25zKTtcbiAgICBmLmN1c3RvbU5hbWUgPSB0aGlzLm92ZXJyaWRlRmlsZU5hbWU7XG4gICAgdGhpcy51cGxvYWRlci5hZGRGaWxlKGYpO1xuXG4gICAgdGhpcy5zdGFydFByb2dyZXNzSW50ZXJ2YWwoKTtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgdGhpcy51cGxvYWRlci5leGVjdXRlKCkpLnNoaWZ0KCk7XG4gICAgdGhpcy5zdG9wUHJvZ3Jlc3NJbnRlcnZhbCgpO1xuXG4gICAgdGhpcy51cGxvYWRlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblxuICAgIGlmIChyZXMuc3RhdHVzID09PSBGaWxlU3RhdGUuRkFJTEVEKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIG11bHRpcGxlIGZpbGVzIGF0IG9uY2VcbiAgICpcbiAgICogQHBhcmFtIHsoSW5wdXRGaWxlW10pfSBpbnB1dFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBhc3luYyBtdWx0aXVwbG9hZChpbnB1dDogSW5wdXRGaWxlW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGZvciAobGV0IGkgaW4gaW5wdXQpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBpZiAoIWlucHV0Lmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmID0gYXdhaXQgZ2V0RmlsZShpbnB1dFtpXSwgdGhpcy5zYW5pdGl6ZXJPcHRpb25zKTtcbiAgICAgIGYuY3VzdG9tTmFtZSA9IHRoaXMub3ZlcnJpZGVGaWxlTmFtZTtcbiAgICAgIHRoaXMudXBsb2FkZXIuYWRkRmlsZShmKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0UHJvZ3Jlc3NJbnRlcnZhbCgpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMudXBsb2FkZXIuZXhlY3V0ZSgpO1xuICAgIHRoaXMuc3RvcFByb2dyZXNzSW50ZXJ2YWwoKTtcblxuICAgIHRoaXMudXBsb2FkZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogUlVuIHByb2dyZXNzIHdpdGggdXNlcmRlZmluZWQgaW50ZXJ2YWxcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFByb2dyZXNzSW50ZXJ2YWwoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyh0aGlzLmxhc3RQcm9ncmVzcyk7XG4gICAgfSwgdGhpcy5vcHRpb25zLnByb2dyZXNzSW50ZXJ2YWwgfHwgREVGQVVMVF9QUk9HUkVTU19JTlRFUlZBTCk7XG5cbiAgICB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyh0aGlzLmxhc3RQcm9ncmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBwcm9ncmVzcyBpbnRlcnZhbCBhZnRlciB1cGxvYWRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdG9wUHJvZ3Jlc3NJbnRlcnZhbCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMucHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB1cGxvYWQgaW50ZXJ2YWwgYW5kIG5vcm1hbGl6ZSB2YWx1ZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtQcm9ncmVzc0V2ZW50fSBwcm9ncmVzc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVByb2dyZXNzKHByb2dyZXNzOiBQcm9ncmVzc0V2ZW50KSB7XG4gICAgLy8gZ2V0IG1heCBwcm9ncmVzcyBkYXRhIHRvIGF2b2lkIHByb2dyZXNzIGp1bXBzIG9uIGFueSBwYXJ0IGVycm9yXG4gICAgcHJvZ3Jlc3MgPSBub3JtYWxpemVQcm9ncmVzcyhwcm9ncmVzcywgdGhpcy5sYXN0UHJvZ3Jlc3MpO1xuXG4gICAgaWYgKHRoaXMubGFzdFByb2dyZXNzLmZpbGVzKSB7XG4gICAgICBmb3IgKGxldCBpIGluIHByb2dyZXNzLmZpbGVzKSB7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQcm9ncmVzcy5maWxlc1tpXSkge1xuICAgICAgICAgIHByb2dyZXNzLmZpbGVzW2ldID0gbm9ybWFsaXplUHJvZ3Jlc3MocHJvZ3Jlc3MuZmlsZXNbaV0sIHRoaXMubGFzdFByb2dyZXNzLmZpbGVzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGFzdFByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUloRixPQUFPLEVBQUUsT0FBTyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBR2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVF4RixJQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsT0FBTyxFQUFFLElBQUk7SUFDdEMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6RSxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNIO0lBQTRCLDBCQUFZO0lBMkJ0QyxnQkFBNkIsT0FBMkIsRUFBVSxZQUFxQztRQUExRSx3QkFBQSxFQUFBLFlBQTJCO1FBQVUsNkJBQUEsRUFBQSxpQkFBcUM7UUFBdkcsWUFDRSxpQkFBTyxTQTBEUjtRQTNENEIsYUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBVSxrQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFSL0Ysa0JBQVksR0FBa0I7WUFDcEMsVUFBVSxFQUFFLENBQUM7WUFDYixZQUFZLEVBQUUsQ0FBQztTQUNo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Ozs7T0FLRztJQUNLLHFDQUFvQixHQUE1QjtRQUNFLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssK0JBQWMsR0FBdEIsVUFBdUIsUUFBdUI7UUFDNUMsa0VBQWtFO1FBQ2xFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUNILGFBQUM7QUFBRCxDQTNQQSxBQTJQQyxDQTNQMkIsWUFBWSxHQTJQdkMiLCJmaWxlIjoibGliL2FwaS91cGxvYWQvdXBsb2FkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOSBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRlbWl0dGVyMyc7XG5pbXBvcnQgeyBTZXNzaW9uLCBTZWN1cml0eSB9IGZyb20gJy4uLy4uL2NsaWVudCc7XG5pbXBvcnQgeyBTM1VwbG9hZGVyIH0gZnJvbSAnLi91cGxvYWRlcnMvczMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IsIEZpbGVzdGFja0Vycm9yVHlwZSB9IGZyb20gJy4vLi4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IFNhbml0aXplT3B0aW9ucyB9IGZyb20gJy4vLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBVcGxvYWRPcHRpb25zLCBTdG9yZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi91cGxvYWQvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmlsZSwgSW5wdXRGaWxlIH0gZnJvbSAnLi9maWxlX3Rvb2xzJztcbmltcG9ydCB7IEZpbGVTdGF0ZSwgVXBsb2FkVGFncyB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBVcGxvYWRNb2RlIH0gZnJvbSAnLi91cGxvYWRlcnMvYWJzdHJhY3QnO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yLCBVcGxvYWRQYXJhbXNTY2hlbWEsIFN0b3JlUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi8uLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzRXZlbnQge1xuICB0b3RhbFBlcmNlbnQ6IG51bWJlcjtcbiAgdG90YWxCeXRlczogbnVtYmVyO1xuICBmaWxlcz86IHsgKGtleTogc3RyaW5nKTogUHJvZ3Jlc3NFdmVudCB9O1xufVxuXG5jb25zdCBERUZBVUxUX1BST0dSRVNTX0lOVEVSVkFMID0gMTAwMDtcblxuY29uc3Qgbm9ybWFsaXplUHJvZ3Jlc3MgPSAoY3VycmVudCwgbGFzdCkgPT4ge1xuICBjdXJyZW50LnRvdGFsQnl0ZXMgPSBNYXRoLm1heChjdXJyZW50LnRvdGFsQnl0ZXMsIGxhc3QudG90YWxCeXRlcyk7XG4gIGN1cnJlbnQudG90YWxQZXJjZW50ID0gTWF0aC5tYXgoY3VycmVudC50b3RhbFBlcmNlbnQsIGxhc3QudG90YWxQZXJjZW50KTtcblxuICByZXR1cm4gY3VycmVudDtcbn07XG5cbi8qKlxuICogVXBsb2FkZXIgbWFpbiBjbGFzcyBmb3Igbm93IGl0cyBzdXBwb3J0aW5nIG9ubHkgczMgdXBsb2FkIHR5cGVcbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVXBsb2FkXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGxvYWQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXG4gIC8qKlxuICAgKiBVcGxvYWRlciBpbnN0YW5jZVxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdHlwZSB7UzNVcGxvYWRlcn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSB1cGxvYWRlcjogUzNVcGxvYWRlcjtcblxuICAvKipcbiAgICogU2hvdWxkIHdlIG92ZXJ3cml0ZSBmaWxlIG5hbWVcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBvdmVycmlkZUZpbGVOYW1lO1xuXG4gIHByaXZhdGUgbGFzdFByb2dyZXNzOiBQcm9ncmVzc0V2ZW50ID0ge1xuICAgIHRvdGFsQnl0ZXM6IDAsXG4gICAgdG90YWxQZXJjZW50OiAwLFxuICB9O1xuXG4gIHByaXZhdGUgcHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXI7XG4gIHByaXZhdGUgc2FuaXRpemVyT3B0aW9uczogU2FuaXRpemVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVXBsb2FkT3B0aW9ucyA9IHt9LCBwcml2YXRlIHN0b3JlT3B0aW9uczogU3RvcmVVcGxvYWRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gZG8gbm90IGRlbGV0ZSBmaWxlbmFtZSBmcm9tIG9yaWdpbmFsIG9wdGlvbnMgcmVmZXJlbmNlIC0gY29weSBpdCBmaXJzdFxuICAgIHRoaXMuc3RvcmVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVPcHRpb25zKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFVwbG9hZFBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHVwbG9hZCBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZVZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFN0b3JlUGFyYW1zU2NoZW1hKShzdG9yZU9wdGlvbnMpO1xuICAgIGlmIChzdG9yZVZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSB1cGxvYWQgcGFyYW1zYCwgc3RvcmVWYWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmVPcHRpb25zLmZpbGVuYW1lKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmlsZU5hbWUgPSBzdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgICBkZWxldGUgdGhpcy5zdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcikge1xuICAgICAgdGhpcy5zYW5pdGl6ZXJPcHRpb25zID0gdGhpcy5zdG9yZU9wdGlvbnMuc2FuaXRpemVyO1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcjtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyID0gbmV3IFMzVXBsb2FkZXIodGhpcy5zdG9yZU9wdGlvbnMsIG9wdGlvbnMuY29uY3VycmVuY3kpO1xuXG4gICAgdGhpcy51cGxvYWRlci5zZXRSZXRyeUNvbmZpZyh7XG4gICAgICByZXRyeTogb3B0aW9ucy5yZXRyeSB8fCAxMCxcbiAgICAgIG9uUmV0cnk6IG9wdGlvbnMub25SZXRyeSwgLy8gQHRvZG8gYmluZCBmaWxlIHRvIHJldHJ5IGluIHMzIHVwbG9hZGVyXG4gICAgICByZXRyeUZhY3Rvcjogb3B0aW9ucy5yZXRyeUZhY3RvciB8fCAyLFxuICAgICAgcmV0cnlNYXhUaW1lOiBvcHRpb25zLnJldHJ5TWF4VGltZSB8fCAxNTAwMCxcbiAgICB9KTtcblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VGltZW91dChvcHRpb25zLnRpbWVvdXQgfHwgMTIwMDAwKTtcblxuICAgIGlmIChvcHRpb25zLnBhcnRTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFBhcnRTaXplKG9wdGlvbnMucGFydFNpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmludGVsbGlnZW50Q2h1bmtTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldEludGVsbGlnZW50Q2h1bmtTaXplKG9wdGlvbnMuaW50ZWxsaWdlbnRDaHVua1NpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmRpc2FibGVJbnRlZ3JpdHlDaGVjaykge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRJbnRlZ3JpdHlDaGVjayhmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW50ZWxsaWdlbnQpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkTW9kZShvcHRpb25zLmludGVsbGlnZW50ID09PSAnZmFsbGJhY2snID8gVXBsb2FkTW9kZS5GQUxMQkFDSyA6IFVwbG9hZE1vZGUuSU5URUxMSUdFTlQpO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkVGFncyhvcHRpb25zLnRhZ3MpO1xuXG4gICAgdGhpcy51cGxvYWRlci5vbignc3RhcnQnLCAoKSA9PiB0aGlzLmVtaXQoJ3N0YXJ0JykpO1xuICAgIHRoaXMudXBsb2FkZXIub24oJ2Vycm9yJywgKGUpID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlKSk7XG4gICAgdGhpcy51cGxvYWRlci5vbigncHJvZ3Jlc3MnLCB0aGlzLmhhbmRsZVByb2dyZXNzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZXNzaW9uIG9iamVjdCB0byB1cGxvYWRlclxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb25cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgc2V0U2Vzc2lvbihzZXNzaW9uOiBTZXNzaW9uKSB7XG4gICAgdGhpcy51cGxvYWRlci5zZXRBcGlrZXkoc2Vzc2lvbi5hcGlrZXkpO1xuXG4gICAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHtcbiAgICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXJsKHNlc3Npb24udXJscy51cGxvYWRBcGlVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjYW5jZWwgdG9rZW4gdG8gY29udHJvbGwgdXBsb2FkIGZsb3dcbiAgICpcbiAgICogQHBhcmFtIHsqfSB0b2tlblxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IGFueSkge1xuICAgIGlmICghdG9rZW4gfHwgdG9rZW4gIT09IE9iamVjdCh0b2tlbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHVwbG9hZCB0b2tlbi4gTXVzdCBiZSBpbnN0YW5jZSBvZiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICB0b2tlbi5wYXVzZSA9ICgpID0+IHRoaXMudXBsb2FkZXIucGF1c2UoKTtcbiAgICB0b2tlbi5yZXN1bWUgPSAoKSA9PiB0aGlzLnVwbG9hZGVyLnJlc3VtZSgpO1xuICAgIHRva2VuLmNhbmNlbCA9ICgpID0+IHRoaXMudXBsb2FkZXIuYWJvcnQoKTtcblxuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNlY3VyaXR5IHRvIHVwbG9hZGVyIGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXBsb2FkIHRhZ3NcbiAgICpcbiAgICogQHBhcmFtIHtUYWdzfSB0YWdzXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRVcGxvYWRUYWdzKHRhZ3M6IFVwbG9hZFRhZ3MpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZFRhZ3ModGFncyk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIHNpbmdsZSBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZSl9IGZpbGVcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkKGlucHV0OiBJbnB1dEZpbGUpOiBQcm9taXNlPGFueT4ge1xuXG4gICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXQsIHRoaXMuc2FuaXRpemVyT3B0aW9ucyk7XG4gICAgZi5jdXN0b21OYW1lID0gdGhpcy5vdmVycmlkZUZpbGVOYW1lO1xuICAgIHRoaXMudXBsb2FkZXIuYWRkRmlsZShmKTtcblxuICAgIHRoaXMuc3RhcnRQcm9ncmVzc0ludGVydmFsKCk7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMudXBsb2FkZXIuZXhlY3V0ZSgpKS5zaGlmdCgpO1xuICAgIHRoaXMuc3RvcFByb2dyZXNzSW50ZXJ2YWwoKTtcblxuICAgIHRoaXMudXBsb2FkZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gRmlsZVN0YXRlLkZBSUxFRCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBtdWx0aXBsZSBmaWxlcyBhdCBvbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZVtdKX0gaW5wdXRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgbXVsdGl1cGxvYWQoaW5wdXQ6IElucHV0RmlsZVtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBmb3IgKGxldCBpIGluIGlucHV0KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKCFpbnB1dC5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXRbaV0sIHRoaXMuc2FuaXRpemVyT3B0aW9ucyk7XG4gICAgICBmLmN1c3RvbU5hbWUgPSB0aGlzLm92ZXJyaWRlRmlsZU5hbWU7XG4gICAgICB0aGlzLnVwbG9hZGVyLmFkZEZpbGUoZik7XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydFByb2dyZXNzSW50ZXJ2YWwoKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnVwbG9hZGVyLmV4ZWN1dGUoKTtcbiAgICB0aGlzLnN0b3BQcm9ncmVzc0ludGVydmFsKCk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJVbiBwcm9ncmVzcyB3aXRoIHVzZXJkZWZpbmVkIGludGVydmFsXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RhcnRQcm9ncmVzc0ludGVydmFsKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3MgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICAgIH0sIHRoaXMub3B0aW9ucy5wcm9ncmVzc0ludGVydmFsIHx8IERFRkFVTFRfUFJPR1JFU1NfSU5URVJWQUwpO1xuXG4gICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgcHJvZ3Jlc3MgaW50ZXJ2YWwgYWZ0ZXIgdXBsb2FkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RvcFByb2dyZXNzSW50ZXJ2YWwoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdXBsb2FkIGludGVydmFsIGFuZCBub3JtYWxpemUgdmFsdWVzXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7UHJvZ3Jlc3NFdmVudH0gcHJvZ3Jlc3NcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVQcm9ncmVzcyhwcm9ncmVzczogUHJvZ3Jlc3NFdmVudCkge1xuICAgIC8vIGdldCBtYXggcHJvZ3Jlc3MgZGF0YSB0byBhdm9pZCBwcm9ncmVzcyBqdW1wcyBvbiBhbnkgcGFydCBlcnJvclxuICAgIHByb2dyZXNzID0gbm9ybWFsaXplUHJvZ3Jlc3MocHJvZ3Jlc3MsIHRoaXMubGFzdFByb2dyZXNzKTtcblxuICAgIGlmICh0aGlzLmxhc3RQcm9ncmVzcy5maWxlcykge1xuICAgICAgZm9yIChsZXQgaSBpbiBwcm9ncmVzcy5maWxlcykge1xuICAgICAgICBpZiAodGhpcy5sYXN0UHJvZ3Jlc3MuZmlsZXNbaV0pIHtcbiAgICAgICAgICBwcm9ncmVzcy5maWxlc1tpXSA9IG5vcm1hbGl6ZVByb2dyZXNzKHByb2dyZXNzLmZpbGVzW2ldLCB0aGlzLmxhc3RQcm9ncmVzcy5maWxlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IHByb2dyZXNzO1xuICB9XG59XG4iXX0= |
@@ -397,2 +397,3 @@ /* | ||
} | ||
upload.on('start', function () { return _this.emit('upload.start'); }); | ||
/* istanbul ignore next */ | ||
@@ -456,2 +457,3 @@ upload.on('error', function (e) { | ||
} | ||
upload.on('start', function () { return _this.emit('upload.start'); }); | ||
/* istanbul ignore next */ | ||
@@ -475,2 +477,2 @@ upload.on('error', function (e) { | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxFQUFFLFFBQVEsRUFBbUIsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUE0RCxNQUFNLGNBQWMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQXFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0UsT0FBTyxFQUFFLE1BQU0sRUFBaUMsTUFBTSxVQUFVLENBQUM7QUFFakUsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUE2QzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBQTRCLDBCQUFZO0lBaUJ0QyxnQkFBWSxNQUFjLEVBQVUsT0FBdUI7UUFBM0QsWUFDRSxpQkFBTyxTQXNCUjtRQXZCbUMsYUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFabkQsbUJBQWEsR0FB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QVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5QjtRQUVELDBCQUEwQjtRQUMxQixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFBLENBQUM7WUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7Z0JBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDdEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLGNBQUEsRUFBRSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0E1YkEsQUE0YkMsQ0E1YjJCLFlBQVksR0E0YnZDIiwiZmlsZSI6ImxpYi9jbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0ICogYXMgU2VudHJ5IGZyb20gJ0BzZW50cnkvbWluaW1hbCc7XG5pbXBvcnQgeyBjb25maWcsIEhvc3RzIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgbWV0YWRhdGEsIE1ldGFkYXRhT3B0aW9ucywgcmVtb3ZlLCByZXRyaWV2ZSwgUmV0cmlldmVPcHRpb25zLCBkb3dubG9hZCB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtLCBUcmFuc2Zvcm1PcHRpb25zIH0gZnJvbSAnLi9hcGkvdHJhbnNmb3JtJztcbmltcG9ydCB7IHN0b3JlVVJMIH0gZnJvbSAnLi9hcGkvc3RvcmUnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBVcGxvYWQsIElucHV0RmlsZSwgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zLCBVcGxvYWRUYWdzIH0gZnJvbSAnLi9hcGkvdXBsb2FkJztcbmltcG9ydCB7IHByZXZpZXcsIFByZXZpZXdPcHRpb25zIH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBDbG91ZENsaWVudCB9IGZyb20gJy4vYXBpL2Nsb3VkJztcbmltcG9ydCB7IFByZWZldGNoLCBQcmVmZXRjaFJlc3BvbnNlLCBQcmVmZXRjaE9wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmVmZXRjaCc7XG5pbXBvcnQgeyBGc1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0L3R5cGVzJztcbmltcG9ydCB7IFN0b3JlUGFyYW1zIH0gZnJvbSAnLi9maWxlbGluayc7XG5cbmltcG9ydCB7IHBpY2tlciwgUGlja2VySW5zdGFuY2UsIFBpY2tlck9wdGlvbnMgfSBmcm9tICcuL3BpY2tlcic7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5TZW50cnkuYWRkQnJlYWRjcnVtYih7IGNhdGVnb3J5OiAnc2RrJywgbWVzc2FnZTogJ2ZpbGVzdGFjay1qcy1zZGsgc2NvcGUnIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb24ge1xuICBhcGlrZXk6IHN0cmluZztcbiAgdXJsczogSG9zdHM7XG4gIGNuYW1lPzogc3RyaW5nO1xuICBwb2xpY3k/OiBzdHJpbmc7XG4gIHNpZ25hdHVyZT86IHN0cmluZztcbiAgcHJlZmV0Y2g/OiBQcmVmZXRjaFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5IHtcbiAgcG9saWN5OiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICBbb3B0aW9uOiBzdHJpbmddOiBhbnk7XG4gIC8qKlxuICAgKiBTZWN1cml0eSBvYmplY3Qgd2l0aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBrZXlzLlxuICAgKiBDYW4gYmUgdXNlZCB0byBsaW1pdCBjbGllbnQgY2FwYWJpbGl0aWVzIGFuZCBwcm90ZWN0IHB1YmxpYyBVUkxzLlxuICAgKiBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggc2VydmVyLXNpZGUgcG9saWN5IGFuZCBzaWduYXR1cmUgZ2VuZXJhdGlvbi5cbiAgICogUmVhZCBhYm91dCBbc2VjdXJpdHkgcG9saWNpZXNdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9jb25jZXB0cy9zZWN1cml0eSkuXG4gICAqL1xuICBzZWN1cml0eT86IFNlY3VyaXR5O1xuICAvKipcbiAgICogRG9tYWluIHRvIHVzZSBmb3IgYWxsIFVSTHMuIF9fUmVxdWlyZXMgdGhlIGN1c3RvbSBDTkFNRSBhZGRvbl9fLlxuICAgKiBJZiB0aGlzIGlzIGVuYWJsZWQgdGhlbiB5b3UgbXVzdCBhbHNvIHNldCB1cCB5b3VyIG93biBPQXV0aCBhcHBsaWNhdGlvbnNcbiAgICogZm9yIGVhY2ggY2xvdWQgc291cmNlIHlvdSB3aXNoIHRvIHVzZSBpbiB0aGUgcGlja2VyLlxuICAgKi9cbiAgY25hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbmFibGUvZGlzYWJsZSBjYWNoaW5nIG9mIHRoZSBjbG91ZCBzZXNzaW9uIHRva2VuLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB1c2VycyB3aWxsIGJlIHJlbWVtYmVyZWQgb24geW91ciBkb21haW4gd2hlbiBjYWxsaW5nIHRoZSBjbG91ZCBBUEkgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdG9rZW5zIHN0b3JlZCBpbiBsb2NhbFN0b3JhZ2UgYXJlIGFjY2Vzc2libGUgYnkgb3RoZXIgc2NyaXB0cyBvbiB0aGUgc2FtZSBkb21haW4uXG4gICAqL1xuICBzZXNzaW9uQ2FjaGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZm9yd2FyZGluZyBlcnJvciBsb2dzIHRvIHNlbnRyeVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZm9yd2FyZEVycm9ycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEZpbGVzdGFjayBjbGllbnQsIHRoZSBlbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBtZXRob2RzLiBFbmNhcHN1bGF0ZXMgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBganNcbiAqIC8vIEVTIG1vZHVsZVxuICogaW1wb3J0ICogYXMgZmlsZXN0YWNrIGZyb20gJ2ZpbGVzdGFjay1qcyc7XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqXG4gKiBgYGBqc1xuICogLy8gVU1EIG1vZHVsZSBpbiBicm93c2VyXG4gKiA8c2NyaXB0IHNyYz1cImh0dHBzOi8vc3RhdGljLmZpbGVzdGFja2FwaS5jb20vZmlsZXN0YWNrLWpzLzMueC54L2ZpbGVzdGFjay5taW4uanNcIj48L3NjcmlwdD5cbiAqIGNvbnN0IGNsaWVudCA9IGZpbGVzdGFjay5pbml0KCdhcGlrZXknKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgcHVibGljIHNlc3Npb246IFNlc3Npb247XG4gIHByaXZhdGUgY2xvdWQ6IENsb3VkQ2xpZW50O1xuICBwcml2YXRlIHByZWZldGNoSW5zdGFuY2U6IFByZWZldGNoO1xuXG4gIHByaXZhdGUgZm9yd2FyZEVycm9yczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZmlsZXN0YWNrIHV0aWxzXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBnZXQgdXRpbHMoKSB7XG4gICAgcmV0dXJuIFV0aWxzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYXBpa2V5OiBzdHJpbmcsIHByaXZhdGUgb3B0aW9ucz86IENsaWVudE9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5mb3J3YXJkRXJyb3JzKSB7XG4gICAgICB0aGlzLmZvcndhcmRFcnJvcnMgPSBvcHRpb25zLmZvcndhcmRFcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKCFhcGlrZXkgfHwgdHlwZW9mIGFwaWtleSAhPT0gJ3N0cmluZycgfHwgYXBpa2V5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBhcGlrZXkgaXMgcmVxdWlyZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRmlsZXN0YWNrIGNsaWVudCcpO1xuICAgIH1cbiAgICBjb25zdCB7IHVybHMgfSA9IGNvbmZpZztcbiAgICB0aGlzLnNlc3Npb24gPSB7IGFwaWtleSwgdXJscyB9O1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IHsgY25hbWUsIHNlY3VyaXR5IH0gPSBvcHRpb25zO1xuXG4gICAgICB0aGlzLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICAgIHRoaXMuc2V0Q25hbWUoY25hbWUpO1xuICAgIH1cblxuICAgIHRoaXMucHJlZmV0Y2hJbnN0YW5jZSA9IG5ldyBQcmVmZXRjaCh0aGlzLnNlc3Npb24pO1xuICAgIHRoaXMuY2xvdWQgPSBuZXcgQ2xvdWRDbGllbnQodGhpcy5zZXNzaW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGJhc2ljIHByZWZldGNoIHJlcXVlc3QgdG8gY2hlY2sgcGVybWlzc2lvbnNcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgcHJlZmV0Y2gocGFyYW1zOiBQcmVmZXRjaE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXRjaEluc3RhbmNlLmdldENvbmZpZyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZWN1cml0eSBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIHtTZWN1cml0eX0gc2VjdXJpdHlcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgc2V0U2VjdXJpdHkoc2VjdXJpdHk6IFNlY3VyaXR5KSB7XG4gICAgaWYgKHNlY3VyaXR5ICYmICEoc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignQm90aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIGNsaWVudCBzZWN1cml0eScpO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB7XG4gICAgICB0aGlzLnNlc3Npb24ucG9saWN5ID0gc2VjdXJpdHkucG9saWN5O1xuICAgICAgdGhpcy5zZXNzaW9uLnNpZ25hdHVyZSA9IHNlY3VyaXR5LnNpZ25hdHVyZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGN1c3RvbSBjbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY25hbWVcbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgc2V0Q25hbWUoY25hbWU6IHN0cmluZykge1xuICAgIGlmICghY25hbWUgfHwgY25hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXNzaW9uLmNuYW1lID0gY25hbWU7XG4gICAgdGhpcy5zZXNzaW9uLnVybHMgPSBVdGlscy5yZXNvbHZlSG9zdCh0aGlzLnNlc3Npb24udXJscywgY25hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBjdXJyZW50IGNsb3VkIHNlc3Npb25zIGluIHRoZSBwaWNrZXIuXG4gICAqIE9wdGlvbmFsbHkgcGFzcyBhIGNsb3VkIHNvdXJjZSBuYW1lIHRvIG9ubHkgbG9nIG91dCBvZiB0aGF0IGNsb3VkIHNvdXJjZS5cbiAgICogVGhpcyBlc3NlbnRpYWxseSBjbGVhcnMgdGhlIE9BdXRoIGF1dGhvcml6YXRpb24gY29kZXMgZnJvbSB0aGUgRmlsZXN0YWNrIHNlc3Npb24uXG4gICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIGNsb3VkIHNvdXJjZSBuYW1lLlxuICAgKi9cbiAgbG9nb3V0KG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jbG91ZC5sb2dvdXQobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHJpZXZlIGRldGFpbGVkIGRhdGEgb2Ygc3RvcmVkIGZpbGVzLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAubWV0YWRhdGEoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBNZXRhZGF0YV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI21ldGFkYXRhKS5cbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBNZXRhZGF0YSBmaWVsZHMgdG8gZW5hYmxlIG9uIHJlc3BvbnNlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICBtZXRhZGF0YShoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IE1ldGFkYXRhT3B0aW9ucywgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIG1ldGFkYXRhKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIG5ldyBwaWNrZXIgaW5zdGFuY2UuXG4gICAqL1xuICBwaWNrZXIob3B0aW9ucz86IFBpY2tlck9wdGlvbnMpOiBQaWNrZXJJbnN0YW5jZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcGlja2VyKHRoaXMsIG9wdGlvbnMpO1xuICB9XG4gIC8qKlxuICAgKiBVc2VkIGZvciB2aWV3aW5nIGZpbGVzIHZpYSBGaWxlc3RhY2sgaGFuZGxlcyBvciBzdG9yYWdlIGFsaWFzZXMsIF9fcmVxdWlyZXMgRG9jdW1lbnQgVmlld2VyIGFkZG9uIHRvIHlvdXIgRmlsZXN0YWNrIGFwcGxpY2F0aW9uX18uXG4gICAqIE9wZW5zIGRvY3VtZW50IHZpZXdlciBpbiBuZXcgd2luZG93IGlmIGlkIG9wdGlvbiBpcyBub3QgcHJvdmlkZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIC8vIDxkaXYgaWQ9XCJwcmV2aWV3XCI+PC9kaXY+XG4gICAqXG4gICAqIGNsaWVudC5wcmV2aWV3KCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScsIHsgaWQ6ICdwcmV2aWV3JyB9KTtcbiAgICogYGBgXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgUHJldmlldyBvcHRpb25zXG4gICAqL1xuICBwcmV2aWV3KGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogUHJldmlld09wdGlvbnMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBwcmV2aWV3KHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zKTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSBmcm9tIHN0b3JhZ2UgYW5kIHRoZSBGaWxlc3RhY2sgc3lzdGVtLlxuICAgKlxuICAgKiBfX1JlcXVpcmVzIGEgdmFsaWQgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmVfXy4gVGhlIHBvbGljeSBhbmQgc2lnbmF0dXJlIHdpbGwgYmUgcHVsbGVkIGZyb20gdGhlIGNsaWVudCBzZXNzaW9uLCBvciBpdCBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBzZWN1cml0eSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5yZW1vdmUoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEZWxldGVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkZWxldGUpXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVtb3ZlKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZW1vdmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIGZhbHNlLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGZpbGUgKipvbmx5KiogZnJvbSB0aGUgRmlsZXN0YWNrIHN5c3RlbS4gVGhlIGZpbGUgcmVtYWlucyBpbiBzdG9yYWdlLlxuICAgKlxuICAgKiBfX1JlcXVpcmVzIGEgdmFsaWQgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmVfXy4gVGhlIHBvbGljeSBhbmQgc2lnbmF0dXJlIHdpbGwgYmUgcHVsbGVkIGZyb20gdGhlIGNsaWVudCBzZXNzaW9uLCBvciBpdCBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBzZWN1cml0eSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5yZW1vdmVNZXRhZGF0YSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERlbGV0ZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2RlbGV0ZSlcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICByZW1vdmVNZXRhZGF0YShoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8YW55PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmVtb3ZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCB0cnVlLCBzZWN1cml0eSk7XG4gIH1cbiAgLyoqXG4gICAqIFN0b3JlIGEgZmlsZSBmcm9tIGl0cyBVUkwuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5zdG9yZVVSTCgnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvTllfMTk5X0Vfb2ZfSGFtbWVydG93bl8yMDE0LmpwZycpXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBTdG9yZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI3N0b3JlKVxuICAgKiBAcGFyYW0gdXJsICAgICAgIFZhbGlkIFVSTCB0byBhIGZpbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zICAgQ29uZmlndXJlIGZpbGUgc3RvcmFnZS5cbiAgICogQHBhcmFtIHRva2VuICAgICBPcHRpb25hbCBjb250cm9sIHRva2VuIHRvIGNhbGwgLmNhbmNlbCgpXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqIEBwYXJhbSB1cGxvYWRUYWdzIE9wdGlvbmFsIHRhZ3MgdmlzaWJsZSBpbiB3ZWJob29rcy5cbiAgICogQHBhcmFtIGhlYWRlcnMgICAgT3B0aW9uYWwgaGVhZGVycyB0byBzZW5kXG4gICAqIEBwYXJhbSB3b3JrZmxvd0lkcyAgICBPcHRpb25hbCB3b3JrZmxvd0lkcyB0byBzZW5kXG4gICAqL1xuICBzdG9yZVVSTCh1cmw6IHN0cmluZywgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHksIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzLCBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sIHdvcmtmbG93SWRzPzogc3RyaW5nW10pOiBQcm9taXNlPE9iamVjdD4ge1xuICAgIHJldHVybiBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiB0aGlzLnNlc3Npb24sXG4gICAgICB1cmwsXG4gICAgICBzdG9yZVBhcmFtcyxcbiAgICAgIHRva2VuLFxuICAgICAgc2VjdXJpdHksXG4gICAgICB1cGxvYWRUYWdzLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHdvcmtmbG93SWRzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VzcyBmaWxlcyB2aWEgdGhlaXIgRmlsZXN0YWNrIGhhbmRsZXMuXG4gICAqXG4gICAqIElmIGhlYWQgb3B0aW9uIGlzIHByb3ZpZGVkIC0gcmVxdWVzdCBoZWFkZXJzIGFyZSByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIElmIG1ldGFkYXRhIG9wdGlvbiBpcyBwcm92aWRlZCAtIG1ldGFkYXRhIG9iamVjdCBpcyByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIE90aGVyd2lzZSBmaWxlIGJsb2IgaXMgcmV0dXJuZWRcbiAgICogTWV0YWRhdGEgYW5kIGhlYWQgb3B0aW9ucyBjYW5ub3QgYmUgbWl4ZWRcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50LnJldHJpZXZlKCdmaWxlSGFuZGxlJywge1xuICAgKiAgbWV0YWRhdGE6IHRydWUsXG4gICAqIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAqICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAqIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICogIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICogfSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRG93bmxvYWRdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkb3dubG9hZClcbiAgICogQGRlcHJlY2F0ZWQgdXNlIG1ldGFkYXRhIG9yIGRvd25sb2FkIG1ldGhvZHMgaW5zdGVhZFxuICAgKiBAcGFyYW0gaGFuZGxlICAgIFZhbGlkIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSBvcHRpb25zICAgUmV0cmlldmVPcHRpb25zXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqIEB0aHJvd3MgICAgICAgICAgRXJyb3JcbiAgICovXG4gIHJldHJpZXZlKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogUmV0cmlldmVPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmV0cmlldmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBmaWxlIGJ5IGhhbmRsZVxuICAgKlxuICAgKlxuICAgKiAjIyMgQnJvd3NlciBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudC5kb3dubG9hZCgnZmlsZUhhbmRsZScpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAqIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgKiBpbWcuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMuZGF0YSlcbiAgICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpO1xuICAgKiB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICBjb25zb2xlLmVycm9yKGVycik7XG4gICAqIH0pXG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERvd25sb2FkXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZG93bmxvYWQpXG4gICAqIEBwYXJhbSBoYW5kbGUgICAgVmFsaWQgZmlsZSBoYW5kbGVcbiAgICogQHRocm93cyAgICAgICAgICBFcnJvclxuICAgKi9cbiAgZG93bmxvYWQoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPEZzUmVzcG9uc2U+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBkb3dubG9hZCh0aGlzLnNlc3Npb24sIGhhbmRsZSwgc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVyZmFjZSB0byB0aGUgRmlsZXN0YWNrIFtQcm9jZXNzaW5nIEFQSV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9wcm9jZXNzaW5nKS5cbiAgICogQ29udmVydCBhIFVSTCwgaGFuZGxlLCBvciBzdG9yYWdlIGFsaWFzIHRvIGFub3RoZXIgVVJMIHdoaWNoIGxpbmtzIHRvIHRoZSB0cmFuc2Zvcm1lZCBmaWxlLlxuICAgKiBZb3UgY2FuIG9wdGlvbmFsbHkgc3RvcmUgdGhlIHJldHVybmVkIFVSTCB3aXRoIGNsaWVudC5zdG9yZVVSTC5cbiAgICpcbiAgICogVHJhbnNmb3JtIHBhcmFtcyBjYW4gYmUgcHJvdmlkZWQgaW4gY2FtZWxDYXNlIG9yIHNuYWtlQ2FzZSBzdHlsZSBpZTogcGFydGlhbF9waXhlbGF0ZSBvciBwYXJ0aWFsUGl4ZWxhdGVcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdHJhbnNmb3JtZWRVcmwgPSBjbGllbnQudHJhbnNmb3JtKHVybCwge1xuICAgKiAgIGNyb3A6IHtcbiAgICogICAgIGRpbTogW3gsIHksIHdpZHRoLCBoZWlnaHRdLFxuICAgKiAgIH0sXG4gICAqICAgdmlnbmV0dGU6IHtcbiAgICogICAgIGJsdXJtb2RlOiAnZ2F1c3NpYW4nLFxuICAgKiAgICAgYW1vdW50OiA1MCxcbiAgICogICB9LFxuICAgKiAgIGZsaXA6IHRydWUsXG4gICAqICAgcGFydGlhbF9waXhlbGF0ZToge1xuICAgKiAgICAgb2JqZWN0czogW1sxMCwgMjAsIDIwMCwgMjUwXSwgWzI3NSwgOTEsIDUwMCwgNTU3XV0sXG4gICAqICAgfSxcbiAgICogfTtcbiAgICpcbiAgICogLy8gb3B0aW9uYWxseSBzdG9yZSB0aGUgbmV3IFVSTFxuICAgKiBjbGllbnQuc3RvcmVVUkwodHJhbnNmb3JtZWRVcmwpLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZXN0YWNrIFByb2Nlc3NpbmcgQVBJXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL3Byb2Nlc3NpbmcpXG4gICAqIEBwYXJhbSB1cmwgICAgIFNpbmdsZSBvciBtdWx0aXBsZSB2YWxpZCBVUkxzIChodHRwKHMpOi8vKSwgZmlsZSBoYW5kbGVzLCBvciBzdG9yYWdlIGFsaWFzZXMgKHNyYzovLykgdG8gYW4gaW1hZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRyYW5zZm9ybWF0aW9ucyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkIGJ5IHRoaXMgb2JqZWN0LlxuICAgKiBAcGFyYW0gYjY0ICAgICBVc2UgbmV3IG1vcmUgc2FmZSBmb3JtYXQgZm9yIGdlbmVyYXRpbmcgdHJhbnNmb3JtcyB1cmwgKGRlZmF1bHQ9ZmFsc2UpIE5vdGU6IElmIHRoZXJlIHdpbGwgYmUgYW55IGlzc3VlcyB3aXRoIHVybCBwbGVhc2UgdGVzdCBpdCB3aXRoIGVuYWJsZWQgYjY0IHN1cHBvcnRcbiAgICogQHJldHVybnMgICAgICAgQSBuZXcgVVJMIHRoYXQgcG9pbnRzIHRvIHRoZSB0cmFuc2Zvcm1lZCByZXNvdXJjZS5cbiAgICovXG4gIHRyYW5zZm9ybSh1cmw6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBUcmFuc2Zvcm1PcHRpb25zLCBiNjQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRyYW5zZm9ybSh0aGlzLnNlc3Npb24sIHVybCwgb3B0aW9ucywgYjY0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBtdWx0aS1wYXJ0IHVwbG9hZCBmbG93LiBVc2UgdGhpcyBmb3IgRmlsZXN0YWNrIENJTiBhbmQgRklJIHVwbG9hZHMuXG4gICAqXG4gICAqIEluIE5vZGUgcnVudGltZXMgdGhlIGZpbGUgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGUgcGF0aC5cbiAgICogVXBsb2FkaW5nIGZyb20gYSBOb2RlIGJ1ZmZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0b2tlbiA9IHt9O1xuICAgKiBjb25zdCBvblJldHJ5ID0gKG9iaikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZXRyeWluZyAke29iai5sb2NhdGlvbn0gZm9yICR7b2JqLmZpbGVuYW1lfS4gQXR0ZW1wdCAke29iai5hdHRlbXB0fSBvZiAxMC5gKTtcbiAgICogfTtcbiAgICpcbiAgICogY2xpZW50LnVwbG9hZChmaWxlLCB7IG9uUmV0cnkgfSwgeyBmaWxlbmFtZTogJ2Zvb2Jhci5qcGcnIH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogY2xpZW50LnVwbG9hZCh7ZmlsZSwgbmFtZX0sIHsgb25SZXRyeSB9LCB7IGZpbGVuYW1lOiAnZm9vYmFyLmpwZycgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiB0b2tlbi5wYXVzZSgpOyAgLy8gUGF1c2UgZmxvd1xuICAgKiB0b2tlbi5yZXN1bWUoKTsgLy8gUmVzdW1lIGZsb3dcbiAgICogdG9rZW4uY2FuY2VsKCk7IC8vIENhbmNlbCBmbG93IChyZWplY3RzKVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtJbnB1dEZpbGV9ICAgIGZpbGUgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBbRmlsZSB8IEJsb2IgfCBCdWZmZXIgfCBzdHJpbmddXG4gICAqIEBwYXJhbSB1cGxvYWRPcHRpb25zICBVcGxvYWRlciBvcHRpb25zLlxuICAgKiBAcGFyYW0gc3RvcmVPcHRpb25zICAgU3RvcmFnZSBvcHRpb25zLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgICAgICAgQSBjb250cm9sIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCBjYW5jZWwoKSwgcGF1c2UoKSwgYW5kIHJlc3VtZSgpLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgICAgICAgT3B0aW9uYWwgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgb3ZlcnJpZGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgdXBsb2FkKGZpbGU6IElucHV0RmlsZSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuICAgIHVwbG9hZC5zZXRTZXNzaW9uKHRoaXMuc2Vzc2lvbik7XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHVwbG9hZC5zZXRUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5KSB7XG4gICAgICB1cGxvYWQuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdXBsb2FkLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9yd2FyZEVycm9ycykge1xuICAgICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay1hcGlrZXknLCB0aGlzLnNlc3Npb24uYXBpa2V5KTtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucywgZGV0YWlsczogZS5kZXRhaWxzIH0pO1xuICAgICAgICAgIGUubWVzc2FnZSA9IGBGUy0ke2UubWVzc2FnZX1gO1xuXG4gICAgICAgICAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC51cGxvYWQoZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbZmlsZV0sIHsgb25SZXRyeSB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbe2ZpbGUsIG5hbWV9XSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlW119ICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nIChiYXNlNjQpXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICBtdWx0aXVwbG9hZChmaWxlOiBJbnB1dEZpbGVbXSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdmaWxlc3RhY2stYXBpa2V5JywgdGhpcy5zZXNzaW9uLmFwaWtleSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoZS5kZXRhaWxzKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zIH0pO1xuICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxFQUFFLFFBQVEsRUFBbUIsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUE0RCxNQUFNLGNBQWMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQXFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0UsT0FBTyxFQUFFLE1BQU0sRUFBaUMsTUFBTSxVQUFVLENBQUM7QUFFakUsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUE2QzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBQTRCLDBCQUFZO0lBaUJ0QyxnQkFBWSxNQUFjLEVBQVUsT0FBdUI7UUFBM0QsWUFDRSxpQkFBTyxTQXNCUjtRQXZCbUMsYUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFabkQsbUJBQWEsR0FB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QztJQUNsQyxDQUFDO0lBQ0gsYUFBQztBQUFELENBOWJBLEFBOGJDLENBOWIyQixZQUFZLEdBOGJ2QyIsImZpbGUiOiJsaWIvY2xpZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudGVtaXR0ZXIzJztcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L21pbmltYWwnO1xuaW1wb3J0IHsgY29uZmlnLCBIb3N0cyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IG1ldGFkYXRhLCBNZXRhZGF0YU9wdGlvbnMsIHJlbW92ZSwgcmV0cmlldmUsIFJldHJpZXZlT3B0aW9ucywgZG93bmxvYWQgfSBmcm9tICcuL2FwaS9maWxlJztcbmltcG9ydCB7IHRyYW5zZm9ybSwgVHJhbnNmb3JtT3B0aW9ucyB9IGZyb20gJy4vYXBpL3RyYW5zZm9ybSc7XG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vYXBpL3N0b3JlJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVXBsb2FkLCBJbnB1dEZpbGUsIFVwbG9hZE9wdGlvbnMsIFN0b3JlVXBsb2FkT3B0aW9ucywgVXBsb2FkVGFncyB9IGZyb20gJy4vYXBpL3VwbG9hZCc7XG5pbXBvcnQgeyBwcmV2aWV3LCBQcmV2aWV3T3B0aW9ucyB9IGZyb20gJy4vYXBpL3ByZXZpZXcnO1xuaW1wb3J0IHsgQ2xvdWRDbGllbnQgfSBmcm9tICcuL2FwaS9jbG91ZCc7XG5pbXBvcnQgeyBQcmVmZXRjaCwgUHJlZmV0Y2hSZXNwb25zZSwgUHJlZmV0Y2hPcHRpb25zIH0gZnJvbSAnLi9hcGkvcHJlZmV0Y2gnO1xuaW1wb3J0IHsgRnNSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdC90eXBlcyc7XG5pbXBvcnQgeyBTdG9yZVBhcmFtcyB9IGZyb20gJy4vZmlsZWxpbmsnO1xuXG5pbXBvcnQgeyBwaWNrZXIsIFBpY2tlckluc3RhbmNlLCBQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi9waWNrZXInO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuU2VudHJ5LmFkZEJyZWFkY3J1bWIoeyBjYXRlZ29yeTogJ3NkaycsIG1lc3NhZ2U6ICdmaWxlc3RhY2stanMtc2RrIHNjb3BlJyB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgYXBpa2V5OiBzdHJpbmc7XG4gIHVybHM6IEhvc3RzO1xuICBjbmFtZT86IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xuICBzaWduYXR1cmU/OiBzdHJpbmc7XG4gIHByZWZldGNoPzogUHJlZmV0Y2hSZXNwb25zZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eSB7XG4gIHBvbGljeTogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGllbnRPcHRpb25zIHtcbiAgW29wdGlvbjogc3RyaW5nXTogYW55O1xuICAvKipcbiAgICogU2VjdXJpdHkgb2JqZWN0IHdpdGggcG9saWN5IGFuZCBzaWduYXR1cmUga2V5cy5cbiAgICogQ2FuIGJlIHVzZWQgdG8gbGltaXQgY2xpZW50IGNhcGFiaWxpdGllcyBhbmQgcHJvdGVjdCBwdWJsaWMgVVJMcy5cbiAgICogSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHNlcnZlci1zaWRlIHBvbGljeSBhbmQgc2lnbmF0dXJlIGdlbmVyYXRpb24uXG4gICAqIFJlYWQgYWJvdXQgW3NlY3VyaXR5IHBvbGljaWVzXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvY29uY2VwdHMvc2VjdXJpdHkpLlxuICAgKi9cbiAgc2VjdXJpdHk/OiBTZWN1cml0eTtcbiAgLyoqXG4gICAqIERvbWFpbiB0byB1c2UgZm9yIGFsbCBVUkxzLiBfX1JlcXVpcmVzIHRoZSBjdXN0b20gQ05BTUUgYWRkb25fXy5cbiAgICogSWYgdGhpcyBpcyBlbmFibGVkIHRoZW4geW91IG11c3QgYWxzbyBzZXQgdXAgeW91ciBvd24gT0F1dGggYXBwbGljYXRpb25zXG4gICAqIGZvciBlYWNoIGNsb3VkIHNvdXJjZSB5b3Ugd2lzaCB0byB1c2UgaW4gdGhlIHBpY2tlci5cbiAgICovXG4gIGNuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlL2Rpc2FibGUgY2FjaGluZyBvZiB0aGUgY2xvdWQgc2Vzc2lvbiB0b2tlbi4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdXNlcnMgd2lsbCBiZSByZW1lbWJlcmVkIG9uIHlvdXIgZG9tYWluIHdoZW4gY2FsbGluZyB0aGUgY2xvdWQgQVBJIGZyb20gdGhlIGJyb3dzZXIuXG4gICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRva2VucyBzdG9yZWQgaW4gbG9jYWxTdG9yYWdlIGFyZSBhY2Nlc3NpYmxlIGJ5IG90aGVyIHNjcmlwdHMgb24gdGhlIHNhbWUgZG9tYWluLlxuICAgKi9cbiAgc2Vzc2lvbkNhY2hlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvcndhcmRpbmcgZXJyb3IgbG9ncyB0byBzZW50cnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZvcndhcmRFcnJvcnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBGaWxlc3RhY2sgY2xpZW50LCB0aGUgZW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgbWV0aG9kcy4gRW5jYXBzdWxhdGVzIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gKlxuICogIyMjIEV4YW1wbGVcbiAqIGBgYGpzXG4gKiAvLyBFUyBtb2R1bGVcbiAqIGltcG9ydCAqIGFzIGZpbGVzdGFjayBmcm9tICdmaWxlc3RhY2stanMnO1xuICogY29uc3QgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoJ2FwaWtleScpO1xuICogYGBgXG4gKlxuICogYGBganNcbiAqIC8vIFVNRCBtb2R1bGUgaW4gYnJvd3NlclxuICogPHNjcmlwdCBzcmM9XCJodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL2ZpbGVzdGFjay1qcy8zLngueC9maWxlc3RhY2subWluLmpzXCI+PC9zY3JpcHQ+XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uO1xuICBwcml2YXRlIGNsb3VkOiBDbG91ZENsaWVudDtcbiAgcHJpdmF0ZSBwcmVmZXRjaEluc3RhbmNlOiBQcmVmZXRjaDtcblxuICBwcml2YXRlIGZvcndhcmRFcnJvcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZpbGVzdGFjayB1dGlsc1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgZ2V0IHV0aWxzKCkge1xuICAgIHJldHVybiBVdGlscztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFwaWtleTogc3RyaW5nLCBwcml2YXRlIG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZm9yd2FyZEVycm9ycykge1xuICAgICAgdGhpcy5mb3J3YXJkRXJyb3JzID0gb3B0aW9ucy5mb3J3YXJkRXJyb3JzO1xuICAgIH1cblxuICAgIGlmICghYXBpa2V5IHx8IHR5cGVvZiBhcGlrZXkgIT09ICdzdHJpbmcnIHx8IGFwaWtleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmxzIH0gPSBjb25maWc7XG4gICAgdGhpcy5zZXNzaW9uID0geyBhcGlrZXksIHVybHMgfTtcblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBjb25zdCB7IGNuYW1lLCBzZWN1cml0eSB9ID0gb3B0aW9ucztcblxuICAgICAgdGhpcy5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgICB0aGlzLnNldENuYW1lKGNuYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnByZWZldGNoSW5zdGFuY2UgPSBuZXcgUHJlZmV0Y2godGhpcy5zZXNzaW9uKTtcbiAgICB0aGlzLmNsb3VkID0gbmV3IENsb3VkQ2xpZW50KHRoaXMuc2Vzc2lvbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBiYXNpYyBwcmVmZXRjaCByZXF1ZXN0IHRvIGNoZWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHByZWZldGNoKHBhcmFtczogUHJlZmV0Y2hPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZmV0Y2hJbnN0YW5jZS5nZXRDb25maWcocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2VjdXJpdHkgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldFNlY3VyaXR5KHNlY3VyaXR5OiBTZWN1cml0eSkge1xuICAgIGlmIChzZWN1cml0eSAmJiAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkge1xuICAgICAgdGhpcy5zZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5LnBvbGljeTtcbiAgICAgIHRoaXMuc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eS5zaWduYXR1cmU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gY25hbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNuYW1lXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldENuYW1lKGNuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNuYW1lIHx8IGNuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2Vzc2lvbi5jbmFtZSA9IGNuYW1lO1xuICAgIHRoaXMuc2Vzc2lvbi51cmxzID0gVXRpbHMucmVzb2x2ZUhvc3QodGhpcy5zZXNzaW9uLnVybHMsIGNuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY3VycmVudCBjbG91ZCBzZXNzaW9ucyBpbiB0aGUgcGlja2VyLlxuICAgKiBPcHRpb25hbGx5IHBhc3MgYSBjbG91ZCBzb3VyY2UgbmFtZSB0byBvbmx5IGxvZyBvdXQgb2YgdGhhdCBjbG91ZCBzb3VyY2UuXG4gICAqIFRoaXMgZXNzZW50aWFsbHkgY2xlYXJzIHRoZSBPQXV0aCBhdXRob3JpemF0aW9uIGNvZGVzIGZyb20gdGhlIEZpbGVzdGFjayBzZXNzaW9uLlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBjbG91ZCBzb3VyY2UgbmFtZS5cbiAgICovXG4gIGxvZ291dChuYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWQubG9nb3V0KG5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBkZXRhaWxlZCBkYXRhIG9mIHN0b3JlZCBmaWxlcy5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLm1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gTWV0YWRhdGFdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNtZXRhZGF0YSkuXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgTWV0YWRhdGEgZmllbGRzIHRvIGVuYWJsZSBvbiByZXNwb25zZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgbWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBNZXRhZGF0YU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBtZXRhZGF0YSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBuZXcgcGlja2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcGlja2VyKG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2Uge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHBpY2tlcih0aGlzLCBvcHRpb25zKTtcbiAgfVxuICAvKipcbiAgICogVXNlZCBmb3Igdmlld2luZyBmaWxlcyB2aWEgRmlsZXN0YWNrIGhhbmRsZXMgb3Igc3RvcmFnZSBhbGlhc2VzLCBfX3JlcXVpcmVzIERvY3VtZW50IFZpZXdlciBhZGRvbiB0byB5b3VyIEZpbGVzdGFjayBhcHBsaWNhdGlvbl9fLlxuICAgKiBPcGVucyBkb2N1bWVudCB2aWV3ZXIgaW4gbmV3IHdpbmRvdyBpZiBpZCBvcHRpb24gaXMgbm90IHByb3ZpZGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8ZGl2IGlkPVwicHJldmlld1wiPjwvZGl2PlxuICAgKlxuICAgKiBjbGllbnQucHJldmlldygnRENMNUs0NkZTM09JeGI1aXVLYnknLCB7IGlkOiAncHJldmlldycgfSk7XG4gICAqIGBgYFxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIFByZXZpZXcgb3B0aW9uc1xuICAgKi9cbiAgcHJldmlldyhoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFByZXZpZXdPcHRpb25zKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcHJldmlldyh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGZpbGUgZnJvbSBzdG9yYWdlIGFuZCB0aGUgRmlsZXN0YWNrIHN5c3RlbS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZShoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8YW55PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmVtb3ZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBmYWxzZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlICoqb25seSoqIGZyb20gdGhlIEZpbGVzdGFjayBzeXN0ZW0uIFRoZSBmaWxlIHJlbWFpbnMgaW4gc3RvcmFnZS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlTWV0YWRhdGEoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEZWxldGVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkZWxldGUpXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVtb3ZlTWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgdHJ1ZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBTdG9yZSBhIGZpbGUgZnJvbSBpdHMgVVJMLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAuc3RvcmVVUkwoJ2h0dHBzOi8vZDF3dHFhZmZhYWo2M3ouY2xvdWRmcm9udC5uZXQvaW1hZ2VzL05ZXzE5OV9FX29mX0hhbW1lcnRvd25fMjAxNC5qcGcnKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gU3RvcmVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNzdG9yZSlcbiAgICogQHBhcmFtIHVybCAgICAgICBWYWxpZCBVUkwgdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIENvbmZpZ3VyZSBmaWxlIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgT3B0aW9uYWwgY29udHJvbCB0b2tlbiB0byBjYWxsIC5jYW5jZWwoKVxuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAcGFyYW0gdXBsb2FkVGFncyBPcHRpb25hbCB0YWdzIHZpc2libGUgaW4gd2ViaG9va3MuXG4gICAqIEBwYXJhbSBoZWFkZXJzICAgIE9wdGlvbmFsIGhlYWRlcnMgdG8gc2VuZFxuICAgKiBAcGFyYW0gd29ya2Zsb3dJZHMgICAgT3B0aW9uYWwgd29ya2Zsb3dJZHMgdG8gc2VuZFxuICAgKi9cbiAgc3RvcmVVUkwodXJsOiBzdHJpbmcsIHN0b3JlUGFyYW1zPzogU3RvcmVQYXJhbXMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5LCB1cGxvYWRUYWdzPzogVXBsb2FkVGFncywgaGVhZGVycz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCB3b3JrZmxvd0lkcz86IHN0cmluZ1tdKTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgdXJsLFxuICAgICAgc3RvcmVQYXJhbXMsXG4gICAgICB0b2tlbixcbiAgICAgIHNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICB3b3JrZmxvd0lkcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2Nlc3MgZmlsZXMgdmlhIHRoZWlyIEZpbGVzdGFjayBoYW5kbGVzLlxuICAgKlxuICAgKiBJZiBoZWFkIG9wdGlvbiBpcyBwcm92aWRlZCAtIHJlcXVlc3QgaGVhZGVycyBhcmUgcmV0dXJuZWQgaW4gcHJvbWlzZVxuICAgKiBJZiBtZXRhZGF0YSBvcHRpb24gaXMgcHJvdmlkZWQgLSBtZXRhZGF0YSBvYmplY3QgaXMgcmV0dXJuZWQgaW4gcHJvbWlzZVxuICAgKiBPdGhlcndpc2UgZmlsZSBibG9iIGlzIHJldHVybmVkXG4gICAqIE1ldGFkYXRhIGFuZCBoZWFkIG9wdGlvbnMgY2Fubm90IGJlIG1peGVkXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudC5yZXRyaWV2ZSgnZmlsZUhhbmRsZScsIHtcbiAgICogIG1ldGFkYXRhOiB0cnVlLFxuICAgKiB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgKiAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgKiB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICBjb25zb2xlLmVycm9yKGVycik7XG4gICAqIH0pXG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERvd25sb2FkXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZG93bmxvYWQpXG4gICAqIEBkZXByZWNhdGVkIHVzZSBtZXRhZGF0YSBvciBkb3dubG9hZCBtZXRob2RzIGluc3RlYWRcbiAgICogQHBhcmFtIGhhbmRsZSAgICBWYWxpZCBmaWxlIGhhbmRsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIFJldHJpZXZlT3B0aW9uc1xuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAdGhyb3dzICAgICAgICAgIEVycm9yXG4gICAqL1xuICByZXRyaWV2ZShoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFJldHJpZXZlT3B0aW9ucywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8T2JqZWN0IHwgQmxvYj4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJldHJpZXZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zLCBzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgZmlsZSBieSBoYW5kbGVcbiAgICpcbiAgICpcbiAgICogIyMjIEJyb3dzZXIgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnQuZG93bmxvYWQoJ2ZpbGVIYW5kbGUnKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgKiBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICogaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzLmRhdGEpXG4gICAqIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTtcbiAgICogfSkuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgKiB9KVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEb3dubG9hZF0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2Rvd25sb2FkKVxuICAgKiBAcGFyYW0gaGFuZGxlICAgIFZhbGlkIGZpbGUgaGFuZGxlXG4gICAqIEB0aHJvd3MgICAgICAgICAgRXJyb3JcbiAgICovXG4gIGRvd25sb2FkKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxGc1Jlc3BvbnNlPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gZG93bmxvYWQodGhpcy5zZXNzaW9uLCBoYW5kbGUsIHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcmZhY2UgdG8gdGhlIEZpbGVzdGFjayBbUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZykuXG4gICAqIENvbnZlcnQgYSBVUkwsIGhhbmRsZSwgb3Igc3RvcmFnZSBhbGlhcyB0byBhbm90aGVyIFVSTCB3aGljaCBsaW5rcyB0byB0aGUgdHJhbnNmb3JtZWQgZmlsZS5cbiAgICogWW91IGNhbiBvcHRpb25hbGx5IHN0b3JlIHRoZSByZXR1cm5lZCBVUkwgd2l0aCBjbGllbnQuc3RvcmVVUkwuXG4gICAqXG4gICAqIFRyYW5zZm9ybSBwYXJhbXMgY2FuIGJlIHByb3ZpZGVkIGluIGNhbWVsQ2FzZSBvciBzbmFrZUNhc2Ugc3R5bGUgaWU6IHBhcnRpYWxfcGl4ZWxhdGUgb3IgcGFydGlhbFBpeGVsYXRlXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRyYW5zZm9ybWVkVXJsID0gY2xpZW50LnRyYW5zZm9ybSh1cmwsIHtcbiAgICogICBjcm9wOiB7XG4gICAqICAgICBkaW06IFt4LCB5LCB3aWR0aCwgaGVpZ2h0XSxcbiAgICogICB9LFxuICAgKiAgIHZpZ25ldHRlOiB7XG4gICAqICAgICBibHVybW9kZTogJ2dhdXNzaWFuJyxcbiAgICogICAgIGFtb3VudDogNTAsXG4gICAqICAgfSxcbiAgICogICBmbGlwOiB0cnVlLFxuICAgKiAgIHBhcnRpYWxfcGl4ZWxhdGU6IHtcbiAgICogICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICAgKiAgIH0sXG4gICAqIH07XG4gICAqXG4gICAqIC8vIG9wdGlvbmFsbHkgc3RvcmUgdGhlIG5ldyBVUkxcbiAgICogY2xpZW50LnN0b3JlVVJMKHRyYW5zZm9ybWVkVXJsKS50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGVzdGFjayBQcm9jZXNzaW5nIEFQSV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9wcm9jZXNzaW5nKVxuICAgKiBAcGFyYW0gdXJsICAgICBTaW5nbGUgb3IgbXVsdGlwbGUgdmFsaWQgVVJMcyAoaHR0cChzKTovLyksIGZpbGUgaGFuZGxlcywgb3Igc3RvcmFnZSBhbGlhc2VzIChzcmM6Ly8pIHRvIGFuIGltYWdlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUcmFuc2Zvcm1hdGlvbnMgYXJlIGFwcGxpZWQgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBieSB0aGlzIG9iamVjdC5cbiAgICogQHBhcmFtIGI2NCAgICAgVXNlIG5ldyBtb3JlIHNhZmUgZm9ybWF0IGZvciBnZW5lcmF0aW5nIHRyYW5zZm9ybXMgdXJsIChkZWZhdWx0PWZhbHNlKSBOb3RlOiBJZiB0aGVyZSB3aWxsIGJlIGFueSBpc3N1ZXMgd2l0aCB1cmwgcGxlYXNlIHRlc3QgaXQgd2l0aCBlbmFibGVkIGI2NCBzdXBwb3J0XG4gICAqIEByZXR1cm5zICAgICAgIEEgbmV3IFVSTCB0aGF0IHBvaW50cyB0byB0aGUgdHJhbnNmb3JtZWQgcmVzb3VyY2UuXG4gICAqL1xuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogVHJhbnNmb3JtT3B0aW9ucywgYjY0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0cmFuc2Zvcm0odGhpcy5zZXNzaW9uLCB1cmwsIG9wdGlvbnMsIGI2NCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoZmlsZSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoe2ZpbGUsIG5hbWV9LCB7IG9uUmV0cnkgfSwgeyBmaWxlbmFtZTogJ2Zvb2Jhci5qcGcnIH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlfSAgICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIHVwbG9hZChmaWxlOiBJbnB1dEZpbGUsIG9wdGlvbnM/OiBVcGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnM/OiBTdG9yZVVwbG9hZE9wdGlvbnMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgbGV0IHVwbG9hZCA9IG5ldyBVcGxvYWQob3B0aW9ucywgc3RvcmVPcHRpb25zKTtcbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICB1cGxvYWQub24oJ3N0YXJ0JywgKCkgPT4gdGhpcy5lbWl0KCd1cGxvYWQuc3RhcnQnKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3J3YXJkRXJyb3JzKSB7XG4gICAgICAgIFNlbnRyeS53aXRoU2NvcGUoc2NvcGUgPT4ge1xuICAgICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLWFwaWtleScsIHRoaXMuc2Vzc2lvbi5hcGlrZXkpO1xuICAgICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhKCdmaWxlc3RhY2stb3B0aW9ucycsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zLCBkZXRhaWxzOiBlLmRldGFpbHMgfSk7XG4gICAgICAgICAgZS5tZXNzYWdlID0gYEZTLSR7ZS5tZXNzYWdlfWA7XG5cbiAgICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdCgndXBsb2FkLmVycm9yJywgZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBsb2FkLnVwbG9hZChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBtdWx0aS1wYXJ0IHVwbG9hZCBmbG93LiBVc2UgdGhpcyBmb3IgRmlsZXN0YWNrIENJTiBhbmQgRklJIHVwbG9hZHMuXG4gICAqXG4gICAqIEluIE5vZGUgcnVudGltZXMgdGhlIGZpbGUgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGUgcGF0aC5cbiAgICogVXBsb2FkaW5nIGZyb20gYSBOb2RlIGJ1ZmZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0b2tlbiA9IHt9O1xuICAgKiBjb25zdCBvblJldHJ5ID0gKG9iaikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZXRyeWluZyAke29iai5sb2NhdGlvbn0gZm9yICR7b2JqLmZpbGVuYW1lfS4gQXR0ZW1wdCAke29iai5hdHRlbXB0fSBvZiAxMC5gKTtcbiAgICogfTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFtmaWxlXSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFt7ZmlsZSwgbmFtZX1dLCB7IG9uUmV0cnkgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiB0b2tlbi5wYXVzZSgpOyAgLy8gUGF1c2UgZmxvd1xuICAgKiB0b2tlbi5yZXN1bWUoKTsgLy8gUmVzdW1lIGZsb3dcbiAgICogdG9rZW4uY2FuY2VsKCk7IC8vIENhbmNlbCBmbG93IChyZWplY3RzKVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtJbnB1dEZpbGVbXX0gIGZpbGUgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBbRmlsZSB8IEJsb2IgfCBCdWZmZXIgfCBzdHJpbmcgKGJhc2U2NCldXG4gICAqIEBwYXJhbSB1cGxvYWRPcHRpb25zICBVcGxvYWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIG11bHRpdXBsb2FkKGZpbGU6IElucHV0RmlsZVtdLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG5cbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICB1cGxvYWQub24oJ3N0YXJ0JywgKCkgPT4gdGhpcy5lbWl0KCd1cGxvYWQuc3RhcnQnKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdmaWxlc3RhY2stYXBpa2V5JywgdGhpcy5zZXNzaW9uLmFwaWtleSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoZS5kZXRhaWxzKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zIH0pO1xuICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19 |
@@ -144,2 +144,9 @@ import { Client } from './client'; | ||
} | ||
export interface PickerFileWithTokenCallback { | ||
(file: PickerFileMetadata, token?: { | ||
pause?: () => void; | ||
resume?: () => void; | ||
cancel?: () => void; | ||
}): void | Promise<any>; | ||
} | ||
export interface PickerFileCancelCallback { | ||
@@ -343,3 +350,3 @@ (file: PickerFileMetadata): void; | ||
* - gmail | ||
* - picasa | ||
* - googlephotos | ||
* - onedrive | ||
@@ -560,3 +567,3 @@ * - onedriveforbusiness | ||
*/ | ||
onFileUploadStarted?: PickerFileCallback; | ||
onFileUploadStarted?: PickerFileWithTokenCallback; | ||
/** | ||
@@ -625,2 +632,13 @@ * Called when a file is done uploading. | ||
useSentryBreadcrumbs?: boolean; | ||
/** | ||
* Specify which Picker instance should respond to paste event. | ||
* By default only hovered instance responds to event. | ||
* @param {boolean = false} pasteToFirstInViewPort If none instance is hovered take first picker instance fully visible in viewport | ||
* @param {boolean = false} pasteToFirstInstance If none instance is hovered take first picker instance that is initialized | ||
* @pasteToFirstInViewPort is checked first | ||
*/ | ||
pasteMode?: { | ||
pasteToFirstInViewPort?: boolean; | ||
pasteToFirstInstance?: boolean; | ||
}; | ||
} | ||
@@ -627,0 +645,0 @@ export interface PickerCropOptions { |
@@ -138,2 +138,2 @@ /* | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUErRC9ELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsNEJBQVMsQ0FBQTtJQUNULDhCQUFVLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUE0R0QsTUFBTSxDQUFOLElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBbUIsQ0FBQTtJQUNuQiwwQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUk1QjtBQWtpQkQ7Ozs7O0dBS0c7QUFDSDtJQUdFLHNCQUFZLE1BQWMsRUFBRSxPQUF1QjtRQUNqRCxJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzdCLE1BQU0sSUFBSSxjQUFjLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVLLDJCQUFJLEdBQVY7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUE7O3dCQUFuQixTQUFtQixDQUFDOzs7OztLQUNyQjtJQUVLLDJCQUFJLEdBQVYsVUFBVyxLQUFZOzs7Ozs0QkFDTixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFBOzt3QkFBeEIsU0FBd0IsQ0FBQzs7Ozs7S0FDMUI7SUFFSyw0QkFBSyxHQUFYOzs7Ozs0QkFDaUIscUJBQU0sSUFBSSxDQUFDLFlBQVksRUFBQTs7d0JBQWhDLE1BQU0sR0FBRyxTQUF1Qjt3QkFDdEMscUJBQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFBOzt3QkFBcEIsU0FBb0IsQ0FBQzs7Ozs7S0FDdEI7SUFFSyw2QkFBTSxHQUFaOzs7Ozs0QkFDaUIscUJBQU0sSUFBSSxDQUFDLFlBQVksRUFBQTs7d0JBQWhDLE1BQU0sR0FBRyxTQUF1Qjt3QkFDdEMscUJBQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFBOzt3QkFBckIsU0FBcUIsQ0FBQzs7Ozs7S0FDdkI7SUFFYSxpQ0FBVSxHQUF4QixVQUF5QixNQUFjLEVBQUUsT0FBdUI7Ozs7Ozt3QkFDeEIsR0FBRyxHQUFTLE1BQU0sdUJBQWYsQ0FBZ0I7d0JBQzFDLHFCQUFNLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0F0Q0EsQUFzQ0MsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRyxVQUFDLE1BQWMsRUFBRSxPQUF1QjtJQUM1RCxPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL3BpY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgbG9hZE1vZHVsZSwgRklMRVNUQUNLX01PRFVMRVMgfSBmcm9tICdAZmlsZXN0YWNrL2xvYWRlcic7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciwgRmlsZXN0YWNrRXJyb3JUeXBlIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuaW1wb3J0IHsgRlNQcm9ncmVzc0V2ZW50LCBVcGxvYWRPcHRpb25zLCBXb3JrZmxvd0NvbmZpZyB9IGZyb20gJy4vYXBpL3VwbG9hZC90eXBlcyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIFBpY2tlclBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJJbnN0YW5jZSB7XG4gIC8qKlxuICAgKiBDbG9zZSBwaWNrZXIuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjbG9zZTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQ2FuY2VsIHBpY2tlciB1cGxvYWRzLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgY2FuY2VsOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcGVuIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIG9wZW46ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBsaXN0IG9mIGZpbGVzIHRvIG9wZW4gaW4gdGhlIHBpY2tlciBmb3IgY3JvcHBpbmdcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gPGlucHV0IGlkPVwiZmlsZVNlbGVjdFwiIHR5cGU9XCJmaWxlXCI+XG4gICAqXG4gICAqIGNvbnN0IGlucHV0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZVNlbGVjdCcpO1xuICAgKiBjb25zdCBwaWNrZXIgPSBjbGllbnQucGlja2VyKHtcbiAgICogICBvblVwbG9hZERvbmU6IHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpLFxuICAgKiB9KTtcbiAgICpcbiAgICogaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgKiAgIHBpY2tlci5jcm9wKGUudGFyZ2V0LmZpbGVzKTtcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIE9yIHBhc3MgYW4gYXJyYXkgb2YgVVJMIHN0cmluZ3NcbiAgICogY29uc3QgdXJscyA9IFtcbiAgICogICAnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvZm94X2luX2ZvcmVzdDEuanBnJyxcbiAgICogICAnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvc2FpbC5qcGcnLFxuICAgKiBdO1xuICAgKiBwaWNrZXIuY3JvcCh1cmxzKTtcbiAgICogYGBgXG4gICAqL1xuICBjcm9wOiAoZmlsZXM6IGFueVtdKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckNyb3BwZWREYXRhIHtcbiAgY3JvcEFyZWE6IHtcbiAgICAvKipcbiAgICAgKiBbeCwgeV1cbiAgICAgKi9cbiAgICBwb3NpdGlvbjogW251bWJlciwgbnVtYmVyXTtcbiAgICAvKipcbiAgICAgKiBbd2lkdGgsIGhlaWdodF1cbiAgICAgKi9cbiAgICBzaXplOiBbbnVtYmVyLCBudW1iZXJdO1xuICB9O1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICBvcmlnaW5hbEltYWdlU2l6ZTogW251bWJlciwgbnVtYmVyXTtcbn1cblxuZXhwb3J0IGVudW0gUm90YXRlRGlyZWN0aW9uIHtcbiAgY3cgPSAnQ1cnLFxuICBjY3c9ICdDQ1cnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclJvdGF0ZWREYXRhIHtcbiAgLyoqXG4gICAqIEFtb3VudCByb3RhdGVkIGluIGRlZ3JlZXMuXG4gICAqL1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKipcbiAgICogQ2FuIGJlIENXIG9yIENDVyAoY2xvY2t3aXNlIC8gY291bnRlci1jbG9ja3dpc2UpXG4gICAqL1xuICBkaXJlY3Rpb246IFJvdGF0ZURpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlTWV0YWRhdGEge1xuICAvKipcbiAgICogVGhlIGNsb3VkIGNvbnRhaW5lciBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBjb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBhbmQgc2l6ZSBpbmZvcm1hdGlvbiBmb3IgY3JvcHBlZCBpbWFnZXMuXG4gICAqL1xuICBjcm9wcGVkPzogUGlja2VyQ3JvcHBlZERhdGE7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEZpbGVzdGFjayBoYW5kbGUgZm9yIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgaGFuZGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaGFzaC1wcmVmaXhlZCBjbG91ZCBzdG9yYWdlIHBhdGguXG4gICAqL1xuICBrZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgbWltZXR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgb2YgdGhlIGxvY2FsIGJpbmFyeSBmaWxlLiBBbHNvIHNlZSB0aGUgcGljayBvcHRpb24gYGV4cG9zZU9yaWdpbmFsRmlsZWAgaWYgeW91IHdhbnQgdGhlIHVuZGVybHlpbmcgYEZpbGVgIG9iamVjdC5cbiAgICovXG4gIG9yaWdpbmFsRmlsZT86IG9iamVjdCB8IEZpbGU7XG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIG9mIHRoZSBmaWxlLCBlLmcuIC9Gb2xkZXIvZmlsZS5qcGcuXG4gICAqL1xuICBvcmlnaW5hbFBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIERpcmVjdGlvbiBhbmQgdmFsdWUgaW5mb3JtYXRpb24gZm9yIHJvdGF0ZWQgaW1hZ2VzLlxuICAgKi9cbiAgcm90YXRlZD86IFBpY2tlclJvdGF0ZWREYXRhO1xuICAvKipcbiAgICogU2l6ZSBpbiBieXRlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHNpemU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZnJvbSB3aGVyZSB0aGUgZmlsZSB3YXMgcGlja2VkLlxuICAgKi9cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgRmlsZXN0YWNrIHRyYW5zaXQgc3RhdHVzLlxuICAgKi9cbiAgc3RhdHVzPzogc3RyaW5nO1xuICAvKipcbiAgICogQSB1dWlkIGZvciB0cmFja2luZyB0aGlzIGZpbGUgaW4gY2FsbGJhY2tzLlxuICAgKi9cbiAgdXBsb2FkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBGaWxlc3RhY2sgQ0ROIFVSTCBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdXRoVGV4dE9wdGlvbnMge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgdG9wPzogc3RyaW5nW10sXG4gICAgYm90dG9tPzogc3RyaW5nW11cbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJSZXNwb25zZSB7XG4gIGZpbGVzVXBsb2FkZWQ6IFBpY2tlckZpbGVNZXRhZGF0YVtdO1xuICBmaWxlc0ZhaWxlZDogUGlja2VyRmlsZU1ldGFkYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUNhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSk6IHZvaWQgfCBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUNhbmNlbENhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUVycm9yQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCBlcnJvcjogRXJyb3IpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVQcm9ncmVzc0NhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSwgZXZlbnQ6IEZTUHJvZ3Jlc3NFdmVudCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVXBsb2FkU3RhcnRlZENhbGxiYWNrIHtcbiAgKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrIHtcbiAgKGZpbGVzOiBQaWNrZXJSZXNwb25zZSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBlbnVtIFBpY2tlckRpc3BsYXlNb2RlIHtcbiAgaW5saW5lID0gJ2lubGluZScsXG4gIG92ZXJsYXkgPSAnb3ZlcmxheScsXG4gIGRyb3BQYW5lID0gJ2Ryb3BQYW5lJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJEcm9wUGFuZU9wdGlvbnMge1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBjcm9wIFVJIGZvciBkcm9wcGVkIGZpbGVzLlxuICAgKi9cbiAgY3JvcEZpbGVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgdGV4dCBjb250ZW50IGluIHRoZSBkcm9wIHBhbmUuXG4gICAqL1xuICBjdXN0b21UZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgZmlsZSBpbnB1dCBvbiBjbGljay4gVGhpcyBkb2VzIG5vdCBkaXNhYmxlIHRoZSBgb25DbGlja2AgY2FsbGJhY2suXG4gICAqL1xuICBkaXNhYmxlQ2xpY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBmdWxsLXBhZ2UgZHJvcCB6b25lIG92ZXJsYXkuXG4gICAqL1xuICBvdmVybGF5PzogYm9vbGVhbjtcbiAgb25EcmFnRW50ZXI/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIG9uRHJhZ0xlYXZlPzogKCkgPT4gdm9pZDtcbiAgb25EcmFnT3Zlcj86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgb25Ecm9wPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogYG9uU3VjY2Vzc2AgbXVzdCBiZSB1c2VkIGluc3RlYWQgb2YgYG9uVXBsb2FkRG9uZWAuIFRoZSBkcm9wIHBhbmUgdXNlcyBpdHMgb3duIGNhbGxiYWNrcyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4gVGhpcyBtaWdodCBldmVudHVhbGx5IGNoYW5nZS5cbiAgICovXG4gIG9uU3VjY2Vzcz86IChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pID0+IHZvaWQ7XG4gIG9uRXJyb3I/OiAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKSA9PiB2b2lkO1xuICBvblByb2dyZXNzPzogKHBlcmNlbnQ6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DbGljaz86IChldnQ6IGFueSkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFRvZ2dsZSBpY29uIGVsZW1lbnQgaW4gZHJvcCBwYW5lLlxuICAgKi9cbiAgc2hvd0ljb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHVwbG9hZCBwcm9ncmVzcyBkaXNwbGF5LlxuICAgKi9cbiAgc2hvd1Byb2dyZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJTdG9yZU9wdGlvbnMge1xuICAvKipcbiAgICogTG9jYXRpb24gZm9yIHN0b3JlZCBmaWxlLiBPbmUgb2YgJ3MzJywgJ2djcycsICdhenVyZScsICdyYWNrc3BhY2UnLCBvciAnZHJvcGJveCcuXG4gICAqL1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZnkgc3RvcmFnZSBjb250YWluZXIuXG4gICAqL1xuICBjb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgY29udGFpbmVyIHBhdGguIEluZGljYXRlIGEgZm9sZGVyIGJ5IGFkZGluZyBhIHRyYWlsaW5nIHNsYXNoLiBXaXRob3V0IGEgdHJhaWxpbmcgc2xhc2ggYWxsIGZpbGVzIHdpbGwgYmUgc3RvcmVkIHRvIHRoZSBzYW1lIG9iamVjdC5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IFMzIHJlZ2lvbi5cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFMzIGNvbnRhaW5lciBhY2Nlc3MuICdwdWJsaWMnIG9yICdwcml2YXRlJy5cbiAgICovXG4gIGFjY2Vzcz86IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3dzIGlkcyB0byBydW4gYWZ0ZXIgdXBsb2FkXG4gICAqL1xuICB3b3JrZmxvd3M/OiBzdHJpbmdbXSB8IFdvcmtmbG93Q29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3VzdG9tVGV4dCB7XG4gIC8vIEFjdGlvbnNcbiAgVXBsb2FkPzogc3RyaW5nO1xuICAnVXBsb2FkIG1vcmUnPzogc3RyaW5nO1xuICAnRGVzZWxlY3QgQWxsJz86IHN0cmluZztcbiAgJ1ZpZXcvRWRpdCBTZWxlY3RlZCc/OiBzdHJpbmc7XG4gICdTaWduIE91dCc/OiBzdHJpbmc7XG5cbiAgLy8gU291cmNlIExhYmVsc1xuICAnTXkgRGV2aWNlJz86IHN0cmluZztcbiAgJ1dlYiBTZWFyY2gnPzogc3RyaW5nO1xuICAnVGFrZSBQaG90byc/OiBzdHJpbmc7XG4gICdMaW5rIChVUkwpJz86IHN0cmluZztcbiAgJ1JlY29yZCBWaWRlbyc/OiBzdHJpbmc7XG4gICdSZWNvcmQgQXVkaW8nPzogc3RyaW5nO1xuXG4gIC8vIEN1c3RvbSBTb3VyY2VcbiAgJ0N1c3RvbSBTb3VyY2UnPzogc3RyaW5nO1xuXG4gIC8vIEZvb3RlciBUZXh0XG4gIEFkZD86IHN0cmluZztcbiAgJ21vcmUgZmlsZSc/OiBzdHJpbmc7XG4gICdtb3JlIGZpbGVzJz86IHN0cmluZztcblxuICAvLyBDbG91ZFxuICAnQ29ubmVjdCB7cHJvdmlkZXJOYW1lfSc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRmlsZXMgZnJvbSB7cHJvdmlkZXJOYW1lfSc/OiBzdHJpbmc7XG4gICdZb3UgbmVlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB7cHJvdmlkZXJOYW1lfS4nPzogc3RyaW5nO1xuICAnQSBuZXcgcGFnZSB3aWxsIG9wZW4gdG8gY29ubmVjdCB5b3VyIGFjY291bnQuJz86IHN0cmluZztcbiAgJ1dlIG9ubHkgZXh0cmFjdCBpbWFnZXMgYW5kIG5ldmVyIG1vZGlmeSBvciBkZWxldGUgdGhlbS4nPzogc3RyaW5nO1xuICAnVG8gZGlzY29ubmVjdCBmcm9tIHtwcm92aWRlck5hbWV9IGNsaWNrIFwiU2lnbiBvdXRcIiBidXR0b24gaW4gdGhlIG1lbnUuJz86IHN0cmluZztcbiAgJ1NpZ24gaW4gd2l0aCBHb29nbGUnPzogc3RyaW5nO1xuICAnR28gYmFjayc/OiBzdHJpbmc7XG4gICdUaGlzIGZvbGRlciBpcyBlbXB0eS4nPzogc3RyaW5nO1xuXG4gIC8vIFN1bW1hcnlcbiAgRmlsZXM/OiBzdHJpbmc7XG4gIEltYWdlcz86IHN0cmluZztcbiAgVXBsb2FkZWQ/OiBzdHJpbmc7XG4gIFVwbG9hZGluZz86IHN0cmluZztcbiAgQ29tcGxldGVkPzogc3RyaW5nO1xuICBGaWx0ZXI/OiBzdHJpbmc7XG4gICdDcm9wcGVkIEltYWdlcyc/OiBzdHJpbmc7XG4gICdFZGl0ZWQgSW1hZ2VzJz86IHN0cmluZztcbiAgJ1NlbGVjdGVkIEZpbGVzJz86IHN0cmluZztcbiAgJ0Nyb3AgaXMgcmVxdWlyZWQgb24gaW1hZ2VzJz86IHN0cmluZztcblxuICAvLyBUcmFuc2Zvcm1cbiAgQ3JvcD86IHN0cmluZztcbiAgQ2lyY2xlPzogc3RyaW5nO1xuICBSb3RhdGU/OiBzdHJpbmc7XG4gIE1hc2s/OiBzdHJpbmc7XG4gIFJldmVydD86IHN0cmluZztcbiAgRWRpdD86IHN0cmluZztcbiAgUmVzZXQ/OiBzdHJpbmc7XG4gIERvbmU/OiBzdHJpbmc7XG4gIFNhdmU/OiBzdHJpbmc7XG4gIE5leHQ/OiBzdHJpbmc7XG4gICdFZGl0IEltYWdlJz86IHN0cmluZztcbiAgJ1RoaXMgaW1hZ2UgY2Fubm90IGJlIGVkaXRlZCc/OiBzdHJpbmc7XG5cbiAgLy8gUmV0cnkgbWVzc2FnaW5nXG4gICdDb25uZWN0aW9uIExvc3QnPzogc3RyaW5nO1xuICAnRmFpbGVkIFdoaWxlIFVwbG9hZGluZyc/OiBzdHJpbmc7XG4gICdSZXRyeWluZyBpbic/OiBzdHJpbmc7XG4gICdUcnkgYWdhaW4nPzogc3RyaW5nO1xuICAnVHJ5IG5vdyc/OiBzdHJpbmc7XG5cbiAgLy8gTG9jYWwgRmlsZSBTb3VyY2VcbiAgJ0RyYWcgYW5kIERyb3AsIENvcHkgYW5kIFBhc3RlIEZpbGVzJz86IHN0cmluZztcbiAgJ29yIERyYWcgYW5kIERyb3AsIENvcHkgYW5kIFBhc3RlIEZpbGVzJz86IHN0cmluZztcbiAgJ1NlbGVjdCBGaWxlcyB0byBVcGxvYWQnPzogc3RyaW5nO1xuICAnU2VsZWN0IEZyb20nPzogc3RyaW5nO1xuICAnRHJvcCB5b3VyIGZpbGVzIGFueXdoZXJlJz86IHN0cmluZztcblxuICAvLyBJbnB1dCBwbGFjZWhvbGRlcnNcbiAgJ0VudGVyIGEgVVJMJz86IHN0cmluZztcbiAgJ1NlYXJjaCBpbWFnZXMnPzogc3RyaW5nO1xuXG4gIC8vIFdlYmNhbSBTb3VyY2VcbiAgJ1dlYmNhbSBEaXNhYmxlZCc/OiBzdHJpbmc7XG4gICdXZWJjYW0gTm90IFN1cHBvcnRlZCc/OiBzdHJpbmc7XG4gICdQbGVhc2UgZW5hYmxlIHlvdXIgd2ViY2FtIHRvIHRha2UgYSBwaG90by4nPzogc3RyaW5nO1xuICAnWW91ciBjdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB3ZWJjYW0gZnVuY3Rpb25hbGl0eS4nPzogc3RyaW5nO1xuICAnV2Ugc3VnZ2VzdCB1c2luZyBDaHJvbWUgb3IgRmlyZWZveC4nPzogc3RyaW5nO1xuXG4gIC8vIEVycm9yIE5vdGlmaWNhdGlvbnNcbiAgJ0ZpbGUge2Rpc3BsYXlOYW1lfSBpcyBub3QgYW4gYWNjZXB0ZWQgZmlsZSB0eXBlLiBUaGUgYWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUge3R5cGVzfSc/OiBzdHJpbmc7XG4gICdGaWxlIHtkaXNwbGF5TmFtZX0gaXMgdG9vIGJpZy4gVGhlIGFjY2VwdGVkIGZpbGUgc2l6ZSBpcyBsZXNzIHRoYW4ge3JvdW5kRmlsZVNpemV9Jz86IHN0cmluZztcbiAgJ091ciBmaWxlIHVwbG9hZCBsaW1pdCBpcyB7bWF4RmlsZXN9IHtmaWxlc1RleHR9Jz86IHN0cmluZztcbiAgJ05vIHNlYXJjaCByZXN1bHRzIGZvdW5kIGZvciBcIntzZWFyY2h9XCInPzogc3RyaW5nO1xuICAnQW4gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uJz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IGZpbGUgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwaWNrZWQuIEZvcm1hdHMgYWNjZXB0ZWQ6XG4gICAqICAtIC5wZGYgPC0gYW55IGZpbGUgZXh0ZW5zaW9uXG4gICAqICAtIGltYWdlL2pwZWcgPC0gYW55IG1pbWUgdHlwZSBjb21tb25seSBrbm93biBieSBicm93c2Vyc1xuICAgKiAgLSBpbWFnZS8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgaW1hZ2VzXG4gICAqICAtIHZpZGVvLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiB2aWRlbyBmaWxlc1xuICAgKiAgLSBhdWRpby8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgYXVkaW8gZmlsZXNcbiAgICogIC0gYXBwbGljYXRpb24vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIGFwcGxpY2F0aW9uIGZpbGVzXG4gICAqICAtIHRleHQvKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIHRleHQgZmlsZXNcbiAgICovXG4gIGFjY2VwdD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ3VzdG9tIGFjY2VwdCBjaGVjayBmdW5jdGlvblxuICAgKiBgYGBqYXZhc2NyaXB0XG4gICAqIGFjY2VwdEZuOiAoZmlsZSwgb3B0aW9ucykgPT4ge1xuICAgKiAgcmV0dXJuIG9wdGlvbnMubWltZUZyb21NYWdpY0J5dGVzKGZpbGUub3JpZ2luYWxGaWxlKS50aGVuKChyZXMpID0+IHsgLy8gd2UgY2FuIGNoZWNrIG1pbWV0eXBlIGZyb20gbWFnaWMgYnl0ZXNcbiAgICogICAgLy9jb25zb2xlLmxvZyhvcHRpb25zLm1pbWVGcm9tRXh0ZW5zaW9uKGZpbGUub3JpZ2luYWxGaWxlLm5hbWUpKTsgLy8gb3IgY2hlY2sgZXh0ZW5zaW9uIGZyb20gZmlsZXN0YWNrIGV4dGVuc2lvbnMgZGF0YWJhc2VcbiAgICogICAgLy8gdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWNjZXB0IHRoYXQgZmlsZScpIC8vIHdlIGNhbiB0aHJvdyBleGNlcHRpb24gdG8gYmxvY2sgZmlsZSB1cGxvYWRcbiAgICogICAgLy8gcmV0dXJuIFByb21pc2UucmVqZWN0KCdDYW5ub3QgYWNjZXB0IHRoYXQgZmlsZScnKSAvLyBvciByZWplY3QgYSBwcm9taXNlXG4gICAqICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICogIH0pO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWNjZXB0Rm4/OiAoUGlja2VyRmlsZU1ldGFkYXRhLCBQaWNrZXJBY2NlcHRGbk9wdGlvbnMpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFByZXZlbnQgbW9kYWwgY2xvc2Ugb24gdXBsb2FkIGZhaWx1cmUgYW5kIGFsbG93IHVzZXJzIHRvIHJldHJ5LlxuICAgKi9cbiAgYWxsb3dNYW51YWxSZXRyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAgVmFsaWQgc291cmNlcyBhcmU6XG4gICAqICAtIGxvY2FsX2ZpbGVfc3lzdGVtIC0gRGVmYXVsdFxuICAgKiAgLSB1cmwgLSBEZWZhdWx0XG4gICAqICAtIGltYWdlc2VhcmNoIC0gRGVmYXVsdFxuICAgKiAgLSBmYWNlYm9vayAtIERlZmF1bHRcbiAgICogIC0gaW5zdGFncmFtIC0gRGVmYXVsdFxuICAgKiAgLSBnb29nbGVkcml2ZSAtIERlZmF1bHRcbiAgICogIC0gZHJvcGJveCAtIERlZmF1bHRcbiAgICogIC0gd2ViY2FtIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIHZpZGVvIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIGF1ZGlvIC0gVXNlcyBkZXZpY2UgbWVudSBvbiBtb2JpbGUuIE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIFNhZmFyaSBhbmQgSUUuXG4gICAqICAtIGJveFxuICAgKiAgLSBnaXRodWJcbiAgICogIC0gZ21haWxcbiAgICogIC0gcGljYXNhXG4gICAqICAtIG9uZWRyaXZlXG4gICAqICAtIG9uZWRyaXZlZm9yYnVzaW5lc3NcbiAgICogIC0gY3VzdG9tc291cmNlIC0gQ29uZmlndXJlIHRoaXMgaW4geW91ciBGaWxlc3RhY2sgRGV2IFBvcnRhbC5cbiAgICogIC0gdW5zcGxhc2hcbiAgICovXG4gIGZyb21Tb3VyY2VzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDb250YWluZXIgd2hlcmUgcGlja2VyIHNob3VsZCBiZSBhcHBlbmRlZC4gT25seSByZWxldmFudCBmb3IgYGlubGluZWAgYW5kIGBkcm9wUGFuZWAgZGlzcGxheSBtb2Rlcy5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZyB8IE5vZGU7XG5cbiAgLyoqXG4gICAqIFR1cm4gb24gY2xlYW5pbmcgSlBFRyBpbWFnZSBleGlmLiBNZXRob2QgY2FuIGtlZXAgaW1hZ2Ugb3JpZW50YXRpb24gb3IgY29sb3IgcHJvZmlsZXNcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAqICAga2VlcE9yaWVudGF0aW9uOiB0cnVlXG4gICAqICAga2VlcElDQ2FuZEFQUDogdHJ1ZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY2xlYW51cEltYWdlRXhpZj86IGJvb2xlYW4gfCB7XG4gICAga2VlcE9yaWVudGF0aW9uPzogYm9vbGVhbixcbiAgICBrZWVwSUNDYW5kQVBQPzogYm9vbGVhblxuICB9O1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IG9uIHRoZSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW4gaW4gUGlja2VyLlxuICAgKiBVc2UgYSBjbG91ZCBzb3VyY2UgbmFtZSAoc2VlIFtbUGlja2VyT3B0aW9ucy5mcm9tU291cmNlc11dKVxuICAgKiBvciBhICdkZWZhdWx0JyBhcyBhIGtleSwgdGhlbiBwdXQgeW91ciBjdXN0b20gbm90aWNlIG9yIGNvbnNlbnRcbiAgICogdG8gdGhlICd0b3AnIG9yIHRoZSAnYm90dG9tJyBrZXkgdG8gc2hvdyBpdCByZXNwZWN0aXZseSBhYm92ZSBvciB1bmRlciAnQ29ubmVjdCBidXR0b24nLlxuICAgKlxuICAgKiBgYGBqYXZhc2NyaXB0XG4gICAqIGN1c3RvbUF1dGhUZXh0OiB7XG4gICAqICAgLy8gdXNlIGl0IGZvciBldmVyeSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW5cbiAgICogICBkZWZhdWx0OiB7XG4gICAqICAgICB0b3A6IFtcbiAgICogICAgICAgJ2RlZmF1bHQgdG9wIGZpcnN0IGxpbmUnLFxuICAgKiAgICAgICAnZGVmYXVsdCB0b3Agc2Vjb25kIGxpbmUnXG4gICAqICAgICBdLFxuICAgKiAgICAgYm90dG9tOiBbXG4gICAqICAgICAgICdkZWZhdWx0IGJvdHRvbSBmaXJzdCBsaW5lJyxcbiAgICogICAgICAgJ2RlZmF1bHQgYm90dG9tIHNlY29uZCBsaW5lJ1xuICAgKiAgICAgXVxuICAgKiAgIH0sXG4gICAqICAgLy8gb3ZlcnJpZGUgYSBkZWZhdWx0IGJvdHRvbSB0ZXh0IGZvciBvbmx5IGdtYWlsXG4gICAqICAgZ21haWw6IHtcbiAgICogICAgIGJvdHRvbTogW1xuICAgKiAgICAgICAnV2UgbmVlZCB5b3VyIHBlcm1pc3Npb24gdG8gYWNjZXNzIHlvdXIgZGF0YSBhbmQnLFxuICAgKiAgICAgICAncHJvY2VzcyBpdCB3aXRoIG91ciBtYWNoaW5lIGxlYXJuaW5nIHN5c3RlbS4nXG4gICAqICAgICBdXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY3VzdG9tQXV0aFRleHQ/OiBDdXN0b21BdXRoVGV4dE9wdGlvbnM7XG4gIC8qKlxuICAgKiBQaWNrZXIgZGlzcGxheSBtb2RlLCBvbmUgb2YgYCdpbmxpbmUnYCwgYCdvdmVybGF5J2AsIGAnZHJvcFBhbmUnYCAtIGRlZmF1bHQgaXMgYCdvdmVybGF5J2AuXG4gICAqL1xuICBkaXNwbGF5TW9kZT86IFBpY2tlckRpc3BsYXlNb2RlO1xuICAvKipcbiAgICogTWF4IG51bWJlciBvZiBmaWxlcyB0byB1cGxvYWQgY29uY3VycmVudGx5LiBEZWZhdWx0IGlzIDQuXG4gICAqL1xuICBjb25jdXJyZW5jeT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBjb250YWluZXIgZm9yIHlvdXIgY3VzdG9tIHNvdXJjZS5cbiAgICovXG4gIGN1c3RvbVNvdXJjZUNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBwYXRoIGZvciB5b3VyIGN1c3RvbSBzb3VyY2UgY29udGFpbmVyLlxuICAgKi9cbiAgY3VzdG9tU291cmNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgY3VzdG9tIHNvdXJjZS5cbiAgICovXG4gIGN1c3RvbVNvdXJjZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm92aWRlIGFuIG9iamVjdCBmb3IgbWFwcGluZyBwaWNrZXIgc3RyaW5ncyB0byB5b3VyIG93biBzdHJpbmdzLlxuICAgKiBTdHJpbmdzIHN1cnJvdW5kZWQgYnkgYnJhY2tldHMsIGB7IGZvb2JhciB9YCwgYXJlIGludGVycG9sYXRlZCB3aXRoIHJ1bnRpbWUgdmFsdWVzLlxuICAgKiBTb3VyY2UgbGFiZWxzIGFyZSBhbHNvIGF2YWlsYWJsZSB0byBvdmVycmlkZSwgZS5nLiBGYWNlYm9vaywgSW5zdGFncmFtLCBEcm9wYm94LCBldGMuXG4gICAqL1xuICBjdXN0b21UZXh0PzogUGlja2VyQ3VzdG9tVGV4dDtcbiAgLyoqXG4gICAqIHNldCBzdXBwb3J0IGVtYWlsIHRvIGRpc3BsYXkgaW4gY2FzZSBvZiBlcnJvclxuICAgKi9cbiAgc3VwcG9ydEVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0cnVlIHJlbW92ZXMgdGhlIGhhc2ggcHJlZml4IG9uIHN0b3JlZCBmaWxlcy5cbiAgICovXG4gIGRpc2FibGVTdG9yYWdlS2V5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSByZW1vdmVzIGFiaWxpdHkgdG8gZWRpdCBpbWFnZXMuXG4gICAqL1xuICBkaXNhYmxlVHJhbnNmb3JtZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogRGlzYWJsZXMgbG9jYWwgaW1hZ2UgdGh1bWJuYWlsIHByZXZpZXdzIGluIHRoZSBzdW1tYXJ5IHNjcmVlbi5cbiAgICovXG4gIGRpc2FibGVUaHVtYm5haWxzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB0aGUgZHJvcCBwYW5lIGJlaGF2aW9yLCBpLmUuIHdoZW4gYGRpc3BsYXlNb2RlYCBpcyBgZHJvcFBhbmVgLlxuICAgKi9cbiAgZHJvcFBhbmU/OiBQaWNrZXJEcm9wUGFuZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIGBvcmlnaW5hbEZpbGVgIG1ldGFkYXRhIHdpbGwgYmUgdGhlIGFjdHVhbCBgRmlsZWAgb2JqZWN0IGluc3RlYWQgb2YgYSBQT0pPXG4gICAqL1xuICBleHBvc2VPcmlnaW5hbEZpbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkcm9wIHpvbmUgdG8gYmUgYWN0aXZlIG9uIGFsbCB2aWV3cy4gRGVmYXVsdCBpcyBhY3RpdmUgb25seSBvbiBsb2NhbCBmaWxlIHNvdXJjZS5cbiAgICovXG4gIGdsb2JhbERyb3Bab25lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhpZGUgdGhlIHBpY2tlciBtb2RhbCBVSSBvbmNlIHVwbG9hZGluZyBiZWdpbnMuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBoaWRlTW9kYWxXaGVuVXBsb2FkaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBpbWFnZSBkaW1lbnNpb25zLiBlLmcuIFs4MDAsIDYwMF0uIE9ubHkgZm9yIEpQRUcsIFBORywgYW5kIEJNUCBmaWxlcy5cbiAgICogTG9jYWwgYW5kIGNyb3BwZWQgaW1hZ2VzIHdpbGwgYmUgcmVzaXplZCAodXBzY2FsZWQgb3IgZG93bnNjYWxlZCkgdG8gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25zIGJlZm9yZSB1cGxvYWRpbmcuXG4gICAqIFRoZSBvcmlnaW5hbCBoZWlnaHQgdG8gd2lkdGggcmF0aW8gaXMgbWFpbnRhaW5lZC4gVG8gcmVzaXplIGFsbCBpbWFnZXMgYmFzZWQgb24gdGhlIHdpZHRoLCBzZXQgW3dpZHRoLCBudWxsXSwgZS5nLiBbODAwLCBudWxsXS5cbiAgICogRm9yIHRoZSBoZWlnaHQgc2V0IFtudWxsLCBoZWlnaHRdLCBlLmcuIFtudWxsLCA2MDBdLlxuICAgKi9cbiAgaW1hZ2VEaW0/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU3BlY2lmeSBtYXhpbXVtIGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBJbWFnZXMgYmlnZ2VyIHRoYW4gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25zIHdpbGwgYmUgcmVzaXplZCB0byB0aGUgbWF4aW11bSBzaXplIHdoaWxlIG1haW50YWluaW5nIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8uXG4gICAqIFRoZSBvdXRwdXQgd2lsbCBub3QgYmUgZXhhY3RseSA4MDB4NjAwIHVubGVzcyB0aGUgaW1hZ2VNYXggbWF0Y2hlcyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBvcmlnaW5hbCBpbWFnZS5cbiAgICovXG4gIGltYWdlTWF4PzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgbWluaW11bSBpbWFnZSBkaW1lbnNpb25zLiBlLmcuIFs4MDAsIDYwMF0uIE9ubHkgZm9yIEpQRUcsIFBORywgYW5kIEJNUCBmaWxlcy5cbiAgICogSW1hZ2VzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgd2lsbCBiZSB1cHNjYWxlZCB0byB0aGUgbWluaW11bSBzaXplIHdoaWxlIG1haW50YWluaW5nIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8uXG4gICAqIFRoZSBvdXRwdXQgd2lsbCBub3QgYmUgZXhhY3RseSA4MDB4NjAwIHVubGVzcyB0aGUgaW1hZ2VNaW4gbWF0Y2hlcyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBvcmlnaW5hbCBpbWFnZS5cbiAgICovXG4gIGltYWdlTWluPzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIFNldHMgbG9jYWxlLiBBY2NlcHRzOiBjYSwgZGEsIGRlLCBlbiwgZXMsIGZyLCBoZSwgaXQsIGphLCBrbywgbmwsIG5vLCBwbCwgcHQsIHN2LCBydSwgdmksIHpoLCB0clxuICAgKi9cbiAgbGFuZz86IHN0cmluZztcbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIG9mIGZpbGVzIHJlcXVpcmVkIHRvIHN0YXJ0IHVwbG9hZGluZy4gRGVmYXVsdHMgdG8gMS5cbiAgICovXG4gIG1pbkZpbGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgZmlsZXMgYWxsb3dlZCB0byB1cGxvYWQuIERlZmF1bHRzIHRvIDEuXG4gICAqL1xuICBtYXhGaWxlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHNlbGVjdGVkIGZpbGVzIHRvIGEgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMuIChlLmcuIDEwIFxcKiAxMDI0IFxcKiAxMDI0IGZvciAxME1CIGxpbWl0KS5cbiAgICovXG4gIG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmlldyB0eXBlIG9wdGlvbiBmb3IgZmlsZSBicm93c2VyXG4gICAqL1xuICB2aWV3VHlwZT86ICdncmlkJyB8ICdsaXN0JztcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICovXG4gIGVycm9yc1RpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IFt3aWR0aCwgaGVpZ2h0XSBpbiBwaXhlbHMgb2YgdGhlIGRlc2t0b3AgbW9kYWwuXG4gICAqL1xuICBtb2RhbFNpemU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYWxsIHVwbG9hZHMgaW4gYSBwaWNrIGFyZSBjYW5jZWxsZWQuXG4gICAqL1xuICBvbkNhbmNlbD86IFBpY2tlclVwbG9hZERvbmVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBVSSBpcyBleGl0ZWQuXG4gICAqL1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBVSSBpcyBtb3VudGVkLlxuICAgKiBAcGFyYW0gUGlja2VySW5zdGFuY2UgYXBwbGljYXRpb24gaGFuZGxlXG4gICAqL1xuICBvbk9wZW4/OiAoaGFuZGxlOiBQaWNrZXJJbnN0YW5jZSkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuZXZlciB1c2VyIHNlbGVjdHMgYSBmaWxlLlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyBVc2luZyB0byB2ZXRvIGZpbGUgc2VsZWN0aW9uXG4gICAqIC8vIElmIHlvdSB0aHJvdyBhbnkgZXJyb3IgaW4gdGhpcyBmdW5jdGlvbiBpdCB3aWxsIHJlamVjdCB0aGUgZmlsZSBzZWxlY3Rpb24uXG4gICAqIC8vIFRoZSBlcnJvciBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGFzIGFuIGFsZXJ0LlxuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgaWYgKGZpbGUuc2l6ZSA+IDEwMDAgKiAxMDAwKSB7XG4gICAqICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbGUgdG9vIGJpZywgc2VsZWN0IHNvbWV0aGluZyBzbWFsbGVyIHRoYW4gMU1CJyk7XG4gICAqICAgfVxuICAgKiB9XG4gICAqXG4gICAqIC8vIFVzaW5nIHRvIGNoYW5nZSBzZWxlY3RlZCBmaWxlIG5hbWVcbiAgICogLy8gTk9URTogVGhpcyBjdXJyZW50bHkgb25seSB3b3JrcyBmb3IgbG9jYWwgdXBsb2Fkc1xuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gcmV0dXJuIGEgbmV3IGZpbGUgYnkgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgKiAgIHJldHVybiB7IC4uLmZpbGUsIG5hbWU6ICdmb28nIH07XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBjYW4gYWxzbyByZXR1cm4gYSBQcm9taXNlIHRvIGFsbG93IGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uIGxvZ2ljLlxuICAgKiBZb3UgY2FuIHBhc3MgYSBmaWxlIG9iamVjdCB0byBgcmVzb2x2ZWAgZm9yIGNoYW5naW5nIHRoZSBmaWxlIG5hbWUsIGl0IHdpbGwgYmVoYXZlIHRoZSBzYW1lIGFzIHdoZW5cbiAgICogdGhlIGZpbGUgaXMgcmV0dXJuZWQgZnJvbSB0aGUgbm9uLWFzeW5jIGNhbGxiYWNrLlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBvbkZpbGVTZWxlY3RlZChmaWxlKSB7XG4gICAqICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICogICAgIC8vIERvIHNvbWV0aGluZyBhc3luY1xuICAgKiAgICAgcmVzb2x2ZSgpO1xuICAgKiAgICAgLy8gT3IgcmVqZWN0IHRoZSBzZWxlY3Rpb24gd2l0aCByZWplY3QoKVxuICAgKiAgIH0pO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgb25GaWxlU2VsZWN0ZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgdXBsb2FkIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkQ2FuY2VsPzogUGlja2VyRmlsZUNhbmNlbENhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBmaWxlIGJlZ2lucyB1cGxvYWRpbmcuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRTdGFydGVkPzogUGlja2VyRmlsZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBmaWxlIGlzIGRvbmUgdXBsb2FkaW5nLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkRmluaXNoZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB1cGxvYWRpbmcgYSBmaWxlIGZhaWxzLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkRmFpbGVkPzogUGlja2VyRmlsZUVycm9yQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgZHVyaW5nIG11bHRpLXBhcnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4gTG9jYWwgZmlsZXMgb25seS5cbiAgICovXG4gIG9uRmlsZVVwbG9hZFByb2dyZXNzPzogUGlja2VyRmlsZVByb2dyZXNzQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBmaWxlIGlzIGNyb3BwZWQgaW4gcGlja2VyXG4gICAqL1xuICBvbkZpbGVDcm9wcGVkPzogUGlja2VyRmlsZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdXBsb2FkaW5nIHN0YXJ0cyAodXNlciBpbml0aWF0ZXMgdXBsb2FkaW5nKS5cbiAgICovXG4gIG9uVXBsb2FkU3RhcnRlZD86IFBpY2tlclVwbG9hZFN0YXJ0ZWRDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gdXBsb2FkZWQuXG4gICAqL1xuICBvblVwbG9hZERvbmU/OiBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2s7XG5cbiAgLyoqXG4gICAqIERlZmluZSBhIHVuaXF1ZSBpZCBmb3IgdGhlIGFwcGxpY2F0aW9uIG1vdW50IHBvaW50LlxuICAgKiBNYXkgYmUgdXNlZnVsIGZvciBtb3JlIGFkdmFuY2VkIHVzZSBjYXNlcy5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHlvdSB3aXNoIHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBwaWNrZXIgaW5zdGFuY2Ugb3BlbiBhdCBvbmNlLFxuICAgKiB0aGVuIGVhY2ggd2lsbCBuZWVkIHRoZWlyIG93biB1bmlxdWUgcm9vdElkLlxuICAgKlxuICAgKiAqKk5vdGU6KiogVGhpcyBvcHRpb24gaXMgaWdub3JlZCB3aGVuIGBkaXNwbGF5TW9kZWAgaXMgYGRyb3BQYW5lYC5cbiAgICovXG4gIHJvb3RJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3RhcnQgdXBsb2FkaW5nIGF1dG9tYXRpY2FsbHkgd2hlbiBtYXhGaWxlcyBpcyBoaXQuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBzdGFydFVwbG9hZGluZ1doZW5NYXhGaWxlc1JlYWNoZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgZmlsZSBzdG9yYWdlLlxuICAgKi9cbiAgc3RvcmVUbz86IFBpY2tlclN0b3JlT3B0aW9ucztcbiAgLyoqXG4gICAqIFNwZWNpZnkgb3B0aW9ucyBmb3IgaW1hZ2VzIHBhc3NlZCB0byB0aGUgY3JvcCBVSS5cbiAgICovXG4gIHRyYW5zZm9ybWF0aW9ucz86IFBpY2tlclRyYW5zZm9ybWF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGxvY2FsIGZpbGUgdXBsb2Fkcy5cbiAgICovXG4gIHVwbG9hZENvbmZpZz86IFVwbG9hZE9wdGlvbnM7XG4gIC8qKlxuICAgKiBTdGFydCB1cGxvYWRpbmcgaW1tZWRpYXRlbHkgb24gZmlsZSBzZWxlY3Rpb24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICogQGltcG9ydGFudCBUaGUgZmVhdHVyZSBpcyBjYW4gYmUgZW5hYmxlZCBvbmx5IGlmIGNyb3AgaXMgZGlzYWJsZWQgLSBkaXNhYmxlVHJhbnNmb3JtZXI6IHRydWVcbiAgICovXG4gIHVwbG9hZEluQmFja2dyb3VuZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZXNvbHV0aW9uIG9mIHJlY29yZGVkIHZpZGVvLiBPbmUgb2YgXCIzMjB4MjQwXCIsIFwiNjQweDQ4MFwiIG9yIFwiMTI4MHg3MjBcIi4gRGVmYXVsdCBpcyBgXCI2NDB4NDgwXCJgLlxuICAgKi9cbiAgdmlkZW9SZXNvbHV0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlIFNlbnRyeSBCcmVhZGNydW1icyBtZWNoYW5pc20gdG8gbG9nIGluZm9ybWF0aW9uIGFib3V0IG9jY3VyZWQgZXJyb3JzLlxuICAgKiBJdCBjYW4gb3ZlcnJpZGUgZ2xvYmFsIG9iamVjdHMgbGlrZSBjb25zb2xlLCBlcnJvciBldGMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHVzZVNlbnRyeUJyZWFkY3J1bWJzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDcm9wT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYWludGFpbiBhc3BlY3QgcmF0aW8gZm9yIGNyb3Agc2VsZWN0aW9uLiAoZS5nLiAxNi85LCA4MDAvNjAwKS5cbiAgICovXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xuICAvKipcbiAgICogRm9yY2UgYWxsIGltYWdlcyB0byBiZSBjcm9wcGVkIGJlZm9yZSB1cGxvYWRpbmcuXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBjcm9wLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBjcm9wPzogYm9vbGVhbiB8IFBpY2tlckNyb3BPcHRpb25zO1xuICAvKipcbiAgICogRW5hYmxlIGNpcmNsZSBjcm9wLiBEaXNhYmxlZCBpZiBjcm9wLmFzcGVjdFJhdGlvIGlzIGRlZmluZWQgYW5kIG5vdCAxLiBDb252ZXJ0cyB0byBQTkcuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGNpcmNsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgaW1hZ2Ugcm90YXRpb24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJvdGF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdsb2JhbCBmb3JjZSBjcm9wIG9wdGlvbi4gQ2FuIGJlIHVzZSBpZSB3aXRoIGNpcmNsZVxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckFjY2VwdEZuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm92aWRlZCBhY2NlcHQgc3RyaW5nXG4gICAqL1xuICBhY2NlcHQ6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQWNjZXB0IHN0cmluZyBjb252ZXJ0ZWQgdG8gbWltZXR5cGVcbiAgICovXG4gIGFjY2VwdE1pbWU6IHN0cmluZ1tdO1xuICAvKipcbiAgICogTWltZXR5cGUgYmFzZWQgbWFnaWMgYnl0ZXNcbiAgICoge0BsaW5rIGh0dHBzOi8vZmlsZXN0YWNrLmdpdGh1Yi5pby9maWxlc3RhY2stanMvZ2xvYmFscy5odG1sI2dldG1pbWV0eXBlfVxuICAgKi9cbiAgbWltZUZyb21NYWdpY0J5dGVzOiBQcm9taXNlPHN0cmluZz47XG4gIC8qKlxuICAgKiBNaW1ldHlwZSBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvblxuICAgKiB7QGxpbmsgaHR0cHM6Ly9maWxlc3RhY2suZ2l0aHViLmlvL2ZpbGVzdGFjay1qcy9nbG9iYWxzLmh0bWwjZXh0ZW5zaW9udG9taW1lfVxuICAgKi9cbiAgbWltZUZyb21FeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQSBzeW5jaHJvbm91cy1sb29raW5nIHdyYXBwZXIgZm9yIGxvYWRpbmcgdGhlIHBpY2tlciBhbmQgY2FsbGluZyBpdHMgbWV0aG9kcy5cbiAqIFRoaXMgaXMgY3VycmVudGx5IG5lZWRlZCBiZWNhdXNlIHRoZSBwaWNrZXIgbW9kdWxlIGlzIGxvYWRlZCBhc3luY2hyb25vdXNseS5cbiAqIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIG9mZmVyIGEgYnVuZGxlIHdpdGggdGhlIHBpY2tlciBtb2R1bGUgaW5jbHVkZWQuXG4gKi9cbmNsYXNzIFBpY2tlckxvYWRlciB7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IFByb21pc2U8UGlja2VySW5zdGFuY2U+O1xuICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihQaWNrZXJQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBwaWNrZXIgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzLCBGaWxlc3RhY2tFcnJvclR5cGUuVkFMSURBVElPTik7XG4gICAgfVxuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0aGlzLmxvYWRNb2R1bGUoY2xpZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLm9wZW4oKTtcbiAgfVxuXG4gIGFzeW5jIGNyb3AoZmlsZXM6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNyb3AoZmlsZXMpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNsb3NlKCk7XG4gIH1cblxuICBhc3luYyBjYW5jZWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNhbmNlbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTW9kdWxlKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFByb21pc2U8UGlja2VySW5zdGFuY2U+IHtcbiAgICBjb25zdCB7IHNlc3Npb246IHsgdXJsczogeyBwaWNrZXJVcmw6IHVybCB9IH0gfSA9IGNsaWVudDtcbiAgICBjb25zdCBQaWNrZXIgPSBhd2FpdCBsb2FkTW9kdWxlKEZJTEVTVEFDS19NT0RVTEVTLlBJQ0tFUiwgdXJsKTtcbiAgICByZXR1cm4gbmV3IFBpY2tlcihjbGllbnQsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZHMgYW5kIGNyZWF0ZXMgcGlja2VyIGluc3RhbmNlXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjbGllbnRcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBwaWNrZXIgPSAoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2UgPT4ge1xuICByZXR1cm4gbmV3IFBpY2tlckxvYWRlcihjbGllbnQsIG9wdGlvbnMpO1xufTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUErRC9ELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsNEJBQVMsQ0FBQTtJQUNULDhCQUFVLENBQUE7QUFDWixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUErR0QsTUFBTSxDQUFOLElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBbUIsQ0FBQTtJQUNuQiwwQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUk1QjtBQTZpQkQ7Ozs7O0dBS0c7QUFDSDtJQUdFLHNCQUFZLE1BQWMsRUFBRSxPQUF1QjtRQUNqRCxJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5RCxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzdCLE1BQU0sSUFBSSxjQUFjLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVLLDJCQUFJLEdBQVY7Ozs7OzRCQUNpQixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUE7O3dCQUFuQixTQUFtQixDQUFDOzs7OztLQUNyQjtJQUVLLDJCQUFJLEdBQVYsVUFBVyxLQUFZOzs7Ozs0QkFDTixxQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFBOzt3QkFBaEMsTUFBTSxHQUFHLFNBQXVCO3dCQUN0QyxxQkFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFBOzt3QkFBeEIsU0FBd0IsQ0FBQzs7Ozs7S0FDMUI7SUFFSyw0QkFBSyxHQUFYOzs7Ozs0QkFDaUIscUJBQU0sSUFBSSxDQUFDLFlBQVksRUFBQTs7d0JBQWhDLE1BQU0sR0FBRyxTQUF1Qjt3QkFDdEMscUJBQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFBOzt3QkFBcEIsU0FBb0IsQ0FBQzs7Ozs7S0FDdEI7SUFFSyw2QkFBTSxHQUFaOzs7Ozs0QkFDaUIscUJBQU0sSUFBSSxDQUFDLFlBQVksRUFBQTs7d0JBQWhDLE1BQU0sR0FBRyxTQUF1Qjt3QkFDdEMscUJBQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFBOzt3QkFBckIsU0FBcUIsQ0FBQzs7Ozs7S0FDdkI7SUFFYSxpQ0FBVSxHQUF4QixVQUF5QixNQUFjLEVBQUUsT0FBdUI7Ozs7Ozt3QkFDeEIsR0FBRyxHQUFTLE1BQU0sdUJBQWYsQ0FBZ0I7d0JBQzFDLHFCQUFNLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0F0Q0EsQUFzQ0MsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRyxVQUFDLE1BQWMsRUFBRSxPQUF1QjtJQUM1RCxPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL3BpY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgbG9hZE1vZHVsZSwgRklMRVNUQUNLX01PRFVMRVMgfSBmcm9tICdAZmlsZXN0YWNrL2xvYWRlcic7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciwgRmlsZXN0YWNrRXJyb3JUeXBlIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuaW1wb3J0IHsgRlNQcm9ncmVzc0V2ZW50LCBVcGxvYWRPcHRpb25zLCBXb3JrZmxvd0NvbmZpZyB9IGZyb20gJy4vYXBpL3VwbG9hZC90eXBlcyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIFBpY2tlclBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJJbnN0YW5jZSB7XG4gIC8qKlxuICAgKiBDbG9zZSBwaWNrZXIuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjbG9zZTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQ2FuY2VsIHBpY2tlciB1cGxvYWRzLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgY2FuY2VsOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcGVuIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIG9wZW46ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBsaXN0IG9mIGZpbGVzIHRvIG9wZW4gaW4gdGhlIHBpY2tlciBmb3IgY3JvcHBpbmdcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gPGlucHV0IGlkPVwiZmlsZVNlbGVjdFwiIHR5cGU9XCJmaWxlXCI+XG4gICAqXG4gICAqIGNvbnN0IGlucHV0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZVNlbGVjdCcpO1xuICAgKiBjb25zdCBwaWNrZXIgPSBjbGllbnQucGlja2VyKHtcbiAgICogICBvblVwbG9hZERvbmU6IHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpLFxuICAgKiB9KTtcbiAgICpcbiAgICogaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgKiAgIHBpY2tlci5jcm9wKGUudGFyZ2V0LmZpbGVzKTtcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIE9yIHBhc3MgYW4gYXJyYXkgb2YgVVJMIHN0cmluZ3NcbiAgICogY29uc3QgdXJscyA9IFtcbiAgICogICAnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvZm94X2luX2ZvcmVzdDEuanBnJyxcbiAgICogICAnaHR0cHM6Ly9kMXd0cWFmZmFhajYzei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvc2FpbC5qcGcnLFxuICAgKiBdO1xuICAgKiBwaWNrZXIuY3JvcCh1cmxzKTtcbiAgICogYGBgXG4gICAqL1xuICBjcm9wOiAoZmlsZXM6IGFueVtdKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckNyb3BwZWREYXRhIHtcbiAgY3JvcEFyZWE6IHtcbiAgICAvKipcbiAgICAgKiBbeCwgeV1cbiAgICAgKi9cbiAgICBwb3NpdGlvbjogW251bWJlciwgbnVtYmVyXTtcbiAgICAvKipcbiAgICAgKiBbd2lkdGgsIGhlaWdodF1cbiAgICAgKi9cbiAgICBzaXplOiBbbnVtYmVyLCBudW1iZXJdO1xuICB9O1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICBvcmlnaW5hbEltYWdlU2l6ZTogW251bWJlciwgbnVtYmVyXTtcbn1cblxuZXhwb3J0IGVudW0gUm90YXRlRGlyZWN0aW9uIHtcbiAgY3cgPSAnQ1cnLFxuICBjY3c9ICdDQ1cnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclJvdGF0ZWREYXRhIHtcbiAgLyoqXG4gICAqIEFtb3VudCByb3RhdGVkIGluIGRlZ3JlZXMuXG4gICAqL1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKipcbiAgICogQ2FuIGJlIENXIG9yIENDVyAoY2xvY2t3aXNlIC8gY291bnRlci1jbG9ja3dpc2UpXG4gICAqL1xuICBkaXJlY3Rpb246IFJvdGF0ZURpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlTWV0YWRhdGEge1xuICAvKipcbiAgICogVGhlIGNsb3VkIGNvbnRhaW5lciBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBjb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBhbmQgc2l6ZSBpbmZvcm1hdGlvbiBmb3IgY3JvcHBlZCBpbWFnZXMuXG4gICAqL1xuICBjcm9wcGVkPzogUGlja2VyQ3JvcHBlZERhdGE7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEZpbGVzdGFjayBoYW5kbGUgZm9yIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgaGFuZGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaGFzaC1wcmVmaXhlZCBjbG91ZCBzdG9yYWdlIHBhdGguXG4gICAqL1xuICBrZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgbWltZXR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgb2YgdGhlIGxvY2FsIGJpbmFyeSBmaWxlLiBBbHNvIHNlZSB0aGUgcGljayBvcHRpb24gYGV4cG9zZU9yaWdpbmFsRmlsZWAgaWYgeW91IHdhbnQgdGhlIHVuZGVybHlpbmcgYEZpbGVgIG9iamVjdC5cbiAgICovXG4gIG9yaWdpbmFsRmlsZT86IG9iamVjdCB8IEZpbGU7XG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIG9mIHRoZSBmaWxlLCBlLmcuIC9Gb2xkZXIvZmlsZS5qcGcuXG4gICAqL1xuICBvcmlnaW5hbFBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIERpcmVjdGlvbiBhbmQgdmFsdWUgaW5mb3JtYXRpb24gZm9yIHJvdGF0ZWQgaW1hZ2VzLlxuICAgKi9cbiAgcm90YXRlZD86IFBpY2tlclJvdGF0ZWREYXRhO1xuICAvKipcbiAgICogU2l6ZSBpbiBieXRlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHNpemU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZnJvbSB3aGVyZSB0aGUgZmlsZSB3YXMgcGlja2VkLlxuICAgKi9cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgRmlsZXN0YWNrIHRyYW5zaXQgc3RhdHVzLlxuICAgKi9cbiAgc3RhdHVzPzogc3RyaW5nO1xuICAvKipcbiAgICogQSB1dWlkIGZvciB0cmFja2luZyB0aGlzIGZpbGUgaW4gY2FsbGJhY2tzLlxuICAgKi9cbiAgdXBsb2FkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBGaWxlc3RhY2sgQ0ROIFVSTCBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdXRoVGV4dE9wdGlvbnMge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgdG9wPzogc3RyaW5nW10sXG4gICAgYm90dG9tPzogc3RyaW5nW11cbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJSZXNwb25zZSB7XG4gIGZpbGVzVXBsb2FkZWQ6IFBpY2tlckZpbGVNZXRhZGF0YVtdO1xuICBmaWxlc0ZhaWxlZDogUGlja2VyRmlsZU1ldGFkYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZUNhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSk6IHZvaWQgfCBQcm9taXNlPGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVXaXRoVG9rZW5DYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEsIHRva2VuPzoge3BhdXNlPzogKCkgPT4gdm9pZCwgcmVzdW1lPzogKCkgPT4gdm9pZCwgY2FuY2VsPzogKCkgPT4gdm9pZH0pOiB2b2lkIHwgUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVDYW5jZWxDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVFcnJvckNhbGxiYWNrIHtcbiAgKGZpbGU6IFBpY2tlckZpbGVNZXRhZGF0YSwgZXJyb3I6IEVycm9yKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlUHJvZ3Jlc3NDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEsIGV2ZW50OiBGU1Byb2dyZXNzRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclVwbG9hZFN0YXJ0ZWRDYWxsYmFjayB7XG4gIChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclVwbG9hZERvbmVDYWxsYmFjayB7XG4gIChmaWxlczogUGlja2VyUmVzcG9uc2UpOiB2b2lkO1xufVxuXG5leHBvcnQgZW51bSBQaWNrZXJEaXNwbGF5TW9kZSB7XG4gIGlubGluZSA9ICdpbmxpbmUnLFxuICBvdmVybGF5ID0gJ292ZXJsYXknLFxuICBkcm9wUGFuZSA9ICdkcm9wUGFuZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRHJvcFBhbmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgY3JvcCBVSSBmb3IgZHJvcHBlZCBmaWxlcy5cbiAgICovXG4gIGNyb3BGaWxlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b21pemUgdGhlIHRleHQgY29udGVudCBpbiB0aGUgZHJvcCBwYW5lLlxuICAgKi9cbiAgY3VzdG9tVGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGZpbGUgaW5wdXQgb24gY2xpY2suIFRoaXMgZG9lcyBub3QgZGlzYWJsZSB0aGUgYG9uQ2xpY2tgIGNhbGxiYWNrLlxuICAgKi9cbiAgZGlzYWJsZUNsaWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZnVsbC1wYWdlIGRyb3Agem9uZSBvdmVybGF5LlxuICAgKi9cbiAgb3ZlcmxheT86IGJvb2xlYW47XG4gIG9uRHJhZ0VudGVyPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICBvbkRyYWdMZWF2ZT86ICgpID0+IHZvaWQ7XG4gIG9uRHJhZ092ZXI/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIG9uRHJvcD86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIGBvblN1Y2Nlc3NgIG11c3QgYmUgdXNlZCBpbnN0ZWFkIG9mIGBvblVwbG9hZERvbmVgLiBUaGUgZHJvcCBwYW5lIHVzZXMgaXRzIG93biBjYWxsYmFja3MgZm9yIGNvbXBhdGliaWxpdHkgcHVycG9zZXMuIFRoaXMgbWlnaHQgZXZlbnR1YWxseSBjaGFuZ2UuXG4gICAqL1xuICBvblN1Y2Nlc3M/OiAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKSA9PiB2b2lkO1xuICBvbkVycm9yPzogKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSkgPT4gdm9pZDtcbiAgb25Qcm9ncmVzcz86IChwZXJjZW50OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2xpY2s/OiAoZXZ0OiBhbnkpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUb2dnbGUgaWNvbiBlbGVtZW50IGluIGRyb3AgcGFuZS5cbiAgICovXG4gIHNob3dJY29uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRvZ2dsZSB1cGxvYWQgcHJvZ3Jlc3MgZGlzcGxheS5cbiAgICovXG4gIHNob3dQcm9ncmVzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyU3RvcmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIExvY2F0aW9uIGZvciBzdG9yZWQgZmlsZS4gT25lIG9mICdzMycsICdnY3MnLCAnYXp1cmUnLCAncmFja3NwYWNlJywgb3IgJ2Ryb3Bib3gnLlxuICAgKi9cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHN0b3JhZ2UgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IGNvbnRhaW5lciBwYXRoLiBJbmRpY2F0ZSBhIGZvbGRlciBieSBhZGRpbmcgYSB0cmFpbGluZyBzbGFzaC4gV2l0aG91dCBhIHRyYWlsaW5nIHNsYXNoIGFsbCBmaWxlcyB3aWxsIGJlIHN0b3JlZCB0byB0aGUgc2FtZSBvYmplY3QuXG4gICAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmeSBTMyByZWdpb24uXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTMyBjb250YWluZXIgYWNjZXNzLiAncHVibGljJyBvciAncHJpdmF0ZScuXG4gICAqL1xuICBhY2Nlc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93cyBpZHMgdG8gcnVuIGFmdGVyIHVwbG9hZFxuICAgKi9cbiAgd29ya2Zsb3dzPzogc3RyaW5nW10gfCBXb3JrZmxvd0NvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckN1c3RvbVRleHQge1xuICAvLyBBY3Rpb25zXG4gIFVwbG9hZD86IHN0cmluZztcbiAgJ1VwbG9hZCBtb3JlJz86IHN0cmluZztcbiAgJ0Rlc2VsZWN0IEFsbCc/OiBzdHJpbmc7XG4gICdWaWV3L0VkaXQgU2VsZWN0ZWQnPzogc3RyaW5nO1xuICAnU2lnbiBPdXQnPzogc3RyaW5nO1xuXG4gIC8vIFNvdXJjZSBMYWJlbHNcbiAgJ015IERldmljZSc/OiBzdHJpbmc7XG4gICdXZWIgU2VhcmNoJz86IHN0cmluZztcbiAgJ1Rha2UgUGhvdG8nPzogc3RyaW5nO1xuICAnTGluayAoVVJMKSc/OiBzdHJpbmc7XG4gICdSZWNvcmQgVmlkZW8nPzogc3RyaW5nO1xuICAnUmVjb3JkIEF1ZGlvJz86IHN0cmluZztcblxuICAvLyBDdXN0b20gU291cmNlXG4gICdDdXN0b20gU291cmNlJz86IHN0cmluZztcblxuICAvLyBGb290ZXIgVGV4dFxuICBBZGQ/OiBzdHJpbmc7XG4gICdtb3JlIGZpbGUnPzogc3RyaW5nO1xuICAnbW9yZSBmaWxlcyc/OiBzdHJpbmc7XG5cbiAgLy8gQ2xvdWRcbiAgJ0Nvbm5lY3Qge3Byb3ZpZGVyTmFtZX0nPzogc3RyaW5nO1xuICAnU2VsZWN0IEZpbGVzIGZyb20ge3Byb3ZpZGVyTmFtZX0nPzogc3RyaW5nO1xuICAnWW91IG5lZWQgdG8gYXV0aGVudGljYXRlIHdpdGgge3Byb3ZpZGVyTmFtZX0uJz86IHN0cmluZztcbiAgJ0EgbmV3IHBhZ2Ugd2lsbCBvcGVuIHRvIGNvbm5lY3QgeW91ciBhY2NvdW50Lic/OiBzdHJpbmc7XG4gICdXZSBvbmx5IGV4dHJhY3QgaW1hZ2VzIGFuZCBuZXZlciBtb2RpZnkgb3IgZGVsZXRlIHRoZW0uJz86IHN0cmluZztcbiAgJ1RvIGRpc2Nvbm5lY3QgZnJvbSB7cHJvdmlkZXJOYW1lfSBjbGljayBcIlNpZ24gb3V0XCIgYnV0dG9uIGluIHRoZSBtZW51Lic/OiBzdHJpbmc7XG4gICdTaWduIGluIHdpdGggR29vZ2xlJz86IHN0cmluZztcbiAgJ0dvIGJhY2snPzogc3RyaW5nO1xuICAnVGhpcyBmb2xkZXIgaXMgZW1wdHkuJz86IHN0cmluZztcblxuICAvLyBTdW1tYXJ5XG4gIEZpbGVzPzogc3RyaW5nO1xuICBJbWFnZXM/OiBzdHJpbmc7XG4gIFVwbG9hZGVkPzogc3RyaW5nO1xuICBVcGxvYWRpbmc/OiBzdHJpbmc7XG4gIENvbXBsZXRlZD86IHN0cmluZztcbiAgRmlsdGVyPzogc3RyaW5nO1xuICAnQ3JvcHBlZCBJbWFnZXMnPzogc3RyaW5nO1xuICAnRWRpdGVkIEltYWdlcyc/OiBzdHJpbmc7XG4gICdTZWxlY3RlZCBGaWxlcyc/OiBzdHJpbmc7XG4gICdDcm9wIGlzIHJlcXVpcmVkIG9uIGltYWdlcyc/OiBzdHJpbmc7XG5cbiAgLy8gVHJhbnNmb3JtXG4gIENyb3A/OiBzdHJpbmc7XG4gIENpcmNsZT86IHN0cmluZztcbiAgUm90YXRlPzogc3RyaW5nO1xuICBNYXNrPzogc3RyaW5nO1xuICBSZXZlcnQ/OiBzdHJpbmc7XG4gIEVkaXQ/OiBzdHJpbmc7XG4gIFJlc2V0Pzogc3RyaW5nO1xuICBEb25lPzogc3RyaW5nO1xuICBTYXZlPzogc3RyaW5nO1xuICBOZXh0Pzogc3RyaW5nO1xuICAnRWRpdCBJbWFnZSc/OiBzdHJpbmc7XG4gICdUaGlzIGltYWdlIGNhbm5vdCBiZSBlZGl0ZWQnPzogc3RyaW5nO1xuXG4gIC8vIFJldHJ5IG1lc3NhZ2luZ1xuICAnQ29ubmVjdGlvbiBMb3N0Jz86IHN0cmluZztcbiAgJ0ZhaWxlZCBXaGlsZSBVcGxvYWRpbmcnPzogc3RyaW5nO1xuICAnUmV0cnlpbmcgaW4nPzogc3RyaW5nO1xuICAnVHJ5IGFnYWluJz86IHN0cmluZztcbiAgJ1RyeSBub3cnPzogc3RyaW5nO1xuXG4gIC8vIExvY2FsIEZpbGUgU291cmNlXG4gICdEcmFnIGFuZCBEcm9wLCBDb3B5IGFuZCBQYXN0ZSBGaWxlcyc/OiBzdHJpbmc7XG4gICdvciBEcmFnIGFuZCBEcm9wLCBDb3B5IGFuZCBQYXN0ZSBGaWxlcyc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRmlsZXMgdG8gVXBsb2FkJz86IHN0cmluZztcbiAgJ1NlbGVjdCBGcm9tJz86IHN0cmluZztcbiAgJ0Ryb3AgeW91ciBmaWxlcyBhbnl3aGVyZSc/OiBzdHJpbmc7XG5cbiAgLy8gSW5wdXQgcGxhY2Vob2xkZXJzXG4gICdFbnRlciBhIFVSTCc/OiBzdHJpbmc7XG4gICdTZWFyY2ggaW1hZ2VzJz86IHN0cmluZztcblxuICAvLyBXZWJjYW0gU291cmNlXG4gICdXZWJjYW0gRGlzYWJsZWQnPzogc3RyaW5nO1xuICAnV2ViY2FtIE5vdCBTdXBwb3J0ZWQnPzogc3RyaW5nO1xuICAnUGxlYXNlIGVuYWJsZSB5b3VyIHdlYmNhbSB0byB0YWtlIGEgcGhvdG8uJz86IHN0cmluZztcbiAgJ1lvdXIgY3VycmVudCBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgd2ViY2FtIGZ1bmN0aW9uYWxpdHkuJz86IHN0cmluZztcbiAgJ1dlIHN1Z2dlc3QgdXNpbmcgQ2hyb21lIG9yIEZpcmVmb3guJz86IHN0cmluZztcblxuICAvLyBFcnJvciBOb3RpZmljYXRpb25zXG4gICdGaWxlIHtkaXNwbGF5TmFtZX0gaXMgbm90IGFuIGFjY2VwdGVkIGZpbGUgdHlwZS4gVGhlIGFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHt0eXBlc30nPzogc3RyaW5nO1xuICAnRmlsZSB7ZGlzcGxheU5hbWV9IGlzIHRvbyBiaWcuIFRoZSBhY2NlcHRlZCBmaWxlIHNpemUgaXMgbGVzcyB0aGFuIHtyb3VuZEZpbGVTaXplfSc/OiBzdHJpbmc7XG4gICdPdXIgZmlsZSB1cGxvYWQgbGltaXQgaXMge21heEZpbGVzfSB7ZmlsZXNUZXh0fSc/OiBzdHJpbmc7XG4gICdObyBzZWFyY2ggcmVzdWx0cyBmb3VuZCBmb3IgXCJ7c2VhcmNofVwiJz86IHN0cmluZztcbiAgJ0FuIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLic/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBSZXN0cmljdCBmaWxlIHR5cGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgcGlja2VkLiBGb3JtYXRzIGFjY2VwdGVkOlxuICAgKiAgLSAucGRmIDwtIGFueSBmaWxlIGV4dGVuc2lvblxuICAgKiAgLSBpbWFnZS9qcGVnIDwtIGFueSBtaW1lIHR5cGUgY29tbW9ubHkga25vd24gYnkgYnJvd3NlcnNcbiAgICogIC0gaW1hZ2UvKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIGltYWdlc1xuICAgKiAgLSB2aWRlby8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgdmlkZW8gZmlsZXNcbiAgICogIC0gYXVkaW8vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIGF1ZGlvIGZpbGVzXG4gICAqICAtIGFwcGxpY2F0aW9uLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBhcHBsaWNhdGlvbiBmaWxlc1xuICAgKiAgLSB0ZXh0LyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiB0ZXh0IGZpbGVzXG4gICAqL1xuICBhY2NlcHQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEN1c3RvbSBhY2NlcHQgY2hlY2sgZnVuY3Rpb25cbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBhY2NlcHRGbjogKGZpbGUsIG9wdGlvbnMpID0+IHtcbiAgICogIHJldHVybiBvcHRpb25zLm1pbWVGcm9tTWFnaWNCeXRlcyhmaWxlLm9yaWdpbmFsRmlsZSkudGhlbigocmVzKSA9PiB7IC8vIHdlIGNhbiBjaGVjayBtaW1ldHlwZSBmcm9tIG1hZ2ljIGJ5dGVzXG4gICAqICAgIC8vY29uc29sZS5sb2cob3B0aW9ucy5taW1lRnJvbUV4dGVuc2lvbihmaWxlLm9yaWdpbmFsRmlsZS5uYW1lKSk7IC8vIG9yIGNoZWNrIGV4dGVuc2lvbiBmcm9tIGZpbGVzdGFjayBleHRlbnNpb25zIGRhdGFiYXNlXG4gICAqICAgIC8vIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjY2VwdCB0aGF0IGZpbGUnKSAvLyB3ZSBjYW4gdGhyb3cgZXhjZXB0aW9uIHRvIGJsb2NrIGZpbGUgdXBsb2FkXG4gICAqICAgIC8vIHJldHVybiBQcm9taXNlLnJlamVjdCgnQ2Fubm90IGFjY2VwdCB0aGF0IGZpbGUnJykgLy8gb3IgcmVqZWN0IGEgcHJvbWlzZVxuICAgKiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAqICB9KTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFjY2VwdEZuPzogKFBpY2tlckZpbGVNZXRhZGF0YSwgUGlja2VyQWNjZXB0Rm5PcHRpb25zKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIC8qKlxuICAgKiBQcmV2ZW50IG1vZGFsIGNsb3NlIG9uIHVwbG9hZCBmYWlsdXJlIGFuZCBhbGxvdyB1c2VycyB0byByZXRyeS5cbiAgICovXG4gIGFsbG93TWFudWFsUmV0cnk/OiBib29sZWFuO1xuICAvKipcbiAgICogIFZhbGlkIHNvdXJjZXMgYXJlOlxuICAgKiAgLSBsb2NhbF9maWxlX3N5c3RlbSAtIERlZmF1bHRcbiAgICogIC0gdXJsIC0gRGVmYXVsdFxuICAgKiAgLSBpbWFnZXNlYXJjaCAtIERlZmF1bHRcbiAgICogIC0gZmFjZWJvb2sgLSBEZWZhdWx0XG4gICAqICAtIGluc3RhZ3JhbSAtIERlZmF1bHRcbiAgICogIC0gZ29vZ2xlZHJpdmUgLSBEZWZhdWx0XG4gICAqICAtIGRyb3Bib3ggLSBEZWZhdWx0XG4gICAqICAtIHdlYmNhbSAtIFVzZXMgZGV2aWNlIG1lbnUgb24gbW9iaWxlLiBOb3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbiBTYWZhcmkgYW5kIElFLlxuICAgKiAgLSB2aWRlbyAtIFVzZXMgZGV2aWNlIG1lbnUgb24gbW9iaWxlLiBOb3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbiBTYWZhcmkgYW5kIElFLlxuICAgKiAgLSBhdWRpbyAtIFVzZXMgZGV2aWNlIG1lbnUgb24gbW9iaWxlLiBOb3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbiBTYWZhcmkgYW5kIElFLlxuICAgKiAgLSBib3hcbiAgICogIC0gZ2l0aHViXG4gICAqICAtIGdtYWlsXG4gICAqICAtIGdvb2dsZXBob3Rvc1xuICAgKiAgLSBvbmVkcml2ZVxuICAgKiAgLSBvbmVkcml2ZWZvcmJ1c2luZXNzXG4gICAqICAtIGN1c3RvbXNvdXJjZSAtIENvbmZpZ3VyZSB0aGlzIGluIHlvdXIgRmlsZXN0YWNrIERldiBQb3J0YWwuXG4gICAqICAtIHVuc3BsYXNoXG4gICAqL1xuICBmcm9tU291cmNlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ29udGFpbmVyIHdoZXJlIHBpY2tlciBzaG91bGQgYmUgYXBwZW5kZWQuIE9ubHkgcmVsZXZhbnQgZm9yIGBpbmxpbmVgIGFuZCBgZHJvcFBhbmVgIGRpc3BsYXkgbW9kZXMuXG4gICAqL1xuICBjb250YWluZXI/OiBzdHJpbmcgfCBOb2RlO1xuXG4gIC8qKlxuICAgKiBUdXJuIG9uIGNsZWFuaW5nIEpQRUcgaW1hZ2UgZXhpZi4gTWV0aG9kIGNhbiBrZWVwIGltYWdlIG9yaWVudGF0aW9uIG9yIGNvbG9yIHByb2ZpbGVzXG4gICAqIGBgYGphdmFzY3JpcHRcbiAgICogY2xlYW51cEltYWdlRXhpZjoge1xuICAgKiAgIGtlZXBPcmllbnRhdGlvbjogdHJ1ZVxuICAgKiAgIGtlZXBJQ0NhbmRBUFA6IHRydWVcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGNsZWFudXBJbWFnZUV4aWY/OiBib29sZWFuIHwge1xuICAgIGtlZXBPcmllbnRhdGlvbj86IGJvb2xlYW4sXG4gICAga2VlcElDQ2FuZEFQUD86IGJvb2xlYW5cbiAgfTtcbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgdGV4dCBvbiB0aGUgY2xvdWQgYXV0aGVudGljYXRpb24gc2NyZWVuIGluIFBpY2tlci5cbiAgICogVXNlIGEgY2xvdWQgc291cmNlIG5hbWUgKHNlZSBbW1BpY2tlck9wdGlvbnMuZnJvbVNvdXJjZXNdXSlcbiAgICogb3IgYSAnZGVmYXVsdCcgYXMgYSBrZXksIHRoZW4gcHV0IHlvdXIgY3VzdG9tIG5vdGljZSBvciBjb25zZW50XG4gICAqIHRvIHRoZSAndG9wJyBvciB0aGUgJ2JvdHRvbScga2V5IHRvIHNob3cgaXQgcmVzcGVjdGl2bHkgYWJvdmUgb3IgdW5kZXIgJ0Nvbm5lY3QgYnV0dG9uJy5cbiAgICpcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjdXN0b21BdXRoVGV4dDoge1xuICAgKiAgIC8vIHVzZSBpdCBmb3IgZXZlcnkgY2xvdWQgYXV0aGVudGljYXRpb24gc2NyZWVuXG4gICAqICAgZGVmYXVsdDoge1xuICAgKiAgICAgdG9wOiBbXG4gICAqICAgICAgICdkZWZhdWx0IHRvcCBmaXJzdCBsaW5lJyxcbiAgICogICAgICAgJ2RlZmF1bHQgdG9wIHNlY29uZCBsaW5lJ1xuICAgKiAgICAgXSxcbiAgICogICAgIGJvdHRvbTogW1xuICAgKiAgICAgICAnZGVmYXVsdCBib3R0b20gZmlyc3QgbGluZScsXG4gICAqICAgICAgICdkZWZhdWx0IGJvdHRvbSBzZWNvbmQgbGluZSdcbiAgICogICAgIF1cbiAgICogICB9LFxuICAgKiAgIC8vIG92ZXJyaWRlIGEgZGVmYXVsdCBib3R0b20gdGV4dCBmb3Igb25seSBnbWFpbFxuICAgKiAgIGdtYWlsOiB7XG4gICAqICAgICBib3R0b206IFtcbiAgICogICAgICAgJ1dlIG5lZWQgeW91ciBwZXJtaXNzaW9uIHRvIGFjY2VzcyB5b3VyIGRhdGEgYW5kJyxcbiAgICogICAgICAgJ3Byb2Nlc3MgaXQgd2l0aCBvdXIgbWFjaGluZSBsZWFybmluZyBzeXN0ZW0uJ1xuICAgKiAgICAgXVxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGN1c3RvbUF1dGhUZXh0PzogQ3VzdG9tQXV0aFRleHRPcHRpb25zO1xuICAvKipcbiAgICogUGlja2VyIGRpc3BsYXkgbW9kZSwgb25lIG9mIGAnaW5saW5lJ2AsIGAnb3ZlcmxheSdgLCBgJ2Ryb3BQYW5lJ2AgLSBkZWZhdWx0IGlzIGAnb3ZlcmxheSdgLlxuICAgKi9cbiAgZGlzcGxheU1vZGU/OiBQaWNrZXJEaXNwbGF5TW9kZTtcbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgZmlsZXMgdG8gdXBsb2FkIGNvbmN1cnJlbnRseS4gRGVmYXVsdCBpcyA0LlxuICAgKi9cbiAgY29uY3VycmVuY3k/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgY29udGFpbmVyIGZvciB5b3VyIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VDb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgcGF0aCBmb3IgeW91ciBjdXN0b20gc291cmNlIGNvbnRhaW5lci5cbiAgICovXG4gIGN1c3RvbVNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUHJvdmlkZSBhbiBvYmplY3QgZm9yIG1hcHBpbmcgcGlja2VyIHN0cmluZ3MgdG8geW91ciBvd24gc3RyaW5ncy5cbiAgICogU3RyaW5ncyBzdXJyb3VuZGVkIGJ5IGJyYWNrZXRzLCBgeyBmb29iYXIgfWAsIGFyZSBpbnRlcnBvbGF0ZWQgd2l0aCBydW50aW1lIHZhbHVlcy5cbiAgICogU291cmNlIGxhYmVscyBhcmUgYWxzbyBhdmFpbGFibGUgdG8gb3ZlcnJpZGUsIGUuZy4gRmFjZWJvb2ssIEluc3RhZ3JhbSwgRHJvcGJveCwgZXRjLlxuICAgKi9cbiAgY3VzdG9tVGV4dD86IFBpY2tlckN1c3RvbVRleHQ7XG4gIC8qKlxuICAgKiBzZXQgc3VwcG9ydCBlbWFpbCB0byBkaXNwbGF5IGluIGNhc2Ugb2YgZXJyb3JcbiAgICovXG4gIHN1cHBvcnRFbWFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSByZW1vdmVzIHRoZSBoYXNoIHByZWZpeCBvbiBzdG9yZWQgZmlsZXMuXG4gICAqL1xuICBkaXNhYmxlU3RvcmFnZUtleT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgcmVtb3ZlcyBhYmlsaXR5IHRvIGVkaXQgaW1hZ2VzLlxuICAgKi9cbiAgZGlzYWJsZVRyYW5zZm9ybWVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERpc2FibGVzIGxvY2FsIGltYWdlIHRodW1ibmFpbCBwcmV2aWV3cyBpbiB0aGUgc3VtbWFyeSBzY3JlZW4uXG4gICAqL1xuICBkaXNhYmxlVGh1bWJuYWlscz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIGRyb3AgcGFuZSBiZWhhdmlvciwgaS5lLiB3aGVuIGBkaXNwbGF5TW9kZWAgaXMgYGRyb3BQYW5lYC5cbiAgICovXG4gIGRyb3BQYW5lPzogUGlja2VyRHJvcFBhbmVPcHRpb25zO1xuICAvKipcbiAgICogV2hlbiB0cnVlIHRoZSBgb3JpZ2luYWxGaWxlYCBtZXRhZGF0YSB3aWxsIGJlIHRoZSBhY3R1YWwgYEZpbGVgIG9iamVjdCBpbnN0ZWFkIG9mIGEgUE9KT1xuICAgKi9cbiAgZXhwb3NlT3JpZ2luYWxGaWxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZHJvcCB6b25lIHRvIGJlIGFjdGl2ZSBvbiBhbGwgdmlld3MuIERlZmF1bHQgaXMgYWN0aXZlIG9ubHkgb24gbG9jYWwgZmlsZSBzb3VyY2UuXG4gICAqL1xuICBnbG9iYWxEcm9wWm9uZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBIaWRlIHRoZSBwaWNrZXIgbW9kYWwgVUkgb25jZSB1cGxvYWRpbmcgYmVnaW5zLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgaGlkZU1vZGFsV2hlblVwbG9hZGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgaW1hZ2UgZGltZW5zaW9ucy4gZS5nLiBbODAwLCA2MDBdLiBPbmx5IGZvciBKUEVHLCBQTkcsIGFuZCBCTVAgZmlsZXMuXG4gICAqIExvY2FsIGFuZCBjcm9wcGVkIGltYWdlcyB3aWxsIGJlIHJlc2l6ZWQgKHVwc2NhbGVkIG9yIGRvd25zY2FsZWQpIHRvIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9ucyBiZWZvcmUgdXBsb2FkaW5nLlxuICAgKiBUaGUgb3JpZ2luYWwgaGVpZ2h0IHRvIHdpZHRoIHJhdGlvIGlzIG1haW50YWluZWQuIFRvIHJlc2l6ZSBhbGwgaW1hZ2VzIGJhc2VkIG9uIHRoZSB3aWR0aCwgc2V0IFt3aWR0aCwgbnVsbF0sIGUuZy4gWzgwMCwgbnVsbF0uXG4gICAqIEZvciB0aGUgaGVpZ2h0IHNldCBbbnVsbCwgaGVpZ2h0XSwgZS5nLiBbbnVsbCwgNjAwXS5cbiAgICovXG4gIGltYWdlRGltPzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgbWF4aW11bSBpbWFnZSBkaW1lbnNpb25zLiBlLmcuIFs4MDAsIDYwMF0uIE9ubHkgZm9yIEpQRUcsIFBORywgYW5kIEJNUCBmaWxlcy5cbiAgICogSW1hZ2VzIGJpZ2dlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9ucyB3aWxsIGJlIHJlc2l6ZWQgdG8gdGhlIG1heGltdW0gc2l6ZSB3aGlsZSBtYWludGFpbmluZyB0aGUgb3JpZ2luYWwgYXNwZWN0IHJhdGlvLlxuICAgKiBUaGUgb3V0cHV0IHdpbGwgbm90IGJlIGV4YWN0bHkgODAweDYwMCB1bmxlc3MgdGhlIGltYWdlTWF4IG1hdGNoZXMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2UuXG4gICAqL1xuICBpbWFnZU1heD86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG1pbmltdW0gaW1hZ2UgZGltZW5zaW9ucy4gZS5nLiBbODAwLCA2MDBdLiBPbmx5IGZvciBKUEVHLCBQTkcsIGFuZCBCTVAgZmlsZXMuXG4gICAqIEltYWdlcyBzbWFsbGVyIHRoYW4gdGhlIHNwZWNpZmllZCBkaW1lbnNpb25zIHdpbGwgYmUgdXBzY2FsZWQgdG8gdGhlIG1pbmltdW0gc2l6ZSB3aGlsZSBtYWludGFpbmluZyB0aGUgb3JpZ2luYWwgYXNwZWN0IHJhdGlvLlxuICAgKiBUaGUgb3V0cHV0IHdpbGwgbm90IGJlIGV4YWN0bHkgODAweDYwMCB1bmxlc3MgdGhlIGltYWdlTWluIG1hdGNoZXMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2UuXG4gICAqL1xuICBpbWFnZU1pbj86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBTZXRzIGxvY2FsZS4gQWNjZXB0czogY2EsIGRhLCBkZSwgZW4sIGVzLCBmciwgaGUsIGl0LCBqYSwga28sIG5sLCBubywgcGwsIHB0LCBzdiwgcnUsIHZpLCB6aCwgdHJcbiAgICovXG4gIGxhbmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBmaWxlcyByZXF1aXJlZCB0byBzdGFydCB1cGxvYWRpbmcuIERlZmF1bHRzIHRvIDEuXG4gICAqL1xuICBtaW5GaWxlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGZpbGVzIGFsbG93ZWQgdG8gdXBsb2FkLiBEZWZhdWx0cyB0byAxLlxuICAgKi9cbiAgbWF4RmlsZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXN0cmljdCBzZWxlY3RlZCBmaWxlcyB0byBhIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzLiAoZS5nLiAxMCBcXCogMTAyNCBcXCogMTAyNCBmb3IgMTBNQiBsaW1pdCkuXG4gICAqL1xuICBtYXhTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHZpZXcgdHlwZSBvcHRpb24gZm9yIGZpbGUgYnJvd3NlclxuICAgKi9cbiAgdmlld1R5cGU/OiAnZ3JpZCcgfCAnbGlzdCc7XG5cbiAgLyoqXG4gICAqIFRpbWVvdXQgZm9yIGVycm9yIG1lc3NhZ2VzXG4gICAqL1xuICBlcnJvcnNUaW1lb3V0PzogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmeSBbd2lkdGgsIGhlaWdodF0gaW4gcGl4ZWxzIG9mIHRoZSBkZXNrdG9wIG1vZGFsLlxuICAgKi9cbiAgbW9kYWxTaXplPzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFsbCB1cGxvYWRzIGluIGEgcGljayBhcmUgY2FuY2VsbGVkLlxuICAgKi9cbiAgb25DYW5jZWw/OiBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgVUkgaXMgZXhpdGVkLlxuICAgKi9cbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgVUkgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIFBpY2tlckluc3RhbmNlIGFwcGxpY2F0aW9uIGhhbmRsZVxuICAgKi9cbiAgb25PcGVuPzogKGhhbmRsZTogUGlja2VySW5zdGFuY2UpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbmV2ZXIgdXNlciBzZWxlY3RzIGEgZmlsZS5cbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gVXNpbmcgdG8gdmV0byBmaWxlIHNlbGVjdGlvblxuICAgKiAvLyBJZiB5b3UgdGhyb3cgYW55IGVycm9yIGluIHRoaXMgZnVuY3Rpb24gaXQgd2lsbCByZWplY3QgdGhlIGZpbGUgc2VsZWN0aW9uLlxuICAgKiAvLyBUaGUgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBhcyBhbiBhbGVydC5cbiAgICogb25GaWxlU2VsZWN0ZWQoZmlsZSkge1xuICAgKiAgIGlmIChmaWxlLnNpemUgPiAxMDAwICogMTAwMCkge1xuICAgKiAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlIHRvbyBiaWcsIHNlbGVjdCBzb21ldGhpbmcgc21hbGxlciB0aGFuIDFNQicpO1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiAvLyBVc2luZyB0byBjaGFuZ2Ugc2VsZWN0ZWQgZmlsZSBuYW1lXG4gICAqIC8vIE5PVEU6IFRoaXMgY3VycmVudGx5IG9ubHkgd29ya3MgZm9yIGxvY2FsIHVwbG9hZHNcbiAgICogb25GaWxlU2VsZWN0ZWQoZmlsZSkge1xuICAgKiAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIHJldHVybiBhIG5ldyBmaWxlIGJ5IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogICByZXR1cm4geyAuLi5maWxlLCBuYW1lOiAnZm9vJyB9O1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gY2FuIGFsc28gcmV0dXJuIGEgUHJvbWlzZSB0byBhbGxvdyBhc3luY2hyb25vdXMgdmFsaWRhdGlvbiBsb2dpYy5cbiAgICogWW91IGNhbiBwYXNzIGEgZmlsZSBvYmplY3QgdG8gYHJlc29sdmVgIGZvciBjaGFuZ2luZyB0aGUgZmlsZSBuYW1lLCBpdCB3aWxsIGJlaGF2ZSB0aGUgc2FtZSBhcyB3aGVuXG4gICAqIHRoZSBmaWxlIGlzIHJldHVybmVkIGZyb20gdGhlIG5vbi1hc3luYyBjYWxsYmFjay5cbiAgICpcbiAgICogYGBganNcbiAgICogb25GaWxlU2VsZWN0ZWQoZmlsZSkge1xuICAgKiAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAqICAgICAvLyBEbyBzb21ldGhpbmcgYXN5bmNcbiAgICogICAgIHJlc29sdmUoKTtcbiAgICogICAgIC8vIE9yIHJlamVjdCB0aGUgc2VsZWN0aW9uIHdpdGggcmVqZWN0KClcbiAgICogICB9KTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIG9uRmlsZVNlbGVjdGVkPzogUGlja2VyRmlsZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBmaWxlIHVwbG9hZCBoYXMgYmVlbiBjYW5jZWxlZC5cbiAgICovXG4gIG9uRmlsZVVwbG9hZENhbmNlbD86IFBpY2tlckZpbGVDYW5jZWxDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgZmlsZSBiZWdpbnMgdXBsb2FkaW5nLlxuICAgKi9cbiAgb25GaWxlVXBsb2FkU3RhcnRlZD86IFBpY2tlckZpbGVXaXRoVG9rZW5DYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgZmlsZSBpcyBkb25lIHVwbG9hZGluZy5cbiAgICovXG4gIG9uRmlsZVVwbG9hZEZpbmlzaGVkPzogUGlja2VyRmlsZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdXBsb2FkaW5nIGEgZmlsZSBmYWlscy5cbiAgICovXG4gIG9uRmlsZVVwbG9hZEZhaWxlZD86IFBpY2tlckZpbGVFcnJvckNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIGR1cmluZyBtdWx0aS1wYXJ0IHVwbG9hZCBwcm9ncmVzcyBldmVudHMuIExvY2FsIGZpbGVzIG9ubHkuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRQcm9ncmVzcz86IFBpY2tlckZpbGVQcm9ncmVzc0NhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gZmlsZSBpcyBjcm9wcGVkIGluIHBpY2tlclxuICAgKi9cbiAgb25GaWxlQ3JvcHBlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHVwbG9hZGluZyBzdGFydHMgKHVzZXIgaW5pdGlhdGVzIHVwbG9hZGluZykuXG4gICAqL1xuICBvblVwbG9hZFN0YXJ0ZWQ/OiBQaWNrZXJVcGxvYWRTdGFydGVkQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIHVwbG9hZGVkLlxuICAgKi9cbiAgb25VcGxvYWREb25lPzogUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgYSB1bmlxdWUgaWQgZm9yIHRoZSBhcHBsaWNhdGlvbiBtb3VudCBwb2ludC5cbiAgICogTWF5IGJlIHVzZWZ1bCBmb3IgbW9yZSBhZHZhbmNlZCB1c2UgY2FzZXMuXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3Ugd2lzaCB0byBoYXZlIG1vcmUgdGhhbiBvbmUgcGlja2VyIGluc3RhbmNlIG9wZW4gYXQgb25jZSxcbiAgICogdGhlbiBlYWNoIHdpbGwgbmVlZCB0aGVpciBvd24gdW5pcXVlIHJvb3RJZC5cbiAgICpcbiAgICogKipOb3RlOioqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgd2hlbiBgZGlzcGxheU1vZGVgIGlzIGBkcm9wUGFuZWAuXG4gICAqL1xuICByb290SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN0YXJ0IHVwbG9hZGluZyBhdXRvbWF0aWNhbGx5IHdoZW4gbWF4RmlsZXMgaXMgaGl0LiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgc3RhcnRVcGxvYWRpbmdXaGVuTWF4RmlsZXNSZWFjaGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGZpbGUgc3RvcmFnZS5cbiAgICovXG4gIHN0b3JlVG8/OiBQaWNrZXJTdG9yZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIGltYWdlcyBwYXNzZWQgdG8gdGhlIGNyb3AgVUkuXG4gICAqL1xuICB0cmFuc2Zvcm1hdGlvbnM/OiBQaWNrZXJUcmFuc2Zvcm1hdGlvbk9wdGlvbnM7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBsb2NhbCBmaWxlIHVwbG9hZHMuXG4gICAqL1xuICB1cGxvYWRDb25maWc/OiBVcGxvYWRPcHRpb25zO1xuICAvKipcbiAgICogU3RhcnQgdXBsb2FkaW5nIGltbWVkaWF0ZWx5IG9uIGZpbGUgc2VsZWN0aW9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIEBpbXBvcnRhbnQgVGhlIGZlYXR1cmUgaXMgY2FuIGJlIGVuYWJsZWQgb25seSBpZiBjcm9wIGlzIGRpc2FibGVkIC0gZGlzYWJsZVRyYW5zZm9ybWVyOiB0cnVlXG4gICAqL1xuICB1cGxvYWRJbkJhY2tncm91bmQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU2V0cyB0aGUgcmVzb2x1dGlvbiBvZiByZWNvcmRlZCB2aWRlby4gT25lIG9mIFwiMzIweDI0MFwiLCBcIjY0MHg0ODBcIiBvciBcIjEyODB4NzIwXCIuIERlZmF1bHQgaXMgYFwiNjQweDQ4MFwiYC5cbiAgICovXG4gIHZpZGVvUmVzb2x1dGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZSBTZW50cnkgQnJlYWRjcnVtYnMgbWVjaGFuaXNtIHRvIGxvZyBpbmZvcm1hdGlvbiBhYm91dCBvY2N1cmVkIGVycm9ycy5cbiAgICogSXQgY2FuIG92ZXJyaWRlIGdsb2JhbCBvYmplY3RzIGxpa2UgY29uc29sZSwgZXJyb3IgZXRjLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICB1c2VTZW50cnlCcmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoaWNoIFBpY2tlciBpbnN0YW5jZSBzaG91bGQgcmVzcG9uZCB0byBwYXN0ZSBldmVudC5cbiAgICogQnkgZGVmYXVsdCBvbmx5IGhvdmVyZWQgaW5zdGFuY2UgcmVzcG9uZHMgdG8gZXZlbnQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0IElmIG5vbmUgaW5zdGFuY2UgaXMgaG92ZXJlZCB0YWtlIGZpcnN0IHBpY2tlciBpbnN0YW5jZSBmdWxseSB2aXNpYmxlIGluIHZpZXdwb3J0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJbnN0YW5jZSBJZiBub25lIGluc3RhbmNlIGlzIGhvdmVyZWQgdGFrZSBmaXJzdCBwaWNrZXIgaW5zdGFuY2UgdGhhdCBpcyBpbml0aWFsaXplZFxuICAgKiBAcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydCBpcyBjaGVja2VkIGZpcnN0XG4gICAqL1xuICBwYXN0ZU1vZGU/OiB7XG4gICAgcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydD86IGJvb2xlYW4sXG4gICAgcGFzdGVUb0ZpcnN0SW5zdGFuY2U/OiBib29sZWFuXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcE9wdGlvbnMge1xuICAvKipcbiAgICogTWFpbnRhaW4gYXNwZWN0IHJhdGlvIGZvciBjcm9wIHNlbGVjdGlvbi4gKGUuZy4gMTYvOSwgODAwLzYwMCkuXG4gICAqL1xuICBhc3BlY3RSYXRpbz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEZvcmNlIGFsbCBpbWFnZXMgdG8gYmUgY3JvcHBlZCBiZWZvcmUgdXBsb2FkaW5nLlxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclRyYW5zZm9ybWF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgY3JvcC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgY3JvcD86IGJvb2xlYW4gfCBQaWNrZXJDcm9wT3B0aW9ucztcbiAgLyoqXG4gICAqIEVuYWJsZSBjaXJjbGUgY3JvcC4gRGlzYWJsZWQgaWYgY3JvcC5hc3BlY3RSYXRpbyBpcyBkZWZpbmVkIGFuZCBub3QgMS4gQ29udmVydHMgdG8gUE5HLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBjaXJjbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIGltYWdlIHJvdGF0aW9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByb3RhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgZm9yY2UgY3JvcCBvcHRpb24uIENhbiBiZSB1c2UgaWUgd2l0aCBjaXJjbGVcbiAgICovXG4gIGZvcmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJBY2NlcHRGbk9wdGlvbnMge1xuICAvKipcbiAgICogUHJvdmlkZWQgYWNjZXB0IHN0cmluZ1xuICAgKi9cbiAgYWNjZXB0OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEFjY2VwdCBzdHJpbmcgY29udmVydGVkIHRvIG1pbWV0eXBlXG4gICAqL1xuICBhY2NlcHRNaW1lOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE1pbWV0eXBlIGJhc2VkIG1hZ2ljIGJ5dGVzXG4gICAqIHtAbGluayBodHRwczovL2ZpbGVzdGFjay5naXRodWIuaW8vZmlsZXN0YWNrLWpzL2dsb2JhbHMuaHRtbCNnZXRtaW1ldHlwZX1cbiAgICovXG4gIG1pbWVGcm9tTWFnaWNCeXRlczogUHJvbWlzZTxzdHJpbmc+O1xuICAvKipcbiAgICogTWltZXR5cGUgYmFzZWQgb24gZmlsZSBleHRlbnNpb25cbiAgICoge0BsaW5rIGh0dHBzOi8vZmlsZXN0YWNrLmdpdGh1Yi5pby9maWxlc3RhY2stanMvZ2xvYmFscy5odG1sI2V4dGVuc2lvbnRvbWltZX1cbiAgICovXG4gIG1pbWVGcm9tRXh0ZW5zaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIEEgc3luY2hyb25vdXMtbG9va2luZyB3cmFwcGVyIGZvciBsb2FkaW5nIHRoZSBwaWNrZXIgYW5kIGNhbGxpbmcgaXRzIG1ldGhvZHMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBuZWVkZWQgYmVjYXVzZSB0aGUgcGlja2VyIG1vZHVsZSBpcyBsb2FkZWQgYXN5bmNocm9ub3VzbHkuXG4gKiBFdmVudHVhbGx5IHdlIHNob3VsZCBvZmZlciBhIGJ1bmRsZSB3aXRoIHRoZSBwaWNrZXIgbW9kdWxlIGluY2x1ZGVkLlxuICovXG5jbGFzcyBQaWNrZXJMb2FkZXIge1xuXG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBQcm9taXNlPFBpY2tlckluc3RhbmNlPjtcbiAgY29uc3RydWN0b3IoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKSB7XG4gICAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoUGlja2VyUGFyYW1zU2NoZW1hKShvcHRpb25zKTtcblxuICAgIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgcGlja2VyIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycywgRmlsZXN0YWNrRXJyb3JUeXBlLlZBTElEQVRJT04pO1xuICAgIH1cblxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdGhpcy5sb2FkTW9kdWxlKGNsaWVudCwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBvcGVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5vcGVuKCk7XG4gIH1cblxuICBhc3luYyBjcm9wKGZpbGVzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jcm9wKGZpbGVzKTtcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jbG9zZSgpO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jYW5jZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1vZHVsZShjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpOiBQcm9taXNlPFBpY2tlckluc3RhbmNlPiB7XG4gICAgY29uc3QgeyBzZXNzaW9uOiB7IHVybHM6IHsgcGlja2VyVXJsOiB1cmwgfSB9IH0gPSBjbGllbnQ7XG4gICAgY29uc3QgUGlja2VyID0gYXdhaXQgbG9hZE1vZHVsZShGSUxFU1RBQ0tfTU9EVUxFUy5QSUNLRVIsIHVybCk7XG4gICAgcmV0dXJuIG5ldyBQaWNrZXIoY2xpZW50LCBvcHRpb25zKTtcbiAgfVxufVxuXG4vKipcbiAqIExvYWRzIGFuZCBjcmVhdGVzIHBpY2tlciBpbnN0YW5jZVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gY2xpZW50XG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcGlja2VyID0gKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFBpY2tlckluc3RhbmNlID0+IHtcbiAgcmV0dXJuIG5ldyBQaWNrZXJMb2FkZXIoY2xpZW50LCBvcHRpb25zKTtcbn07XG4iXX0= |
@@ -46,3 +46,3 @@ /* | ||
export var getVersion = function () { | ||
return 'JS-3.24.1'; | ||
return 'JS-3.25.0'; | ||
}; | ||
@@ -49,0 +49,0 @@ /** |
@@ -45,3 +45,3 @@ /* | ||
export var getVersion = function () { | ||
return 'JS-3.24.1'; | ||
return 'JS-3.25.0'; | ||
}; | ||
@@ -48,0 +48,0 @@ /** |
@@ -21,3 +21,3 @@ /* | ||
it('should return version string to replace', function () { | ||
expect(utils.getVersion()).toEqual("JS-3.24.1"); | ||
expect(utils.getVersion()).toEqual("JS-3.25.0"); | ||
}); | ||
@@ -24,0 +24,0 @@ }); |
@@ -36,8 +36,2 @@ export declare const PickerParamsSchema: { | ||
}; | ||
tags: { | ||
type: string; | ||
additionalProperties: { | ||
type: string; | ||
}; | ||
}; | ||
container: { | ||
@@ -367,2 +361,14 @@ format: string; | ||
properties: { | ||
tags: { | ||
type: string; | ||
additionalProperties: { | ||
anyOf: ({ | ||
type: string; | ||
format?: undefined; | ||
} | { | ||
format: string; | ||
type?: undefined; | ||
})[]; | ||
}; | ||
}; | ||
partSize: { | ||
@@ -418,10 +424,2 @@ type: string; | ||
}; | ||
tags: { | ||
type: string; | ||
maxItems: number; | ||
additionalProperties: { | ||
type: string; | ||
maxlength: number; | ||
}; | ||
}; | ||
}; | ||
@@ -432,3 +430,15 @@ }; | ||
}; | ||
pasteMode: { | ||
type: string; | ||
additionalProperties: boolean; | ||
properties: { | ||
pasteToFirstInViewPort: { | ||
type: string; | ||
}; | ||
pasteToFirstInstance: { | ||
type: string; | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; |
@@ -0,1 +1,2 @@ | ||
import { __assign } from "tslib"; | ||
/* | ||
@@ -70,3 +71,3 @@ * Copyright (c) 2018 by Filestack. | ||
'gmail', | ||
'picasa', | ||
'googlephotos', | ||
'onedrive', | ||
@@ -82,8 +83,2 @@ 'onedriveforbusiness', | ||
}, | ||
tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
type: 'string', | ||
}, | ||
}, | ||
container: { | ||
@@ -420,3 +415,15 @@ format: 'HTMLContainer', | ||
additionalProperties: false, | ||
properties: UploadParamsSchema.properties, | ||
properties: __assign(__assign({}, UploadParamsSchema.properties), { tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
anyOf: [ | ||
{ | ||
type: 'string', | ||
}, | ||
{ | ||
format: 'callback', | ||
}, | ||
], | ||
}, | ||
} }), | ||
}, | ||
@@ -426,5 +433,17 @@ useSentryBreadcrumbs: { | ||
}, | ||
pasteMode: { | ||
type: 'object', | ||
additionalProperties: false, | ||
properties: { | ||
pasteToFirstInViewPort: { | ||
type: 'boolean', | ||
}, | ||
pasteToFirstInstance: { | ||
type: 'boolean', | ||
}, | ||
}, | ||
}, | ||
}, | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQUUseUNBQXlDO0lBQ2xELEtBQUssRUFBRSxrQkFBa0I7SUFDekIsV0FBVyxFQUFFLDBCQUEwQjtJQUN2QyxJQUFJLEVBQUUsUUFBUTtJQUNkLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsMkJBQTJCO0lBQzNCLFVBQVUsRUFBRTtRQUNWLGdCQUFnQixFQUFFO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sb0JBQW9CLEVBQUUsS0FBSztZQUMzQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsUUFBUSxFQUFFLENBQUM7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMOzRCQUNFLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxVQUFVO1NBQ25CO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDMUIsb0JBQW9CLEVBQUUsS0FBSztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQjt3QkFDbkIsS0FBSzt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxLQUFLO3dCQUNMLFFBQVE7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WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgVXBsb2FkUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi91cGxvYWQuc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IFBpY2tlclBhcmFtc1NjaGVtYSA9IHtcbiAgJHNjaGVtYTogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIycsXG4gIHRpdGxlOiAnRmlsZXN0YWNrIFBpY2tlcicsXG4gIGRlc2NyaXB0aW9uOiAnRmlsZXN0YWNrIFBpY2tlciBPcHRpb25zJyxcbiAgdHlwZTogJ29iamVjdCcsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgLy8gcmVxdWlyZWQ6IFsnY29udGFpbmVyJ10sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhbGxvd01hbnVhbFJldHJ5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBhY2NlcHQ6IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIG9uZU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgYWNjZXB0Rm46IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIGZyb21Tb3VyY2VzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFsnc3RyaW5nJywgJ29iamVjdCddLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBlbnVtOiBbXG4gICAgICAgICAgICAnbG9jYWxfZmlsZV9zeXN0ZW0nLFxuICAgICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgICAnaW1hZ2VzZWFyY2gnLFxuICAgICAgICAgICAgJ2ZhY2Vib29rJyxcbiAgICAgICAgICAgICdpbnN0YWdyYW0nLFxuICAgICAgICAgICAgJ2dvb2dsZWRyaXZlJyxcbiAgICAgICAgICAgICd1bnNwbGFzaCcsXG4gICAgICAgICAgICAnZHJvcGJveCcsXG4gICAgICAgICAgICAnd2ViY2FtJyxcbiAgICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgICAnYXVkaW8nLFxuICAgICAgICAgICAgJ2JveCcsXG4gICAgICAgICAgICAnZ2l0aHViJyxcbiAgICAgICAgICAgICdnbWFpbCcsXG4gICAgICAgICAgICAncGljYXNhJyxcbiAgICAgICAgICAgICdvbmVkcml2ZScsXG4gICAgICAgICAgICAnb25lZHJpdmVmb3JidXNpbmVzcycsXG4gICAgICAgICAgICAnY2xvdWRkcml2ZScsXG4gICAgICAgICAgICAnZ29vZ2xlcGhvdG9zJyxcbiAgICAgICAgICAgICdjdXN0b21zb3VyY2UnLFxuICAgICAgICAgICAgJ3RpbnQnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgdGFnczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250YWluZXI6IHtcbiAgICAgIGZvcm1hdDogJ0hUTUxDb250YWluZXInLFxuICAgIH0sXG4gICAgY2xlYW51cEltYWdlRXhpZjoge1xuICAgICAgb25lT2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBrZWVwT3JpZW50YXRpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtlZXBJQ0NhbmRBUFA6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGRpc3BsYXlNb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnaW5saW5lJywgJ292ZXJsYXknLCAnZHJvcFBhbmUnXSxcbiAgICB9LFxuICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMjAsXG4gICAgfSxcbiAgICBzdXBwb3J0RW1haWw6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlQ29udGFpbmVyOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZVBhdGg6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlTmFtZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBkaXNhYmxlU3RvcmFnZUtleToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZGlzYWJsZVRyYW5zZm9ybWVyOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVGh1bWJuYWlsczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZXhwb3NlT3JpZ2luYWxGaWxlOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBnbG9iYWxEcm9wWm9uZToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaGlkZU1vZGFsV2hlblVwbG9hZGluZzoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaW1hZ2VEaW06IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWF4OiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbjoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNaW5NYXhCbG9jazoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5nOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnY2EnLCAnZGEnLCAnZGUnLCAnZW4nLCAnZXMnLCAnZnInLCAnaGUnLCAnaXQnLCAnamEnLCAna28nLCAnbmwnLCAnbm8nLCAncGwnLCAncHQnLCAnc3YnLCAncnUnLCAndmknLCAnemgnLCAndHInLCAnYXInXSxcbiAgICB9LFxuICAgIG1pbkZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heEZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heFNpemU6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgfSxcbiAgICBtb2RhbFNpemU6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcm9vdElkOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdXBsb2FkSW5CYWNrZ3JvdW5kOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB2aWRlb1Jlc29sdXRpb246IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgb25DYW5jZWw6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uQ2xvc2U6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uT3Blbjoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlU2VsZWN0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZENhbmNlbDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkU3RhcnRlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkRmluaXNoZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZEZhaWxlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkUHJvZ3Jlc3M6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uVXBsb2FkU3RhcnRlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25VcGxvYWREb25lOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVDcm9wcGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBzdG9yZVRvOiB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZmlsZW5hbWU6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgICAkcmVmOiAnbG9jYXRpb25zRGVmJyxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGg6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaW9uOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFjY2Vzczoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGVudW06IFsncHVibGljJywgJ3ByaXZhdGUnXSxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dzOiB7XG4gICAgICAgICAgJHJlZjogJ3dvcmtmbG93c0RlZicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdmlld1R5cGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydncmlkJywgJ2xpc3QnXSxcbiAgICB9LFxuICAgIHRyYW5zZm9ybWF0aW9uczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNpcmNsZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgcm90YXRlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBmb3JjZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JvcDoge1xuICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBmb3JjZToge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXNwZWN0UmF0aW86IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3VzdG9tVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3JvcEZpbGVzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDEsXG4gICAgfSxcbiAgICBsb2FkQ3NzOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGZhaWxPdmVyTWF4RmlsZXM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRyb3BQYW5lOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY3JvcEZpbGVzOiB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgfSxcbiAgICAgICAgY3VzdG9tVGV4dDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlQ2xpY2s6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dJY29uOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBzaG93UHJvZ3Jlc3M6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ0VudGVyOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvblByb2dyZXNzOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdMZWF2ZToge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnT3Zlcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25Ecm9wOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvblN1Y2Nlc3M6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRXJyb3I6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2s6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXJyb3JzVGltZW91dDoge1xuICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICBtaW5pbXVtOiAwLFxuICAgIH0sXG4gICAgY3VzdG9tQXV0aFRleHQ6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgJy4qJzoge1xuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICByZXF1aXJlZDogWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdG9wOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvdHRvbToge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB1cGxvYWRDb25maWc6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczogVXBsb2FkUGFyYW1zU2NoZW1hLnByb3BlcnRpZXMsLy8gbWFudWFsIGltcG9ydCB1cGxvYWQgZGVmaW5pdGlvbnNcbiAgICB9LFxuICAgIHVzZVNlbnRyeUJyZWFkY3J1bWJzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7SUFDdkMsSUFBSSxFQUFFLFFBQVE7SUFDZCxvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLDJCQUEyQjtJQUMzQixVQUFVLEVBQUU7UUFDVixnQkFBZ0IsRUFBRTtZQUNoQixJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELE1BQU0sRUFBRTtZQUNOLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxRQUFRO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxPQUFPO29CQUNiLFFBQVEsRUFBRSxDQUFDO29CQUNYLEtBQUssRUFBRTt3QkFDTDs0QkFDRSxJQUFJLEVBQUUsUUFBUTt5QkFDZjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUUsVUFBVTtTQUNuQjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7b0JBQzFCLG9CQUFvQixFQUFFLEtBQUs7b0JBQzNCLElBQUksRUFBRTt3QkFDSixtQkFBbUI7d0JBQ25CLEtBQUs7d0JBQ0wsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsS0FBSzt3QkFDTCxRQUFR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RSxTQUFTO1NBQ2hCO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFFBQVE7WUFDZCxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLFVBQVUsRUFBRTtnQkFDVixzQkFBc0IsRUFBRTtvQkFDdEIsSUFBSSxFQUFFLFNBQVM7aUJBQ2hCO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixJQUFJLEVBQUUsU0FBUztpQkFDaEI7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwiZmlsZSI6InNjaGVtYS9waWNrZXIuc2NoZW1hLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFVwbG9hZFBhcmFtc1NjaGVtYSB9IGZyb20gJy4vdXBsb2FkLnNjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBQaWNrZXJQYXJhbXNTY2hlbWEgPSB7XG4gICRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMnLFxuICB0aXRsZTogJ0ZpbGVzdGFjayBQaWNrZXInLFxuICBkZXNjcmlwdGlvbjogJ0ZpbGVzdGFjayBQaWNrZXIgT3B0aW9ucycsXG4gIHR5cGU6ICdvYmplY3QnLFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIC8vIHJlcXVpcmVkOiBbJ2NvbnRhaW5lciddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYWxsb3dNYW51YWxSZXRyeToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgYWNjZXB0OiB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGFjY2VwdEZuOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBmcm9tU291cmNlczoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBbJ3N0cmluZycsICdvYmplY3QnXSxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgJ2xvY2FsX2ZpbGVfc3lzdGVtJyxcbiAgICAgICAgICAgICd1cmwnLFxuICAgICAgICAgICAgJ2ltYWdlc2VhcmNoJyxcbiAgICAgICAgICAgICdmYWNlYm9vaycsXG4gICAgICAgICAgICAnaW5zdGFncmFtJyxcbiAgICAgICAgICAgICdnb29nbGVkcml2ZScsXG4gICAgICAgICAgICAndW5zcGxhc2gnLFxuICAgICAgICAgICAgJ2Ryb3Bib3gnLFxuICAgICAgICAgICAgJ3dlYmNhbScsXG4gICAgICAgICAgICAndmlkZW8nLFxuICAgICAgICAgICAgJ2F1ZGlvJyxcbiAgICAgICAgICAgICdib3gnLFxuICAgICAgICAgICAgJ2dpdGh1YicsXG4gICAgICAgICAgICAnZ21haWwnLFxuICAgICAgICAgICAgJ2dvb2dsZXBob3RvcycsXG4gICAgICAgICAgICAnb25lZHJpdmUnLFxuICAgICAgICAgICAgJ29uZWRyaXZlZm9yYnVzaW5lc3MnLFxuICAgICAgICAgICAgJ2Nsb3VkZHJpdmUnLFxuICAgICAgICAgICAgJ2dvb2dsZXBob3RvcycsXG4gICAgICAgICAgICAnY3VzdG9tc291cmNlJyxcbiAgICAgICAgICAgICd0aW50JyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGNvbnRhaW5lcjoge1xuICAgICAgZm9ybWF0OiAnSFRNTENvbnRhaW5lcicsXG4gICAgfSxcbiAgICBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGtlZXBPcmllbnRhdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2VlcElDQ2FuZEFQUDoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgZGlzcGxheU1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydpbmxpbmUnLCAnb3ZlcmxheScsICdkcm9wUGFuZSddLFxuICAgIH0sXG4gICAgY29uY3VycmVuY3k6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAyMCxcbiAgICB9LFxuICAgIHN1cHBvcnRFbWFpbDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VDb250YWluZXI6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlUGF0aDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VOYW1lOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGRpc2FibGVTdG9yYWdlS2V5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVHJhbnNmb3JtZXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRpc2FibGVUaHVtYm5haWxzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBleHBvc2VPcmlnaW5hbEZpbGU6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGdsb2JhbERyb3Bab25lOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBoaWRlTW9kYWxXaGVuVXBsb2FkaW5nOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBpbWFnZURpbToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNYXg6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWluOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbk1heEJsb2NrOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIGxhbmc6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydjYScsICdkYScsICdkZScsICdlbicsICdlcycsICdmcicsICdoZScsICdpdCcsICdqYScsICdrbycsICdubCcsICdubycsICdwbCcsICdwdCcsICdzdicsICdydScsICd2aScsICd6aCcsICd0cicsICdhciddLFxuICAgIH0sXG4gICAgbWluRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4RmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4U2l6ZToge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICB9LFxuICAgIG1vZGFsU2l6ZToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICByb290SWQ6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgc3RhcnRVcGxvYWRpbmdXaGVuTWF4RmlsZXNSZWFjaGVkOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB1cGxvYWRJbkJhY2tncm91bmQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIHZpZGVvUmVzb2x1dGlvbjoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBvbkNhbmNlbDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25DbG9zZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25PcGVuOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVTZWxlY3RlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkQ2FuY2VsOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGaW5pc2hlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkRmFpbGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRQcm9ncmVzczoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25VcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZERvbmU6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZUNyb3BwZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIHN0b3JlVG86IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBmaWxlbmFtZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvbjoge1xuICAgICAgICAgICRyZWY6ICdsb2NhdGlvbnNEZWYnLFxuICAgICAgICB9LFxuICAgICAgICBjb250YWluZXI6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICByZWdpb246IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZW51bTogWydwdWJsaWMnLCAncHJpdmF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgICAkcmVmOiAnd29ya2Zsb3dzRGVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aWV3VHlwZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2dyaWQnLCAnbGlzdCddLFxuICAgIH0sXG4gICAgdHJhbnNmb3JtYXRpb25zOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY2lyY2xlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICByb3RhdGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBjcm9wOiB7XG4gICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhc3BlY3RSYXRpbzoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjdXN0b21UZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjcm9wRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMSxcbiAgICB9LFxuICAgIGxvYWRDc3M6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgZmFpbE92ZXJNYXhGaWxlczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZHJvcFBhbmU6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjcm9wRmlsZXM6IHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21UZXh0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVDbGljazoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0ljb246IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dQcm9ncmVzczoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnRW50ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uUHJvZ3Jlc3M6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ0xlYXZlOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdPdmVyOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyb3A6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VjY2Vzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25FcnJvcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlcnJvcnNUaW1lb3V0OiB7XG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgfSxcbiAgICBjdXN0b21BdXRoVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7XG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHVwbG9hZENvbmZpZzoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC8vIG1hbnVhbCBpbXBvcnQgdXBsb2FkIGRlZmluaXRpb25zXG4gICAgICAgIC4uLlVwbG9hZFBhcmFtc1NjaGVtYS5wcm9wZXJ0aWVzLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGFueU9mOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB1c2VTZW50cnlCcmVhZGNydW1iczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgcGFzdGVNb2RlOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydDoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGFzdGVUb0ZpcnN0SW5zdGFuY2U6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuIl19 |
@@ -5,2 +5,12 @@ # Changelog | ||
## [3.25.0](https://github.com/filestack/filestack-js/compare/v3.24.1...v3.25.0) (2021-10-05) | ||
### Features | ||
* **picker:** bump version ([f047a4e](https://github.com/filestack/filestack-js/commit/f047a4e1552ba433f7f9f027c74cc4bf4ff90b8e)) | ||
* **picker:** Picker paste event add configuration options ([#454](https://github.com/filestack/filestack-js/issues/454)) ([a5a249b](https://github.com/filestack/filestack-js/commit/a5a249b0c9233f8eae7160bf5eef0f05dccd0920)) | ||
* **picker:** support callback for tags ([#461](https://github.com/filestack/filestack-js/issues/461)) ([cf89ee0](https://github.com/filestack/filestack-js/commit/cf89ee08486dc28f352a2523a96b53e7c58ce3b0)) | ||
* **upload:** emit event on file upload start ([#462](https://github.com/filestack/filestack-js/issues/462)) ([c676b48](https://github.com/filestack/filestack-js/commit/c676b483c8af519f0360fee0bf84446df1810494)) | ||
### [3.24.1](https://github.com/filestack/filestack-js/compare/v3.24.0...v3.24.1) (2021-07-28) | ||
@@ -7,0 +17,0 @@ |
{ | ||
"name": "filestack-js", | ||
"version": "3.24.1", | ||
"version": "3.25.0", | ||
"description": "Official JavaScript library for Filestack", | ||
@@ -5,0 +5,0 @@ "main": "build/main/index.js", |
@@ -21,3 +21,3 @@ /* | ||
*/ | ||
const PICKER_VERSION = '1.22.1'; | ||
const PICKER_VERSION = '1.23.0'; | ||
@@ -24,0 +24,0 @@ /** |
@@ -134,2 +134,3 @@ /* | ||
this.uploader.on('start', () => this.emit('start')); | ||
this.uploader.on('error', (e) => this.emit('error', e)); | ||
@@ -136,0 +137,0 @@ this.uploader.on('progress', this.handleProgress.bind(this)); |
@@ -367,2 +367,3 @@ /* | ||
debug(`[${id}] All tasks for %s enqueued. Start processing main upload queue`, id); | ||
this.emit('start'); | ||
this.partsQueue.start(); | ||
@@ -369,0 +370,0 @@ |
@@ -460,2 +460,3 @@ /* | ||
upload.on('start', () => this.emit('upload.start')); | ||
/* istanbul ignore next */ | ||
@@ -526,2 +527,3 @@ upload.on('error', e => { | ||
upload.on('start', () => this.emit('upload.start')); | ||
/* istanbul ignore next */ | ||
@@ -528,0 +530,0 @@ upload.on('error', e => { |
@@ -175,2 +175,5 @@ /* | ||
} | ||
export interface PickerFileWithTokenCallback { | ||
(file: PickerFileMetadata, token?: {pause?: () => void, resume?: () => void, cancel?: () => void}): void | Promise<any>; | ||
} | ||
@@ -408,3 +411,3 @@ export interface PickerFileCancelCallback { | ||
* - gmail | ||
* - picasa | ||
* - googlephotos | ||
* - onedrive | ||
@@ -629,3 +632,3 @@ * - onedriveforbusiness | ||
*/ | ||
onFileUploadStarted?: PickerFileCallback; | ||
onFileUploadStarted?: PickerFileWithTokenCallback; | ||
/** | ||
@@ -695,2 +698,13 @@ * Called when a file is done uploading. | ||
useSentryBreadcrumbs?: boolean; | ||
/** | ||
* Specify which Picker instance should respond to paste event. | ||
* By default only hovered instance responds to event. | ||
* @param {boolean = false} pasteToFirstInViewPort If none instance is hovered take first picker instance fully visible in viewport | ||
* @param {boolean = false} pasteToFirstInstance If none instance is hovered take first picker instance that is initialized | ||
* @pasteToFirstInViewPort is checked first | ||
*/ | ||
pasteMode?: { | ||
pasteToFirstInViewPort?: boolean, | ||
pasteToFirstInstance?: boolean | ||
}; | ||
} | ||
@@ -697,0 +711,0 @@ |
@@ -71,3 +71,3 @@ /* | ||
'gmail', | ||
'picasa', | ||
'googlephotos', | ||
'onedrive', | ||
@@ -83,8 +83,2 @@ 'onedriveforbusiness', | ||
}, | ||
tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
type: 'string', | ||
}, | ||
}, | ||
container: { | ||
@@ -421,3 +415,19 @@ format: 'HTMLContainer', | ||
additionalProperties: false, | ||
properties: UploadParamsSchema.properties,// manual import upload definitions | ||
properties: { | ||
// manual import upload definitions | ||
...UploadParamsSchema.properties, | ||
tags: { | ||
type: 'object', | ||
additionalProperties: { | ||
anyOf: [ | ||
{ | ||
type: 'string', | ||
}, | ||
{ | ||
format: 'callback', | ||
}, | ||
], | ||
}, | ||
}, | ||
}, | ||
}, | ||
@@ -427,3 +437,15 @@ useSentryBreadcrumbs: { | ||
}, | ||
pasteMode: { | ||
type: 'object', | ||
additionalProperties: false, | ||
properties: { | ||
pasteToFirstInViewPort: { | ||
type: 'boolean', | ||
}, | ||
pasteToFirstInstance: { | ||
type: 'boolean', | ||
}, | ||
}, | ||
}, | ||
}, | ||
}; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
8585590
86091