Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hexonet/ispapi-apiconnector

Package Overview
Dependencies
Maintainers
2
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hexonet/ispapi-apiconnector - npm Package Compare versions

Comparing version 7.0.5 to 7.0.6

docs/.nojekyll

52

dist/package.json
{
"name": "@hexonet/ispapi-apiconnector",
"description": "Node.js SDK for the insanely fast HEXONET API",
"version": "7.0.4",
"version": "7.0.5",
"private": false,

@@ -10,6 +10,8 @@ "author": {

},
"type": "module",
"sideEffects": false,
"main": "dist/src/index.js",
"license": "MIT",
"engines": {
"node": ">=12.0.0",
"node": ">=14.17.0",
"npm": ">=6.14.13"

@@ -48,4 +50,3 @@ },

"exclude": [
"**/*.spec.ts",
"**/*.specnew.ts"
"**/*.spec.ts"
]

@@ -55,35 +56,32 @@ },

"build": "tsc --version && tsc",
"documentation": "npm run documentation_docco --silent && npm run documentation_typedoc --silent",
"documentation_docco": "docco -l parallel -o docs/docco src/*.ts",
"documentation_typedoc": "typedoc --out docs/typedoc --name @hexonet/ispapi-apiconnector --readme ./README.md --excludeExternals src/*.ts",
"documentation": "typedoc --out docs --name @hexonet/ispapi-apiconnector --readme ./README.md --excludeExternals src/*.ts",
"lint": "prettier --write .",
"test": "cross-env NODE_ENV=development nyc ./node_modules/.bin/_mocha -r ts-node/register test/*.spec.ts"
"test": "cross-env NODE_ENV=development nyc mocha"
},
"dependencies": {
"node-fetch": "^2.6.1"
"node-fetch": "^3.1.0"
},
"devDependencies": {
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/git": "^9.0.0",
"@semantic-release/npm": "^7.0.10",
"@types/chai": "^4.2.14",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.0.0",
"@types/node-fetch": "^2.5.8",
"chai": "^4.2.0",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/git": "^10.0.1",
"@semantic-release/npm": "^8.0.3",
"@types/chai": "^4.2.22",
"@types/chai-as-promised": "^7.1.4",
"@types/mocha": "^9.0.0",
"@types/node": "^16.11.7",
"chai": "^4.3.4",
"chai-as-promised": "^7.1.1",
"cross-env": "^7.0.3",
"docco": "^0.8.0",
"jsdoc": "^3.6.6",
"jsdoc": "^3.6.7",
"jsdoc-oblivion": "^0.0.9",
"mocha": "^8.2.1",
"nock": "^13.0.6",
"mocha": "^9.1.3",
"nock": "^13.2.0",
"nyc": "^15.1.0",
"prettier": "^2.3.0",
"semantic-release": "^17.3.6",
"supertest": "^6.0.0",
"ts-node": "^10.0.0",
"typedoc": "^0.20.7",
"typescript": "^4.0.2"
"prettier": "^2.4.1",
"semantic-release": "^18.0.0",
"supertest": "^6.1.6",
"ts-node": "^10.4.0",
"typedoc": "^0.22.8",
"typescript": "^4.4.4"
}
}

@@ -1,2 +0,1 @@

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -38,16 +37,11 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.APIClient = exports.ISPAPI_CONNECTION_URL = exports.ISPAPI_CONNECTION_URL_PROXY = void 0;
var package_json_1 = __importDefault(require("../package.json"));
var node_fetch_1 = __importDefault(require("node-fetch"));
var logger_1 = require("./logger");
var response_1 = require("./response");
var responsetemplatemanager_1 = require("./responsetemplatemanager");
var socketconfig_1 = require("./socketconfig");
exports.ISPAPI_CONNECTION_URL_PROXY = "http://127.0.0.1/api/call.cgi";
exports.ISPAPI_CONNECTION_URL = "https://api.ispapi.net/api/call.cgi";
var rtm = responsetemplatemanager_1.ResponseTemplateManager.getInstance();
import packageInfo from "../package.json";
import fetch from "node-fetch";
import { Logger } from "./logger";
import { Response } from "./response";
import { ResponseTemplateManager } from "./responsetemplatemanager";
import { fixedURLEnc, SocketConfig } from "./socketconfig";
export var ISPAPI_CONNECTION_URL_PROXY = "http://127.0.0.1/api/call.cgi";
export var ISPAPI_CONNECTION_URL = "https://api.ispapi.net/api/call.cgi";
var rtm = ResponseTemplateManager.getInstance();
var APIClient = (function () {

@@ -58,4 +52,4 @@ function APIClient() {

this.debugMode = false;
this.setURL(exports.ISPAPI_CONNECTION_URL);
this.socketConfig = new socketconfig_1.SocketConfig();
this.setURL(ISPAPI_CONNECTION_URL);
this.socketConfig = new SocketConfig();
this.useLIVESystem();

@@ -71,3 +65,3 @@ this.curlopts = {};

APIClient.prototype.setDefaultLogger = function () {
this.logger = new logger_1.Logger();
this.logger = new Logger();
return this;

@@ -129,3 +123,3 @@ };

APIClient.prototype.getVersion = function () {
return package_json_1.default.version;
return packageInfo.version;
};

@@ -259,3 +253,3 @@ APIClient.prototype.saveSession = function (session) {

}
return [2, node_fetch_1.default(cfg.CONNECTION_URL, reqCfg)
return [2, fetch(cfg.CONNECTION_URL, reqCfg)
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {

@@ -277,3 +271,3 @@ var error, body, rr;

case 3:
rr = new response_1.Response(body, mycmd, cfg);
rr = new Response(body, mycmd, cfg);
if (this.debugMode && this.logger) {

@@ -288,3 +282,3 @@ this.logger.log(this.getPOSTData(mycmd, true), rr, error);

var body = rtm.getTemplate("httperror").getPlain();
var rr = new response_1.Response(body, mycmd, cfg);
var rr = new Response(body, mycmd, cfg);
if (_this.debugMode && _this.logger) {

@@ -362,7 +356,7 @@ _this.logger.log(_this.getPOSTData(mycmd, true), rr, err.message);

APIClient.prototype.useHighPerformanceConnectionSetup = function () {
this.setURL(exports.ISPAPI_CONNECTION_URL_PROXY);
this.setURL(ISPAPI_CONNECTION_URL_PROXY);
return this;
};
APIClient.prototype.useDefaultConnectionSetup = function () {
this.setURL(exports.ISPAPI_CONNECTION_URL);
this.setURL(ISPAPI_CONNECTION_URL);
return this;

@@ -399,3 +393,3 @@ };

tmp = tmp.replace(/\n$/, "");
data += socketconfig_1.fixedURLEnc("s_command") + "=" + socketconfig_1.fixedURLEnc(tmp);
data += fixedURLEnc("s_command") + "=" + fixedURLEnc(tmp);
return data;

@@ -482,3 +476,3 @@ };

}());
exports.APIClient = APIClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpRUFBMEM7QUFDMUMsMERBQStCO0FBQy9CLG1DQUFrQztBQUNsQyx1Q0FBc0M7QUFDdEMscUVBQW9FO0FBQ3BFLCtDQUEyRDtBQUU5QyxRQUFBLDJCQUEyQixHQUFHLCtCQUErQixDQUFDO0FBQzlELFFBQUEscUJBQXFCLEdBQUcscUNBQXFDLENBQUM7QUFFM0UsSUFBTSxHQUFHLEdBQUcsaURBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFLbEQ7SUE4QkU7UUFDRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsNkJBQXFCLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksMkJBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBT00sbUNBQWUsR0FBdEIsVUFBdUIsWUFBb0I7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS00sb0NBQWdCLEdBQXZCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sRUFBRSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUtNLG1D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LENBQUMsRUFBQTs7d0JBSEksQ0FBQyxHQUFHLFNBR1I7d0JBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7NEJBQ1gsR0FBRyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQy9CLElBQUksR0FBRyxFQUFFO2dDQUNQLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBQyxFQUFVLEVBQUUsR0FBUTtvQ0FDekMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQ0FDdEIsQ0FBQyxDQUFDLENBQUM7NkJBQ0o7eUJBQ0Y7d0JBQ0QsV0FBTyxHQUFHLEVBQUM7Ozs7S0FDWjtJQTlrQnNCLHVCQUFhLEdBQVcsTUFBTSxDQUFDO0lBK2tCeEQsZ0JBQUM7Q0FBQSxBQW5sQkQsSUFtbEJDO0FBbmxCWSw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYWNrYWdlSW5mbyBmcm9tIFwiLi4vcGFja2FnZS5qc29uXCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xuaW1wb3J0IHsgUmVzcG9uc2UgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuaW1wb3J0IHsgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgfSBmcm9tIFwiLi9yZXNwb25zZXRlbXBsYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgZml4ZWRVUkxFbmMsIFNvY2tldENvbmZpZyB9IGZyb20gXCIuL3NvY2tldGNvbmZpZ1wiO1xuXG5leHBvcnQgY29uc3QgSVNQQVBJX0NPTk5FQ1RJT05fVVJMX1BST1hZID0gXCJodHRwOi8vMTI3LjAuMC4xL2FwaS9jYWxsLmNnaVwiO1xuZXhwb3J0IGNvbnN0IElTUEFQSV9DT05ORUNUSU9OX1VSTCA9IFwiaHR0cHM6Ly9hcGkuaXNwYXBpLm5ldC9hcGkvY2FsbC5jZ2lcIjtcblxuY29uc3QgcnRtID0gUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIuZ2V0SW5zdGFuY2UoKTtcblxuLyoqXG4gKiBBUElDbGllbnQgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEFQSUNsaWVudCB7XG4gIC8qKlxuICAgKiBBUEkgY29ubmVjdGlvbiB0aW1lb3V0IHNldHRpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc29ja2V0VGltZW91dDogbnVtYmVyID0gMzAwMDAwO1xuICAvKipcbiAgICogVXNlciBBZ2VudCBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgdWE6IHN0cmluZztcbiAgLyoqXG4gICAqIEFQSSBjb25uZWN0aW9uIHVybFxuICAgKi9cbiAgcHJpdmF0ZSBzb2NrZXRVUkw6IHN0cmluZztcbiAgLyoqXG4gICAqIE9iamVjdCBjb3ZlcmluZyBBUEkgY29ubmVjdGlvbiBkYXRhXG4gICAqL1xuICBwcml2YXRlIHNvY2tldENvbmZpZzogU29ja2V0Q29uZmlnO1xuICAvKipcbiAgICogYWN0aXZpdHkgZmxhZyBmb3IgZGVidWcgbW9kZVxuICAgKi9cbiAgcHJpdmF0ZSBkZWJ1Z01vZGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgY3VybG9wdHM6IGFueTtcbiAgLyoqXG4gICAqIGxvZ2dlciBmdW5jdGlvbiBmb3IgZGVidWcgbW9kZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciB8IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudWEgPSBcIlwiO1xuICAgIHRoaXMuc29ja2V0VVJMID0gXCJcIjtcbiAgICB0aGlzLmRlYnVnTW9kZSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0VVJMKElTUEFQSV9DT05ORUNUSU9OX1VSTCk7XG4gICAgdGhpcy5zb2NrZXRDb25maWcgPSBuZXcgU29ja2V0Q29uZmlnKCk7XG4gICAgdGhpcy51c2VMSVZFU3lzdGVtKCk7XG4gICAgdGhpcy5jdXJsb3B0cyA9IHt9O1xuICAgIHRoaXMubG9nZ2VyID0gbnVsbDtcbiAgICB0aGlzLnNldERlZmF1bHRMb2dnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgY3VzdG9tIGxvZ2dlciB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0IG9uZVxuICAgKiBAcGFyYW0gY3VzdG9tTG9nZ2VyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRDdXN0b21Mb2dnZXIoY3VzdG9tTG9nZ2VyOiBMb2dnZXIpOiBBUElDbGllbnQge1xuICAgIHRoaXMubG9nZ2VyID0gY3VzdG9tTG9nZ2VyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCBsb2dnZXIgdG8gdXNlXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXREZWZhdWx0TG9nZ2VyKCk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEVuYWJsZSBEZWJ1ZyBPdXRwdXQgdG8gU1RET1VUXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBlbmFibGVEZWJ1Z01vZGUoKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLmRlYnVnTW9kZSA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBEZWJ1ZyBPdXRwdXRcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGRpc2FibGVEZWJ1Z01vZGUoKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLmRlYnVnTW9kZSA9IGZhbHNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgQVBJIFNlc3Npb24gdGhhdCBpcyBjdXJyZW50bHkgc2V0XG4gICAqIEByZXR1cm5zIEFQSSBTZXNzaW9uIG9yIG51bGxcbiAgICovXG4gIHB1YmxpYyBnZXRTZXNzaW9uKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHNlc3NpZCA9IHRoaXMuc29ja2V0Q29uZmlnLmdldFNlc3Npb24oKTtcbiAgICByZXR1cm4gc2Vzc2lkID09PSBcIlwiID8gbnVsbCA6IHNlc3NpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIEFQSSBjb25uZWN0aW9uIHVybCB0aGF0IGlzIGN1cnJlbnRseSBzZXRcbiAgICogQHJldHVybnMgQVBJIGNvbm5lY3Rpb24gdXJsIGN1cnJlbnRseSBpbiB1c2VcbiAgICovXG4gIHB1YmxpYyBnZXRVUkwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXRVUkw7XG4gIH1cblxuICAvKipcbiAgICogUG9zc2liaWxpdHkgdG8gY3VzdG9taXplIGRlZmF1bHQgdXNlciBhZ2VudCB0byBmaXQgeW91ciBuZWVkc1xuICAgKiBAcGFyYW0gc3RyIHVzZXIgYWdlbnQgbGFiZWxcbiAgICogQHBhcmFtIHJ2IHJldmlzaW9uIG9mIHVzZXIgYWdlbnRcbiAgICogQHBhcmFtIG1vZHVsZXMgZnVydGhlciBtb2R1bGVzIHRvIGFkZCB0byB1c2VyIGFnZW50IHN0cmluZywgZm9ybWF0OiBbXCI8bW9kMT4vPHJldj5cIiwgXCI8bW9kMj4vPHJldj5cIiwgLi4uIF1cbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFVzZXJBZ2VudChzdHI6IHN0cmluZywgcnY6IHN0cmluZywgbW9kdWxlczogYW55ID0gW10pOiBBUElDbGllbnQge1xuICAgIGNvbnN0IG1vZHMgPSBtb2R1bGVzLmxlbmd0aCA/IFwiIFwiICsgbW9kdWxlcy5qb2luKFwiIFwiKSA6IFwiXCI7XG4gICAgdGhpcy51YSA9XG4gICAgICBgJHtzdHJ9IGAgK1xuICAgICAgYCgke3Byb2Nlc3MucGxhdGZvcm19OyAke3Byb2Nlc3MuYXJjaH07IHJ2OiR7cnZ9KWAgK1xuICAgICAgbW9kcyArXG4gICAgICBgIG5vZGUtc2RrLyR7dGhpcy5nZXRWZXJzaW9uKCl9IGAgK1xuICAgICAgYG5vZGUvJHtwcm9jZXNzLnZlcnNpb259YDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFVzZXIgQWdlbnRcbiAgICogQHJldHVybnMgVXNlciBBZ2VudCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZXRVc2VyQWdlbnQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudWEubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVhID1cbiAgICAgICAgYE5PREUtU0RLICgke3Byb2Nlc3MucGxhdGZvcm19OyAke1xuICAgICAgICAgIHByb2Nlc3MuYXJjaFxuICAgICAgICB9OyBydjoke3RoaXMuZ2V0VmVyc2lvbigpfSkgYCArIGBub2RlLyR7cHJvY2Vzcy52ZXJzaW9ufWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVhO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJveHkgc2VydmVyIHRvIHVzZSBmb3IgQVBJIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIHByb3h5IHByb3h5IHNlcnZlciB0byB1c2UgZm9yIGNvbW11bmljYXRpb1xuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0UHJveHkocHJveHk6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5jdXJsb3B0cy5wcm94eSA9IHByb3h5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJveHkgc2VydmVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgcHJveHkgc2VydmVyIGNvbmZpZ3VyYXRpb24gdmFsdWUgb3IgbnVsbCBpZiBub3Qgc2V0XG4gICAqL1xuICBwdWJsaWMgZ2V0UHJveHkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmN1cmxvcHRzLCBcInByb3h5XCIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJsb3B0cy5wcm94eTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSByZWZlcmVyIHRvIHVzZSBmb3IgQVBJIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIHJlZmVyZXIgUmVmZXJlclxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0UmVmZXJlcihyZWZlcmVyOiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuY3VybG9wdHMucmVmZXJlciA9IHJlZmVyZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZWZlcmVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgcmVmZXJlciBjb25maWd1cmF0aW9uIHZhbHVlIG9yIG51bGwgaWYgbm90IHNldFxuICAgKi9cbiAgcHVibGljIGdldFJlZmVyZXIoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmN1cmxvcHRzLCBcInJlZmVyZXJcIikpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cmxvcHRzLnJlZmVyZXI7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBtb2R1bGUgdmVyc2lvblxuICAgKiBAcmV0dXJucyBtb2R1bGUgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIGdldFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGFja2FnZUluZm8udmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBzZXNzaW9uIGRhdGEgKHNlc3Npb24gaWQgYW5kIHN5c3RlbSBlbnRpdHkpIHRvIGdpdmVuIGNsaWVudCByZXF1ZXN0IHNlc3Npb25cbiAgICogQHBhcmFtIHNlc3Npb24gQ2xpZW50UmVxdWVzdCBzZXNzaW9uIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzYXZlU2Vzc2lvbihzZXNzaW9uOiBhbnkpOiBBUElDbGllbnQge1xuICAgIHNlc3Npb24uc29ja2V0Y2ZnID0ge1xuICAgICAgZW50aXR5OiB0aGlzLnNvY2tldENvbmZpZy5nZXRTeXN0ZW1FbnRpdHkoKSxcbiAgICAgIHNlc3Npb246IHRoaXMuc29ja2V0Q29uZmlnLmdldFNlc3Npb24oKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGlzdGluZyBjb25maWd1cmF0aW9uIG91dCBvZiBDbGllbnRSZXF1ZXN0IHNlc3Npb25cbiAgICogdG8gcmVidWlsZCBhbmQgcmV1c2UgY29ubmVjdGlvbiBzZXR0aW5nc1xuICAgKiBAcGFyYW0gc2Vzc2lvbiBDbGllbnRSZXF1ZXN0IHNlc3Npb24gaW5zdGFuY2VcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHJldXNlU2Vzc2lvbihzZXNzaW9uOiBhbnkpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFN5c3RlbUVudGl0eShzZXNzaW9uLnNvY2tldGNmZy5lbnRpdHkpO1xuICAgIHRoaXMuc2V0U2Vzc2lvbihzZXNzaW9uLnNvY2tldGNmZy5zZXNzaW9uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW5vdGhlciBjb25uZWN0aW9uIHVybCB0byBiZSB1c2VkIGZvciBBUEkgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgQVBJIGNvbm5lY3Rpb24gdXJsIHRvIHNldFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0VVJMKHZhbHVlOiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0VVJMID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG9uZSB0aW1lIHBhc3N3b3JkIHRvIGJlIHVzZWQgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSBvbmUgdGltZSBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0T1RQKHZhbHVlOiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldE9UUCh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFuIEFQSSBzZXNzaW9uIGlkIHRvIGJlIHVzZWQgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSBBUEkgc2Vzc2lvbiBpZFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0U2Vzc2lvbih2YWx1ZTogc3RyaW5nKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRTZXNzaW9uKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gUmVtb3RlIElQIEFkZHJlc3MgdG8gYmUgdXNlZCBmb3IgQVBJIGNvbW11bmljYXRpb25cbiAgICogVG8gYmUgdXNlZCBpbiBjYXNlIHlvdSBoYXZlIGFuIGFjdGl2ZSBpcCBmaWx0ZXIgc2V0dGluZy5cbiAgICogQHBhcmFtIHZhbHVlIFJlbW90ZSBJUCBBZGRyZXNzXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRSZW1vdGVJUEFkZHJlc3ModmFsdWU6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0UmVtb3RlQWRkcmVzcyh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IENyZWRlbnRpYWxzIHRvIGJlIHVzZWQgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB1aWQgYWNjb3VudCBuYW1lXG4gICAqIEBwYXJhbSBwdyBhY2NvdW50IHBhc3N3b3JkXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRDcmVkZW50aWFscyh1aWQ6IHN0cmluZywgcHc6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0TG9naW4odWlkKTtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRQYXNzd29yZChwdyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IENyZWRlbnRpYWxzIHRvIGJlIHVzZWQgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSB1aWQgYWNjb3VudCBuYW1lXG4gICAqIEBwYXJhbSByb2xlIHJvbGUgdXNlciBpZFxuICAgKiBAcGFyYW0gcHcgcm9sZSB1c2VyIHBhc3N3b3JkXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRSb2xlQ3JlZGVudGlhbHModWlkOiBzdHJpbmcsIHJvbGU6IHN0cmluZywgcHc6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgcmV0dXJuIHRoaXMuc2V0Q3JlZGVudGlhbHMocm9sZSA/IGAke3VpZH0hJHtyb2xlfWAgOiB1aWQsIHB3KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIEFQSSBsb2dpbiB0byBzdGFydCBzZXNzaW9uLWJhc2VkIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIG90cCBvcHRpb25hbCBvbmUgdGltZSBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB3aXRoIEFQSSBSZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvZ2luKG90cCA9IFwiXCIpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgdGhpcy5zZXRPVFAob3RwIHx8IFwiXCIpO1xuICAgIGNvbnN0IHJyID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHsgQ09NTUFORDogXCJTdGFydFNlc3Npb25cIiB9KTtcbiAgICBpZiAocnIuaXNTdWNjZXNzKCkpIHtcbiAgICAgIGNvbnN0IGNvbCA9IHJyLmdldENvbHVtbihcIlNFU1NJT05cIik7XG4gICAgICB0aGlzLnNldFNlc3Npb24oY29sID8gY29sLmdldERhdGEoKVswXSA6IFwiXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcnI7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBBUEkgbG9naW4gdG8gc3RhcnQgc2Vzc2lvbi1iYXNlZCBjb21tdW5pY2F0aW9uLlxuICAgKiBVc2UgZ2l2ZW4gc3BlY2lmaWMgY29tbWFuZCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gcGFyYW1zIGdpdmVuIHNwZWNpZmljIGNvbW1hbmQgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gb3RwIG9wdGlvbmFsIG9uZSB0aW1lIHBhc3N3b3JkXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHdpdGggQVBJIFJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9naW5FeHRlbmRlZChwYXJhbXM6IGFueSwgb3RwID0gXCJcIik6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICB0aGlzLnNldE9UUChvdHApO1xuICAgIGNvbnN0IHJyID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIENPTU1BTkQ6IFwiU3RhcnRTZXNzaW9uXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKVxuICAgICk7XG4gICAgaWYgKHJyLmlzU3VjY2VzcygpKSB7XG4gICAgICBjb25zdCBjb2wgPSByci5nZXRDb2x1bW4oXCJTRVNTSU9OXCIpO1xuICAgICAgdGhpcy5zZXRTZXNzaW9uKGNvbCA/IGNvbC5nZXREYXRhKClbMF0gOiBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJyO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gQVBJIGxvZ291dCB0byBjbG9zZSBBUEkgc2Vzc2lvbiBpbiB1c2VcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBBUEkgUmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJyID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHtcbiAgICAgIENPTU1BTkQ6IFwiRW5kU2Vzc2lvblwiLFxuICAgIH0pO1xuICAgIGlmIChyci5pc1N1Y2Nlc3MoKSkge1xuICAgICAgdGhpcy5zZXRTZXNzaW9uKFwiXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcnI7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBBUEkgcmVxdWVzdCB1c2luZyB0aGUgZ2l2ZW4gY29tbWFuZFxuICAgKiBAcGFyYW0gY21kIEFQSSBjb21tYW5kIHRvIHJlcXVlc3RcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBBUEkgUmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0KGNtZDogYW55KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIC8vIGZsYXR0ZW4gbmVzdGVkIGFwaSBjb21tYW5kIGJ1bGsgcGFyYW1ldGVyc1xuICAgIGxldCBteWNtZCA9IHRoaXMuZmxhdHRlbkNvbW1hbmQoY21kKTtcblxuICAgIC8vIGF1dG8gY29udmVydCB1bWxhdXQgbmFtZXMgdG8gcHVueWNvZGVcbiAgICBteWNtZCA9IGF3YWl0IHRoaXMuYXV0b0lETkNvbnZlcnQobXljbWQpO1xuXG4gICAgLy8gcmVxdWVzdCBjb21tYW5kIHRvIEFQSVxuICAgIGNvbnN0IGNmZzogYW55ID0ge1xuICAgICAgQ09OTkVDVElPTl9VUkw6IHRoaXMuc29ja2V0VVJMLFxuICAgIH07XG4gICAgLy8gVE9ETzogMzAwcyAodG8gYmUgc3VyZSB0byBnZXQgYW4gQVBJIHJlc3BvbnNlKVxuICAgIGNvbnN0IHJlcUNmZzogYW55ID0ge1xuICAgICAgLy9lbmNvZGluZzogXCJ1dGY4XCIsIC8vZGVmYXVsdCBmb3IgdHlwZSBzdHJpbmdcbiAgICAgIC8vZ3ppcDogdHJ1ZSxcbiAgICAgIGJvZHk6IHRoaXMuZ2V0UE9TVERhdGEobXljbWQpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIlVzZXItQWdlbnRcIjogdGhpcy5nZXRVc2VyQWdlbnQoKSxcbiAgICAgIH0sXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgdGltZW91dDogQVBJQ2xpZW50LnNvY2tldFRpbWVvdXQsXG4gICAgICB1cmw6IGNmZy5DT05ORUNUSU9OX1VSTCxcbiAgICB9O1xuICAgIGNvbnN0IHByb3h5ID0gdGhpcy5nZXRQcm94eSgpO1xuICAgIGlmIChwcm94eSkge1xuICAgICAgcmVxQ2ZnLnByb3h5ID0gcHJveHk7XG4gICAgfVxuICAgIGNvbnN0IHJlZmVyZXIgPSB0aGlzLmdldFJlZmVyZXIoKTtcbiAgICBpZiAocmVmZXJlcikge1xuICAgICAgcmVxQ2ZnLmhlYWRlcnMuUmVmZXJlciA9IHJlZmVyZXI7XG4gICAgfVxuICAgIHJldHVybiBmZXRjaChjZmcuQ09OTkVDVElPTl9VUkwsIHJlcUNmZylcbiAgICAgIC50aGVuKGFzeW5jIChyZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgICAgICBsZXQgYm9keTtcbiAgICAgICAgaWYgKHJlcy5vaykge1xuICAgICAgICAgIC8vIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDBcbiAgICAgICAgICBib2R5ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvciA9IHJlcy5zdGF0dXMgKyAocmVzLnN0YXR1c1RleHQgPyBcIiBcIiArIHJlcy5zdGF0dXNUZXh0IDogXCJcIik7XG4gICAgICAgICAgYm9keSA9IHJ0bS5nZXRUZW1wbGF0ZShcImh0dHBlcnJvclwiKS5nZXRQbGFpbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJyID0gbmV3IFJlc3BvbnNlKGJvZHksIG15Y21kLCBjZmcpO1xuICAgICAgICBpZiAodGhpcy5kZWJ1Z01vZGUgJiYgdGhpcy5sb2dnZXIpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5sb2codGhpcy5nZXRQT1NURGF0YShteWNtZCwgdHJ1ZSksIHJyLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJyO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBydG0uZ2V0VGVtcGxhdGUoXCJodHRwZXJyb3JcIikuZ2V0UGxhaW4oKTtcbiAgICAgICAgY29uc3QgcnIgPSBuZXcgUmVzcG9uc2UoYm9keSwgbXljbWQsIGNmZyk7XG4gICAgICAgIGlmICh0aGlzLmRlYnVnTW9kZSAmJiB0aGlzLmxvZ2dlcikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyh0aGlzLmdldFBPU1REYXRhKG15Y21kLCB0cnVlKSwgcnIsIGVyci5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdCB0aGUgbmV4dCBwYWdlIG9mIGxpc3QgZW50cmllcyBmb3IgdGhlIGN1cnJlbnQgbGlzdCBxdWVyeVxuICAgKiBVc2VmdWwgZm9yIHRhYmxlc1xuICAgKiBAcGFyYW0gcnIgQVBJIFJlc3BvbnNlIG9mIGN1cnJlbnQgcGFnZVxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB3aXRoIEFQSSBSZXNwb25zZSBvciBudWxsIGluIGNhc2UgdGhlcmUgYXJlIG5vIGZ1cnRoZXIgbGlzdCBlbnRyaWVzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdE5leHRSZXNwb25zZVBhZ2UocnI6IFJlc3BvbnNlKTogUHJvbWlzZTxSZXNwb25zZSB8IG51bGw+IHtcbiAgICBjb25zdCBteWNtZCA9IHJyLmdldENvbW1hbmQoKTtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG15Y21kLCBcIkxBU1RcIikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJQYXJhbWV0ZXIgTEFTVCBpbiB1c2UuIFBsZWFzZSByZW1vdmUgaXQgdG8gYXZvaWQgaXNzdWVzIGluIHJlcXVlc3ROZXh0UGFnZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG15Y21kLCBcIkZJUlNUXCIpKSB7XG4gICAgICBmaXJzdCA9IG15Y21kLkZJUlNUO1xuICAgIH1cbiAgICBjb25zdCB0b3RhbCA9IHJyLmdldFJlY29yZHNUb3RhbENvdW50KCk7XG4gICAgY29uc3QgbGltaXQgPSByci5nZXRSZWNvcmRzTGltaXRhdGlvbigpO1xuICAgIGZpcnN0ICs9IGxpbWl0O1xuICAgIGlmIChmaXJzdCA8IHRvdGFsKSB7XG4gICAgICBteWNtZC5GSVJTVCA9IGZpcnN0O1xuICAgICAgbXljbWQuTElNSVQgPSBsaW1pdDtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QobXljbWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdCBhbGwgcGFnZXMvZW50cmllcyBmb3IgdGhlIGdpdmVuIHF1ZXJ5IGNvbW1hbmRcbiAgICogQHBhcmFtIGNtZCBBUEkgbGlzdCBjb21tYW5kIHRvIHVzZVxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB3aXRoIGFycmF5IG9mIEFQSSBSZXNwb25zZXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0QWxsUmVzcG9uc2VQYWdlcyhjbWQ6IGFueSk6IFByb21pc2U8UmVzcG9uc2VbXT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlczogUmVzcG9uc2VbXSA9IFtdO1xuICAgIGNvbnN0IHJyOiBSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIGNtZCwgeyBGSVJTVDogMCB9KVxuICAgICk7XG4gICAgbGV0IHRtcDogUmVzcG9uc2UgfCBudWxsID0gcnI7XG4gICAgbGV0IGlkeCA9IDA7XG4gICAgZG8ge1xuICAgICAgcmVzcG9uc2VzW2lkeCsrXSA9IHRtcDtcbiAgICAgIHRtcCA9IGF3YWl0IHRoaXMucmVxdWVzdE5leHRSZXNwb25zZVBhZ2UodG1wKTtcbiAgICB9IHdoaWxlICh0bXAgIT09IG51bGwpO1xuICAgIHJldHVybiByZXNwb25zZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgZGF0YSB2aWV3IHRvIGEgZ2l2ZW4gc3VidXNlclxuICAgKiBAcGFyYW0gdWlkIHN1YnVzZXIgYWNjb3VudCBuYW1lXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRVc2VyVmlldyh1aWQ6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0VXNlcih1aWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGRhdGEgdmlldyBiYWNrIGZyb20gc3VidXNlciB0byB1c2VyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyByZXNldFVzZXJWaWV3KCk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0VXNlcihcIlwiKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSBIaWdoIFBlcmZvcm1hbmNlIENvbm5lY3Rpb24gU2V0dXBcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaGV4b25ldC9ub2RlLXNkay9ibG9iL21hc3Rlci9SRUFETUUubWRcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHVzZUhpZ2hQZXJmb3JtYW5jZUNvbm5lY3Rpb25TZXR1cCgpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc2V0VVJMKElTUEFQSV9DT05ORUNUSU9OX1VSTF9QUk9YWSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgRGVmYXVsdCBDb25uZWN0aW9uIFNldHVwICh0aGUgZGVmYXVsdClcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHVzZURlZmF1bHRDb25uZWN0aW9uU2V0dXAoKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNldFVSTChJU1BBUElfQ09OTkVDVElPTl9VUkwpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBPVCZFIFN5c3RlbSBmb3IgQVBJIGNvbW11bmljYXRpb25cbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHVzZU9URVN5c3RlbSgpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFN5c3RlbUVudGl0eShcIjEyMzRcIik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IExJVkUgU3lzdGVtIGZvciBBUEkgY29tbXVuaWNhdGlvbiAodGhpcyBpcyB0aGUgZGVmYXVsdCBzZXR0aW5nKVxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgdXNlTElWRVN5c3RlbSgpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFN5c3RlbUVudGl0eShcIjU0Y2RcIik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIGdpdmVuIGNvbW1hbmQgZm9yIFBPU1QgcmVxdWVzdCBpbmNsdWRpbmcgY29ubmVjdGlvbiBjb25maWd1cmF0aW9uIGRhdGFcbiAgICogQHBhcmFtIGNtZCBBUEkgY29tbWFuZCB0byBlbmNvZGVcbiAgICogQHJldHVybnMgZW5jb2RlZCBQT1NUIGRhdGEgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0UE9TVERhdGEoY21kOiBhbnksIHNlY3VyZWQgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLnNvY2tldENvbmZpZy5nZXRQT1NURGF0YSgpO1xuICAgIGlmIChzZWN1cmVkKSB7XG4gICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC9zX3B3PVteJl0rLywgXCJzX3B3PSoqKlwiKTtcbiAgICB9XG5cbiAgICBsZXQgdG1wID0gXCJcIjtcbiAgICBpZiAoISh0eXBlb2YgY21kID09PSBcInN0cmluZ1wiIHx8IGNtZCBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNtZCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGNtZFtrZXldICE9PSBudWxsICYmIGNtZFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0bXAgKz0gYCR7a2V5fT0ke2NtZFtrZXldLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxyfFxcbi9nLCBcIlwiKX1cXG5gO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG1wID0gXCJcIiArIGNtZDtcbiAgICB9XG4gICAgaWYgKHNlY3VyZWQpIHtcbiAgICAgIHRtcCA9IHRtcC5yZXBsYWNlKC9QQVNTV09SRD1bXlxcbl0rLywgXCJQQVNTV09SRD0qKipcIik7XG4gICAgfVxuICAgIHRtcCA9IHRtcC5yZXBsYWNlKC9cXG4kLywgXCJcIik7XG4gICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfY29tbWFuZFwiKX09JHtmaXhlZFVSTEVuYyh0bXApfWA7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbiBuZXN0ZWQgYXJyYXlzIGluIGNvbW1hbmRcbiAgICogQHBhcmFtIGNtZCBhcGkgY29tbWFuZFxuICAgKiBAcmV0dXJucyBhcGkgY29tbWFuZCB3aXRoIGZsYXR0ZW5kZWQgcGFyYW1ldGVyc1xuICAgKi9cbiAgcHJpdmF0ZSBmbGF0dGVuQ29tbWFuZChjbWQ6IGFueSk6IGFueSB7XG4gICAgY29uc3QgbmV3Y21kOiBhbnkgPSB7fTtcbiAgICBPYmplY3Qua2V5cyhjbWQpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBjbWRba2V5XTtcbiAgICAgIGNvbnN0IG5ld0tleSA9IGtleS50b1VwcGVyQ2FzZSgpO1xuICAgICAgaWYgKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiB2YWwpIHtcbiAgICAgICAgICAgIG5ld2NtZFtgJHtuZXdLZXl9JHtpbmRleH1gXSA9IChyb3cgKyBcIlwiKS5yZXBsYWNlKC9cXHJ8XFxuL2csIFwiXCIpO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgICBuZXdjbWRbbmV3S2V5XSA9IHZhbC5yZXBsYWNlKC9cXHJ8XFxuL2csIFwiXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdjbWRbbmV3S2V5XSA9IHZhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3Y21kO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG8gY29udmVydCBBUEkgY29tbWFuZCBwYXJhbWV0ZXJzIHRvIHB1bnljb2RlLCBpZiBuZWNlc3NhcnkuXG4gICAqIEBwYXJhbSBjbWQgYXBpIGNvbW1hbmRcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBhcGkgY29tbWFuZCB3aXRoIElETiB2YWx1ZXMgcmVwbGFjZWQgdG8gcHVueWNvZGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYXV0b0lETkNvbnZlcnQoY21kOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIGRvbid0IGNvbnZlcnQgZm9yIGNvbnZlcnRpZG4gY29tbWFuZCB0byBhdm9pZCBlbmRsZXNzIGxvb3BcbiAgICAvLyBhbmQgaWdub3JlIGNvbW1hbmRzIGluIHN0cmluZyBmb3JtYXQgKGV2ZW4gZGVwcmVjYXRlZClcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgY21kID09PSBcInN0cmluZ1wiIHx8XG4gICAgICBjbWQgaW5zdGFuY2VvZiBTdHJpbmcgfHxcbiAgICAgIC9eQ09OVkVSVElETiQvaS50ZXN0KGNtZC5DT01NQU5EKVxuICAgICkge1xuICAgICAgcmV0dXJuIGNtZDtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNtZCkuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgIHJldHVybiAvXihET01BSU58TkFNRVNFUlZFUnxETlNaT05FKShbMC05XSopJC9pLnRlc3Qoa2V5KTtcbiAgICB9KTtcbiAgICBpZiAoIWtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY21kO1xuICAgIH1cbiAgICBjb25zdCB0b2NvbnZlcnQ6IGFueSA9IFtdO1xuICAgIGNvbnN0IGlkeHM6IHN0cmluZ1tdID0gW107XG4gICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBjbWRba2V5XSAhPT0gbnVsbCAmJlxuICAgICAgICBjbWRba2V5XSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIC9bXmEtejAtOS5cXC0gXS9pLnRlc3QoY21kW2tleV0pXG4gICAgICApIHtcbiAgICAgICAgdG9jb252ZXJ0LnB1c2goY21kW2tleV0pO1xuICAgICAgICBpZHhzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghdG9jb252ZXJ0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNtZDtcbiAgICB9XG4gICAgY29uc3QgciA9IGF3YWl0IHRoaXMucmVxdWVzdCh7XG4gICAgICBDT01NQU5EOiBcIkNvbnZlcnRJRE5cIixcbiAgICAgIERPTUFJTjogdG9jb252ZXJ0LFxuICAgIH0pO1xuICAgIGNvbnNvbGUuZGlyKHIuZ2V0UGxhaW4oKSk7XG4gICAgaWYgKHIuaXNTdWNjZXNzKCkpIHtcbiAgICAgIGNvbnN0IGNvbCA9IHIuZ2V0Q29sdW1uKFwiQUNFXCIpO1xuICAgICAgaWYgKGNvbCkge1xuICAgICAgICBjb2wuZ2V0RGF0YSgpLmZvckVhY2goKHBjOiBzdHJpbmcsIGlkeDogYW55KSA9PiB7XG4gICAgICAgICAgY21kW2lkeHNbaWR4XV0gPSBwYztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbWQ7XG4gIH1cbn1cbiJdfQ==
export { APIClient };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsK0JBQStCLENBQUM7QUFDM0UsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcscUNBQXFDLENBQUM7QUFFM0UsSUFBTSxHQUFHLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFLbEQ7SUE4QkU7UUFDRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFPTSxtQ0FBZSxHQUF0QixV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NkJBQ2hCO3dCQUNILENBQUMsQ0FBQyxDQUFDO3dCQUVILElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFOzRCQUNyQixXQUFPLEdBQUcsRUFBQzt5QkFDWjt3QkFDUyxXQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7Z0NBQzNCLE9BQU8sRUFBRSxZQUFZO2dDQUNyQixNQUFNLEVBQUUsU0FBUzs2QkFDbEIsQ0FBQyxFQUFBOzt3QkFISSxDQUFDLEdBQUcsU0FHUjt3QkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO3dCQUMxQixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTs0QkFDWCxHQUFHLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDL0IsSUFBSSxHQUFHLEVBQUU7Z0NBQ1AsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEVBQVUsRUFBRSxHQUFRO29DQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dDQUN0QixDQUFDLENBQUMsQ0FBQzs2QkFDSjt5QkFDRjt3QkFDRCxXQUFPLEdBQUcsRUFBQzs7OztLQUNaO0lBOWtCc0IsdUJBQWEsR0FBVyxNQUFNLENBQUM7SUEra0J4RCxnQkFBQztDQUFBLEFBbmxCRCxJQW1sQkM7U0FubEJZLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGFja2FnZUluZm8gZnJvbSBcIi4uL3BhY2thZ2UuanNvblwiO1xuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiLi9sb2dnZXJcIjtcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVzcG9uc2VcIjtcbmltcG9ydCB7IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIH0gZnJvbSBcIi4vcmVzcG9uc2V0ZW1wbGF0ZW1hbmFnZXJcIjtcbmltcG9ydCB7IGZpeGVkVVJMRW5jLCBTb2NrZXRDb25maWcgfSBmcm9tIFwiLi9zb2NrZXRjb25maWdcIjtcblxuZXhwb3J0IGNvbnN0IElTUEFQSV9DT05ORUNUSU9OX1VSTF9QUk9YWSA9IFwiaHR0cDovLzEyNy4wLjAuMS9hcGkvY2FsbC5jZ2lcIjtcbmV4cG9ydCBjb25zdCBJU1BBUElfQ09OTkVDVElPTl9VUkwgPSBcImh0dHBzOi8vYXBpLmlzcGFwaS5uZXQvYXBpL2NhbGwuY2dpXCI7XG5cbmNvbnN0IHJ0bSA9IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmdldEluc3RhbmNlKCk7XG5cbi8qKlxuICogQVBJQ2xpZW50IGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBBUElDbGllbnQge1xuICAvKipcbiAgICogQVBJIGNvbm5lY3Rpb24gdGltZW91dCBzZXR0aW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNvY2tldFRpbWVvdXQ6IG51bWJlciA9IDMwMDAwMDtcbiAgLyoqXG4gICAqIFVzZXIgQWdlbnQgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIHVhOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBUEkgY29ubmVjdGlvbiB1cmxcbiAgICovXG4gIHByaXZhdGUgc29ja2V0VVJMOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPYmplY3QgY292ZXJpbmcgQVBJIGNvbm5lY3Rpb24gZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBzb2NrZXRDb25maWc6IFNvY2tldENvbmZpZztcbiAgLyoqXG4gICAqIGFjdGl2aXR5IGZsYWcgZm9yIGRlYnVnIG1vZGVcbiAgICovXG4gIHByaXZhdGUgZGVidWdNb2RlOiBib29sZWFuO1xuICAvKipcbiAgICogYWRkaXRpb25hbCBjb25uZWN0aW9uIHNldHRpbmdzXG4gICAqL1xuICBwcml2YXRlIGN1cmxvcHRzOiBhbnk7XG4gIC8qKlxuICAgKiBsb2dnZXIgZnVuY3Rpb24gZm9yIGRlYnVnIG1vZGVcbiAgICovXG4gIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnVhID0gXCJcIjtcbiAgICB0aGlzLnNvY2tldFVSTCA9IFwiXCI7XG4gICAgdGhpcy5kZWJ1Z01vZGUgPSBmYWxzZTtcbiAgICB0aGlzLnNldFVSTChJU1BBUElfQ09OTkVDVElPTl9VUkwpO1xuICAgIHRoaXMuc29ja2V0Q29uZmlnID0gbmV3IFNvY2tldENvbmZpZygpO1xuICAgIHRoaXMudXNlTElWRVN5c3RlbSgpO1xuICAgIHRoaXMuY3VybG9wdHMgPSB7fTtcbiAgICB0aGlzLmxvZ2dlciA9IG51bGw7XG4gICAgdGhpcy5zZXREZWZhdWx0TG9nZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogc2V0IGN1c3RvbSBsb2dnZXIgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdCBvbmVcbiAgICogQHBhcmFtIGN1c3RvbUxvZ2dlclxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0Q3VzdG9tTG9nZ2VyKGN1c3RvbUxvZ2dlcjogTG9nZ2VyKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLmxvZ2dlciA9IGN1c3RvbUxvZ2dlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogc2V0IGRlZmF1bHQgbG9nZ2VyIHRvIHVzZVxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0RGVmYXVsdExvZ2dlcigpOiBBUElDbGllbnQge1xuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBFbmFibGUgRGVidWcgT3V0cHV0IHRvIFNURE9VVFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlRGVidWdNb2RlKCk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5kZWJ1Z01vZGUgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgRGVidWcgT3V0cHV0XG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlRGVidWdNb2RlKCk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5kZWJ1Z01vZGUgPSBmYWxzZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIEFQSSBTZXNzaW9uIHRoYXQgaXMgY3VycmVudGx5IHNldFxuICAgKiBAcmV0dXJucyBBUEkgU2Vzc2lvbiBvciBudWxsXG4gICAqL1xuICBwdWJsaWMgZ2V0U2Vzc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBzZXNzaWQgPSB0aGlzLnNvY2tldENvbmZpZy5nZXRTZXNzaW9uKCk7XG4gICAgcmV0dXJuIHNlc3NpZCA9PT0gXCJcIiA/IG51bGwgOiBzZXNzaWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBBUEkgY29ubmVjdGlvbiB1cmwgdGhhdCBpcyBjdXJyZW50bHkgc2V0XG4gICAqIEByZXR1cm5zIEFQSSBjb25uZWN0aW9uIHVybCBjdXJyZW50bHkgaW4gdXNlXG4gICAqL1xuICBwdWJsaWMgZ2V0VVJMKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0VVJMO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvc3NpYmlsaXR5IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IHVzZXIgYWdlbnQgdG8gZml0IHlvdXIgbmVlZHNcbiAgICogQHBhcmFtIHN0ciB1c2VyIGFnZW50IGxhYmVsXG4gICAqIEBwYXJhbSBydiByZXZpc2lvbiBvZiB1c2VyIGFnZW50XG4gICAqIEBwYXJhbSBtb2R1bGVzIGZ1cnRoZXIgbW9kdWxlcyB0byBhZGQgdG8gdXNlciBhZ2VudCBzdHJpbmcsIGZvcm1hdDogW1wiPG1vZDE+LzxyZXY+XCIsIFwiPG1vZDI+LzxyZXY+XCIsIC4uLiBdXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRVc2VyQWdlbnQoc3RyOiBzdHJpbmcsIHJ2OiBzdHJpbmcsIG1vZHVsZXM6IGFueSA9IFtdKTogQVBJQ2xpZW50IHtcbiAgICBjb25zdCBtb2RzID0gbW9kdWxlcy5sZW5ndGggPyBcIiBcIiArIG1vZHVsZXMuam9pbihcIiBcIikgOiBcIlwiO1xuICAgIHRoaXMudWEgPVxuICAgICAgYCR7c3RyfSBgICtcbiAgICAgIGAoJHtwcm9jZXNzLnBsYXRmb3JtfTsgJHtwcm9jZXNzLmFyY2h9OyBydjoke3J2fSlgICtcbiAgICAgIG1vZHMgK1xuICAgICAgYCBub2RlLXNkay8ke3RoaXMuZ2V0VmVyc2lvbigpfSBgICtcbiAgICAgIGBub2RlLyR7cHJvY2Vzcy52ZXJzaW9ufWA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBVc2VyIEFnZW50XG4gICAqIEByZXR1cm5zIFVzZXIgQWdlbnQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0VXNlckFnZW50KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnVhLmxlbmd0aCkge1xuICAgICAgdGhpcy51YSA9XG4gICAgICAgIGBOT0RFLVNESyAoJHtwcm9jZXNzLnBsYXRmb3JtfTsgJHtcbiAgICAgICAgICBwcm9jZXNzLmFyY2hcbiAgICAgICAgfTsgcnY6JHt0aGlzLmdldFZlcnNpb24oKX0pIGAgKyBgbm9kZS8ke3Byb2Nlc3MudmVyc2lvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy51YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByb3h5IHNlcnZlciB0byB1c2UgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSBwcm94eSBwcm94eSBzZXJ2ZXIgdG8gdXNlIGZvciBjb21tdW5pY2F0aW9cbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFByb3h5KHByb3h5OiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuY3VybG9wdHMucHJveHkgPSBwcm94eTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByb3h5IHNlcnZlciBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIHByb3h5IHNlcnZlciBjb25maWd1cmF0aW9uIHZhbHVlIG9yIG51bGwgaWYgbm90IHNldFxuICAgKi9cbiAgcHVibGljIGdldFByb3h5KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jdXJsb3B0cywgXCJwcm94eVwiKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3VybG9wdHMucHJveHk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmVmZXJlciB0byB1c2UgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSByZWZlcmVyIFJlZmVyZXJcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFJlZmVyZXIocmVmZXJlcjogc3RyaW5nKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLmN1cmxvcHRzLnJlZmVyZXIgPSByZWZlcmVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVmZXJlciBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIHJlZmVyZXIgY29uZmlndXJhdGlvbiB2YWx1ZSBvciBudWxsIGlmIG5vdCBzZXRcbiAgICovXG4gIHB1YmxpYyBnZXRSZWZlcmVyKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jdXJsb3B0cywgXCJyZWZlcmVyXCIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJsb3B0cy5yZWZlcmVyO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbW9kdWxlIHZlcnNpb25cbiAgICogQHJldHVybnMgbW9kdWxlIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBnZXRWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhY2thZ2VJbmZvLnZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogQXBwbHkgc2Vzc2lvbiBkYXRhIChzZXNzaW9uIGlkIGFuZCBzeXN0ZW0gZW50aXR5KSB0byBnaXZlbiBjbGllbnQgcmVxdWVzdCBzZXNzaW9uXG4gICAqIEBwYXJhbSBzZXNzaW9uIENsaWVudFJlcXVlc3Qgc2Vzc2lvbiBpbnN0YW5jZVxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2F2ZVNlc3Npb24oc2Vzc2lvbjogYW55KTogQVBJQ2xpZW50IHtcbiAgICBzZXNzaW9uLnNvY2tldGNmZyA9IHtcbiAgICAgIGVudGl0eTogdGhpcy5zb2NrZXRDb25maWcuZ2V0U3lzdGVtRW50aXR5KCksXG4gICAgICBzZXNzaW9uOiB0aGlzLnNvY2tldENvbmZpZy5nZXRTZXNzaW9uKCksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgZXhpc3RpbmcgY29uZmlndXJhdGlvbiBvdXQgb2YgQ2xpZW50UmVxdWVzdCBzZXNzaW9uXG4gICAqIHRvIHJlYnVpbGQgYW5kIHJldXNlIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAgICogQHBhcmFtIHNlc3Npb24gQ2xpZW50UmVxdWVzdCBzZXNzaW9uIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyByZXVzZVNlc3Npb24oc2Vzc2lvbjogYW55KTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRTeXN0ZW1FbnRpdHkoc2Vzc2lvbi5zb2NrZXRjZmcuZW50aXR5KTtcbiAgICB0aGlzLnNldFNlc3Npb24oc2Vzc2lvbi5zb2NrZXRjZmcuc2Vzc2lvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFub3RoZXIgY29ubmVjdGlvbiB1cmwgdG8gYmUgdXNlZCBmb3IgQVBJIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIHZhbHVlIEFQSSBjb25uZWN0aW9uIHVybCB0byBzZXRcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFVSTCh2YWx1ZTogc3RyaW5nKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldFVSTCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBvbmUgdGltZSBwYXNzd29yZCB0byBiZSB1c2VkIGZvciBBUEkgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgb25lIHRpbWUgcGFzc3dvcmRcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldE9UUCh2YWx1ZTogc3RyaW5nKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRPVFAodmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBBUEkgc2Vzc2lvbiBpZCB0byBiZSB1c2VkIGZvciBBUEkgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgQVBJIHNlc3Npb24gaWRcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFNlc3Npb24odmFsdWU6IHN0cmluZyk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0U2Vzc2lvbih2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFuIFJlbW90ZSBJUCBBZGRyZXNzIHRvIGJlIHVzZWQgZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIFRvIGJlIHVzZWQgaW4gY2FzZSB5b3UgaGF2ZSBhbiBhY3RpdmUgaXAgZmlsdGVyIHNldHRpbmcuXG4gICAqIEBwYXJhbSB2YWx1ZSBSZW1vdGUgSVAgQWRkcmVzc1xuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0UmVtb3RlSVBBZGRyZXNzKHZhbHVlOiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFJlbW90ZUFkZHJlc3ModmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBDcmVkZW50aWFscyB0byBiZSB1c2VkIGZvciBBUEkgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0gdWlkIGFjY291bnQgbmFtZVxuICAgKiBAcGFyYW0gcHcgYWNjb3VudCBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0Q3JlZGVudGlhbHModWlkOiBzdHJpbmcsIHB3OiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldExvZ2luKHVpZCk7XG4gICAgdGhpcy5zb2NrZXRDb25maWcuc2V0UGFzc3dvcmQocHcpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBDcmVkZW50aWFscyB0byBiZSB1c2VkIGZvciBBUEkgY29tbXVuaWNhdGlvblxuICAgKiBAcGFyYW0gdWlkIGFjY291bnQgbmFtZVxuICAgKiBAcGFyYW0gcm9sZSByb2xlIHVzZXIgaWRcbiAgICogQHBhcmFtIHB3IHJvbGUgdXNlciBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0Um9sZUNyZWRlbnRpYWxzKHVpZDogc3RyaW5nLCByb2xlOiBzdHJpbmcsIHB3OiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHJldHVybiB0aGlzLnNldENyZWRlbnRpYWxzKHJvbGUgPyBgJHt1aWR9ISR7cm9sZX1gIDogdWlkLCBwdyk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBBUEkgbG9naW4gdG8gc3RhcnQgc2Vzc2lvbi1iYXNlZCBjb21tdW5pY2F0aW9uXG4gICAqIEBwYXJhbSBvdHAgb3B0aW9uYWwgb25lIHRpbWUgcGFzc3dvcmRcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBBUEkgUmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2dpbihvdHAgPSBcIlwiKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIHRoaXMuc2V0T1RQKG90cCB8fCBcIlwiKTtcbiAgICBjb25zdCByciA9IGF3YWl0IHRoaXMucmVxdWVzdCh7IENPTU1BTkQ6IFwiU3RhcnRTZXNzaW9uXCIgfSk7XG4gICAgaWYgKHJyLmlzU3VjY2VzcygpKSB7XG4gICAgICBjb25zdCBjb2wgPSByci5nZXRDb2x1bW4oXCJTRVNTSU9OXCIpO1xuICAgICAgdGhpcy5zZXRTZXNzaW9uKGNvbCA/IGNvbC5nZXREYXRhKClbMF0gOiBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJyO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gQVBJIGxvZ2luIHRvIHN0YXJ0IHNlc3Npb24tYmFzZWQgY29tbXVuaWNhdGlvbi5cbiAgICogVXNlIGdpdmVuIHNwZWNpZmljIGNvbW1hbmQgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHBhcmFtcyBnaXZlbiBzcGVjaWZpYyBjb21tYW5kIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIG90cCBvcHRpb25hbCBvbmUgdGltZSBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB3aXRoIEFQSSBSZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvZ2luRXh0ZW5kZWQocGFyYW1zOiBhbnksIG90cCA9IFwiXCIpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgdGhpcy5zZXRPVFAob3RwKTtcbiAgICBjb25zdCByciA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBDT01NQU5EOiBcIlN0YXJ0U2Vzc2lvblwiLFxuICAgICAgICB9LFxuICAgICAgICBwYXJhbXNcbiAgICAgIClcbiAgICApO1xuICAgIGlmIChyci5pc1N1Y2Nlc3MoKSkge1xuICAgICAgY29uc3QgY29sID0gcnIuZ2V0Q29sdW1uKFwiU0VTU0lPTlwiKTtcbiAgICAgIHRoaXMuc2V0U2Vzc2lvbihjb2wgPyBjb2wuZ2V0RGF0YSgpWzBdIDogXCJcIik7XG4gICAgfVxuICAgIHJldHVybiBycjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIEFQSSBsb2dvdXQgdG8gY2xvc2UgQVBJIHNlc3Npb24gaW4gdXNlXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHdpdGggQVBJIFJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICBjb25zdCByciA9IGF3YWl0IHRoaXMucmVxdWVzdCh7XG4gICAgICBDT01NQU5EOiBcIkVuZFNlc3Npb25cIixcbiAgICB9KTtcbiAgICBpZiAocnIuaXNTdWNjZXNzKCkpIHtcbiAgICAgIHRoaXMuc2V0U2Vzc2lvbihcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJyO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gQVBJIHJlcXVlc3QgdXNpbmcgdGhlIGdpdmVuIGNvbW1hbmRcbiAgICogQHBhcmFtIGNtZCBBUEkgY29tbWFuZCB0byByZXF1ZXN0XG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHdpdGggQVBJIFJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdChjbWQ6IGFueSk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICAvLyBmbGF0dGVuIG5lc3RlZCBhcGkgY29tbWFuZCBidWxrIHBhcmFtZXRlcnNcbiAgICBsZXQgbXljbWQgPSB0aGlzLmZsYXR0ZW5Db21tYW5kKGNtZCk7XG5cbiAgICAvLyBhdXRvIGNvbnZlcnQgdW1sYXV0IG5hbWVzIHRvIHB1bnljb2RlXG4gICAgbXljbWQgPSBhd2FpdCB0aGlzLmF1dG9JRE5Db252ZXJ0KG15Y21kKTtcblxuICAgIC8vIHJlcXVlc3QgY29tbWFuZCB0byBBUElcbiAgICBjb25zdCBjZmc6IGFueSA9IHtcbiAgICAgIENPTk5FQ1RJT05fVVJMOiB0aGlzLnNvY2tldFVSTCxcbiAgICB9O1xuICAgIC8vIFRPRE86IDMwMHMgKHRvIGJlIHN1cmUgdG8gZ2V0IGFuIEFQSSByZXNwb25zZSlcbiAgICBjb25zdCByZXFDZmc6IGFueSA9IHtcbiAgICAgIC8vZW5jb2Rpbmc6IFwidXRmOFwiLCAvL2RlZmF1bHQgZm9yIHR5cGUgc3RyaW5nXG4gICAgICAvL2d6aXA6IHRydWUsXG4gICAgICBib2R5OiB0aGlzLmdldFBPU1REYXRhKG15Y21kKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJVc2VyLUFnZW50XCI6IHRoaXMuZ2V0VXNlckFnZW50KCksXG4gICAgICB9LFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIHRpbWVvdXQ6IEFQSUNsaWVudC5zb2NrZXRUaW1lb3V0LFxuICAgICAgdXJsOiBjZmcuQ09OTkVDVElPTl9VUkwsXG4gICAgfTtcbiAgICBjb25zdCBwcm94eSA9IHRoaXMuZ2V0UHJveHkoKTtcbiAgICBpZiAocHJveHkpIHtcbiAgICAgIHJlcUNmZy5wcm94eSA9IHByb3h5O1xuICAgIH1cbiAgICBjb25zdCByZWZlcmVyID0gdGhpcy5nZXRSZWZlcmVyKCk7XG4gICAgaWYgKHJlZmVyZXIpIHtcbiAgICAgIHJlcUNmZy5oZWFkZXJzLlJlZmVyZXIgPSByZWZlcmVyO1xuICAgIH1cbiAgICByZXR1cm4gZmV0Y2goY2ZnLkNPTk5FQ1RJT05fVVJMLCByZXFDZmcpXG4gICAgICAudGhlbihhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICAgICAgbGV0IGJvZHk7XG4gICAgICAgIGlmIChyZXMub2spIHtcbiAgICAgICAgICAvLyByZXMuc3RhdHVzID49IDIwMCAmJiByZXMuc3RhdHVzIDwgMzAwXG4gICAgICAgICAgYm9keSA9IGF3YWl0IHJlcy50ZXh0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IgPSByZXMuc3RhdHVzICsgKHJlcy5zdGF0dXNUZXh0ID8gXCIgXCIgKyByZXMuc3RhdHVzVGV4dCA6IFwiXCIpO1xuICAgICAgICAgIGJvZHkgPSBydG0uZ2V0VGVtcGxhdGUoXCJodHRwZXJyb3JcIikuZ2V0UGxhaW4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByciA9IG5ldyBSZXNwb25zZShib2R5LCBteWNtZCwgY2ZnKTtcbiAgICAgICAgaWYgKHRoaXMuZGVidWdNb2RlICYmIHRoaXMubG9nZ2VyKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIubG9nKHRoaXMuZ2V0UE9TVERhdGEobXljbWQsIHRydWUpLCByciwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBycjtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBjb25zdCBib2R5ID0gcnRtLmdldFRlbXBsYXRlKFwiaHR0cGVycm9yXCIpLmdldFBsYWluKCk7XG4gICAgICAgIGNvbnN0IHJyID0gbmV3IFJlc3BvbnNlKGJvZHksIG15Y21kLCBjZmcpO1xuICAgICAgICBpZiAodGhpcy5kZWJ1Z01vZGUgJiYgdGhpcy5sb2dnZXIpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5sb2codGhpcy5nZXRQT1NURGF0YShteWNtZCwgdHJ1ZSksIHJyLCBlcnIubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgdGhlIG5leHQgcGFnZSBvZiBsaXN0IGVudHJpZXMgZm9yIHRoZSBjdXJyZW50IGxpc3QgcXVlcnlcbiAgICogVXNlZnVsIGZvciB0YWJsZXNcbiAgICogQHBhcmFtIHJyIEFQSSBSZXNwb25zZSBvZiBjdXJyZW50IHBhZ2VcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBBUEkgUmVzcG9uc2Ugb3IgbnVsbCBpbiBjYXNlIHRoZXJlIGFyZSBubyBmdXJ0aGVyIGxpc3QgZW50cmllc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3ROZXh0UmVzcG9uc2VQYWdlKHJyOiBSZXNwb25zZSk6IFByb21pc2U8UmVzcG9uc2UgfCBudWxsPiB7XG4gICAgY29uc3QgbXljbWQgPSByci5nZXRDb21tYW5kKCk7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChteWNtZCwgXCJMQVNUXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUGFyYW1ldGVyIExBU1QgaW4gdXNlLiBQbGVhc2UgcmVtb3ZlIGl0IHRvIGF2b2lkIGlzc3VlcyBpbiByZXF1ZXN0TmV4dFBhZ2UuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBmaXJzdCA9IDA7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChteWNtZCwgXCJGSVJTVFwiKSkge1xuICAgICAgZmlyc3QgPSBteWNtZC5GSVJTVDtcbiAgICB9XG4gICAgY29uc3QgdG90YWwgPSByci5nZXRSZWNvcmRzVG90YWxDb3VudCgpO1xuICAgIGNvbnN0IGxpbWl0ID0gcnIuZ2V0UmVjb3Jkc0xpbWl0YXRpb24oKTtcbiAgICBmaXJzdCArPSBsaW1pdDtcbiAgICBpZiAoZmlyc3QgPCB0b3RhbCkge1xuICAgICAgbXljbWQuRklSU1QgPSBmaXJzdDtcbiAgICAgIG15Y21kLkxJTUlUID0gbGltaXQ7XG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG15Y21kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgYWxsIHBhZ2VzL2VudHJpZXMgZm9yIHRoZSBnaXZlbiBxdWVyeSBjb21tYW5kXG4gICAqIEBwYXJhbSBjbWQgQVBJIGxpc3QgY29tbWFuZCB0byB1c2VcbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgd2l0aCBhcnJheSBvZiBBUEkgUmVzcG9uc2VzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdEFsbFJlc3BvbnNlUGFnZXMoY21kOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlW10+IHtcbiAgICBjb25zdCByZXNwb25zZXM6IFJlc3BvbnNlW10gPSBbXTtcbiAgICBjb25zdCBycjogUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBjbWQsIHsgRklSU1Q6IDAgfSlcbiAgICApO1xuICAgIGxldCB0bXA6IFJlc3BvbnNlIHwgbnVsbCA9IHJyO1xuICAgIGxldCBpZHggPSAwO1xuICAgIGRvIHtcbiAgICAgIHJlc3BvbnNlc1tpZHgrK10gPSB0bXA7XG4gICAgICB0bXAgPSBhd2FpdCB0aGlzLnJlcXVlc3ROZXh0UmVzcG9uc2VQYWdlKHRtcCk7XG4gICAgfSB3aGlsZSAodG1wICE9PSBudWxsKTtcbiAgICByZXR1cm4gcmVzcG9uc2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGRhdGEgdmlldyB0byBhIGdpdmVuIHN1YnVzZXJcbiAgICogQHBhcmFtIHVpZCBzdWJ1c2VyIGFjY291bnQgbmFtZVxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0VXNlclZpZXcodWlkOiBzdHJpbmcpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFVzZXIodWlkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBkYXRhIHZpZXcgYmFjayBmcm9tIHN1YnVzZXIgdG8gdXNlclxuICAgKiBAcmV0dXJucyBDdXJyZW50IEFQSUNsaWVudCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgcmVzZXRVc2VyVmlldygpOiBBUElDbGllbnQge1xuICAgIHRoaXMuc29ja2V0Q29uZmlnLnNldFVzZXIoXCJcIik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgSGlnaCBQZXJmb3JtYW5jZSBDb25uZWN0aW9uIFNldHVwXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hleG9uZXQvbm9kZS1zZGsvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyB1c2VIaWdoUGVyZm9ybWFuY2VDb25uZWN0aW9uU2V0dXAoKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNldFVSTChJU1BBUElfQ09OTkVDVElPTl9VUkxfUFJPWFkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIERlZmF1bHQgQ29ubmVjdGlvbiBTZXR1cCAodGhlIGRlZmF1bHQpXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyB1c2VEZWZhdWx0Q29ubmVjdGlvblNldHVwKCk6IEFQSUNsaWVudCB7XG4gICAgdGhpcy5zZXRVUkwoSVNQQVBJX0NPTk5FQ1RJT05fVVJMKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgT1QmRSBTeXN0ZW0gZm9yIEFQSSBjb21tdW5pY2F0aW9uXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgQVBJQ2xpZW50IGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyB1c2VPVEVTeXN0ZW0oKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRTeXN0ZW1FbnRpdHkoXCIxMjM0XCIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBMSVZFIFN5c3RlbSBmb3IgQVBJIGNvbW11bmljYXRpb24gKHRoaXMgaXMgdGhlIGRlZmF1bHQgc2V0dGluZylcbiAgICogQHJldHVybnMgQ3VycmVudCBBUElDbGllbnQgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHVzZUxJVkVTeXN0ZW0oKTogQVBJQ2xpZW50IHtcbiAgICB0aGlzLnNvY2tldENvbmZpZy5zZXRTeXN0ZW1FbnRpdHkoXCI1NGNkXCIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBnaXZlbiBjb21tYW5kIGZvciBQT1NUIHJlcXVlc3QgaW5jbHVkaW5nIGNvbm5lY3Rpb24gY29uZmlndXJhdGlvbiBkYXRhXG4gICAqIEBwYXJhbSBjbWQgQVBJIGNvbW1hbmQgdG8gZW5jb2RlXG4gICAqIEByZXR1cm5zIGVuY29kZWQgUE9TVCBkYXRhIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIGdldFBPU1REYXRhKGNtZDogYW55LCBzZWN1cmVkID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCBkYXRhID0gdGhpcy5zb2NrZXRDb25maWcuZ2V0UE9TVERhdGEoKTtcbiAgICBpZiAoc2VjdXJlZCkge1xuICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc19wdz1bXiZdKy8sIFwic19wdz0qKipcIik7XG4gICAgfVxuXG4gICAgbGV0IHRtcCA9IFwiXCI7XG4gICAgaWYgKCEodHlwZW9mIGNtZCA9PT0gXCJzdHJpbmdcIiB8fCBjbWQgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICBPYmplY3Qua2V5cyhjbWQpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChjbWRba2V5XSAhPT0gbnVsbCAmJiBjbWRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdG1wICs9IGAke2tleX09JHtjbWRba2V5XS50b1N0cmluZygpLnJlcGxhY2UoL1xccnxcXG4vZywgXCJcIil9XFxuYDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRtcCA9IFwiXCIgKyBjbWQ7XG4gICAgfVxuICAgIGlmIChzZWN1cmVkKSB7XG4gICAgICB0bXAgPSB0bXAucmVwbGFjZSgvUEFTU1dPUkQ9W15cXG5dKy8sIFwiUEFTU1dPUkQ9KioqXCIpO1xuICAgIH1cbiAgICB0bXAgPSB0bXAucmVwbGFjZSgvXFxuJC8sIFwiXCIpO1xuICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX2NvbW1hbmRcIil9PSR7Zml4ZWRVUkxFbmModG1wKX1gO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYXR0ZW4gbmVzdGVkIGFycmF5cyBpbiBjb21tYW5kXG4gICAqIEBwYXJhbSBjbWQgYXBpIGNvbW1hbmRcbiAgICogQHJldHVybnMgYXBpIGNvbW1hbmQgd2l0aCBmbGF0dGVuZGVkIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZmxhdHRlbkNvbW1hbmQoY21kOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IG5ld2NtZDogYW55ID0ge307XG4gICAgT2JqZWN0LmtleXMoY21kKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdmFsID0gY21kW2tleV07XG4gICAgICBjb25zdCBuZXdLZXkgPSBrZXkudG9VcHBlckNhc2UoKTtcbiAgICAgIGlmICh2YWwgIT09IG51bGwgJiYgdmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgICAgZm9yIChjb25zdCByb3cgb2YgdmFsKSB7XG4gICAgICAgICAgICBuZXdjbWRbYCR7bmV3S2V5fSR7aW5kZXh9YF0gPSAocm93ICsgXCJcIikucmVwbGFjZSgvXFxyfFxcbi9nLCBcIlwiKTtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiIHx8IHZhbCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgICAgbmV3Y21kW25ld0tleV0gPSB2YWwucmVwbGFjZSgvXFxyfFxcbi9nLCBcIlwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Y21kW25ld0tleV0gPSB2YWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld2NtZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRvIGNvbnZlcnQgQVBJIGNvbW1hbmQgcGFyYW1ldGVycyB0byBwdW55Y29kZSwgaWYgbmVjZXNzYXJ5LlxuICAgKiBAcGFyYW0gY21kIGFwaSBjb21tYW5kXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHdpdGggYXBpIGNvbW1hbmQgd2l0aCBJRE4gdmFsdWVzIHJlcGxhY2VkIHRvIHB1bnljb2RlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGF1dG9JRE5Db252ZXJ0KGNtZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBkb24ndCBjb252ZXJ0IGZvciBjb252ZXJ0aWRuIGNvbW1hbmQgdG8gYXZvaWQgZW5kbGVzcyBsb29wXG4gICAgLy8gYW5kIGlnbm9yZSBjb21tYW5kcyBpbiBzdHJpbmcgZm9ybWF0IChldmVuIGRlcHJlY2F0ZWQpXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGNtZCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgY21kIGluc3RhbmNlb2YgU3RyaW5nIHx8XG4gICAgICAvXkNPTlZFUlRJRE4kL2kudGVzdChjbWQuQ09NTUFORClcbiAgICApIHtcbiAgICAgIHJldHVybiBjbWQ7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjbWQpLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gL14oRE9NQUlOfE5BTUVTRVJWRVJ8RE5TWk9ORSkoWzAtOV0qKSQvaS50ZXN0KGtleSk7XG4gICAgfSk7XG4gICAgaWYgKCFrZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNtZDtcbiAgICB9XG4gICAgY29uc3QgdG9jb252ZXJ0OiBhbnkgPSBbXTtcbiAgICBjb25zdCBpZHhzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgY21kW2tleV0gIT09IG51bGwgJiZcbiAgICAgICAgY21kW2tleV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAvW15hLXowLTkuXFwtIF0vaS50ZXN0KGNtZFtrZXldKVxuICAgICAgKSB7XG4gICAgICAgIHRvY29udmVydC5wdXNoKGNtZFtrZXldKTtcbiAgICAgICAgaWR4cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXRvY29udmVydC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBjbWQ7XG4gICAgfVxuICAgIGNvbnN0IHIgPSBhd2FpdCB0aGlzLnJlcXVlc3Qoe1xuICAgICAgQ09NTUFORDogXCJDb252ZXJ0SUROXCIsXG4gICAgICBET01BSU46IHRvY29udmVydCxcbiAgICB9KTtcbiAgICBjb25zb2xlLmRpcihyLmdldFBsYWluKCkpO1xuICAgIGlmIChyLmlzU3VjY2VzcygpKSB7XG4gICAgICBjb25zdCBjb2wgPSByLmdldENvbHVtbihcIkFDRVwiKTtcbiAgICAgIGlmIChjb2wpIHtcbiAgICAgICAgY29sLmdldERhdGEoKS5mb3JFYWNoKChwYzogc3RyaW5nLCBpZHg6IGFueSkgPT4ge1xuICAgICAgICAgIGNtZFtpZHhzW2lkeF1dID0gcGM7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY21kO1xuICB9XG59XG4iXX0=

@@ -1,4 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Column = void 0;
var Column = (function () {

@@ -24,3 +21,3 @@ function Column(key, data) {

}());
exports.Column = Column;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTtJQWNFLGdCQUFtQixHQUFXLEVBQUUsSUFBYztRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBTU0sdUJBQU0sR0FBYjtRQUNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBTU0sd0JBQU8sR0FBZDtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBT00sK0JBQWMsR0FBckIsVUFBc0IsR0FBVztRQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBT08sNkJBQVksR0FBcEIsVUFBcUIsR0FBVztRQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBckRELElBcURDO0FBckRZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb2x1bW4gY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIENvbHVtbiB7XG4gIC8qKlxuICAgKiBjb3VudCBvZiBjb2x1bW4gZGF0YSBlbnRyaWVzXG4gICAqL1xuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gIC8qKlxuICAgKiBjb2x1bW4ga2V5IG5hbWVcbiAgICovXG4gIHByaXZhdGUga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBjb2x1bW4gZGF0YSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgZGF0YTogc3RyaW5nW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5sZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sdW1uIG5hbWVcbiAgICogQHJldHVybnMgY29sdW1uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5rZXk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbHVtbiBkYXRhXG4gICAqIEByZXR1cm5zIGNvbHVtbiBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sdW1uIGRhdGEgYXQgZ2l2ZW4gaW5kZXhcbiAgICogQHBhcmFtIGlkeCBkYXRhIGluZGV4XG4gICAqIEByZXR1cm5zIGRhdGEgYXQgZ2l2ZW4gaW5kZXhcbiAgICovXG4gIHB1YmxpYyBnZXREYXRhQnlJbmRleChpZHg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0RhdGFJbmRleChpZHgpID8gdGhpcy5kYXRhW2lkeF0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGNvbHVtbiBoYXMgYSBnaXZlbiBkYXRhIGluZGV4XG4gICAqIEBwYXJhbSBpZHggZGF0YSBpbmRleFxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBoYXNEYXRhSW5kZXgoaWR4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaWR4ID49IDAgJiYgaWR4IDwgdGhpcy5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==
export { Column };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtJQWNFLGdCQUFtQixHQUFXLEVBQUUsSUFBYztRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBTU0sdUJBQU0sR0FBYjtRQUNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBTU0sd0JBQU8sR0FBZDtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBT00sK0JBQWMsR0FBckIsVUFBc0IsR0FBVztRQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBT08sNkJBQVksR0FBcEIsVUFBcUIsR0FBVztRQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBckRELElBcURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb2x1bW4gY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIENvbHVtbiB7XG4gIC8qKlxuICAgKiBjb3VudCBvZiBjb2x1bW4gZGF0YSBlbnRyaWVzXG4gICAqL1xuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gIC8qKlxuICAgKiBjb2x1bW4ga2V5IG5hbWVcbiAgICovXG4gIHByaXZhdGUga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBjb2x1bW4gZGF0YSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgZGF0YTogc3RyaW5nW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5sZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sdW1uIG5hbWVcbiAgICogQHJldHVybnMgY29sdW1uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5rZXk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbHVtbiBkYXRhXG4gICAqIEByZXR1cm5zIGNvbHVtbiBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sdW1uIGRhdGEgYXQgZ2l2ZW4gaW5kZXhcbiAgICogQHBhcmFtIGlkeCBkYXRhIGluZGV4XG4gICAqIEByZXR1cm5zIGRhdGEgYXQgZ2l2ZW4gaW5kZXhcbiAgICovXG4gIHB1YmxpYyBnZXREYXRhQnlJbmRleChpZHg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0RhdGFJbmRleChpZHgpID8gdGhpcy5kYXRhW2lkeF0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGNvbHVtbiBoYXMgYSBnaXZlbiBkYXRhIGluZGV4XG4gICAqIEBwYXJhbSBpZHggZGF0YSBpbmRleFxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBoYXNEYXRhSW5kZXgoaWR4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaWR4ID49IDAgJiYgaWR4IDwgdGhpcy5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==

@@ -1,2 +0,1 @@

"use strict";
var __extends = (this && this.__extends) || (function () {

@@ -17,5 +16,3 @@ var extendStatics = function (d, b) {

})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomLogger = void 0;
var logger_1 = require("./logger");
import { Logger } from "./logger";
var CustomLogger = (function (_super) {

@@ -37,4 +34,4 @@ __extends(CustomLogger, _super);

return CustomLogger;
}(logger_1.Logger));
exports.CustomLogger = CustomLogger;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1c3RvbWxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBa0M7QUFNbEM7SUFBa0MsZ0NBQU07SUFBeEM7O0lBc0JBLENBQUM7SUFkUSwwQkFBRyxHQUFWLFVBQ0UsSUFBWSxFQUNaLENBQVcsRUFDWCxLQUEyQjtRQUEzQixzQkFBQSxFQUFBLFlBQTJCO1FBRzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXRCRCxDQUFrQyxlQUFNLEdBc0J2QztBQXRCWSxvQ0FBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xuaW1wb3J0IHsgUmVzcG9uc2UgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuXG4vKipcbiAqIExvZ2dlciBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTG9nZ2VyIGV4dGVuZHMgTG9nZ2VyIHtcbiAgLyoqXG4gICAqIG91dHB1dC9sb2cgZ2l2ZW4gZGF0YVxuICAgKiBAcGFyYW0gcG9zdCByZXF1ZXN0IHN0cmluZyB1c2VkXG4gICAqIEBwYXJhbSByIFJlc3BvbnNlIG9iamVjdFxuICAgKiBAcGFyYW0gZXJyb3IgZXJyb3IgbWVzc2FnZSBvciBudWxsXG4gICAqIEByZXR1cm4gY3VycmVudCBMb2dnZXIgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGxvZyhcbiAgICBwb3N0OiBzdHJpbmcsXG4gICAgcjogUmVzcG9uc2UsXG4gICAgZXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gICk6IEN1c3RvbUxvZ2dlciB7XG4gICAgLy8gYXBwbHkgaGVyZSB3aGF0ZXZlciB5b3UgbmVlZCBlLmcuXG4gICAgY29uc29sZS5sb2cocG9zdCk7XG4gICAgY29uc29sZS5kaXIoci5nZXRDb21tYW5kKCkpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHIuZ2V0UGxhaW4oKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
}(Logger));
export { CustomLogger };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1c3RvbWxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTWxDO0lBQWtDLGdDQUFNO0lBQXhDOztJQXNCQSxDQUFDO0lBZFEsMEJBQUcsR0FBVixVQUNFLElBQVksRUFDWixDQUFXLEVBQ1gsS0FBMkI7UUFBM0Isc0JBQUEsRUFBQSxZQUEyQjtRQUczQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUF0QkQsQ0FBa0MsTUFBTSxHQXNCdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiLi9sb2dnZXJcIjtcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVzcG9uc2VcIjtcblxuLyoqXG4gKiBMb2dnZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUxvZ2dlciBleHRlbmRzIExvZ2dlciB7XG4gIC8qKlxuICAgKiBvdXRwdXQvbG9nIGdpdmVuIGRhdGFcbiAgICogQHBhcmFtIHBvc3QgcmVxdWVzdCBzdHJpbmcgdXNlZFxuICAgKiBAcGFyYW0gciBSZXNwb25zZSBvYmplY3RcbiAgICogQHBhcmFtIGVycm9yIGVycm9yIG1lc3NhZ2Ugb3IgbnVsbFxuICAgKiBAcmV0dXJuIGN1cnJlbnQgTG9nZ2VyIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBsb2coXG4gICAgcG9zdDogc3RyaW5nLFxuICAgIHI6IFJlc3BvbnNlLFxuICAgIGVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICApOiBDdXN0b21Mb2dnZXIge1xuICAgIC8vIGFwcGx5IGhlcmUgd2hhdGV2ZXIgeW91IG5lZWQgZS5nLlxuICAgIGNvbnNvbGUubG9nKHBvc3QpO1xuICAgIGNvbnNvbGUuZGlyKHIuZ2V0Q29tbWFuZCgpKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhyLmdldFBsYWluKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=

@@ -1,10 +0,5 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseTemplateManager = exports.Response = exports.APIClient = void 0;
var apiclient_1 = require("./apiclient");
Object.defineProperty(exports, "APIClient", { enumerable: true, get: function () { return apiclient_1.APIClient; } });
var response_1 = require("./response");
Object.defineProperty(exports, "Response", { enumerable: true, get: function () { return response_1.Response; } });
var responsetemplatemanager_1 = require("./responsetemplatemanager");
Object.defineProperty(exports, "ResponseTemplateManager", { enumerable: true, get: function () { return responsetemplatemanager_1.ResponseTemplateManager; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBUXRDLDBGQVJPLHFCQUFTLE9BUVA7QUFQWCx1Q0FBc0M7QUFXcEMseUZBWE8sbUJBQVEsT0FXUDtBQVZWLHFFQUFvRTtBQWNsRSx3R0FkTyxpREFBdUIsT0FjUCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUNsaWVudCB9IGZyb20gXCIuL2FwaWNsaWVudFwiO1xuaW1wb3J0IHsgUmVzcG9uc2UgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuaW1wb3J0IHsgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgfSBmcm9tIFwiLi9yZXNwb25zZXRlbXBsYXRlbWFuYWdlclwiO1xuXG5leHBvcnQge1xuICAvKipcbiAgICogQVBJQ2xpZW50IGNsYXNzXG4gICAqL1xuICBBUElDbGllbnQsXG4gIC8qKlxuICAgKiBSZXNwb25zZSBjbGFzc1xuICAgKi9cbiAgUmVzcG9uc2UsIC8vIG5lZWQgdGhpcyB0byByZXBsYWNlICdhcHBseUN1c3RvbUNoYW5nZXMnXG4gIC8qKlxuICAgKiBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciBjbGFzc1xuICAgKi9cbiAgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIsXG59O1xuIl19
import { APIClient } from "./apiclient";
import { Response } from "./response";
import { ResponseTemplateManager } from "./responsetemplatemanager";
export { APIClient, Response, ResponseTemplateManager, };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFJTCxTQUFTLEVBSVQsUUFBUSxFQUlSLHVCQUF1QixHQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJQ2xpZW50IH0gZnJvbSBcIi4vYXBpY2xpZW50XCI7XG5pbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gXCIuL3Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciB9IGZyb20gXCIuL3Jlc3BvbnNldGVtcGxhdGVtYW5hZ2VyXCI7XG5cbmV4cG9ydCB7XG4gIC8qKlxuICAgKiBBUElDbGllbnQgY2xhc3NcbiAgICovXG4gIEFQSUNsaWVudCxcbiAgLyoqXG4gICAqIFJlc3BvbnNlIGNsYXNzXG4gICAqL1xuICBSZXNwb25zZSwgLy8gbmVlZCB0aGlzIHRvIHJlcGxhY2UgJ2FwcGx5Q3VzdG9tQ2hhbmdlcydcbiAgLyoqXG4gICAqIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIGNsYXNzXG4gICAqL1xuICBSZXNwb25zZVRlbXBsYXRlTWFuYWdlcixcbn07XG4iXX0=

@@ -1,4 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
var Logger = (function () {

@@ -19,3 +16,3 @@ function Logger() {

}());
exports.Logger = Logger;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQTtJQUFBO0lBaUJBLENBQUM7SUFUUSxvQkFBRyxHQUFWLFVBQVcsSUFBWSxFQUFFLENBQVcsRUFBRSxLQUEyQjtRQUEzQixzQkFBQSxFQUFBLFlBQTJCO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQThCLEtBQU8sQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQWpCRCxJQWlCQztBQWpCWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVzcG9uc2VcIjtcblxuLyoqXG4gKiBMb2dnZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIExvZ2dlciB7XG4gIC8qKlxuICAgKiBvdXRwdXQvbG9nIGdpdmVuIGRhdGFcbiAgICogQHBhcmFtIHBvc3QgcmVxdWVzdCBzdHJpbmcgdXNlZFxuICAgKiBAcGFyYW0gciBSZXNwb25zZSBvYmplY3RcbiAgICogQHBhcmFtIGVycm9yIGVycm9yIG1lc3NhZ2Ugb3IgbnVsbFxuICAgKiBAcmV0dXJuIGN1cnJlbnQgTG9nZ2VyIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBsb2cocG9zdDogc3RyaW5nLCByOiBSZXNwb25zZSwgZXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsKTogTG9nZ2VyIHtcbiAgICBjb25zb2xlLmRpcihyLmdldENvbW1hbmQoKSk7XG4gICAgY29uc29sZS5sb2cocG9zdCk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBIVFRQIGNvbW11bmljYXRpb24gZmFpbGVkOiAke2Vycm9yfWApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhyLmdldFBsYWluKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
export { Logger };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTtJQUFBO0lBaUJBLENBQUM7SUFUUSxvQkFBRyxHQUFWLFVBQVcsSUFBWSxFQUFFLENBQVcsRUFBRSxLQUEyQjtRQUEzQixzQkFBQSxFQUFBLFlBQTJCO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQThCLEtBQU8sQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQWpCRCxJQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVzcG9uc2VcIjtcblxuLyoqXG4gKiBMb2dnZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIExvZ2dlciB7XG4gIC8qKlxuICAgKiBvdXRwdXQvbG9nIGdpdmVuIGRhdGFcbiAgICogQHBhcmFtIHBvc3QgcmVxdWVzdCBzdHJpbmcgdXNlZFxuICAgKiBAcGFyYW0gciBSZXNwb25zZSBvYmplY3RcbiAgICogQHBhcmFtIGVycm9yIGVycm9yIG1lc3NhZ2Ugb3IgbnVsbFxuICAgKiBAcmV0dXJuIGN1cnJlbnQgTG9nZ2VyIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBsb2cocG9zdDogc3RyaW5nLCByOiBSZXNwb25zZSwgZXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsKTogTG9nZ2VyIHtcbiAgICBjb25zb2xlLmRpcihyLmdldENvbW1hbmQoKSk7XG4gICAgY29uc29sZS5sb2cocG9zdCk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBIVFRQIGNvbW11bmljYXRpb24gZmFpbGVkOiAke2Vycm9yfWApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhyLmdldFBsYWluKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=

@@ -1,4 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Record = void 0;
var Record = (function () {

@@ -22,3 +19,3 @@ function Record(data) {

}());
exports.Record = Record;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTtJQVVFLGdCQUFtQixJQUFTO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFNTSx3QkFBTyxHQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFPTSw2QkFBWSxHQUFuQixVQUFvQixHQUFXO1FBQzdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPTyx3QkFBTyxHQUFmLFVBQWdCLEdBQVc7UUFDekIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUExQ0QsSUEwQ0M7QUExQ1ksd0JBQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY29yZCBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgUmVjb3JkIHtcbiAgLyoqXG4gICAqIHJvdyBkYXRhIGNvbnRhaW5lclxuICAgKi9cbiAgcHJpdmF0ZSBkYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBkYXRhIGRhdGEgb2JqZWN0ICh1c2UgY29sdW1uIG5hbWVzIGFzIG9iamVjdCBrZXlzKVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IGFueSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHJvdyBkYXRhXG4gICAqIEByZXR1cm5zIHJvdyBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHJvdyBkYXRhIGZvciBnaXZlbiBjb2x1bW5cbiAgICogQHBhcmFtIGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcmV0dXJucyByb3cgZGF0YSBmb3IgZ2l2ZW4gY29sdW1uIG9yIG51bGwgaWYgY29sdW1uIGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YUJ5S2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaGFzRGF0YShrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHJlY29yZCBoYXMgZGF0YSBmb3IgZ2l2ZW4gY29sdW1uXG4gICAqIEBwYXJhbSBrZXkgY29sdW1uIG5hbWVcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHByaXZhdGUgaGFzRGF0YShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5kYXRhLCBrZXkpO1xuICB9XG59XG4iXX0=
export { Record };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtJQVVFLGdCQUFtQixJQUFTO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFNTSx3QkFBTyxHQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFPTSw2QkFBWSxHQUFuQixVQUFvQixHQUFXO1FBQzdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPTyx3QkFBTyxHQUFmLFVBQWdCLEdBQVc7UUFDekIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUExQ0QsSUEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY29yZCBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgUmVjb3JkIHtcbiAgLyoqXG4gICAqIHJvdyBkYXRhIGNvbnRhaW5lclxuICAgKi9cbiAgcHJpdmF0ZSBkYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBkYXRhIGRhdGEgb2JqZWN0ICh1c2UgY29sdW1uIG5hbWVzIGFzIG9iamVjdCBrZXlzKVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IGFueSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHJvdyBkYXRhXG4gICAqIEByZXR1cm5zIHJvdyBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHJvdyBkYXRhIGZvciBnaXZlbiBjb2x1bW5cbiAgICogQHBhcmFtIGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcmV0dXJucyByb3cgZGF0YSBmb3IgZ2l2ZW4gY29sdW1uIG9yIG51bGwgaWYgY29sdW1uIGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YUJ5S2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaGFzRGF0YShrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhW2tleV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHJlY29yZCBoYXMgZGF0YSBmb3IgZ2l2ZW4gY29sdW1uXG4gICAqIEBwYXJhbSBrZXkgY29sdW1uIG5hbWVcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHByaXZhdGUgaGFzRGF0YShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5kYXRhLCBrZXkpO1xuICB9XG59XG4iXX0=

@@ -1,2 +0,1 @@

"use strict";
var __extends = (this && this.__extends) || (function () {

@@ -17,7 +16,5 @@ var extendStatics = function (d, b) {

})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Response = void 0;
var column_1 = require("./column");
var record_1 = require("./record");
var responsetemplate_1 = require("./responsetemplate");
import { Column } from "./column";
import { Record } from "./record";
import { ResponseTemplate } from "./responsetemplate";
var Response = (function (_super) {

@@ -74,3 +71,3 @@ __extends(Response, _super);

Response.prototype.addColumn = function (key, data) {
var col = new column_1.Column(key, data);
var col = new Column(key, data);
this.columns.push(col);

@@ -81,3 +78,3 @@ this.columnkeys.push(key);

Response.prototype.addRecord = function (h) {
this.records.push(new record_1.Record(h));
this.records.push(new Record(h));
return this;

@@ -276,4 +273,4 @@ };

return Response;
}(responsetemplate_1.ResponseTemplate));
exports.Response = Response;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQWtDO0FBQ2xDLG1DQUFrQztBQUNsQyx1REFBc0Q7QUFLdEQ7SUFBOEIsNEJBQWdCO0lBOEI1QyxrQkFBbUIsR0FBVyxFQUFFLEdBQVEsRUFBRSxFQUFZO1FBQVosbUJBQUEsRUFBQSxPQUFZO1FBQXRELFlBQ0Usa0JBQU0sR0FBRyxDQUFDLFNBZ0RYO1FBOUNDLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQWU7WUFDM0IsS0FBSSxDQUFDLEdBQUcsR0FBRyxLQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFJLE9BQU8sTUFBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSSxDQUFDLEdBQUcsR0FBRyxLQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEQsUUFBQSxrQkFBTSxLQUFJLENBQUMsR0FBRyxDQUFDLFNBQUM7UUFHaEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFDRSxLQUFJLENBQUMsT0FBTztZQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUM5RDtZQUVBLEtBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUMvQjtRQUNELEtBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUksQ0FBQyxPQUFPLEdB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LEdBQWpCLFVBQWtCLEdBQVc7UUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBT08sbUNBQWdCLEdBQXhCO1FBQ0UsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3BFLENBQUM7SUFPTyxnQ0FBYSxHQUFyQjtRQUNFLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELENBQUM7SUFPTyxvQ0FBaUIsR0FBekI7UUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFDSCxlQUFDO0FBQUQsQ0FBQyxBQTliRCxDQUE4QixtQ0FBZ0IsR0E4YjdDO0FBOWJZLDRCQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vY29sdW1uXCI7XG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tIFwiLi9yZWNvcmRcIjtcbmltcG9ydCB7IFJlc3BvbnNlVGVtcGxhdGUgfSBmcm9tIFwiLi9yZXNwb25zZXRlbXBsYXRlXCI7XG5cbi8qKlxuICogUmVzcG9uc2UgQ2xhc3MgaW5oZXJpdGluZyBmcm9tIFJlc3BvbnNlVGVtcGxhdGUgQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2VUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgQVBJIENvbW1hbmQgdXNlZCB3aXRoaW4gdGhpcyByZXF1ZXN0XG4gICAqL1xuICBwcml2YXRlIGNvbW1hbmQ6IGFueTtcbiAgLyoqXG4gICAqIENvbHVtbiBuYW1lcyBhdmFpbGFibGUgaW4gdGhpcyByZXNwb25zc2VcbiAgICogTk9URTogdGhpcyBpbmNsdWRlcyBhbHNvIEZJUlNULCBMQVNULCBMSU1JVCwgQ09VTlQsIFRPVEFMXG4gICAqIGFuZCBtYXliZSBmdXJ0aGVyIHNwZWNpZmljIGNvbHVtbnMgaW4gY2FzZSBvZiBhIGxpc3QgcXVlcnlcbiAgICovXG4gIHByaXZhdGUgY29sdW1ua2V5czogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDb250YWluZXIgb2YgQ29sdW1uIEluc3RhbmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb2x1bW5zOiBDb2x1bW5bXTtcbiAgLyoqXG4gICAqIFJlY29yZCBJbmRleCB3ZSBjdXJyZW50bHkgcG9pbnQgdG8gaW4gcmVjb3JkIGxpc3RcbiAgICovXG4gIHByaXZhdGUgcmVjb3JkSW5kZXg6IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlY29yZCBMaXN0IChMaXN0IG9mIHJvd3MpXG4gICAqL1xuICBwcml2YXRlIHJlY29yZHM6IFJlY29yZFtdO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gcmF3IEFQSSBwbGFpbiByZXNwb25zZVxuICAgKiBAcGFyYW0gY21kIEFQSSBjb21tYW5kIHVzZWQgd2l0aGluIHRoaXMgcmVxdWVzdFxuICAgKiBAcGFyYW0gJHBoIHBsYWNlaG9sZGVyIGFycmF5IHRvIGdldCB2YXJzIGluIHJlc3BvbnNlIGRlc2NyaXB0aW9uIGR5bmFtaWNhbGx5IHJlcGxhY2VkXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocmF3OiBzdHJpbmcsIGNtZDogYW55LCBwaDogYW55ID0ge30pIHtcbiAgICBzdXBlcihyYXcpO1xuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHBoKTtcbiAgICBrZXlzLmZvckVhY2goKHZhck5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5yYXcgPSB0aGlzLnJhdy5yZXBsYWNlKG5ldyBSZWdFeHAoYHske3Zhck5hbWV9fWAsIFwiZ1wiKSwgcGhbdmFyTmFtZV0pO1xuICAgIH0pO1xuICAgIHRoaXMucmF3ID0gdGhpcy5yYXcucmVwbGFjZSgvXFx7W0EtWl9dK1xcfS9nLCBcIlwiKTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb25zdHJ1Y3Rvci1zdXBlciAqL1xuICAgIHN1cGVyKHRoaXMucmF3KTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGNvbnN0cnVjdG9yLXN1cGVyICovXG5cbiAgICB0aGlzLmNvbW1hbmQgPSBjbWQ7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb21tYW5kICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jb21tYW5kLCBcIlBBU1NXT1JEXCIpXG4gICAgKSB7XG4gICAgICAvLyBtYWtlIHBhc3N3b3JkIG5vIGxvbmdlciBhY2Nlc3NpYmxlXG4gICAgICB0aGlzLmNvbW1hbmQuUEFTU1dPUkQgPSBcIioqKlwiO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtbmtleXMgPSBbXTtcbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICB0aGlzLnJlY29yZEluZGV4ID0gMDtcbiAgICB0aGlzLnJlY29yZHMgPSBbXTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIlBST1BFUlRZXCIpKSB7XG4gICAgICBjb25zdCBjb2xLZXlzID0gT2JqZWN0LmtleXModGhpcy5oYXNoLlBST1BFUlRZKTtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBjb2xLZXlzLmZvckVhY2goKGM6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBkID0gdGhpcy5oYXNoLlBST1BFUlRZW2NdO1xuICAgICAgICB0aGlzLmFkZENvbHVtbihjLCBkKTtcbiAgICAgICAgaWYgKGQubGVuZ3RoID4gY291bnQpIHtcbiAgICAgICAgICBjb3VudCA9IGQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBkOiBhbnkgPSB7fTtcbiAgICAgICAgY29sS2V5cy5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmdldENvbHVtbihrKTtcbiAgICAgICAgICBpZiAoY29sKSB7XG4gICAgICAgICAgICBjb25zdCB2ID0gY29sLmdldERhdGFCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgZFtrXSA9IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRSZWNvcmQoZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNvbHVtbiB0byB0aGUgY29sdW1uIGxpc3RcbiAgICogQHBhcmFtIGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcGFyYW0gZGF0YSBhcnJheSBvZiBjb2x1bW4gZGF0YVxuICAgKiBAcmV0dXJucyBDdXJyZW50IFJlc3BvbnNlIEluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBhZGRDb2x1bW4oa2V5OiBzdHJpbmcsIGRhdGE6IHN0cmluZ1tdKTogUmVzcG9uc2Uge1xuICAgIGNvbnN0IGNvbCA9IG5ldyBDb2x1bW4oa2V5LCBkYXRhKTtcbiAgICB0aGlzLmNvbHVtbnMucHVzaChjb2wpO1xuICAgIHRoaXMuY29sdW1ua2V5cy5wdXNoKGtleSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVjb3JkIHRvIHRoZSByZWNvcmQgbGlzdFxuICAgKiBAcGFyYW0gaCByb3cgaGFzaCBkYXRhXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgUmVzcG9uc2UgSW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGFkZFJlY29yZChoOiBhbnkpOiBSZXNwb25zZSB7XG4gICAgdGhpcy5yZWNvcmRzLnB1c2gobmV3IFJlY29yZChoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbHVtbiBieSBjb2x1bW4gbmFtZVxuICAgKiBAcGFyYW0ga2V5IGNvbHVtbiBuYW1lXG4gICAqIEByZXR1cm5zIGNvbHVtbiBpbnN0YW5jZSBvciBudWxsIGlmIGNvbHVtbiBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldENvbHVtbihrZXk6IHN0cmluZyk6IENvbHVtbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbHVtbihrZXkpXG4gICAgICA/IHRoaXMuY29sdW1uc1t0aGlzLmNvbHVtbmtleXMuaW5kZXhPZihrZXkpXVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBEYXRhIGJ5IENvbHVtbiBOYW1lIGFuZCBJbmRleFxuICAgKiBAcGFyYW0gY29sa2V5IGNvbHVtbiBuYW1lXG4gICAqIEBwYXJhbSBpbmRleCBjb2x1bW4gZGF0YSBpbmRleFxuICAgKiBAcmV0dXJucyBjb2x1bW4gZGF0YSBhdCBpbmRleCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldENvbHVtbkluZGV4KGNvbGtleTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oY29sa2V5KTtcbiAgICByZXR1cm4gY29sID8gY29sLmdldERhdGFCeUluZGV4KGluZGV4KSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IENvbHVtbiBOYW1lc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBDb2x1bW4gTmFtZXNcbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW5LZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5rZXlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMaXN0IG9mIENvbHVtbnNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgQ29sdW1uc1xuICAgKi9cbiAgcHVibGljIGdldENvbHVtbnMoKTogQ29sdW1uW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IENvbW1hbmQgdXNlZCBpbiB0aGlzIHJlcXVlc3RcbiAgICogQHJldHVybnMgY29tbWFuZFxuICAgKi9cbiAgcHVibGljIGdldENvbW1hbmQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jb21tYW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBDb21tYW5kIHVzZWQgaW4gdGhpcyByZXF1ZXN0IGluIHBsYWluIHRleHQgZm9ybWF0XG4gICAqIEByZXR1cm4gY29tbWFuZCBhcyBwbGFpbiB0ZXh0XG4gICAqL1xuICBwdWJsaWMgZ2V0Q29tbWFuZFBsYWluKCk6IHN0cmluZyB7XG4gICAgbGV0IHRtcCA9IFwiXCI7XG4gICAgT2JqZWN0LmtleXModGhpcy5jb21tYW5kKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgdG1wICs9IGAke2tleX0gPSAke3RoaXMuY29tbWFuZFtrZXldfVxcbmA7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUGFnZSBOdW1iZXIgb2YgY3VycmVudCBMaXN0IFF1ZXJ5XG4gICAqIEByZXR1cm5zIHBhZ2UgbnVtYmVyIG9yIG51bGwgaW4gY2FzZSBvZiBhIG5vbi1saXN0IHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgZmlyc3QgPSB0aGlzLmdldEZpcnN0UmVjb3JkSW5kZXgoKTtcbiAgICBjb25zdCBsaW1pdCA9IHRoaXMuZ2V0UmVjb3Jkc0xpbWl0YXRpb24oKTtcbiAgICBpZiAoZmlyc3QgIT09IG51bGwgJiYgbGltaXQpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKGZpcnN0IC8gbGltaXQpICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFJlY29yZCBvZiBjdXJyZW50IHJlY29yZCBpbmRleFxuICAgKiBAcmV0dXJucyBSZWNvcmQgb3IgbnVsbCBpbiBjYXNlIG9mIGEgbm9uLWxpc3QgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50UmVjb3JkKCk6IFJlY29yZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0N1cnJlbnRSZWNvcmQoKSA/IHRoaXMucmVjb3Jkc1t0aGlzLnJlY29yZEluZGV4XSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEluZGV4IG9mIGZpcnN0IHJvdyBpbiB0aGlzIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIGZpcnN0IHJvdyBpbmRleFxuICAgKi9cbiAgcHVibGljIGdldEZpcnN0UmVjb3JkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oXCJGSVJTVFwiKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb25zdCBmID0gY29sLmdldERhdGFCeUluZGV4KDApO1xuICAgICAgaWYgKGYgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGYsIDEwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMucmVjb3Jkcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGFzdCByZWNvcmQgaW5kZXggb2YgdGhlIGN1cnJlbnQgbGlzdCBxdWVyeVxuICAgKiBAcmV0dXJucyByZWNvcmQgaW5kZXggb3IgbnVsbCBmb3IgYSBub24tbGlzdCByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGdldExhc3RSZWNvcmRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBjb2wgPSB0aGlzLmdldENvbHVtbihcIkxBU1RcIik7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29uc3QgbCA9IGNvbC5nZXREYXRhQnlJbmRleCgwKTtcbiAgICAgIGlmIChsICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChsLCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxlbiA9IHRoaXMuZ2V0UmVjb3Jkc0NvdW50KCk7XG4gICAgaWYgKGxlbikge1xuICAgICAgcmV0dXJuIGxlbiAtIDE7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBSZXNwb25zZSBhcyBMaXN0IEhhc2ggaW5jbHVkaW5nIHVzZWZ1bCBtZXRhIGRhdGEgZm9yIHRhYmxlc1xuICAgKiBAcmV0dXJucyBoYXNoIGluY2x1ZGluZyBsaXN0IG1ldGEgZGF0YSBhbmQgYXJyYXkgb2Ygcm93cyBpbiBoYXNoIG5vdGF0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0TGlzdEhhc2goKTogYW55IHtcbiAgICBjb25zdCBsaDogYW55W10gPSBbXTtcbiAgICB0aGlzLmdldFJlY29yZHMoKS5mb3JFYWNoKChyZWMpID0+IHtcbiAgICAgIGxoLnB1c2gocmVjLmdldERhdGEoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIExJU1Q6IGxoLFxuICAgICAgbWV0YToge1xuICAgICAgICBjb2x1bW5zOiB0aGlzLmdldENvbHVtbktleXMoKSxcbiAgICAgICAgcGc6IHRoaXMuZ2V0UGFnaW5hdGlvbigpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXh0IHJlY29yZCBpbiByZWNvcmQgbGlzdFxuICAgKiBAcmV0dXJucyBSZWNvcmQgb3IgbnVsbCBpbiBjYXNlIHRoZXJlJ3Mgbm8gZnVydGhlciByZWNvcmRcbiAgICovXG4gIHB1YmxpYyBnZXROZXh0UmVjb3JkKCk6IFJlY29yZCB8IG51bGwge1xuICAgIGlmICh0aGlzLmhhc05leHRSZWNvcmQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc1srK3RoaXMucmVjb3JkSW5kZXhdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUGFnZSBOdW1iZXIgb2YgbmV4dCBsaXN0IHF1ZXJ5XG4gICAqIEByZXR1cm5zIHBhZ2UgbnVtYmVyIG9yIG51bGwgaWYgdGhlcmUncyBubyBuZXh0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXROZXh0UGFnZU51bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBjcCA9IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTtcbiAgICBpZiAoY3AgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYWdlID0gY3AgKyAxO1xuICAgIGNvbnN0IHBhZ2VzID0gdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgcmV0dXJuIHBhZ2UgPD0gcGFnZXMgPyBwYWdlIDogcGFnZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgYXZhaWxhYmxlIGZvciB0aGlzIGxpc3QgcXVlcnlcbiAgICogQHJldHVybnMgbnVtYmVyIG9mIHBhZ2VzXG4gICAqL1xuICBwdWJsaWMgZ2V0TnVtYmVyT2ZQYWdlcygpOiBudW1iZXIge1xuICAgIGNvbnN0IHQgPSB0aGlzLmdldFJlY29yZHNUb3RhbENvdW50KCk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmdldFJlY29yZHNMaW1pdGF0aW9uKCk7XG4gICAgaWYgKHQgJiYgbGltaXQpIHtcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodCAvIHRoaXMuZ2V0UmVjb3Jkc0xpbWl0YXRpb24oKSk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvYmplY3QgY29udGFpbmluZyBhbGwgcGFnaW5nIGRhdGFcbiAgICogQHJldHVybnMgcGFnaW5hdG9yIGRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXRQYWdpbmF0aW9uKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIENPVU5UOiB0aGlzLmdldFJlY29yZHNDb3VudCgpLFxuICAgICAgQ1VSUkVOVFBBR0U6IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKSxcbiAgICAgIEZJUlNUOiB0aGlzLmdldEZpcnN0UmVjb3JkSW5kZXgoKSxcbiAgICAgIExBU1Q6IHRoaXMuZ2V0TGFzdFJlY29yZEluZGV4KCksXG4gICAgICBMSU1JVDogdGhpcy5nZXRSZWNvcmRzTGltaXRhdGlvbigpLFxuICAgICAgTkVYVFBBR0U6IHRoaXMuZ2V0TmV4dFBhZ2VOdW1iZXIoKSxcbiAgICAgIFBBR0VTOiB0aGlzLmdldE51bWJlck9mUGFnZXMoKSxcbiAgICAgIFBSRVZJT1VTUEFHRTogdGhpcy5nZXRQcmV2aW91c1BhZ2VOdW1iZXIoKSxcbiAgICAgIFRPVEFMOiB0aGlzLmdldFJlY29yZHNUb3RhbENvdW50KCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUGFnZSBOdW1iZXIgb2YgcHJldmlvdXMgbGlzdCBxdWVyeVxuICAgKiBAcmV0dXJucyBwYWdlIG51bWJlciBvciBudWxsIGlmIHRoZXJlJ3Mgbm8gcHJldmlvdXMgcGFnZVxuICAgKi9cbiAgcHVibGljIGdldFByZXZpb3VzUGFnZU51bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBjcCA9IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTtcbiAgICBpZiAoY3AgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3AgLSAxIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByZXZpb3VzIHJlY29yZCBpbiByZWNvcmQgbGlzdFxuICAgKiBAcmV0dXJucyBSZWNvcmQgb3IgbnVsbCBpZiB0aGVyZSdzIG5vIHByZXZpb3VzIHJlY29yZFxuICAgKi9cbiAgcHVibGljIGdldFByZXZpb3VzUmVjb3JkKCk6IFJlY29yZCB8IG51bGwge1xuICAgIGlmICh0aGlzLmhhc1ByZXZpb3VzUmVjb3JkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY29yZHNbLS10aGlzLnJlY29yZEluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFJlY29yZCBhdCBnaXZlbiBpbmRleFxuICAgKiBAcGFyYW0gaWR4IHJlY29yZCBpbmRleFxuICAgKiBAcmV0dXJucyBSZWNvcmQgb3IgbnVsbCBpZiBpbmRleCBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldFJlY29yZChpZHg6IG51bWJlcik6IFJlY29yZCB8IG51bGwge1xuICAgIGlmIChpZHggPj0gMCAmJiB0aGlzLnJlY29yZHMubGVuZ3RoID4gaWR4KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWNvcmRzW2lkeF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgUmVjb3Jkc1xuICAgKiBAcmV0dXJucyBhcnJheSBvZiByZWNvcmRzXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVjb3JkcygpOiBSZWNvcmRbXSB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3JkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY291bnQgb2Ygcm93cyBpbiB0aGlzIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIGNvdW50IG9mIHJvd3NcbiAgICovXG4gIHB1YmxpYyBnZXRSZWNvcmRzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgY291bnQgb2YgcmVjb3JkcyBhdmFpbGFibGUgZm9yIHRoZSBsaXN0IHF1ZXJ5XG4gICAqIEByZXR1cm5zIHRvdGFsIGNvdW50IG9mIHJlY29yZHMgb3IgY291bnQgb2YgcmVjb3JkcyBmb3IgYSBub24tbGlzdCByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGdldFJlY29yZHNUb3RhbENvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oXCJUT1RBTFwiKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb25zdCB0ID0gY29sLmdldERhdGFCeUluZGV4KDApO1xuICAgICAgaWYgKHQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHQsIDEwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0NvdW50KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpbWl0KGF0aW9uKSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGxpc3QgcXVlcnlcbiAgICogVGhpcyBpcyB0aGUgY291bnQgb2YgcmVxdWVzdGVkIHJvd3NcbiAgICogQHJldHVybnMgbGltaXQgc2V0dGluZyBvciBjb3VudCByZXF1ZXN0ZWQgcm93c1xuICAgKi9cbiAgcHVibGljIGdldFJlY29yZHNMaW1pdGF0aW9uKCk6IG51bWJlciB7XG4gICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oXCJMSU1JVFwiKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb25zdCBsID0gY29sLmdldERhdGFCeUluZGV4KDApO1xuICAgICAgaWYgKGwgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0NvdW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhpcyBsaXN0IHF1ZXJ5IGhhcyBhIG5leHQgcGFnZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNwID0gdGhpcy5nZXRDdXJyZW50UGFnZU51bWJlcigpO1xuICAgIGlmIChjcCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gY3AgKyAxIDw9IHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoaXMgbGlzdCBxdWVyeSBoYXMgYSBwcmV2aW91cyBwYWdlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaGFzUHJldmlvdXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNwID0gdGhpcy5nZXRDdXJyZW50UGFnZU51bWJlcigpO1xuICAgIGlmIChjcCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gY3AgLSAxID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbmRleCBpbiByZWNvcmQgbGlzdCBiYWNrIHRvIHplcm9cbiAgICogQHJldHVybnMgQ3VycmVudCBSZXNwb25zZSBJbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgcmV3aW5kUmVjb3JkTGlzdCgpOiBSZXNwb25zZSB7XG4gICAgdGhpcy5yZWNvcmRJbmRleCA9IDA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY29sdW1uIGV4aXN0cyBpbiByZXNwb25zZVxuICAgKiBAcGFyYW0ga2V5IGNvbHVtbiBuYW1lXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwcml2YXRlIGhhc0NvbHVtbihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbmtleXMuaW5kZXhPZihrZXkpICE9PSAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgcmVjb3JkIGxpc3QgY29udGFpbnMgYSByZWNvcmQgZm9yIHRoZVxuICAgKiBjdXJyZW50IHJlY29yZCBpbmRleCBpbiB1c2VcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHByaXZhdGUgaGFzQ3VycmVudFJlY29yZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsZW4gPSB0aGlzLnJlY29yZHMubGVuZ3RoO1xuICAgIHJldHVybiBsZW4gPiAwICYmIHRoaXMucmVjb3JkSW5kZXggPj0gMCAmJiB0aGlzLnJlY29yZEluZGV4IDwgbGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSByZWNvcmQgbGlzdCBjb250YWlucyBhIG5leHQgcmVjb3JkIGZvciB0aGVcbiAgICogY3VycmVudCByZWNvcmQgaW5kZXggaW4gdXNlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwcml2YXRlIGhhc05leHRSZWNvcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMucmVjb3JkSW5kZXggKyAxO1xuICAgIHJldHVybiB0aGlzLmhhc0N1cnJlbnRSZWNvcmQoKSAmJiBuZXh0IDwgdGhpcy5yZWNvcmRzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgcmVjb3JkIGxpc3QgY29udGFpbnMgYSBwcmV2aW91cyByZWNvcmQgZm9yIHRoZVxuICAgKiBjdXJyZW50IHJlY29yZCBpbmRleCBpbiB1c2VcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHByaXZhdGUgaGFzUHJldmlvdXNSZWNvcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3JkSW5kZXggPiAwICYmIHRoaXMuaGFzQ3VycmVudFJlY29yZCgpO1xuICB9XG59XG4iXX0=
}(ResponseTemplate));
export { Response };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3REO0lBQThCLDRCQUFnQjtJQThCNUMsa0JBQW1CLEdBQVcsRUFBRSxHQUFRLEVBQUUsRUFBWTtRQUFaLG1CQUFBLEVBQUEsT0FBWTtRQUF0RCxZQUNFLGtCQUFNLEdBQUcsQ0FBQyxTQWdEWDtRQTlDQyxJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFlO1lBQzNCLEtBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxPQUFPLE1BQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhELFFBQUEsa0JBQU0sS0FBSSxDQUFDLEdBQUcsQ0FBQyxTQUFDO1FBR2hCLEtBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ25CLElBQ0UsS0FBSSxDQUFDLE9BQU87WUFDWixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFDOUQ7WUFFQSxLQUFJLENBQUMsT0FBTyxDQUFD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Z0IsR0FBdkI7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPTyw0QkFBUyxHQUFqQixVQUFrQixHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQU9PLG1DQUFnQixHQUF4QjtRQUNFLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztJQUNwRSxDQUFDO0lBT08sZ0NBQWEsR0FBckI7UUFDRSxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0lBT08sb0NBQWlCLEdBQXpCO1FBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUE5YkQsQ0FBOEIsZ0JBQWdCLEdBOGI3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbiB9IGZyb20gXCIuL2NvbHVtblwiO1xuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSBcIi4vcmVjb3JkXCI7XG5pbXBvcnQgeyBSZXNwb25zZVRlbXBsYXRlIH0gZnJvbSBcIi4vcmVzcG9uc2V0ZW1wbGF0ZVwiO1xuXG4vKipcbiAqIFJlc3BvbnNlIENsYXNzIGluaGVyaXRpbmcgZnJvbSBSZXNwb25zZVRlbXBsYXRlIENsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlVGVtcGxhdGUge1xuICAvKipcbiAgICogVGhlIEFQSSBDb21tYW5kIHVzZWQgd2l0aGluIHRoaXMgcmVxdWVzdFxuICAgKi9cbiAgcHJpdmF0ZSBjb21tYW5kOiBhbnk7XG4gIC8qKlxuICAgKiBDb2x1bW4gbmFtZXMgYXZhaWxhYmxlIGluIHRoaXMgcmVzcG9uc3NlXG4gICAqIE5PVEU6IHRoaXMgaW5jbHVkZXMgYWxzbyBGSVJTVCwgTEFTVCwgTElNSVQsIENPVU5ULCBUT1RBTFxuICAgKiBhbmQgbWF5YmUgZnVydGhlciBzcGVjaWZpYyBjb2x1bW5zIGluIGNhc2Ugb2YgYSBsaXN0IHF1ZXJ5XG4gICAqL1xuICBwcml2YXRlIGNvbHVtbmtleXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ29udGFpbmVyIG9mIENvbHVtbiBJbnN0YW5jZXNcbiAgICovXG4gIHByaXZhdGUgY29sdW1uczogQ29sdW1uW107XG4gIC8qKlxuICAgKiBSZWNvcmQgSW5kZXggd2UgY3VycmVudGx5IHBvaW50IHRvIGluIHJlY29yZCBsaXN0XG4gICAqL1xuICBwcml2YXRlIHJlY29yZEluZGV4OiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZWNvcmQgTGlzdCAoTGlzdCBvZiByb3dzKVxuICAgKi9cbiAgcHJpdmF0ZSByZWNvcmRzOiBSZWNvcmRbXTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIHJhdyBBUEkgcGxhaW4gcmVzcG9uc2VcbiAgICogQHBhcmFtIGNtZCBBUEkgY29tbWFuZCB1c2VkIHdpdGhpbiB0aGlzIHJlcXVlc3RcbiAgICogQHBhcmFtICRwaCBwbGFjZWhvbGRlciBhcnJheSB0byBnZXQgdmFycyBpbiByZXNwb25zZSBkZXNjcmlwdGlvbiBkeW5hbWljYWxseSByZXBsYWNlZFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJhdzogc3RyaW5nLCBjbWQ6IGFueSwgcGg6IGFueSA9IHt9KSB7XG4gICAgc3VwZXIocmF3KTtcblxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwaCk7XG4gICAga2V5cy5mb3JFYWNoKCh2YXJOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMucmF3ID0gdGhpcy5yYXcucmVwbGFjZShuZXcgUmVnRXhwKGB7JHt2YXJOYW1lfX1gLCBcImdcIiksIHBoW3Zhck5hbWVdKTtcbiAgICB9KTtcbiAgICB0aGlzLnJhdyA9IHRoaXMucmF3LnJlcGxhY2UoL1xce1tBLVpfXStcXH0vZywgXCJcIik7XG4gICAgLyogZXNsaW50LWRpc2FibGUgY29uc3RydWN0b3Itc3VwZXIgKi9cbiAgICBzdXBlcih0aGlzLnJhdyk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBjb25zdHJ1Y3Rvci1zdXBlciAqL1xuXG4gICAgdGhpcy5jb21tYW5kID0gY21kO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29tbWFuZCAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY29tbWFuZCwgXCJQQVNTV09SRFwiKVxuICAgICkge1xuICAgICAgLy8gbWFrZSBwYXNzd29yZCBubyBsb25nZXIgYWNjZXNzaWJsZVxuICAgICAgdGhpcy5jb21tYW5kLlBBU1NXT1JEID0gXCIqKipcIjtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5rZXlzID0gW107XG4gICAgdGhpcy5jb2x1bW5zID0gW107XG4gICAgdGhpcy5yZWNvcmRJbmRleCA9IDA7XG4gICAgdGhpcy5yZWNvcmRzID0gW107XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuaGFzaCwgXCJQUk9QRVJUWVwiKSkge1xuICAgICAgY29uc3QgY29sS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuaGFzaC5QUk9QRVJUWSk7XG4gICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgY29sS2V5cy5mb3JFYWNoKChjOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuaGFzaC5QUk9QRVJUWVtjXTtcbiAgICAgICAgdGhpcy5hZGRDb2x1bW4oYywgZCk7XG4gICAgICAgIGlmIChkLmxlbmd0aCA+IGNvdW50KSB7XG4gICAgICAgICAgY291bnQgPSBkLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgY29uc3QgZDogYW55ID0ge307XG4gICAgICAgIGNvbEtleXMuZm9yRWFjaCgoazogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oayk7XG4gICAgICAgICAgaWYgKGNvbCkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGNvbC5nZXREYXRhQnlJbmRleChpKTtcbiAgICAgICAgICAgIGlmICh2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGRba10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWRkUmVjb3JkKGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjb2x1bW4gdG8gdGhlIGNvbHVtbiBsaXN0XG4gICAqIEBwYXJhbSBrZXkgY29sdW1uIG5hbWVcbiAgICogQHBhcmFtIGRhdGEgYXJyYXkgb2YgY29sdW1uIGRhdGFcbiAgICogQHJldHVybnMgQ3VycmVudCBSZXNwb25zZSBJbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgYWRkQ29sdW1uKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmdbXSk6IFJlc3BvbnNlIHtcbiAgICBjb25zdCBjb2wgPSBuZXcgQ29sdW1uKGtleSwgZGF0YSk7XG4gICAgdGhpcy5jb2x1bW5zLnB1c2goY29sKTtcbiAgICB0aGlzLmNvbHVtbmtleXMucHVzaChrZXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHJlY29yZCB0byB0aGUgcmVjb3JkIGxpc3RcbiAgICogQHBhcmFtIGggcm93IGhhc2ggZGF0YVxuICAgKiBAcmV0dXJucyBDdXJyZW50IFJlc3BvbnNlIEluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBhZGRSZWNvcmQoaDogYW55KTogUmVzcG9uc2Uge1xuICAgIHRoaXMucmVjb3Jkcy5wdXNoKG5ldyBSZWNvcmQoaCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2x1bW4gYnkgY29sdW1uIG5hbWVcbiAgICogQHBhcmFtIGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcmV0dXJucyBjb2x1bW4gaW5zdGFuY2Ugb3IgbnVsbCBpZiBjb2x1bW4gZG9lcyBub3QgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW4oa2V5OiBzdHJpbmcpOiBDb2x1bW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb2x1bW4oa2V5KVxuICAgICAgPyB0aGlzLmNvbHVtbnNbdGhpcy5jb2x1bW5rZXlzLmluZGV4T2Yoa2V5KV1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgRGF0YSBieSBDb2x1bW4gTmFtZSBhbmQgSW5kZXhcbiAgICogQHBhcmFtIGNvbGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcGFyYW0gaW5kZXggY29sdW1uIGRhdGEgaW5kZXhcbiAgICogQHJldHVybnMgY29sdW1uIGRhdGEgYXQgaW5kZXggb3IgbnVsbCBpZiBub3QgZm91bmRcbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW5JbmRleChjb2xrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZ2V0Q29sdW1uKGNvbGtleSk7XG4gICAgcmV0dXJuIGNvbCA/IGNvbC5nZXREYXRhQnlJbmRleChpbmRleCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBDb2x1bW4gTmFtZXNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgQ29sdW1uIE5hbWVzXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29sdW1uS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ua2V5cztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgTGlzdCBvZiBDb2x1bW5zXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIENvbHVtbnNcbiAgICovXG4gIHB1YmxpYyBnZXRDb2x1bW5zKCk6IENvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBDb21tYW5kIHVzZWQgaW4gdGhpcyByZXF1ZXN0XG4gICAqIEByZXR1cm5zIGNvbW1hbmRcbiAgICovXG4gIHB1YmxpYyBnZXRDb21tYW5kKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY29tbWFuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQ29tbWFuZCB1c2VkIGluIHRoaXMgcmVxdWVzdCBpbiBwbGFpbiB0ZXh0IGZvcm1hdFxuICAgKiBAcmV0dXJuIGNvbW1hbmQgYXMgcGxhaW4gdGV4dFxuICAgKi9cbiAgcHVibGljIGdldENvbW1hbmRQbGFpbigpOiBzdHJpbmcge1xuICAgIGxldCB0bXAgPSBcIlwiO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuY29tbWFuZCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHRtcCArPSBgJHtrZXl9ID0gJHt0aGlzLmNvbW1hbmRba2V5XX1cXG5gO1xuICAgIH0pO1xuICAgIHJldHVybiB0bXA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBhZ2UgTnVtYmVyIG9mIGN1cnJlbnQgTGlzdCBRdWVyeVxuICAgKiBAcmV0dXJucyBwYWdlIG51bWJlciBvciBudWxsIGluIGNhc2Ugb2YgYSBub24tbGlzdCByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRQYWdlTnVtYmVyKCk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5nZXRGaXJzdFJlY29yZEluZGV4KCk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmdldFJlY29yZHNMaW1pdGF0aW9uKCk7XG4gICAgaWYgKGZpcnN0ICE9PSBudWxsICYmIGxpbWl0KSB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihmaXJzdCAvIGxpbWl0KSArIDE7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBSZWNvcmQgb2YgY3VycmVudCByZWNvcmQgaW5kZXhcbiAgICogQHJldHVybnMgUmVjb3JkIG9yIG51bGwgaW4gY2FzZSBvZiBhIG5vbi1saXN0IHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFJlY29yZCgpOiBSZWNvcmQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDdXJyZW50UmVjb3JkKCkgPyB0aGlzLnJlY29yZHNbdGhpcy5yZWNvcmRJbmRleF0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBJbmRleCBvZiBmaXJzdCByb3cgaW4gdGhpcyByZXNwb25zZVxuICAgKiBAcmV0dXJucyBmaXJzdCByb3cgaW5kZXhcbiAgICovXG4gIHB1YmxpYyBnZXRGaXJzdFJlY29yZEluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZ2V0Q29sdW1uKFwiRklSU1RcIik7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29uc3QgZiA9IGNvbC5nZXREYXRhQnlJbmRleCgwKTtcbiAgICAgIGlmIChmICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChmLCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnJlY29yZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxhc3QgcmVjb3JkIGluZGV4IG9mIHRoZSBjdXJyZW50IGxpc3QgcXVlcnlcbiAgICogQHJldHVybnMgcmVjb3JkIGluZGV4IG9yIG51bGwgZm9yIGEgbm9uLWxpc3QgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBnZXRMYXN0UmVjb3JkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgY29sID0gdGhpcy5nZXRDb2x1bW4oXCJMQVNUXCIpO1xuICAgIGlmIChjb2wpIHtcbiAgICAgIGNvbnN0IGwgPSBjb2wuZ2V0RGF0YUJ5SW5kZXgoMCk7XG4gICAgICBpZiAobCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQobCwgMTApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsZW4gPSB0aGlzLmdldFJlY29yZHNDb3VudCgpO1xuICAgIGlmIChsZW4pIHtcbiAgICAgIHJldHVybiBsZW4gLSAxO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUmVzcG9uc2UgYXMgTGlzdCBIYXNoIGluY2x1ZGluZyB1c2VmdWwgbWV0YSBkYXRhIGZvciB0YWJsZXNcbiAgICogQHJldHVybnMgaGFzaCBpbmNsdWRpbmcgbGlzdCBtZXRhIGRhdGEgYW5kIGFycmF5IG9mIHJvd3MgaW4gaGFzaCBub3RhdGlvblxuICAgKi9cbiAgcHVibGljIGdldExpc3RIYXNoKCk6IGFueSB7XG4gICAgY29uc3QgbGg6IGFueVtdID0gW107XG4gICAgdGhpcy5nZXRSZWNvcmRzKCkuZm9yRWFjaCgocmVjKSA9PiB7XG4gICAgICBsaC5wdXNoKHJlYy5nZXREYXRhKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBMSVNUOiBsaCxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgY29sdW1uczogdGhpcy5nZXRDb2x1bW5LZXlzKCksXG4gICAgICAgIHBnOiB0aGlzLmdldFBhZ2luYXRpb24oKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV4dCByZWNvcmQgaW4gcmVjb3JkIGxpc3RcbiAgICogQHJldHVybnMgUmVjb3JkIG9yIG51bGwgaW4gY2FzZSB0aGVyZSdzIG5vIGZ1cnRoZXIgcmVjb3JkXG4gICAqL1xuICBwdWJsaWMgZ2V0TmV4dFJlY29yZCgpOiBSZWNvcmQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0UmVjb3JkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY29yZHNbKyt0aGlzLnJlY29yZEluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBhZ2UgTnVtYmVyIG9mIG5leHQgbGlzdCBxdWVyeVxuICAgKiBAcmV0dXJucyBwYWdlIG51bWJlciBvciBudWxsIGlmIHRoZXJlJ3Mgbm8gbmV4dCBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ2V0TmV4dFBhZ2VOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgY3AgPSB0aGlzLmdldEN1cnJlbnRQYWdlTnVtYmVyKCk7XG4gICAgaWYgKGNwID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcGFnZSA9IGNwICsgMTtcbiAgICBjb25zdCBwYWdlcyA9IHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIHJldHVybiBwYWdlIDw9IHBhZ2VzID8gcGFnZSA6IHBhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGF2YWlsYWJsZSBmb3IgdGhpcyBsaXN0IHF1ZXJ5XG4gICAqIEByZXR1cm5zIG51bWJlciBvZiBwYWdlc1xuICAgKi9cbiAgcHVibGljIGdldE51bWJlck9mUGFnZXMoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0ID0gdGhpcy5nZXRSZWNvcmRzVG90YWxDb3VudCgpO1xuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5nZXRSZWNvcmRzTGltaXRhdGlvbigpO1xuICAgIGlmICh0ICYmIGxpbWl0KSB7XG4gICAgICByZXR1cm4gTWF0aC5jZWlsKHQgLyB0aGlzLmdldFJlY29yZHNMaW1pdGF0aW9uKCkpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHBhZ2luZyBkYXRhXG4gICAqIEByZXR1cm5zIHBhZ2luYXRvciBkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnaW5hdGlvbigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBDT1VOVDogdGhpcy5nZXRSZWNvcmRzQ291bnQoKSxcbiAgICAgIENVUlJFTlRQQUdFOiB0aGlzLmdldEN1cnJlbnRQYWdlTnVtYmVyKCksXG4gICAgICBGSVJTVDogdGhpcy5nZXRGaXJzdFJlY29yZEluZGV4KCksXG4gICAgICBMQVNUOiB0aGlzLmdldExhc3RSZWNvcmRJbmRleCgpLFxuICAgICAgTElNSVQ6IHRoaXMuZ2V0UmVjb3Jkc0xpbWl0YXRpb24oKSxcbiAgICAgIE5FWFRQQUdFOiB0aGlzLmdldE5leHRQYWdlTnVtYmVyKCksXG4gICAgICBQQUdFUzogdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCksXG4gICAgICBQUkVWSU9VU1BBR0U6IHRoaXMuZ2V0UHJldmlvdXNQYWdlTnVtYmVyKCksXG4gICAgICBUT1RBTDogdGhpcy5nZXRSZWNvcmRzVG90YWxDb3VudCgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBhZ2UgTnVtYmVyIG9mIHByZXZpb3VzIGxpc3QgcXVlcnlcbiAgICogQHJldHVybnMgcGFnZSBudW1iZXIgb3IgbnVsbCBpZiB0aGVyZSdzIG5vIHByZXZpb3VzIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRQcmV2aW91c1BhZ2VOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgY3AgPSB0aGlzLmdldEN1cnJlbnRQYWdlTnVtYmVyKCk7XG4gICAgaWYgKGNwID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNwIC0gMSB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcmV2aW91cyByZWNvcmQgaW4gcmVjb3JkIGxpc3RcbiAgICogQHJldHVybnMgUmVjb3JkIG9yIG51bGwgaWYgdGhlcmUncyBubyBwcmV2aW91cyByZWNvcmRcbiAgICovXG4gIHB1YmxpYyBnZXRQcmV2aW91c1JlY29yZCgpOiBSZWNvcmQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5oYXNQcmV2aW91c1JlY29yZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWNvcmRzWy0tdGhpcy5yZWNvcmRJbmRleF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBSZWNvcmQgYXQgZ2l2ZW4gaW5kZXhcbiAgICogQHBhcmFtIGlkeCByZWNvcmQgaW5kZXhcbiAgICogQHJldHVybnMgUmVjb3JkIG9yIG51bGwgaWYgaW5kZXggZG9lcyBub3QgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBnZXRSZWNvcmQoaWR4OiBudW1iZXIpOiBSZWNvcmQgfCBudWxsIHtcbiAgICBpZiAoaWR4ID49IDAgJiYgdGhpcy5yZWNvcmRzLmxlbmd0aCA+IGlkeCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc1tpZHhdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIFJlY29yZHNcbiAgICogQHJldHVybnMgYXJyYXkgb2YgcmVjb3Jkc1xuICAgKi9cbiAgcHVibGljIGdldFJlY29yZHMoKTogUmVjb3JkW10ge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvdW50IG9mIHJvd3MgaW4gdGhpcyByZXNwb25zZVxuICAgKiBAcmV0dXJucyBjb3VudCBvZiByb3dzXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVjb3Jkc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkcy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRvdGFsIGNvdW50IG9mIHJlY29yZHMgYXZhaWxhYmxlIGZvciB0aGUgbGlzdCBxdWVyeVxuICAgKiBAcmV0dXJucyB0b3RhbCBjb3VudCBvZiByZWNvcmRzIG9yIGNvdW50IG9mIHJlY29yZHMgZm9yIGEgbm9uLWxpc3QgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBnZXRSZWNvcmRzVG90YWxDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZ2V0Q29sdW1uKFwiVE9UQUxcIik7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29uc3QgdCA9IGNvbC5nZXREYXRhQnlJbmRleCgwKTtcbiAgICAgIGlmICh0ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh0LCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHNDb3VudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaW1pdChhdGlvbikgc2V0dGluZyBvZiB0aGUgY3VycmVudCBsaXN0IHF1ZXJ5XG4gICAqIFRoaXMgaXMgdGhlIGNvdW50IG9mIHJlcXVlc3RlZCByb3dzXG4gICAqIEByZXR1cm5zIGxpbWl0IHNldHRpbmcgb3IgY291bnQgcmVxdWVzdGVkIHJvd3NcbiAgICovXG4gIHB1YmxpYyBnZXRSZWNvcmRzTGltaXRhdGlvbigpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZ2V0Q29sdW1uKFwiTElNSVRcIik7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29uc3QgbCA9IGNvbC5nZXREYXRhQnlJbmRleCgwKTtcbiAgICAgIGlmIChsICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChsLCAxMCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHNDb3VudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoaXMgbGlzdCBxdWVyeSBoYXMgYSBuZXh0IHBhZ2VcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBoYXNOZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjcCA9IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTtcbiAgICBpZiAoY3AgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGNwICsgMSA8PSB0aGlzLmdldE51bWJlck9mUGFnZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGlzIGxpc3QgcXVlcnkgaGFzIGEgcHJldmlvdXMgcGFnZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjcCA9IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTtcbiAgICBpZiAoY3AgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGNwIC0gMSA+IDA7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgaW5kZXggaW4gcmVjb3JkIGxpc3QgYmFjayB0byB6ZXJvXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgUmVzcG9uc2UgSW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHJld2luZFJlY29yZExpc3QoKTogUmVzcG9uc2Uge1xuICAgIHRoaXMucmVjb3JkSW5kZXggPSAwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGNvbHVtbiBleGlzdHMgaW4gcmVzcG9uc2VcbiAgICogQHBhcmFtIGtleSBjb2x1bW4gbmFtZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBoYXNDb2x1bW4oa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5rZXlzLmluZGV4T2Yoa2V5KSAhPT0gLTE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHJlY29yZCBsaXN0IGNvbnRhaW5zIGEgcmVjb3JkIGZvciB0aGVcbiAgICogY3VycmVudCByZWNvcmQgaW5kZXggaW4gdXNlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwcml2YXRlIGhhc0N1cnJlbnRSZWNvcmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGVuID0gdGhpcy5yZWNvcmRzLmxlbmd0aDtcbiAgICByZXR1cm4gbGVuID4gMCAmJiB0aGlzLnJlY29yZEluZGV4ID49IDAgJiYgdGhpcy5yZWNvcmRJbmRleCA8IGxlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgcmVjb3JkIGxpc3QgY29udGFpbnMgYSBuZXh0IHJlY29yZCBmb3IgdGhlXG4gICAqIGN1cnJlbnQgcmVjb3JkIGluZGV4IGluIHVzZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBoYXNOZXh0UmVjb3JkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLnJlY29yZEluZGV4ICsgMTtcbiAgICByZXR1cm4gdGhpcy5oYXNDdXJyZW50UmVjb3JkKCkgJiYgbmV4dCA8IHRoaXMucmVjb3Jkcy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIHJlY29yZCBsaXN0IGNvbnRhaW5zIGEgcHJldmlvdXMgcmVjb3JkIGZvciB0aGVcbiAgICogY3VycmVudCByZWNvcmQgaW5kZXggaW4gdXNlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwcml2YXRlIGhhc1ByZXZpb3VzUmVjb3JkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlY29yZEluZGV4ID4gMCAmJiB0aGlzLmhhc0N1cnJlbnRSZWNvcmQoKTtcbiAgfVxufVxuIl19

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseParser = void 0;
exports.ResponseParser = {
export var ResponseParser = {
parse: function (raw) {

@@ -59,2 +56,2 @@ var hash = {};

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VwYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2VwYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxjQUFjLEdBQVE7SUFNakMsS0FBSyxFQUFFLFVBQUMsR0FBVztRQUNqQixJQUFNLElBQUksR0FBUSxFQUFFLENBQUM7UUFDckIsSUFBTSxNQUFNLEdBQUcsbUNBQW1DLENBQUM7UUFDbkQsSUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBQSxDQUFDO1lBQ04sSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxFQUFFLEVBQUU7d0JBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUU7NEJBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO3lCQUNwQjt3QkFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7eUJBQzNCO3dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3hEO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDeEQ7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBTUQsU0FBUyxFQUFFLFVBQUMsQ0FBTTtRQUNoQixJQUFJLEtBQUssR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7Z0JBQ2xDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsR0FBVyxFQUFFLEtBQWE7b0JBQ2pELEtBQUssSUFBSSxrQkFBZ0IsR0FBRyxVQUFLLEtBQUssVUFBSyxHQUFLLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNuRCxLQUFLLElBQUksY0FBWSxDQUFDLENBQUMsSUFBTSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQzFELEtBQUssSUFBSSxxQkFBbUIsQ0FBQyxDQUFDLFdBQWEsQ0FBQztTQUM3QztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUN4RCxLQUFLLElBQUksbUJBQWlCLENBQUMsQ0FBQyxTQUFXLENBQUM7U0FDekM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDdEQsS0FBSyxJQUFJLGlCQUFlLENBQUMsQ0FBQyxPQUFTLENBQUM7U0FDckM7UUFDRCxLQUFLLElBQUksYUFBYSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUmVzcG9uc2VQYXJzZXI6IGFueSA9IHtcbiAgLyoqXG4gICAqIE1ldGhvZCB0byBwYXJzZSBwbGFpbiBBUEkgcmVzcG9uc2UgaW50byBqcyBvYmplY3RcbiAgICogQHBhcmFtIHJhdyBBUEkgcGxhaW4gcmVzcG9uc2VcbiAgICogQHJldHVybnMgQVBJIHJlc3BvbnNlIGFzIEpTIE9iamVjdCAoaGFzaClcbiAgICovXG4gIHBhcnNlOiAocmF3OiBzdHJpbmcpOiBhbnkgPT4ge1xuICAgIGNvbnN0IGhhc2g6IGFueSA9IHt9O1xuICAgIGNvbnN0IHJlZ2V4cCA9IC9eKFtePV0qW15cXHQ9IF0pW1xcdCBdKj1bXFx0IF0qKC4qKSQvO1xuICAgIGNvbnN0IHIgPSByYXcucmVwbGFjZSgvXFxyXFxuL2csIFwiXFxuXCIpLnNwbGl0KFwiXFxuXCIpO1xuICAgIHdoaWxlIChyLmxlbmd0aCkge1xuICAgICAgY29uc3Qgcm93ID0gci5zaGlmdCgpO1xuICAgICAgbGV0IG07XG4gICAgICBpZiAocm93KSB7XG4gICAgICAgIG0gPSByb3cubWF0Y2gocmVnZXhwKTtcbiAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICBjb25zdCBtbSA9IG1bMV0ubWF0Y2goL15wcm9wZXJ0eVxcWyhbXlxcXV0qKVxcXS9pKTtcbiAgICAgICAgICBpZiAobW0pIHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhhc2gsIFwiUFJPUEVSVFlcIikpIHtcbiAgICAgICAgICAgICAgaGFzaC5QUk9QRVJUWSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW1bMV0gPSBtbVsxXS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCBcIlwiKTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhhc2guUFJPUEVSVFksIG1tWzFdKSkge1xuICAgICAgICAgICAgICBoYXNoLlBST1BFUlRZW21tWzFdXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFzaC5QUk9QRVJUWVttbVsxXV0ucHVzaChtWzJdLnJlcGxhY2UoL1tcXHQgXSokLywgXCJcIikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoYXNoW21bMV0udG9VcHBlckNhc2UoKV0gPSBtWzJdLnJlcGxhY2UoL1tcXHQgXSokLywgXCJcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xuICB9LFxuICAvKipcbiAgICogU2VyaWFsaXplIGdpdmVuIHBhcnNlZCByZXNwb25zZSBoYXNoIGJhY2sgdG8gcGxhaW4gdGV4dFxuICAgKiBAcGFyYW0gciBBUEkgcmVzcG9uc2UgYXMgSlMgT2JqZWN0IChoYXNoKVxuICAgKiBAcmV0dXJucyBwbGFpbiBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHNlcmlhbGl6ZTogKHI6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgbGV0IHBsYWluID0gXCJbUkVTUE9OU0VdXCI7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCBcIlBST1BFUlRZXCIpKSB7XG4gICAgICBPYmplY3Qua2V5cyhyLlBST1BFUlRZKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgci5QUk9QRVJUWVtrZXldLmZvckVhY2goKHZhbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgcGxhaW4gKz0gYFxcclxcblBST1BFUlRZWyR7a2V5fV1bJHtpbmRleH1dPSR7dmFsfWA7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwgXCJDT0RFXCIpKSB7XG4gICAgICBwbGFpbiArPSBgXFxyXFxuQ09ERT0ke3IuQ09ERX1gO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIFwiREVTQ1JJUFRJT05cIikpIHtcbiAgICAgIHBsYWluICs9IGBcXHJcXG5ERVNDUklQVElPTj0ke3IuREVTQ1JJUFRJT059YDtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCBcIlFVRVVFVElNRVwiKSkge1xuICAgICAgcGxhaW4gKz0gYFxcclxcblFVRVVFVElNRT0ke3IuUVVFVUVUSU1FfWA7XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwgXCJSVU5USU1FXCIpKSB7XG4gICAgICBwbGFpbiArPSBgXFxyXFxuUlVOVElNRT0ke3IuUlVOVElNRX1gO1xuICAgIH1cbiAgICBwbGFpbiArPSBcIlxcclxcbkVPRlxcclxcblwiO1xuICAgIHJldHVybiBwbGFpbjtcbiAgfSxcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VwYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2VwYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFRO0lBTWpDLEtBQUssRUFBRSxVQUFDLEdBQVc7UUFDakIsSUFBTSxJQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLElBQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUFDO1FBQ25ELElBQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQUEsQ0FBQztZQUNOLElBQUksR0FBRyxFQUFFO2dCQUNQLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsRUFBRTtvQkFDTCxJQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQ2hELElBQUksRUFBRSxFQUFFO3dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFOzRCQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQzt5QkFDcEI7d0JBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO3lCQUMzQjt3QkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUN4RDt5QkFBTTt3QkFDTCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQ3hEO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU1ELFNBQVMsRUFBRSxVQUFDLENBQU07UUFDaEIsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO2dCQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQVcsRUFBRSxLQUFhO29CQUNqRCxLQUFLLElBQUksa0JBQWdCLEdBQUcsVUFBSyxLQUFLLFVBQUssR0FBSyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDbkQsS0FBSyxJQUFJLGNBQVksQ0FBQyxDQUFDLElBQU0sQ0FBQztTQUMvQjtRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUMxRCxLQUFLLElBQUkscUJBQW1CLENBQUMsQ0FBQyxXQUFhLENBQUM7U0FDN0M7UUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDeEQsS0FBSyxJQUFJLG1CQUFpQixDQUFDLENBQUMsU0FBVyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3RELEtBQUssSUFBSSxpQkFBZSxDQUFDLENBQUMsT0FBUyxDQUFDO1NBQ3JDO1FBQ0QsS0FBSyxJQUFJLGFBQWEsQ0FBQztRQUN2QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJlc3BvbnNlUGFyc2VyOiBhbnkgPSB7XG4gIC8qKlxuICAgKiBNZXRob2QgdG8gcGFyc2UgcGxhaW4gQVBJIHJlc3BvbnNlIGludG8ganMgb2JqZWN0XG4gICAqIEBwYXJhbSByYXcgQVBJIHBsYWluIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIEFQSSByZXNwb25zZSBhcyBKUyBPYmplY3QgKGhhc2gpXG4gICAqL1xuICBwYXJzZTogKHJhdzogc3RyaW5nKTogYW55ID0+IHtcbiAgICBjb25zdCBoYXNoOiBhbnkgPSB7fTtcbiAgICBjb25zdCByZWdleHAgPSAvXihbXj1dKlteXFx0PSBdKVtcXHQgXSo9W1xcdCBdKiguKikkLztcbiAgICBjb25zdCByID0gcmF3LnJlcGxhY2UoL1xcclxcbi9nLCBcIlxcblwiKS5zcGxpdChcIlxcblwiKTtcbiAgICB3aGlsZSAoci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHJvdyA9IHIuc2hpZnQoKTtcbiAgICAgIGxldCBtO1xuICAgICAgaWYgKHJvdykge1xuICAgICAgICBtID0gcm93Lm1hdGNoKHJlZ2V4cCk7XG4gICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgY29uc3QgbW0gPSBtWzFdLm1hdGNoKC9ecHJvcGVydHlcXFsoW15cXF1dKilcXF0vaSk7XG4gICAgICAgICAgaWYgKG1tKSB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoYXNoLCBcIlBST1BFUlRZXCIpKSB7XG4gICAgICAgICAgICAgIGhhc2guUFJPUEVSVFkgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1tWzFdID0gbW1bMV0udG9VcHBlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgXCJcIik7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoYXNoLlBST1BFUlRZLCBtbVsxXSkpIHtcbiAgICAgICAgICAgICAgaGFzaC5QUk9QRVJUWVttbVsxXV0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhc2guUFJPUEVSVFlbbW1bMV1dLnB1c2gobVsyXS5yZXBsYWNlKC9bXFx0IF0qJC8sIFwiXCIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGFzaFttWzFdLnRvVXBwZXJDYXNlKCldID0gbVsyXS5yZXBsYWNlKC9bXFx0IF0qJC8sIFwiXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzaDtcbiAgfSxcbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBnaXZlbiBwYXJzZWQgcmVzcG9uc2UgaGFzaCBiYWNrIHRvIHBsYWluIHRleHRcbiAgICogQHBhcmFtIHIgQVBJIHJlc3BvbnNlIGFzIEpTIE9iamVjdCAoaGFzaClcbiAgICogQHJldHVybnMgcGxhaW4gQVBJIHJlc3BvbnNlXG4gICAqL1xuICBzZXJpYWxpemU6IChyOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgIGxldCBwbGFpbiA9IFwiW1JFU1BPTlNFXVwiO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwgXCJQUk9QRVJUWVwiKSkge1xuICAgICAgT2JqZWN0LmtleXMoci5QUk9QRVJUWSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIHIuUFJPUEVSVFlba2V5XS5mb3JFYWNoKCh2YWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHBsYWluICs9IGBcXHJcXG5QUk9QRVJUWVske2tleX1dWyR7aW5kZXh9XT0ke3ZhbH1gO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIFwiQ09ERVwiKSkge1xuICAgICAgcGxhaW4gKz0gYFxcclxcbkNPREU9JHtyLkNPREV9YDtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCBcIkRFU0NSSVBUSU9OXCIpKSB7XG4gICAgICBwbGFpbiArPSBgXFxyXFxuREVTQ1JJUFRJT049JHtyLkRFU0NSSVBUSU9OfWA7XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwgXCJRVUVVRVRJTUVcIikpIHtcbiAgICAgIHBsYWluICs9IGBcXHJcXG5RVUVVRVRJTUU9JHtyLlFVRVVFVElNRX1gO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIFwiUlVOVElNRVwiKSkge1xuICAgICAgcGxhaW4gKz0gYFxcclxcblJVTlRJTUU9JHtyLlJVTlRJTUV9YDtcbiAgICB9XG4gICAgcGxhaW4gKz0gXCJcXHJcXG5FT0ZcXHJcXG5cIjtcbiAgICByZXR1cm4gcGxhaW47XG4gIH0sXG59O1xuIl19

@@ -1,10 +0,7 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseTemplate = void 0;
var responseparser_1 = require("./responseparser");
var responsetemplatemanager_1 = require("./responsetemplatemanager");
import { ResponseParser } from "./responseparser";
import { ResponseTemplateManager } from "./responsetemplatemanager";
var ResponseTemplate = (function () {
function ResponseTemplate(raw) {
if (!raw) {
raw = responsetemplatemanager_1.ResponseTemplateManager.getInstance()
raw = ResponseTemplateManager.getInstance()
.getTemplate("empty")

@@ -14,9 +11,9 @@ .getPlain();

this.raw = raw;
this.hash = responseparser_1.ResponseParser.parse(raw);
this.hash = ResponseParser.parse(raw);
if (!Object.prototype.hasOwnProperty.call(this.hash, "CODE") ||
!Object.prototype.hasOwnProperty.call(this.hash, "DESCRIPTION")) {
this.raw = responsetemplatemanager_1.ResponseTemplateManager.getInstance()
this.raw = ResponseTemplateManager.getInstance()
.getTemplate("invalid")
.getPlain();
this.hash = responseparser_1.ResponseParser.parse(this.raw);
this.hash = ResponseParser.parse(this.raw);
}

@@ -64,3 +61,3 @@ }

}());
exports.ResponseTemplate = ResponseTemplate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2V0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNwb25zZXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFrRDtBQUNsRCxxRUFBb0U7QUFLcEU7SUFjRSwwQkFBbUIsR0FBVztRQUM1QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLGlEQUF1QixDQUFDLFdBQVcsRUFBRTtpQkFDeEMsV0FBVyxDQUFDLE9BQU8sQ0FBQztpQkFDcEIsUUFBUSxFQUFFLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUNFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1lBQ3hELENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQy9EO1lBQ0EsSUFBSSxDQUFDLEdBQUcsR0FBRyxpREFBdUIsQ0FBQyxXQUFXLEVBQUU7aUJBQzdDLFdBQVcsQ0FBQyxTQUFTLENBQUM7aUJBQ3RCLFFBQVEsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBTU0sa0NBQU8sR0FBZDtRQUNFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFNTSx5Q0FBYyxHQUFyQjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQztJQU1NLG1DQUFRLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQU1NLHVDQUFZLEdBQW5CO1FBQ0UsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNoRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBTU0sa0NBQU8sR0FBZDtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBTU0scUNBQVUsR0FBakI7UUFDRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQzlELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFPTSxrQ0FBTyxHQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0lBQzFDLENBQUM7SUFPTSxvQ0FBUyxHQUFoQjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0lBT00scUNBQVUsR0FBakI7UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQU1NLG9DQUFTLEdBQWhCO1FBQ0UsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUc7WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7SUFDSCx1QkFBQztBQUFELENBQUMsQUEzSEQsSUEySEM7QUEzSFksNENBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2VQYXJzZXIgfSBmcm9tIFwiLi9yZXNwb25zZXBhcnNlclwiO1xuaW1wb3J0IHsgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgfSBmcm9tIFwiLi9yZXNwb25zZXRlbXBsYXRlbWFuYWdlclwiO1xuXG4vKipcbiAqIFJlc3BvbnNlVGVtcGxhdGUgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlVGVtcGxhdGUge1xuICAvKipcbiAgICogcGxhaW4gQVBJIHJlc3BvbnNlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmF3OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBoYXNoIHJlcHJlc2VudGF0aW9uIG9mIHBsYWluIEFQSSByZXNwb25zZVxuICAgKi9cbiAgcHJvdGVjdGVkIGhhc2g6IGFueTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIHJhdyBwbGFpbiBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihyYXc6IHN0cmluZykge1xuICAgIGlmICghcmF3KSB7XG4gICAgICByYXcgPSBSZXNwb25zZVRlbXBsYXRlTWFuYWdlci5nZXRJbnN0YW5jZSgpXG4gICAgICAgIC5nZXRUZW1wbGF0ZShcImVtcHR5XCIpXG4gICAgICAgIC5nZXRQbGFpbigpO1xuICAgIH1cbiAgICB0aGlzLnJhdyA9IHJhdztcbiAgICB0aGlzLmhhc2ggPSBSZXNwb25zZVBhcnNlci5wYXJzZShyYXcpO1xuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIkNPREVcIikgfHxcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIkRFU0NSSVBUSU9OXCIpXG4gICAgKSB7XG4gICAgICB0aGlzLnJhdyA9IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmdldEluc3RhbmNlKClcbiAgICAgICAgLmdldFRlbXBsYXRlKFwiaW52YWxpZFwiKVxuICAgICAgICAuZ2V0UGxhaW4oKTtcbiAgICAgIHRoaXMuaGFzaCA9IFJlc3BvbnNlUGFyc2VyLnBhcnNlKHRoaXMucmF3KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IEFQSSByZXNwb25zZSBjb2RlXG4gICAqIEByZXR1cm5zIEFQSSByZXNwb25zZSBjb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29kZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBwYXJzZUludCh0aGlzLmhhc2guQ09ERSwgMTApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBBUEkgcmVzcG9uc2UgZGVzY3JpcHRpb25cbiAgICogQHJldHVybnMgQVBJIHJlc3BvbnNlIGRlc2NyaXB0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoLkRFU0NSSVBUSU9OO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBQbGFpbiBBUEkgcmVzcG9uc2VcbiAgICogQHJldHVybnMgUGxhaW4gQVBJIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UGxhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yYXc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFF1ZXVldGltZSBvZiBBUEkgcmVzcG9uc2VcbiAgICogQHJldHVybnMgUXVldWV0aW1lIG9mIEFQSSByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGdldFF1ZXVldGltZSgpOiBudW1iZXIge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIlFVRVVFVElNRVwiKSkge1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodGhpcy5oYXNoLlFVRVVFVElNRSk7XG4gICAgfVxuICAgIHJldHVybiAwLjA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEFQSSByZXNwb25zZSBhcyBIYXNoXG4gICAqIEByZXR1cm5zIEFQSSByZXNwb25zZSBoYXNoXG4gICAqL1xuICBwdWJsaWMgZ2V0SGFzaCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmhhc2g7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFJ1bnRpbWUgb2YgQVBJIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIFJ1bnRpbWUgb2YgQVBJIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UnVudGltZSgpOiBudW1iZXIge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIlJVTlRJTUVcIikpIHtcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHRoaXMuaGFzaC5SVU5USU1FKTtcbiAgICB9XG4gICAgcmV0dXJuIDAuMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IEFQSSByZXNwb25zZSByZXByZXNlbnRzIGFuIGVycm9yIGNhc2VcbiAgICogQVBJIHJlc3BvbnNlIGNvZGUgaXMgYW4gNXh4IGNvZGVcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBpc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc2guQ09ERS5jaGFyQXQoMCkgPT09IFwiNVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgQVBJIHJlc3BvbnNlIHJlcHJlc2VudHMgYSBzdWNjZXNzIGNhc2VcbiAgICogQVBJIHJlc3BvbnNlIGNvZGUgaXMgYW4gMnh4IGNvZGVcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBpc1N1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5DT0RFLmNoYXJBdCgwKSA9PT0gXCIyXCI7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCBBUEkgcmVzcG9uc2UgcmVwcmVzZW50cyBhIHRlbXBvcmFyeSBlcnJvciBjYXNlXG4gICAqIEFQSSByZXNwb25zZSBjb2RlIGlzIGFuIDR4eCBjb2RlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaXNUbXBFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoLkNPREUuY2hhckF0KDApID09PSBcIjRcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IG9wZXJhdGlvbiBpcyByZXR1cm5lZCBhcyBwZW5kaW5nXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaXNQZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oYXNoLCBcIlBFTkRJTkdcIilcbiAgICAgID8gdGhpcy5oYXNoLlBFTkRJTkcgPT09IFwiMVwiXG4gICAgICA6IGZhbHNlO1xuICB9XG59XG4iXX0=
export { ResponseTemplate };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2V0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNwb25zZXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUtwRTtJQWNFLDBCQUFtQixHQUFXO1FBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFO2lCQUN4QyxXQUFXLENBQUMsT0FBTyxDQUFDO2lCQUNwQixRQUFRLEVBQUUsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFDRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUN4RCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUMvRDtZQUNBLElBQUksQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFO2lCQUM3QyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUN0QixRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBTU0sa0NBQU8sR0FBZDtRQUNFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFNTSx5Q0FBYyxHQUFyQjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQztJQU1NLG1DQUFRLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQU1NLHVDQUFZLEdBQW5CO1FBQ0UsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNoRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBTU0sa0NBQU8sR0FBZDtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBTU0scUNBQVUsR0FBakI7UUFDRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQzlELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFPTSxrQ0FBTyxHQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0lBQzFDLENBQUM7SUFPTSxvQ0FBUyxHQUFoQjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0lBT00scUNBQVUsR0FBakI7UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQU1NLG9DQUFTLEdBQWhCO1FBQ0UsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUc7WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7SUFDSCx1QkFBQztBQUFELENBQUMsQUEzSEQsSUEySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNwb25zZVBhcnNlciB9IGZyb20gXCIuL3Jlc3BvbnNlcGFyc2VyXCI7XG5pbXBvcnQgeyBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciB9IGZyb20gXCIuL3Jlc3BvbnNldGVtcGxhdGVtYW5hZ2VyXCI7XG5cbi8qKlxuICogUmVzcG9uc2VUZW1wbGF0ZSBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBwbGFpbiBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHByb3RlY3RlZCByYXc6IHN0cmluZztcbiAgLyoqXG4gICAqIGhhc2ggcmVwcmVzZW50YXRpb24gb2YgcGxhaW4gQVBJIHJlc3BvbnNlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFzaDogYW55O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gcmF3IHBsYWluIEFQSSByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJhdzogc3RyaW5nKSB7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHJhdyA9IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmdldEluc3RhbmNlKClcbiAgICAgICAgLmdldFRlbXBsYXRlKFwiZW1wdHlcIilcbiAgICAgICAgLmdldFBsYWluKCk7XG4gICAgfVxuICAgIHRoaXMucmF3ID0gcmF3O1xuICAgIHRoaXMuaGFzaCA9IFJlc3BvbnNlUGFyc2VyLnBhcnNlKHJhdyk7XG4gICAgaWYgKFxuICAgICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmhhc2gsIFwiQ09ERVwiKSB8fFxuICAgICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmhhc2gsIFwiREVTQ1JJUFRJT05cIilcbiAgICApIHtcbiAgICAgIHRoaXMucmF3ID0gUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIuZ2V0SW5zdGFuY2UoKVxuICAgICAgICAuZ2V0VGVtcGxhdGUoXCJpbnZhbGlkXCIpXG4gICAgICAgIC5nZXRQbGFpbigpO1xuICAgICAgdGhpcy5oYXNoID0gUmVzcG9uc2VQYXJzZXIucGFyc2UodGhpcy5yYXcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQVBJIHJlc3BvbnNlIGNvZGVcbiAgICogQHJldHVybnMgQVBJIHJlc3BvbnNlIGNvZGVcbiAgICovXG4gIHB1YmxpYyBnZXRDb2RlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHRoaXMuaGFzaC5DT0RFLCAxMCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEFQSSByZXNwb25zZSBkZXNjcmlwdGlvblxuICAgKiBAcmV0dXJucyBBUEkgcmVzcG9uc2UgZGVzY3JpcHRpb25cbiAgICovXG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc2guREVTQ1JJUFRJT047XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBsYWluIEFQSSByZXNwb25zZVxuICAgKiBAcmV0dXJucyBQbGFpbiBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBnZXRQbGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJhdztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUXVldWV0aW1lIG9mIEFQSSByZXNwb25zZVxuICAgKiBAcmV0dXJucyBRdWV1ZXRpbWUgb2YgQVBJIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVldWV0aW1lKCk6IG51bWJlciB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmhhc2gsIFwiUVVFVUVUSU1FXCIpKSB7XG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aGlzLmhhc2guUVVFVUVUSU1FKTtcbiAgICB9XG4gICAgcmV0dXJuIDAuMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQVBJIHJlc3BvbnNlIGFzIEhhc2hcbiAgICogQHJldHVybnMgQVBJIHJlc3BvbnNlIGhhc2hcbiAgICovXG4gIHB1YmxpYyBnZXRIYXNoKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgUnVudGltZSBvZiBBUEkgcmVzcG9uc2VcbiAgICogQHJldHVybnMgUnVudGltZSBvZiBBUEkgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBnZXRSdW50aW1lKCk6IG51bWJlciB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmhhc2gsIFwiUlVOVElNRVwiKSkge1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodGhpcy5oYXNoLlJVTlRJTUUpO1xuICAgIH1cbiAgICByZXR1cm4gMC4wO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgQVBJIHJlc3BvbnNlIHJlcHJlc2VudHMgYW4gZXJyb3IgY2FzZVxuICAgKiBBUEkgcmVzcG9uc2UgY29kZSBpcyBhbiA1eHggY29kZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGlzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5DT0RFLmNoYXJBdCgwKSA9PT0gXCI1XCI7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCBBUEkgcmVzcG9uc2UgcmVwcmVzZW50cyBhIHN1Y2Nlc3MgY2FzZVxuICAgKiBBUEkgcmVzcG9uc2UgY29kZSBpcyBhbiAyeHggY29kZVxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGlzU3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoLkNPREUuY2hhckF0KDApID09PSBcIjJcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IEFQSSByZXNwb25zZSByZXByZXNlbnRzIGEgdGVtcG9yYXJ5IGVycm9yIGNhc2VcbiAgICogQVBJIHJlc3BvbnNlIGNvZGUgaXMgYW4gNHh4IGNvZGVcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBpc1RtcEVycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc2guQ09ERS5jaGFyQXQoMCkgPT09IFwiNFwiO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgb3BlcmF0aW9uIGlzIHJldHVybmVkIGFzIHBlbmRpbmdcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBpc1BlbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmhhc2gsIFwiUEVORElOR1wiKVxuICAgICAgPyB0aGlzLmhhc2guUEVORElORyA9PT0gXCIxXCJcbiAgICAgIDogZmFsc2U7XG4gIH1cbn1cbiJdfQ==

@@ -1,6 +0,3 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseTemplateManager = void 0;
var responseparser_1 = require("./responseparser");
var responsetemplate_1 = require("./responsetemplate");
import { ResponseParser } from "./responseparser";
import { ResponseTemplate } from "./responsetemplate";
var ResponseTemplateManager = (function () {

@@ -34,5 +31,5 @@ function ResponseTemplateManager() {

if (this.hasTemplate(id)) {
return new responsetemplate_1.ResponseTemplate(this.templates[id]);
return new ResponseTemplate(this.templates[id]);
}
return new responsetemplate_1.ResponseTemplate(this.generateTemplate("500", "Response Template not found"));
return new ResponseTemplate(this.generateTemplate("500", "Response Template not found"));
};

@@ -43,3 +40,3 @@ ResponseTemplateManager.prototype.getTemplates = function () {

Object.keys(this.templates).forEach(function (key) {
tpls[key] = new responsetemplate_1.ResponseTemplate(_this.templates[key]);
tpls[key] = new ResponseTemplate(_this.templates[key]);
});

@@ -57,3 +54,3 @@ return tpls;

var h = this.getTemplate(id).getHash();
var tpl2 = responseparser_1.ResponseParser.parse(plain);
var tpl2 = ResponseParser.parse(plain);
return h.CODE === tpl2.CODE && h.DESCRIPTION === tpl2.DESCRIPTION;

@@ -63,4 +60,4 @@ };

}());
exports.ResponseTemplateManager = ResponseTemplateManager;
export { ResponseTemplateManager };
ResponseTemplateManager.getInstance();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2V0ZW1wbGF0ZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2V0ZW1wbGF0ZW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWtEO0FBQ2xELHVEQUFzRDtBQUt0RDtJQW9CRTtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztZQUNuRCxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUMxQixLQUFLLEVBQ0wseUVBQXlFLENBQzFFO1lBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FDMUIsS0FBSyxFQUNMLDZEQUE2RCxDQUM5RDtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDO1lBQzFELFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQzlCLEtBQUssRUFDTCxnREFBZ0QsQ0FDakQ7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUM1QixLQUFLLEVBQ0wsdUNBQXVDLENBQ3hDO1lBQ0QsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDO1NBQzNELENBQUM7SUFDSixDQUFDO0lBdENhLG1DQUFXLEdBQXpCO1FBQ0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRTtZQUNyQyx1QkFBdUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQXlDTSxrREFBZ0IsR0FBdkIsVUFBd0IsSUFBWSxFQUFFLFdBQW1CO1FBQ3ZELE9BQU8sd0JBQXNCLElBQUksd0JBQW1CLFdBQVcsZ0JBQWEsQ0FBQztJQUMvRSxDQUFDO0lBUU0sNkNBQVcsR0FBbEIsVUFBbUIsRUFBVSxFQUFFLEtBQWE7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDM0IsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQU9NLDZDQUFXLEdBQWxCLFVBQW1CLEVBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxtQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLElBQUksbUNBQWdCLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFNTSw4Q0FBWSxHQUFuQjtRQUFBLGlCQU1DO1FBTEMsSUFBTSxJQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7WUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksbUNBQWdCLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00sNkNBQVcsR0FBbEIsVUFBbUIsRUFBVTtRQUMzQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFRTSxxREFBbUIsR0FBMUIsVUFBMkIsSUFBUyxFQUFFLEVBQVU7UUFDOUMsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDcEUsQ0FBQztJQVFNLHNEQUFvQixHQUEzQixVQUE0QixLQUFhLEVBQUUsRUFBVTtRQUNuRCxJQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQU0sSUFBSSxHQUFHLCtCQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNwRSxDQUFDO0lBQ0gsOEJBQUM7QUFBRCxDQUFDLEFBM0hELElBMkhDO0FBM0hZLDBEQUF1QjtBQTZIcEMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNwb25zZVBhcnNlciB9IGZyb20gXCIuL3Jlc3BvbnNlcGFyc2VyXCI7XG5pbXBvcnQgeyBSZXNwb25zZVRlbXBsYXRlIH0gZnJvbSBcIi4vcmVzcG9uc2V0ZW1wbGF0ZVwiO1xuXG4vKipcbiAqIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIFNpbmdsZXRvbiBDbGFzc1xuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIge1xuICAvKipcbiAgICogR2V0IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIEluc3RhbmNlXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIEluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEluc3RhbmNlKCk6IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIHtcbiAgICBpZiAoIVJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmluc3RhbmNlKSB7XG4gICAgICBSZXNwb25zZVRlbXBsYXRlTWFuYWdlci5pbnN0YW5jZSA9IG5ldyBSZXNwb25zZVRlbXBsYXRlTWFuYWdlcigpO1xuICAgIH1cbiAgICByZXR1cm4gUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIuaW5zdGFuY2U7XG4gIH1cbiAgLyoqXG4gICAqIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIEluc3RhbmNlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXI7XG4gIC8qKlxuICAgKiB0ZW1wbGF0ZSBjb250YWluZXJcbiAgICovXG4gIHByaXZhdGUgdGVtcGxhdGVzOiBhbnk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnRlbXBsYXRlcyA9IHtcbiAgICAgIDQwNDogdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFwiNDIxXCIsIFwiUGFnZSBub3QgZm91bmRcIiksXG4gICAgICA1MDA6IHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZShcIjUwMFwiLCBcIkludGVybmFsIHNlcnZlciBlcnJvclwiKSxcbiAgICAgIGVtcHR5OiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXG4gICAgICAgIFwiNDIzXCIsXG4gICAgICAgIFwiRW1wdHkgQVBJIHJlc3BvbnNlLiBQcm9iYWJseSB1bnJlYWNoYWJsZSBBUEkgZW5kIHBvaW50IHtDT05ORUNUSU9OX1VSTH1cIlxuICAgICAgKSxcbiAgICAgIGVycm9yOiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXG4gICAgICAgIFwiNDIxXCIsXG4gICAgICAgIFwiQ29tbWFuZCBmYWlsZWQgZHVlIHRvIHNlcnZlciBlcnJvci4gQ2xpZW50IHNob3VsZCB0cnkgYWdhaW5cIlxuICAgICAgKSxcbiAgICAgIGV4cGlyZWQ6IHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZShcIjUzMFwiLCBcIlNFU1NJT04gTk9UIEZPVU5EXCIpLFxuICAgICAgaHR0cGVycm9yOiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXG4gICAgICAgIFwiNDIxXCIsXG4gICAgICAgIFwiQ29tbWFuZCBmYWlsZWQgZHVlIHRvIEhUVFAgY29tbXVuaWNhdGlvbiBlcnJvclwiXG4gICAgICApLFxuICAgICAgaW52YWxpZDogdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFxuICAgICAgICBcIjQyM1wiLFxuICAgICAgICBcIkludmFsaWQgQVBJIHJlc3BvbnNlLiBDb250YWN0IFN1cHBvcnRcIlxuICAgICAgKSxcbiAgICAgIHVuYXV0aG9yaXplZDogdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFwiNTMwXCIsIFwiVW5hdXRob3JpemVkXCIpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgQVBJIHJlc3BvbnNlIHRlbXBsYXRlIHN0cmluZyBmb3IgZ2l2ZW4gY29kZSBhbmQgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIGNvZGUgQVBJIHJlc3BvbnNlIGNvZGVcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIEFQSSByZXNwb25zZSBkZXNjcmlwdGlvblxuICAgKiBAcmV0dXJucyBnZW5lcmF0ZSByZXNwb25zZSB0ZW1wbGF0ZSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZVRlbXBsYXRlKGNvZGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBbUkVTUE9OU0VdXFxyXFxuQ09ERT0ke2NvZGV9XFxyXFxuREVTQ1JJUFRJT049JHtkZXNjcmlwdGlvbn1cXHJcXG5FT0ZcXHJcXG5gO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCByZXNwb25zZSB0ZW1wbGF0ZSB0byB0ZW1wbGF0ZSBjb250YWluZXJcbiAgICogQHBhcmFtIGlkIHRlbXBsYXRlIGlkXG4gICAqIEBwYXJhbSBwbGFpbiBBUEkgcGxhaW4gcmVzcG9uc2VcbiAgICogQHJldHVybnMgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGFkZFRlbXBsYXRlKGlkOiBzdHJpbmcsIHBsYWluOiBzdHJpbmcpOiBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciB7XG4gICAgdGhpcy50ZW1wbGF0ZXNbaWRdID0gcGxhaW47XG4gICAgcmV0dXJuIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZXNwb25zZSB0ZW1wbGF0ZSBpbnN0YW5jZSBmcm9tIHRlbXBsYXRlIGNvbnRhaW5lclxuICAgKiBAcGFyYW0gaWQgdGVtcGxhdGUgaWRcbiAgICogQHJldHVybnMgdGVtcGxhdGUgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZShpZDogc3RyaW5nKTogUmVzcG9uc2VUZW1wbGF0ZSB7XG4gICAgaWYgKHRoaXMuaGFzVGVtcGxhdGUoaWQpKSB7XG4gICAgICByZXR1cm4gbmV3IFJlc3BvbnNlVGVtcGxhdGUodGhpcy50ZW1wbGF0ZXNbaWRdKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZVRlbXBsYXRlKFxuICAgICAgdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFwiNTAwXCIsIFwiUmVzcG9uc2UgVGVtcGxhdGUgbm90IGZvdW5kXCIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGF2YWlsYWJsZSByZXNwb25zZSB0ZW1wbGF0ZXNcbiAgICogQHJldHVybnMgYWxsIGF2YWlsYWJsZSByZXNwb25zZSB0ZW1wbGF0ZSBpbnN0YW5jZXNcbiAgICovXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZXMoKTogYW55IHtcbiAgICBjb25zdCB0cGxzOiBhbnkgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLnRlbXBsYXRlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICB0cGxzW2tleV0gPSBuZXcgUmVzcG9uc2VUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlc1trZXldKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHBscztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBnaXZlbiB0ZW1wbGF0ZSBleGlzdHMgaW4gdGVtcGxhdGUgY29udGFpbmVyXG4gICAqIEBwYXJhbSBpZCB0ZW1wbGF0ZSBpZFxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGhhc1RlbXBsYXRlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMudGVtcGxhdGVzLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgZ2l2ZW4gQVBJIHJlc3BvbnNlIGhhc2ggbWF0Y2hlcyBhIGdpdmVuIHRlbXBsYXRlIGJ5IGNvZGUgYW5kIGRlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSB0cGwyIGFwaSByZXNwb25zZSBoYXNoXG4gICAqIEBwYXJhbSBpZCB0ZW1wbGF0ZSBpZFxuICAgKiBAcmV0dXJucyBib29sZWFuIHJlc3VsdFxuICAgKi9cbiAgcHVibGljIGlzVGVtcGxhdGVNYXRjaEhhc2godHBsMjogYW55LCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaCA9IHRoaXMuZ2V0VGVtcGxhdGUoaWQpLmdldEhhc2goKTtcbiAgICByZXR1cm4gaC5DT0RFID09PSB0cGwyLkNPREUgJiYgaC5ERVNDUklQVElPTiA9PT0gdHBsMi5ERVNDUklQVElPTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBnaXZlbiBBUEkgcGxhaW4gcmVzcG9uc2UgbWF0Y2hlcyBhIGdpdmVuIHRlbXBsYXRlIGJ5IGNvZGUgYW5kIGRlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBwbGFpbiBBUEkgcGxhaW4gcmVzcG9uc2VcbiAgICogQHBhcmFtIGlkIHRlbXBsYXRlIGlkXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaXNUZW1wbGF0ZU1hdGNoUGxhaW4ocGxhaW46IHN0cmluZywgaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGggPSB0aGlzLmdldFRlbXBsYXRlKGlkKS5nZXRIYXNoKCk7XG4gICAgY29uc3QgdHBsMiA9IFJlc3BvbnNlUGFyc2VyLnBhcnNlKHBsYWluKTtcbiAgICByZXR1cm4gaC5DT0RFID09PSB0cGwyLkNPREUgJiYgaC5ERVNDUklQVElPTiA9PT0gdHBsMi5ERVNDUklQVElPTjtcbiAgfVxufVxuXG5SZXNwb25zZVRlbXBsYXRlTWFuYWdlci5nZXRJbnN0YW5jZSgpO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2V0ZW1wbGF0ZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2V0ZW1wbGF0ZW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3REO0lBb0JFO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDO1lBQ25ELEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO1lBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLEtBQUssRUFDTCx5RUFBeUUsQ0FDMUU7WUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUMxQixLQUFLLEVBQ0wsNkRBQTZELENBQzlEO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUM7WUFDMUQsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FDOUIsS0FBSyxFQUNMLGdEQUFnRCxDQUNqRDtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQzVCLEtBQUssRUFDTCx1Q0FBdUMsQ0FDeEM7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7U0FDM0QsQ0FBQztJQUNKLENBQUM7SUF0Q2EsbUNBQVcsR0FBekI7UUFDRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFO1lBQ3JDLHVCQUF1QixDQUFDLFFBQVEsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7U0FDbEU7UUFDRCxPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBeUNNLGtEQUFnQixHQUF2QixVQUF3QixJQUFZLEVBQUUsV0FBbUI7UUFDdkQsT0FBTyx3QkFBc0IsSUFBSSx3QkFBbUIsV0FBVyxnQkFBYSxDQUFDO0lBQy9FLENBQUM7SUFRTSw2Q0FBVyxHQUFsQixVQUFtQixFQUFVLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBT00sNkNBQVcsR0FBbEIsVUFBbUIsRUFBVTtRQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSw2QkFBNkIsQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQU1NLDhDQUFZLEdBQW5CO1FBQUEsaUJBTUM7UUFMQyxJQUFNLElBQUksR0FBUSxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsR0FBRztZQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPTSw2Q0FBVyxHQUFsQixVQUFtQixFQUFVO1FBQzNCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQVFNLHFEQUFtQixHQUExQixVQUEyQixJQUFTLEVBQUUsRUFBVTtRQUM5QyxJQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNwRSxDQUFDO0lBUU0sc0RBQW9CLEdBQTNCLFVBQTRCLEtBQWEsRUFBRSxFQUFVO1FBQ25ELElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsSUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDcEUsQ0FBQztJQUNILDhCQUFDO0FBQUQsQ0FBQyxBQTNIRCxJQTJIQzs7QUFFRCx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlUGFyc2VyIH0gZnJvbSBcIi4vcmVzcG9uc2VwYXJzZXJcIjtcbmltcG9ydCB7IFJlc3BvbnNlVGVtcGxhdGUgfSBmcm9tIFwiLi9yZXNwb25zZXRlbXBsYXRlXCI7XG5cbi8qKlxuICogUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgU2luZ2xldG9uIENsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciB7XG4gIC8qKlxuICAgKiBHZXQgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgSW5zdGFuY2VcbiAgICogQHJldHVybnMgUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgSW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UoKTogUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIge1xuICAgIGlmICghUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIuaW5zdGFuY2UpIHtcbiAgICAgIFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmluc3RhbmNlID0gbmV3IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyKCk7XG4gICAgfVxuICAgIHJldHVybiBSZXNwb25zZVRlbXBsYXRlTWFuYWdlci5pbnN0YW5jZTtcbiAgfVxuICAvKipcbiAgICogUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIgSW5zdGFuY2VcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBSZXNwb25zZVRlbXBsYXRlTWFuYWdlcjtcbiAgLyoqXG4gICAqIHRlbXBsYXRlIGNvbnRhaW5lclxuICAgKi9cbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IGFueTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudGVtcGxhdGVzID0ge1xuICAgICAgNDA0OiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXCI0MjFcIiwgXCJQYWdlIG5vdCBmb3VuZFwiKSxcbiAgICAgIDUwMDogdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFwiNTAwXCIsIFwiSW50ZXJuYWwgc2VydmVyIGVycm9yXCIpLFxuICAgICAgZW1wdHk6IHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZShcbiAgICAgICAgXCI0MjNcIixcbiAgICAgICAgXCJFbXB0eSBBUEkgcmVzcG9uc2UuIFByb2JhYmx5IHVucmVhY2hhYmxlIEFQSSBlbmQgcG9pbnQge0NPTk5FQ1RJT05fVVJMfVwiXG4gICAgICApLFxuICAgICAgZXJyb3I6IHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZShcbiAgICAgICAgXCI0MjFcIixcbiAgICAgICAgXCJDb21tYW5kIGZhaWxlZCBkdWUgdG8gc2VydmVyIGVycm9yLiBDbGllbnQgc2hvdWxkIHRyeSBhZ2FpblwiXG4gICAgICApLFxuICAgICAgZXhwaXJlZDogdGhpcy5nZW5lcmF0ZVRlbXBsYXRlKFwiNTMwXCIsIFwiU0VTU0lPTiBOT1QgRk9VTkRcIiksXG4gICAgICBodHRwZXJyb3I6IHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZShcbiAgICAgICAgXCI0MjFcIixcbiAgICAgICAgXCJDb21tYW5kIGZhaWxlZCBkdWUgdG8gSFRUUCBjb21tdW5pY2F0aW9uIGVycm9yXCJcbiAgICAgICksXG4gICAgICBpbnZhbGlkOiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXG4gICAgICAgIFwiNDIzXCIsXG4gICAgICAgIFwiSW52YWxpZCBBUEkgcmVzcG9uc2UuIENvbnRhY3QgU3VwcG9ydFwiXG4gICAgICApLFxuICAgICAgdW5hdXRob3JpemVkOiB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXCI1MzBcIiwgXCJVbmF1dGhvcml6ZWRcIiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBBUEkgcmVzcG9uc2UgdGVtcGxhdGUgc3RyaW5nIGZvciBnaXZlbiBjb2RlIGFuZCBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0gY29kZSBBUEkgcmVzcG9uc2UgY29kZVxuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQVBJIHJlc3BvbnNlIGRlc2NyaXB0aW9uXG4gICAqIEByZXR1cm5zIGdlbmVyYXRlIHJlc3BvbnNlIHRlbXBsYXRlIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIGdlbmVyYXRlVGVtcGxhdGUoY29kZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFtSRVNQT05TRV1cXHJcXG5DT0RFPSR7Y29kZX1cXHJcXG5ERVNDUklQVElPTj0ke2Rlc2NyaXB0aW9ufVxcclxcbkVPRlxcclxcbmA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHJlc3BvbnNlIHRlbXBsYXRlIHRvIHRlbXBsYXRlIGNvbnRhaW5lclxuICAgKiBAcGFyYW0gaWQgdGVtcGxhdGUgaWRcbiAgICogQHBhcmFtIHBsYWluIEFQSSBwbGFpbiByZXNwb25zZVxuICAgKiBAcmV0dXJucyBSZXNwb25zZVRlbXBsYXRlTWFuYWdlciBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgYWRkVGVtcGxhdGUoaWQ6IHN0cmluZywgcGxhaW46IHN0cmluZyk6IFJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyIHtcbiAgICB0aGlzLnRlbXBsYXRlc1tpZF0gPSBwbGFpbjtcbiAgICByZXR1cm4gUmVzcG9uc2VUZW1wbGF0ZU1hbmFnZXIuaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlc3BvbnNlIHRlbXBsYXRlIGluc3RhbmNlIGZyb20gdGVtcGxhdGUgY29udGFpbmVyXG4gICAqIEBwYXJhbSBpZCB0ZW1wbGF0ZSBpZFxuICAgKiBAcmV0dXJucyB0ZW1wbGF0ZSBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIGdldFRlbXBsYXRlKGlkOiBzdHJpbmcpOiBSZXNwb25zZVRlbXBsYXRlIHtcbiAgICBpZiAodGhpcy5oYXNUZW1wbGF0ZShpZCkpIHtcbiAgICAgIHJldHVybiBuZXcgUmVzcG9uc2VUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlc1tpZF0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlVGVtcGxhdGUoXG4gICAgICB0aGlzLmdlbmVyYXRlVGVtcGxhdGUoXCI1MDBcIiwgXCJSZXNwb25zZSBUZW1wbGF0ZSBub3QgZm91bmRcIilcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgYXZhaWxhYmxlIHJlc3BvbnNlIHRlbXBsYXRlc1xuICAgKiBAcmV0dXJucyBhbGwgYXZhaWxhYmxlIHJlc3BvbnNlIHRlbXBsYXRlIGluc3RhbmNlc1xuICAgKi9cbiAgcHVibGljIGdldFRlbXBsYXRlcygpOiBhbnkge1xuICAgIGNvbnN0IHRwbHM6IGFueSA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRoaXMudGVtcGxhdGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRwbHNba2V5XSA9IG5ldyBSZXNwb25zZVRlbXBsYXRlKHRoaXMudGVtcGxhdGVzW2tleV0pO1xuICAgIH0pO1xuICAgIHJldHVybiB0cGxzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGdpdmVuIHRlbXBsYXRlIGV4aXN0cyBpbiB0ZW1wbGF0ZSBjb250YWluZXJcbiAgICogQHBhcmFtIGlkIHRlbXBsYXRlIGlkXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaGFzVGVtcGxhdGUoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy50ZW1wbGF0ZXMsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBnaXZlbiBBUEkgcmVzcG9uc2UgaGFzaCBtYXRjaGVzIGEgZ2l2ZW4gdGVtcGxhdGUgYnkgY29kZSBhbmQgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIHRwbDIgYXBpIHJlc3BvbnNlIGhhc2hcbiAgICogQHBhcmFtIGlkIHRlbXBsYXRlIGlkXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgaXNUZW1wbGF0ZU1hdGNoSGFzaCh0cGwyOiBhbnksIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBoID0gdGhpcy5nZXRUZW1wbGF0ZShpZCkuZ2V0SGFzaCgpO1xuICAgIHJldHVybiBoLkNPREUgPT09IHRwbDIuQ09ERSAmJiBoLkRFU0NSSVBUSU9OID09PSB0cGwyLkRFU0NSSVBUSU9OO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGdpdmVuIEFQSSBwbGFpbiByZXNwb25zZSBtYXRjaGVzIGEgZ2l2ZW4gdGVtcGxhdGUgYnkgY29kZSBhbmQgZGVzY3JpcHRpb25cbiAgICogQHBhcmFtIHBsYWluIEFQSSBwbGFpbiByZXNwb25zZVxuICAgKiBAcGFyYW0gaWQgdGVtcGxhdGUgaWRcbiAgICogQHJldHVybnMgYm9vbGVhbiByZXN1bHRcbiAgICovXG4gIHB1YmxpYyBpc1RlbXBsYXRlTWF0Y2hQbGFpbihwbGFpbjogc3RyaW5nLCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaCA9IHRoaXMuZ2V0VGVtcGxhdGUoaWQpLmdldEhhc2goKTtcbiAgICBjb25zdCB0cGwyID0gUmVzcG9uc2VQYXJzZXIucGFyc2UocGxhaW4pO1xuICAgIHJldHVybiBoLkNPREUgPT09IHRwbDIuQ09ERSAmJiBoLkRFU0NSSVBUSU9OID09PSB0cGwyLkRFU0NSSVBUSU9OO1xuICB9XG59XG5cblJlc3BvbnNlVGVtcGxhdGVNYW5hZ2VyLmdldEluc3RhbmNlKCk7XG4iXX0=

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketConfig = exports.fixedURLEnc = void 0;
var fixedURLEnc = function (str) {
export var fixedURLEnc = function (str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {

@@ -9,3 +6,2 @@ return "%" + c.charCodeAt(0).toString(16).toUpperCase();

};
exports.fixedURLEnc = fixedURLEnc;
var SocketConfig = (function () {

@@ -24,21 +20,21 @@ function SocketConfig() {

if (this.entity !== "") {
data += exports.fixedURLEnc("s_entity") + "=" + exports.fixedURLEnc(this.entity) + "&";
data += fixedURLEnc("s_entity") + "=" + fixedURLEnc(this.entity) + "&";
}
if (this.login !== "") {
data += exports.fixedURLEnc("s_login") + "=" + exports.fixedURLEnc(this.login) + "&";
data += fixedURLEnc("s_login") + "=" + fixedURLEnc(this.login) + "&";
}
if (this.otp !== "") {
data += exports.fixedURLEnc("s_otp") + "=" + exports.fixedURLEnc(this.otp) + "&";
data += fixedURLEnc("s_otp") + "=" + fixedURLEnc(this.otp) + "&";
}
if (this.pw !== "") {
data += exports.fixedURLEnc("s_pw") + "=" + exports.fixedURLEnc(this.pw) + "&";
data += fixedURLEnc("s_pw") + "=" + fixedURLEnc(this.pw) + "&";
}
if (this.remoteaddr !== "") {
data += exports.fixedURLEnc("s_remoteaddr") + "=" + exports.fixedURLEnc(this.remoteaddr) + "&";
data += fixedURLEnc("s_remoteaddr") + "=" + fixedURLEnc(this.remoteaddr) + "&";
}
if (this.session !== "") {
data += exports.fixedURLEnc("s_session") + "=" + exports.fixedURLEnc(this.session) + "&";
data += fixedURLEnc("s_session") + "=" + fixedURLEnc(this.session) + "&";
}
if (this.user !== "") {
data += exports.fixedURLEnc("s_user") + "=" + exports.fixedURLEnc(this.user) + "&";
data += fixedURLEnc("s_user") + "=" + fixedURLEnc(this.user) + "&";
}

@@ -89,3 +85,3 @@ return data;

}());
exports.SocketConfig = SocketConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NvY2tldGNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxJQUFNLFdBQVcsR0FBRyxVQUFDLEdBQVc7SUFDckMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQUMsQ0FBQztRQUNuRCxPQUFPLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFKVyxRQUFBLFdBQVcsZUFJdEI7QUFLRjtJQThCRTtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBTU0sa0NBQVcsR0FBbEI7UUFDRSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3RCLElBQUksSUFBTyxtQkFBVyxDQUFDLFVBQVUsQ0FBQyxTQUFJLG1CQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFHLENBQUM7U0FDbkU7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ3JCLElBQUksSUFBTyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFJLG1CQUFX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KHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgKGMpID0+IHtcbiAgICByZXR1cm4gYCUke2MuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX1gO1xuICB9KTtcbn07XG5cbi8qKlxuICogU29ja2V0Q29uZmlnIENsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBTb2NrZXRDb25maWcge1xuICAvKipcbiAgICogQVBJIHN5c3RlbSBlbnRpdHkuIFwiNTRjZFwiIGZvciBMSVZFIHN5c3RlbTsgXCIxMjM0XCIgZm9yIE9UJkUgc3lzdGVtXG4gICAqL1xuICBwcml2YXRlIGVudGl0eTogc3RyaW5nO1xuICAvKipcbiAgICogYWNjb3VudCBuYW1lXG4gICAqL1xuICBwcml2YXRlIGxvZ2luOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvbmUgdGltZSBwYXNzd29yZCAoMkZBKVxuICAgKi9cbiAgcHJpdmF0ZSBvdHA6IHN0cmluZztcbiAgLyoqXG4gICAqIGFjY291bnQgcGFzc3dvcmRcbiAgICovXG4gIHByaXZhdGUgcHc6IHN0cmluZztcbiAgLyoqXG4gICAqIHJlbW90ZSBpcCBhZGRyZXNzIChpcCBmaWx0ZXIpXG4gICAqL1xuICBwcml2YXRlIHJlbW90ZWFkZHI6IHN0cmluZztcbiAgLyoqXG4gICAqIEFQSSBzZXNzaW9uIGlkXG4gICAqL1xuICBwcml2YXRlIHNlc3Npb246IHN0cmluZztcbiAgLyoqXG4gICAqIHN1YnVzZXIgYWNjb3VudCBuYW1lIChzdWJ1c2VyIHNwZWNpZmljIGRhdGEgdmlldylcbiAgICovXG4gIHByaXZhdGUgdXNlcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmVudGl0eSA9IFwiXCI7XG4gICAgdGhpcy5sb2dpbiA9IFwiXCI7XG4gICAgdGhpcy5vdHAgPSBcIlwiO1xuICAgIHRoaXMucHcgPSBcIlwiO1xuICAgIHRoaXMucmVtb3RlYWRkciA9IFwiXCI7XG4gICAgdGhpcy5zZXNzaW9uID0gXCJcIjtcbiAgICB0aGlzLnVzZXIgPSBcIlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBQT1NUIGRhdGEgc3RyaW5nIG91dCBvZiBjb25uZWN0aW9uIGRhdGFcbiAgICogQHJldHVybnMgUE9TVCBkYXRhIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIGdldFBPU1REYXRhKCk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGEgPSBcIlwiO1xuICAgIGlmICh0aGlzLmVudGl0eSAhPT0gXCJcIikge1xuICAgICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfZW50aXR5XCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMuZW50aXR5KX0mYDtcbiAgICB9XG4gICAgaWYgKHRoaXMubG9naW4gIT09IFwiXCIpIHtcbiAgICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX2xvZ2luXCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMubG9naW4pfSZgO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdHAgIT09IFwiXCIpIHtcbiAgICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX290cFwiKX09JHtmaXhlZFVSTEVuYyh0aGlzLm90cCl9JmA7XG4gICAgfVxuICAgIGlmICh0aGlzLnB3ICE9PSBcIlwiKSB7XG4gICAgICBkYXRhICs9IGAke2ZpeGVkVVJMRW5jKFwic19wd1wiKX09JHtmaXhlZFVSTEVuYyh0aGlzLnB3KX0mYDtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVtb3RlYWRkciAhPT0gXCJcIikge1xuICAgICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfcmVtb3RlYWRkclwiKX09JHtmaXhlZFVSTEVuYyh0aGlzLnJlbW90ZWFkZHIpfSZgO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZXNzaW9uICE9PSBcIlwiKSB7XG4gICAgICBkYXRhICs9IGAke2ZpeGVkVVJMRW5jKFwic19zZXNzaW9uXCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMuc2Vzc2lvbil9JmA7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZXIgIT09IFwiXCIpIHtcbiAgICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX3VzZXJcIil9PSR7Zml4ZWRVUkxFbmModGhpcy51c2VyKX0mYDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEFQSSBTZXNzaW9uIElEIGluIHVzZVxuICAgKiBAcmV0dXJucyBBUEkgU2Vzc2lvbiBJRFxuICAgKi9cbiAgcHVibGljIGdldFNlc3Npb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBBUEkgU3lzdGVtIEVudGl0eSBpbiB1c2VcbiAgICogQHJldHVybnMgQVBJIFN5c3RlbSBFbnRpdHlcbiAgICovXG4gIHB1YmxpYyBnZXRTeXN0ZW1FbnRpdHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFjY291bnQgbmFtZSB0byB1c2VcbiAgICogQHBhcmFtIHZhbHVlIGFjY291bnQgbmFtZVxuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0TG9naW4odmFsdWU6IHN0cmluZyk6IFNvY2tldENvbmZpZyB7XG4gICAgdGhpcy5zZXNzaW9uID0gXCJcIjtcbiAgICB0aGlzLmxvZ2luID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG9uZSB0aW1lIHBhc3N3b3JkIHRvIHVzZVxuICAgKiBAcGFyYW0gdmFsdWUgb25lIHRpbWUgcGFzc3dvcmRcbiAgICogQHJldHVybnMgQ3VycmVudCBTb2NrZXRDb25maWcgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldE9UUCh2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnNlc3Npb24gPSBcIlwiO1xuICAgIHRoaXMub3RwID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFjY291bnQgcGFzc3dvcmQgdG8gdXNlXG4gICAqIEBwYXJhbSB2YWx1ZSBhY2NvdW50IHBhc3N3b3JkXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgU29ja2V0Q29uZmlnIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRQYXNzd29yZCh2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnNlc3Npb24gPSBcIlwiO1xuICAgIHRoaXMucHcgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgUmVtb3RlIElQIEFkZHJlc3MgdG8gdXNlXG4gICAqIEBwYXJhbSB2YWx1ZSByZW1vdGUgaXAgYWRkcmVzc1xuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0UmVtb3RlQWRkcmVzcyh2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnJlbW90ZWFkZHIgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgQVBJIFNlc3Npb24gSUQgdG8gdXNlXG4gICAqIEBwYXJhbSB2YWx1ZSBBUEkgU2Vzc2lvbiBJRFxuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0U2Vzc2lvbih2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnNlc3Npb24gPSB2YWx1ZTtcbiAgICB0aGlzLmxvZ2luID0gXCJcIjtcbiAgICB0aGlzLnB3ID0gXCJcIjtcbiAgICB0aGlzLm90cCA9IFwiXCI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IEFQSSBTeXN0ZW0gRW50aXR5IHRvIHVzZVxuICAgKiBUaGlzIGlzIHNldCB0byA1NGNkIC8gTElWRSBTeXN0ZW0gYnkgZGVmYXVsdFxuICAgKiBAcGFyYW0gdmFsdWUgQVBJIFN5c3RlbSBFbnRpdHlcbiAgICogQHJldHVybnMgQ3VycmVudCBTb2NrZXRDb25maWcgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFN5c3RlbUVudGl0eSh2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLmVudGl0eSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzdWJ1c2VyIGFjY291bnQgbmFtZSAoZm9yIHN1YnVzZXIgZGF0YSB2aWV3KVxuICAgKiBAcGFyYW0gdmFsdWUgc3VidXNlciBhY2NvdW50IG5hbWVcbiAgICogQHJldHVybnMgQ3VycmVudCBTb2NrZXRDb25maWcgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFVzZXIodmFsdWU6IHN0cmluZyk6IFNvY2tldENvbmZpZyB7XG4gICAgdGhpcy51c2VyID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
export { SocketConfig };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NvY2tldGNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsVUFBQyxHQUFXO0lBQ3JDLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFDLENBQUM7UUFDbkQsT0FBTyxNQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBSSxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBS0Y7SUE4QkU7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQU1NLGtDQUFXLEdBQWxCO1FBQ0UsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN0QixJQUFJLElBQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQUcsQ0FBQztTQUNuRTtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDckIsSUFBSSxJQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFHLENBQUM7U0FDakU7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksSUFBTyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBRyxDQUFDO1NBQzdEO1FBQ0QsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLElBQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQUcsQ0FBQztTQUMzRDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxJQUFPLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFHLENBQUM7U0FDM0U7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksSUFBTyxXQUFXLENBQUMsV0FBVyxDQUFDLFNBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBRyxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNwQixJQUFJLElBQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQUcsQ0FBQztTQUMvRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU1NLGlDQUFVLEdBQWpCO1FBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFNTSxzQ0FBZSxHQUF0QjtRQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBT00sK0JBQVEsR0FBZixVQUFnQixLQUFhO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU9NLDZCQUFNLEdBQWIsVUFBYyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU9NLGtDQUFXLEdBQWxCLFVBQW1CLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00sdUNBQWdCLEdBQXZCLFVBQXdCLEtBQWE7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00saUNBQVUsR0FBakIsVUFBa0IsS0FBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBUU0sc0NBQWUsR0FBdEIsVUFBdUIsS0FBYTtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPTSw4QkFBTyxHQUFkLFVBQWUsS0FBYTtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFsS0QsSUFrS0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZml4ZWRVUkxFbmMgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvWyEnKCkqXS9nLCAoYykgPT4ge1xuICAgIHJldHVybiBgJSR7Yy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfWA7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBTb2NrZXRDb25maWcgQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFNvY2tldENvbmZpZyB7XG4gIC8qKlxuICAgKiBBUEkgc3lzdGVtIGVudGl0eS4gXCI1NGNkXCIgZm9yIExJVkUgc3lzdGVtOyBcIjEyMzRcIiBmb3IgT1QmRSBzeXN0ZW1cbiAgICovXG4gIHByaXZhdGUgZW50aXR5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhY2NvdW50IG5hbWVcbiAgICovXG4gIHByaXZhdGUgbG9naW46IHN0cmluZztcbiAgLyoqXG4gICAqIG9uZSB0aW1lIHBhc3N3b3JkICgyRkEpXG4gICAqL1xuICBwcml2YXRlIG90cDogc3RyaW5nO1xuICAvKipcbiAgICogYWNjb3VudCBwYXNzd29yZFxuICAgKi9cbiAgcHJpdmF0ZSBwdzogc3RyaW5nO1xuICAvKipcbiAgICogcmVtb3RlIGlwIGFkZHJlc3MgKGlwIGZpbHRlcilcbiAgICovXG4gIHByaXZhdGUgcmVtb3RlYWRkcjogc3RyaW5nO1xuICAvKipcbiAgICogQVBJIHNlc3Npb24gaWRcbiAgICovXG4gIHByaXZhdGUgc2Vzc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogc3VidXNlciBhY2NvdW50IG5hbWUgKHN1YnVzZXIgc3BlY2lmaWMgZGF0YSB2aWV3KVxuICAgKi9cbiAgcHJpdmF0ZSB1c2VyOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZW50aXR5ID0gXCJcIjtcbiAgICB0aGlzLmxvZ2luID0gXCJcIjtcbiAgICB0aGlzLm90cCA9IFwiXCI7XG4gICAgdGhpcy5wdyA9IFwiXCI7XG4gICAgdGhpcy5yZW1vdGVhZGRyID0gXCJcIjtcbiAgICB0aGlzLnNlc3Npb24gPSBcIlwiO1xuICAgIHRoaXMudXNlciA9IFwiXCI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIFBPU1QgZGF0YSBzdHJpbmcgb3V0IG9mIGNvbm5lY3Rpb24gZGF0YVxuICAgKiBAcmV0dXJucyBQT1NUIGRhdGEgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0UE9TVERhdGEoKTogc3RyaW5nIHtcbiAgICBsZXQgZGF0YSA9IFwiXCI7XG4gICAgaWYgKHRoaXMuZW50aXR5ICE9PSBcIlwiKSB7XG4gICAgICBkYXRhICs9IGAke2ZpeGVkVVJMRW5jKFwic19lbnRpdHlcIil9PSR7Zml4ZWRVUkxFbmModGhpcy5lbnRpdHkpfSZgO1xuICAgIH1cbiAgICBpZiAodGhpcy5sb2dpbiAhPT0gXCJcIikge1xuICAgICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfbG9naW5cIil9PSR7Zml4ZWRVUkxFbmModGhpcy5sb2dpbil9JmA7XG4gICAgfVxuICAgIGlmICh0aGlzLm90cCAhPT0gXCJcIikge1xuICAgICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfb3RwXCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMub3RwKX0mYDtcbiAgICB9XG4gICAgaWYgKHRoaXMucHcgIT09IFwiXCIpIHtcbiAgICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX3B3XCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMucHcpfSZgO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZW1vdGVhZGRyICE9PSBcIlwiKSB7XG4gICAgICBkYXRhICs9IGAke2ZpeGVkVVJMRW5jKFwic19yZW1vdGVhZGRyXCIpfT0ke2ZpeGVkVVJMRW5jKHRoaXMucmVtb3RlYWRkcil9JmA7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlc3Npb24gIT09IFwiXCIpIHtcbiAgICAgIGRhdGEgKz0gYCR7Zml4ZWRVUkxFbmMoXCJzX3Nlc3Npb25cIil9PSR7Zml4ZWRVUkxFbmModGhpcy5zZXNzaW9uKX0mYDtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlciAhPT0gXCJcIikge1xuICAgICAgZGF0YSArPSBgJHtmaXhlZFVSTEVuYyhcInNfdXNlclwiKX09JHtmaXhlZFVSTEVuYyh0aGlzLnVzZXIpfSZgO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQVBJIFNlc3Npb24gSUQgaW4gdXNlXG4gICAqIEByZXR1cm5zIEFQSSBTZXNzaW9uIElEXG4gICAqL1xuICBwdWJsaWMgZ2V0U2Vzc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb247XG4gIH1cblxuICAvKipcbiAgICogR2V0IEFQSSBTeXN0ZW0gRW50aXR5IGluIHVzZVxuICAgKiBAcmV0dXJucyBBUEkgU3lzdGVtIEVudGl0eVxuICAgKi9cbiAgcHVibGljIGdldFN5c3RlbUVudGl0eSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWNjb3VudCBuYW1lIHRvIHVzZVxuICAgKiBAcGFyYW0gdmFsdWUgYWNjb3VudCBuYW1lXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgU29ja2V0Q29uZmlnIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRMb2dpbih2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnNlc3Npb24gPSBcIlwiO1xuICAgIHRoaXMubG9naW4gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgb25lIHRpbWUgcGFzc3dvcmQgdG8gdXNlXG4gICAqIEBwYXJhbSB2YWx1ZSBvbmUgdGltZSBwYXNzd29yZFxuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0T1RQKHZhbHVlOiBzdHJpbmcpOiBTb2NrZXRDb25maWcge1xuICAgIHRoaXMuc2Vzc2lvbiA9IFwiXCI7XG4gICAgdGhpcy5vdHAgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWNjb3VudCBwYXNzd29yZCB0byB1c2VcbiAgICogQHBhcmFtIHZhbHVlIGFjY291bnQgcGFzc3dvcmRcbiAgICogQHJldHVybnMgQ3VycmVudCBTb2NrZXRDb25maWcgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFBhc3N3b3JkKHZhbHVlOiBzdHJpbmcpOiBTb2NrZXRDb25maWcge1xuICAgIHRoaXMuc2Vzc2lvbiA9IFwiXCI7XG4gICAgdGhpcy5wdyA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBSZW1vdGUgSVAgQWRkcmVzcyB0byB1c2VcbiAgICogQHBhcmFtIHZhbHVlIHJlbW90ZSBpcCBhZGRyZXNzXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgU29ja2V0Q29uZmlnIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRSZW1vdGVBZGRyZXNzKHZhbHVlOiBzdHJpbmcpOiBTb2NrZXRDb25maWcge1xuICAgIHRoaXMucmVtb3RlYWRkciA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBBUEkgU2Vzc2lvbiBJRCB0byB1c2VcbiAgICogQHBhcmFtIHZhbHVlIEFQSSBTZXNzaW9uIElEXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgU29ja2V0Q29uZmlnIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRTZXNzaW9uKHZhbHVlOiBzdHJpbmcpOiBTb2NrZXRDb25maWcge1xuICAgIHRoaXMuc2Vzc2lvbiA9IHZhbHVlO1xuICAgIHRoaXMubG9naW4gPSBcIlwiO1xuICAgIHRoaXMucHcgPSBcIlwiO1xuICAgIHRoaXMub3RwID0gXCJcIjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgQVBJIFN5c3RlbSBFbnRpdHkgdG8gdXNlXG4gICAqIFRoaXMgaXMgc2V0IHRvIDU0Y2QgLyBMSVZFIFN5c3RlbSBieSBkZWZhdWx0XG4gICAqIEBwYXJhbSB2YWx1ZSBBUEkgU3lzdGVtIEVudGl0eVxuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0U3lzdGVtRW50aXR5KHZhbHVlOiBzdHJpbmcpOiBTb2NrZXRDb25maWcge1xuICAgIHRoaXMuZW50aXR5ID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN1YnVzZXIgYWNjb3VudCBuYW1lIChmb3Igc3VidXNlciBkYXRhIHZpZXcpXG4gICAqIEBwYXJhbSB2YWx1ZSBzdWJ1c2VyIGFjY291bnQgbmFtZVxuICAgKiBAcmV0dXJucyBDdXJyZW50IFNvY2tldENvbmZpZyBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0VXNlcih2YWx1ZTogc3RyaW5nKTogU29ja2V0Q29uZmlnIHtcbiAgICB0aGlzLnVzZXIgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19

@@ -1,2 +0,2 @@

## [7.0.5](https://github.com/hexonet/node-sdk/compare/v7.0.4...v7.0.5) (2021-05-25)
## [7.0.6](https://github.com/hexonet/node-sdk/compare/v7.0.5...v7.0.6) (2021-11-11)

@@ -6,4 +6,10 @@

* **dep-bump:** upgrade dependencies ([e541f80](https://github.com/hexonet/node-sdk/commit/e541f80732a91f69479a677a0236bc6f29244975))
* **node-fetch:** upgraded to v3 / ESM revamp ([1c312dc](https://github.com/hexonet/node-sdk/commit/1c312dc78c59f4f4a43d7163ed48327ec31bb8bd))
## [7.0.5](https://github.com/hexonet/node-sdk/compare/v7.0.4...v7.0.5) (2021-05-25)
### Bug Fixes
- **dep-bump:** upgrade dependencies ([e541f80](https://github.com/hexonet/node-sdk/commit/e541f80732a91f69479a677a0236bc6f29244975))
## [7.0.4](https://github.com/hexonet/node-sdk/compare/v7.0.3...v7.0.4) (2021-01-21)

@@ -10,0 +16,0 @@

{
"name": "@hexonet/ispapi-apiconnector",
"description": "Node.js SDK for the insanely fast HEXONET API",
"version": "7.0.5",
"version": "7.0.6",
"private": false,

@@ -10,6 +10,8 @@ "author": {

},
"type": "module",
"sideEffects": false,
"main": "dist/src/index.js",
"license": "MIT",
"engines": {
"node": ">=12.0.0",
"node": ">=14.17.0",
"npm": ">=6.14.13"

@@ -48,4 +50,3 @@ },

"exclude": [
"**/*.spec.ts",
"**/*.specnew.ts"
"**/*.spec.ts"
]

@@ -55,35 +56,32 @@ },

"build": "tsc --version && tsc",
"documentation": "npm run documentation_docco --silent && npm run documentation_typedoc --silent",
"documentation_docco": "docco -l parallel -o docs/docco src/*.ts",
"documentation_typedoc": "typedoc --out docs/typedoc --name @hexonet/ispapi-apiconnector --readme ./README.md --excludeExternals src/*.ts",
"documentation": "typedoc --out docs --name @hexonet/ispapi-apiconnector --readme ./README.md --excludeExternals src/*.ts",
"lint": "prettier --write .",
"test": "cross-env NODE_ENV=development nyc ./node_modules/.bin/_mocha -r ts-node/register test/*.spec.ts"
"test": "cross-env NODE_ENV=development nyc mocha"
},
"dependencies": {
"node-fetch": "^2.6.1"
"node-fetch": "^3.1.0"
},
"devDependencies": {
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/git": "^9.0.0",
"@semantic-release/npm": "^7.0.10",
"@types/chai": "^4.2.14",
"@types/chai-as-promised": "^7.1.3",
"@types/mocha": "^8.0.0",
"@types/node-fetch": "^2.5.8",
"chai": "^4.2.0",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/git": "^10.0.1",
"@semantic-release/npm": "^8.0.3",
"@types/chai": "^4.2.22",
"@types/chai-as-promised": "^7.1.4",
"@types/mocha": "^9.0.0",
"@types/node": "^16.11.7",
"chai": "^4.3.4",
"chai-as-promised": "^7.1.1",
"cross-env": "^7.0.3",
"docco": "^0.8.0",
"jsdoc": "^3.6.6",
"jsdoc": "^3.6.7",
"jsdoc-oblivion": "^0.0.9",
"mocha": "^8.2.1",
"nock": "^13.0.6",
"mocha": "^9.1.3",
"nock": "^13.2.0",
"nyc": "^15.1.0",
"prettier": "^2.3.0",
"semantic-release": "^17.3.6",
"supertest": "^6.0.0",
"ts-node": "^10.0.0",
"typedoc": "^0.20.7",
"typescript": "^4.0.2"
"prettier": "^2.4.1",
"semantic-release": "^18.0.0",
"supertest": "^6.1.6",
"ts-node": "^10.4.0",
"typedoc": "^0.22.8",
"typescript": "^4.4.4"
}
}

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

import chai = require("chai");
import chaiPromised = require("chai-as-promised");
import chai from "chai";
import chaiPromised from "chai-as-promised";
import "mocha";
import nock = require("nock");
import nock from "nock";
import {

@@ -12,0 +12,0 @@ APIClient,

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { Column } from "../src/column";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { APIClient, Response, ResponseTemplateManager } from "../src/index";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { Record } from "../src/record";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { Response } from "../src/response";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { ResponseParser } from "../src/responseparser";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { ResponseTemplate } from "../src/responsetemplate";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { ResponseTemplate } from "../src/responsetemplate";

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

import chai = require("chai");
import chai from "chai";
import "mocha";

@@ -9,0 +9,0 @@ import { SocketConfig } from "../src/socketconfig";

@@ -19,4 +19,4 @@ {

"inlineSources": true,
"module": "commonjs",
"moduleResolution": "Node",
"module": "esnext",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": true,

@@ -30,5 +30,8 @@ "noImplicitReturns": true,

"target": "es5",
"typeRoots": ["./node_modules/@types/", "./typings/"],
"typeRoots": ["node_modules/@types", "typings"],
"resolveJsonModule": true,
"esModuleInterop": true
"esModuleInterop": true,
"noEmitOnError": true,
"stripInternal": true,
"isolatedModules": true
},

@@ -35,0 +38,0 @@ "include": ["src/**/*.ts"],

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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