Socket
Socket
Sign inDemoInstall

filestack-js

Package Overview
Dependencies
Maintainers
1
Versions
169
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

filestack-js - npm Package Compare versions

Comparing version 3.21.1 to 3.22.0

4

build/browser/manifest.json
{
"main.js": {
"src": "filestack.min.js",
"integrity": "sha256-MnecdyjECL4BQmMSxRMEbOAMgeNrdlen3GMlqx7p2yU= sha384-QlEPPr7551VC4fDWox76D8qKQzID28BDxosei6Fhcsi/SzrzpyaS6pAzw19ugMWK sha512-OeELfbzh3aiBghn4PbbA9zOk5djHWvCzd/AcBUzjnFne6G2UiAfwHNTq4gQoRdhu2+L8eNIM2kipGK3yFNQKLA=="
"integrity": "sha256-+D+Cl7FoHRegZNQTMM9Nz7oy1RQr9HeJUtzbEKH6RXo= sha384-qefjvizG0wnGGICaR1Kl2QhgX7ZJTv+E7veEb01lGYdZCcrQyDOHztDCIF/Xmnns sha512-WszTPgBMODfF8d2IrAXYBSGPz4gcY1r04BWZk2sMixLIFMYCpErdZO83lTmx2lG/rLT4109GQm6COyrfQc/XQw=="
},
"main.js.map": {
"src": "filestack.min.js.map",
"integrity": "sha256-u4u0d4sll/5xJ52h4usWw88Yj5wYCiOLcGJVt6uqpoM= sha384-ynOlnt1tCe2TtTv4sR1cK/Q270QD+YzQN493m7u8TebSQLBCtoQyLPHBMKTun8bs sha512-cgZ5E6IA4Wbt2ZZ/o04Bgw3fShKr/B6sgoE3SFFJl1zm7MqhyxWcyXe9uTnxNUMT46CKT/T2M5rZpBym5PeBGA=="
"integrity": "sha256-iopfsgJhVbQD7/Fb6LdDEKGWcHpbyGQGnzqqbN1G1oQ= sha384-NjbtEVliwbiqDxPv6DiZuC504lUCtfF1lx/+TQjv59/B8QoCQqA66LV2tiSdIshR sha512-E7XHCe9lqHLXRb0DvhQGWwhuMSy6IGiI+AvQAyn8NcdCTIoVoUyMHDBHKwrzcfLtCBtzDjkkrX5lFs20yHxh6g=="
}
}

@@ -22,3 +22,3 @@ "use strict";

*/
var PICKER_VERSION = '1.20.1';
var PICKER_VERSION = '1.21.0';
exports.config = {

@@ -35,2 +35,2 @@ urls: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMjAuMSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMjEuMCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=

@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security';

*/
export declare const version = "3.21.1";
export declare const version = "3.22.0";
export * from './lib/api/transform';

@@ -29,0 +29,0 @@ export * from './lib/filelink';

@@ -50,4 +50,4 @@ "use strict";

*/
exports.version = '3.21.1';
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.21.1' });
exports.version = '3.22.0';
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.22.0' });
tslib_1.__exportStar(require("./lib/api/transform"), exports);

@@ -54,0 +54,0 @@ tslib_1.__exportStar(require("./lib/filelink"), exports);

import { Security, Session } from '../client';
import { FsResponse } from './../request/types';
/**

@@ -42,2 +43,9 @@ * Remove given file

export declare const metadata: (session: Session, handle?: string, opts?: MetadataOptions, security?: Security) => Promise<any>;
/**
* Download file to blob or buffer format
*
* @param session
* @param handle
*/
export declare const download: (session: Session, handle: string, security?: Security) => Promise<FsResponse>;
export interface RetrieveOptions {

@@ -54,2 +62,3 @@ metadata?: boolean;

* @private
* @deprecated
* @param session

@@ -56,0 +65,0 @@ * @param handle

@@ -20,2 +20,3 @@ "use strict";

var tslib_1 = require("tslib");
var filelink_1 = require("./../filelink");
var utils_1 = require("../utils");

@@ -78,3 +79,3 @@ var filestack_error_1 = require("./../../filestack_error");

return new Promise(function (resolve, reject) {
request_1.FsRequest.get(baseURL, { params: utils_1.removeEmpty(options), filestackHeaders: false, })
request_1.FsRequest.get(baseURL, { params: utils_1.removeEmpty(options), filestackHeaders: false })
.then(function (res) { return resolve(tslib_1.__assign(tslib_1.__assign({}, res.data), { handle: handle })); })

@@ -85,5 +86,21 @@ .catch(reject);

/**
* Download file to blob or buffer format
*
* @param session
* @param handle
*/
exports.download = function (session, handle, security) {
var fl = new filelink_1.Filelink(handle, session.apikey);
var policy = (security && security.policy) || session.policy;
var signature = (security && security.signature) || session.signature;
if (policy && signature) {
fl.security({ signature: signature, policy: policy });
}
return request_1.FsRequest.dispatch(fl.toString(), { method: request_1.FsHttpMethod.GET, blobResponse: true });
};
/**
* Returns file information
*
* @private
* @deprecated
* @param session

@@ -99,2 +116,3 @@ * @param handle

}
console.info('Retrieve method is deprecated and it will be removed. Please use metadata or download');
var validateRes = schema_1.getValidator(schema_1.RetrieveParamsSchema)(options);

@@ -138,2 +156,2 @@ if (validateRes.errors.length) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBR0gsa0NBQXVDO0FBQ3ZDLDJEQUF5RDtBQUN6RCx5Q0FBMEY7QUFDMUYsc0NBQXFEO0FBRXJEOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLE1BQU0sR0FBRyxVQUFDLE9BQWdCLEVBQUUsTUFBZSxFQUFFLFdBQXFCLEVBQUUsUUFBbUI7SUFDbEcsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxJQUFJLGdDQUFjLENBQUMsaURBQWlELENBQUMsQ0FBQztLQUM3RTtJQUVELElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7UUFDckcsTUFBTSxJQUFJLGdDQUFjLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUNuRjtJQUVELElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLElBQU0sT0FBTyxHQUFNLFVBQVUsU0FBSSxNQUFRLENBQUM7SUFDMUMsSUFBTSxPQUFPLEdBQVE7UUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ25CLE1BQU0sRUFBRSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU07UUFDdkQsU0FBUyxFQUFFLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUztLQUNqRSxDQUFDO0lBRUYsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztLQUM3QjtJQUVELE9BQU8sbUJB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TUFBTSxLQUFLLHNCQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQTlELENBQThELENBQUM7YUFDM0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvZmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFNlY3VyaXR5LCBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IHJlbW92ZUVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIE1ldGFkYXRhUGFyYW1zU2NoZW1hLCBSZXRyaWV2ZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IEZzUmVxdWVzdCwgRnNIdHRwTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbi8qKlxuICogUmVtb3ZlIGdpdmVuIGZpbGVcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSBoYW5kbGVcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlID0gKHNlc3Npb246IFNlc3Npb24sIGhhbmRsZT86IHN0cmluZywgc2tpcFN0b3JhZ2U/OiBib29sZWFuLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgcmVtb3ZlJyk7XG4gIH1cblxuICBpZiAoIShzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkgJiYgKCFzZWN1cml0eSB8fCAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignU2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciByZW1vdmUnKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVBcGlVcmwgPSBzZXNzaW9uLnVybHMuZmlsZUFwaVVybDtcbiAgY29uc3QgYmFzZVVSTCA9IGAke2ZpbGVBcGlVcmx9LyR7aGFuZGxlfWA7XG4gIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICBrZXk6IHNlc3Npb24uYXBpa2V5LFxuICAgIHBvbGljeTogKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSkgfHwgc2Vzc2lvbi5wb2xpY3ksXG4gICAgc2lnbmF0dXJlOiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgfTtcblxuICBpZiAoc2tpcFN0b3JhZ2UpIHtcbiAgICBvcHRpb25zLnNraXBfc3RvcmFnZSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LmRlbGV0ZShiYXNlVVJMLCB7XG4gICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgcGFyYW1zOiByZW1vdmVFbXB0eShvcHRpb25zKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4gIHNpemU/OiBib29sZWFuO1xuICBtaW1ldHlwZT86IGJvb2xlYW47XG4gIGZpbGVuYW1lPzogYm9vbGVhbjtcbiAgd2lkdGg/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBib29sZWFuO1xuICB1cGxvYWRlZD86IGJvb2xlYW47XG4gIHdyaXRlYWJsZT86IGJvb2xlYW47XG4gIGNsb3VkPzogYm9vbGVhbjtcbiAgc291cmNlVXJsPzogYm9vbGVhbjtcbiAgbWQ1PzogYm9vbGVhbjtcbiAgc2hhMT86IGJvb2xlYW47XG4gIHNoYTIyND86IGJvb2xlYW47XG4gIHNoYTI1Nj86IGJvb2xlYW47XG4gIHNoYTM4ND86IGJvb2xlYW47XG4gIHNoYTUxMj86IGJvb2xlYW47XG4gIGxvY2F0aW9uPzogYm9vbGVhbjtcbiAgcGF0aD86IGJvb2xlYW47XG4gIGNvbnRhaW5lcj86IGJvb2xlYW47XG4gIGV4aWY/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBtZXRhZGF0YVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdHNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlPzogc3RyaW5nLCBvcHRzPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgbWV0YWRhdGEnKTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKE1ldGFkYXRhUGFyYW1zU2NoZW1hKShvcHRzKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBtZXRhZGF0YSBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMpO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogYW55ID0geyAuLi5vcHRzIH07XG4gIG9wdGlvbnMuc291cmNlX3VybCA9IG9wdGlvbnMuc291cmNlVXJsOyAvLyBzb3VyY2VfdXJsIGlzIHNuYWtlX2Nhc2VcbiAgb3B0aW9ucy5wb2xpY3kgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgb3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfS9tZXRhZGF0YWA7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgRnNSZXF1ZXN0LmdldChiYXNlVVJMLCB7IHBhcmFtczogcmVtb3ZlRW1wdHkob3B0aW9ucyksIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLCB9KVxuICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUoeyAuLi5yZXMuZGF0YSwgaGFuZGxlIH0pKVxuICAgICAgLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZU9wdGlvbnMge1xuICBtZXRhZGF0YT86IGJvb2xlYW47XG4gIGhlYWQ/OiBib29sZWFuO1xuICBkbD86IGJvb2xlYW47XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbiAgY2FjaGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBpbmZvcm1hdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmV0cmlldmUgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM6IFJldHJpZXZlT3B0aW9ucyA9IHt9LCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiA9PiB7XG4gIGlmICghaGFuZGxlIHx8IGhhbmRsZS5sZW5ndGggPT09IDAgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0ZpbGUgaGFuZGxlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihSZXRyaWV2ZVBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgcmV0cmlldmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBhbnkgPSB7IC4uLm9wdGlvbnMgfTtcbiAgcmVxdWVzdE9wdGlvbnMua2V5ID0gc2Vzc2lvbi5hcGlrZXk7XG4gIHJlcXVlc3RPcHRpb25zLnBvbGljeSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kpIHx8IHNlc3Npb24ucG9saWN5O1xuICByZXF1ZXN0T3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBsZXQgbWV0aG9kOiBGc0h0dHBNZXRob2QgPSBGc0h0dHBNZXRob2QuR0VUO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5oZWFkKSB7XG4gICAgbWV0aG9kID0gRnNIdHRwTWV0aG9kLkhFQUQ7XG4gICAgZGVsZXRlIHJlcXVlc3RPcHRpb25zLmhlYWQ7XG4gIH1cblxuICBsZXQgZXh0ZW5zaW9uO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5leHRlbnNpb24gJiYgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uLmxlbmd0aCkge1xuICAgIGV4dGVuc2lvbiA9IHJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbjtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uO1xuICB9XG5cbiAgbGV0IG1ldGFkYXRhO1xuICBpZiAocmVxdWVzdE9wdGlvbnMubWV0YWRhdGEpIHtcbiAgICBpZiAobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdIZWFkIGFuZCBtZXRhZGF0YSBvcHRpb25zIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyJyk7XG4gICAgfVxuXG4gICAgbWV0YWRhdGEgPSByZXF1ZXN0T3B0aW9ucy5tZXRhZGF0YTtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMubWV0YWRhdGE7XG4gIH1cblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfWAgKyAoZXh0ZW5zaW9uID8gYCske2V4dGVuc2lvbn1gIDogJycpICsgKG1ldGFkYXRhID8gJy9tZXRhZGF0YScgOiAnJyk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBGc1JlcXVlc3QuZGlzcGF0Y2goYmFzZVVSTCwge1xuICAgICAgbWV0aG9kLFxuICAgICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgICBwYXJhbXM6IHJlbW92ZUVtcHR5KHJlcXVlc3RPcHRpb25zKSxcbiAgICB9KVxuICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCA/IHJlcy5oZWFkZXJzIDogcmVzLmRhdGEpKVxuICAgICAgLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBR0gsMENBQXlDO0FBQ3pDLGtDQUF1QztBQUV2QywyREFBeUQ7QUFDekQseUNBQTBGO0FBQzFGLHNDQUFxRDtBQUVyRDs7Ozs7OztHQU9HO0FBQ1UsUUFBQSxNQUFNLEdBQUcsVUFBQyxPQUFnQixFQUFFLE1BQWUsRUFBRSxXQUFxQixFQUFFLFFBQW1CO0lBQ2xHLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxnQ0FBYyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDN0U7SUFFRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ3JHLE1BQU0sSUFBSSxnQ0FBYyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7S0FDbkY7SUFFRCxJQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQyxJQUFNLE9BQU8sR0FBTSxVQUFVLFNBQUksTUFBUSxDQUFDO0lBQzFDLElBQU0sT0FBTyxHQUFRO1FBQ25CLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUNuQixNQUFNLEVBQUUsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNO1FBQ3ZELFNBQVMsRUFBRSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVM7S0FDakUsQ0FBQztJQUVGLElBQUksV0FBVyxFQUFFO1FBQ2YsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7S0FDN0I7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UUFBUSxDQUFDO0lBQ2IsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFO1FBQzNCLElBQUksTUFBTSxLQUFLLHNCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxnQ0FBYyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDL0U7UUFFRCxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUM7S0FDaEM7SUFFRCxJQUFNLE9BQU8sR0FBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsU0FBSSxNQUFRLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQUksU0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1SCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsbUJBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQzFCLE1BQU0sUUFBQTtZQUNOLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsTUFBTSxFQUFFLG1CQUFXLENBQUMsY0FBYyxDQUFDO1NBQ3BDLENBQUM7YUFDQyxJQUFJLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxPQUFPLENBQUMsTUFBTSxLQUFLLHNCQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQTlELENBQThELENBQUM7YUFDM0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvZmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFNlY3VyaXR5LCBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVsaW5rIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyByZW1vdmVFbXB0eSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZzUmVzcG9uc2UgfSBmcm9tICcuLy4uL3JlcXVlc3QvdHlwZXMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIE1ldGFkYXRhUGFyYW1zU2NoZW1hLCBSZXRyaWV2ZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IEZzUmVxdWVzdCwgRnNIdHRwTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbi8qKlxuICogUmVtb3ZlIGdpdmVuIGZpbGVcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSBoYW5kbGVcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlID0gKHNlc3Npb246IFNlc3Npb24sIGhhbmRsZT86IHN0cmluZywgc2tpcFN0b3JhZ2U/OiBib29sZWFuLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgcmVtb3ZlJyk7XG4gIH1cblxuICBpZiAoIShzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkgJiYgKCFzZWN1cml0eSB8fCAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignU2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciByZW1vdmUnKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVBcGlVcmwgPSBzZXNzaW9uLnVybHMuZmlsZUFwaVVybDtcbiAgY29uc3QgYmFzZVVSTCA9IGAke2ZpbGVBcGlVcmx9LyR7aGFuZGxlfWA7XG4gIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICBrZXk6IHNlc3Npb24uYXBpa2V5LFxuICAgIHBvbGljeTogKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSkgfHwgc2Vzc2lvbi5wb2xpY3ksXG4gICAgc2lnbmF0dXJlOiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgfTtcblxuICBpZiAoc2tpcFN0b3JhZ2UpIHtcbiAgICBvcHRpb25zLnNraXBfc3RvcmFnZSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LmRlbGV0ZShiYXNlVVJMLCB7XG4gICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgcGFyYW1zOiByZW1vdmVFbXB0eShvcHRpb25zKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4gIHNpemU/OiBib29sZWFuO1xuICBtaW1ldHlwZT86IGJvb2xlYW47XG4gIGZpbGVuYW1lPzogYm9vbGVhbjtcbiAgd2lkdGg/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBib29sZWFuO1xuICB1cGxvYWRlZD86IGJvb2xlYW47XG4gIHdyaXRlYWJsZT86IGJvb2xlYW47XG4gIGNsb3VkPzogYm9vbGVhbjtcbiAgc291cmNlVXJsPzogYm9vbGVhbjtcbiAgbWQ1PzogYm9vbGVhbjtcbiAgc2hhMT86IGJvb2xlYW47XG4gIHNoYTIyND86IGJvb2xlYW47XG4gIHNoYTI1Nj86IGJvb2xlYW47XG4gIHNoYTM4ND86IGJvb2xlYW47XG4gIHNoYTUxMj86IGJvb2xlYW47XG4gIGxvY2F0aW9uPzogYm9vbGVhbjtcbiAgcGF0aD86IGJvb2xlYW47XG4gIGNvbnRhaW5lcj86IGJvb2xlYW47XG4gIGV4aWY/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBtZXRhZGF0YVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdHNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlPzogc3RyaW5nLCBvcHRzPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgbWV0YWRhdGEnKTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKE1ldGFkYXRhUGFyYW1zU2NoZW1hKShvcHRzKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBtZXRhZGF0YSBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMpO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogYW55ID0geyAuLi5vcHRzIH07XG4gIG9wdGlvbnMuc291cmNlX3VybCA9IG9wdGlvbnMuc291cmNlVXJsOyAvLyBzb3VyY2VfdXJsIGlzIHNuYWtlX2Nhc2VcbiAgb3B0aW9ucy5wb2xpY3kgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgb3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfS9tZXRhZGF0YWA7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgRnNSZXF1ZXN0LmdldChiYXNlVVJMLCB7IHBhcmFtczogcmVtb3ZlRW1wdHkob3B0aW9ucyksIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pXG4gICAgICAudGhlbihyZXMgPT4gcmVzb2x2ZSh7IC4uLnJlcy5kYXRhLCBoYW5kbGUgfSkpXG4gICAgICAuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIERvd25sb2FkIGZpbGUgdG8gYmxvYiBvciBidWZmZXIgZm9ybWF0XG4gKlxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSBoYW5kbGVcbiAqL1xuZXhwb3J0IGNvbnN0IGRvd25sb2FkID0gKHNlc3Npb246IFNlc3Npb24sIGhhbmRsZTogc3RyaW5nLCAgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8RnNSZXNwb25zZT4gPT4ge1xuICBjb25zdCBmbCA9IG5ldyBGaWxlbGluayhoYW5kbGUsIHNlc3Npb24uYXBpa2V5KTtcblxuICBjb25zdCBwb2xpY3kgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgaWYgKHBvbGljeSAmJiBzaWduYXR1cmUpIHtcbiAgICBmbC5zZWN1cml0eSh7IHNpZ25hdHVyZSwgcG9saWN5IH0pO1xuICB9XG5cbiAgcmV0dXJuIEZzUmVxdWVzdC5kaXNwYXRjaChmbC50b1N0cmluZygpLCB7IG1ldGhvZDogRnNIdHRwTWV0aG9kLkdFVCwgYmxvYlJlc3BvbnNlOiB0cnVlIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZU9wdGlvbnMge1xuICBtZXRhZGF0YT86IGJvb2xlYW47XG4gIGhlYWQ/OiBib29sZWFuO1xuICBkbD86IGJvb2xlYW47XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbiAgY2FjaGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBpbmZvcm1hdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAZGVwcmVjYXRlZFxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSBoYW5kbGVcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqL1xuZXhwb3J0IGNvbnN0IHJldHJpZXZlID0gKHNlc3Npb246IFNlc3Npb24sIGhhbmRsZTogc3RyaW5nLCBvcHRpb25zOiBSZXRyaWV2ZU9wdGlvbnMgPSB7fSwgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8T2JqZWN0IHwgQmxvYj4gPT4ge1xuICBpZiAoIWhhbmRsZSB8fCBoYW5kbGUubGVuZ3RoID09PSAwIHx8IHR5cGVvZiBoYW5kbGUgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdGaWxlIGhhbmRsZSBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgY29uc29sZS5pbmZvKCdSZXRyaWV2ZSBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgaXQgd2lsbCBiZSByZW1vdmVkLiBQbGVhc2UgdXNlIG1ldGFkYXRhIG9yIGRvd25sb2FkJyk7XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoUmV0cmlldmVQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHJldHJpZXZlIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycyk7XG4gIH1cblxuICBjb25zdCByZXF1ZXN0T3B0aW9uczogYW55ID0geyAuLi5vcHRpb25zIH07XG4gIHJlcXVlc3RPcHRpb25zLmtleSA9IHNlc3Npb24uYXBpa2V5O1xuICByZXF1ZXN0T3B0aW9ucy5wb2xpY3kgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgcmVxdWVzdE9wdGlvbnMuc2lnbmF0dXJlID0gKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgbGV0IG1ldGhvZDogRnNIdHRwTWV0aG9kID0gRnNIdHRwTWV0aG9kLkdFVDtcblxuICBpZiAocmVxdWVzdE9wdGlvbnMuaGVhZCkge1xuICAgIG1ldGhvZCA9IEZzSHR0cE1ldGhvZC5IRUFEO1xuICAgIGRlbGV0ZSByZXF1ZXN0T3B0aW9ucy5oZWFkO1xuICB9XG5cbiAgbGV0IGV4dGVuc2lvbjtcblxuICBpZiAocmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uICYmIHJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbi5sZW5ndGgpIHtcbiAgICBleHRlbnNpb24gPSByZXF1ZXN0T3B0aW9ucy5leHRlbnNpb247XG4gICAgZGVsZXRlIHJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbjtcbiAgfVxuXG4gIGxldCBtZXRhZGF0YTtcbiAgaWYgKHJlcXVlc3RPcHRpb25zLm1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGhvZCA9PT0gRnNIdHRwTWV0aG9kLkhFQUQpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignSGVhZCBhbmQgbWV0YWRhdGEgb3B0aW9ucyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlcicpO1xuICAgIH1cblxuICAgIG1ldGFkYXRhID0gcmVxdWVzdE9wdGlvbnMubWV0YWRhdGE7XG4gICAgZGVsZXRlIHJlcXVlc3RPcHRpb25zLm1ldGFkYXRhO1xuICB9XG5cbiAgY29uc3QgYmFzZVVSTCA9IGAke3Nlc3Npb24udXJscy5maWxlQXBpVXJsfS8ke2hhbmRsZX1gICsgKGV4dGVuc2lvbiA/IGArJHtleHRlbnNpb259YCA6ICcnKSArIChtZXRhZGF0YSA/ICcvbWV0YWRhdGEnIDogJycpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgRnNSZXF1ZXN0LmRpc3BhdGNoKGJhc2VVUkwsIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLFxuICAgICAgcGFyYW1zOiByZW1vdmVFbXB0eShyZXF1ZXN0T3B0aW9ucyksXG4gICAgfSlcbiAgICAgIC50aGVuKHJlcyA9PiByZXNvbHZlKG1ldGhvZCA9PT0gRnNIdHRwTWV0aG9kLkhFQUQgPyByZXMuaGVhZGVycyA6IHJlcy5kYXRhKSlcbiAgICAgIC5jYXRjaChyZWplY3QpO1xuICB9KTtcbn07XG4iXX0=

@@ -40,3 +40,3 @@ "use strict";

jest.mock('./../request');
jest.mock('./../filelink');
// jest.mock('./../filelink');
var mockedSession = {

@@ -117,2 +117,21 @@ apikey: 'fakeApikey',

});
describe('Download', function () {
it('should return buffer on download request', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var testResp, methodMocked, resp;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
testResp = Buffer.from('123');
methodMocked = jest.fn(function () { return Promise.resolve(testResp); });
// @ts-ignore
request_1.FsRequest.dispatch.mockImplementation(methodMocked);
return [4 /*yield*/, file_1.download(mockedSession, 'gNDNCDWNTKqoGFISdd2A')];
case 1:
resp = _a.sent();
expect(resp).toEqual(testResp);
return [2 /*return*/];
}
});
}); });
});
describe('Remove', function () {

@@ -338,2 +357,2 @@ it('should call remove', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0g7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCwrQkFBb0Q7QUFDcEQsd0NBQXlDO0FBRXpDLHlDQUF3QztBQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFM0IsSUFBTSxhQUFhLEdBQVk7SUFDN0IsTUFBTSxFQUFFLFlBQVk7SUFDcEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGVBQU0sQ0FBQyxJQUFJLEVBQUU7UUFDbkMsTUFBTSxFQUFFLFNBQVM7UUFDakIsVUFBVSxFQUFFLFlBQVk7UUFDeEIsWUFBWSxFQUFFLGtCQUFrQjtRQUNoQyxXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUM7Q0FDSCxDQUFDO0FBRUYsUUFBUSxDQUFDLFNBQVMsRUFBRTtJQUNsQixRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRTs7Ozs7d0JBQzNDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQTdCLENBQTZCLENBQUMsQ0FBQzt3QkFDbEUsYUFBYTt3QkFDYixtQkFBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDbEMscUJBQU0sZUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsRUFBQTs7d0JBQWxELElBQUksR0FBRyxTQUEyQzt3QkFFeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FB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Q0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE9BQU8sTUFBTSxDQUFDO2dCQUNaLE9BQUEsZUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUM7WUFGRixDQUVFLENBQ0gsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUU7WUFDN0QsT0FBTyxNQUFNLENBQUM7Z0JBQ1osT0FBQSxlQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRTtvQkFDcEMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQztZQUhGLENBR0UsQ0FDSCxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL2ZpbGUuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyByZXRyaWV2ZSwgcmVtb3ZlLCBtZXRhZGF0YSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5cbmplc3QubW9jaygnLi8uLi9yZXF1ZXN0Jyk7XG5qZXN0Lm1vY2soJy4vLi4vZmlsZWxpbmsnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZy51cmxzLCB7XG4gICAgY2RuVXJsOiAnZmFrZVVybCcsXG4gICAgZmlsZUFwaVVybDogJ2Zha2VBcGlVcmwnLFxuICAgIHVwbG9hZEFwaVVybDogJ2Zha2VVcGxvYWRBcGlVcmwnLFxuICAgIGNsb3VkQXBpVXJsOiAnZmFrZUNsb3VkQXBpVXJsJyxcbiAgICBwaWNrZXJVcmw6ICdmYWtlUGlja2VyVXJsJyxcbiAgfSksXG59O1xuXG5kZXNjcmliZSgnRmlsZUFQSScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ01ldGFkYXRhJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IG1ldGFkYXRhIHdpdGhvdXQgb3B0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgZGF0YToge30gfSkpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmdldC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczoge30sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjYWxsIGNvcnJlY3QgbWV0YWRhdGEgd2l0aCBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZ2V0Lm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgeyBzaXplOiB0cnVlIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczogeyBzaXplOiB0cnVlIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB3cm9uZyBvcHRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtla2V5JywgeyBibGE6IDEyMyB9KSkudG9UaHJvd0Vycm9yKCdJbnZhbGlkIG1ldGFkYXRhIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24pKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBwcm92aWRlZCBzZWN1cml0eSBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5nZXQubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUmVtb3ZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCByZW1vdmUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWxldGVNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRlbGV0ZS5tb2NrSW1wbGVtZW50YXRpb24oZGVsZXRlTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZW1vdmUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG1vY2tlZFNlc3Npb24sIHtcbiAgICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgICAgcG9saWN5OiAnZmFrZVAnLFxuICAgICAgICB9KSxcbiAgICAgICAgJ2Zha2VIYW5kbGUnXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGRhdGE6IHt9IH0pO1xuICAgICAgZXhwZWN0KGRlbGV0ZU1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZScsIHsgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknLCBwb2xpY3k6ICdmYWtlUCcsIHNpZ25hdHVyZTogJ2Zha2VTJyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBza2lwIHN0b3JhZ2Ugb3B0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kZWxldGUubW9ja0ltcGxlbWVudGF0aW9uKG1ldGhvZE1vY2tlZCk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2NrZWRTZXNzaW9uLCB7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgICAgfSksXG4gICAgICAgICdmYWtlSGFuZGxlJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoeyBkYXRhOiB7fSB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JywgcG9saWN5OiAnZmFrZVAnLCBzaWduYXR1cmU6ICdmYWtlUycsIHNraXBfc3RvcmFnZTogdHJ1ZSB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgaGFuZGxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgcmVtb3ZlIHdpdGggcHJvdmlkZWQgc2Vzc2lvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZGVsZXRlLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHsgZGF0YToge30gfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIGVtcHR5IHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiBudWxsLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSkpLnRvVGhyb3dFcnJvcigpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBwb2xpY3knLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogJ2Zha2VTJyxcbiAgICAgICAgcG9saWN5OiBudWxsLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIGZhbHNlLCBmYWtlU2VjdXJpdHkpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgcG9saWN5IG9uIHNlc3Npb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JldHJpZXZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEdFVCknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRpc3BhdGNoLm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJyk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHt9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0dFVCcsIHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEhFQUQpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSwgaGVhZGVyczogeyB0eXBlOiAndGVzdCcgfSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgaGVhZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IHR5cGU6ICd0ZXN0JyB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0hFQUQnLCBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScgfSwgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggcHJvdmlkZWQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlJywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScsIHBvbGljeTogJ2Zha2VQJywgc2lnbmF0dXJlOiAnZmFrZVMnIH0sXG4gICAgICAgIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgZXh0ZW5zaW9uOiAndHh0JyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlK3R4dCcsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGNvcnJlY3QgcmV0cmlldmUgcmVxdWVzdCB3aXRoIG1ldGFkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgbWV0YWRhdGE6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoe30pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZS9tZXRhZGF0YScsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICcnKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXN0OiAxMjMsXG4gICAgICAgIH0pXG4gICAgICApLnRvVGhyb3dFcnJvcignSW52YWxpZCByZXRyaWV2ZSBwYXJhbXMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIG1ldGFkYXRhOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS5ub3QudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHJldHJpZXZlIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIG1ldGFkYXRhIGFuZCBoZWFkIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmV0dXJuIGV4cGVjdCgoKSA9PlxuICAgICAgICByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgICBtZXRhZGF0YTogdHJ1ZSxcbiAgICAgICAgICBoZWFkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0g7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCwrQkFBOEQ7QUFDOUQsd0NBQXlDO0FBRXpDLHlDQUF3QztBQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzFCLDhCQUE4QjtBQUU5QixJQUFNLGFBQWEsR0FBWTtJQUM3QixNQUFNLEVBQUUsWUFBWTtJQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsZUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQyxNQUFNLEVBQUUsU0FBUztRQUNqQixVQUFVLEVBQUUsWUFBWTtRQUN4QixZQUFZLEVBQUUsa0JBQWtCO1FBQ2hDLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztDQUNILENBQUM7QUFFRixRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLFFBQVEsQ0FBQyxVQUFVLEVBQUU7UUFDbkIsRUFBRSxDQUFDLDhDQUE4QyxFQUFFOzs7Ozt3QkFDM0MsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxDQUFDO3dCQUNsRSxhQUFhO3dCQUNiLG1CQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNsQyxxQkFBTSxlQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFBOzt3QkFBbEQsSUFBSSxHQUFHLFNBQTJDO3dCQUV4RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7d0JBQy9DLE1BQU0sQ0FBQyxZQUFZ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ZmlsZSI6ImxpYi9hcGkvZmlsZS5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHJldHJpZXZlLCByZW1vdmUsIG1ldGFkYXRhLCBkb3dubG9hZCB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5cbmplc3QubW9jaygnLi8uLi9yZXF1ZXN0Jyk7XG4vLyBqZXN0Lm1vY2soJy4vLi4vZmlsZWxpbmsnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZy51cmxzLCB7XG4gICAgY2RuVXJsOiAnZmFrZVVybCcsXG4gICAgZmlsZUFwaVVybDogJ2Zha2VBcGlVcmwnLFxuICAgIHVwbG9hZEFwaVVybDogJ2Zha2VVcGxvYWRBcGlVcmwnLFxuICAgIGNsb3VkQXBpVXJsOiAnZmFrZUNsb3VkQXBpVXJsJyxcbiAgICBwaWNrZXJVcmw6ICdmYWtlUGlja2VyVXJsJyxcbiAgfSksXG59O1xuXG5kZXNjcmliZSgnRmlsZUFQSScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ01ldGFkYXRhJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IG1ldGFkYXRhIHdpdGhvdXQgb3B0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgZGF0YToge30gfSkpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmdldC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczoge30sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjYWxsIGNvcnJlY3QgbWV0YWRhdGEgd2l0aCBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZ2V0Lm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgeyBzaXplOiB0cnVlIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczogeyBzaXplOiB0cnVlIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB3cm9uZyBvcHRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtla2V5JywgeyBibGE6IDEyMyB9KSkudG9UaHJvd0Vycm9yKCdJbnZhbGlkIG1ldGFkYXRhIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24pKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBwcm92aWRlZCBzZWN1cml0eSBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5nZXQubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnRG93bmxvYWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYnVmZmVyIG9uIGRvd25sb2FkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0UmVzcCA9IEJ1ZmZlci5mcm9tKCcxMjMnKTtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRlc3RSZXNwKSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBkb3dubG9hZChtb2NrZWRTZXNzaW9uLCAnZ05ETkNEV05US3FvR0ZJU2RkMkEnKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwodGVzdFJlc3ApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUmVtb3ZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCByZW1vdmUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWxldGVNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRlbGV0ZS5tb2NrSW1wbGVtZW50YXRpb24oZGVsZXRlTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZW1vdmUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG1vY2tlZFNlc3Npb24sIHtcbiAgICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgICAgcG9saWN5OiAnZmFrZVAnLFxuICAgICAgICB9KSxcbiAgICAgICAgJ2Zha2VIYW5kbGUnXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGRhdGE6IHt9IH0pO1xuICAgICAgZXhwZWN0KGRlbGV0ZU1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZScsIHsgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknLCBwb2xpY3k6ICdmYWtlUCcsIHNpZ25hdHVyZTogJ2Zha2VTJyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBza2lwIHN0b3JhZ2Ugb3B0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kZWxldGUubW9ja0ltcGxlbWVudGF0aW9uKG1ldGhvZE1vY2tlZCk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2NrZWRTZXNzaW9uLCB7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgICAgfSksXG4gICAgICAgICdmYWtlSGFuZGxlJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoeyBkYXRhOiB7fSB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JywgcG9saWN5OiAnZmFrZVAnLCBzaWduYXR1cmU6ICdmYWtlUycsIHNraXBfc3RvcmFnZTogdHJ1ZSB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgaGFuZGxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgcmVtb3ZlIHdpdGggcHJvdmlkZWQgc2Vzc2lvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZGVsZXRlLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHsgZGF0YToge30gfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIGVtcHR5IHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiBudWxsLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSkpLnRvVGhyb3dFcnJvcigpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBwb2xpY3knLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogJ2Zha2VTJyxcbiAgICAgICAgcG9saWN5OiBudWxsLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIGZhbHNlLCBmYWtlU2VjdXJpdHkpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgcG9saWN5IG9uIHNlc3Npb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JldHJpZXZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEdFVCknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRpc3BhdGNoLm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJyk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHt9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0dFVCcsIHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEhFQUQpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSwgaGVhZGVyczogeyB0eXBlOiAndGVzdCcgfSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgaGVhZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IHR5cGU6ICd0ZXN0JyB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0hFQUQnLCBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScgfSwgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggcHJvdmlkZWQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlJywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScsIHBvbGljeTogJ2Zha2VQJywgc2lnbmF0dXJlOiAnZmFrZVMnIH0sXG4gICAgICAgIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgZXh0ZW5zaW9uOiAndHh0JyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlK3R4dCcsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGNvcnJlY3QgcmV0cmlldmUgcmVxdWVzdCB3aXRoIG1ldGFkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgbWV0YWRhdGE6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoe30pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZS9tZXRhZGF0YScsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICcnKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXN0OiAxMjMsXG4gICAgICAgIH0pXG4gICAgICApLnRvVGhyb3dFcnJvcignSW52YWxpZCByZXRyaWV2ZSBwYXJhbXMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIG1ldGFkYXRhOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS5ub3QudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHJldHJpZXZlIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIG1ldGFkYXRhIGFuZCBoZWFkIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmV0dXJuIGV4cGVjdCgoKSA9PlxuICAgICAgICByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgICBtZXRhZGF0YTogdHJ1ZSxcbiAgICAgICAgICBoZWFkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -14,2 +14,3 @@ import { Security, Session } from '../client';

};
workflowIds?: string[];
};

@@ -25,3 +26,4 @@ /**

* @param uploadTags
* @param workflowIds
*/
export declare const storeURL: ({ session, url, storeParams, token, security, uploadTags, headers, }: StoreUrlParams) => Promise<any>;
export declare const storeURL: ({ session, url, storeParams, token, security, uploadTags, headers, workflowIds, }: StoreUrlParams) => Promise<any>;

@@ -33,5 +33,6 @@ "use strict";

* @param uploadTags
* @param workflowIds
*/
exports.storeURL = function (_a) {
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers;
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers, workflowIds = _a.workflowIds;
if (!url || typeof url !== 'string') {

@@ -67,2 +68,5 @@ return Promise.reject(new filestack_error_1.FilestackError('url is required for storeURL'));

}
if (workflowIds && workflowIds.length > 0) {
filelink.addTask('store', { workflows: workflowIds });
}
return request_1.FsRequest.post(session.urls.processUrl + "/process", {

@@ -85,2 +89,2 @@ apikey: session.apikey,

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUdILDBDQUFzRDtBQUN0RCwyREFBeUQ7QUFDekQseUNBQWlFO0FBQ2pFLHNDQUFzRDtBQWF0RDs7Ozs7Ozs7O0dBU0c7QUFDVSxRQUFBLFFBQVEsR0FBRyxVQUFDLEVBUVI7UUFQZixvQkFBTyxFQUNQLFlBQUcsRUFDSCw0QkFBVyxFQUNYLGdCQUFLLEVBQ0wsc0JBQVEsRUFDUiwwQkFBVSxFQUNWLG9CQUFPO0lBRVAsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksZ0NBQWMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7S0FDM0U7SUFFRCxJQUFNLFdBQVcsR0FBRyxxQkFBWSxDQUFDLDBCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUV4RSxJQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssRUFBRTtRQUNULElBQU0sV0FBVyxHQUFHLElBQUksdUJBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLG1CQUFTLENBQUMsSUFBSSxDQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxhQUFVLEVBQUU7UUFDMUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sU0FBQTtRQUNQLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ3hCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztRQUNuQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDN0I7WUFFRCw2Q0FBWSxHQUFHLENBQUMsSUFBSSxLQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRztTQUNqRDtRQUVELE1BQU0sSUFBSSxnQ0FBYyxDQUFDLDRCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUcsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvc3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTZWN1cml0eSwgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlbGluaywgU3RvcmVQYXJhbXMgfSBmcm9tICcuLy4uL2ZpbGVsaW5rJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yLCBTdG9yZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IEZzUmVxdWVzdCwgRnNDYW5jZWxUb2tlbiB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgVXBsb2FkVGFncyB9IGZyb20gJy4vdXBsb2FkL2ZpbGUnO1xuXG5leHBvcnQgdHlwZSBTdG9yZVVybFBhcmFtcyA9IHtcbiAgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgdXJsPzogc3RyaW5nO1xuICBzdG9yZVBhcmFtcz86IFN0b3JlUGFyYW1zO1xuICB0b2tlbj86IGFueTtcbiAgc2VjdXJpdHk/OiBTZWN1cml0eTtcbiAgdXBsb2FkVGFncz86IFVwbG9hZFRhZ3M7XG4gIGhlYWRlcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSxcbn07XG5cbi8qKlxuICogU3RvcmUgZ2l2ZW4gdXJsIHdpdGggb3B0aW9ucyBhbmRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHVybFxuICogQHBhcmFtIHN0b3JlT3B0c1xuICogQHBhcmFtIHRva2VuXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqIEBwYXJhbSB1cGxvYWRUYWdzXG4gKi9cbmV4cG9ydCBjb25zdCBzdG9yZVVSTCA9ICh7XG4gIHNlc3Npb24sXG4gIHVybCxcbiAgc3RvcmVQYXJhbXMsXG4gIHRva2VuLFxuICBzZWN1cml0eSxcbiAgdXBsb2FkVGFncyxcbiAgaGVhZGVycyxcbn06IFN0b3JlVXJsUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCF1cmwgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCd1cmwgaXMgcmVxdWlyZWQgZm9yIHN0b3JlVVJMJykpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlUGFyYW1zKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKSk7XG4gIH1cblxuICBzZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG4gIGZpbGVsaW5rLnN0b3JlKHN0b3JlUGFyYW1zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBmaWxlbGluay5zZWN1cml0eSh7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBpZiAodG9rZW4pIHtcbiAgICBjb25zdCBjYW5jZWxUb2tlbiA9IG5ldyBGc0NhbmNlbFRva2VuKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gY2FuY2VsVG9rZW4uY2FuY2VsLmJpbmQoY2FuY2VsVG9rZW4pO1xuICAgIG9wdGlvbnMuY2FuY2VsVG9rZW4gPSBjYW5jZWxUb2tlbjtcbiAgfVxuXG4gIGxldCBzb3VyY2VzOiBhbnkgPSBbIHVybCBdO1xuXG4gIGlmIChoZWFkZXJzKSB7XG4gICAgc291cmNlcyA9IFt7XG4gICAgICBzb3VyY2U6IHVybCxcbiAgICAgIGhlYWRlcnMsXG4gICAgfV07XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LnBvc3QoYCR7c2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgYXBpa2V5OiBzZXNzaW9uLmFwaWtleSxcbiAgICBzb3VyY2VzLFxuICAgIHRhc2tzOiBmaWxlbGluay5nZXRUYXNrcygpLFxuICAgIHVwbG9hZF90YWdzOiB1cGxvYWRUYWdzLFxuICB9LCBvcHRpb25zKS50aGVuKChyZXMpID0+IHtcbiAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEuaGFuZGxlKSB7XG4gICAgICBpZiAocmVzLmRhdGEudXBsb2FkX3RhZ3MpIHtcbiAgICAgICAgcmVzLmRhdGEudXBsb2FkVGFncyA9IHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgICBkZWxldGUgcmVzLmRhdGEudXBsb2FkX3RhZ3M7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlcy5kYXRhLCBtaW1ldHlwZTogcmVzLmRhdGEudHlwZSB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSByZXNwb25zZSAke0pTT04uc3RyaW5naWZ5KHJlcy5kYXRhKX1gKTtcbiAgfSk7XG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUdILDBDQUFzRDtBQUN0RCwyREFBeUQ7QUFDekQseUNBQWlFO0FBQ2pFLHNDQUFzRDtBQWN0RDs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSxRQUFRLEdBQUcsVUFBQyxFQVNSO1FBUmYsb0JBQU8sRUFDUCxZQUFHLEVBQ0gsNEJBQVcsRUFDWCxnQkFBSyxFQUNMLHNCQUFRLEVBQ1IsMEJBQVUsRUFDVixvQkFBTyxFQUNQLDRCQUFXO0lBRVgsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksZ0NBQWMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7S0FDM0U7SUFFRCxJQUFNLFdBQVcsR0FBRyxxQkFBWSxDQUFDLDBCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUV4RSxJQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssRUFBRTtRQUNULElBQU0sV0FBVyxHQUFHLElBQUksdUJBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxtQkFBUyxDQUFDLElBQUksQ0FBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsYUFBVSxFQUFFO1FBQzFELE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixPQUFPLFNBQUE7UUFDUCxLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtRQUMxQixXQUFXLEVBQUUsVUFBVTtLQUN4QixFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUc7UUFDbkIsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQy9CLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUMzQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQzdCO1lBRUQsNkNBQVksR0FBRyxDQUFDLElBQUksS0FBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUc7U0FDakQ7UUFFRCxNQUFNLElBQUksZ0NBQWMsQ0FBQyw0QkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFHLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmssIFN0b3JlUGFyYW1zIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QsIEZzQ2FuY2VsVG9rZW4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFVwbG9hZFRhZ3MgfSBmcm9tICcuL3VwbG9hZC9maWxlJztcblxuZXhwb3J0IHR5cGUgU3RvcmVVcmxQYXJhbXMgPSB7XG4gIHNlc3Npb246IFNlc3Npb247XG4gIHVybD86IHN0cmluZztcbiAgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcztcbiAgdG9rZW4/OiBhbnk7XG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzO1xuICBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gIHdvcmtmbG93SWRzPzogc3RyaW5nW11cbn07XG5cbi8qKlxuICogU3RvcmUgZ2l2ZW4gdXJsIHdpdGggb3B0aW9ucyBhbmRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHVybFxuICogQHBhcmFtIHN0b3JlT3B0c1xuICogQHBhcmFtIHRva2VuXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqIEBwYXJhbSB1cGxvYWRUYWdzXG4gKiBAcGFyYW0gd29ya2Zsb3dJZHNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0b3JlVVJMID0gKHtcbiAgc2Vzc2lvbixcbiAgdXJsLFxuICBzdG9yZVBhcmFtcyxcbiAgdG9rZW4sXG4gIHNlY3VyaXR5LFxuICB1cGxvYWRUYWdzLFxuICBoZWFkZXJzLFxuICB3b3JrZmxvd0lkcyxcbn06IFN0b3JlVXJsUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCF1cmwgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCd1cmwgaXMgcmVxdWlyZWQgZm9yIHN0b3JlVVJMJykpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlUGFyYW1zKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKSk7XG4gIH1cblxuICBzZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG4gIGZpbGVsaW5rLnN0b3JlKHN0b3JlUGFyYW1zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBmaWxlbGluay5zZWN1cml0eSh7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBpZiAodG9rZW4pIHtcbiAgICBjb25zdCBjYW5jZWxUb2tlbiA9IG5ldyBGc0NhbmNlbFRva2VuKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gY2FuY2VsVG9rZW4uY2FuY2VsLmJpbmQoY2FuY2VsVG9rZW4pO1xuICAgIG9wdGlvbnMuY2FuY2VsVG9rZW4gPSBjYW5jZWxUb2tlbjtcbiAgfVxuXG4gIGxldCBzb3VyY2VzOiBhbnkgPSBbIHVybCBdO1xuXG4gIGlmIChoZWFkZXJzKSB7XG4gICAgc291cmNlcyA9IFt7XG4gICAgICBzb3VyY2U6IHVybCxcbiAgICAgIGhlYWRlcnMsXG4gICAgfV07XG4gIH1cblxuICBpZiAod29ya2Zsb3dJZHMgJiYgd29ya2Zsb3dJZHMubGVuZ3RoID4gMCkge1xuICAgIGZpbGVsaW5rLmFkZFRhc2soJ3N0b3JlJywgeyB3b3JrZmxvd3M6IHdvcmtmbG93SWRzIH0pO1xuICB9XG5cbiAgcmV0dXJuIEZzUmVxdWVzdC5wb3N0KGAke3Nlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgIGFwaWtleTogc2Vzc2lvbi5hcGlrZXksXG4gICAgc291cmNlcyxcbiAgICB0YXNrczogZmlsZWxpbmsuZ2V0VGFza3MoKSxcbiAgICB1cGxvYWRfdGFnczogdXBsb2FkVGFncyxcbiAgfSwgb3B0aW9ucykudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLmhhbmRsZSkge1xuICAgICAgaWYgKHJlcy5kYXRhLnVwbG9hZF90YWdzKSB7XG4gICAgICAgIHJlcy5kYXRhLnVwbG9hZFRhZ3MgPSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXMuZGF0YSwgbWltZXR5cGU6IHJlcy5kYXRhLnR5cGUgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcmVzcG9uc2UgJHtKU09OLnN0cmluZ2lmeShyZXMuZGF0YSl9YCk7XG4gIH0pO1xufTtcbiJdfQ==

@@ -31,3 +31,5 @@ "use strict";

};
var workflowIds = ['123', '321'];
var storeTaskDef = [{ name: 'store', params: {} }];
var storeTaskDefWithWorkflows = [{ name: 'store', params: {} }];
var sourceToStore = 'urlToStore';

@@ -165,4 +167,23 @@ describe('StoreURL', function () {

});
it('should be able to run storeUrl with workflows', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, store_1.storeURL({
session: mockedSession,
url: sourceToStore,
workflowIds: workflowIds,
})];
case 1:
_a.sent();
expect(request_1.FsRequest.post).toHaveBeenCalledWith(mockedSession.urls.processUrl + "/process", {
apikey: mockedSession.apikey,
sources: [sourceToStore],
tasks: storeTaskDefWithWorkflows,
}, {});
return [2 /*return*/];
}
});
}); });
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsaUNBQW1DO0FBRW5DLDJEQUF5RDtBQUV6RCx5Q0FBd0M7QUFDeEMsd0NBQXlDO0FBQ3pDLDBDQUF5QztBQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFMUIsSUFBTSxhQUFhLEdBQVk7SUFDN0IsTUFBTSxFQUFFLFlBQVk7SUFDcEIsSUFBSSxFQUFFLGVBQU0sQ0FBQyxJQUFJO0NBQ2xCLENBQUM7QUFFRixJQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRCxJQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFbkMsUUFBUSxDQUFDLFVBQVUsRUFBRTtJQUVuQixVQUFVLENBQUM7UUFDVCxhQUFhO1FBQ2IsbUJBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBQyxDQUFDLEVBQUUsT0FBTztZQUMzQyxJQUFJLFFBQVEsR0FBRztnQkFDYixJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLE1BQU07aUJBQ2Y7YUFDRixDQUFDO1lBRUYsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbEMsYUFBYTtnQkFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQ2pEO1lBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYTtRQUNiLG1CQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFNLE9BQUEsWUFBWSxFQUFaLENBQVksQ0FB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QUFDLEdBQUcsQ0FBQyxnQ0FBYyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztBQUVMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvc3RvcmUuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHN0b3JlVVJMIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgRmlsZWxpbmsgfSBmcm9tICcuLy4uL2ZpbGVsaW5rJztcblxuamVzdC5tb2NrKCcuLy4uL2ZpbGVsaW5rJyk7XG5qZXN0Lm1vY2soJy4vLi4vcmVxdWVzdCcpO1xuXG5jb25zdCBtb2NrZWRTZXNzaW9uOiBTZXNzaW9uID0ge1xuICBhcGlrZXk6ICdmYWtlQXBpa2V5JyxcbiAgdXJsczogY29uZmlnLnVybHMsXG59O1xuXG5jb25zdCBzdG9yZVRhc2tEZWYgPSBbeyBuYW1lOiAnc3RvcmUnLCBwYXJhbXM6IHt9IH1dO1xuY29uc3Qgc291cmNlVG9TdG9yZSA9ICd1cmxUb1N0b3JlJztcblxuZGVzY3JpYmUoJ1N0b3JlVVJMJywgKCkgPT4ge1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBGc1JlcXVlc3QucG9zdC5tb2NrSW1wbGVtZW50YXRpb24oKF8sIG9wdGlvbnMpID0+IHtcbiAgICAgIGxldCB0b1JldHVybiA9IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhhbmRsZTogJ3Rlc3QnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51cGxvYWRfdGFncykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRvUmV0dXJuLmRhdGEudXBsb2FkX3RhZ3MgPSBvcHRpb25zLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRvUmV0dXJuKTtcbiAgICB9KTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBGaWxlbGluay5wcm90b3R5cGUuZ2V0VGFza3MubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHN0b3JlVGFza0RlZik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IHN0b3JlIG1ldGhvZCcsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzdG9yZVVSTCh7IHNlc3Npb246IG1vY2tlZFNlc3Npb24sIHVybDogc291cmNlVG9TdG9yZSB9KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVuZGVmaW5lZCxcbiAgICB9LCB7fSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmVzcGVjdCBwYXNzZWQgc2VjdXJpdHkgYW5kIHBvbGljeScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgfTtcblxuICAgIGF3YWl0IHN0b3JlVVJMKHsgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbiwgdXJsOiBzb3VyY2VUb1N0b3JlLCBzZWN1cml0eTogZmFrZVNlY3VyaXR5IH0pO1xuXG4gICAgZXhwZWN0KEZpbGVsaW5rLnByb3RvdHlwZS5zZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmFrZVNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVuZGVmaW5lZCxcbiAgICB9LCB7fSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igb24gd3Jvbmcgc3RvcmUgcGFyYW1zJywgKCkgPT4ge1xuICAgIHJldHVybiBleHBlY3Qoc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHN0b3JlUGFyYW1zOiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGVzdDogMTIzLFxuICAgICAgfSxcbiAgICB9KSkucmVqZWN0cy50b0VxdWFsKGV4cGVjdC5hbnkoRmlsZXN0YWNrRXJyb3IpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXNwZWN0IHRva2VuIGNhbmNlbCcsIGFzeW5jICgpID0+IHtcbiAgICAvLyBzaW11bGF0ZSBvbGQgdG9rZW5cbiAgICBjb25zdCB0b2tlbiA9IHtcbiAgICAgIGNhbmNlbDogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsIG1ldGhvZCcpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgYXdhaXQgc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWYsXG4gICAgICB1cGxvYWRfdGFnczogdW5kZWZpbmVkLFxuXG4gICAgICAvLyBleHBlY3QuYW55KEZzQ2FuY2VsVG9rZW4pIGlzIG5vdCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIG1vY2tlZCBmdW5jdGlvbnNcbiAgICB9LCB7IGNhbmNlbFRva2VuOiBleHBlY3QuYW55KE9iamVjdCkgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyB1cGxvYWQgdGFncyB0byByZXF1ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHVwbG9hZFRhZ3MgPSB7IHRlc3Q6ICcxMjMnIH07XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgICAgdXBsb2FkVGFncyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVwbG9hZFRhZ3MsXG4gICAgfSwge30pO1xuXG4gICAgZXhwZWN0KHJlcy51cGxvYWRUYWdzKS50b0VxdWFsKHVwbG9hZFRhZ3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdoZW4gbWlzc2luZyB1cmwnLCAoKSA9PiB7XG4gICAgcmV0dXJuIGV4cGVjdChzdG9yZVVSTCh7IHNlc3Npb246IG1vY2tlZFNlc3Npb24gfSkpLnJlamVjdHMudG9FcXVhbChleHBlY3QuYW55KEZpbGVzdGFja0Vycm9yKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgb24gbWlzc2luZyBoYW5kbGUgaW4gcmVzcG9uc2UnLCAoKSA9PiB7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgRnNSZXF1ZXN0LnBvc3QubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7XG4gICAgICBkYXRhOiB7fSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZXhwZWN0KHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IG1vY2tlZFNlc3Npb24sXG4gICAgICB1cmw6IHNvdXJjZVRvU3RvcmUsXG4gICAgfSkpLnJlamVjdHMudG9FcXVhbChleHBlY3QuYW55KEZpbGVzdGFja0Vycm9yKSk7XG4gIH0pO1xuXG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsaUNBQW1DO0FBRW5DLDJEQUF5RDtBQUV6RCx5Q0FBd0M7QUFDeEMsd0NBQXlDO0FBQ3pDLDBDQUF5QztBQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFMUIsSUFBTSxhQUFhLEdBQVk7SUFDN0IsTUFBTSxFQUFFLFlBQVk7SUFDcEIsSUFBSSxFQUFFLGVBQU0sQ0FBQyxJQUFJO0NBQ2xCLENBQUM7QUFFRixJQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUVuQyxJQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRCxJQUFNLHlCQUF5QixHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLElBQU0sYUFBYSxHQUFHLFlBQVksQ0FBQztBQUVuQyxRQUFRLENBQUMsVUFBVSxFQUFFO0lBRW5CLFVBQVUsQ0FBQztRQUNULGFBQWE7UUFDYixtQkFBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFDLENBQUMsRUFBRSxPQUFPO1lBQzNDLElBQUksUUFBUSxHQUFHO2dCQUNiLElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUM7WUFFRixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUNsQyxhQUFhO2dCQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7YUFDakQ7WUFFRCxPQUFPLE9BQU8sQ0FB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RXRDLENBQUMsQ0FBQztRQUVKLE9BQU8sTUFBTSxDQUFDLGdCQUFRLENBQUM7WUFDckIsT0FBTyxFQUFFLGFBQWE7WUFDdEIsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdDQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtDQUErQyxFQUFFOzs7d0JBQ2xELHFCQUFNLGdCQUFRLENBQUM7d0JBQ2IsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLEdBQUcsRUFBRSxhQUFhO3dCQUNsQixXQUFXLGFBQUE7cUJBQ1osQ0FBQyxFQUFBOztvQkFKRixTQUlFLENBQUM7b0JBRUgsTUFBTSxDQUFDLG1CQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsb0JBQW9CLENBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLGFBQVUsRUFBRTt3QkFDdEYsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO3dCQUM1QixPQUFPLEVBQUUsQ0FBRSxhQUFhLENBQUU7d0JBQzFCLEtBQUssRUFBRSx5QkFBeUI7cUJBQ2pDLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7U0FDUixDQUFDLENBQUM7QUFFTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcblxuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi8uLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgRnNSZXF1ZXN0IH0gZnJvbSAnLi8uLi9yZXF1ZXN0JztcbmltcG9ydCB7IEZpbGVsaW5rIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5cbmplc3QubW9jaygnLi8uLi9maWxlbGluaycpO1xuamVzdC5tb2NrKCcuLy4uL3JlcXVlc3QnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IGNvbmZpZy51cmxzLFxufTtcblxuY29uc3Qgd29ya2Zsb3dJZHMgPSBbJzEyMycsICczMjEnXTtcblxuY29uc3Qgc3RvcmVUYXNrRGVmID0gW3sgbmFtZTogJ3N0b3JlJywgcGFyYW1zOiB7fSB9XTtcbmNvbnN0IHN0b3JlVGFza0RlZldpdGhXb3JrZmxvd3MgPSBbeyBuYW1lOiAnc3RvcmUnLCBwYXJhbXM6IHt9IH1dO1xuY29uc3Qgc291cmNlVG9TdG9yZSA9ICd1cmxUb1N0b3JlJztcblxuZGVzY3JpYmUoJ1N0b3JlVVJMJywgKCkgPT4ge1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBGc1JlcXVlc3QucG9zdC5tb2NrSW1wbGVtZW50YXRpb24oKF8sIG9wdGlvbnMpID0+IHtcbiAgICAgIGxldCB0b1JldHVybiA9IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhhbmRsZTogJ3Rlc3QnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51cGxvYWRfdGFncykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRvUmV0dXJuLmRhdGEudXBsb2FkX3RhZ3MgPSBvcHRpb25zLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRvUmV0dXJuKTtcbiAgICB9KTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBGaWxlbGluay5wcm90b3R5cGUuZ2V0VGFza3MubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHN0b3JlVGFza0RlZik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IHN0b3JlIG1ldGhvZCcsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzdG9yZVVSTCh7IHNlc3Npb246IG1vY2tlZFNlc3Npb24sIHVybDogc291cmNlVG9TdG9yZSB9KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVuZGVmaW5lZCxcbiAgICB9LCB7fSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmVzcGVjdCBwYXNzZWQgc2VjdXJpdHkgYW5kIHBvbGljeScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgfTtcblxuICAgIGF3YWl0IHN0b3JlVVJMKHsgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbiwgdXJsOiBzb3VyY2VUb1N0b3JlLCBzZWN1cml0eTogZmFrZVNlY3VyaXR5IH0pO1xuXG4gICAgZXhwZWN0KEZpbGVsaW5rLnByb3RvdHlwZS5zZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmFrZVNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVuZGVmaW5lZCxcbiAgICB9LCB7fSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igb24gd3Jvbmcgc3RvcmUgcGFyYW1zJywgKCkgPT4ge1xuICAgIHJldHVybiBleHBlY3Qoc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHN0b3JlUGFyYW1zOiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGVzdDogMTIzLFxuICAgICAgfSxcbiAgICB9KSkucmVqZWN0cy50b0VxdWFsKGV4cGVjdC5hbnkoRmlsZXN0YWNrRXJyb3IpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXNwZWN0IHRva2VuIGNhbmNlbCcsIGFzeW5jICgpID0+IHtcbiAgICAvLyBzaW11bGF0ZSBvbGQgdG9rZW5cbiAgICBjb25zdCB0b2tlbiA9IHtcbiAgICAgIGNhbmNlbDogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsIG1ldGhvZCcpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgYXdhaXQgc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWYsXG4gICAgICB1cGxvYWRfdGFnczogdW5kZWZpbmVkLFxuXG4gICAgICAvLyBleHBlY3QuYW55KEZzQ2FuY2VsVG9rZW4pIGlzIG5vdCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIG1vY2tlZCBmdW5jdGlvbnNcbiAgICB9LCB7IGNhbmNlbFRva2VuOiBleHBlY3QuYW55KE9iamVjdCkgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyB1cGxvYWQgdGFncyB0byByZXF1ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHVwbG9hZFRhZ3MgPSB7IHRlc3Q6ICcxMjMnIH07XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgICAgdXBsb2FkVGFncyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVwbG9hZFRhZ3MsXG4gICAgfSwge30pO1xuXG4gICAgZXhwZWN0KHJlcy51cGxvYWRUYWdzKS50b0VxdWFsKHVwbG9hZFRhZ3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdoZW4gbWlzc2luZyB1cmwnLCAoKSA9PiB7XG4gICAgcmV0dXJuIGV4cGVjdChzdG9yZVVSTCh7IHNlc3Npb246IG1vY2tlZFNlc3Npb24gfSkpLnJlamVjdHMudG9FcXVhbChleHBlY3QuYW55KEZpbGVzdGFja0Vycm9yKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgb24gbWlzc2luZyBoYW5kbGUgaW4gcmVzcG9uc2UnLCAoKSA9PiB7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgRnNSZXF1ZXN0LnBvc3QubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7XG4gICAgICBkYXRhOiB7fSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZXhwZWN0KHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IG1vY2tlZFNlc3Npb24sXG4gICAgICB1cmw6IHNvdXJjZVRvU3RvcmUsXG4gICAgfSkpLnJlamVjdHMudG9FcXVhbChleHBlY3QuYW55KEZpbGVzdGFja0Vycm9yKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBydW4gc3RvcmVVcmwgd2l0aCB3b3JrZmxvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHdvcmtmbG93SWRzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWZXaXRoV29ya2Zsb3dzLFxuICAgIH0sIHt9KTtcbiAgfSk7XG5cbn0pO1xuIl19

@@ -9,2 +9,3 @@ import { EventEmitter } from 'eventemitter3';

import { PrefetchResponse, PrefetchOptions } from './api/prefetch';
import { FsResponse } from './request/types';
import { StoreParams } from './filelink';

@@ -68,2 +69,3 @@ import { PickerInstance, PickerOptions } from './picker';

export declare class Client extends EventEmitter {
private options?;
session: Session;

@@ -210,6 +212,7 @@ private cloud;

* @param headers Optional headers to send
* @param workflowIds Optional workflowIds to send
*/
storeURL(url: string, storeParams?: StoreParams, token?: any, security?: Security, uploadTags?: UploadTags, headers?: {
[key: string]: string;
}): Promise<Object>;
}, workflowIds?: string[]): Promise<Object>;
/**

@@ -236,2 +239,3 @@ * Access files via their Filestack handles.

* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @deprecated use metadata or download methods instead
* @param handle Valid file handle

@@ -244,2 +248,23 @@ * @param options RetrieveOptions

/**
* Download file by handle
*
*
* ### Browser Example
*
* ```js
* client.download('fileHandle').then((response) => {
* const img = new Image();
* img.src = URL.createObjectURL(res.data)
* document.body.appendChild(img);
* }).catch((err) => {
* console.error(err);
* })
* ```
*
* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @param handle Valid file handle
* @throws Error
*/
download(handle: string, security?: Security): Promise<FsResponse>;
/**
* Interface to the Filestack [Processing API](https://www.filestack.com/docs/api/processing).

@@ -246,0 +271,0 @@ * Convert a URL, handle, or storage alias to another URL which links to the transformed file.

@@ -55,2 +55,3 @@ "use strict";

var _this = _super.call(this) || this;
_this.options = options;
_this.forwardErrors = true;

@@ -61,8 +62,2 @@ /* istanbul ignore if */

}
/* istanbul ignore next */
Sentry.configureScope(function (scope) {
scope.setTag('apikey', apikey);
scope.setTag('sdk-version', Utils.getVersion());
scope.setExtra('clientOptions', options);
});
if (!apikey || typeof apikey !== 'string' || apikey.length === 0) {

@@ -257,4 +252,5 @@ throw new Error('An apikey is required to initialize the Filestack client');

* @param headers Optional headers to send
* @param workflowIds Optional workflowIds to send
*/
Client.prototype.storeURL = function (url, storeParams, token, security, uploadTags, headers) {
Client.prototype.storeURL = function (url, storeParams, token, security, uploadTags, headers, workflowIds) {
return store_1.storeURL({

@@ -268,2 +264,3 @@ session: this.session,

headers: headers,
workflowIds: workflowIds,
});

@@ -292,2 +289,3 @@ };

* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @deprecated use metadata or download methods instead
* @param handle Valid file handle

@@ -303,2 +301,26 @@ * @param options RetrieveOptions

/**
* Download file by handle
*
*
* ### Browser Example
*
* ```js
* client.download('fileHandle').then((response) => {
* const img = new Image();
* img.src = URL.createObjectURL(res.data)
* document.body.appendChild(img);
* }).catch((err) => {
* console.error(err);
* })
* ```
*
* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @param handle Valid file handle
* @throws Error
*/
Client.prototype.download = function (handle, security) {
/* istanbul ignore next */
return file_1.download(this.session, handle, security);
};
/**
* Interface to the Filestack [Processing API](https://www.filestack.com/docs/api/processing).

@@ -387,2 +409,5 @@ * Convert a URL, handle, or storage alias to another URL which links to the transformed file.

Sentry.withScope(function (scope) {
scope.setTag('filestack-apikey', _this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', _this.options);
scope.setExtras({ uploadOptions: options, storeOptions: storeOptions, details: e.details });

@@ -442,2 +467,5 @@ e.message = "FS-" + e.message;

Sentry.withScope(function (scope) {
scope.setTag('filestack-apikey', _this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', _this.options);
scope.setExtras(e.details);

@@ -455,2 +483,2 @@ scope.setExtras({ uploadOptions: options, storeOptions: storeOptions });

//# sourceMappingURL=data:application/json;charset=utf8;base64,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bGUiOiJsaWIvY2xpZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudGVtaXR0ZXIzJztcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L21pbmltYWwnO1xuaW1wb3J0IHsgY29uZmlnLCBIb3N0cyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IG1ldGFkYXRhLCBNZXRhZGF0YU9wdGlvbnMsIHJlbW92ZSwgcmV0cmlldmUsIFJldHJpZXZlT3B0aW9ucyB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtLCBUcmFuc2Zvcm1PcHRpb25zIH0gZnJvbSAnLi9hcGkvdHJhbnNmb3JtJztcbmltcG9ydCB7IHN0b3JlVVJMIH0gZnJvbSAnLi9hcGkvc3RvcmUnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBVcGxvYWQsIElucHV0RmlsZSwgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zLCBVcGxvYWRUYWdzIH0gZnJvbSAnLi9hcGkvdXBsb2FkJztcbmltcG9ydCB7IHByZXZpZXcsIFByZXZpZXdPcHRpb25zIH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBDbG91ZENsaWVudCB9IGZyb20gJy4vYXBpL2Nsb3VkJztcbmltcG9ydCB7IFByZWZldGNoLCBQcmVmZXRjaFJlc3BvbnNlLCBQcmVmZXRjaE9wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmVmZXRjaCc7XG5pbXBvcnQgeyBTdG9yZVBhcmFtcyB9IGZyb20gJy4vZmlsZWxpbmsnO1xuXG5pbXBvcnQgeyBwaWNrZXIsIFBpY2tlckluc3RhbmNlLCBQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi9waWNrZXInO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuU2VudHJ5LmFkZEJyZWFkY3J1bWIoeyBjYXRlZ29yeTogJ3NkaycsIG1lc3NhZ2U6ICdmaWxlc3RhY2stanMtc2RrIHNjb3BlJyB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgYXBpa2V5OiBzdHJpbmc7XG4gIHVybHM6IEhvc3RzO1xuICBjbmFtZT86IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xuICBzaWduYXR1cmU/OiBzdHJpbmc7XG4gIHByZWZldGNoPzogUHJlZmV0Y2hSZXNwb25zZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eSB7XG4gIHBvbGljeTogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGllbnRPcHRpb25zIHtcbiAgW29wdGlvbjogc3RyaW5nXTogYW55O1xuICAvKipcbiAgICogU2VjdXJpdHkgb2JqZWN0IHdpdGggcG9saWN5IGFuZCBzaWduYXR1cmUga2V5cy5cbiAgICogQ2FuIGJlIHVzZWQgdG8gbGltaXQgY2xpZW50IGNhcGFiaWxpdGllcyBhbmQgcHJvdGVjdCBwdWJsaWMgVVJMcy5cbiAgICogSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHNlcnZlci1zaWRlIHBvbGljeSBhbmQgc2lnbmF0dXJlIGdlbmVyYXRpb24uXG4gICAqIFJlYWQgYWJvdXQgW3NlY3VyaXR5IHBvbGljaWVzXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvY29uY2VwdHMvc2VjdXJpdHkpLlxuICAgKi9cbiAgc2VjdXJpdHk/OiBTZWN1cml0eTtcbiAgLyoqXG4gICAqIERvbWFpbiB0byB1c2UgZm9yIGFsbCBVUkxzLiBfX1JlcXVpcmVzIHRoZSBjdXN0b20gQ05BTUUgYWRkb25fXy5cbiAgICogSWYgdGhpcyBpcyBlbmFibGVkIHRoZW4geW91IG11c3QgYWxzbyBzZXQgdXAgeW91ciBvd24gT0F1dGggYXBwbGljYXRpb25zXG4gICAqIGZvciBlYWNoIGNsb3VkIHNvdXJjZSB5b3Ugd2lzaCB0byB1c2UgaW4gdGhlIHBpY2tlci5cbiAgICovXG4gIGNuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlL2Rpc2FibGUgY2FjaGluZyBvZiB0aGUgY2xvdWQgc2Vzc2lvbiB0b2tlbi4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICogVGhpcyBlbnN1cmVzIHRoYXQgdXNlcnMgd2lsbCBiZSByZW1lbWJlcmVkIG9uIHlvdXIgZG9tYWluIHdoZW4gY2FsbGluZyB0aGUgY2xvdWQgQVBJIGZyb20gdGhlIGJyb3dzZXIuXG4gICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRva2VucyBzdG9yZWQgaW4gbG9jYWxTdG9yYWdlIGFyZSBhY2Nlc3NpYmxlIGJ5IG90aGVyIHNjcmlwdHMgb24gdGhlIHNhbWUgZG9tYWluLlxuICAgKi9cbiAgc2Vzc2lvbkNhY2hlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvcndhcmRpbmcgZXJyb3IgbG9ncyB0byBzZW50cnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZvcndhcmRFcnJvcnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBGaWxlc3RhY2sgY2xpZW50LCB0aGUgZW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgbWV0aG9kcy4gRW5jYXBzdWxhdGVzIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gKlxuICogIyMjIEV4YW1wbGVcbiAqIGBgYGpzXG4gKiAvLyBFUyBtb2R1bGVcbiAqIGltcG9ydCAqIGFzIGZpbGVzdGFjayBmcm9tICdmaWxlc3RhY2stanMnO1xuICogY29uc3QgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoJ2FwaWtleScpO1xuICogYGBgXG4gKlxuICogYGBganNcbiAqIC8vIFVNRCBtb2R1bGUgaW4gYnJvd3NlclxuICogPHNjcmlwdCBzcmM9XCJodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL2ZpbGVzdGFjay1qcy8zLngueC9maWxlc3RhY2subWluLmpzXCI+PC9zY3JpcHQ+XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uO1xuICBwcml2YXRlIGNsb3VkOiBDbG91ZENsaWVudDtcbiAgcHJpdmF0ZSBwcmVmZXRjaEluc3RhbmNlOiBQcmVmZXRjaDtcblxuICBwcml2YXRlIGZvcndhcmRFcnJvcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZpbGVzdGFjayB1dGlsc1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQG1lbWJlcm9mIENsaWVudFxuICAgKi9cbiAgZ2V0IHV0aWxzKCkge1xuICAgIHJldHVybiBVdGlscztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFwaWtleTogc3RyaW5nLCBvcHRpb25zPzogQ2xpZW50T3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZvcndhcmRFcnJvcnMpIHtcbiAgICAgIHRoaXMuZm9yd2FyZEVycm9ycyA9IG9wdGlvbnMuZm9yd2FyZEVycm9ycztcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIFNlbnRyeS5jb25maWd1cmVTY29wZShzY29wZSA9PiB7XG4gICAgICBzY29wZS5zZXRUYWcoJ2FwaWtleScsIGFwaWtleSk7XG4gICAgICBzY29wZS5zZXRUYWcoJ3Nkay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgIHNjb3BlLnNldEV4dHJhKCdjbGllbnRPcHRpb25zJywgb3B0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBpZiAoIWFwaWtleSB8fCB0eXBlb2YgYXBpa2V5ICE9PSAnc3RyaW5nJyB8fCBhcGlrZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGFwaWtleSBpcyByZXF1aXJlZCB0byBpbml0aWFsaXplIHRoZSBGaWxlc3RhY2sgY2xpZW50Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJscyB9ID0gY29uZmlnO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHsgYXBpa2V5LCB1cmxzIH07XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyBjbmFtZSwgc2VjdXJpdHkgfSA9IG9wdGlvbnM7XG5cbiAgICAgIHRoaXMuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgICAgdGhpcy5zZXRDbmFtZShjbmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5wcmVmZXRjaEluc3RhbmNlID0gbmV3IFByZWZldGNoKHRoaXMuc2Vzc2lvbik7XG4gICAgdGhpcy5jbG91ZCA9IG5ldyBDbG91ZENsaWVudCh0aGlzLnNlc3Npb24sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYmFzaWMgcHJlZmV0Y2ggcmVxdWVzdCB0byBjaGVjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcmVmZXRjaChwYXJhbXM6IFByZWZldGNoT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnByZWZldGNoSW5zdGFuY2UuZ2V0Q29uZmlnKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlY3VyaXR5IG9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0ge1NlY3VyaXR5fSBzZWN1cml0eVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICBpZiAoc2VjdXJpdHkgJiYgIShzZWN1cml0eS5wb2xpY3kgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdCb3RoIHBvbGljeSBhbmQgc2lnbmF0dXJlIGFyZSByZXF1aXJlZCBmb3IgY2xpZW50IHNlY3VyaXR5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2Vzc2lvbi5wb2xpY3kgPSBzZWN1cml0eS5wb2xpY3k7XG4gICAgICB0aGlzLnNlc3Npb24uc2lnbmF0dXJlID0gc2VjdXJpdHkuc2lnbmF0dXJlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VzdG9tIGNuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRDbmFtZShjbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFjbmFtZSB8fCBjbmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uY25hbWUgPSBjbmFtZTtcbiAgICB0aGlzLnNlc3Npb24udXJscyA9IFV0aWxzLnJlc29sdmVIb3N0KHRoaXMuc2Vzc2lvbi51cmxzLCBjbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGN1cnJlbnQgY2xvdWQgc2Vzc2lvbnMgaW4gdGhlIHBpY2tlci5cbiAgICogT3B0aW9uYWxseSBwYXNzIGEgY2xvdWQgc291cmNlIG5hbWUgdG8gb25seSBsb2cgb3V0IG9mIHRoYXQgY2xvdWQgc291cmNlLlxuICAgKiBUaGlzIGVzc2VudGlhbGx5IGNsZWFycyB0aGUgT0F1dGggYXV0aG9yaXphdGlvbiBjb2RlcyBmcm9tIHRoZSBGaWxlc3RhY2sgc2Vzc2lvbi5cbiAgICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgY2xvdWQgc291cmNlIG5hbWUuXG4gICAqL1xuICBsb2dvdXQobmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNsb3VkLmxvZ291dChuYW1lKTtcbiAgfVxuICAvKipcbiAgICogUmV0cmlldmUgZGV0YWlsZWQgZGF0YSBvZiBzdG9yZWQgZmlsZXMuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5tZXRhZGF0YSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIE1ldGFkYXRhXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjbWV0YWRhdGEpLlxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIE1ldGFkYXRhIGZpZWxkcyB0byBlbmFibGUgb24gcmVzcG9uc2UuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIG1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gbWV0YWRhdGEodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogQ29uc3RydWN0IGEgbmV3IHBpY2tlciBpbnN0YW5jZS5cbiAgICovXG4gIHBpY2tlcihvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFBpY2tlckluc3RhbmNlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBwaWNrZXIodGhpcywgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZWQgZm9yIHZpZXdpbmcgZmlsZXMgdmlhIEZpbGVzdGFjayBoYW5kbGVzIG9yIHN0b3JhZ2UgYWxpYXNlcywgX19yZXF1aXJlcyBEb2N1bWVudCBWaWV3ZXIgYWRkb24gdG8geW91ciBGaWxlc3RhY2sgYXBwbGljYXRpb25fXy5cbiAgICogT3BlbnMgZG9jdW1lbnQgdmlld2VyIGluIG5ldyB3aW5kb3cgaWYgaWQgb3B0aW9uIGlzIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gPGRpdiBpZD1cInByZXZpZXdcIj48L2Rpdj5cbiAgICpcbiAgICogY2xpZW50LnByZXZpZXcoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JywgeyBpZDogJ3ByZXZpZXcnIH0pO1xuICAgKiBgYGBcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBQcmV2aWV3IG9wdGlvbnNcbiAgICovXG4gIHByZXZpZXcoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmV2aWV3T3B0aW9ucykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHByZXZpZXcodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlIGZyb20gc3RvcmFnZSBhbmQgdGhlIEZpbGVzdGFjayBzeXN0ZW0uXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERlbGV0ZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2RlbGV0ZSlcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICByZW1vdmUoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgZmFsc2UsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSAqKm9ubHkqKiBmcm9tIHRoZSBGaWxlc3RhY2sgc3lzdGVtLiBUaGUgZmlsZSByZW1haW5zIGluIHN0b3JhZ2UuXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZU1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZU1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZW1vdmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIHRydWUsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogU3RvcmUgYSBmaWxlIGZyb20gaXRzIFVSTC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnN0b3JlVVJMKCdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9OWV8xOTlfRV9vZl9IYW1tZXJ0b3duXzIwMTQuanBnJylcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIFN0b3JlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjc3RvcmUpXG4gICAqIEBwYXJhbSB1cmwgICAgICAgVmFsaWQgVVJMIHRvIGEgZmlsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgICBDb25maWd1cmUgZmlsZSBzdG9yYWdlLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgIE9wdGlvbmFsIGNvbnRyb2wgdG9rZW4gdG8gY2FsbCAuY2FuY2VsKClcbiAgICogQHBhcmFtIHNlY3VyaXR5ICBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICogQHBhcmFtIHVwbG9hZFRhZ3MgT3B0aW9uYWwgdGFncyB2aXNpYmxlIGluIHdlYmhvb2tzLlxuICAgKiBAcGFyYW0gaGVhZGVycyAgICBPcHRpb25hbCBoZWFkZXJzIHRvIHNlbmRcbiAgICovXG4gIHN0b3JlVVJMKHVybDogc3RyaW5nLCBzdG9yZVBhcmFtcz86IFN0b3JlUGFyYW1zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSwgdXBsb2FkVGFncz86IFVwbG9hZFRhZ3MsIGhlYWRlcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VzcyBmaWxlcyB2aWEgdGhlaXIgRmlsZXN0YWNrIGhhbmRsZXMuXG4gICAqXG4gICAqIElmIGhlYWQgb3B0aW9uIGlzIHByb3ZpZGVkIC0gcmVxdWVzdCBoZWFkZXJzIGFyZSByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIElmIG1ldGFkYXRhIG9wdGlvbiBpcyBwcm92aWRlZCAtIG1ldGFkYXRhIG9iamVjdCBpcyByZXR1cm5lZCBpbiBwcm9taXNlXG4gICAqIE90aGVyd2lzZSBmaWxlIGJsb2IgaXMgcmV0dXJuZWRcbiAgICogTWV0YWRhdGEgYW5kIGhlYWQgb3B0aW9ucyBjYW5ub3QgYmUgbWl4ZWRcbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50LnJldHJpZXZlKCdmaWxlSGFuZGxlJywge1xuICAgKiAgbWV0YWRhdGE6IHRydWUsXG4gICAqIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAqICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAqIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICogIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICogfSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRG93bmxvYWRdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkb3dubG9hZClcbiAgICogQHBhcmFtIGhhbmRsZSAgICBWYWxpZCBmaWxlIGhhbmRsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIFJldHJpZXZlT3B0aW9uc1xuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAdGhyb3dzICAgICAgICAgIEVycm9yXG4gICAqL1xuICByZXRyaWV2ZShoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFJldHJpZXZlT3B0aW9ucywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8T2JqZWN0IHwgQmxvYj4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJldHJpZXZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBvcHRpb25zLCBzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJmYWNlIHRvIHRoZSBGaWxlc3RhY2sgW1Byb2Nlc3NpbmcgQVBJXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL3Byb2Nlc3NpbmcpLlxuICAgKiBDb252ZXJ0IGEgVVJMLCBoYW5kbGUsIG9yIHN0b3JhZ2UgYWxpYXMgdG8gYW5vdGhlciBVUkwgd2hpY2ggbGlua3MgdG8gdGhlIHRyYW5zZm9ybWVkIGZpbGUuXG4gICAqIFlvdSBjYW4gb3B0aW9uYWxseSBzdG9yZSB0aGUgcmV0dXJuZWQgVVJMIHdpdGggY2xpZW50LnN0b3JlVVJMLlxuICAgKlxuICAgKiBUcmFuc2Zvcm0gcGFyYW1zIGNhbiBiZSBwcm92aWRlZCBpbiBjYW1lbENhc2Ugb3Igc25ha2VDYXNlIHN0eWxlIGllOiBwYXJ0aWFsX3BpeGVsYXRlIG9yIHBhcnRpYWxQaXhlbGF0ZVxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0cmFuc2Zvcm1lZFVybCA9IGNsaWVudC50cmFuc2Zvcm0odXJsLCB7XG4gICAqICAgY3JvcDoge1xuICAgKiAgICAgZGltOiBbeCwgeSwgd2lkdGgsIGhlaWdodF0sXG4gICAqICAgfSxcbiAgICogICB2aWduZXR0ZToge1xuICAgKiAgICAgYmx1cm1vZGU6ICdnYXVzc2lhbicsXG4gICAqICAgICBhbW91bnQ6IDUwLFxuICAgKiAgIH0sXG4gICAqICAgZmxpcDogdHJ1ZSxcbiAgICogICBwYXJ0aWFsX3BpeGVsYXRlOiB7XG4gICAqICAgICBvYmplY3RzOiBbWzEwLCAyMCwgMjAwLCAyNTBdLCBbMjc1LCA5MSwgNTAwLCA1NTddXSxcbiAgICogICB9LFxuICAgKiB9O1xuICAgKlxuICAgKiAvLyBvcHRpb25hbGx5IHN0b3JlIHRoZSBuZXcgVVJMXG4gICAqIGNsaWVudC5zdG9yZVVSTCh0cmFuc2Zvcm1lZFVybCkudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlc3RhY2sgUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZylcbiAgICogQHBhcmFtIHVybCAgICAgU2luZ2xlIG9yIG11bHRpcGxlIHZhbGlkIFVSTHMgKGh0dHAocyk6Ly8pLCBmaWxlIGhhbmRsZXMsIG9yIHN0b3JhZ2UgYWxpYXNlcyAoc3JjOi8vKSB0byBhbiBpbWFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVHJhbnNmb3JtYXRpb25zIGFyZSBhcHBsaWVkIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuXG4gICAqIEBwYXJhbSBiNjQgICAgIFVzZSBuZXcgbW9yZSBzYWZlIGZvcm1hdCBmb3IgZ2VuZXJhdGluZyB0cmFuc2Zvcm1zIHVybCAoZGVmYXVsdD1mYWxzZSkgTm90ZTogSWYgdGhlcmUgd2lsbCBiZSBhbnkgaXNzdWVzIHdpdGggdXJsIHBsZWFzZSB0ZXN0IGl0IHdpdGggZW5hYmxlZCBiNjQgc3VwcG9ydFxuICAgKiBAcmV0dXJucyAgICAgICBBIG5ldyBVUkwgdGhhdCBwb2ludHMgdG8gdGhlIHRyYW5zZm9ybWVkIHJlc291cmNlLlxuICAgKi9cbiAgdHJhbnNmb3JtKHVybDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IFRyYW5zZm9ybU9wdGlvbnMsIGI2NDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdHJhbnNmb3JtKHRoaXMuc2Vzc2lvbiwgdXJsLCBvcHRpb25zLCBiNjQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBhIG11bHRpLXBhcnQgdXBsb2FkIGZsb3cuIFVzZSB0aGlzIGZvciBGaWxlc3RhY2sgQ0lOIGFuZCBGSUkgdXBsb2Fkcy5cbiAgICpcbiAgICogSW4gTm9kZSBydW50aW1lcyB0aGUgZmlsZSBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZSBwYXRoLlxuICAgKiBVcGxvYWRpbmcgZnJvbSBhIE5vZGUgYnVmZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRva2VuID0ge307XG4gICAqIGNvbnN0IG9uUmV0cnkgPSAob2JqKSA9PiB7XG4gICAqICAgY29uc29sZS5sb2coYFJldHJ5aW5nICR7b2JqLmxvY2F0aW9ufSBmb3IgJHtvYmouZmlsZW5hbWV9LiBBdHRlbXB0ICR7b2JqLmF0dGVtcHR9IG9mIDEwLmApO1xuICAgKiB9O1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKGZpbGUsIHsgb25SZXRyeSB9LCB7IGZpbGVuYW1lOiAnZm9vYmFyLmpwZycgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKHtmaWxlLCBuYW1lfSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIHRva2VuLnBhdXNlKCk7ICAvLyBQYXVzZSBmbG93XG4gICAqIHRva2VuLnJlc3VtZSgpOyAvLyBSZXN1bWUgZmxvd1xuICAgKiB0b2tlbi5jYW5jZWwoKTsgLy8gQ2FuY2VsIGZsb3cgKHJlamVjdHMpXG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge0lucHV0RmlsZX0gICAgZmlsZSAgICAgICAgICAgTXVzdCBiZSBhIHZhbGlkIFtGaWxlIHwgQmxvYiB8IEJ1ZmZlciB8IHN0cmluZ11cbiAgICogQHBhcmFtIHVwbG9hZE9wdGlvbnMgIFVwbG9hZGVyIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICB1cGxvYWQoZmlsZTogSW5wdXRGaWxlLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3J3YXJkRXJyb3JzKSB7XG4gICAgICAgIFNlbnRyeS53aXRoU2NvcGUoc2NvcGUgPT4ge1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucywgZGV0YWlsczogZS5kZXRhaWxzIH0pO1xuICAgICAgICAgIGUubWVzc2FnZSA9IGBGUy0ke2UubWVzc2FnZX1gO1xuXG4gICAgICAgICAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC51cGxvYWQoZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbZmlsZV0sIHsgb25SZXRyeSB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbe2ZpbGUsIG5hbWV9XSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlW119ICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nIChiYXNlNjQpXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICBtdWx0aXVwbG9hZChmaWxlOiBJbnB1dEZpbGVbXSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB1cGxvYWQub24oJ2Vycm9yJywgZSA9PiB7XG4gICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKGUuZGV0YWlscyk7XG4gICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucyB9KTtcbiAgICAgICAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5lbWl0KCd1cGxvYWQuZXJyb3InLCBlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB1cGxvYWQubXVsdGl1cGxvYWQoZmlsZSk7XG4gIH1cbn1cbiJdfQ==
//# 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

@@ -162,3 +162,3 @@ "use strict";

it('should be able to store url', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var client, url, options, token, uploadTags;
var client, url, options, token, uploadTags, headers, workflowIds;
return tslib_1.__generator(this, function (_a) {

@@ -172,3 +172,5 @@ switch (_a.label) {

uploadTags = { test: '123' };
return [4 /*yield*/, client.storeURL(url, options, token, defaultSecurity, uploadTags)];
headers = { 'test': '123' };
workflowIds = ['123', '321'];
return [4 /*yield*/, client.storeURL(url, options, token, defaultSecurity, uploadTags, headers, workflowIds)];
case 1:

@@ -183,2 +185,4 @@ _a.sent();

uploadTags: uploadTags,
headers: headers,
workflowIds: workflowIds,
});

@@ -366,2 +370,2 @@ return [2 /*return*/];

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0RBQXNEO0FBQ3RELHNDQUFxQztBQUNyQyxtQ0FBa0M7QUFDbEMscUNBQTBDO0FBQzFDLDhDQUE2QztBQUM3QyxtQ0FBa0M7QUFDbEMseUNBQXdDO0FBQ3hDLG1DQUF3RDtBQUN4RCxxQ0FBdUM7QUFDdkMsNkNBQTRDO0FBRTVDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDakIsSUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUM7SUFDeEMsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDdkMsSUFBTSxlQUFlLEdBQUc7UUFDdEIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QixDQUFDO0lBRUYsSUFBTSxXQUFXLEdBQUcsZUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFNLGNBQWMsR0FBRztRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FB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RUFBRSxXQUFXLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQVUsT0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQVIsQ0FBUSxDQUFDLENBQUM7b0JBRXhGLHFCQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUFBOztvQkFBcEYsU0FBb0YsQ0FBQztvQkFFckYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDOzs7O1NBQ2hELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9jbGllbnQuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vLi4vY29uZmlnJztcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4vY2xpZW50JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgVXBsb2FkIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3VwbG9hZCc7XG5pbXBvcnQgeyBwaWNrZXIgfSBmcm9tICcuL3BpY2tlcic7XG5pbXBvcnQgeyBwcmV2aWV3IH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBtZXRhZGF0YSwgcmVtb3ZlLCByZXRyaWV2ZSB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuXG5qZXN0Lm1vY2soJy4vYXBpL3VwbG9hZC91cGxvYWQnKTtcbmplc3QubW9jaygnLi9hcGkvY2xvdWQnKTtcbmplc3QubW9jaygnLi9hcGkvZmlsZScpO1xuamVzdC5tb2NrKCcuL2FwaS9zdG9yZScpO1xuamVzdC5tb2NrKCcuL3BpY2tlcicpO1xuamVzdC5tb2NrKCcuL2FwaS9wcmV2aWV3Jyk7XG5qZXN0Lm1vY2soJy4vYXBpL3RyYW5zZm9ybScpO1xuXG5kZXNjcmliZSgnY2xpZW50JywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0QXBpa2V5ID0gJ0VYQU1QTEVfQVBJX0tFWSc7XG4gIGNvbnN0IGRlZmF1bHRIYW5kbGUgPSAnRVhBTVBMRV9IQU5ETEUnO1xuICBjb25zdCBkZWZhdWx0U2VjdXJpdHkgPSB7XG4gICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgc2lnbmF0dXJlOiAnZXhhbXBsZVNpZ25hdHVyZScsXG4gIH07XG5cbiAgY29uc3Qgc2Vzc2lvblVSbHMgPSBjb25maWcudXJscztcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICB9O1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgaW5zdGFudGlhdGUgQ2xpZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgZXhwZWN0KGNsaWVudCkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlSW5zdGFuY2VPZihDbGllbnQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGFwaSBrZXkgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IENsaWVudCgnJyk7XG4gICAgfSkudG9UaHJvdygnQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBwcm92aWRlZCBzZWN1cml0eSB3aXRob3V0IHNpZ25hdHVyZScsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IHtcbiAgICAgICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgICAgIHNpZ25hdHVyZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXksIG9wdGlvbnMpO1xuICAgIH0pLnRvVGhyb3coJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIHBvbGljeSAmIHNpZ25hdHVyZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnBvbGljeSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnBvbGljeSk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnNpZ25hdHVyZSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnNpZ25hdHVyZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyBjbmFtZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgY25hbWU6ICd0ZXN0Q25hbWUuY29tJyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLmNuYW1lKS50b0JlKG9wdGlvbnMuY25hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gbG9nb3V0IGZvciBwcm92aWVkIGNsb3VkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgY2xvdWROYW1lID0gJ2Ryb3Bib3gnO1xuICAgIGF3YWl0IGNsaWVudC5sb2dvdXQoY2xvdWROYW1lKTtcblxuICAgIGV4cGVjdChDbG91ZENsaWVudC5wcm90b3R5cGUubG9nb3V0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbG91ZE5hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCBtZXRhZGF0YSBmb3IgYSBwcm92aWRlZCBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2hhMjI0OiB0cnVlLFxuICAgIH07XG5cbiAgICBhd2FpdCBjbGllbnQubWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgb3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QobWV0YWRhdGEpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwaWNrZXInLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwaWNrZXJPcHRpb25zID0ge1xuICAgICAgbGFuZzogJ2RlJyxcbiAgICB9O1xuICAgIGNsaWVudC5waWNrZXIocGlja2VyT3B0aW9ucyk7XG5cbiAgICBleHBlY3QocGlja2VyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbGllbnQsIHBpY2tlck9wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwcmV2aWV3JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgcHJldmlld09wdGlvbnMgPSB7XG4gICAgICBpZDogJ3Rlc3RFbGVtZW50JyxcbiAgICB9O1xuICAgIGNsaWVudC5wcmV2aWV3KGRlZmF1bHRIYW5kbGUsIHByZXZpZXdPcHRpb25zKTtcblxuICAgIGV4cGVjdChwcmV2aWV3KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gcmVtb3ZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmUoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmVtb3ZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgZmFsc2UsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgbWV0YWRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBhd2FpdCBjbGllbnQucmVtb3ZlTWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cnVlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gc3RvcmUgdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdXJsID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9pbWczLmpwZyc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG4gICAgY29uc3QgdXBsb2FkVGFncyA9IHsgdGVzdDogJzEyMycgfTtcbiAgICBhd2FpdCBjbGllbnQuc3RvcmVVUkwodXJsLCBvcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5LCB1cGxvYWRUYWdzKTtcblxuICAgIGV4cGVjdChzdG9yZVVSTCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgc2Vzc2lvbjogZGVmYXVsdFNlc3Npb24sXG4gICAgICB1cmwsXG4gICAgICBzdG9yZVBhcmFtczogb3B0aW9ucyxcbiAgICAgIHRva2VuLFxuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCByZXRyaWV2ZU9wdGlvbnMgPSB7fTtcblxuICAgIGF3YWl0IGNsaWVudC5yZXRyaWV2ZShkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gICAgZXhwZWN0KHJldHJpZXZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcmV0cmlldmVPcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRoIGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBiNjQgPSB0cnVlO1xuICAgIGNsaWVudC50cmFuc2Zvcm0oZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHRyYW5zZm9ybSB1cmwgd2l0aG91dCBiNjQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1PcHRpb25zID0ge1xuICAgICAgYmx1cjoge1xuICAgICAgICBhbW91bnQ6IDUsXG4gICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zKTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgZmFsc2UpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ3VwbG9hZCcpLmFuZC5yZXR1cm5WYWx1ZShQcm9taXNlLnJlc29sdmUoKSk7XG5cbiAgICBhd2FpdCBjbGllbnQudXBsb2FkKGZpbGUsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucywgdG9rZW4sIGRlZmF1bHRTZWN1cml0eSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZXNzaW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgICB1cmxzOiBzZXNzaW9uVVJscyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFRva2VuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0b2tlbik7XG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2VjdXJpdHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZWN1cml0eSk7XG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUudXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwbG9hZCBmaWxlIHdpdGhvdXQgdG9rZW4gYW5kIHNlY3VyaXR5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUudXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlbWl0IGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCBtb2NrT25FcnJvciA9IGplc3QuZm4oKS5tb2NrTmFtZSgnbW9ja09uRXJyb3InKTtcblxuICAgIGNvbnN0IHRlc3QgPSBuZXcgRmlsZXN0YWNrRXJyb3IoJ3Rlc3QnKTtcblxuICAgIGNsaWVudC5vbigndXBsb2FkLmVycm9yJywgbW9ja09uRXJyb3IpO1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnb24nKS5tb2NrSW1wbGVtZW50YXRpb24oKG5hbWUsIGNiLCBjdHgpOiBhbnkgPT4gY2IodGVzdCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KG1vY2tPbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIG11bHRpdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlcyA9IFsnYW55RmlsZSddO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNhbGwgbXVsdGl1cGxvYWQgd2l0aG91dCBzZWN1cml0eSBvciB0b2tlbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUubXVsdGl1cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGVzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlbWl0IGVycm9yIGZvciBtdWx0aXVwbG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgY29uc3QgbW9ja09uRXJyb3IgPSBqZXN0LmZuKCkubW9ja05hbWUoJ21vY2tPbkVycm9yJyk7XG5cbiAgICBjb25zdCB0ZXN0ID0gbmV3IEZpbGVzdGFja0Vycm9yKCd0ZXN0Jyk7XG5cbiAgICBjbGllbnQub24oJ3VwbG9hZC5lcnJvcicsIG1vY2tPbkVycm9yKTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ29uJykubW9ja0ltcGxlbWVudGF0aW9uKChuYW1lLCBjYiwgY3R4KTogYW55ID0+IGNiKHRlc3QpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChtb2NrT25FcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgodGVzdCk7XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0RBQXNEO0FBQ3RELHNDQUFxQztBQUNyQyxtQ0FBa0M7QUFDbEMscUNBQTBDO0FBQzFDLDhDQUE2QztBQUM3QyxtQ0FBa0M7QUFDbEMseUNBQXdDO0FBQ3hDLG1DQUF3RDtBQUN4RCxxQ0FBdUM7QUFDdkMsNkNBQTRDO0FBRTVDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDakIsSUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUM7SUFDeEMsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDdkMsSUFBTSxlQUFlLEdBQUc7UUFDdEIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QixDQUFDO0lBRUYsSUFBTSxXQUFXLEdBQUcsZUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFNLGNBQWMsR0FBRztRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FB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QkFFcEUsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBRWhELElBQUksR0FBRyxJQUFJLGdDQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRXhDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBVSxPQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBUixDQUFRLENBQUMsQ0FBQztvQkFFeEYscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLEVBQUE7O29CQUFwRixTQUFvRixDQUFDO29CQUVyRixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7U0FDaEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL2NsaWVudC5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuaW1wb3J0IHsgQ2xvdWRDbGllbnQgfSBmcm9tICcuL2FwaS9jbG91ZCc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICcuL2FwaS91cGxvYWQvdXBsb2FkJztcbmltcG9ydCB7IHBpY2tlciB9IGZyb20gJy4vcGlja2VyJztcbmltcG9ydCB7IHByZXZpZXcgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IG1ldGFkYXRhLCByZW1vdmUsIHJldHJpZXZlIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vYXBpL3N0b3JlJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4vYXBpL3RyYW5zZm9ybSc7XG5cbmplc3QubW9jaygnLi9hcGkvdXBsb2FkL3VwbG9hZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9jbG91ZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9maWxlJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3N0b3JlJyk7XG5qZXN0Lm1vY2soJy4vcGlja2VyJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3ByZXZpZXcnKTtcbmplc3QubW9jaygnLi9hcGkvdHJhbnNmb3JtJyk7XG5cbmRlc2NyaWJlKCdjbGllbnQnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRBcGlrZXkgPSAnRVhBTVBMRV9BUElfS0VZJztcbiAgY29uc3QgZGVmYXVsdEhhbmRsZSA9ICdFWEFNUExFX0hBTkRMRSc7XG4gIGNvbnN0IGRlZmF1bHRTZWN1cml0eSA9IHtcbiAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICBzaWduYXR1cmU6ICdleGFtcGxlU2lnbmF0dXJlJyxcbiAgfTtcblxuICBjb25zdCBzZXNzaW9uVVJscyA9IGNvbmZpZy51cmxzO1xuICBjb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgdXJsczogc2Vzc2lvblVSbHMsXG4gIH07XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBpbnN0YW50aWF0ZSBDbGllbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjbGllbnQpLnRvQmVJbnN0YW5jZU9mKENsaWVudCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgYXBpIGtleSBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KCcnKTtcbiAgICB9KS50b1Rocm93KCdBbiBhcGlrZXkgaXMgcmVxdWlyZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRmlsZXN0YWNrIGNsaWVudCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHByb3ZpZGVkIHNlY3VyaXR5IHdpdGhvdXQgc2lnbmF0dXJlJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eToge1xuICAgICAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICAgICAgc2lnbmF0dXJlOiAnJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgfSkudG9UaHJvdygnQm90aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIGNsaWVudCBzZWN1cml0eScpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhc3MgcG9saWN5ICYgc2lnbmF0dXJlIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24ucG9saWN5KS50b0JlKG9wdGlvbnMuc2VjdXJpdHkucG9saWN5KTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uc2lnbmF0dXJlKS50b0JlKG9wdGlvbnMuc2VjdXJpdHkuc2lnbmF0dXJlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIGNuYW1lIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBjbmFtZTogJ3Rlc3RDbmFtZS5jb20nLFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uY25hbWUpLnRvQmUob3B0aW9ucy5jbmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBsb2dvdXQgZm9yIHByb3ZpZWQgY2xvdWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBjbG91ZE5hbWUgPSAnZHJvcGJveCc7XG4gICAgYXdhaXQgY2xpZW50LmxvZ291dChjbG91ZE5hbWUpO1xuXG4gICAgZXhwZWN0KENsb3VkQ2xpZW50LnByb3RvdHlwZS5sb2dvdXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsb3VkTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2V0IG1ldGFkYXRhIGZvciBhIHByb3ZpZGVkIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzaGEyMjQ6IHRydWUsXG4gICAgfTtcblxuICAgIGF3YWl0IGNsaWVudC5tZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChtZXRhZGF0YSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIG9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHBpY2tlcicsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHBpY2tlck9wdGlvbnMgPSB7XG4gICAgICBsYW5nOiAnZGUnLFxuICAgIH07XG4gICAgY2xpZW50LnBpY2tlcihwaWNrZXJPcHRpb25zKTtcblxuICAgIGV4cGVjdChwaWNrZXIpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsaWVudCwgcGlja2VyT3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHByZXZpZXcnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwcmV2aWV3T3B0aW9ucyA9IHtcbiAgICAgIGlkOiAndGVzdEVsZW1lbnQnLFxuICAgIH07XG4gICAgY2xpZW50LnByZXZpZXcoZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuXG4gICAgZXhwZWN0KHByZXZpZXcpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBwcmV2aWV3T3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgaGFuZGxlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgYXdhaXQgY2xpZW50LnJlbW92ZShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBmYWxzZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBtZXRhZGF0YScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmVNZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KHJlbW92ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIHRydWUsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBzdG9yZSB1cmwnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB1cmwgPSAnaHR0cDovL2V4YW1wbGUuY29tL2ltZzMuanBnJztcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCB1cGxvYWRUYWdzID0geyB0ZXN0OiAnMTIzJyB9O1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICd0ZXN0JzogJzEyMycgfTtcbiAgICBjb25zdCB3b3JrZmxvd0lkcyA9IFsnMTIzJywgJzMyMSddO1xuICAgIGF3YWl0IGNsaWVudC5zdG9yZVVSTCh1cmwsIG9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHksIHVwbG9hZFRhZ3MsaGVhZGVycywgd29ya2Zsb3dJZHMpO1xuXG4gICAgZXhwZWN0KHN0b3JlVVJMKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBzZXNzaW9uOiBkZWZhdWx0U2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zOiBvcHRpb25zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICB3b3JrZmxvd0lkcyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHJldHJpZXZlT3B0aW9ucyA9IHt9O1xuXG4gICAgYXdhaXQgY2xpZW50LnJldHJpZXZlKGRlZmF1bHRIYW5kbGUsIHJldHJpZXZlT3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmV0cmlldmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB0cmFuc2Zvcm0gdXJsIHdpdGggYjY0JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdHJhbnNmb3JtT3B0aW9ucyA9IHtcbiAgICAgIGJsdXI6IHtcbiAgICAgICAgYW1vdW50OiA1LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGI2NCA9IHRydWU7XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRob3V0IGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnQudHJhbnNmb3JtKGRlZmF1bHRIYW5kbGUsIHRyYW5zZm9ybU9wdGlvbnMpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGxvYWQgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUgd2l0aG91dCB0b2tlbiBhbmQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcblxuICAgIHNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVtaXQgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuICAgIGNvbnN0IG1vY2tPbkVycm9yID0gamVzdC5mbigpLm1vY2tOYW1lKCdtb2NrT25FcnJvcicpO1xuXG4gICAgY29uc3QgdGVzdCA9IG5ldyBGaWxlc3RhY2tFcnJvcigndGVzdCcpO1xuXG4gICAgY2xpZW50Lm9uKCd1cGxvYWQuZXJyb3InLCBtb2NrT25FcnJvcik7XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdvbicpLm1vY2tJbXBsZW1lbnRhdGlvbigobmFtZSwgY2IsIGN0eCk6IGFueSA9PiBjYih0ZXN0KSk7XG5cbiAgICBhd2FpdCBjbGllbnQudXBsb2FkKGZpbGUsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucywgdG9rZW4sIGRlZmF1bHRTZWN1cml0eSk7XG5cbiAgICBleHBlY3QobW9ja09uRXJyb3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRlc3QpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gbXVsdGl1cGxvYWQgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLm11bHRpdXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY2FsbCBtdWx0aXVwbG9hZCB3aXRob3V0IHNlY3VyaXR5IG9yIHRva2VuJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVtaXQgZXJyb3IgZm9yIG11bHRpdXBsb2FkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcblxuICAgIHNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdtdWx0aXVwbG9hZCcpLmFuZC5yZXR1cm5WYWx1ZShQcm9taXNlLnJlc29sdmUoKSk7XG5cbiAgICBjb25zdCBtb2NrT25FcnJvciA9IGplc3QuZm4oKS5tb2NrTmFtZSgnbW9ja09uRXJyb3InKTtcblxuICAgIGNvbnN0IHRlc3QgPSBuZXcgRmlsZXN0YWNrRXJyb3IoJ3Rlc3QnKTtcblxuICAgIGNsaWVudC5vbigndXBsb2FkLmVycm9yJywgbW9ja09uRXJyb3IpO1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnb24nKS5tb2NrSW1wbGVtZW50YXRpb24oKG5hbWUsIGNiLCBjdHgpOiBhbnkgPT4gY2IodGVzdCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KG1vY2tPbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0KTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -44,2 +44,5 @@ "use strict";

var request = new XMLHttpRequest();
if (config.blobResponse) {
request.responseType = 'blob';
}
// HTTP basic authentication

@@ -167,2 +170,2 @@ if (config.auth) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9hZGFwdGVycy94aHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsK0JBQTBCO0FBQzFCLGdDQUFrQztBQUVsQyxrQ0FBc0U7QUFDdEUsa0NBQThEO0FBQzlELHdDQUE2RjtBQUU3RixJQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN0QyxJQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFFckM7SUFBQTtJQTRKQSxDQUFDO0lBMUpDLDRCQUFPLEdBQVAsVUFBUSxNQUF3QjtRQUFoQyxpQkF5SkM7UUF4SkMsa0RBQWtEO1FBQ2xELElBQUksT0FBTyxNQUFNLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFFRCxNQUFNLEdBQUcscUJBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWhDLElBQUEsa0JBQUksRUFBRSx3QkFBTyxDQUFZO1FBRS9CLGlFQUFpRTtRQUNqRSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBRW5DLDRCQUE0QjtRQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFD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O2dCQUMvRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ2xCLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO29CQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUNoQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDekQ7YUFDRjtZQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNiO1lBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSCxpQkFBQztBQUFELENBNUpBLEFBNEpDLElBQUE7QUE1SlksZ0NBQVUiLCJmaWxlIjoibGliL3JlcXVlc3QvYWRhcHRlcnMveGhyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEFkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3RPcHRpb25zLCBGc1Jlc3BvbnNlLCBGc0h0dHBNZXRob2QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBGc1JlcXVlc3RFcnJvciwgRnNSZXF1ZXN0RXJyb3JDb2RlIH0gZnJvbSAnLi4vZXJyb3InO1xuaW1wb3J0IHsgcHJlcGFyZURhdGEsIHBhcnNlUmVzcG9uc2UsIHBhcnNlIGFzIHBhcnNlSGVhZGVycywgY29tYmluZVVSTCB9IGZyb20gJy4vLi4vaGVscGVycyc7XG5cbmNvbnN0IGRlYnVnID0gRGVidWcoJ2ZzOnJlcXVlc3Q6eGhyJyk7XG5jb25zdCBDQU5DRUxfQ0xFQVIgPSBgRnNDbGVhbk1lbW9yeWA7XG5cbmV4cG9ydCBjbGFzcyBYaHJBZGFwdGVyIGltcGxlbWVudHMgQWRhcHRlckludGVyZmFjZSB7XG5cbiAgcmVxdWVzdChjb25maWc6IEZzUmVxdWVzdE9wdGlvbnMpIHtcbiAgICAvLyBpZiB0aGlzIG9wdGlvbiBpcyB1bnNwZWNpZmllZCBzZXQgaXQgYnkgZGVmYXVsdFxuICAgIGlmICh0eXBlb2YgY29uZmlnLmZpbGVzdGFja0hlYWRlcnMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25maWcuZmlsZXN0YWNrSGVhZGVycyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uZmlnID0gcHJlcGFyZURhdGEoY29uZmlnKTtcbiAgICBjb25maWcuaGVhZGVycyA9IGNvbmZpZy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgbGV0IHsgZGF0YSwgaGVhZGVycyB9ID0gY29uZmlnO1xuXG4gICAgLy8gaWYgZGF0YSBpcyB0eXBlIG9mIGZvcm0gbGV0IGJyb3dzZXIgdG8gc2V0IHByb3BlciBjb250ZW50IHR5cGVcbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSkge1xuICAgICAgZGVsZXRlIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIGxldCByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICAvLyBIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uXG4gICAgaWYgKGNvbmZpZy5hdXRoKSB7XG4gICAgICBpZiAoIWNvbmZpZy5hdXRoLnVzZXJuYW1lIHx8IGNvbmZpZy5hdXRoLnVzZXJuYW1lLmxlbmd0aCA9PT0gMCB8fCAhY29uZmlnLmF1dGgucGFzc3dvcmQgfHwgY29uZmlnLmF1dGgucGFzc3dvcmQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYEJhc2ljIGF1dGg6IHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgcmVxdWlyZWQgJHtjb25maWcuYXV0aH1gLCBjb25maWcpKTtcbiAgICAgIH1cblxuICAgICAgaGVhZGVycy5BdXRob3JpemF0aW9uID0gJ0Jhc2ljICcgKyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChgJHtjb25maWcuYXV0aC51c2VybmFtZX06JHtjb25maWcuYXV0aC5wYXNzd29yZH1gKSkpO1xuICAgICAgZGVidWcoJ1NldCByZXF1ZXN0IGF1dGhvcml6YXRpb24gdG8gJXMnLCBjb25maWcuYXV0aC51c2VybmFtZSArIGNvbmZpZy5hdXRoLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBsZXQgdXJsID0gY29uZmlnLnVybC50cmltKCk7XG5cbiAgICBpZiAoIS9eaHR0cChzKT86XFwvXFwvLy50ZXN0KHVybCkpIHtcbiAgICAgIHVybCA9IGBodHRwczovLyR7dXJsfWA7XG4gICAgfVxuXG4gICAgdXJsID0gY29tYmluZVVSTCh1cmwsIGNvbmZpZy5wYXJhbXMpO1xuXG4gICAgZGVidWcoJ1N0YXJ0aW5nIHJlcXVlc3QgdG8gJXMgd2l0aCBvcHRpb25zICVPJywgdXJsLCBjb25maWcpO1xuXG4gICAgcmVxdWVzdC5vcGVuKGNvbmZpZy5tZXRob2QudG9VcHBlckNhc2UoKSwgdXJsLCB0cnVlKTtcblxuICAgIHJlcXVlc3QudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEZzUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCBjYW5jZWxMaXN0ZW5lcjtcblxuICAgICAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgICAgICBjYW5jZWxMaXN0ZW5lciA9IGNvbmZpZy5jYW5jZWxUb2tlbi5vbmNlKCdjYW5jZWwnLCAocmVhc29uKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IGlmIHJlcXVlc3QgaXMgZG9uZSBjYW5jZWwgdG9rZW4gc2hvdWxkIG5vdCB0aHJvdyBhbnkgZXJyb3IgKi9cbiAgICAgICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICAgICAgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVidWcoJ1JlcXVlc3QgY2FuY2VsZWQgYnkgdXNlciAlcywgY29uZmlnOiAlTycsIHJlYXNvbiwgY29uZmlnKTtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgUmVxdWVzdCBhYm9ydGVkLiBSZWFzb246ICR7cmVhc29ufWAsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLkFCT1JURUQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXJlcXVlc3QgfHwgcmVxdWVzdC5yZWFkeVN0YXRlICE9PSA0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAwICYmICFyZXF1ZXN0LnJlc3BvbnNlVVJMKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gcGFyc2VIZWFkZXJzKHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO1xuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSByZXF1ZXN0LnJlc3BvbnNlO1xuXG4gICAgICAgIGxldCByZXNwb25zZTogRnNSZXNwb25zZSA9IHtcbiAgICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgICAgc3RhdHVzOiByZXF1ZXN0LnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiByZXF1ZXN0LnN0YXR1c1RleHQsXG4gICAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpO1xuXG4gICAgICAgIGlmICg1MDAgPD0gcmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyA8PSA1OTkpIHtcbiAgICAgICAgICAvLyBzZXJ2ZXIgZXJyb3IgdGhyb3dcbiAgICAgICAgICBkZWJ1ZygnU2VydmVyIGVycm9yKDV4eCkgLSAlTycsIHJlc3BvbnNlKTtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgU2VydmVyIGVycm9yICR7dXJsfWAsIGNvbmZpZywgcmVzcG9uc2UsIEZzUmVxdWVzdEVycm9yQ29kZS5TRVJWRVIpKTtcbiAgICAgICAgfSBlbHNlIGlmICg0MDAgPD0gcmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyA8PSA0OTkpIHtcbiAgICAgICAgICBkZWJ1ZygnUmVxdWVzdCBlcnJvcig0eHgpIC0gJU8nLCByZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYFJlcXVlc3QgZXJyb3IgJHt1cmx9YCwgY29uZmlnLCByZXNwb25zZSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlJFUVVFU1QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNsZWFyIGNhbmNlbCB0b2tlbiB0byBhdm9pZCBtZW1vcnkgbGVha1xuICAgICAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAgICAgY29uZmlnLmNhbmNlbFRva2VuLnJlbW92ZUxpc3RlbmVyKGNhbmNlbExpc3RlbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSBicm93c2VyIHJlcXVlc3QgY2FuY2VsbGF0aW9uIChhcyBvcHBvc2VkIHRvIGEgbWFudWFsIGNhbmNlbGxhdGlvbilcbiAgICAgIHJlcXVlc3Qub25hYm9ydCA9IGZ1bmN0aW9uIGhhbmRsZUFib3J0KCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDoganVzdCB0byBiZSBzdXJlIHRoYXQgYWJvcnQgd2FzIG5vdCBjYWxsZWQgdHdpY2UgKi9cbiAgICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLkFCT1JURUQpKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSBsb3cgbGV2ZWwgbmV0d29yayBlcnJvcnNcbiAgICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycikge1xuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgZGVidWcoJ1JlcXVlc3QgZXJyb3IhICVPJywgZXJyKTtcbiAgICAgICAgcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcignTmV0d29yayBFcnJvcicsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLk5FVFdPUkspKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSB0aW1lb3V0XG4gICAgICByZXF1ZXN0Lm9udGltZW91dCA9IGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoKSB7XG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICBkZWJ1ZygnUmVxdWVzdCB0aW1lZCBvdXQuICVPJywgY29uZmlnKTtcbiAgICAgICAgcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcignUmVxdWVzdCB0aW1lb3V0JywgY29uZmlnLCBudWxsLCBGc1JlcXVlc3RFcnJvckNvZGUuVElNRU9VVCkpO1xuICAgICAgfTtcblxuICAgICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcbiAgICAgIGlmICgnc2V0UmVxdWVzdEhlYWRlcicgaW4gcmVxdWVzdCAmJiBoZWFkZXJzICYmIE9iamVjdC5rZXlzKGhlYWRlcnMpLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaGVhZGVycykge1xuICAgICAgICAgIGlmIChoZWFkZXJzW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVidWcoJ1NldCByZXF1ZXN0IGhlYWRlciAlcyB0byAlcycsIGtleSwgaGVhZGVyc1trZXldKTtcbiAgICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoa2V5LCBoZWFkZXJzW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnLm9uUHJvZ3Jlc3MgPT09ICdmdW5jdGlvbicgJiYgW0ZzSHR0cE1ldGhvZC5QT1NULCBGc0h0dHBNZXRob2QuUFVUXS5pbmRleE9mKGNvbmZpZy5tZXRob2QpID4gLTEpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2U6IGVsc2UgcGF0aCBpcyBqdXN0IGZhbGxiYWNrIHRvIG5vcm1hbCBwcm9ncmVzcyBldmVudCAqL1xuICAgICAgICBpZiAocmVxdWVzdC51cGxvYWQpIHtcbiAgICAgICAgICBkZWJ1ZygnQmluZCB0byB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnQnKTtcbiAgICAgICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vblByb2dyZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWJ1ZygnQmluZCB0byBwcm9ncmVzcyBldmVudCcpO1xuICAgICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBjb25maWcub25Qcm9ncmVzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5zZW5kKGRhdGEpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9hZGFwdGVycy94aHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsK0JBQTBCO0FBQzFCLGdDQUFrQztBQUVsQyxrQ0FBc0U7QUFDdEUsa0NBQThEO0FBQzlELHdDQUE2RjtBQUU3RixJQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN0QyxJQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFFckM7SUFBQTtJQWdLQSxDQUFDO0lBOUpDLDRCQUFPLEdBQVAsVUFBUSxNQUF3QjtRQUFoQyxpQkE2SkM7UUE1SkMsa0RBQWtEO1FBQ2xELElBQUksT0FBTyxNQUFNLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFFRCxNQUFNLEdBQUcscUJBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWhDLElBQUEsa0JBQUksRUFBRSx3QkFBTyxDQUFZO1FBRS9CLGlFQUFpRTtRQUNqRSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBRW5DLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUMvQjtRQUVELDRCQUE0QjtRQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENB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QUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDaEgsK0VBQStFO2dCQUMvRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ2xCLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO29CQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUNoQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDekQ7YUFDRjtZQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNiO1lBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSCxpQkFBQztBQUFELENBaEtBLEFBZ0tDLElBQUE7QUFoS1ksZ0NBQVUiLCJmaWxlIjoibGliL3JlcXVlc3QvYWRhcHRlcnMveGhyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEFkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3RPcHRpb25zLCBGc1Jlc3BvbnNlLCBGc0h0dHBNZXRob2QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBGc1JlcXVlc3RFcnJvciwgRnNSZXF1ZXN0RXJyb3JDb2RlIH0gZnJvbSAnLi4vZXJyb3InO1xuaW1wb3J0IHsgcHJlcGFyZURhdGEsIHBhcnNlUmVzcG9uc2UsIHBhcnNlIGFzIHBhcnNlSGVhZGVycywgY29tYmluZVVSTCB9IGZyb20gJy4vLi4vaGVscGVycyc7XG5cbmNvbnN0IGRlYnVnID0gRGVidWcoJ2ZzOnJlcXVlc3Q6eGhyJyk7XG5jb25zdCBDQU5DRUxfQ0xFQVIgPSBgRnNDbGVhbk1lbW9yeWA7XG5cbmV4cG9ydCBjbGFzcyBYaHJBZGFwdGVyIGltcGxlbWVudHMgQWRhcHRlckludGVyZmFjZSB7XG5cbiAgcmVxdWVzdChjb25maWc6IEZzUmVxdWVzdE9wdGlvbnMpIHtcbiAgICAvLyBpZiB0aGlzIG9wdGlvbiBpcyB1bnNwZWNpZmllZCBzZXQgaXQgYnkgZGVmYXVsdFxuICAgIGlmICh0eXBlb2YgY29uZmlnLmZpbGVzdGFja0hlYWRlcnMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25maWcuZmlsZXN0YWNrSGVhZGVycyA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uZmlnID0gcHJlcGFyZURhdGEoY29uZmlnKTtcbiAgICBjb25maWcuaGVhZGVycyA9IGNvbmZpZy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgbGV0IHsgZGF0YSwgaGVhZGVycyB9ID0gY29uZmlnO1xuXG4gICAgLy8gaWYgZGF0YSBpcyB0eXBlIG9mIGZvcm0gbGV0IGJyb3dzZXIgdG8gc2V0IHByb3BlciBjb250ZW50IHR5cGVcbiAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSkge1xuICAgICAgZGVsZXRlIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIGxldCByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICBpZiAoY29uZmlnLmJsb2JSZXNwb25zZSkge1xuICAgICAgcmVxdWVzdC5yZXNwb25zZVR5cGUgPSAnYmxvYic7XG4gICAgfVxuXG4gICAgLy8gSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvblxuICAgIGlmIChjb25maWcuYXV0aCkge1xuICAgICAgaWYgKCFjb25maWcuYXV0aC51c2VybmFtZSB8fCBjb25maWcuYXV0aC51c2VybmFtZS5sZW5ndGggPT09IDAgfHwgIWNvbmZpZy5hdXRoLnBhc3N3b3JkIHx8IGNvbmZpZy5hdXRoLnBhc3N3b3JkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKGBCYXNpYyBhdXRoOiB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIHJlcXVpcmVkICR7Y29uZmlnLmF1dGh9YCwgY29uZmlnKSk7XG4gICAgICB9XG5cbiAgICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCYXNpYyAnICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoYCR7Y29uZmlnLmF1dGgudXNlcm5hbWV9OiR7Y29uZmlnLmF1dGgucGFzc3dvcmR9YCkpKTtcbiAgICAgIGRlYnVnKCdTZXQgcmVxdWVzdCBhdXRob3JpemF0aW9uIHRvICVzJywgY29uZmlnLmF1dGgudXNlcm5hbWUgKyBjb25maWcuYXV0aC5wYXNzd29yZCk7XG4gICAgfVxuXG4gICAgbGV0IHVybCA9IGNvbmZpZy51cmwudHJpbSgpO1xuXG4gICAgaWYgKCEvXmh0dHAocyk/OlxcL1xcLy8udGVzdCh1cmwpKSB7XG4gICAgICB1cmwgPSBgaHR0cHM6Ly8ke3VybH1gO1xuICAgIH1cblxuICAgIHVybCA9IGNvbWJpbmVVUkwodXJsLCBjb25maWcucGFyYW1zKTtcblxuICAgIGRlYnVnKCdTdGFydGluZyByZXF1ZXN0IHRvICVzIHdpdGggb3B0aW9ucyAlTycsIHVybCwgY29uZmlnKTtcblxuICAgIHJlcXVlc3Qub3Blbihjb25maWcubWV0aG9kLnRvVXBwZXJDYXNlKCksIHVybCwgdHJ1ZSk7XG5cbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBjb25maWcudGltZW91dDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxGc1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgY2FuY2VsTGlzdGVuZXI7XG5cbiAgICAgIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICAgICAgY2FuY2VsTGlzdGVuZXIgPSBjb25maWcuY2FuY2VsVG9rZW4ub25jZSgnY2FuY2VsJywgKHJlYXNvbikgPT4ge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiBpZiByZXF1ZXN0IGlzIGRvbmUgY2FuY2VsIHRva2VuIHNob3VsZCBub3QgdGhyb3cgYW55IGVycm9yICovXG4gICAgICAgICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcbiAgICAgICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlYnVnKCdSZXF1ZXN0IGNhbmNlbGVkIGJ5IHVzZXIgJXMsIGNvbmZpZzogJU8nLCByZWFzb24sIGNvbmZpZyk7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYFJlcXVlc3QgYWJvcnRlZC4gUmVhc29uOiAke3JlYXNvbn1gLCBjb25maWcsIG51bGwsIEZzUmVxdWVzdEVycm9yQ29kZS5BQk9SVEVEKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0IHx8IHJlcXVlc3QucmVhZHlTdGF0ZSAhPT0gNCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMCAmJiAhcmVxdWVzdC5yZXNwb25zZVVSTCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgdGhlIHJlc3BvbnNlXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IHBhcnNlSGVhZGVycyhyZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVxdWVzdC5yZXNwb25zZTtcblxuICAgICAgICBsZXQgcmVzcG9uc2U6IEZzUmVzcG9uc2UgPSB7XG4gICAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLFxuICAgICAgICAgIHN0YXR1czogcmVxdWVzdC5zdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogcmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKTtcblxuICAgICAgICBpZiAoNTAwIDw9IHJlc3BvbnNlLnN0YXR1cyAmJiByZXNwb25zZS5zdGF0dXMgPD0gNTk5KSB7XG4gICAgICAgICAgLy8gc2VydmVyIGVycm9yIHRocm93XG4gICAgICAgICAgZGVidWcoJ1NlcnZlciBlcnJvcig1eHgpIC0gJU8nLCByZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYFNlcnZlciBlcnJvciAke3VybH1gLCBjb25maWcsIHJlc3BvbnNlLCBGc1JlcXVlc3RFcnJvckNvZGUuU0VSVkVSKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoNDAwIDw9IHJlc3BvbnNlLnN0YXR1cyAmJiByZXNwb25zZS5zdGF0dXMgPD0gNDk5KSB7XG4gICAgICAgICAgZGVidWcoJ1JlcXVlc3QgZXJyb3IoNHh4KSAtICVPJywgcmVzcG9uc2UpO1xuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKGBSZXF1ZXN0IGVycm9yICR7dXJsfWAsIGNvbmZpZywgcmVzcG9uc2UsIEZzUmVxdWVzdEVycm9yQ29kZS5SRVFVRVNUKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGVhciBjYW5jZWwgdG9rZW4gdG8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgICAgICAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgICAgICAgIGNvbmZpZy5jYW5jZWxUb2tlbi5yZW1vdmVMaXN0ZW5lcihjYW5jZWxMaXN0ZW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBIYW5kbGUgYnJvd3NlciByZXF1ZXN0IGNhbmNlbGxhdGlvbiAoYXMgb3Bwb3NlZCB0byBhIG1hbnVhbCBjYW5jZWxsYXRpb24pXG4gICAgICByZXF1ZXN0Lm9uYWJvcnQgPSBmdW5jdGlvbiBoYW5kbGVBYm9ydCgpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IGp1c3QgdG8gYmUgc3VyZSB0aGF0IGFib3J0IHdhcyBub3QgY2FsbGVkIHR3aWNlICovXG4gICAgICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKCdSZXF1ZXN0IGFib3J0ZWQnLCBjb25maWcsIG51bGwsIEZzUmVxdWVzdEVycm9yQ29kZS5BQk9SVEVEKSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBIYW5kbGUgbG93IGxldmVsIG5ldHdvcmsgZXJyb3JzXG4gICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiBoYW5kbGVFcnJvcihlcnIpIHtcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgIGRlYnVnKCdSZXF1ZXN0IGVycm9yISAlTycsIGVycik7XG4gICAgICAgIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoJ05ldHdvcmsgRXJyb3InLCBjb25maWcsIG51bGwsIEZzUmVxdWVzdEVycm9yQ29kZS5ORVRXT1JLKSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBIYW5kbGUgdGltZW91dFxuICAgICAgcmVxdWVzdC5vbnRpbWVvdXQgPSBmdW5jdGlvbiBoYW5kbGVUaW1lb3V0KCkge1xuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgZGVidWcoJ1JlcXVlc3QgdGltZWQgb3V0LiAlTycsIGNvbmZpZyk7XG4gICAgICAgIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoJ1JlcXVlc3QgdGltZW91dCcsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLlRJTUVPVVQpKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEFkZCBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0XG4gICAgICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHJlcXVlc3QgJiYgaGVhZGVycyAmJiBPYmplY3Qua2V5cyhoZWFkZXJzKS5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGhlYWRlcnMpIHtcbiAgICAgICAgICBpZiAoaGVhZGVyc1trZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlYnVnKCdTZXQgcmVxdWVzdCBoZWFkZXIgJXMgdG8gJXMnLCBrZXksIGhlYWRlcnNba2V5XSk7XG4gICAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgaGVhZGVyc1trZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGNvbmZpZy5vblByb2dyZXNzID09PSAnZnVuY3Rpb24nICYmIFtGc0h0dHBNZXRob2QuUE9TVCwgRnNIdHRwTWV0aG9kLlBVVF0uaW5kZXhPZihjb25maWcubWV0aG9kKSA+IC0xKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBlbHNlIHBhdGggaXMganVzdCBmYWxsYmFjayB0byBub3JtYWwgcHJvZ3Jlc3MgZXZlbnQgKi9cbiAgICAgICAgaWYgKHJlcXVlc3QudXBsb2FkKSB7XG4gICAgICAgICAgZGVidWcoJ0JpbmQgdG8gdXBsb2FkIHByb2dyZXNzIGV2ZW50Jyk7XG4gICAgICAgICAgcmVxdWVzdC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBjb25maWcub25Qcm9ncmVzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVidWcoJ0JpbmQgdG8gcHJvZ3Jlc3MgZXZlbnQnKTtcbiAgICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgY29uZmlnLm9uUHJvZ3Jlc3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3Quc2VuZChkYXRhKTtcbiAgICB9KTtcbiAgfVxufVxuIl19

@@ -45,2 +45,3 @@ import { FsCancelToken } from './token';

headers?: FsRequestHeaders;
blobResponse?: boolean;
timeout?: number;

@@ -47,0 +48,0 @@ cancelToken?: FsCancelToken;

@@ -15,2 +15,2 @@ "use strict";

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxJQUFZLFlBU1g7QUFURCxXQUFZLFlBQVk7SUFDdEIsMkJBQVcsQ0FBQTtJQUNYLGlDQUFpQixDQUFBO0lBQ2pCLDZCQUFhLENBQUE7SUFDYiwrQkFBZSxDQUFBO0lBQ2YsbUNBQW1CLENBQUE7SUFDbkIsNkJBQWEsQ0FBQTtJQUNiLDJCQUFXLENBQUE7SUFDWCw2QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQVRXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBU3ZCIiwiZmlsZSI6ImxpYi9yZXF1ZXN0L3R5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgRnNDYW5jZWxUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5leHBvcnQgZW51bSBGc0h0dHBNZXRob2Qge1xuICBHRVQgPSAnR0VUJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIEhFQUQgPSAnSEVBRCcsXG4gIFBVUkdFID0gJ1BVUkdFJyxcbiAgT1BUSU9OUyA9ICdPUFRJT05TJyxcbiAgUE9TVCA9ICdQT1NUJyxcbiAgUFVUID0gJ1BVVCcsXG4gIFBBVEggPSAnUEFUSCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXRyeUNvbmZpZyB7XG4gIHJldHJ5OiBudW1iZXI7XG4gIG9uUmV0cnk/OiAocmVxdWVzdENvbmZpZzogYW55KSA9PiB2b2lkO1xuICByZXRyeU1heFRpbWU/OiBudW1iZXI7XG4gIHJldHJ5RmFjdG9yPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzQXV0aENvbmZpZyB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0SGVhZGVycyB7XG4gIFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0UGFyYW1zIHtcbiAgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHJ1bnRpbWUgZGF0YSBsaWtlIHJldHJ5Q291bnQgZXRjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0UnVudGltZSB7XG4gIHJldHJ5Q291bnQ/OiBudW1iZXI7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0T3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgbWV0aG9kPzogRnNIdHRwTWV0aG9kO1xuICBtb2RlPzogUmVxdWVzdE1vZGU7XG4gIGNhY2hlPzogUmVxdWVzdENhY2hlO1xuICByZWRpcmVjdD86IFJlcXVlc3RSZWRpcmVjdDtcbiAgcGFyYW1zPzogRnNSZXF1ZXN0UGFyYW1zO1xuICBmaWxlc3RhY2tIZWFkZXJzPzogYm9vbGVhbjtcbiAgaGVhZGVycz86IEZzUmVxdWVzdEhlYWRlcnM7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIGNhbmNlbFRva2VuPzogRnNDYW5jZWxUb2tlbjtcbiAgcmV0cnk/OiBGc1JldHJ5Q29uZmlnO1xuICBvblByb2dyZXNzPzogKHByOiBQcm9ncmVzc0V2ZW50KSA9PiBhbnk7XG4gIGF1dGg/OiBGc0F1dGhDb25maWc7XG4gIHJ1bnRpbWU/OiBGc1JlcXVlc3RSdW50aW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzUmVzcG9uc2Uge1xuICBzdGF0dXM6IG51bWJlcjtcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICBoZWFkZXJzOiBhbnk7XG4gIGRhdGE6IGFueTtcbiAgY29uZmlnOiBGc1JlcXVlc3RPcHRpb25zO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxJQUFZLFlBU1g7QUFURCxXQUFZLFlBQVk7SUFDdEIsMkJBQVcsQ0FBQTtJQUNYLGlDQUFpQixDQUFBO0lBQ2pCLDZCQUFhLENBQUE7SUFDYiwrQkFBZSxDQUFBO0lBQ2YsbUNBQW1CLENBQUE7SUFDbkIsNkJBQWEsQ0FBQTtJQUNiLDJCQUFXLENBQUE7SUFDWCw2QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQVRXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBU3ZCIiwiZmlsZSI6ImxpYi9yZXF1ZXN0L3R5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgRnNDYW5jZWxUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG5leHBvcnQgZW51bSBGc0h0dHBNZXRob2Qge1xuICBHRVQgPSAnR0VUJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIEhFQUQgPSAnSEVBRCcsXG4gIFBVUkdFID0gJ1BVUkdFJyxcbiAgT1BUSU9OUyA9ICdPUFRJT05TJyxcbiAgUE9TVCA9ICdQT1NUJyxcbiAgUFVUID0gJ1BVVCcsXG4gIFBBVEggPSAnUEFUSCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXRyeUNvbmZpZyB7XG4gIHJldHJ5OiBudW1iZXI7XG4gIG9uUmV0cnk/OiAocmVxdWVzdENvbmZpZzogYW55KSA9PiB2b2lkO1xuICByZXRyeU1heFRpbWU/OiBudW1iZXI7XG4gIHJldHJ5RmFjdG9yPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzQXV0aENvbmZpZyB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0SGVhZGVycyB7XG4gIFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0UGFyYW1zIHtcbiAgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHJ1bnRpbWUgZGF0YSBsaWtlIHJldHJ5Q291bnQgZXRjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0UnVudGltZSB7XG4gIHJldHJ5Q291bnQ/OiBudW1iZXI7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXF1ZXN0T3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgbWV0aG9kPzogRnNIdHRwTWV0aG9kO1xuICBtb2RlPzogUmVxdWVzdE1vZGU7XG4gIGNhY2hlPzogUmVxdWVzdENhY2hlO1xuICByZWRpcmVjdD86IFJlcXVlc3RSZWRpcmVjdDtcbiAgcGFyYW1zPzogRnNSZXF1ZXN0UGFyYW1zO1xuICBmaWxlc3RhY2tIZWFkZXJzPzogYm9vbGVhbjtcbiAgaGVhZGVycz86IEZzUmVxdWVzdEhlYWRlcnM7XG4gIGJsb2JSZXNwb25zZT86IGJvb2xlYW47IC8vIGJsb2IgcmVzcG9uc2Ugb25seSBmb3IgYnJvd3NlcnNcbiAgdGltZW91dD86IG51bWJlcjtcbiAgY2FuY2VsVG9rZW4/OiBGc0NhbmNlbFRva2VuO1xuICByZXRyeT86IEZzUmV0cnlDb25maWc7XG4gIG9uUHJvZ3Jlc3M/OiAocHI6IFByb2dyZXNzRXZlbnQpID0+IGFueTtcbiAgYXV0aD86IEZzQXV0aENvbmZpZztcbiAgcnVudGltZT86IEZzUmVxdWVzdFJ1bnRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXNwb25zZSB7XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIGhlYWRlcnM6IGFueTtcbiAgZGF0YTogYW55O1xuICBjb25maWc6IEZzUmVxdWVzdE9wdGlvbnM7XG59XG4iXX0=

@@ -48,3 +48,3 @@ "use strict";

exports.getVersion = function () {
return 'JS-3.21.1';
return 'JS-3.22.0';
};

@@ -51,0 +51,0 @@ /**

@@ -47,3 +47,3 @@ "use strict";

exports.getVersion = function () {
return 'JS-3.21.1';
return 'JS-3.22.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.21.1");
expect(utils.getVersion()).toEqual("JS-3.22.0");
});

@@ -26,0 +26,0 @@ });

@@ -200,2 +200,5 @@ export declare const PickerParamsSchema: {

};
onFileCropped: {
format: string;
};
storeTo: {

@@ -274,2 +277,12 @@ additionalProperties: boolean;

};
cropFiles: {
type: string;
minItems: number;
};
loadCss: {
type: string;
};
failOverMaxFiles: {
type: string;
};
dropPane: {

@@ -280,2 +293,3 @@ type: string;

type: string;
minItems: number;
};

@@ -282,0 +296,0 @@ customText: {

@@ -256,2 +256,5 @@ "use strict";

},
onFileCropped: {
format: 'callback',
},
storeTo: {

@@ -329,2 +332,12 @@ additionalProperties: false,

},
cropFiles: {
type: 'array',
minItems: 1,
},
loadCss: {
type: 'string',
},
failOverMaxFiles: {
type: 'boolean',
},
dropPane: {

@@ -334,3 +347,4 @@ type: 'object',

cropFiles: {
type: 'boolean',
type: 'array',
minItems: 1,
},

@@ -411,2 +425,2 @@ customText: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILGlEQUFxRDtBQUV4QyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSx5Q0FBeUM7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztJQUMzQiwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsT0FBTztvQkFDYixRQUFRLEVBQUUsQ0FBQztvQkFDWCxLQUFLLEVBQUU7d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDMUIsb0JBQW9CLEVBQUUsS0FBSztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQjt3QkFDbkIsS0FBSzt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxLQUFLO3dCQUNMLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFVBQVU7d0JBQ1YscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3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RSxVQUFVO2lCQUNuQjthQUNGO1NBQ0Y7UUFDRCxhQUFhLEVBQUU7WUFDYixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxjQUFjLEVBQUU7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLGlCQUFpQixFQUFFO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0osb0JBQW9CLEVBQUUsS0FBSztvQkFDM0IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztvQkFDM0IsVUFBVSxFQUFFO3dCQUNWLEdBQUcsRUFBRTs0QkFDSCxJQUFJLEVBQUUsUUFBUTt5QkFDZjt3QkFDRCxNQUFNLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsWUFBWSxFQUFFO1lBQ1osSUFBSSxFQUFFLFFBQVE7WUFDZCxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLFVBQVUsRUFBRSxrQ0FBa0IsQ0FBQyxVQUFVO1NBQzFDO1FBQ0Qsb0JBQW9CLEVBQUU7WUFDcEIsSUFBSSxFQUFFLFNBQVM7U0FDaEI7S0FDRjtDQUNGLENBQUMiLCJmaWxlIjoic2NoZW1hL3BpY2tlci5zY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgVXBsb2FkUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi91cGxvYWQuc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IFBpY2tlclBhcmFtc1NjaGVtYSA9IHtcbiAgJHNjaGVtYTogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIycsXG4gIHRpdGxlOiAnRmlsZXN0YWNrIFBpY2tlcicsXG4gIGRlc2NyaXB0aW9uOiAnRmlsZXN0YWNrIFBpY2tlciBPcHRpb25zJyxcbiAgdHlwZTogJ29iamVjdCcsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgLy8gcmVxdWlyZWQ6IFsnY29udGFpbmVyJ10sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhbGxvd01hbnVhbFJldHJ5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBhY2NlcHQ6IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIG9uZU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgZnJvbVNvdXJjZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogWydzdHJpbmcnLCAnb2JqZWN0J10sXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIGVudW06IFtcbiAgICAgICAgICAgICdsb2NhbF9maWxlX3N5c3RlbScsXG4gICAgICAgICAgICAndXJsJyxcbiAgICAgICAgICAgICdpbWFnZXNlYXJjaCcsXG4gICAgICAgICAgICAnZmFjZWJvb2snLFxuICAgICAgICAgICAgJ2luc3RhZ3JhbScsXG4gICAgICAgICAgICAnZ29vZ2xlZHJpdmUnLFxuICAgICAgICAgICAgJ3Vuc3BsYXNoJyxcbiAgICAgICAgICAgICdkcm9wYm94JyxcbiAgICAgICAgICAgICd3ZWJjYW0nLFxuICAgICAgICAgICAgJ3ZpZGVvJyxcbiAgICAgICAgICAgICdhdWRpbycsXG4gICAgICAgICAgICAnYm94JyxcbiAgICAgICAgICAgICdnaXRodWInLFxuICAgICAgICAgICAgJ2dtYWlsJyxcbiAgICAgICAgICAgICdwaWNhc2EnLFxuICAgICAgICAgICAgJ29uZWRyaXZlJyxcbiAgICAgICAgICAgICdvbmVkcml2ZWZvcmJ1c2luZXNzJyxcbiAgICAgICAgICAgICdjbG91ZGRyaXZlJyxcbiAgICAgICAgICAgICdnb29nbGVwaG90b3MnLFxuICAgICAgICAgICAgJ2N1c3RvbXNvdXJjZScsXG4gICAgICAgICAgICAndGludCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB0YWdzOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRhaW5lcjoge1xuICAgICAgZm9ybWF0OiAnSFRNTENvbnRhaW5lcicsXG4gICAgfSxcbiAgICBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGtlZXBPcmllbnRhdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2VlcElDQ2FuZEFQUDoge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgZGlzcGxheU1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydpbmxpbmUnLCAnb3ZlcmxheScsICdkcm9wUGFuZSddLFxuICAgIH0sXG4gICAgY29uY3VycmVuY3k6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAyMCxcbiAgICB9LFxuICAgIHN1cHBvcnRFbWFpbDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VDb250YWluZXI6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlUGF0aDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VOYW1lOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGRpc2FibGVTdG9yYWdlS2V5OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVHJhbnNmb3JtZXI6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRpc2FibGVUaHVtYm5haWxzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBleHBvc2VPcmlnaW5hbEZpbGU6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGdsb2JhbERyb3Bab25lOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBoaWRlTW9kYWxXaGVuVXBsb2FkaW5nOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBpbWFnZURpbToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNYXg6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWluOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbk1heEJsb2NrOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIGxhbmc6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydjYScsICdkYScsICdkZScsICdlbicsICdlcycsICdmcicsICdoZScsICdpdCcsICdqYScsICdrbycsICdubCcsICdubycsICdwbCcsICdwdCcsICdzdicsICdydScsICd2aScsICd6aCcsICd0cicsICdhciddLFxuICAgIH0sXG4gICAgbWluRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4RmlsZXM6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgIH0sXG4gICAgbWF4U2l6ZToge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICB9LFxuICAgIG1vZGFsU2l6ZToge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICByb290SWQ6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgc3RhcnRVcGxvYWRpbmdXaGVuTWF4RmlsZXNSZWFjaGVkOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB1cGxvYWRJbkJhY2tncm91bmQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIHZpZGVvUmVzb2x1dGlvbjoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBvbkNhbmNlbDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25DbG9zZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25PcGVuOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVTZWxlY3RlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkU3RhcnRlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkRmluaXNoZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZEZhaWxlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkUHJvZ3Jlc3M6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uVXBsb2FkU3RhcnRlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25VcGxvYWREb25lOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBzdG9yZVRvOiB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZmlsZW5hbWU6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgICAkcmVmOiAnbG9jYXRpb25zRGVmJyxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbmVyOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGg6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaW9uOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFjY2Vzczoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGVudW06IFsncHVibGljJywgJ3ByaXZhdGUnXSxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dzOiB7XG4gICAgICAgICAgJHJlZjogJ3dvcmtmbG93c0RlZicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdmlld1R5cGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZW51bTogWydncmlkJywgJ2xpc3QnXSxcbiAgICB9LFxuICAgIHRyYW5zZm9ybWF0aW9uczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNpcmNsZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgcm90YXRlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBmb3JjZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JvcDoge1xuICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBmb3JjZToge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXNwZWN0UmF0aW86IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3VzdG9tVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZHJvcFBhbmU6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjcm9wRmlsZXM6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZUNsaWNrOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvdmVybGF5OiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBzaG93SWNvbjoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd1Byb2dyZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdFbnRlcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25Qcm9ncmVzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnTGVhdmU6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ092ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJvcDoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWNjZXNzOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVycm9yc1RpbWVvdXQ6IHtcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgbWluaW11bTogMCxcbiAgICB9LFxuICAgIGN1c3RvbUF1dGhUZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndG9wJywgJ2JvdHRvbSddLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHRvcDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib3R0b206IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdXBsb2FkQ29uZmlnOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IFVwbG9hZFBhcmFtc1NjaGVtYS5wcm9wZXJ0aWVzLC8vIG1hbnVhbCBpbXBvcnQgdXBsb2FkIGRlZmluaXRpb25zXG4gICAgfSxcbiAgICB1c2VTZW50cnlCcmVhZGNydW1iczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILGlEQUFxRDtBQUV4QyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSx5Q0FBeUM7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztJQUMzQiwyQkFBMkI7SUFDM0IsVUFBVSxFQUFFO1FBQ1YsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsT0FBTztvQkFDYixRQUFRLEVBQUUsQ0FBQztvQkFDWCxLQUFLLEVBQUU7d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDMUIsb0JBQW9CLEVBQUUsS0FBSztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQjt3QkFDbkIsS0FBSzt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxLQUFLO3dCQUNMLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFVBQVU7d0JBQ1YscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3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QkFDRCxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2dCQUNELE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsVUFBVTtpQkFDbkI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRSxVQUFVO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7YUFDRjtTQUNGO1FBQ0QsYUFBYSxFQUFFO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxpQkFBaUIsRUFBRTtnQkFDakIsSUFBSSxFQUFFO29CQUNKLG9CQUFvQixFQUFFLEtBQUs7b0JBQzNCLElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7b0JBQzNCLFVBQVUsRUFBRTt3QkFDVixHQUFHLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7d0JBQ0QsTUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxRQUFRO1lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixVQUFVLEVBQUUsa0NBQWtCLENBQUMsVUFBVTtTQUMxQztRQUNELG9CQUFvQixFQUFFO1lBQ3BCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDIiwiZmlsZSI6InNjaGVtYS9waWNrZXIuc2NoZW1hLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFVwbG9hZFBhcmFtc1NjaGVtYSB9IGZyb20gJy4vdXBsb2FkLnNjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBQaWNrZXJQYXJhbXNTY2hlbWEgPSB7XG4gICRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMnLFxuICB0aXRsZTogJ0ZpbGVzdGFjayBQaWNrZXInLFxuICBkZXNjcmlwdGlvbjogJ0ZpbGVzdGFjayBQaWNrZXIgT3B0aW9ucycsXG4gIHR5cGU6ICdvYmplY3QnLFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIC8vIHJlcXVpcmVkOiBbJ2NvbnRhaW5lciddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYWxsb3dNYW51YWxSZXRyeToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgYWNjZXB0OiB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGZyb21Tb3VyY2VzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFsnc3RyaW5nJywgJ29iamVjdCddLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBlbnVtOiBbXG4gICAgICAgICAgICAnbG9jYWxfZmlsZV9zeXN0ZW0nLFxuICAgICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgICAnaW1hZ2VzZWFyY2gnLFxuICAgICAgICAgICAgJ2ZhY2Vib29rJyxcbiAgICAgICAgICAgICdpbnN0YWdyYW0nLFxuICAgICAgICAgICAgJ2dvb2dsZWRyaXZlJyxcbiAgICAgICAgICAgICd1bnNwbGFzaCcsXG4gICAgICAgICAgICAnZHJvcGJveCcsXG4gICAgICAgICAgICAnd2ViY2FtJyxcbiAgICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgICAnYXVkaW8nLFxuICAgICAgICAgICAgJ2JveCcsXG4gICAgICAgICAgICAnZ2l0aHViJyxcbiAgICAgICAgICAgICdnbWFpbCcsXG4gICAgICAgICAgICAncGljYXNhJyxcbiAgICAgICAgICAgICdvbmVkcml2ZScsXG4gICAgICAgICAgICAnb25lZHJpdmVmb3JidXNpbmVzcycsXG4gICAgICAgICAgICAnY2xvdWRkcml2ZScsXG4gICAgICAgICAgICAnZ29vZ2xlcGhvdG9zJyxcbiAgICAgICAgICAgICdjdXN0b21zb3VyY2UnLFxuICAgICAgICAgICAgJ3RpbnQnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgdGFnczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250YWluZXI6IHtcbiAgICAgIGZvcm1hdDogJ0hUTUxDb250YWluZXInLFxuICAgIH0sXG4gICAgY2xlYW51cEltYWdlRXhpZjoge1xuICAgICAgb25lT2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBrZWVwT3JpZW50YXRpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtlZXBJQ0NhbmRBUFA6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGRpc3BsYXlNb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnaW5saW5lJywgJ292ZXJsYXknLCAnZHJvcFBhbmUnXSxcbiAgICB9LFxuICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMjAsXG4gICAgfSxcbiAgICBzdXBwb3J0RW1haWw6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlQ29udGFpbmVyOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZVBhdGg6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlTmFtZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBkaXNhYmxlU3RvcmFnZUtleToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZGlzYWJsZVRyYW5zZm9ybWVyOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVGh1bWJuYWlsczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZXhwb3NlT3JpZ2luYWxGaWxlOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBnbG9iYWxEcm9wWm9uZToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaGlkZU1vZGFsV2hlblVwbG9hZGluZzoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaW1hZ2VEaW06IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWF4OiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbjoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNaW5NYXhCbG9jazoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5nOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnY2EnLCAnZGEnLCAnZGUnLCAnZW4nLCAnZXMnLCAnZnInLCAnaGUnLCAnaXQnLCAnamEnLCAna28nLCAnbmwnLCAnbm8nLCAncGwnLCAncHQnLCAnc3YnLCAncnUnLCAndmknLCAnemgnLCAndHInLCAnYXInXSxcbiAgICB9LFxuICAgIG1pbkZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heEZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heFNpemU6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgfSxcbiAgICBtb2RhbFNpemU6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcm9vdElkOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdXBsb2FkSW5CYWNrZ3JvdW5kOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB2aWRlb1Jlc29sdXRpb246IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgb25DYW5jZWw6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uQ2xvc2U6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uT3Blbjoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlU2VsZWN0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZEZpbmlzaGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGYWlsZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFByb2dyZXNzOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uVXBsb2FkRG9uZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlQ3JvcHBlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgc3RvcmVUbzoge1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZpbGVuYW1lOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgJHJlZjogJ2xvY2F0aW9uc0RlZicsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5lcjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBwYXRoOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhY2Nlc3M6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBlbnVtOiBbJ3B1YmxpYycsICdwcml2YXRlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHdvcmtmbG93czoge1xuICAgICAgICAgICRyZWY6ICd3b3JrZmxvd3NEZWYnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpZXdUeXBlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnZ3JpZCcsICdsaXN0J10sXG4gICAgfSxcbiAgICB0cmFuc2Zvcm1hdGlvbnM6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjaXJjbGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHJvdGF0ZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGNyb3A6IHtcbiAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgJy4qJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNyb3BGaWxlczoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAxLFxuICAgIH0sXG4gICAgbG9hZENzczoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBmYWlsT3Zlck1heEZpbGVzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkcm9wUGFuZToge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNyb3BGaWxlczoge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZUNsaWNrOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvdmVybGF5OiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBzaG93SWNvbjoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd1Byb2dyZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdFbnRlcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25Qcm9ncmVzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnTGVhdmU6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ092ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJvcDoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWNjZXNzOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVycm9yc1RpbWVvdXQ6IHtcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgbWluaW11bTogMCxcbiAgICB9LFxuICAgIGN1c3RvbUF1dGhUZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHtcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndG9wJywgJ2JvdHRvbSddLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHRvcDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib3R0b206IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdXBsb2FkQ29uZmlnOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IFVwbG9hZFBhcmFtc1NjaGVtYS5wcm9wZXJ0aWVzLC8vIG1hbnVhbCBpbXBvcnQgdXBsb2FkIGRlZmluaXRpb25zXG4gICAgfSxcbiAgICB1c2VTZW50cnlCcmVhZGNydW1iczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19

@@ -20,3 +20,3 @@ /*

*/
var PICKER_VERSION = '1.20.1';
var PICKER_VERSION = '1.21.0';
export var config = {

@@ -33,2 +33,2 @@ urls: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4yMC4xJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4yMS4wJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ==

@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security';

*/
export declare const version = "3.21.1";
export declare const version = "3.22.0";
export * from './lib/api/transform';

@@ -29,0 +29,0 @@ export * from './lib/filelink';

@@ -39,4 +39,4 @@ /*

*/
export var version = '3.21.1';
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.21.1' });
export var version = '3.22.0';
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.22.0' });
export * from './lib/api/transform';

@@ -43,0 +43,0 @@ export * from './lib/filelink';

import { Security, Session } from '../client';
import { FsResponse } from './../request/types';
/**

@@ -42,2 +43,9 @@ * Remove given file

export declare const metadata: (session: Session, handle?: string, opts?: MetadataOptions, security?: Security) => Promise<any>;
/**
* Download file to blob or buffer format
*
* @param session
* @param handle
*/
export declare const download: (session: Session, handle: string, security?: Security) => Promise<FsResponse>;
export interface RetrieveOptions {

@@ -54,2 +62,3 @@ metadata?: boolean;

* @private
* @deprecated
* @param session

@@ -56,0 +65,0 @@ * @param handle

@@ -18,2 +18,3 @@ /*

import { __assign } from "tslib";
import { Filelink } from './../filelink';
import { removeEmpty } from '../utils';

@@ -76,3 +77,3 @@ import { FilestackError } from './../../filestack_error';

return new Promise(function (resolve, reject) {
FsRequest.get(baseURL, { params: removeEmpty(options), filestackHeaders: false, })
FsRequest.get(baseURL, { params: removeEmpty(options), filestackHeaders: false })
.then(function (res) { return resolve(__assign(__assign({}, res.data), { handle: handle })); })

@@ -83,5 +84,21 @@ .catch(reject);

/**
* Download file to blob or buffer format
*
* @param session
* @param handle
*/
export var download = function (session, handle, security) {
var fl = new Filelink(handle, session.apikey);
var policy = (security && security.policy) || session.policy;
var signature = (security && security.signature) || session.signature;
if (policy && signature) {
fl.security({ signature: signature, policy: policy });
}
return FsRequest.dispatch(fl.toString(), { method: FsHttpMethod.GET, blobResponse: true });
};
/**
* Returns file information
*
* @private
* @deprecated
* @param session

@@ -97,2 +114,3 @@ * @param handle

}
console.info('Retrieve method is deprecated and it will be removed. Please use metadata or download');
var validateRes = getValidator(RetrieveParamsSchema)(options);

@@ -136,2 +154,2 @@ if (validateRes.errors.length) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUdILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsV0FBcUIsRUFBRSxRQUFtQjtJQUNsRyxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUN6QyxNQUFNLElBQUksY0FBYyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDN0U7SUFFRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ3JHLE1BQU0sSUFBSSxjQUFjLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUNuRjtJQUVELElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLElBQU0sT0FBTyxHQUFNLFVBQVUsU0FBSSxNQUFRLENBQUM7SUFDMUMsSUFBTSxPQUFPLEdBQVE7UUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ25CLE1BQU0sRUFBRSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU07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U0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsTUFBTSxRQUFBO1lBQ04sZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixNQUFNLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQztTQUNwQyxDQUFDO2FBQ0MsSUFBSSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsT0FBTyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQTlELENBQThELENBQUM7YUFDM0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvZmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFNlY3VyaXR5LCBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IHJlbW92ZUVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIE1ldGFkYXRhUGFyYW1zU2NoZW1hLCBSZXRyaWV2ZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IEZzUmVxdWVzdCwgRnNIdHRwTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbi8qKlxuICogUmVtb3ZlIGdpdmVuIGZpbGVcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSBoYW5kbGVcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlID0gKHNlc3Npb246IFNlc3Npb24sIGhhbmRsZT86IHN0cmluZywgc2tpcFN0b3JhZ2U/OiBib29sZWFuLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgcmVtb3ZlJyk7XG4gIH1cblxuICBpZiAoIShzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkgJiYgKCFzZWN1cml0eSB8fCAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignU2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciByZW1vdmUnKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVBcGlVcmwgPSBzZXNzaW9uLnVybHMuZmlsZUFwaVVybDtcbiAgY29uc3QgYmFzZVVSTCA9IGAke2ZpbGVBcGlVcmx9LyR7aGFuZGxlfWA7XG4gIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICBrZXk6IHNlc3Npb24uYXBpa2V5LFxuICAgIHBvbGljeTogKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSkgfHwgc2Vzc2lvbi5wb2xpY3ksXG4gICAgc2lnbmF0dXJlOiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgfTtcblxuICBpZiAoc2tpcFN0b3JhZ2UpIHtcbiAgICBvcHRpb25zLnNraXBfc3RvcmFnZSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LmRlbGV0ZShiYXNlVVJMLCB7XG4gICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgcGFyYW1zOiByZW1vdmVFbXB0eShvcHRpb25zKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4gIHNpemU/OiBib29sZWFuO1xuICBtaW1ldHlwZT86IGJvb2xlYW47XG4gIGZpbGVuYW1lPzogYm9vbGVhbjtcbiAgd2lkdGg/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBib29sZWFuO1xuICB1cGxvYWRlZD86IGJvb2xlYW47XG4gIHdyaXRlYWJsZT86IGJvb2xlYW47XG4gIGNsb3VkPzogYm9vbGVhbjtcbiAgc291cmNlVXJsPzogYm9vbGVhbjtcbiAgbWQ1PzogYm9vbGVhbjtcbiAgc2hhMT86IGJvb2xlYW47XG4gIHNoYTIyND86IGJvb2xlYW47XG4gIHNoYTI1Nj86IGJvb2xlYW47XG4gIHNoYTM4ND86IGJvb2xlYW47XG4gIHNoYTUxMj86IGJvb2xlYW47XG4gIGxvY2F0aW9uPzogYm9vbGVhbjtcbiAgcGF0aD86IGJvb2xlYW47XG4gIGNvbnRhaW5lcj86IGJvb2xlYW47XG4gIGV4aWY/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBtZXRhZGF0YVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdHNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlPzogc3RyaW5nLCBvcHRzPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCFoYW5kbGUgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0EgdmFsaWQgRmlsZXN0YWNrIGhhbmRsZSBpcyByZXF1aXJlZCBmb3IgbWV0YWRhdGEnKTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKE1ldGFkYXRhUGFyYW1zU2NoZW1hKShvcHRzKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBtZXRhZGF0YSBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMpO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogYW55ID0geyAuLi5vcHRzIH07XG4gIG9wdGlvbnMuc291cmNlX3VybCA9IG9wdGlvbnMuc291cmNlVXJsOyAvLyBzb3VyY2VfdXJsIGlzIHNuYWtlX2Nhc2VcbiAgb3B0aW9ucy5wb2xpY3kgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgb3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfS9tZXRhZGF0YWA7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgRnNSZXF1ZXN0LmdldChiYXNlVVJMLCB7IHBhcmFtczogcmVtb3ZlRW1wdHkob3B0aW9ucyksIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLCB9KVxuICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUoeyAuLi5yZXMuZGF0YSwgaGFuZGxlIH0pKVxuICAgICAgLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZU9wdGlvbnMge1xuICBtZXRhZGF0YT86IGJvb2xlYW47XG4gIGhlYWQ/OiBib29sZWFuO1xuICBkbD86IGJvb2xlYW47XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbiAgY2FjaGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmlsZSBpbmZvcm1hdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmV0cmlldmUgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM6IFJldHJpZXZlT3B0aW9ucyA9IHt9LCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiA9PiB7XG4gIGlmICghaGFuZGxlIHx8IGhhbmRsZS5sZW5ndGggPT09IDAgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0ZpbGUgaGFuZGxlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihSZXRyaWV2ZVBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgcmV0cmlldmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBhbnkgPSB7IC4uLm9wdGlvbnMgfTtcbiAgcmVxdWVzdE9wdGlvbnMua2V5ID0gc2Vzc2lvbi5hcGlrZXk7XG4gIHJlcXVlc3RPcHRpb25zLnBvbGljeSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kpIHx8IHNlc3Npb24ucG9saWN5O1xuICByZXF1ZXN0T3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBsZXQgbWV0aG9kOiBGc0h0dHBNZXRob2QgPSBGc0h0dHBNZXRob2QuR0VUO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5oZWFkKSB7XG4gICAgbWV0aG9kID0gRnNIdHRwTWV0aG9kLkhFQUQ7XG4gICAgZGVsZXRlIHJlcXVlc3RPcHRpb25zLmhlYWQ7XG4gIH1cblxuICBsZXQgZXh0ZW5zaW9uO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5leHRlbnNpb24gJiYgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uLmxlbmd0aCkge1xuICAgIGV4dGVuc2lvbiA9IHJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbjtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uO1xuICB9XG5cbiAgbGV0IG1ldGFkYXRhO1xuICBpZiAocmVxdWVzdE9wdGlvbnMubWV0YWRhdGEpIHtcbiAgICBpZiAobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdIZWFkIGFuZCBtZXRhZGF0YSBvcHRpb25zIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyJyk7XG4gICAgfVxuXG4gICAgbWV0YWRhdGEgPSByZXF1ZXN0T3B0aW9ucy5tZXRhZGF0YTtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMubWV0YWRhdGE7XG4gIH1cblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfWAgKyAoZXh0ZW5zaW9uID8gYCske2V4dGVuc2lvbn1gIDogJycpICsgKG1ldGFkYXRhID8gJy9tZXRhZGF0YScgOiAnJyk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBGc1JlcXVlc3QuZGlzcGF0Y2goYmFzZVVSTCwge1xuICAgICAgbWV0aG9kLFxuICAgICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgICBwYXJhbXM6IHJlbW92ZUVtcHR5KHJlcXVlc3RPcHRpb25zKSxcbiAgICB9KVxuICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCA/IHJlcy5oZWFkZXJzIDogcmVzLmRhdGEpKVxuICAgICAgLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxPQUFnQixFQUFFLE1BQWUsRUFBRSxXQUFxQixFQUFFLFFBQW1CO0lBQ2xHLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxjQUFjLENBQUMsaURBQWlELENBQUMsQ0FBQztLQUM3RTtJQUVELElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7UUFDckcsTUFBTSxJQUFJLGNBQWMsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsSUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0MsSUFBTSxPQUFPLEdBQU0sVUFBVSxTQUFJLE1BQVEsQ0FBQztJQUMxQyxJQUFNLE9BQU8sR0FBUTtRQUNuQixHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDbkIsTUFBTSxFQUFFLENBQUMsUUFBUSxJQUFJ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Q0FBQzthQUMzRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJmaWxlIjoibGliL2FwaS9maWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmsgfSBmcm9tICcuLy4uL2ZpbGVsaW5rJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRnNSZXNwb25zZSB9IGZyb20gJy4vLi4vcmVxdWVzdC90eXBlcyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgTWV0YWRhdGFQYXJhbXNTY2hlbWEsIFJldHJpZXZlUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi8uLi9zY2hlbWEnO1xuaW1wb3J0IHsgRnNSZXF1ZXN0LCBGc0h0dHBNZXRob2QgfSBmcm9tICcuLi9yZXF1ZXN0JztcblxuLyoqXG4gKiBSZW1vdmUgZ2l2ZW4gZmlsZVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIHNlY3VyaXR5XG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmUgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlPzogc3RyaW5nLCBza2lwU3RvcmFnZT86IGJvb2xlYW4sIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4gPT4ge1xuICBpZiAoIWhhbmRsZSB8fCB0eXBlb2YgaGFuZGxlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignQSB2YWxpZCBGaWxlc3RhY2sgaGFuZGxlIGlzIHJlcXVpcmVkIGZvciByZW1vdmUnKTtcbiAgfVxuXG4gIGlmICghKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSAmJiAoIXNlY3VyaXR5IHx8ICEoc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkpKSB7XG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdTZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIHJlbW92ZScpO1xuICB9XG5cbiAgY29uc3QgZmlsZUFwaVVybCA9IHNlc3Npb24udXJscy5maWxlQXBpVXJsO1xuICBjb25zdCBiYXNlVVJMID0gYCR7ZmlsZUFwaVVybH0vJHtoYW5kbGV9YDtcbiAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgIGtleTogc2Vzc2lvbi5hcGlrZXksXG4gICAgcG9saWN5OiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5KSB8fCBzZXNzaW9uLnBvbGljeSxcbiAgICBzaWduYXR1cmU6IChzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUpIHx8IHNlc3Npb24uc2lnbmF0dXJlLFxuICB9O1xuXG4gIGlmIChza2lwU3RvcmFnZSkge1xuICAgIG9wdGlvbnMuc2tpcF9zdG9yYWdlID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBGc1JlcXVlc3QuZGVsZXRlKGJhc2VVUkwsIHtcbiAgICBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSxcbiAgICBwYXJhbXM6IHJlbW92ZUVtcHR5KG9wdGlvbnMpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFPcHRpb25zIHtcbiAgc2l6ZT86IGJvb2xlYW47XG4gIG1pbWV0eXBlPzogYm9vbGVhbjtcbiAgZmlsZW5hbWU/OiBib29sZWFuO1xuICB3aWR0aD86IGJvb2xlYW47XG4gIGhlaWdodD86IGJvb2xlYW47XG4gIHVwbG9hZGVkPzogYm9vbGVhbjtcbiAgd3JpdGVhYmxlPzogYm9vbGVhbjtcbiAgY2xvdWQ/OiBib29sZWFuO1xuICBzb3VyY2VVcmw/OiBib29sZWFuO1xuICBtZDU/OiBib29sZWFuO1xuICBzaGExPzogYm9vbGVhbjtcbiAgc2hhMjI0PzogYm9vbGVhbjtcbiAgc2hhMjU2PzogYm9vbGVhbjtcbiAgc2hhMzg0PzogYm9vbGVhbjtcbiAgc2hhNTEyPzogYm9vbGVhbjtcbiAgbG9jYXRpb24/OiBib29sZWFuO1xuICBwYXRoPzogYm9vbGVhbjtcbiAgY29udGFpbmVyPzogYm9vbGVhbjtcbiAgZXhpZj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmV0dXJucyBmaWxlIG1ldGFkYXRhXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gaGFuZGxlXG4gKiBAcGFyYW0gb3B0c1xuICogQHBhcmFtIHNlY3VyaXR5XG4gKi9cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IChzZXNzaW9uOiBTZXNzaW9uLCBoYW5kbGU/OiBzdHJpbmcsIG9wdHM/OiBNZXRhZGF0YU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4gPT4ge1xuICBpZiAoIWhhbmRsZSB8fCB0eXBlb2YgaGFuZGxlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcignQSB2YWxpZCBGaWxlc3RhY2sgaGFuZGxlIGlzIHJlcXVpcmVkIGZvciBtZXRhZGF0YScpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoTWV0YWRhdGFQYXJhbXNTY2hlbWEpKG9wdHMpO1xuXG4gIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIG1ldGFkYXRhIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycyk7XG4gIH1cblxuICBjb25zdCBvcHRpb25zOiBhbnkgPSB7IC4uLm9wdHMgfTtcbiAgb3B0aW9ucy5zb3VyY2VfdXJsID0gb3B0aW9ucy5zb3VyY2VVcmw7IC8vIHNvdXJjZV91cmwgaXMgc25ha2VfY2FzZVxuICBvcHRpb25zLnBvbGljeSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kpIHx8IHNlc3Npb24ucG9saWN5O1xuICBvcHRpb25zLnNpZ25hdHVyZSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUpIHx8IHNlc3Npb24uc2lnbmF0dXJlO1xuXG4gIGNvbnN0IGJhc2VVUkwgPSBgJHtzZXNzaW9uLnVybHMuZmlsZUFwaVVybH0vJHtoYW5kbGV9L21ldGFkYXRhYDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBGc1JlcXVlc3QuZ2V0KGJhc2VVUkwsIHsgcGFyYW1zOiByZW1vdmVFbXB0eShvcHRpb25zKSwgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UgfSlcbiAgICAgIC50aGVuKHJlcyA9PiByZXNvbHZlKHsgLi4ucmVzLmRhdGEsIGhhbmRsZSB9KSlcbiAgICAgIC5jYXRjaChyZWplY3QpO1xuICB9KTtcbn07XG5cbi8qKlxuICogRG93bmxvYWQgZmlsZSB0byBibG9iIG9yIGJ1ZmZlciBmb3JtYXRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICovXG5leHBvcnQgY29uc3QgZG93bmxvYWQgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlOiBzdHJpbmcsICBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxGc1Jlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IGZsID0gbmV3IEZpbGVsaW5rKGhhbmRsZSwgc2Vzc2lvbi5hcGlrZXkpO1xuXG4gIGNvbnN0IHBvbGljeSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kpIHx8IHNlc3Npb24ucG9saWN5O1xuICBjb25zdCBzaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBpZiAocG9saWN5ICYmIHNpZ25hdHVyZSkge1xuICAgIGZsLnNlY3VyaXR5KHsgc2lnbmF0dXJlLCBwb2xpY3kgfSk7XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LmRpc3BhdGNoKGZsLnRvU3RyaW5nKCksIHsgbWV0aG9kOiBGc0h0dHBNZXRob2QuR0VULCBibG9iUmVzcG9uc2U6IHRydWUgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJpZXZlT3B0aW9ucyB7XG4gIG1ldGFkYXRhPzogYm9vbGVhbjtcbiAgaGVhZD86IGJvb2xlYW47XG4gIGRsPzogYm9vbGVhbjtcbiAgZXh0ZW5zaW9uPzogc3RyaW5nO1xuICBjYWNoZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmV0dXJucyBmaWxlIGluZm9ybWF0aW9uXG4gKlxuICogQHByaXZhdGVcbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIGhhbmRsZVxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEBwYXJhbSBzZWN1cml0eVxuICovXG5leHBvcnQgY29uc3QgcmV0cmlldmUgPSAoc2Vzc2lvbjogU2Vzc2lvbiwgaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM6IFJldHJpZXZlT3B0aW9ucyA9IHt9LCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiA9PiB7XG4gIGlmICghaGFuZGxlIHx8IGhhbmRsZS5sZW5ndGggPT09IDAgfHwgdHlwZW9mIGhhbmRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0ZpbGUgaGFuZGxlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBjb25zb2xlLmluZm8oJ1JldHJpZXZlIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQuIFBsZWFzZSB1c2UgbWV0YWRhdGEgb3IgZG93bmxvYWQnKTtcblxuICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihSZXRyaWV2ZVBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgcmV0cmlldmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBhbnkgPSB7IC4uLm9wdGlvbnMgfTtcbiAgcmVxdWVzdE9wdGlvbnMua2V5ID0gc2Vzc2lvbi5hcGlrZXk7XG4gIHJlcXVlc3RPcHRpb25zLnBvbGljeSA9IChzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kpIHx8IHNlc3Npb24ucG9saWN5O1xuICByZXF1ZXN0T3B0aW9ucy5zaWduYXR1cmUgPSAoc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBsZXQgbWV0aG9kOiBGc0h0dHBNZXRob2QgPSBGc0h0dHBNZXRob2QuR0VUO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5oZWFkKSB7XG4gICAgbWV0aG9kID0gRnNIdHRwTWV0aG9kLkhFQUQ7XG4gICAgZGVsZXRlIHJlcXVlc3RPcHRpb25zLmhlYWQ7XG4gIH1cblxuICBsZXQgZXh0ZW5zaW9uO1xuXG4gIGlmIChyZXF1ZXN0T3B0aW9ucy5leHRlbnNpb24gJiYgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uLmxlbmd0aCkge1xuICAgIGV4dGVuc2lvbiA9IHJlcXVlc3RPcHRpb25zLmV4dGVuc2lvbjtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMuZXh0ZW5zaW9uO1xuICB9XG5cbiAgbGV0IG1ldGFkYXRhO1xuICBpZiAocmVxdWVzdE9wdGlvbnMubWV0YWRhdGEpIHtcbiAgICBpZiAobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdIZWFkIGFuZCBtZXRhZGF0YSBvcHRpb25zIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyJyk7XG4gICAgfVxuXG4gICAgbWV0YWRhdGEgPSByZXF1ZXN0T3B0aW9ucy5tZXRhZGF0YTtcbiAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMubWV0YWRhdGE7XG4gIH1cblxuICBjb25zdCBiYXNlVVJMID0gYCR7c2Vzc2lvbi51cmxzLmZpbGVBcGlVcmx9LyR7aGFuZGxlfWAgKyAoZXh0ZW5zaW9uID8gYCske2V4dGVuc2lvbn1gIDogJycpICsgKG1ldGFkYXRhID8gJy9tZXRhZGF0YScgOiAnJyk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBGc1JlcXVlc3QuZGlzcGF0Y2goYmFzZVVSTCwge1xuICAgICAgbWV0aG9kLFxuICAgICAgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UsXG4gICAgICBwYXJhbXM6IHJlbW92ZUVtcHR5KHJlcXVlc3RPcHRpb25zKSxcbiAgICB9KVxuICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUobWV0aG9kID09PSBGc0h0dHBNZXRob2QuSEVBRCA/IHJlcy5oZWFkZXJzIDogcmVzLmRhdGEpKVxuICAgICAgLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcbiJdfQ==

@@ -34,7 +34,7 @@ /*

import { __awaiter, __generator } from "tslib";
import { retrieve, remove, metadata } from './file';
import { retrieve, remove, metadata, download } from './file';
import { FsRequest } from './../request';
import { config } from './../../config';
jest.mock('./../request');
jest.mock('./../filelink');
// jest.mock('./../filelink');
var mockedSession = {

@@ -115,2 +115,21 @@ apikey: 'fakeApikey',

});
describe('Download', function () {
it('should return buffer on download request', function () { return __awaiter(void 0, void 0, void 0, function () {
var testResp, methodMocked, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
testResp = Buffer.from('123');
methodMocked = jest.fn(function () { return Promise.resolve(testResp); });
// @ts-ignore
FsRequest.dispatch.mockImplementation(methodMocked);
return [4 /*yield*/, download(mockedSession, 'gNDNCDWNTKqoGFISdd2A')];
case 1:
resp = _a.sent();
expect(resp).toEqual(testResp);
return [2 /*return*/];
}
});
}); });
});
describe('Remove', function () {

@@ -336,2 +355,2 @@ it('should call remove', function () { return __awaiter(void 0, void 0, void 0, function () {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUUzQixJQUFNLGFBQWEsR0FBWTtJQUM3QixNQUFNLEVBQUUsWUFBWTtJQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQyxNQUFNLEVBQUUsU0FBUztRQUNqQixVQUFVLEVBQUUsWUFBWTtRQUN4QixZQUFZLEVBQUUsa0JBQWtCO1FBQ2hDLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztDQUNILENBQUM7QUFFRixRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLFFBQVEsQ0FBQyxVQUFVLEVBQUU7UUFDbkIsRUFBRSxDQUFDLDhDQUE4QyxFQUFFOzs7Ozt3QkFDM0MsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxDQUFDO3dCQUNsRSxhQUFhO3dCQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ2xDLHFCQUFNLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxD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QUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7b0JBQ3BDLGFBQWE7b0JBQ2IsSUFBSSxFQUFFLEdBQUc7aUJBQ1YsQ0FBQztZQUhGLENBR0UsQ0FDSCxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE9BQU8sTUFBTSxDQUFDO2dCQUNaLE9BQUEsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUM7WUFGRixDQUVFLENBQ0gsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUU7WUFDN0QsT0FBTyxNQUFNLENBQUM7Z0JBQ1osT0FBQSxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRTtvQkFDcEMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQztZQUhGLENBR0UsQ0FDSCxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL2ZpbGUuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyByZXRyaWV2ZSwgcmVtb3ZlLCBtZXRhZGF0YSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5cbmplc3QubW9jaygnLi8uLi9yZXF1ZXN0Jyk7XG5qZXN0Lm1vY2soJy4vLi4vZmlsZWxpbmsnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZy51cmxzLCB7XG4gICAgY2RuVXJsOiAnZmFrZVVybCcsXG4gICAgZmlsZUFwaVVybDogJ2Zha2VBcGlVcmwnLFxuICAgIHVwbG9hZEFwaVVybDogJ2Zha2VVcGxvYWRBcGlVcmwnLFxuICAgIGNsb3VkQXBpVXJsOiAnZmFrZUNsb3VkQXBpVXJsJyxcbiAgICBwaWNrZXJVcmw6ICdmYWtlUGlja2VyVXJsJyxcbiAgfSksXG59O1xuXG5kZXNjcmliZSgnRmlsZUFQSScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ01ldGFkYXRhJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IG1ldGFkYXRhIHdpdGhvdXQgb3B0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgZGF0YToge30gfSkpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmdldC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczoge30sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjYWxsIGNvcnJlY3QgbWV0YWRhdGEgd2l0aCBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZ2V0Lm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgeyBzaXplOiB0cnVlIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczogeyBzaXplOiB0cnVlIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB3cm9uZyBvcHRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtla2V5JywgeyBibGE6IDEyMyB9KSkudG9UaHJvd0Vycm9yKCdJbnZhbGlkIG1ldGFkYXRhIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24pKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBwcm92aWRlZCBzZWN1cml0eSBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5nZXQubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUmVtb3ZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCByZW1vdmUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWxldGVNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRlbGV0ZS5tb2NrSW1wbGVtZW50YXRpb24oZGVsZXRlTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZW1vdmUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG1vY2tlZFNlc3Npb24sIHtcbiAgICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgICAgcG9saWN5OiAnZmFrZVAnLFxuICAgICAgICB9KSxcbiAgICAgICAgJ2Zha2VIYW5kbGUnXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGRhdGE6IHt9IH0pO1xuICAgICAgZXhwZWN0KGRlbGV0ZU1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZScsIHsgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknLCBwb2xpY3k6ICdmYWtlUCcsIHNpZ25hdHVyZTogJ2Zha2VTJyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBza2lwIHN0b3JhZ2Ugb3B0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kZWxldGUubW9ja0ltcGxlbWVudGF0aW9uKG1ldGhvZE1vY2tlZCk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2NrZWRTZXNzaW9uLCB7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgICAgfSksXG4gICAgICAgICdmYWtlSGFuZGxlJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoeyBkYXRhOiB7fSB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JywgcG9saWN5OiAnZmFrZVAnLCBzaWduYXR1cmU6ICdmYWtlUycsIHNraXBfc3RvcmFnZTogdHJ1ZSB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgaGFuZGxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgcmVtb3ZlIHdpdGggcHJvdmlkZWQgc2Vzc2lvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZGVsZXRlLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHsgZGF0YToge30gfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIGVtcHR5IHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiBudWxsLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSkpLnRvVGhyb3dFcnJvcigpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBwb2xpY3knLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogJ2Zha2VTJyxcbiAgICAgICAgcG9saWN5OiBudWxsLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIGZhbHNlLCBmYWtlU2VjdXJpdHkpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgcG9saWN5IG9uIHNlc3Npb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JldHJpZXZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEdFVCknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRpc3BhdGNoLm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJyk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHt9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0dFVCcsIHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEhFQUQpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSwgaGVhZGVyczogeyB0eXBlOiAndGVzdCcgfSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgaGVhZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IHR5cGU6ICd0ZXN0JyB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0hFQUQnLCBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScgfSwgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggcHJvdmlkZWQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlJywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScsIHBvbGljeTogJ2Zha2VQJywgc2lnbmF0dXJlOiAnZmFrZVMnIH0sXG4gICAgICAgIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgZXh0ZW5zaW9uOiAndHh0JyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlK3R4dCcsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGNvcnJlY3QgcmV0cmlldmUgcmVxdWVzdCB3aXRoIG1ldGFkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgbWV0YWRhdGE6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoe30pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZS9tZXRhZGF0YScsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICcnKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXN0OiAxMjMsXG4gICAgICAgIH0pXG4gICAgICApLnRvVGhyb3dFcnJvcignSW52YWxpZCByZXRyaWV2ZSBwYXJhbXMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIG1ldGFkYXRhOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS5ub3QudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHJldHJpZXZlIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIG1ldGFkYXRhIGFuZCBoZWFkIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmV0dXJuIGV4cGVjdCgoKSA9PlxuICAgICAgICByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgICBtZXRhZGF0YTogdHJ1ZSxcbiAgICAgICAgICBoZWFkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL2ZpbGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzFCLDhCQUE4QjtBQUU5QixJQUFNLGFBQWEsR0FBWTtJQUM3QixNQUFNLEVBQUUsWUFBWTtJQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQyxNQUFNLEVBQUUsU0FBUztRQUNqQixVQUFVLEVBQUUsWUFBWTtRQUN4QixZQUFZLEVBQUUsa0JBQWtCO1FBQ2hDLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztDQUNILENBQUM7QUFFRixRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLFFBQVEsQ0FBQyxVQUFVLEVBQUU7UUFDbkIsRUFBRSxDQUFDLDhDQUE4QyxFQUFFOzs7Ozt3QkFDM0MsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxDQUFDO3dCQUNsRSxhQUFhO3dCQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ2xDLHFCQUFNLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUE7O3dCQUFsRCxJ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QUFDO1lBSEYsQ0FHRSxDQUNILENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvZmlsZS5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHJldHJpZXZlLCByZW1vdmUsIG1ldGFkYXRhLCBkb3dubG9hZCB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5cbmplc3QubW9jaygnLi8uLi9yZXF1ZXN0Jyk7XG4vLyBqZXN0Lm1vY2soJy4vLi4vZmlsZWxpbmsnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZy51cmxzLCB7XG4gICAgY2RuVXJsOiAnZmFrZVVybCcsXG4gICAgZmlsZUFwaVVybDogJ2Zha2VBcGlVcmwnLFxuICAgIHVwbG9hZEFwaVVybDogJ2Zha2VVcGxvYWRBcGlVcmwnLFxuICAgIGNsb3VkQXBpVXJsOiAnZmFrZUNsb3VkQXBpVXJsJyxcbiAgICBwaWNrZXJVcmw6ICdmYWtlUGlja2VyVXJsJyxcbiAgfSksXG59O1xuXG5kZXNjcmliZSgnRmlsZUFQSScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ01ldGFkYXRhJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBjb3JyZWN0IG1ldGFkYXRhIHdpdGhvdXQgb3B0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgZGF0YToge30gfSkpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmdldC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczoge30sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjYWxsIGNvcnJlY3QgbWV0YWRhdGEgd2l0aCBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZ2V0Lm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgeyBzaXplOiB0cnVlIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUvbWV0YWRhdGEnLCB7IHBhcmFtczogeyBzaXplOiB0cnVlIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB3cm9uZyBvcHRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24sICdmYWtla2V5JywgeyBibGE6IDEyMyB9KSkudG9UaHJvd0Vycm9yKCdJbnZhbGlkIG1ldGFkYXRhIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IG1ldGFkYXRhKG1vY2tlZFNlc3Npb24pKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBwcm92aWRlZCBzZWN1cml0eSBvcHRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5nZXQubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBtZXRhZGF0YShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGhhbmRsZTogJ2Zha2VIYW5kbGUnIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnRG93bmxvYWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYnVmZmVyIG9uIGRvd25sb2FkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0UmVzcCA9IEJ1ZmZlci5mcm9tKCcxMjMnKTtcbiAgICAgIGNvbnN0IG1ldGhvZE1vY2tlZCA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRlc3RSZXNwKSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBkb3dubG9hZChtb2NrZWRTZXNzaW9uLCAnZ05ETkNEV05US3FvR0ZJU2RkMkEnKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwodGVzdFJlc3ApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUmVtb3ZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCByZW1vdmUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWxldGVNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRlbGV0ZS5tb2NrSW1wbGVtZW50YXRpb24oZGVsZXRlTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZW1vdmUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG1vY2tlZFNlc3Npb24sIHtcbiAgICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgICAgcG9saWN5OiAnZmFrZVAnLFxuICAgICAgICB9KSxcbiAgICAgICAgJ2Zha2VIYW5kbGUnXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IGRhdGE6IHt9IH0pO1xuICAgICAgZXhwZWN0KGRlbGV0ZU1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZScsIHsgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknLCBwb2xpY3k6ICdmYWtlUCcsIHNpZ25hdHVyZTogJ2Zha2VTJyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVzcGVjdCBza2lwIHN0b3JhZ2Ugb3B0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kZWxldGUubW9ja0ltcGxlbWVudGF0aW9uKG1ldGhvZE1vY2tlZCk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2NrZWRTZXNzaW9uLCB7XG4gICAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgICAgfSksXG4gICAgICAgICdmYWtlSGFuZGxlJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoeyBkYXRhOiB7fSB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JywgcG9saWN5OiAnZmFrZVAnLCBzaWduYXR1cmU6ICdmYWtlUycsIHNraXBfc3RvcmFnZTogdHJ1ZSB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgaGFuZGxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgcmVtb3ZlIHdpdGggcHJvdmlkZWQgc2Vzc2lvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBGc1JlcXVlc3QuZGVsZXRlLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHsgZGF0YToge30gfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIGVtcHR5IHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiBudWxsLFxuICAgICAgICBwb2xpY3k6ICdmYWtlUCcsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVtb3ZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywgZmFsc2UsIGZha2VTZWN1cml0eSkpLnRvVGhyb3dFcnJvcigpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBwb2xpY3knLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWtlU2VjdXJpdHkgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogJ2Zha2VTJyxcbiAgICAgICAgcG9saWN5OiBudWxsLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIGZhbHNlLCBmYWtlU2VjdXJpdHkpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZW1wdHkgcG9saWN5IG9uIHNlc3Npb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJlbW92ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScpKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JldHJpZXZlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEdFVCknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgRnNSZXF1ZXN0LmRpc3BhdGNoLm1vY2tJbXBsZW1lbnRhdGlvbihtZXRob2RNb2NrZWQpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJyk7XG5cbiAgICAgIGV4cGVjdChyZXNwKS50b0VxdWFsKHt9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0dFVCcsIHBhcmFtczogeyBrZXk6ICdmYWtlQXBpa2V5JyB9LCBmaWxlc3RhY2tIZWFkZXJzOiBmYWxzZSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBjb3JyZWN0IHJldHJpZXZlIHJlcXVlc3QgKEhFQUQpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSwgaGVhZGVyczogeyB0eXBlOiAndGVzdCcgfSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgaGVhZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7IHR5cGU6ICd0ZXN0JyB9KTtcbiAgICAgIGV4cGVjdChtZXRob2RNb2NrZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmYWtlQXBpVXJsL2Zha2VIYW5kbGUnLCB7IG1ldGhvZDogJ0hFQUQnLCBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScgfSwgZmlsZXN0YWNrSGVhZGVyczogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggcHJvdmlkZWQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXRob2RNb2NrZWQgPSBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRhdGE6IHt9IH0pKTtcblxuICAgICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgICBzaWduYXR1cmU6ICdmYWtlUycsXG4gICAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHt9LCBmYWtlU2VjdXJpdHkpO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlJywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXJhbXM6IHsga2V5OiAnZmFrZUFwaWtleScsIHBvbGljeTogJ2Zha2VQJywgc2lnbmF0dXJlOiAnZmFrZVMnIH0sXG4gICAgICAgIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1ha2UgY29ycmVjdCByZXRyaWV2ZSByZXF1ZXN0IHdpdGggZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgZXh0ZW5zaW9uOiAndHh0JyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcCkudG9FcXVhbCh7fSk7XG4gICAgICBleHBlY3QobWV0aG9kTW9ja2VkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmFrZUFwaVVybC9mYWtlSGFuZGxlK3R4dCcsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGNvcnJlY3QgcmV0cmlldmUgcmVxdWVzdCB3aXRoIG1ldGFkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWV0aG9kTW9ja2VkID0gamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiB7fSB9KSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIEZzUmVxdWVzdC5kaXNwYXRjaC5tb2NrSW1wbGVtZW50YXRpb24obWV0aG9kTW9ja2VkKTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgbWV0YWRhdGE6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3ApLnRvRXF1YWwoe30pO1xuICAgICAgZXhwZWN0KG1ldGhvZE1vY2tlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Zha2VBcGlVcmwvZmFrZUhhbmRsZS9tZXRhZGF0YScsIHsgbWV0aG9kOiAnR0VUJywgcGFyYW1zOiB7IGtleTogJ2Zha2VBcGlrZXknIH0sIGZpbGVzdGFja0hlYWRlcnM6IGZhbHNlIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBvbiBlbXB0eSBoYW5kbGUnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+IHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICcnKSkudG9UaHJvd0Vycm9yKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXN0OiAxMjMsXG4gICAgICAgIH0pXG4gICAgICApLnRvVGhyb3dFcnJvcignSW52YWxpZCByZXRyaWV2ZSBwYXJhbXMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHRocm93IGFuIGVycm9yIHdvcm5nIG9wdGlvbnMgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZXhwZWN0KCgpID0+XG4gICAgICAgIHJldHJpZXZlKG1vY2tlZFNlc3Npb24sICdmYWtlSGFuZGxlJywge1xuICAgICAgICAgIG1ldGFkYXRhOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS5ub3QudG9UaHJvd0Vycm9yKCdJbnZhbGlkIHJldHJpZXZlIHBhcmFtcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIG1ldGFkYXRhIGFuZCBoZWFkIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmV0dXJuIGV4cGVjdCgoKSA9PlxuICAgICAgICByZXRyaWV2ZShtb2NrZWRTZXNzaW9uLCAnZmFrZUhhbmRsZScsIHtcbiAgICAgICAgICBtZXRhZGF0YTogdHJ1ZSxcbiAgICAgICAgICBoZWFkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKS50b1Rocm93RXJyb3IoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -14,2 +14,3 @@ import { Security, Session } from '../client';

};
workflowIds?: string[];
};

@@ -25,3 +26,4 @@ /**

* @param uploadTags
* @param workflowIds
*/
export declare const storeURL: ({ session, url, storeParams, token, security, uploadTags, headers, }: StoreUrlParams) => Promise<any>;
export declare const storeURL: ({ session, url, storeParams, token, security, uploadTags, headers, workflowIds, }: StoreUrlParams) => Promise<any>;

@@ -31,5 +31,6 @@ /*

* @param uploadTags
* @param workflowIds
*/
export var storeURL = function (_a) {
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers;
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers, workflowIds = _a.workflowIds;
if (!url || typeof url !== 'string') {

@@ -65,2 +66,5 @@ return Promise.reject(new FilestackError('url is required for storeURL'));

}
if (workflowIds && workflowIds.length > 0) {
filelink.addTask('store', { workflows: workflowIds });
}
return FsRequest.post(session.urls.processUrl + "/process", {

@@ -83,2 +87,2 @@ apikey: session.apikey,

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFHSCxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFhdEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFVBQUMsRUFRUjtRQVBmLG9CQUFPLEVBQ1AsWUFBRyxFQUNILDRCQUFXLEVBQ1gsZ0JBQUssRUFDTCxzQkFBUSxFQUNSLDBCQUFVLEVBQ1Ysb0JBQU87SUFFUCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDdkY7SUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDL0QsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRXhFLElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUN2QyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFdEIsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLGFBQVUsRUFBRTtRQUMxRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsT0FBTyxTQUFBO1FBQ1AsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDMUIsV0FBVyxFQUFFLFVBQVU7S0FDeEIsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHO1FBQ25CLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUM3QjtZQUVELDZCQUFZLEdBQUcsQ0FBQyxJQUFJLEtBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFHO1NBQ2pEO1FBRUQsTUFBTSxJQUFJLGNBQWMsQ0FBQyw0QkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFHLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmssIFN0b3JlUGFyYW1zIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QsIEZzQ2FuY2VsVG9rZW4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFVwbG9hZFRhZ3MgfSBmcm9tICcuL3VwbG9hZC9maWxlJztcblxuZXhwb3J0IHR5cGUgU3RvcmVVcmxQYXJhbXMgPSB7XG4gIHNlc3Npb246IFNlc3Npb247XG4gIHVybD86IHN0cmluZztcbiAgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcztcbiAgdG9rZW4/OiBhbnk7XG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzO1xuICBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG59O1xuXG4vKipcbiAqIFN0b3JlIGdpdmVuIHVybCB3aXRoIG9wdGlvbnMgYW5kXG4gKlxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSB1cmxcbiAqIEBwYXJhbSBzdG9yZU9wdHNcbiAqIEBwYXJhbSB0b2tlblxuICogQHBhcmFtIHNlY3VyaXR5XG4gKiBAcGFyYW0gdXBsb2FkVGFnc1xuICovXG5leHBvcnQgY29uc3Qgc3RvcmVVUkwgPSAoe1xuICBzZXNzaW9uLFxuICB1cmwsXG4gIHN0b3JlUGFyYW1zLFxuICB0b2tlbixcbiAgc2VjdXJpdHksXG4gIHVwbG9hZFRhZ3MsXG4gIGhlYWRlcnMsXG59OiBTdG9yZVVybFBhcmFtcyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGlmICghdXJsIHx8IHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGaWxlc3RhY2tFcnJvcigndXJsIGlzIHJlcXVpcmVkIGZvciBzdG9yZVVSTCcpKTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFN0b3JlUGFyYW1zU2NoZW1hKShzdG9yZVBhcmFtcyk7XG5cbiAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHN0b3JlIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycykpO1xuICB9XG5cbiAgc2Vzc2lvbi5wb2xpY3kgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kgfHwgc2Vzc2lvbi5wb2xpY3k7XG4gIHNlc3Npb24uc2lnbmF0dXJlID0gc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlIHx8IHNlc3Npb24uc2lnbmF0dXJlO1xuXG4gIGNvbnN0IGZpbGVsaW5rID0gbmV3IEZpbGVsaW5rKHVybCwgc2Vzc2lvbi5hcGlrZXkpO1xuICBmaWxlbGluay5zdG9yZShzdG9yZVBhcmFtcyk7XG5cbiAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgZmlsZWxpbmsuc2VjdXJpdHkoe1xuICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgIHNpZ25hdHVyZTogc2Vzc2lvbi5zaWduYXR1cmUsXG4gICAgfSk7XG4gIH1cblxuICBsZXQgb3B0aW9uczogYW55ID0ge307XG5cbiAgaWYgKHRva2VuKSB7XG4gICAgY29uc3QgY2FuY2VsVG9rZW4gPSBuZXcgRnNDYW5jZWxUb2tlbigpO1xuICAgIHRva2VuLmNhbmNlbCA9IGNhbmNlbFRva2VuLmNhbmNlbC5iaW5kKGNhbmNlbFRva2VuKTtcbiAgICBvcHRpb25zLmNhbmNlbFRva2VuID0gY2FuY2VsVG9rZW47XG4gIH1cblxuICBsZXQgc291cmNlczogYW55ID0gWyB1cmwgXTtcblxuICBpZiAoaGVhZGVycykge1xuICAgIHNvdXJjZXMgPSBbe1xuICAgICAgc291cmNlOiB1cmwsXG4gICAgICBoZWFkZXJzLFxuICAgIH1dO1xuICB9XG5cbiAgcmV0dXJuIEZzUmVxdWVzdC5wb3N0KGAke3Nlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgIGFwaWtleTogc2Vzc2lvbi5hcGlrZXksXG4gICAgc291cmNlcyxcbiAgICB0YXNrczogZmlsZWxpbmsuZ2V0VGFza3MoKSxcbiAgICB1cGxvYWRfdGFnczogdXBsb2FkVGFncyxcbiAgfSwgb3B0aW9ucykudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLmhhbmRsZSkge1xuICAgICAgaWYgKHJlcy5kYXRhLnVwbG9hZF90YWdzKSB7XG4gICAgICAgIHJlcy5kYXRhLnVwbG9hZFRhZ3MgPSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXMuZGF0YSwgbWltZXR5cGU6IHJlcy5kYXRhLnR5cGUgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcmVzcG9uc2UgJHtKU09OLnN0cmluZ2lmeShyZXMuZGF0YSl9YCk7XG4gIH0pO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFHSCxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFjdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEVBU1I7UUFSZixvQkFBTyxFQUNQLFlBQUcsRUFDSCw0QkFBVyxFQUNYLGdCQUFLLEVBQ0wsc0JBQVEsRUFDUiwwQkFBVSxFQUNWLG9CQUFPLEVBQ1AsNEJBQVc7SUFFWCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDdkY7SUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDL0QsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRXhFLElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUN2QyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFdEIsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxhQUFVLEVBQUU7UUFDMUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sU0FBQTtRQUNQLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ3hCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztRQUNuQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDN0I7WUFFRCw2QkFBWSxHQUFHLENBQUMsSUFBSSxLQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRztTQUNqRDtRQUVELE1BQU0sSUFBSSxjQUFjLENBQUMsNEJBQTBCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRyxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJmaWxlIjoibGliL2FwaS9zdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFNlY3VyaXR5LCBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVsaW5rLCBTdG9yZVBhcmFtcyB9IGZyb20gJy4vLi4vZmlsZWxpbmsnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIFN0b3JlUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi8uLi9zY2hlbWEnO1xuaW1wb3J0IHsgRnNSZXF1ZXN0LCBGc0NhbmNlbFRva2VuIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBVcGxvYWRUYWdzIH0gZnJvbSAnLi91cGxvYWQvZmlsZSc7XG5cbmV4cG9ydCB0eXBlIFN0b3JlVXJsUGFyYW1zID0ge1xuICBzZXNzaW9uOiBTZXNzaW9uO1xuICB1cmw/OiBzdHJpbmc7XG4gIHN0b3JlUGFyYW1zPzogU3RvcmVQYXJhbXM7XG4gIHRva2VuPzogYW55O1xuICBzZWN1cml0eT86IFNlY3VyaXR5O1xuICB1cGxvYWRUYWdzPzogVXBsb2FkVGFncztcbiAgaGVhZGVycz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LFxuICB3b3JrZmxvd0lkcz86IHN0cmluZ1tdXG59O1xuXG4vKipcbiAqIFN0b3JlIGdpdmVuIHVybCB3aXRoIG9wdGlvbnMgYW5kXG4gKlxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSB1cmxcbiAqIEBwYXJhbSBzdG9yZU9wdHNcbiAqIEBwYXJhbSB0b2tlblxuICogQHBhcmFtIHNlY3VyaXR5XG4gKiBAcGFyYW0gdXBsb2FkVGFnc1xuICogQHBhcmFtIHdvcmtmbG93SWRzXG4gKi9cbmV4cG9ydCBjb25zdCBzdG9yZVVSTCA9ICh7XG4gIHNlc3Npb24sXG4gIHVybCxcbiAgc3RvcmVQYXJhbXMsXG4gIHRva2VuLFxuICBzZWN1cml0eSxcbiAgdXBsb2FkVGFncyxcbiAgaGVhZGVycyxcbiAgd29ya2Zsb3dJZHMsXG59OiBTdG9yZVVybFBhcmFtcyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGlmICghdXJsIHx8IHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGaWxlc3RhY2tFcnJvcigndXJsIGlzIHJlcXVpcmVkIGZvciBzdG9yZVVSTCcpKTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFN0b3JlUGFyYW1zU2NoZW1hKShzdG9yZVBhcmFtcyk7XG5cbiAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHN0b3JlIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycykpO1xuICB9XG5cbiAgc2Vzc2lvbi5wb2xpY3kgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5wb2xpY3kgfHwgc2Vzc2lvbi5wb2xpY3k7XG4gIHNlc3Npb24uc2lnbmF0dXJlID0gc2VjdXJpdHkgJiYgc2VjdXJpdHkuc2lnbmF0dXJlIHx8IHNlc3Npb24uc2lnbmF0dXJlO1xuXG4gIGNvbnN0IGZpbGVsaW5rID0gbmV3IEZpbGVsaW5rKHVybCwgc2Vzc2lvbi5hcGlrZXkpO1xuICBmaWxlbGluay5zdG9yZShzdG9yZVBhcmFtcyk7XG5cbiAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgZmlsZWxpbmsuc2VjdXJpdHkoe1xuICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgIHNpZ25hdHVyZTogc2Vzc2lvbi5zaWduYXR1cmUsXG4gICAgfSk7XG4gIH1cblxuICBsZXQgb3B0aW9uczogYW55ID0ge307XG5cbiAgaWYgKHRva2VuKSB7XG4gICAgY29uc3QgY2FuY2VsVG9rZW4gPSBuZXcgRnNDYW5jZWxUb2tlbigpO1xuICAgIHRva2VuLmNhbmNlbCA9IGNhbmNlbFRva2VuLmNhbmNlbC5iaW5kKGNhbmNlbFRva2VuKTtcbiAgICBvcHRpb25zLmNhbmNlbFRva2VuID0gY2FuY2VsVG9rZW47XG4gIH1cblxuICBsZXQgc291cmNlczogYW55ID0gWyB1cmwgXTtcblxuICBpZiAoaGVhZGVycykge1xuICAgIHNvdXJjZXMgPSBbe1xuICAgICAgc291cmNlOiB1cmwsXG4gICAgICBoZWFkZXJzLFxuICAgIH1dO1xuICB9XG5cbiAgaWYgKHdvcmtmbG93SWRzICYmIHdvcmtmbG93SWRzLmxlbmd0aCA+IDApIHtcbiAgICBmaWxlbGluay5hZGRUYXNrKCdzdG9yZScsIHsgd29ya2Zsb3dzOiB3b3JrZmxvd0lkcyB9KTtcbiAgfVxuXG4gIHJldHVybiBGc1JlcXVlc3QucG9zdChgJHtzZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICBhcGlrZXk6IHNlc3Npb24uYXBpa2V5LFxuICAgIHNvdXJjZXMsXG4gICAgdGFza3M6IGZpbGVsaW5rLmdldFRhc2tzKCksXG4gICAgdXBsb2FkX3RhZ3M6IHVwbG9hZFRhZ3MsXG4gIH0sIG9wdGlvbnMpLnRoZW4oKHJlcykgPT4ge1xuICAgIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5oYW5kbGUpIHtcbiAgICAgIGlmIChyZXMuZGF0YS51cGxvYWRfdGFncykge1xuICAgICAgICByZXMuZGF0YS51cGxvYWRUYWdzID0gcmVzLmRhdGEudXBsb2FkX3RhZ3M7XG4gICAgICAgIGRlbGV0ZSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgLi4ucmVzLmRhdGEsIG1pbWV0eXBlOiByZXMuZGF0YS50eXBlIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHN0b3JlIHJlc3BvbnNlICR7SlNPTi5zdHJpbmdpZnkocmVzLmRhdGEpfWApO1xuICB9KTtcbn07XG4iXX0=

@@ -29,3 +29,5 @@ /*

};
var workflowIds = ['123', '321'];
var storeTaskDef = [{ name: 'store', params: {} }];
var storeTaskDefWithWorkflows = [{ name: 'store', params: {} }];
var sourceToStore = 'urlToStore';

@@ -163,4 +165,23 @@ describe('StoreURL', function () {

});
it('should be able to run storeUrl with workflows', function () { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, storeURL({
session: mockedSession,
url: sourceToStore,
workflowIds: workflowIds,
})];
case 1:
_a.sent();
expect(FsRequest.post).toHaveBeenCalledWith(mockedSession.urls.processUrl + "/process", {
apikey: mockedSession.apikey,
sources: [sourceToStore],
tasks: storeTaskDefWithWorkflows,
}, {});
return [2 /*return*/];
}
});
}); });
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRTFCLElBQU0sYUFBYSxHQUFZO0lBQzdCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtDQUNsQixDQUFDO0FBRUYsSUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckQsSUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DLFFBQVEsQ0FBQyxVQUFVLEVBQUU7SUFFbkIsVUFBVSxDQUFDO1FBQ1QsYUFBYTtRQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBQyxDQUFDLEVBQUUsT0FBTztZQUMzQyxJQUFJLFFBQVEsR0FBRztnQkFDYixJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLE1BQU07aUJBQ2Y7YUFDRixDQUFDO1lBRUYsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbEMsYUFBYTtnQkFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQ2pEO1lBRUQsT0FBTyxP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LENBQUM7UUFFSixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDckIsT0FBTyxFQUFFLGFBQWE7WUFDdEIsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcblxuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi8uLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgRnNSZXF1ZXN0IH0gZnJvbSAnLi8uLi9yZXF1ZXN0JztcbmltcG9ydCB7IEZpbGVsaW5rIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5cbmplc3QubW9jaygnLi8uLi9maWxlbGluaycpO1xuamVzdC5tb2NrKCcuLy4uL3JlcXVlc3QnKTtcblxuY29uc3QgbW9ja2VkU2Vzc2lvbjogU2Vzc2lvbiA9IHtcbiAgYXBpa2V5OiAnZmFrZUFwaWtleScsXG4gIHVybHM6IGNvbmZpZy51cmxzLFxufTtcblxuY29uc3Qgc3RvcmVUYXNrRGVmID0gW3sgbmFtZTogJ3N0b3JlJywgcGFyYW1zOiB7fSB9XTtcbmNvbnN0IHNvdXJjZVRvU3RvcmUgPSAndXJsVG9TdG9yZSc7XG5cbmRlc2NyaWJlKCdTdG9yZVVSTCcsICgpID0+IHtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgRnNSZXF1ZXN0LnBvc3QubW9ja0ltcGxlbWVudGF0aW9uKChfLCBvcHRpb25zKSA9PiB7XG4gICAgICBsZXQgdG9SZXR1cm4gPSB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoYW5kbGU6ICd0ZXN0JyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXBsb2FkX3RhZ3MpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0b1JldHVybi5kYXRhLnVwbG9hZF90YWdzID0gb3B0aW9ucy51cGxvYWRfdGFncztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0b1JldHVybik7XG4gICAgfSk7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgRmlsZWxpbmsucHJvdG90eXBlLmdldFRhc2tzLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBzdG9yZVRhc2tEZWYpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNhbGwgY29ycmVjdCBzdG9yZSBtZXRob2QnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgc3RvcmVVUkwoeyBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLCB1cmw6IHNvdXJjZVRvU3RvcmUgfSk7XG5cbiAgICBleHBlY3QoRnNSZXF1ZXN0LnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGAke21vY2tlZFNlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgICAgYXBpa2V5OiBtb2NrZWRTZXNzaW9uLmFwaWtleSxcbiAgICAgIHNvdXJjZXM6IFsgc291cmNlVG9TdG9yZSBdLFxuICAgICAgdGFza3M6IHN0b3JlVGFza0RlZixcbiAgICAgIHVwbG9hZF90YWdzOiB1bmRlZmluZWQsXG4gICAgfSwge30pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJlc3BlY3QgcGFzc2VkIHNlY3VyaXR5IGFuZCBwb2xpY3knLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmFrZVNlY3VyaXR5ID0ge1xuICAgICAgc2lnbmF0dXJlOiAnZmFrZVMnLFxuICAgICAgcG9saWN5OiAnZmFrZVAnLFxuICAgIH07XG5cbiAgICBhd2FpdCBzdG9yZVVSTCh7IHNlc3Npb246IG1vY2tlZFNlc3Npb24sIHVybDogc291cmNlVG9TdG9yZSwgc2VjdXJpdHk6IGZha2VTZWN1cml0eSB9KTtcblxuICAgIGV4cGVjdChGaWxlbGluay5wcm90b3R5cGUuc2VjdXJpdHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZha2VTZWN1cml0eSk7XG5cbiAgICBleHBlY3QoRnNSZXF1ZXN0LnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGAke21vY2tlZFNlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgICAgYXBpa2V5OiBtb2NrZWRTZXNzaW9uLmFwaWtleSxcbiAgICAgIHNvdXJjZXM6IFsgc291cmNlVG9TdG9yZSBdLFxuICAgICAgdGFza3M6IHN0b3JlVGFza0RlZixcbiAgICAgIHVwbG9hZF90YWdzOiB1bmRlZmluZWQsXG4gICAgfSwge30pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIG9uIHdyb25nIHN0b3JlIHBhcmFtcycsICgpID0+IHtcbiAgICByZXR1cm4gZXhwZWN0KHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IG1vY2tlZFNlc3Npb24sXG4gICAgICB1cmw6IHNvdXJjZVRvU3RvcmUsXG4gICAgICBzdG9yZVBhcmFtczoge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRlc3Q6IDEyMyxcbiAgICAgIH0sXG4gICAgfSkpLnJlamVjdHMudG9FcXVhbChleHBlY3QuYW55KEZpbGVzdGFja0Vycm9yKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmVzcGVjdCB0b2tlbiBjYW5jZWwnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gc2ltdWxhdGUgb2xkIHRva2VuXG4gICAgY29uc3QgdG9rZW4gPSB7XG4gICAgICBjYW5jZWw6ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbCBtZXRob2QnKTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGF3YWl0IHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IG1vY2tlZFNlc3Npb24sXG4gICAgICB1cmw6IHNvdXJjZVRvU3RvcmUsXG4gICAgICB0b2tlbixcbiAgICB9KTtcblxuICAgIGV4cGVjdChGc1JlcXVlc3QucG9zdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoYCR7bW9ja2VkU2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgICBhcGlrZXk6IG1vY2tlZFNlc3Npb24uYXBpa2V5LFxuICAgICAgc291cmNlczogWyBzb3VyY2VUb1N0b3JlIF0sXG4gICAgICB0YXNrczogc3RvcmVUYXNrRGVmLFxuICAgICAgdXBsb2FkX3RhZ3M6IHVuZGVmaW5lZCxcblxuICAgICAgLy8gZXhwZWN0LmFueShGc0NhbmNlbFRva2VuKSBpcyBub3Qgd29ya2luZyBjb3JyZWN0bHkgd2l0aCBtb2NrZWQgZnVuY3Rpb25zXG4gICAgfSwgeyBjYW5jZWxUb2tlbjogZXhwZWN0LmFueShPYmplY3QpIH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhc3MgdXBsb2FkIHRhZ3MgdG8gcmVxdWVzdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cGxvYWRUYWdzID0geyB0ZXN0OiAnMTIzJyB9O1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoRnNSZXF1ZXN0LnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGAke21vY2tlZFNlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgICAgYXBpa2V5OiBtb2NrZWRTZXNzaW9uLmFwaWtleSxcbiAgICAgIHNvdXJjZXM6IFsgc291cmNlVG9TdG9yZSBdLFxuICAgICAgdGFza3M6IHN0b3JlVGFza0RlZixcbiAgICAgIHVwbG9hZF90YWdzOiB1cGxvYWRUYWdzLFxuICAgIH0sIHt9KTtcblxuICAgIGV4cGVjdChyZXMudXBsb2FkVGFncykudG9FcXVhbCh1cGxvYWRUYWdzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aGVuIG1pc3NpbmcgdXJsJywgKCkgPT4ge1xuICAgIHJldHVybiBleHBlY3Qoc3RvcmVVUkwoeyBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uIH0pKS5yZWplY3RzLnRvRXF1YWwoZXhwZWN0LmFueShGaWxlc3RhY2tFcnJvcikpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IG9uIG1pc3NpbmcgaGFuZGxlIGluIHJlc3BvbnNlJywgKCkgPT4ge1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIEZzUmVxdWVzdC5wb3N0Lm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgZGF0YToge30sXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIGV4cGVjdChzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgIH0pKS5yZWplY3RzLnRvRXF1YWwoZXhwZWN0LmFueShGaWxlc3RhY2tFcnJvcikpO1xuICB9KTtcblxufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRTFCLElBQU0sYUFBYSxHQUFZO0lBQzdCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtDQUNsQixDQUFDO0FBRUYsSUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbkMsSUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckQsSUFBTSx5QkFBeUIsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNsRSxJQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFbkMsUUFBUSxDQUFDLFVBQVUsRUFBRTtJQUVuQixVQUFVLENBQUM7UUFDVCxhQUFhO1FBQ2IsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFDLENBQUMsRUFBRSxPQUFPO1lBQzNDLElBQUksUUFBUSxHQUFHO2dCQUNiLElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsTUFBTTtpQkFDZjth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QTRDLEVBQUU7UUFFL0MsYUFBYTtRQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDdEQsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDLEVBRnNDLENBRXRDLENBQUMsQ0FBQztRQUVKLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNyQixPQUFPLEVBQUUsYUFBYTtZQUN0QixHQUFHLEVBQUUsYUFBYTtTQUNuQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRTs7O3dCQUNsRCxxQkFBTSxRQUFRLENBQUM7d0JBQ2IsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLEdBQUcsRUFBRSxhQUFhO3dCQUNsQixXQUFXLGFBQUE7cUJBQ1osQ0FBQyxFQUFBOztvQkFKRixTQUlFLENBQUM7b0JBRUgsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsQ0FBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsYUFBVSxFQUFFO3dCQUN0RixNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07d0JBQzVCLE9BQU8sRUFBRSxDQUFFLGFBQWEsQ0FBRTt3QkFDMUIsS0FBSyxFQUFFLHlCQUF5QjtxQkFDakMsRUFBRSxFQUFFLENBQUMsQ0FBQzs7OztTQUNSLENBQUMsQ0FBQztBQUVMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvc3RvcmUuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHN0b3JlVVJMIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBGc1JlcXVlc3QgfSBmcm9tICcuLy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgRmlsZWxpbmsgfSBmcm9tICcuLy4uL2ZpbGVsaW5rJztcblxuamVzdC5tb2NrKCcuLy4uL2ZpbGVsaW5rJyk7XG5qZXN0Lm1vY2soJy4vLi4vcmVxdWVzdCcpO1xuXG5jb25zdCBtb2NrZWRTZXNzaW9uOiBTZXNzaW9uID0ge1xuICBhcGlrZXk6ICdmYWtlQXBpa2V5JyxcbiAgdXJsczogY29uZmlnLnVybHMsXG59O1xuXG5jb25zdCB3b3JrZmxvd0lkcyA9IFsnMTIzJywgJzMyMSddO1xuXG5jb25zdCBzdG9yZVRhc2tEZWYgPSBbeyBuYW1lOiAnc3RvcmUnLCBwYXJhbXM6IHt9IH1dO1xuY29uc3Qgc3RvcmVUYXNrRGVmV2l0aFdvcmtmbG93cyA9IFt7IG5hbWU6ICdzdG9yZScsIHBhcmFtczoge30gfV07XG5jb25zdCBzb3VyY2VUb1N0b3JlID0gJ3VybFRvU3RvcmUnO1xuXG5kZXNjcmliZSgnU3RvcmVVUkwnLCAoKSA9PiB7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIEZzUmVxdWVzdC5wb3N0Lm1vY2tJbXBsZW1lbnRhdGlvbigoXywgb3B0aW9ucykgPT4ge1xuICAgICAgbGV0IHRvUmV0dXJuID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaGFuZGxlOiAndGVzdCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVwbG9hZF90YWdzKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdG9SZXR1cm4uZGF0YS51cGxvYWRfdGFncyA9IG9wdGlvbnMudXBsb2FkX3RhZ3M7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodG9SZXR1cm4pO1xuICAgIH0pO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIEZpbGVsaW5rLnByb3RvdHlwZS5nZXRUYXNrcy5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gc3RvcmVUYXNrRGVmKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjYWxsIGNvcnJlY3Qgc3RvcmUgbWV0aG9kJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHN0b3JlVVJMKHsgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbiwgdXJsOiBzb3VyY2VUb1N0b3JlIH0pO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWYsXG4gICAgICB1cGxvYWRfdGFnczogdW5kZWZpbmVkLFxuICAgIH0sIHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXNwZWN0IHBhc3NlZCBzZWN1cml0eSBhbmQgcG9saWN5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZha2VTZWN1cml0eSA9IHtcbiAgICAgIHNpZ25hdHVyZTogJ2Zha2VTJyxcbiAgICAgIHBvbGljeTogJ2Zha2VQJyxcbiAgICB9O1xuXG4gICAgYXdhaXQgc3RvcmVVUkwoeyBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLCB1cmw6IHNvdXJjZVRvU3RvcmUsIHNlY3VyaXR5OiBmYWtlU2VjdXJpdHkgfSk7XG5cbiAgICBleHBlY3QoRmlsZWxpbmsucHJvdG90eXBlLnNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmYWtlU2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWYsXG4gICAgICB1cGxvYWRfdGFnczogdW5kZWZpbmVkLFxuICAgIH0sIHt9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBvbiB3cm9uZyBzdG9yZSBwYXJhbXMnLCAoKSA9PiB7XG4gICAgcmV0dXJuIGV4cGVjdChzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgICAgc3RvcmVQYXJhbXM6IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0ZXN0OiAxMjMsXG4gICAgICB9LFxuICAgIH0pKS5yZWplY3RzLnRvRXF1YWwoZXhwZWN0LmFueShGaWxlc3RhY2tFcnJvcikpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJlc3BlY3QgdG9rZW4gY2FuY2VsJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vIHNpbXVsYXRlIG9sZCB0b2tlblxuICAgIGNvbnN0IHRva2VuID0ge1xuICAgICAgY2FuY2VsOiAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWwgbWV0aG9kJyk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBhd2FpdCBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgICAgdG9rZW4sXG4gICAgfSk7XG5cbiAgICBleHBlY3QoRnNSZXF1ZXN0LnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGAke21vY2tlZFNlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgICAgYXBpa2V5OiBtb2NrZWRTZXNzaW9uLmFwaWtleSxcbiAgICAgIHNvdXJjZXM6IFsgc291cmNlVG9TdG9yZSBdLFxuICAgICAgdGFza3M6IHN0b3JlVGFza0RlZixcbiAgICAgIHVwbG9hZF90YWdzOiB1bmRlZmluZWQsXG5cbiAgICAgIC8vIGV4cGVjdC5hbnkoRnNDYW5jZWxUb2tlbikgaXMgbm90IHdvcmtpbmcgY29ycmVjdGx5IHdpdGggbW9ja2VkIGZ1bmN0aW9uc1xuICAgIH0sIHsgY2FuY2VsVG9rZW46IGV4cGVjdC5hbnkoT2JqZWN0KSB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIHVwbG9hZCB0YWdzIHRvIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdXBsb2FkVGFncyA9IHsgdGVzdDogJzEyMycgfTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IG1vY2tlZFNlc3Npb24sXG4gICAgICB1cmw6IHNvdXJjZVRvU3RvcmUsXG4gICAgICB1cGxvYWRUYWdzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KEZzUmVxdWVzdC5wb3N0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChgJHttb2NrZWRTZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICAgIGFwaWtleTogbW9ja2VkU2Vzc2lvbi5hcGlrZXksXG4gICAgICBzb3VyY2VzOiBbIHNvdXJjZVRvU3RvcmUgXSxcbiAgICAgIHRhc2tzOiBzdG9yZVRhc2tEZWYsXG4gICAgICB1cGxvYWRfdGFnczogdXBsb2FkVGFncyxcbiAgICB9LCB7fSk7XG5cbiAgICBleHBlY3QocmVzLnVwbG9hZFRhZ3MpLnRvRXF1YWwodXBsb2FkVGFncyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igd2hlbiBtaXNzaW5nIHVybCcsICgpID0+IHtcbiAgICByZXR1cm4gZXhwZWN0KHN0b3JlVVJMKHsgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbiB9KSkucmVqZWN0cy50b0VxdWFsKGV4cGVjdC5hbnkoRmlsZXN0YWNrRXJyb3IpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBtaXNzaW5nIGhhbmRsZSBpbiByZXNwb25zZScsICgpID0+IHtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBGc1JlcXVlc3QucG9zdC5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGRhdGE6IHt9LFxuICAgIH0pKTtcblxuICAgIHJldHVybiBleHBlY3Qoc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogbW9ja2VkU2Vzc2lvbixcbiAgICAgIHVybDogc291cmNlVG9TdG9yZSxcbiAgICB9KSkucmVqZWN0cy50b0VxdWFsKGV4cGVjdC5hbnkoRmlsZXN0YWNrRXJyb3IpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJ1biBzdG9yZVVybCB3aXRoIHdvcmtmbG93cycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzdG9yZVVSTCh7XG4gICAgICBzZXNzaW9uOiBtb2NrZWRTZXNzaW9uLFxuICAgICAgdXJsOiBzb3VyY2VUb1N0b3JlLFxuICAgICAgd29ya2Zsb3dJZHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoRnNSZXF1ZXN0LnBvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGAke21vY2tlZFNlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgICAgYXBpa2V5OiBtb2NrZWRTZXNzaW9uLmFwaWtleSxcbiAgICAgIHNvdXJjZXM6IFsgc291cmNlVG9TdG9yZSBdLFxuICAgICAgdGFza3M6IHN0b3JlVGFza0RlZldpdGhXb3JrZmxvd3MsXG4gICAgfSwge30pO1xuICB9KTtcblxufSk7XG4iXX0=

@@ -9,2 +9,3 @@ import { EventEmitter } from 'eventemitter3';

import { PrefetchResponse, PrefetchOptions } from './api/prefetch';
import { FsResponse } from './request/types';
import { StoreParams } from './filelink';

@@ -68,2 +69,3 @@ import { PickerInstance, PickerOptions } from './picker';

export declare class Client extends EventEmitter {
private options?;
session: Session;

@@ -210,6 +212,7 @@ private cloud;

* @param headers Optional headers to send
* @param workflowIds Optional workflowIds to send
*/
storeURL(url: string, storeParams?: StoreParams, token?: any, security?: Security, uploadTags?: UploadTags, headers?: {
[key: string]: string;
}): Promise<Object>;
}, workflowIds?: string[]): Promise<Object>;
/**

@@ -236,2 +239,3 @@ * Access files via their Filestack handles.

* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @deprecated use metadata or download methods instead
* @param handle Valid file handle

@@ -244,2 +248,23 @@ * @param options RetrieveOptions

/**
* Download file by handle
*
*
* ### Browser Example
*
* ```js
* client.download('fileHandle').then((response) => {
* const img = new Image();
* img.src = URL.createObjectURL(res.data)
* document.body.appendChild(img);
* }).catch((err) => {
* console.error(err);
* })
* ```
*
* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @param handle Valid file handle
* @throws Error
*/
download(handle: string, security?: Security): Promise<FsResponse>;
/**
* Interface to the Filestack [Processing API](https://www.filestack.com/docs/api/processing).

@@ -246,0 +271,0 @@ * Convert a URL, handle, or storage alias to another URL which links to the transformed file.

@@ -22,3 +22,3 @@ /*

import { FilestackError } from './../filestack_error';
import { metadata, remove, retrieve } from './api/file';
import { metadata, remove, retrieve, download } from './api/file';
import { transform } from './api/transform';

@@ -54,2 +54,3 @@ import { storeURL } from './api/store';

var _this = _super.call(this) || this;
_this.options = options;
_this.forwardErrors = true;

@@ -60,8 +61,2 @@ /* istanbul ignore if */

}
/* istanbul ignore next */
Sentry.configureScope(function (scope) {
scope.setTag('apikey', apikey);
scope.setTag('sdk-version', Utils.getVersion());
scope.setExtra('clientOptions', options);
});
if (!apikey || typeof apikey !== 'string' || apikey.length === 0) {

@@ -256,4 +251,5 @@ throw new Error('An apikey is required to initialize the Filestack client');

* @param headers Optional headers to send
* @param workflowIds Optional workflowIds to send
*/
Client.prototype.storeURL = function (url, storeParams, token, security, uploadTags, headers) {
Client.prototype.storeURL = function (url, storeParams, token, security, uploadTags, headers, workflowIds) {
return storeURL({

@@ -267,2 +263,3 @@ session: this.session,

headers: headers,
workflowIds: workflowIds,
});

@@ -291,2 +288,3 @@ };

* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @deprecated use metadata or download methods instead
* @param handle Valid file handle

@@ -302,2 +300,26 @@ * @param options RetrieveOptions

/**
* Download file by handle
*
*
* ### Browser Example
*
* ```js
* client.download('fileHandle').then((response) => {
* const img = new Image();
* img.src = URL.createObjectURL(res.data)
* document.body.appendChild(img);
* }).catch((err) => {
* console.error(err);
* })
* ```
*
* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @param handle Valid file handle
* @throws Error
*/
Client.prototype.download = function (handle, security) {
/* istanbul ignore next */
return download(this.session, handle, security);
};
/**
* Interface to the Filestack [Processing API](https://www.filestack.com/docs/api/processing).

@@ -386,2 +408,5 @@ * Convert a URL, handle, or storage alias to another URL which links to the transformed file.

Sentry.withScope(function (scope) {
scope.setTag('filestack-apikey', _this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', _this.options);
scope.setExtras({ uploadOptions: options, storeOptions: storeOptions, details: e.details });

@@ -441,2 +466,5 @@ e.message = "FS-" + e.message;

Sentry.withScope(function (scope) {
scope.setTag('filestack-apikey', _this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', _this.options);
scope.setExtras(e.details);

@@ -454,2 +482,2 @@ scope.setExtras({ uploadOptions: options, storeOptions: storeOptions });

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxFQUFFLFFBQVEsRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQTRELE1BQU0sY0FBYyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RSxPQUFPLEVBQUUsTUFBTSxFQUFpQyxNQUFNLFVBQVUsQ0FBQztBQUVqRSwwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztBQTZDN0U7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0g7SUFBNEIsMEJBQVk7SUFpQnRDLGdCQUFZLE1BQWMsRUFBRSxPQUF1QjtRQUFuRCxZQUNFLGlCQUFPLFNBNkJSO1FBMUNPLG1CQUFhLEdBQVksSUFBSSxDQUFDO1FBZXBDLHdCQUF3QjtRQUN4QixJQUFJLE9B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Q3BCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLGNBQUEsRUFBRSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FqYUEsQUFpYUMsQ0FqYTJCLFlBQVksR0FpYXZDIiwiZmlsZSI6ImxpYi9jbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0ICogYXMgU2VudHJ5IGZyb20gJ0BzZW50cnkvbWluaW1hbCc7XG5pbXBvcnQgeyBjb25maWcsIEhvc3RzIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgbWV0YWRhdGEsIE1ldGFkYXRhT3B0aW9ucywgcmVtb3ZlLCByZXRyaWV2ZSwgUmV0cmlldmVPcHRpb25zIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0sIFRyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVwbG9hZCwgSW5wdXRGaWxlLCBVcGxvYWRPcHRpb25zLCBTdG9yZVVwbG9hZE9wdGlvbnMsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2FwaS91cGxvYWQnO1xuaW1wb3J0IHsgcHJldmlldywgUHJldmlld09wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgUHJlZmV0Y2gsIFByZWZldGNoUmVzcG9uc2UsIFByZWZldGNoT3B0aW9ucyB9IGZyb20gJy4vYXBpL3ByZWZldGNoJztcbmltcG9ydCB7IFN0b3JlUGFyYW1zIH0gZnJvbSAnLi9maWxlbGluayc7XG5cbmltcG9ydCB7IHBpY2tlciwgUGlja2VySW5zdGFuY2UsIFBpY2tlck9wdGlvbnMgfSBmcm9tICcuL3BpY2tlcic7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5TZW50cnkuYWRkQnJlYWRjcnVtYih7IGNhdGVnb3J5OiAnc2RrJywgbWVzc2FnZTogJ2ZpbGVzdGFjay1qcy1zZGsgc2NvcGUnIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb24ge1xuICBhcGlrZXk6IHN0cmluZztcbiAgdXJsczogSG9zdHM7XG4gIGNuYW1lPzogc3RyaW5nO1xuICBwb2xpY3k/OiBzdHJpbmc7XG4gIHNpZ25hdHVyZT86IHN0cmluZztcbiAgcHJlZmV0Y2g/OiBQcmVmZXRjaFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5IHtcbiAgcG9saWN5OiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICBbb3B0aW9uOiBzdHJpbmddOiBhbnk7XG4gIC8qKlxuICAgKiBTZWN1cml0eSBvYmplY3Qgd2l0aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBrZXlzLlxuICAgKiBDYW4gYmUgdXNlZCB0byBsaW1pdCBjbGllbnQgY2FwYWJpbGl0aWVzIGFuZCBwcm90ZWN0IHB1YmxpYyBVUkxzLlxuICAgKiBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggc2VydmVyLXNpZGUgcG9saWN5IGFuZCBzaWduYXR1cmUgZ2VuZXJhdGlvbi5cbiAgICogUmVhZCBhYm91dCBbc2VjdXJpdHkgcG9saWNpZXNdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9jb25jZXB0cy9zZWN1cml0eSkuXG4gICAqL1xuICBzZWN1cml0eT86IFNlY3VyaXR5O1xuICAvKipcbiAgICogRG9tYWluIHRvIHVzZSBmb3IgYWxsIFVSTHMuIF9fUmVxdWlyZXMgdGhlIGN1c3RvbSBDTkFNRSBhZGRvbl9fLlxuICAgKiBJZiB0aGlzIGlzIGVuYWJsZWQgdGhlbiB5b3UgbXVzdCBhbHNvIHNldCB1cCB5b3VyIG93biBPQXV0aCBhcHBsaWNhdGlvbnNcbiAgICogZm9yIGVhY2ggY2xvdWQgc291cmNlIHlvdSB3aXNoIHRvIHVzZSBpbiB0aGUgcGlja2VyLlxuICAgKi9cbiAgY25hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbmFibGUvZGlzYWJsZSBjYWNoaW5nIG9mIHRoZSBjbG91ZCBzZXNzaW9uIHRva2VuLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB1c2VycyB3aWxsIGJlIHJlbWVtYmVyZWQgb24geW91ciBkb21haW4gd2hlbiBjYWxsaW5nIHRoZSBjbG91ZCBBUEkgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdG9rZW5zIHN0b3JlZCBpbiBsb2NhbFN0b3JhZ2UgYXJlIGFjY2Vzc2libGUgYnkgb3RoZXIgc2NyaXB0cyBvbiB0aGUgc2FtZSBkb21haW4uXG4gICAqL1xuICBzZXNzaW9uQ2FjaGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZm9yd2FyZGluZyBlcnJvciBsb2dzIHRvIHNlbnRyeVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZm9yd2FyZEVycm9ycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEZpbGVzdGFjayBjbGllbnQsIHRoZSBlbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBtZXRob2RzLiBFbmNhcHN1bGF0ZXMgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBganNcbiAqIC8vIEVTIG1vZHVsZVxuICogaW1wb3J0ICogYXMgZmlsZXN0YWNrIGZyb20gJ2ZpbGVzdGFjay1qcyc7XG4gKiBjb25zdCBjbGllbnQgPSBmaWxlc3RhY2suaW5pdCgnYXBpa2V5Jyk7XG4gKiBgYGBcbiAqXG4gKiBgYGBqc1xuICogLy8gVU1EIG1vZHVsZSBpbiBicm93c2VyXG4gKiA8c2NyaXB0IHNyYz1cImh0dHBzOi8vc3RhdGljLmZpbGVzdGFja2FwaS5jb20vZmlsZXN0YWNrLWpzLzMueC54L2ZpbGVzdGFjay5taW4uanNcIj48L3NjcmlwdD5cbiAqIGNvbnN0IGNsaWVudCA9IGZpbGVzdGFjay5pbml0KCdhcGlrZXknKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgcHVibGljIHNlc3Npb246IFNlc3Npb247XG4gIHByaXZhdGUgY2xvdWQ6IENsb3VkQ2xpZW50O1xuICBwcml2YXRlIHByZWZldGNoSW5zdGFuY2U6IFByZWZldGNoO1xuXG4gIHByaXZhdGUgZm9yd2FyZEVycm9yczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZmlsZXN0YWNrIHV0aWxzXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBnZXQgdXRpbHMoKSB7XG4gICAgcmV0dXJuIFV0aWxzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYXBpa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZm9yd2FyZEVycm9ycykge1xuICAgICAgdGhpcy5mb3J3YXJkRXJyb3JzID0gb3B0aW9ucy5mb3J3YXJkRXJyb3JzO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgU2VudHJ5LmNvbmZpZ3VyZVNjb3BlKHNjb3BlID0+IHtcbiAgICAgIHNjb3BlLnNldFRhZygnYXBpa2V5JywgYXBpa2V5KTtcbiAgICAgIHNjb3BlLnNldFRhZygnc2RrLXZlcnNpb24nLCBVdGlscy5nZXRWZXJzaW9uKCkpO1xuICAgICAgc2NvcGUuc2V0RXh0cmEoJ2NsaWVudE9wdGlvbnMnLCBvcHRpb25zKTtcbiAgICB9KTtcblxuICAgIGlmICghYXBpa2V5IHx8IHR5cGVvZiBhcGlrZXkgIT09ICdzdHJpbmcnIHx8IGFwaWtleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgICB9XG4gICAgY29uc3QgeyB1cmxzIH0gPSBjb25maWc7XG4gICAgdGhpcy5zZXNzaW9uID0geyBhcGlrZXksIHVybHMgfTtcblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBjb25zdCB7IGNuYW1lLCBzZWN1cml0eSB9ID0gb3B0aW9ucztcblxuICAgICAgdGhpcy5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgICB0aGlzLnNldENuYW1lKGNuYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnByZWZldGNoSW5zdGFuY2UgPSBuZXcgUHJlZmV0Y2godGhpcy5zZXNzaW9uKTtcbiAgICB0aGlzLmNsb3VkID0gbmV3IENsb3VkQ2xpZW50KHRoaXMuc2Vzc2lvbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBiYXNpYyBwcmVmZXRjaCByZXF1ZXN0IHRvIGNoZWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHByZWZldGNoKHBhcmFtczogUHJlZmV0Y2hPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZmV0Y2hJbnN0YW5jZS5nZXRDb25maWcocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2VjdXJpdHkgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldFNlY3VyaXR5KHNlY3VyaXR5OiBTZWN1cml0eSkge1xuICAgIGlmIChzZWN1cml0eSAmJiAhKHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSkge1xuICAgICAgdGhpcy5zZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5LnBvbGljeTtcbiAgICAgIHRoaXMuc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eS5zaWduYXR1cmU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXN0b20gY25hbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNuYW1lXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIHNldENuYW1lKGNuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNuYW1lIHx8IGNuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2Vzc2lvbi5jbmFtZSA9IGNuYW1lO1xuICAgIHRoaXMuc2Vzc2lvbi51cmxzID0gVXRpbHMucmVzb2x2ZUhvc3QodGhpcy5zZXNzaW9uLnVybHMsIGNuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY3VycmVudCBjbG91ZCBzZXNzaW9ucyBpbiB0aGUgcGlja2VyLlxuICAgKiBPcHRpb25hbGx5IHBhc3MgYSBjbG91ZCBzb3VyY2UgbmFtZSB0byBvbmx5IGxvZyBvdXQgb2YgdGhhdCBjbG91ZCBzb3VyY2UuXG4gICAqIFRoaXMgZXNzZW50aWFsbHkgY2xlYXJzIHRoZSBPQXV0aCBhdXRob3JpemF0aW9uIGNvZGVzIGZyb20gdGhlIEZpbGVzdGFjayBzZXNzaW9uLlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBjbG91ZCBzb3VyY2UgbmFtZS5cbiAgICovXG4gIGxvZ291dChuYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvdWQubG9nb3V0KG5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBkZXRhaWxlZCBkYXRhIG9mIHN0b3JlZCBmaWxlcy5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLm1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gTWV0YWRhdGFdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNtZXRhZGF0YSkuXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgTWV0YWRhdGEgZmllbGRzIHRvIGVuYWJsZSBvbiByZXNwb25zZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgbWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBNZXRhZGF0YU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBtZXRhZGF0YSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBuZXcgcGlja2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcGlja2VyKG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2Uge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHBpY2tlcih0aGlzLCBvcHRpb25zKTtcbiAgfVxuICAvKipcbiAgICogVXNlZCBmb3Igdmlld2luZyBmaWxlcyB2aWEgRmlsZXN0YWNrIGhhbmRsZXMgb3Igc3RvcmFnZSBhbGlhc2VzLCBfX3JlcXVpcmVzIERvY3VtZW50IFZpZXdlciBhZGRvbiB0byB5b3VyIEZpbGVzdGFjayBhcHBsaWNhdGlvbl9fLlxuICAgKiBPcGVucyBkb2N1bWVudCB2aWV3ZXIgaW4gbmV3IHdpbmRvdyBpZiBpZCBvcHRpb24gaXMgbm90IHByb3ZpZGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8ZGl2IGlkPVwicHJldmlld1wiPjwvZGl2PlxuICAgKlxuICAgKiBjbGllbnQucHJldmlldygnRENMNUs0NkZTM09JeGI1aXVLYnknLCB7IGlkOiAncHJldmlldycgfSk7XG4gICAqIGBgYFxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIFByZXZpZXcgb3B0aW9uc1xuICAgKi9cbiAgcHJldmlldyhoYW5kbGU6IHN0cmluZywgb3B0aW9ucz86IFByZXZpZXdPcHRpb25zKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcHJldmlldyh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGZpbGUgZnJvbSBzdG9yYWdlIGFuZCB0aGUgRmlsZXN0YWNrIHN5c3RlbS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZShoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8YW55PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmVtb3ZlKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBmYWxzZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlICoqb25seSoqIGZyb20gdGhlIEZpbGVzdGFjayBzeXN0ZW0uIFRoZSBmaWxlIHJlbWFpbnMgaW4gc3RvcmFnZS5cbiAgICpcbiAgICogX19SZXF1aXJlcyBhIHZhbGlkIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlX18uIFRoZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBjbGllbnQgc2Vzc2lvbiwgb3IgaXQgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAucmVtb3ZlTWV0YWRhdGEoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JylcbiAgICogICAudGhlbigocmVzKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgfSkpO1xuICAgKiBgYGBcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEZWxldGVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkZWxldGUpXG4gICAqIEBwYXJhbSBoYW5kbGUgVmFsaWQgRmlsZXN0YWNrIGhhbmRsZS5cbiAgICogQHBhcmFtIHNlY3VyaXR5IE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKi9cbiAgcmVtb3ZlTWV0YWRhdGEoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgdHJ1ZSwgc2VjdXJpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBTdG9yZSBhIGZpbGUgZnJvbSBpdHMgVVJMLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnRcbiAgICogICAuc3RvcmVVUkwoJ2h0dHBzOi8vZDF3dHFhZmZhYWo2M3ouY2xvdWRmcm9udC5uZXQvaW1hZ2VzL05ZXzE5OV9FX29mX0hhbW1lcnRvd25fMjAxNC5qcGcnKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gU3RvcmVdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNzdG9yZSlcbiAgICogQHBhcmFtIHVybCAgICAgICBWYWxpZCBVUkwgdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAgIENvbmZpZ3VyZSBmaWxlIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgT3B0aW9uYWwgY29udHJvbCB0b2tlbiB0byBjYWxsIC5jYW5jZWwoKVxuICAgKiBAcGFyYW0gc2VjdXJpdHkgIE9wdGlvbmFsIHNlY3VyaXR5IG92ZXJyaWRlLlxuICAgKiBAcGFyYW0gdXBsb2FkVGFncyBPcHRpb25hbCB0YWdzIHZpc2libGUgaW4gd2ViaG9va3MuXG4gICAqIEBwYXJhbSBoZWFkZXJzICAgIE9wdGlvbmFsIGhlYWRlcnMgdG8gc2VuZFxuICAgKi9cbiAgc3RvcmVVUkwodXJsOiBzdHJpbmcsIHN0b3JlUGFyYW1zPzogU3RvcmVQYXJhbXMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5LCB1cGxvYWRUYWdzPzogVXBsb2FkVGFncywgaGVhZGVycz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KTogUHJvbWlzZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gc3RvcmVVUkwoe1xuICAgICAgc2Vzc2lvbjogdGhpcy5zZXNzaW9uLFxuICAgICAgdXJsLFxuICAgICAgc3RvcmVQYXJhbXMsXG4gICAgICB0b2tlbixcbiAgICAgIHNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzIGZpbGVzIHZpYSB0aGVpciBGaWxlc3RhY2sgaGFuZGxlcy5cbiAgICpcbiAgICogSWYgaGVhZCBvcHRpb24gaXMgcHJvdmlkZWQgLSByZXF1ZXN0IGhlYWRlcnMgYXJlIHJldHVybmVkIGluIHByb21pc2VcbiAgICogSWYgbWV0YWRhdGEgb3B0aW9uIGlzIHByb3ZpZGVkIC0gbWV0YWRhdGEgb2JqZWN0IGlzIHJldHVybmVkIGluIHByb21pc2VcbiAgICogT3RoZXJ3aXNlIGZpbGUgYmxvYiBpcyByZXR1cm5lZFxuICAgKiBNZXRhZGF0YSBhbmQgaGVhZCBvcHRpb25zIGNhbm5vdCBiZSBtaXhlZFxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnQucmV0cmlldmUoJ2ZpbGVIYW5kbGUnLCB7XG4gICAqICBtZXRhZGF0YTogdHJ1ZSxcbiAgICogfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICogIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICogfSkuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgKiB9KVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEb3dubG9hZF0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2Rvd25sb2FkKVxuICAgKiBAcGFyYW0gaGFuZGxlICAgIFZhbGlkIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSBvcHRpb25zICAgUmV0cmlldmVPcHRpb25zXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqIEB0aHJvd3MgICAgICAgICAgRXJyb3JcbiAgICovXG4gIHJldHJpZXZlKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogUmV0cmlldmVPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxPYmplY3QgfCBCbG9iPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gcmV0cmlldmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcmZhY2UgdG8gdGhlIEZpbGVzdGFjayBbUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZykuXG4gICAqIENvbnZlcnQgYSBVUkwsIGhhbmRsZSwgb3Igc3RvcmFnZSBhbGlhcyB0byBhbm90aGVyIFVSTCB3aGljaCBsaW5rcyB0byB0aGUgdHJhbnNmb3JtZWQgZmlsZS5cbiAgICogWW91IGNhbiBvcHRpb25hbGx5IHN0b3JlIHRoZSByZXR1cm5lZCBVUkwgd2l0aCBjbGllbnQuc3RvcmVVUkwuXG4gICAqXG4gICAqIFRyYW5zZm9ybSBwYXJhbXMgY2FuIGJlIHByb3ZpZGVkIGluIGNhbWVsQ2FzZSBvciBzbmFrZUNhc2Ugc3R5bGUgaWU6IHBhcnRpYWxfcGl4ZWxhdGUgb3IgcGFydGlhbFBpeGVsYXRlXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRyYW5zZm9ybWVkVXJsID0gY2xpZW50LnRyYW5zZm9ybSh1cmwsIHtcbiAgICogICBjcm9wOiB7XG4gICAqICAgICBkaW06IFt4LCB5LCB3aWR0aCwgaGVpZ2h0XSxcbiAgICogICB9LFxuICAgKiAgIHZpZ25ldHRlOiB7XG4gICAqICAgICBibHVybW9kZTogJ2dhdXNzaWFuJyxcbiAgICogICAgIGFtb3VudDogNTAsXG4gICAqICAgfSxcbiAgICogICBmbGlwOiB0cnVlLFxuICAgKiAgIHBhcnRpYWxfcGl4ZWxhdGU6IHtcbiAgICogICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICAgKiAgIH0sXG4gICAqIH07XG4gICAqXG4gICAqIC8vIG9wdGlvbmFsbHkgc3RvcmUgdGhlIG5ldyBVUkxcbiAgICogY2xpZW50LnN0b3JlVVJMKHRyYW5zZm9ybWVkVXJsKS50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGVzdGFjayBQcm9jZXNzaW5nIEFQSV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9wcm9jZXNzaW5nKVxuICAgKiBAcGFyYW0gdXJsICAgICBTaW5nbGUgb3IgbXVsdGlwbGUgdmFsaWQgVVJMcyAoaHR0cChzKTovLyksIGZpbGUgaGFuZGxlcywgb3Igc3RvcmFnZSBhbGlhc2VzIChzcmM6Ly8pIHRvIGFuIGltYWdlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUcmFuc2Zvcm1hdGlvbnMgYXJlIGFwcGxpZWQgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBieSB0aGlzIG9iamVjdC5cbiAgICogQHBhcmFtIGI2NCAgICAgVXNlIG5ldyBtb3JlIHNhZmUgZm9ybWF0IGZvciBnZW5lcmF0aW5nIHRyYW5zZm9ybXMgdXJsIChkZWZhdWx0PWZhbHNlKSBOb3RlOiBJZiB0aGVyZSB3aWxsIGJlIGFueSBpc3N1ZXMgd2l0aCB1cmwgcGxlYXNlIHRlc3QgaXQgd2l0aCBlbmFibGVkIGI2NCBzdXBwb3J0XG4gICAqIEByZXR1cm5zICAgICAgIEEgbmV3IFVSTCB0aGF0IHBvaW50cyB0byB0aGUgdHJhbnNmb3JtZWQgcmVzb3VyY2UuXG4gICAqL1xuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogVHJhbnNmb3JtT3B0aW9ucywgYjY0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0cmFuc2Zvcm0odGhpcy5zZXNzaW9uLCB1cmwsIG9wdGlvbnMsIGI2NCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoZmlsZSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC51cGxvYWQoe2ZpbGUsIG5hbWV9LCB7IG9uUmV0cnkgfSwgeyBmaWxlbmFtZTogJ2Zvb2Jhci5qcGcnIH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlfSAgICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIHVwbG9hZChmaWxlOiBJbnB1dEZpbGUsIG9wdGlvbnM/OiBVcGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnM/OiBTdG9yZVVwbG9hZE9wdGlvbnMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgbGV0IHVwbG9hZCA9IG5ldyBVcGxvYWQob3B0aW9ucywgc3RvcmVPcHRpb25zKTtcbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHVwbG9hZC5vbignZXJyb3InLCBlID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcndhcmRFcnJvcnMpIHtcbiAgICAgICAgU2VudHJ5LndpdGhTY29wZShzY29wZSA9PiB7XG4gICAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zLCBkZXRhaWxzOiBlLmRldGFpbHMgfSk7XG4gICAgICAgICAgZS5tZXNzYWdlID0gYEZTLSR7ZS5tZXNzYWdlfWA7XG5cbiAgICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdCgndXBsb2FkLmVycm9yJywgZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBsb2FkLnVwbG9hZChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBtdWx0aS1wYXJ0IHVwbG9hZCBmbG93LiBVc2UgdGhpcyBmb3IgRmlsZXN0YWNrIENJTiBhbmQgRklJIHVwbG9hZHMuXG4gICAqXG4gICAqIEluIE5vZGUgcnVudGltZXMgdGhlIGZpbGUgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGUgcGF0aC5cbiAgICogVXBsb2FkaW5nIGZyb20gYSBOb2RlIGJ1ZmZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0b2tlbiA9IHt9O1xuICAgKiBjb25zdCBvblJldHJ5ID0gKG9iaikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZXRyeWluZyAke29iai5sb2NhdGlvbn0gZm9yICR7b2JqLmZpbGVuYW1lfS4gQXR0ZW1wdCAke29iai5hdHRlbXB0fSBvZiAxMC5gKTtcbiAgICogfTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFtmaWxlXSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogY2xpZW50Lm11bHRpdXBsb2FkKFt7ZmlsZSwgbmFtZX1dLCB7IG9uUmV0cnkgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiB0b2tlbi5wYXVzZSgpOyAgLy8gUGF1c2UgZmxvd1xuICAgKiB0b2tlbi5yZXN1bWUoKTsgLy8gUmVzdW1lIGZsb3dcbiAgICogdG9rZW4uY2FuY2VsKCk7IC8vIENhbmNlbCBmbG93IChyZWplY3RzKVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtJbnB1dEZpbGVbXX0gIGZpbGUgICAgICAgICAgIE11c3QgYmUgYSB2YWxpZCBbRmlsZSB8IEJsb2IgfCBCdWZmZXIgfCBzdHJpbmcgKGJhc2U2NCldXG4gICAqIEBwYXJhbSB1cGxvYWRPcHRpb25zICBVcGxvYWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHN0b3JlT3B0aW9ucyAgIFN0b3JhZ2Ugb3B0aW9ucy5cbiAgICogQHBhcmFtIHRva2VuICAgICAgICAgIEEgY29udHJvbCB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgY2FuY2VsKCksIHBhdXNlKCksIGFuZCByZXN1bWUoKS5cbiAgICogQHBhcmFtIHNlY3VyaXR5ICAgICAgIE9wdGlvbmFsIHNlY3VyaXR5IHBvbGljeSBhbmQgc2lnbmF0dXJlIG92ZXJyaWRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIG11bHRpdXBsb2FkKGZpbGU6IElucHV0RmlsZVtdLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG5cbiAgICB1cGxvYWQuc2V0U2Vzc2lvbih0aGlzLnNlc3Npb24pO1xuXG4gICAgaWYgKHRva2VuKSB7XG4gICAgICB1cGxvYWQuc2V0VG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChzZWN1cml0eSkge1xuICAgICAgdXBsb2FkLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHVwbG9hZC5vbignZXJyb3InLCBlID0+IHtcbiAgICAgIFNlbnRyeS53aXRoU2NvcGUoc2NvcGUgPT4ge1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoZS5kZXRhaWxzKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKHsgdXBsb2FkT3B0aW9uczogb3B0aW9ucywgc3RvcmVPcHRpb25zIH0pO1xuICAgICAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19
//# 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

@@ -160,3 +160,3 @@ import { __awaiter, __generator } from "tslib";

it('should be able to store url', function () { return __awaiter(void 0, void 0, void 0, function () {
var client, url, options, token, uploadTags;
var client, url, options, token, uploadTags, headers, workflowIds;
return __generator(this, function (_a) {

@@ -170,3 +170,5 @@ switch (_a.label) {

uploadTags = { test: '123' };
return [4 /*yield*/, client.storeURL(url, options, token, defaultSecurity, uploadTags)];
headers = { 'test': '123' };
workflowIds = ['123', '321'];
return [4 /*yield*/, client.storeURL(url, options, token, defaultSecurity, uploadTags, headers, workflowIds)];
case 1:

@@ -181,2 +183,4 @@ _a.sent();

uploadTags: uploadTags,
headers: headers,
workflowIds: workflowIds,
});

@@ -364,2 +368,2 @@ return [2 /*return*/];

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUU3QixRQUFRLENBQUMsUUFBUSxFQUFFO0lBQ2pCLElBQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0lBQ3hDLElBQU0s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QixZQUFZLEdBQUcsRUFBRSxDQUFDO29CQUNsQixLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUVqQixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUVwRSxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFFaEQsSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QyxNQUFNLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQVUsT0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQVIsQ0FBUSxDQUFDLENBQUM7b0JBRXhGLHFCQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUFBOztvQkFBcEYsU0FBb0YsQ0FBQztvQkFFckYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDOzs7O1NBQ2hELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9jbGllbnQuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vLi4vY29uZmlnJztcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4vY2xpZW50JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgVXBsb2FkIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3VwbG9hZCc7XG5pbXBvcnQgeyBwaWNrZXIgfSBmcm9tICcuL3BpY2tlcic7XG5pbXBvcnQgeyBwcmV2aWV3IH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBtZXRhZGF0YSwgcmVtb3ZlLCByZXRyaWV2ZSB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuXG5qZXN0Lm1vY2soJy4vYXBpL3VwbG9hZC91cGxvYWQnKTtcbmplc3QubW9jaygnLi9hcGkvY2xvdWQnKTtcbmplc3QubW9jaygnLi9hcGkvZmlsZScpO1xuamVzdC5tb2NrKCcuL2FwaS9zdG9yZScpO1xuamVzdC5tb2NrKCcuL3BpY2tlcicpO1xuamVzdC5tb2NrKCcuL2FwaS9wcmV2aWV3Jyk7XG5qZXN0Lm1vY2soJy4vYXBpL3RyYW5zZm9ybScpO1xuXG5kZXNjcmliZSgnY2xpZW50JywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0QXBpa2V5ID0gJ0VYQU1QTEVfQVBJX0tFWSc7XG4gIGNvbnN0IGRlZmF1bHRIYW5kbGUgPSAnRVhBTVBMRV9IQU5ETEUnO1xuICBjb25zdCBkZWZhdWx0U2VjdXJpdHkgPSB7XG4gICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgc2lnbmF0dXJlOiAnZXhhbXBsZVNpZ25hdHVyZScsXG4gIH07XG5cbiAgY29uc3Qgc2Vzc2lvblVSbHMgPSBjb25maWcudXJscztcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICB9O1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgaW5zdGFudGlhdGUgQ2xpZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgZXhwZWN0KGNsaWVudCkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlSW5zdGFuY2VPZihDbGllbnQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGFwaSBrZXkgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IENsaWVudCgnJyk7XG4gICAgfSkudG9UaHJvdygnQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBwcm92aWRlZCBzZWN1cml0eSB3aXRob3V0IHNpZ25hdHVyZScsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IHtcbiAgICAgICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgICAgIHNpZ25hdHVyZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXksIG9wdGlvbnMpO1xuICAgIH0pLnRvVGhyb3coJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIHBvbGljeSAmIHNpZ25hdHVyZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnBvbGljeSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnBvbGljeSk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnNpZ25hdHVyZSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnNpZ25hdHVyZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyBjbmFtZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgY25hbWU6ICd0ZXN0Q25hbWUuY29tJyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLmNuYW1lKS50b0JlKG9wdGlvbnMuY25hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gbG9nb3V0IGZvciBwcm92aWVkIGNsb3VkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgY2xvdWROYW1lID0gJ2Ryb3Bib3gnO1xuICAgIGF3YWl0IGNsaWVudC5sb2dvdXQoY2xvdWROYW1lKTtcblxuICAgIGV4cGVjdChDbG91ZENsaWVudC5wcm90b3R5cGUubG9nb3V0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbG91ZE5hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCBtZXRhZGF0YSBmb3IgYSBwcm92aWRlZCBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2hhMjI0OiB0cnVlLFxuICAgIH07XG5cbiAgICBhd2FpdCBjbGllbnQubWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgb3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QobWV0YWRhdGEpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwaWNrZXInLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwaWNrZXJPcHRpb25zID0ge1xuICAgICAgbGFuZzogJ2RlJyxcbiAgICB9O1xuICAgIGNsaWVudC5waWNrZXIocGlja2VyT3B0aW9ucyk7XG5cbiAgICBleHBlY3QocGlja2VyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbGllbnQsIHBpY2tlck9wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwcmV2aWV3JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgcHJldmlld09wdGlvbnMgPSB7XG4gICAgICBpZDogJ3Rlc3RFbGVtZW50JyxcbiAgICB9O1xuICAgIGNsaWVudC5wcmV2aWV3KGRlZmF1bHRIYW5kbGUsIHByZXZpZXdPcHRpb25zKTtcblxuICAgIGV4cGVjdChwcmV2aWV3KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gcmVtb3ZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmUoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmVtb3ZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgZmFsc2UsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgbWV0YWRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBhd2FpdCBjbGllbnQucmVtb3ZlTWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cnVlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gc3RvcmUgdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdXJsID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9pbWczLmpwZyc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG4gICAgY29uc3QgdXBsb2FkVGFncyA9IHsgdGVzdDogJzEyMycgfTtcbiAgICBhd2FpdCBjbGllbnQuc3RvcmVVUkwodXJsLCBvcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5LCB1cGxvYWRUYWdzKTtcblxuICAgIGV4cGVjdChzdG9yZVVSTCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgc2Vzc2lvbjogZGVmYXVsdFNlc3Npb24sXG4gICAgICB1cmwsXG4gICAgICBzdG9yZVBhcmFtczogb3B0aW9ucyxcbiAgICAgIHRva2VuLFxuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCByZXRyaWV2ZU9wdGlvbnMgPSB7fTtcblxuICAgIGF3YWl0IGNsaWVudC5yZXRyaWV2ZShkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gICAgZXhwZWN0KHJldHJpZXZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcmV0cmlldmVPcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRoIGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBiNjQgPSB0cnVlO1xuICAgIGNsaWVudC50cmFuc2Zvcm0oZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHRyYW5zZm9ybSB1cmwgd2l0aG91dCBiNjQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1PcHRpb25zID0ge1xuICAgICAgYmx1cjoge1xuICAgICAgICBhbW91bnQ6IDUsXG4gICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zKTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgZmFsc2UpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ3VwbG9hZCcpLmFuZC5yZXR1cm5WYWx1ZShQcm9taXNlLnJlc29sdmUoKSk7XG5cbiAgICBhd2FpdCBjbGllbnQudXBsb2FkKGZpbGUsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucywgdG9rZW4sIGRlZmF1bHRTZWN1cml0eSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZXNzaW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgICB1cmxzOiBzZXNzaW9uVVJscyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFRva2VuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0b2tlbik7XG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2VjdXJpdHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZWN1cml0eSk7XG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUudXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwbG9hZCBmaWxlIHdpdGhvdXQgdG9rZW4gYW5kIHNlY3VyaXR5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUudXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlbWl0IGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCBtb2NrT25FcnJvciA9IGplc3QuZm4oKS5tb2NrTmFtZSgnbW9ja09uRXJyb3InKTtcblxuICAgIGNvbnN0IHRlc3QgPSBuZXcgRmlsZXN0YWNrRXJyb3IoJ3Rlc3QnKTtcblxuICAgIGNsaWVudC5vbigndXBsb2FkLmVycm9yJywgbW9ja09uRXJyb3IpO1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnb24nKS5tb2NrSW1wbGVtZW50YXRpb24oKG5hbWUsIGNiLCBjdHgpOiBhbnkgPT4gY2IodGVzdCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KG1vY2tPbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIG11bHRpdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlcyA9IFsnYW55RmlsZSddO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNhbGwgbXVsdGl1cGxvYWQgd2l0aG91dCBzZWN1cml0eSBvciB0b2tlbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuXG4gICAgc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUubXVsdGl1cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGVzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlbWl0IGVycm9yIGZvciBtdWx0aXVwbG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgY29uc3QgbW9ja09uRXJyb3IgPSBqZXN0LmZuKCkubW9ja05hbWUoJ21vY2tPbkVycm9yJyk7XG5cbiAgICBjb25zdCB0ZXN0ID0gbmV3IEZpbGVzdGFja0Vycm9yKCd0ZXN0Jyk7XG5cbiAgICBjbGllbnQub24oJ3VwbG9hZC5lcnJvcicsIG1vY2tPbkVycm9yKTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ29uJykubW9ja0ltcGxlbWVudGF0aW9uKChuYW1lLCBjYiwgY3R4KTogYW55ID0+IGNiKHRlc3QpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChtb2NrT25FcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgodGVzdCk7XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUU3QixRQUFRLENBQUMsUUFBUSxFQUFFO0lBQ2pCLElBQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0lBQ3hDLElBQU0s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QUVILEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRTs7Ozs7b0JBQ2hDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDbkMsS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3BCLGFBQWEsR0FBRyxFQUFFLENBQUM7b0JBQ25CLFlBQVksR0FBRyxFQUFFLENBQUM7b0JBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBRWpCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBRXBFLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUVoRCxJQUFJLEdBQUcsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRXhDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBVSxPQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBUixDQUFRLENBQUMsQ0FBQztvQkFFeEYscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLEVBQUE7O29CQUFwRixTQUFvRixDQUFDO29CQUVyRixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7U0FDaEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL2NsaWVudC5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuaW1wb3J0IHsgQ2xvdWRDbGllbnQgfSBmcm9tICcuL2FwaS9jbG91ZCc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICcuL2FwaS91cGxvYWQvdXBsb2FkJztcbmltcG9ydCB7IHBpY2tlciB9IGZyb20gJy4vcGlja2VyJztcbmltcG9ydCB7IHByZXZpZXcgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IG1ldGFkYXRhLCByZW1vdmUsIHJldHJpZXZlIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vYXBpL3N0b3JlJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4vYXBpL3RyYW5zZm9ybSc7XG5cbmplc3QubW9jaygnLi9hcGkvdXBsb2FkL3VwbG9hZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9jbG91ZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9maWxlJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3N0b3JlJyk7XG5qZXN0Lm1vY2soJy4vcGlja2VyJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3ByZXZpZXcnKTtcbmplc3QubW9jaygnLi9hcGkvdHJhbnNmb3JtJyk7XG5cbmRlc2NyaWJlKCdjbGllbnQnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRBcGlrZXkgPSAnRVhBTVBMRV9BUElfS0VZJztcbiAgY29uc3QgZGVmYXVsdEhhbmRsZSA9ICdFWEFNUExFX0hBTkRMRSc7XG4gIGNvbnN0IGRlZmF1bHRTZWN1cml0eSA9IHtcbiAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICBzaWduYXR1cmU6ICdleGFtcGxlU2lnbmF0dXJlJyxcbiAgfTtcblxuICBjb25zdCBzZXNzaW9uVVJscyA9IGNvbmZpZy51cmxzO1xuICBjb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgdXJsczogc2Vzc2lvblVSbHMsXG4gIH07XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBpbnN0YW50aWF0ZSBDbGllbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjbGllbnQpLnRvQmVJbnN0YW5jZU9mKENsaWVudCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgYXBpIGtleSBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KCcnKTtcbiAgICB9KS50b1Rocm93KCdBbiBhcGlrZXkgaXMgcmVxdWlyZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRmlsZXN0YWNrIGNsaWVudCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHByb3ZpZGVkIHNlY3VyaXR5IHdpdGhvdXQgc2lnbmF0dXJlJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eToge1xuICAgICAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICAgICAgc2lnbmF0dXJlOiAnJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgfSkudG9UaHJvdygnQm90aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIGNsaWVudCBzZWN1cml0eScpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhc3MgcG9saWN5ICYgc2lnbmF0dXJlIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24ucG9saWN5KS50b0JlKG9wdGlvbnMuc2VjdXJpdHkucG9saWN5KTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uc2lnbmF0dXJlKS50b0JlKG9wdGlvbnMuc2VjdXJpdHkuc2lnbmF0dXJlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIGNuYW1lIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBjbmFtZTogJ3Rlc3RDbmFtZS5jb20nLFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uY25hbWUpLnRvQmUob3B0aW9ucy5jbmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBsb2dvdXQgZm9yIHByb3ZpZWQgY2xvdWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBjbG91ZE5hbWUgPSAnZHJvcGJveCc7XG4gICAgYXdhaXQgY2xpZW50LmxvZ291dChjbG91ZE5hbWUpO1xuXG4gICAgZXhwZWN0KENsb3VkQ2xpZW50LnByb3RvdHlwZS5sb2dvdXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsb3VkTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2V0IG1ldGFkYXRhIGZvciBhIHByb3ZpZGVkIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzaGEyMjQ6IHRydWUsXG4gICAgfTtcblxuICAgIGF3YWl0IGNsaWVudC5tZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChtZXRhZGF0YSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIG9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHBpY2tlcicsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHBpY2tlck9wdGlvbnMgPSB7XG4gICAgICBsYW5nOiAnZGUnLFxuICAgIH07XG4gICAgY2xpZW50LnBpY2tlcihwaWNrZXJPcHRpb25zKTtcblxuICAgIGV4cGVjdChwaWNrZXIpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsaWVudCwgcGlja2VyT3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHByZXZpZXcnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwcmV2aWV3T3B0aW9ucyA9IHtcbiAgICAgIGlkOiAndGVzdEVsZW1lbnQnLFxuICAgIH07XG4gICAgY2xpZW50LnByZXZpZXcoZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuXG4gICAgZXhwZWN0KHByZXZpZXcpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBwcmV2aWV3T3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgaGFuZGxlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgYXdhaXQgY2xpZW50LnJlbW92ZShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBmYWxzZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBtZXRhZGF0YScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmVNZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KHJlbW92ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIHRydWUsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBzdG9yZSB1cmwnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB1cmwgPSAnaHR0cDovL2V4YW1wbGUuY29tL2ltZzMuanBnJztcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCB1cGxvYWRUYWdzID0geyB0ZXN0OiAnMTIzJyB9O1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICd0ZXN0JzogJzEyMycgfTtcbiAgICBjb25zdCB3b3JrZmxvd0lkcyA9IFsnMTIzJywgJzMyMSddO1xuICAgIGF3YWl0IGNsaWVudC5zdG9yZVVSTCh1cmwsIG9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHksIHVwbG9hZFRhZ3MsaGVhZGVycywgd29ya2Zsb3dJZHMpO1xuXG4gICAgZXhwZWN0KHN0b3JlVVJMKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBzZXNzaW9uOiBkZWZhdWx0U2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zOiBvcHRpb25zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICB3b3JrZmxvd0lkcyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHJldHJpZXZlT3B0aW9ucyA9IHt9O1xuXG4gICAgYXdhaXQgY2xpZW50LnJldHJpZXZlKGRlZmF1bHRIYW5kbGUsIHJldHJpZXZlT3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmV0cmlldmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB0cmFuc2Zvcm0gdXJsIHdpdGggYjY0JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdHJhbnNmb3JtT3B0aW9ucyA9IHtcbiAgICAgIGJsdXI6IHtcbiAgICAgICAgYW1vdW50OiA1LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGI2NCA9IHRydWU7XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRob3V0IGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnQudHJhbnNmb3JtKGRlZmF1bHRIYW5kbGUsIHRyYW5zZm9ybU9wdGlvbnMpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGxvYWQgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUgd2l0aG91dCB0b2tlbiBhbmQgc2VjdXJpdHknLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcblxuICAgIHNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVtaXQgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuICAgIGNvbnN0IG1vY2tPbkVycm9yID0gamVzdC5mbigpLm1vY2tOYW1lKCdtb2NrT25FcnJvcicpO1xuXG4gICAgY29uc3QgdGVzdCA9IG5ldyBGaWxlc3RhY2tFcnJvcigndGVzdCcpO1xuXG4gICAgY2xpZW50Lm9uKCd1cGxvYWQuZXJyb3InLCBtb2NrT25FcnJvcik7XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdvbicpLm1vY2tJbXBsZW1lbnRhdGlvbigobmFtZSwgY2IsIGN0eCk6IGFueSA9PiBjYih0ZXN0KSk7XG5cbiAgICBhd2FpdCBjbGllbnQudXBsb2FkKGZpbGUsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucywgdG9rZW4sIGRlZmF1bHRTZWN1cml0eSk7XG5cbiAgICBleHBlY3QobW9ja09uRXJyb3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRlc3QpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gbXVsdGl1cGxvYWQgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLm11bHRpdXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY2FsbCBtdWx0aXVwbG9hZCB3aXRob3V0IHNlY3VyaXR5IG9yIHRva2VuJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBzcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5hbmQucmV0dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVtaXQgZXJyb3IgZm9yIG11bHRpdXBsb2FkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcblxuICAgIHNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdtdWx0aXVwbG9hZCcpLmFuZC5yZXR1cm5WYWx1ZShQcm9taXNlLnJlc29sdmUoKSk7XG5cbiAgICBjb25zdCBtb2NrT25FcnJvciA9IGplc3QuZm4oKS5tb2NrTmFtZSgnbW9ja09uRXJyb3InKTtcblxuICAgIGNvbnN0IHRlc3QgPSBuZXcgRmlsZXN0YWNrRXJyb3IoJ3Rlc3QnKTtcblxuICAgIGNsaWVudC5vbigndXBsb2FkLmVycm9yJywgbW9ja09uRXJyb3IpO1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnb24nKS5tb2NrSW1wbGVtZW50YXRpb24oKG5hbWUsIGNiLCBjdHgpOiBhbnkgPT4gY2IodGVzdCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KG1vY2tPbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0KTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -42,2 +42,5 @@ import { __awaiter, __generator } from "tslib";

var request = new XMLHttpRequest();
if (config.blobResponse) {
request.responseType = 'blob';
}
// HTTP basic authentication

@@ -165,2 +168,2 @@ if (config.auth) {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9hZGFwdGVycy94aHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssS0FBSyxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQWdDLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssSUFBSSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdGLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RDLElBQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQztBQUVyQztJQUFBO0lBNEpBLENBQUM7SUExSkMsNEJBQU8sR0FBUCxVQUFRLE1BQXdCO1FBQWhDLGlCQXlKQztRQXhKQyxrREFBa0Q7UUFDbEQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7WUFDbEQsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUNoQztRQUVELE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVoQyxJQUFBLGtCQUFJLEVBQUUsd0JBQU8sQ0FBWTtRQUUvQixpRUFBaUU7UUFDakUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUVuQyw0QkFBNEI7UUFDNUIsSUFBSSxNQUFN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O2FBQ0Y7WUFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoSCwrRUFBK0U7Z0JBQy9FLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDbEIsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDaEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQ2hDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN6RDthQUNGO1lBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0E1SkEsQUE0SkMsSUFBQSIsImZpbGUiOiJsaWIvcmVxdWVzdC9hZGFwdGVycy94aHIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWRhcHRlckludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEZzUmVxdWVzdE9wdGlvbnMsIEZzUmVzcG9uc2UsIEZzSHR0cE1ldGhvZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEZzUmVxdWVzdEVycm9yLCBGc1JlcXVlc3RFcnJvckNvZGUgfSBmcm9tICcuLi9lcnJvcic7XG5pbXBvcnQgeyBwcmVwYXJlRGF0YSwgcGFyc2VSZXNwb25zZSwgcGFyc2UgYXMgcGFyc2VIZWFkZXJzLCBjb21iaW5lVVJMIH0gZnJvbSAnLi8uLi9oZWxwZXJzJztcblxuY29uc3QgZGVidWcgPSBEZWJ1ZygnZnM6cmVxdWVzdDp4aHInKTtcbmNvbnN0IENBTkNFTF9DTEVBUiA9IGBGc0NsZWFuTWVtb3J5YDtcblxuZXhwb3J0IGNsYXNzIFhockFkYXB0ZXIgaW1wbGVtZW50cyBBZGFwdGVySW50ZXJmYWNlIHtcblxuICByZXF1ZXN0KGNvbmZpZzogRnNSZXF1ZXN0T3B0aW9ucykge1xuICAgIC8vIGlmIHRoaXMgb3B0aW9uIGlzIHVuc3BlY2lmaWVkIHNldCBpdCBieSBkZWZhdWx0XG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmlsZXN0YWNrSGVhZGVycyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbmZpZy5maWxlc3RhY2tIZWFkZXJzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25maWcgPSBwcmVwYXJlRGF0YShjb25maWcpO1xuICAgIGNvbmZpZy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG5cbiAgICBsZXQgeyBkYXRhLCBoZWFkZXJzIH0gPSBjb25maWc7XG5cbiAgICAvLyBpZiBkYXRhIGlzIHR5cGUgb2YgZm9ybSBsZXQgYnJvd3NlciB0byBzZXQgcHJvcGVyIGNvbnRlbnQgdHlwZVxuICAgIGlmICh1dGlscy5pc0Zvcm1EYXRhKGRhdGEpKSB7XG4gICAgICBkZWxldGUgaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgfVxuXG4gICAgbGV0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIC8vIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb25cbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIGlmICghY29uZmlnLmF1dGgudXNlcm5hbWUgfHwgY29uZmlnLmF1dGgudXNlcm5hbWUubGVuZ3RoID09PSAwIHx8ICFjb25maWcuYXV0aC5wYXNzd29yZCB8fCBjb25maWcuYXV0aC5wYXNzd29yZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgQmFzaWMgYXV0aDogdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSByZXF1aXJlZCAke2NvbmZpZy5hdXRofWAsIGNvbmZpZykpO1xuICAgICAgfVxuXG4gICAgICBoZWFkZXJzLkF1dGhvcml6YXRpb24gPSAnQmFzaWMgJyArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGAke2NvbmZpZy5hdXRoLnVzZXJuYW1lfToke2NvbmZpZy5hdXRoLnBhc3N3b3JkfWApKSk7XG4gICAgICBkZWJ1ZygnU2V0IHJlcXVlc3QgYXV0aG9yaXphdGlvbiB0byAlcycsIGNvbmZpZy5hdXRoLnVzZXJuYW1lICsgY29uZmlnLmF1dGgucGFzc3dvcmQpO1xuICAgIH1cblxuICAgIGxldCB1cmwgPSBjb25maWcudXJsLnRyaW0oKTtcblxuICAgIGlmICghL15odHRwKHMpPzpcXC9cXC8vLnRlc3QodXJsKSkge1xuICAgICAgdXJsID0gYGh0dHBzOi8vJHt1cmx9YDtcbiAgICB9XG5cbiAgICB1cmwgPSBjb21iaW5lVVJMKHVybCwgY29uZmlnLnBhcmFtcyk7XG5cbiAgICBkZWJ1ZygnU3RhcnRpbmcgcmVxdWVzdCB0byAlcyB3aXRoIG9wdGlvbnMgJU8nLCB1cmwsIGNvbmZpZyk7XG5cbiAgICByZXF1ZXN0Lm9wZW4oY29uZmlnLm1ldGhvZC50b1VwcGVyQ2FzZSgpLCB1cmwsIHRydWUpO1xuXG4gICAgcmVxdWVzdC50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQ7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8RnNSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbGV0IGNhbmNlbExpc3RlbmVyO1xuXG4gICAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAgIGNhbmNlbExpc3RlbmVyID0gY29uZmlnLmNhbmNlbFRva2VuLm9uY2UoJ2NhbmNlbCcsIChyZWFzb24pID0+IHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogaWYgcmVxdWVzdCBpcyBkb25lIGNhbmNlbCB0b2tlbiBzaG91bGQgbm90IHRocm93IGFueSBlcnJvciAqL1xuICAgICAgICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWJ1ZygnUmVxdWVzdCBjYW5jZWxlZCBieSB1c2VyICVzLCBjb25maWc6ICVPJywgcmVhc29uLCBjb25maWcpO1xuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKGBSZXF1ZXN0IGFib3J0ZWQuIFJlYXNvbjogJHtyZWFzb259YCwgY29uZmlnLCBudWxsLCBGc1JlcXVlc3RFcnJvckNvZGUuQUJPUlRFRCkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWVzdCB8fCByZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDAgJiYgIXJlcXVlc3QucmVzcG9uc2VVUkwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIHRoZSByZXNwb25zZVxuICAgICAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBwYXJzZUhlYWRlcnMocmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlcXVlc3QucmVzcG9uc2U7XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlOiBGc1Jlc3BvbnNlID0ge1xuICAgICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YSxcbiAgICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICAgIHN0YXR1c1RleHQ6IHJlcXVlc3Quc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgcGFyc2VSZXNwb25zZShyZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKDUwMCA8PSByZXNwb25zZS5zdGF0dXMgJiYgcmVzcG9uc2Uuc3RhdHVzIDw9IDU5OSkge1xuICAgICAgICAgIC8vIHNlcnZlciBlcnJvciB0aHJvd1xuICAgICAgICAgIGRlYnVnKCdTZXJ2ZXIgZXJyb3IoNXh4KSAtICVPJywgcmVzcG9uc2UpO1xuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKGBTZXJ2ZXIgZXJyb3IgJHt1cmx9YCwgY29uZmlnLCByZXNwb25zZSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlNFUlZFUikpO1xuICAgICAgICB9IGVsc2UgaWYgKDQwMCA8PSByZXNwb25zZS5zdGF0dXMgJiYgcmVzcG9uc2Uuc3RhdHVzIDw9IDQ5OSkge1xuICAgICAgICAgIGRlYnVnKCdSZXF1ZXN0IGVycm9yKDR4eCkgLSAlTycsIHJlc3BvbnNlKTtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgUmVxdWVzdCBlcnJvciAke3VybH1gLCBjb25maWcsIHJlc3BvbnNlLCBGc1JlcXVlc3RFcnJvckNvZGUuUkVRVUVTVCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgY2FuY2VsIHRva2VuIHRvIGF2b2lkIG1lbW9yeSBsZWFrXG4gICAgICAgIGlmIChjb25maWcuY2FuY2VsVG9rZW4pIHtcbiAgICAgICAgICBjb25maWcuY2FuY2VsVG9rZW4ucmVtb3ZlTGlzdGVuZXIoY2FuY2VsTGlzdGVuZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgfTtcblxuICAgICAgLy8gSGFuZGxlIGJyb3dzZXIgcmVxdWVzdCBjYW5jZWxsYXRpb24gKGFzIG9wcG9zZWQgdG8gYSBtYW51YWwgY2FuY2VsbGF0aW9uKVxuICAgICAgcmVxdWVzdC5vbmFib3J0ID0gZnVuY3Rpb24gaGFuZGxlQWJvcnQoKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiBqdXN0IHRvIGJlIHN1cmUgdGhhdCBhYm9ydCB3YXMgbm90IGNhbGxlZCB0d2ljZSAqL1xuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcignUmVxdWVzdCBhYm9ydGVkJywgY29uZmlnLCBudWxsLCBGc1JlcXVlc3RFcnJvckNvZGUuQUJPUlRFRCkpO1xuICAgICAgfTtcblxuICAgICAgLy8gSGFuZGxlIGxvdyBsZXZlbCBuZXR3b3JrIGVycm9yc1xuICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gaGFuZGxlRXJyb3IoZXJyKSB7XG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICBkZWJ1ZygnUmVxdWVzdCBlcnJvciEgJU8nLCBlcnIpO1xuICAgICAgICByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKCdOZXR3b3JrIEVycm9yJywgY29uZmlnLCBudWxsLCBGc1JlcXVlc3RFcnJvckNvZGUuTkVUV09SSykpO1xuICAgICAgfTtcblxuICAgICAgLy8gSGFuZGxlIHRpbWVvdXRcbiAgICAgIHJlcXVlc3Qub250aW1lb3V0ID0gZnVuY3Rpb24gaGFuZGxlVGltZW91dCgpIHtcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgIGRlYnVnKCdSZXF1ZXN0IHRpbWVkIG91dC4gJU8nLCBjb25maWcpO1xuICAgICAgICByZWplY3QobmV3IEZzUmVxdWVzdEVycm9yKCdSZXF1ZXN0IHRpbWVvdXQnLCBjb25maWcsIG51bGwsIEZzUmVxdWVzdEVycm9yQ29kZS5USU1FT1VUKSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBBZGQgaGVhZGVycyB0byB0aGUgcmVxdWVzdFxuICAgICAgaWYgKCdzZXRSZXF1ZXN0SGVhZGVyJyBpbiByZXF1ZXN0ICYmIGhlYWRlcnMgJiYgT2JqZWN0LmtleXMoaGVhZGVycykubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGtleSBpbiBoZWFkZXJzKSB7XG4gICAgICAgICAgaWYgKGhlYWRlcnNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWJ1ZygnU2V0IHJlcXVlc3QgaGVhZGVyICVzIHRvICVzJywga2V5LCBoZWFkZXJzW2tleV0pO1xuICAgICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihrZXksIGhlYWRlcnNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcub25Qcm9ncmVzcyA9PT0gJ2Z1bmN0aW9uJyAmJiBbRnNIdHRwTWV0aG9kLlBPU1QsIEZzSHR0cE1ldGhvZC5QVVRdLmluZGV4T2YoY29uZmlnLm1ldGhvZCkgPiAtMSkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogZWxzZSBwYXRoIGlzIGp1c3QgZmFsbGJhY2sgdG8gbm9ybWFsIHByb2dyZXNzIGV2ZW50ICovXG4gICAgICAgIGlmIChyZXF1ZXN0LnVwbG9hZCkge1xuICAgICAgICAgIGRlYnVnKCdCaW5kIHRvIHVwbG9hZCBwcm9ncmVzcyBldmVudCcpO1xuICAgICAgICAgIHJlcXVlc3QudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgY29uZmlnLm9uUHJvZ3Jlc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlYnVnKCdCaW5kIHRvIHByb2dyZXNzIGV2ZW50Jyk7XG4gICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vblByb2dyZXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGEgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXF1ZXN0LnNlbmQoZGF0YSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9hZGFwdGVycy94aHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssS0FBSyxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQWdDLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssSUFBSSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdGLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RDLElBQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQztBQUVyQztJQUFBO0lBZ0tBLENBQUM7SUE5SkMsNEJBQU8sR0FBUCxVQUFRLE1BQXdCO1FBQWhDLGlCQTZKQztRQTVKQyxrREFBa0Q7UUFDbEQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7WUFDbEQsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUNoQztRQUVELE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVoQyxJQUFBLGtCQUFJLEVBQUUsd0JBQU8sQ0FBWTtRQUUvQixpRUFBaUU7UUFDakUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUVuQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDdkIsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7U0FDL0I7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUM1SCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsb0RBQWtELE1BQU0sQ0FBQyxJQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNwSDtZQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLFNBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekgsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkY7UUFFRCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsR0FBRyxHQUFHLGFBQVcsR0FBSyxDQUFDO1NBQ3hCO1FBRUQsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFakMsT0FBTyxJQUFJLE9BQU8sQ0FBYSxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQzdDLElBQUksY0FBYyxDQUFDO1lBRW5CLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFDLE1BQU07b0JBQ3hELHNGQUFzRjtvQkFDdEYsSUFBSSxPQUFPLEVBQUU7d0JBQ1gsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDO3FCQUNoQjtvQkFFRCxLQUFLLENBQUMseUNBQXlDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNqRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyw4QkFBNEIsTUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDcEgsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRzs7Ozs7NEJBQzNCLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0NBQ3hDLHNCQUFPOzZCQUNSOzRCQUVELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dDQUNoRCxzQkFBTzs2QkFDUjs0QkFHSyxlQUFlLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7NEJBQ2hFLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDOzRCQUVsQyxRQUFRLEdBQWU7Z0NBQ3pCLElBQUksRUFBRSxZQUFZO2dDQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0NBQ3RCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQ0FDOUIsT0FBTyxFQUFFLGVBQWU7Z0NBQ3hCLE1BQU0sRUFBRSxNQUFNOzZCQUNmLENBQUM7NEJBRUYsT0FBTyxHQUFHLElBQUksQ0FBQzs0QkFDSixxQkFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUE7OzRCQUF4QyxRQUFRLEdBQUcsU0FBNkIsQ0FBQzs0QkFFekMsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRTtnQ0FDcEQscUJBQXFCO2dDQUNyQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0NBQzFDLHNCQUFPLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxrQkFBZ0IsR0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQzs2QkFDdkc7aUNBQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRTtnQ0FDM0QsS0FBSyxDQUFDLHlCQUF5QixFQUFFLFFBQVEsQ0FBQyxDQUFDO2dDQUMzQyxzQkFBTyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsbUJBQWlCLEdBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUM7NkJBQ3pHOzRCQUVELDBDQUEwQzs0QkFDMUMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO2dDQUN0QixNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQzs2QkFDbkQ7NEJBRUQsc0JBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDOzs7aUJBQzFCLENBQUM7WUFFRiw0RUFBNEU7WUFDNUUsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLFdBQVc7Z0JBQ3BDLDJFQUEyRTtnQkFDM0UsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDWixPQUFPO2lCQUNSO2dCQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMxRixDQUFDLENBQUM7WUFFRixrQ0FBa0M7WUFDbEMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLFdBQVcsQ0FBQyxHQUFHO2dCQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEYsQ0FBQyxDQUFDO1lBRUYsaUJBQWlCO1lBQ2pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxhQUFhO2dCQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMxRixDQUFDLENBQUM7WUFFRiw2QkFBNkI7WUFDN0IsSUFBSSxrQkFBa0IsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUMzRSxLQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtvQkFDdkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFO3dCQUM5QixTQUFTO3FCQUNWO29CQUVELEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3hELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7WUFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNoSCwrRUFBK0U7Z0JBQy9FLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDbEIsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDaEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQ2hDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN6RDthQUNGO1lBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FoS0EsQUFnS0MsSUFBQSIsImZpbGUiOiJsaWIvcmVxdWVzdC9hZGFwdGVycy94aHIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWRhcHRlckludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEZzUmVxdWVzdE9wdGlvbnMsIEZzUmVzcG9uc2UsIEZzSHR0cE1ldGhvZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEZzUmVxdWVzdEVycm9yLCBGc1JlcXVlc3RFcnJvckNvZGUgfSBmcm9tICcuLi9lcnJvcic7XG5pbXBvcnQgeyBwcmVwYXJlRGF0YSwgcGFyc2VSZXNwb25zZSwgcGFyc2UgYXMgcGFyc2VIZWFkZXJzLCBjb21iaW5lVVJMIH0gZnJvbSAnLi8uLi9oZWxwZXJzJztcblxuY29uc3QgZGVidWcgPSBEZWJ1ZygnZnM6cmVxdWVzdDp4aHInKTtcbmNvbnN0IENBTkNFTF9DTEVBUiA9IGBGc0NsZWFuTWVtb3J5YDtcblxuZXhwb3J0IGNsYXNzIFhockFkYXB0ZXIgaW1wbGVtZW50cyBBZGFwdGVySW50ZXJmYWNlIHtcblxuICByZXF1ZXN0KGNvbmZpZzogRnNSZXF1ZXN0T3B0aW9ucykge1xuICAgIC8vIGlmIHRoaXMgb3B0aW9uIGlzIHVuc3BlY2lmaWVkIHNldCBpdCBieSBkZWZhdWx0XG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmlsZXN0YWNrSGVhZGVycyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbmZpZy5maWxlc3RhY2tIZWFkZXJzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25maWcgPSBwcmVwYXJlRGF0YShjb25maWcpO1xuICAgIGNvbmZpZy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG5cbiAgICBsZXQgeyBkYXRhLCBoZWFkZXJzIH0gPSBjb25maWc7XG5cbiAgICAvLyBpZiBkYXRhIGlzIHR5cGUgb2YgZm9ybSBsZXQgYnJvd3NlciB0byBzZXQgcHJvcGVyIGNvbnRlbnQgdHlwZVxuICAgIGlmICh1dGlscy5pc0Zvcm1EYXRhKGRhdGEpKSB7XG4gICAgICBkZWxldGUgaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgfVxuXG4gICAgbGV0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIGlmIChjb25maWcuYmxvYlJlc3BvbnNlKSB7XG4gICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgICB9XG5cbiAgICAvLyBIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uXG4gICAgaWYgKGNvbmZpZy5hdXRoKSB7XG4gICAgICBpZiAoIWNvbmZpZy5hdXRoLnVzZXJuYW1lIHx8IGNvbmZpZy5hdXRoLnVzZXJuYW1lLmxlbmd0aCA9PT0gMCB8fCAhY29uZmlnLmF1dGgucGFzc3dvcmQgfHwgY29uZmlnLmF1dGgucGFzc3dvcmQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYEJhc2ljIGF1dGg6IHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgcmVxdWlyZWQgJHtjb25maWcuYXV0aH1gLCBjb25maWcpKTtcbiAgICAgIH1cblxuICAgICAgaGVhZGVycy5BdXRob3JpemF0aW9uID0gJ0Jhc2ljICcgKyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChgJHtjb25maWcuYXV0aC51c2VybmFtZX06JHtjb25maWcuYXV0aC5wYXNzd29yZH1gKSkpO1xuICAgICAgZGVidWcoJ1NldCByZXF1ZXN0IGF1dGhvcml6YXRpb24gdG8gJXMnLCBjb25maWcuYXV0aC51c2VybmFtZSArIGNvbmZpZy5hdXRoLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBsZXQgdXJsID0gY29uZmlnLnVybC50cmltKCk7XG5cbiAgICBpZiAoIS9eaHR0cChzKT86XFwvXFwvLy50ZXN0KHVybCkpIHtcbiAgICAgIHVybCA9IGBodHRwczovLyR7dXJsfWA7XG4gICAgfVxuXG4gICAgdXJsID0gY29tYmluZVVSTCh1cmwsIGNvbmZpZy5wYXJhbXMpO1xuXG4gICAgZGVidWcoJ1N0YXJ0aW5nIHJlcXVlc3QgdG8gJXMgd2l0aCBvcHRpb25zICVPJywgdXJsLCBjb25maWcpO1xuXG4gICAgcmVxdWVzdC5vcGVuKGNvbmZpZy5tZXRob2QudG9VcHBlckNhc2UoKSwgdXJsLCB0cnVlKTtcblxuICAgIHJlcXVlc3QudGltZW91dCA9IGNvbmZpZy50aW1lb3V0O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEZzUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCBjYW5jZWxMaXN0ZW5lcjtcblxuICAgICAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgICAgICBjYW5jZWxMaXN0ZW5lciA9IGNvbmZpZy5jYW5jZWxUb2tlbi5vbmNlKCdjYW5jZWwnLCAocmVhc29uKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IGlmIHJlcXVlc3QgaXMgZG9uZSBjYW5jZWwgdG9rZW4gc2hvdWxkIG5vdCB0aHJvdyBhbnkgZXJyb3IgKi9cbiAgICAgICAgICBpZiAocmVxdWVzdCkge1xuICAgICAgICAgICAgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVidWcoJ1JlcXVlc3QgY2FuY2VsZWQgYnkgdXNlciAlcywgY29uZmlnOiAlTycsIHJlYXNvbiwgY29uZmlnKTtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgUmVxdWVzdCBhYm9ydGVkLiBSZWFzb246ICR7cmVhc29ufWAsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLkFCT1JURUQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXJlcXVlc3QgfHwgcmVxdWVzdC5yZWFkeVN0YXRlICE9PSA0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAwICYmICFyZXF1ZXN0LnJlc3BvbnNlVVJMKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gcGFyc2VIZWFkZXJzKHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO1xuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSByZXF1ZXN0LnJlc3BvbnNlO1xuXG4gICAgICAgIGxldCByZXNwb25zZTogRnNSZXNwb25zZSA9IHtcbiAgICAgICAgICBkYXRhOiByZXNwb25zZURhdGEsXG4gICAgICAgICAgc3RhdHVzOiByZXF1ZXN0LnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiByZXF1ZXN0LnN0YXR1c1RleHQsXG4gICAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpO1xuXG4gICAgICAgIGlmICg1MDAgPD0gcmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyA8PSA1OTkpIHtcbiAgICAgICAgICAvLyBzZXJ2ZXIgZXJyb3IgdGhyb3dcbiAgICAgICAgICBkZWJ1ZygnU2VydmVyIGVycm9yKDV4eCkgLSAlTycsIHJlc3BvbnNlKTtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcihgU2VydmVyIGVycm9yICR7dXJsfWAsIGNvbmZpZywgcmVzcG9uc2UsIEZzUmVxdWVzdEVycm9yQ29kZS5TRVJWRVIpKTtcbiAgICAgICAgfSBlbHNlIGlmICg0MDAgPD0gcmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyA8PSA0OTkpIHtcbiAgICAgICAgICBkZWJ1ZygnUmVxdWVzdCBlcnJvcig0eHgpIC0gJU8nLCByZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoYFJlcXVlc3QgZXJyb3IgJHt1cmx9YCwgY29uZmlnLCByZXNwb25zZSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlJFUVVFU1QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNsZWFyIGNhbmNlbCB0b2tlbiB0byBhdm9pZCBtZW1vcnkgbGVha1xuICAgICAgICBpZiAoY29uZmlnLmNhbmNlbFRva2VuKSB7XG4gICAgICAgICAgY29uZmlnLmNhbmNlbFRva2VuLnJlbW92ZUxpc3RlbmVyKGNhbmNlbExpc3RlbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSBicm93c2VyIHJlcXVlc3QgY2FuY2VsbGF0aW9uIChhcyBvcHBvc2VkIHRvIGEgbWFudWFsIGNhbmNlbGxhdGlvbilcbiAgICAgIHJlcXVlc3Qub25hYm9ydCA9IGZ1bmN0aW9uIGhhbmRsZUFib3J0KCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDoganVzdCB0byBiZSBzdXJlIHRoYXQgYWJvcnQgd2FzIG5vdCBjYWxsZWQgdHdpY2UgKi9cbiAgICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICAgIHJlamVjdChuZXcgRnNSZXF1ZXN0RXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLkFCT1JURUQpKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSBsb3cgbGV2ZWwgbmV0d29yayBlcnJvcnNcbiAgICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycikge1xuICAgICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICAgICAgZGVidWcoJ1JlcXVlc3QgZXJyb3IhICVPJywgZXJyKTtcbiAgICAgICAgcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcignTmV0d29yayBFcnJvcicsIGNvbmZpZywgbnVsbCwgRnNSZXF1ZXN0RXJyb3JDb2RlLk5FVFdPUkspKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEhhbmRsZSB0aW1lb3V0XG4gICAgICByZXF1ZXN0Lm9udGltZW91dCA9IGZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoKSB7XG4gICAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgICAgICBkZWJ1ZygnUmVxdWVzdCB0aW1lZCBvdXQuICVPJywgY29uZmlnKTtcbiAgICAgICAgcmVqZWN0KG5ldyBGc1JlcXVlc3RFcnJvcignUmVxdWVzdCB0aW1lb3V0JywgY29uZmlnLCBudWxsLCBGc1JlcXVlc3RFcnJvckNvZGUuVElNRU9VVCkpO1xuICAgICAgfTtcblxuICAgICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcbiAgICAgIGlmICgnc2V0UmVxdWVzdEhlYWRlcicgaW4gcmVxdWVzdCAmJiBoZWFkZXJzICYmIE9iamVjdC5rZXlzKGhlYWRlcnMpLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaGVhZGVycykge1xuICAgICAgICAgIGlmIChoZWFkZXJzW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVidWcoJ1NldCByZXF1ZXN0IGhlYWRlciAlcyB0byAlcycsIGtleSwgaGVhZGVyc1trZXldKTtcbiAgICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoa2V5LCBoZWFkZXJzW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnLm9uUHJvZ3Jlc3MgPT09ICdmdW5jdGlvbicgJiYgW0ZzSHR0cE1ldGhvZC5QT1NULCBGc0h0dHBNZXRob2QuUFVUXS5pbmRleE9mKGNvbmZpZy5tZXRob2QpID4gLTEpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2U6IGVsc2UgcGF0aCBpcyBqdXN0IGZhbGxiYWNrIHRvIG5vcm1hbCBwcm9ncmVzcyBldmVudCAqL1xuICAgICAgICBpZiAocmVxdWVzdC51cGxvYWQpIHtcbiAgICAgICAgICBkZWJ1ZygnQmluZCB0byB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnQnKTtcbiAgICAgICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGNvbmZpZy5vblByb2dyZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWJ1ZygnQmluZCB0byBwcm9ncmVzcyBldmVudCcpO1xuICAgICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBjb25maWcub25Qcm9ncmVzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5zZW5kKGRhdGEpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -45,2 +45,3 @@ import { FsCancelToken } from './token';

headers?: FsRequestHeaders;
blobResponse?: boolean;
timeout?: number;

@@ -47,0 +48,0 @@ cancelToken?: FsCancelToken;

@@ -13,2 +13,2 @@ export var FsHttpMethod;

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsTUFBTSxDQUFOLElBQVksWUFTWDtBQVRELFdBQVksWUFBWTtJQUN0QiwyQkFBVyxDQUFBO0lBQ1gsaUNBQWlCLENBQUE7SUFDakIsNkJBQWEsQ0FBQTtJQUNiLCtCQUFlLENBQUE7SUFDZixtQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBYSxDQUFBO0lBQ2IsMkJBQVcsQ0FBQTtJQUNYLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsWUFBWSxLQUFaLFlBQVksUUFTdkIiLCJmaWxlIjoibGliL3JlcXVlc3QvdHlwZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGc0NhbmNlbFRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmV4cG9ydCBlbnVtIEZzSHR0cE1ldGhvZCB7XG4gIEdFVCA9ICdHRVQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbiAgSEVBRCA9ICdIRUFEJyxcbiAgUFVSR0UgPSAnUFVSR0UnLFxuICBPUFRJT05TID0gJ09QVElPTlMnLFxuICBQT1NUID0gJ1BPU1QnLFxuICBQVVQgPSAnUFVUJyxcbiAgUEFUSCA9ICdQQVRIJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JldHJ5Q29uZmlnIHtcbiAgcmV0cnk6IG51bWJlcjtcbiAgb25SZXRyeT86IChyZXF1ZXN0Q29uZmlnOiBhbnkpID0+IHZvaWQ7XG4gIHJldHJ5TWF4VGltZT86IG51bWJlcjtcbiAgcmV0cnlGYWN0b3I/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNBdXRoQ29uZmlnIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RIZWFkZXJzIHtcbiAgW25hbWU6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RQYXJhbXMge1xuICBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcnVudGltZSBkYXRhIGxpa2UgcmV0cnlDb3VudCBldGNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RSdW50aW1lIHtcbiAgcmV0cnlDb3VudD86IG51bWJlcjtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RPcHRpb25zIHtcbiAgdXJsPzogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBtZXRob2Q/OiBGc0h0dHBNZXRob2Q7XG4gIG1vZGU/OiBSZXF1ZXN0TW9kZTtcbiAgY2FjaGU/OiBSZXF1ZXN0Q2FjaGU7XG4gIHJlZGlyZWN0PzogUmVxdWVzdFJlZGlyZWN0O1xuICBwYXJhbXM/OiBGc1JlcXVlc3RQYXJhbXM7XG4gIGZpbGVzdGFja0hlYWRlcnM/OiBib29sZWFuO1xuICBoZWFkZXJzPzogRnNSZXF1ZXN0SGVhZGVycztcbiAgdGltZW91dD86IG51bWJlcjtcbiAgY2FuY2VsVG9rZW4/OiBGc0NhbmNlbFRva2VuO1xuICByZXRyeT86IEZzUmV0cnlDb25maWc7XG4gIG9uUHJvZ3Jlc3M/OiAocHI6IFByb2dyZXNzRXZlbnQpID0+IGFueTtcbiAgYXV0aD86IEZzQXV0aENvbmZpZztcbiAgcnVudGltZT86IEZzUmVxdWVzdFJ1bnRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNSZXNwb25zZSB7XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIGhlYWRlcnM6IGFueTtcbiAgZGF0YTogYW55O1xuICBjb25maWc6IEZzUmVxdWVzdE9wdGlvbnM7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsTUFBTSxDQUFOLElBQVksWUFTWDtBQVRELFdBQVksWUFBWTtJQUN0QiwyQkFBVyxDQUFBO0lBQ1gsaUNBQWlCLENBQUE7SUFDakIsNkJBQWEsQ0FBQTtJQUNiLCtCQUFlLENBQUE7SUFDZixtQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBYSxDQUFBO0lBQ2IsMkJBQVcsQ0FBQTtJQUNYLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsWUFBWSxLQUFaLFlBQVksUUFTdkIiLCJmaWxlIjoibGliL3JlcXVlc3QvdHlwZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGc0NhbmNlbFRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmV4cG9ydCBlbnVtIEZzSHR0cE1ldGhvZCB7XG4gIEdFVCA9ICdHRVQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbiAgSEVBRCA9ICdIRUFEJyxcbiAgUFVSR0UgPSAnUFVSR0UnLFxuICBPUFRJT05TID0gJ09QVElPTlMnLFxuICBQT1NUID0gJ1BPU1QnLFxuICBQVVQgPSAnUFVUJyxcbiAgUEFUSCA9ICdQQVRIJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JldHJ5Q29uZmlnIHtcbiAgcmV0cnk6IG51bWJlcjtcbiAgb25SZXRyeT86IChyZXF1ZXN0Q29uZmlnOiBhbnkpID0+IHZvaWQ7XG4gIHJldHJ5TWF4VGltZT86IG51bWJlcjtcbiAgcmV0cnlGYWN0b3I/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNBdXRoQ29uZmlnIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RIZWFkZXJzIHtcbiAgW25hbWU6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RQYXJhbXMge1xuICBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcnVudGltZSBkYXRhIGxpa2UgcmV0cnlDb3VudCBldGNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RSdW50aW1lIHtcbiAgcmV0cnlDb3VudD86IG51bWJlcjtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1JlcXVlc3RPcHRpb25zIHtcbiAgdXJsPzogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBtZXRob2Q/OiBGc0h0dHBNZXRob2Q7XG4gIG1vZGU/OiBSZXF1ZXN0TW9kZTtcbiAgY2FjaGU/OiBSZXF1ZXN0Q2FjaGU7XG4gIHJlZGlyZWN0PzogUmVxdWVzdFJlZGlyZWN0O1xuICBwYXJhbXM/OiBGc1JlcXVlc3RQYXJhbXM7XG4gIGZpbGVzdGFja0hlYWRlcnM/OiBib29sZWFuO1xuICBoZWFkZXJzPzogRnNSZXF1ZXN0SGVhZGVycztcbiAgYmxvYlJlc3BvbnNlPzogYm9vbGVhbjsgLy8gYmxvYiByZXNwb25zZSBvbmx5IGZvciBicm93c2Vyc1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBjYW5jZWxUb2tlbj86IEZzQ2FuY2VsVG9rZW47XG4gIHJldHJ5PzogRnNSZXRyeUNvbmZpZztcbiAgb25Qcm9ncmVzcz86IChwcjogUHJvZ3Jlc3NFdmVudCkgPT4gYW55O1xuICBhdXRoPzogRnNBdXRoQ29uZmlnO1xuICBydW50aW1lPzogRnNSZXF1ZXN0UnVudGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc1Jlc3BvbnNlIHtcbiAgc3RhdHVzOiBudW1iZXI7XG4gIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgaGVhZGVyczogYW55O1xuICBkYXRhOiBhbnk7XG4gIGNvbmZpZzogRnNSZXF1ZXN0T3B0aW9ucztcbn1cbiJdfQ==

@@ -46,3 +46,3 @@ /*

export var getVersion = function () {
return 'JS-3.21.1';
return 'JS-3.22.0';
};

@@ -49,0 +49,0 @@ /**

@@ -45,3 +45,3 @@ /*

export var getVersion = function () {
return 'JS-3.21.1';
return 'JS-3.22.0';
};

@@ -48,0 +48,0 @@ /**

@@ -21,3 +21,3 @@ /*

it('should return version string to replace', function () {
expect(utils.getVersion()).toEqual("JS-3.21.1");
expect(utils.getVersion()).toEqual("JS-3.22.0");
});

@@ -24,0 +24,0 @@ });

@@ -200,2 +200,5 @@ export declare const PickerParamsSchema: {

};
onFileCropped: {
format: string;
};
storeTo: {

@@ -274,2 +277,12 @@ additionalProperties: boolean;

};
cropFiles: {
type: string;
minItems: number;
};
loadCss: {
type: string;
};
failOverMaxFiles: {
type: string;
};
dropPane: {

@@ -280,2 +293,3 @@ type: string;

type: string;
minItems: number;
};

@@ -282,0 +296,0 @@ customText: {

@@ -254,2 +254,5 @@ /*

},
onFileCropped: {
format: 'callback',
},
storeTo: {

@@ -327,2 +330,12 @@ additionalProperties: false,

},
cropFiles: {
type: 'array',
minItems: 1,
},
loadCss: {
type: 'string',
},
failOverMaxFiles: {
type: 'boolean',
},
dropPane: {

@@ -332,3 +345,4 @@ type: 'object',

cropFiles: {
type: 'boolean',
type: 'array',
minItems: 1,
},

@@ -409,2 +423,2 @@ customText: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQUUseUNBQXlDO0lBQ2xELEtBQUssRUFBRSxrQkFBa0I7SUFDekIsV0FBVyxFQUFFLDBCQUEwQjtJQUN2QyxJQUFJLEVBQUUsUUFBUTtJQUNkLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsMkJBQTJCO0lBQzNCLFVBQVUsRUFBRTtRQUNWLGdCQUFnQixFQUFFO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sb0JBQW9CLEVBQUUsS0FBSztZQUMzQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsUUFBUSxFQUFFLENBQUM7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMOzRCQUNFLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7b0JBQzFCLG9CQUFvQixFQUFFLEtBQUs7b0JBQzNCLElBQUksRUFBRTt3QkFDSixtQkFBbUI7d0JBQ25CLEtBQUs7d0JBQ0wsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsS0FBSzt3QkFDTCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixVQUFVO3dCQUNWLHFC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QVU7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7YUFDRjtTQUNGO1FBQ0QsYUFBYSxFQUFFO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxpQkFBaUIsRUFBRTtnQkFDakIsSUFBSSxFQUFFO29CQUNKLG9CQUFvQixFQUFFLEtBQUs7b0JBQzNCLElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7b0JBQzNCLFVBQVUsRUFBRTt3QkFDVixHQUFHLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7eUJBQ2Y7d0JBQ0QsTUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLElBQUksRUFBRSxRQUFRO1lBQ2Qsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixVQUFVLEVBQUUsa0JBQWtCLENBQUMsVUFBVTtTQUMxQztRQUNELG9CQUFvQixFQUFFO1lBQ3BCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDIiwiZmlsZSI6InNjaGVtYS9waWNrZXIuc2NoZW1hLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFVwbG9hZFBhcmFtc1NjaGVtYSB9IGZyb20gJy4vdXBsb2FkLnNjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBQaWNrZXJQYXJhbXNTY2hlbWEgPSB7XG4gICRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMnLFxuICB0aXRsZTogJ0ZpbGVzdGFjayBQaWNrZXInLFxuICBkZXNjcmlwdGlvbjogJ0ZpbGVzdGFjayBQaWNrZXIgT3B0aW9ucycsXG4gIHR5cGU6ICdvYmplY3QnLFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIC8vIHJlcXVpcmVkOiBbJ2NvbnRhaW5lciddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYWxsb3dNYW51YWxSZXRyeToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgYWNjZXB0OiB7XG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBvbmVPZjogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGZyb21Tb3VyY2VzOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFsnc3RyaW5nJywgJ29iamVjdCddLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBlbnVtOiBbXG4gICAgICAgICAgICAnbG9jYWxfZmlsZV9zeXN0ZW0nLFxuICAgICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgICAnaW1hZ2VzZWFyY2gnLFxuICAgICAgICAgICAgJ2ZhY2Vib29rJyxcbiAgICAgICAgICAgICdpbnN0YWdyYW0nLFxuICAgICAgICAgICAgJ2dvb2dsZWRyaXZlJyxcbiAgICAgICAgICAgICd1bnNwbGFzaCcsXG4gICAgICAgICAgICAnZHJvcGJveCcsXG4gICAgICAgICAgICAnd2ViY2FtJyxcbiAgICAgICAgICAgICd2aWRlbycsXG4gICAgICAgICAgICAnYXVkaW8nLFxuICAgICAgICAgICAgJ2JveCcsXG4gICAgICAgICAgICAnZ2l0aHViJyxcbiAgICAgICAgICAgICdnbWFpbCcsXG4gICAgICAgICAgICAncGljYXNhJyxcbiAgICAgICAgICAgICdvbmVkcml2ZScsXG4gICAgICAgICAgICAnb25lZHJpdmVmb3JidXNpbmVzcycsXG4gICAgICAgICAgICAnY2xvdWRkcml2ZScsXG4gICAgICAgICAgICAnZ29vZ2xlcGhvdG9zJyxcbiAgICAgICAgICAgICdjdXN0b21zb3VyY2UnLFxuICAgICAgICAgICAgJ3RpbnQnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgdGFnczoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250YWluZXI6IHtcbiAgICAgIGZvcm1hdDogJ0hUTUxDb250YWluZXInLFxuICAgIH0sXG4gICAgY2xlYW51cEltYWdlRXhpZjoge1xuICAgICAgb25lT2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBrZWVwT3JpZW50YXRpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtlZXBJQ0NhbmRBUFA6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGRpc3BsYXlNb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnaW5saW5lJywgJ292ZXJsYXknLCAnZHJvcFBhbmUnXSxcbiAgICB9LFxuICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMjAsXG4gICAgfSxcbiAgICBzdXBwb3J0RW1haWw6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlQ29udGFpbmVyOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZVBhdGg6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgY3VzdG9tU291cmNlTmFtZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBkaXNhYmxlU3RvcmFnZUtleToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZGlzYWJsZVRyYW5zZm9ybWVyOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBkaXNhYmxlVGh1bWJuYWlsczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZXhwb3NlT3JpZ2luYWxGaWxlOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICBnbG9iYWxEcm9wWm9uZToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaGlkZU1vZGFsV2hlblVwbG9hZGluZzoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgaW1hZ2VEaW06IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWF4OiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1pbjoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNaW5NYXhCbG9jazoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5nOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnY2EnLCAnZGEnLCAnZGUnLCAnZW4nLCAnZXMnLCAnZnInLCAnaGUnLCAnaXQnLCAnamEnLCAna28nLCAnbmwnLCAnbm8nLCAncGwnLCAncHQnLCAnc3YnLCAncnUnLCAndmknLCAnemgnLCAndHInLCAnYXInXSxcbiAgICB9LFxuICAgIG1pbkZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heEZpbGVzOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgICAgbWF4aW11bTogMTAwMDAwMCxcbiAgICB9LFxuICAgIG1heFNpemU6IHtcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgfSxcbiAgICBtb2RhbFNpemU6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcm9vdElkOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdXBsb2FkSW5CYWNrZ3JvdW5kOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB2aWRlb1Jlc29sdXRpb246IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgb25DYW5jZWw6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uQ2xvc2U6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uT3Blbjoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlU2VsZWN0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZEZpbmlzaGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGYWlsZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVVwbG9hZFByb2dyZXNzOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZFN0YXJ0ZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uVXBsb2FkRG9uZToge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgc3RvcmVUbzoge1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZpbGVuYW1lOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgJHJlZjogJ2xvY2F0aW9uc0RlZicsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5lcjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBwYXRoOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbjoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhY2Nlc3M6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBlbnVtOiBbJ3B1YmxpYycsICdwcml2YXRlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHdvcmtmbG93czoge1xuICAgICAgICAgICRyZWY6ICd3b3JrZmxvd3NEZWYnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpZXdUeXBlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGVudW06IFsnZ3JpZCcsICdsaXN0J10sXG4gICAgfSxcbiAgICB0cmFuc2Zvcm1hdGlvbnM6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjaXJjbGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHJvdGF0ZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGNyb3A6IHtcbiAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGN1c3RvbVRleHQ6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgJy4qJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRyb3BQYW5lOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY3JvcEZpbGVzOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21UZXh0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVDbGljazoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0ljb246IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dQcm9ncmVzczoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnRW50ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uUHJvZ3Jlc3M6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ0xlYXZlOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdPdmVyOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyb3A6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VjY2Vzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25FcnJvcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlcnJvcnNUaW1lb3V0OiB7XG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgfSxcbiAgICBjdXN0b21BdXRoVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7XG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHVwbG9hZENvbmZpZzoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiBVcGxvYWRQYXJhbXNTY2hlbWEucHJvcGVydGllcywvLyBtYW51YWwgaW1wb3J0IHVwbG9hZCBkZWZpbml0aW9uc1xuICAgIH0sXG4gICAgdXNlU2VudHJ5QnJlYWRjcnVtYnM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcGlja2VyLnNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQUUseUNBQXlDO0lBQ2xELEtBQUssRUFBRSxrQkFBa0I7SUFDekIsV0FBVyxFQUFFLDBCQUEwQjtJQUN2QyxJQUFJLEVBQUUsUUFBUTtJQUNkLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsMkJBQTJCO0lBQzNCLFVBQVUsRUFBRTtRQUNWLGdCQUFnQixFQUFFO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sb0JBQW9CLEVBQUUsS0FBSztZQUMzQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsUUFBUSxFQUFFLENBQUM7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMOzRCQUNFLElBQUksRUFBRSxRQUFRO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFdBQVcsRUFBRTtZQUNYLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7b0JBQzFCLG9CQUFvQixFQUFFLEtBQUs7b0JBQzNCLElBQUksRUFBRTt3QkFDSixtQkFBbUI7d0JBQ25CLEtBQUs7d0JBQ0wsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsS0FBSzt3QkFDTCxRQUFRO3dCQUNSLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixVQUFVO3dCQUNWLHFC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LFdBQVcsRUFBRTtvQkFDWCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxVQUFVO2lCQUNuQjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUUsVUFBVTtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxVQUFVO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLFVBQVU7aUJBQ25CO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELGNBQWMsRUFBRTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsaUJBQWlCLEVBQUU7Z0JBQ2pCLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSxLQUFLO29CQUMzQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO29CQUMzQixVQUFVLEVBQUU7d0JBQ1YsR0FBRyxFQUFFOzRCQUNILElBQUksRUFBRSxRQUFRO3lCQUNmO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTt5QkFDZjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsUUFBUTtZQUNkLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFVBQVU7U0FDMUM7UUFDRCxvQkFBb0IsRUFBRTtZQUNwQixJQUFJLEVBQUUsU0FBUztTQUNoQjtLQUNGO0NBQ0YsQ0FBQyIsImZpbGUiOiJzY2hlbWEvcGlja2VyLnNjaGVtYS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBVcGxvYWRQYXJhbXNTY2hlbWEgfSBmcm9tICcuL3VwbG9hZC5zY2hlbWEnO1xuXG5leHBvcnQgY29uc3QgUGlja2VyUGFyYW1zU2NoZW1hID0ge1xuICAkc2NoZW1hOiAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjJyxcbiAgdGl0bGU6ICdGaWxlc3RhY2sgUGlja2VyJyxcbiAgZGVzY3JpcHRpb246ICdGaWxlc3RhY2sgUGlja2VyIE9wdGlvbnMnLFxuICB0eXBlOiAnb2JqZWN0JyxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAvLyByZXF1aXJlZDogWydjb250YWluZXInXSxcbiAgcHJvcGVydGllczoge1xuICAgIGFsbG93TWFudWFsUmV0cnk6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGFjY2VwdDoge1xuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgb25lT2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBmcm9tU291cmNlczoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBbJ3N0cmluZycsICdvYmplY3QnXSxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgJ2xvY2FsX2ZpbGVfc3lzdGVtJyxcbiAgICAgICAgICAgICd1cmwnLFxuICAgICAgICAgICAgJ2ltYWdlc2VhcmNoJyxcbiAgICAgICAgICAgICdmYWNlYm9vaycsXG4gICAgICAgICAgICAnaW5zdGFncmFtJyxcbiAgICAgICAgICAgICdnb29nbGVkcml2ZScsXG4gICAgICAgICAgICAndW5zcGxhc2gnLFxuICAgICAgICAgICAgJ2Ryb3Bib3gnLFxuICAgICAgICAgICAgJ3dlYmNhbScsXG4gICAgICAgICAgICAndmlkZW8nLFxuICAgICAgICAgICAgJ2F1ZGlvJyxcbiAgICAgICAgICAgICdib3gnLFxuICAgICAgICAgICAgJ2dpdGh1YicsXG4gICAgICAgICAgICAnZ21haWwnLFxuICAgICAgICAgICAgJ3BpY2FzYScsXG4gICAgICAgICAgICAnb25lZHJpdmUnLFxuICAgICAgICAgICAgJ29uZWRyaXZlZm9yYnVzaW5lc3MnLFxuICAgICAgICAgICAgJ2Nsb3VkZHJpdmUnLFxuICAgICAgICAgICAgJ2dvb2dsZXBob3RvcycsXG4gICAgICAgICAgICAnY3VzdG9tc291cmNlJyxcbiAgICAgICAgICAgICd0aW50JyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHRhZ3M6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29udGFpbmVyOiB7XG4gICAgICBmb3JtYXQ6ICdIVE1MQ29udGFpbmVyJyxcbiAgICB9LFxuICAgIGNsZWFudXBJbWFnZUV4aWY6IHtcbiAgICAgIG9uZU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAga2VlcE9yaWVudGF0aW9uOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBrZWVwSUNDYW5kQVBQOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBkaXNwbGF5TW9kZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2lubGluZScsICdvdmVybGF5JywgJ2Ryb3BQYW5lJ10sXG4gICAgfSxcbiAgICBjb25jdXJyZW5jeToge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDIwLFxuICAgIH0sXG4gICAgc3VwcG9ydEVtYWlsOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZUNvbnRhaW5lcjoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBjdXN0b21Tb3VyY2VQYXRoOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIGN1c3RvbVNvdXJjZU5hbWU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgZGlzYWJsZVN0b3JhZ2VLZXk6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGRpc2FibGVUcmFuc2Zvcm1lcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZGlzYWJsZVRodW1ibmFpbHM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGV4cG9zZU9yaWdpbmFsRmlsZToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZ2xvYmFsRHJvcFpvbmU6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGhpZGVNb2RhbFdoZW5VcGxvYWRpbmc6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIGltYWdlRGltOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBpbWFnZU1heDoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDIsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgaW1hZ2VNaW46IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMixcbiAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGltYWdlTWluTWF4QmxvY2s6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbGFuZzoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2NhJywgJ2RhJywgJ2RlJywgJ2VuJywgJ2VzJywgJ2ZyJywgJ2hlJywgJ2l0JywgJ2phJywgJ2tvJywgJ25sJywgJ25vJywgJ3BsJywgJ3B0JywgJ3N2JywgJ3J1JywgJ3ZpJywgJ3poJywgJ3RyJywgJ2FyJ10sXG4gICAgfSxcbiAgICBtaW5GaWxlczoge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgfSxcbiAgICBtYXhGaWxlczoge1xuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIG1heGltdW06IDEwMDAwMDAsXG4gICAgfSxcbiAgICBtYXhTaXplOiB7XG4gICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICBtaW5pbXVtOiAxLFxuICAgIH0sXG4gICAgbW9kYWxTaXplOiB7XG4gICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgbWluSXRlbXM6IDIsXG4gICAgICBtYXhJdGVtczogMixcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgICBtYXhpbXVtOiAxMDAwMDAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHJvb3RJZDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBzdGFydFVwbG9hZGluZ1doZW5NYXhGaWxlc1JlYWNoZWQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIHVwbG9hZEluQmFja2dyb3VuZDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgdmlkZW9SZXNvbHV0aW9uOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIG9uQ2FuY2VsOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkNsb3NlOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbk9wZW46IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZVNlbGVjdGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRGaW5pc2hlZDoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25GaWxlVXBsb2FkRmFpbGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvbkZpbGVVcGxvYWRQcm9ncmVzczoge1xuICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgIH0sXG4gICAgb25VcGxvYWRTdGFydGVkOiB7XG4gICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgfSxcbiAgICBvblVwbG9hZERvbmU6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIG9uRmlsZUNyb3BwZWQ6IHtcbiAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICB9LFxuICAgIHN0b3JlVG86IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBmaWxlbmFtZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvbjoge1xuICAgICAgICAgICRyZWY6ICdsb2NhdGlvbnNEZWYnLFxuICAgICAgICB9LFxuICAgICAgICBjb250YWluZXI6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICByZWdpb246IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXNzOiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZW51bTogWydwdWJsaWMnLCAncHJpdmF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgICAkcmVmOiAnd29ya2Zsb3dzRGVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aWV3VHlwZToge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBlbnVtOiBbJ2dyaWQnLCAnbGlzdCddLFxuICAgIH0sXG4gICAgdHJhbnNmb3JtYXRpb25zOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY2lyY2xlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICByb3RhdGU6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBjcm9wOiB7XG4gICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGZvcmNlOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhc3BlY3RSYXRpbzoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjdXN0b21UZXh0OiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICcuKic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjcm9wRmlsZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBtaW5JdGVtczogMSxcbiAgICB9LFxuICAgIGxvYWRDc3M6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gICAgZmFpbE92ZXJNYXhGaWxlczoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gICAgZHJvcFBhbmU6IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBjcm9wRmlsZXM6IHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICB9LFxuICAgICAgICBjdXN0b21UZXh0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVDbGljazoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0ljb246IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dQcm9ncmVzczoge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25EcmFnRW50ZXI6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uUHJvZ3Jlc3M6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRHJhZ0xlYXZlOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyYWdPdmVyOiB7XG4gICAgICAgICAgZm9ybWF0OiAnY2FsbGJhY2snLFxuICAgICAgICB9LFxuICAgICAgICBvbkRyb3A6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdjYWxsYmFjaycsXG4gICAgICAgIH0sXG4gICAgICAgIG9uU3VjY2Vzczoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25FcnJvcjoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazoge1xuICAgICAgICAgIGZvcm1hdDogJ2NhbGxiYWNrJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlcnJvcnNUaW1lb3V0OiB7XG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgfSxcbiAgICBjdXN0b21BdXRoVGV4dDoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAnLionOiB7XG4gICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3RvcCcsICdib3R0b20nXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHVwbG9hZENvbmZpZzoge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiBVcGxvYWRQYXJhbXNTY2hlbWEucHJvcGVydGllcywvLyBtYW51YWwgaW1wb3J0IHVwbG9hZCBkZWZpbml0aW9uc1xuICAgIH0sXG4gICAgdXNlU2VudHJ5QnJlYWRjcnVtYnM6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==

@@ -5,2 +5,18 @@ # Changelog

## [3.22.0](https://github.com/filestack/filestack-js/compare/v3.21.1...v3.22.0) (2021-03-08)
### Features
* **download:** Add download file method ([#415](https://github.com/filestack/filestack-js/issues/415)) ([5ed6afd](https://github.com/filestack/filestack-js/commit/5ed6afddf56eae0910420de1f0244b6d3131398a))
* **picker:** bump picker version to 1.21.0 ([162673f](https://github.com/filestack/filestack-js/commit/162673f70d5992df8a0ed1bfd3204173a296416d))
### Bug Fixes
* **pickerschema:** update missing picker options ([5ab80b5](https://github.com/filestack/filestack-js/commit/5ab80b50abd123de0c3f1baf8876f7e621b0a4b8))
* **publish:** fix error in publis script ([#410](https://github.com/filestack/filestack-js/issues/410)) ([3170f29](https://github.com/filestack/filestack-js/commit/3170f295608f6da912746b59e624426de8d6f016))
* **sentry:** remove discouraged configureScope ([#417](https://github.com/filestack/filestack-js/issues/417)) ([e20cc10](https://github.com/filestack/filestack-js/commit/e20cc108a099f38540b4c489383aeafd7c5e6a56))
* **storeurl:** support for workflows to storeURL ([#406](https://github.com/filestack/filestack-js/issues/406)) ([2e8ba7c](https://github.com/filestack/filestack-js/commit/2e8ba7ce7375f1138963e9450400955caba05efd))
### [3.21.1](https://github.com/filestack/filestack-js/compare/v3.21.0...v3.21.1) (2021-01-25)

@@ -7,0 +23,0 @@

{
"name": "filestack-js",
"version": "3.21.1",
"version": "3.22.0",
"description": "Official JavaScript library for Filestack",

@@ -33,4 +33,4 @@ "main": "build/main/index.js",

"prepare": "npm run build",
"publish:beta": "npm run build && node scripts/publish.js --beta",
"publish": "npm run docs:publish && node scripts/publish.js --current --latest",
"publish:s3:beta": "npm run build && node scripts/publish.js --beta",
"publish:s3": "node scripts/publish.js --current --latest",
"cache:clean": "node scripts/cache.js --current --latest",

@@ -46,3 +46,2 @@ "cache:clean:beta": "node scripts/cache.js --beta",

"@filestack/loader": "^1.0.4",
"@sentry/minimal": "^5.12.0",
"abab": "^2.0.3",

@@ -59,3 +58,3 @@ "debug": "^4.1.1",

"spark-md5": "^3.0.0",
"ts-node": "^8.10.1"
"ts-node": "^8.10.2"
},

@@ -68,2 +67,3 @@ "devDependencies": {

"@sentry/cli": "^1.49.0",
"@sentry/minimal": "^6.2.1",
"@types/jest": "^24.9.1",

@@ -70,0 +70,0 @@ "@types/mime": "^2.0.1",

@@ -22,3 +22,3 @@ <p align="center">

<br/>
<img src="https://badges.herokuapp.com/browsers?labels=none&googlechrome=latest&firefox=latest&microsoftedge=latest&iexplore=11&safari=latest&iphone=latest" />
<img src="https://badges.herokuapp.com/browsers?labels=none&googlechrome=latest&firefox=latest&microsoftedge=latest&edge=latest&safari=latest&iphone=latest" />
</p>

@@ -178,2 +178,3 @@ <hr/>

If you target IE11 or iOS before 8.0 you will need to add additional polyfills to your page or application.
(We are no longer support IE11 and older browser, so it can stop working on this browser)

@@ -232,4 +233,5 @@ Polyfills we recommend:**

## Sentry Integration
filestack-js now using [@sentry/minimal](https://www.npmjs.com/package/@sentry/minimal) package.
If you're using [Sentry](https://sentry.io/welcome/) to monitor your application, Filestack will automatically report upload errors to Sentry, and tag them with helpful diagnostic information via [`@sentry/minimal`](https://github.com/getsentry/sentry-javascript/tree/master/packages/minimal).
## Versioning

@@ -236,0 +238,0 @@

@@ -21,3 +21,3 @@ /*

*/
const PICKER_VERSION = '1.20.1';
const PICKER_VERSION = '1.21.0';

@@ -24,0 +24,0 @@ /**

@@ -34,3 +34,3 @@ /*

import { retrieve, remove, metadata } from './file';
import { retrieve, remove, metadata, download } from './file';
import { FsRequest } from './../request';

@@ -41,3 +41,3 @@ import { Session } from '../client';

jest.mock('./../request');
jest.mock('./../filelink');
// jest.mock('./../filelink');

@@ -100,2 +100,15 @@ const mockedSession: Session = {

describe('Download', () => {
it('should return buffer on download request', async () => {
const testResp = Buffer.from('123');
const methodMocked = jest.fn(() => Promise.resolve(testResp));
// @ts-ignore
FsRequest.dispatch.mockImplementation(methodMocked);
const resp = await download(mockedSession, 'gNDNCDWNTKqoGFISdd2A');
expect(resp).toEqual(testResp);
});
});
describe('Remove', () => {

@@ -102,0 +115,0 @@ it('should call remove', async () => {

@@ -19,3 +19,5 @@ /*

import { Security, Session } from '../client';
import { Filelink } from './../filelink';
import { removeEmpty } from '../utils';
import { FsResponse } from './../request/types';
import { FilestackError } from './../../filestack_error';

@@ -109,3 +111,3 @@ import { getValidator, MetadataParamsSchema, RetrieveParamsSchema } from './../../schema';

return new Promise((resolve, reject) => {
FsRequest.get(baseURL, { params: removeEmpty(options), filestackHeaders: false, })
FsRequest.get(baseURL, { params: removeEmpty(options), filestackHeaders: false })
.then(res => resolve({ ...res.data, handle }))

@@ -116,2 +118,21 @@ .catch(reject);

/**
* Download file to blob or buffer format
*
* @param session
* @param handle
*/
export const download = (session: Session, handle: string, security?: Security): Promise<FsResponse> => {
const fl = new Filelink(handle, session.apikey);
const policy = (security && security.policy) || session.policy;
const signature = (security && security.signature) || session.signature;
if (policy && signature) {
fl.security({ signature, policy });
}
return FsRequest.dispatch(fl.toString(), { method: FsHttpMethod.GET, blobResponse: true });
};
export interface RetrieveOptions {

@@ -129,2 +150,3 @@ metadata?: boolean;

* @private
* @deprecated
* @param session

@@ -140,2 +162,4 @@ * @param handle

console.info('Retrieve method is deprecated and it will be removed. Please use metadata or download');
const validateRes = getValidator(RetrieveParamsSchema)(options);

@@ -142,0 +166,0 @@

@@ -34,3 +34,6 @@ /*

const workflowIds = ['123', '321'];
const storeTaskDef = [{ name: 'store', params: {} }];
const storeTaskDefWithWorkflows = [{ name: 'store', params: {} }];
const sourceToStore = 'urlToStore';

@@ -161,2 +164,16 @@

it('should be able to run storeUrl with workflows', async () => {
await storeURL({
session: mockedSession,
url: sourceToStore,
workflowIds,
});
expect(FsRequest.post).toHaveBeenCalledWith(`${mockedSession.urls.processUrl}/process`, {
apikey: mockedSession.apikey,
sources: [ sourceToStore ],
tasks: storeTaskDefWithWorkflows,
}, {});
});
});

@@ -33,2 +33,3 @@ /*

headers?: {[key: string]: string},
workflowIds?: string[]
};

@@ -45,2 +46,3 @@

* @param uploadTags
* @param workflowIds
*/

@@ -55,2 +57,3 @@ export const storeURL = ({

headers,
workflowIds,
}: StoreUrlParams): Promise<any> => {

@@ -97,2 +100,6 @@ if (!url || typeof url !== 'string') {

if (workflowIds && workflowIds.length > 0) {
filelink.addTask('store', { workflows: workflowIds });
}
return FsRequest.post(`${session.urls.processUrl}/process`, {

@@ -99,0 +106,0 @@ apikey: session.apikey,

@@ -148,3 +148,5 @@ /*

const uploadTags = { test: '123' };
await client.storeURL(url, options, token, defaultSecurity, uploadTags);
const headers = { 'test': '123' };
const workflowIds = ['123', '321'];
await client.storeURL(url, options, token, defaultSecurity, uploadTags,headers, workflowIds);

@@ -158,2 +160,4 @@ expect(storeURL).toHaveBeenCalledWith({

uploadTags,
headers,
workflowIds,
});

@@ -160,0 +164,0 @@ });

@@ -22,3 +22,3 @@ /*

import { FilestackError } from './../filestack_error';
import { metadata, MetadataOptions, remove, retrieve, RetrieveOptions } from './api/file';
import { metadata, MetadataOptions, remove, retrieve, RetrieveOptions, download } from './api/file';
import { transform, TransformOptions } from './api/transform';

@@ -31,2 +31,3 @@ import { storeURL } from './api/store';

import { Prefetch, PrefetchResponse, PrefetchOptions } from './api/prefetch';
import { FsResponse } from './request/types';
import { StoreParams } from './filelink';

@@ -115,3 +116,3 @@

constructor(apikey: string, options?: ClientOptions) {
constructor(apikey: string, private options?: ClientOptions) {
super();

@@ -124,9 +125,2 @@

/* istanbul ignore next */
Sentry.configureScope(scope => {
scope.setTag('apikey', apikey);
scope.setTag('sdk-version', Utils.getVersion());
scope.setExtra('clientOptions', options);
});
if (!apikey || typeof apikey !== 'string' || apikey.length === 0) {

@@ -316,4 +310,5 @@ throw new Error('An apikey is required to initialize the Filestack client');

* @param headers Optional headers to send
* @param workflowIds Optional workflowIds to send
*/
storeURL(url: string, storeParams?: StoreParams, token?: any, security?: Security, uploadTags?: UploadTags, headers?: {[key: string]: string}): Promise<Object> {
storeURL(url: string, storeParams?: StoreParams, token?: any, security?: Security, uploadTags?: UploadTags, headers?: {[key: string]: string}, workflowIds?: string[]): Promise<Object> {
return storeURL({

@@ -327,2 +322,3 @@ session: this.session,

headers,
workflowIds,
});

@@ -352,2 +348,3 @@ }

* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @deprecated use metadata or download methods instead
* @param handle Valid file handle

@@ -364,2 +361,27 @@ * @param options RetrieveOptions

/**
* Download file by handle
*
*
* ### Browser Example
*
* ```js
* client.download('fileHandle').then((response) => {
* const img = new Image();
* img.src = URL.createObjectURL(res.data)
* document.body.appendChild(img);
* }).catch((err) => {
* console.error(err);
* })
* ```
*
* @see [File API - Download](https://www.filestack.com/docs/api/file#download)
* @param handle Valid file handle
* @throws Error
*/
download(handle: string, security?: Security): Promise<FsResponse> {
/* istanbul ignore next */
return download(this.session, handle, security);
}
/**
* Interface to the Filestack [Processing API](https://www.filestack.com/docs/api/processing).

@@ -450,2 +472,5 @@ * Convert a URL, handle, or storage alias to another URL which links to the transformed file.

Sentry.withScope(scope => {
scope.setTag('filestack-apikey', this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', this.options);
scope.setExtras({ uploadOptions: options, storeOptions, details: e.details });

@@ -512,2 +537,5 @@ e.message = `FS-${e.message}`;

Sentry.withScope(scope => {
scope.setTag('filestack-apikey', this.session.apikey);
scope.setTag('filestack-version', Utils.getVersion());
scope.setExtra('filestack-options', this.options);
scope.setExtras(e.details);

@@ -514,0 +542,0 @@ scope.setExtras({ uploadOptions: options, storeOptions });

@@ -693,3 +693,3 @@ /*

it('Should throw an FilestackError on socket abort with FsRequestErrorCode.TIMEOUTED code', async () => {
it.skip('Should throw an FilestackError on socket abort with FsRequestErrorCode.TIMEOUTED code', async () => {
const options = {

@@ -788,3 +788,3 @@ url: url,

it('Should abort request on timeout', async () => {
it.skip('Should abort request on timeout', async () => {
const options = {

@@ -791,0 +791,0 @@ url: url,

@@ -47,2 +47,6 @@ /*

if (config.blobResponse) {
request.responseType = 'blob';
}
// HTTP basic authentication

@@ -49,0 +53,0 @@ if (config.auth) {

@@ -68,2 +68,3 @@ /*

headers?: FsRequestHeaders;
blobResponse?: boolean; // blob response only for browsers
timeout?: number;

@@ -70,0 +71,0 @@ cancelToken?: FsCancelToken;

@@ -255,2 +255,5 @@ /*

},
onFileCropped: {
format: 'callback',
},
storeTo: {

@@ -328,2 +331,12 @@ additionalProperties: false,

},
cropFiles: {
type: 'array',
minItems: 1,
},
loadCss: {
type: 'string',
},
failOverMaxFiles: {
type: 'boolean',
},
dropPane: {

@@ -333,3 +346,4 @@ type: 'object',

cropFiles: {
type: 'boolean',
type: 'array',
minItems: 1,
},

@@ -336,0 +350,0 @@ customText: {

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc